/* ============================================================
   ZONE14 — World Cup 2026 Jerseys
   Design tokens, base, components, sections
   ============================================================ */

/* Bohemian Typewriter — primary brand font, self-hosted to kill FOUT.
   Same-origin .woff is preloaded in <head> so it lands before first paint.
   font-display:block holds text for up to 3s rather than flashing the fallback
   then swapping — with preload, the font is already cached so there's no wait. */
@font-face {
  font-family: 'Bohemian Typewriter';
  src: local('Bohemian Typewriter'),
       url('fonts/BohemianTypewriter.woff') format('woff'),
       url('https://fonts.cdnfonts.com/s/63708/Bohemian%20Typewriter.woff') format('woff');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

:root {
  /* Theme derived from Zone14 logos:
     - fav.PNG: neon cyan ring on smoky black-blue
     - main.png: heritage green crest, cream "14", wine-red crown */
  --bg: #060a0e;
  --bg-2: #0c1217;
  --bg-3: #11181f;
  --surface: rgba(255, 255, 255, 0.04);
  --surface-hi: rgba(255, 255, 255, 0.08);
  --border: rgba(255, 255, 255, 0.08);
  --border-hi: rgba(94, 233, 227, 0.3);

  /* Brand palette */
  --neon: #5ee9e3;           /* cyan glow from fav logo (primary accent) */
  --neon-deep: #2bc9c2;
  --heritage: #1d6b3a;       /* deep heritage green from crest */
  --heritage-dark: #0f4524;
  --cream: #f5e9c8;          /* cream from "14" text in crest */
  --wine: #7a1f2b;           /* wine red from crown */
  --gold: #ffd700;
  --blue: #00d4ff;
  --red: #ff3b5c;

  --text: #f5f5f5;
  --text-dim: #b0b0b0;
  --text-mute: #6e6e6e;

  --grad-dark: linear-gradient(180deg, #060a0e 0%, #0a1410 100%);
  --grad-neon: linear-gradient(135deg, #5ee9e3 0%, #00d4ff 100%);
  --grad-heritage: linear-gradient(135deg, #1d6b3a 0%, #0f4524 100%);
  --grad-gold: linear-gradient(135deg, #ffd700 0%, #ff9d00 100%);
  --grad-hero: radial-gradient(1200px 600px at 50% 0%, rgba(94, 233, 227, 0.18) 0%, transparent 60%),
               radial-gradient(900px 500px at 100% 100%, rgba(29, 107, 58, 0.18) 0%, transparent 60%),
               radial-gradient(700px 500px at 0% 100%, rgba(122, 31, 43, 0.12) 0%, transparent 60%),
               linear-gradient(180deg, #050a0e 0%, #060a0e 100%);

  --radius: 16px;
  --radius-sm: 10px;
  --radius-lg: 24px;

  --shadow-card: 0 10px 40px -10px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.04);
  --shadow-neon: 0 0 30px rgba(94, 233, 227, 0.4), 0 0 60px rgba(94, 233, 227, 0.18);
  --shadow-heritage: 0 0 30px rgba(29, 107, 58, 0.4);
  --shadow-gold: 0 0 30px rgba(255, 215, 0, 0.35);

  --container: 1240px;
  --nav-h: 72px;
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ============ RESET ============ */
*, *::before, *::after { box-sizing: border-box; }
* { margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: var(--nav-h); }
body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, svg { display: block; max-width: 100%; }
button { font-family: inherit; cursor: pointer; border: none; background: none; color: inherit; }
a { color: inherit; text-decoration: none; }
ul { list-style: none; }
input, select, textarea { font: inherit; }

::selection { background: var(--neon); color: #000; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-2); }
::-webkit-scrollbar-thumb { background: #2a2a2a; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: var(--neon); }

.container { max-width: var(--container); margin: 0 auto; padding: 0 24px; }

/* ============ TYPOGRAPHY ============ */
/* Primary brand font: Bohemian Typewriter (typewriterfonts.net).
   Loaded via cdnfonts.com CDN AND a local @font-face fallback pointing to
   fonts/BohemianTypewriter.ttf — whichever exists wins.
   If both fail, the chain falls back to Courier Prime (similar typewriter
   look) and finally Bebas Neue, so the layout never breaks. */
h1, h2, h3, .display {
  font-family: 'Bohemian Typewriter', 'Courier Prime', 'Bebas Neue', 'Oswald', monospace;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.hero-title, .section-title, .qv-country, .td-ref { letter-spacing: -0.03em; }
.accent { color: var(--neon); }
.bn { font-family: 'Inter', sans-serif; color: var(--text-dim); font-weight: 400; }

/* ============ BUTTONS ============ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 22px;
  border-radius: 999px;
  font-weight: 600;
  font-size: 14px;
  letter-spacing: 0.02em;
  cursor: pointer;
  transition: all 0.3s var(--ease);
  white-space: nowrap;
  position: relative;
  overflow: hidden;
}
.btn-lg { padding: 16px 32px; font-size: 16px; }

.btn-primary {
  background: var(--grad-neon);
  color: #000;
  font-weight: 700;
  box-shadow: 0 8px 24px -8px rgba(94, 233, 227, 0.5);
}
.btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px -8px rgba(94, 233, 227, 0.7), 0 0 0 1px rgba(94, 233, 227, 0.4);
}

.btn-ghost {
  background: transparent;
  color: var(--text);
  border: 1px solid var(--border);
  backdrop-filter: blur(8px);
}
.btn-ghost:hover {
  border-color: var(--neon);
  color: var(--neon);
  background: rgba(94, 233, 227, 0.05);
  transform: translateY(-2px);
}

.btn-whatsapp {
  background: #25d366;
  color: #fff;
  font-weight: 600;
  box-shadow: 0 4px 14px -4px rgba(37, 211, 102, 0.6);
}
.btn-whatsapp:hover {
  background: #1ebe5d;
  transform: translateY(-2px);
  box-shadow: 0 8px 20px -4px rgba(37, 211, 102, 0.8);
}

/* ============ NAVBAR ============ */
.navbar {
  position: fixed;
  top: 0; left: 0; right: 0;
  height: var(--nav-h);
  z-index: 100;
  transition: all 0.4s var(--ease);
  background: transparent;
}
.navbar.scrolled {
  background: #05070a;          /* solid black once past the hero */
  border-bottom: 1px solid var(--border);
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.55);
}

.nav-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: 100%;
}

.logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}
/* Transparent crest in the navbar — no backplate, sits clean on the dark nav.
   Subtle cyan drop-shadow ties it to the brand glow. */
.logo-mark {
  height: 116px;
  width: auto;
  display: block;
  filter: drop-shadow(0 0 14px rgba(94, 233, 227, 0.45));
  transition: transform 0.4s var(--ease), filter 0.4s var(--ease);
}
.logo:hover .logo-mark {
  transform: scale(1.04);
  filter: drop-shadow(0 0 22px rgba(94, 233, 227, 0.7));
}
/* Bump the navbar height for the bigger crest — :root --nav-h cascades to
   scroll-padding, the off-canvas mobile menu top offset, etc. */
:root { --nav-h: 128px; }
@media (max-width: 768px) {
  :root { --nav-h: 96px; }
}

.nav-links {
  display: flex;
  gap: 32px;
  align-items: center;
}
.nav-links a {
  font-size: 14px;
  font-weight: 500;
  color: var(--text-dim);
  position: relative;
  padding: 8px 0;
  transition: color 0.3s var(--ease);
}
.nav-links a::after {
  content: '';
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 2px;
  background: var(--grad-neon);
  transition: width 0.3s var(--ease);
}
.nav-links a:hover { color: var(--text); }
.nav-links a:hover::after { width: 100%; }

.nav-cta { display: flex; align-items: center; gap: 12px; }

.hamburger {
  display: none;
  width: 40px;
  height: 40px;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  border-radius: 8px;
}
.hamburger span {
  width: 22px; height: 2px;
  background: var(--text);
  border-radius: 2px;
  transition: all 0.3s var(--ease);
}
.hamburger.active span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.hamburger.active span:nth-child(2) { opacity: 0; }
.hamburger.active span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============ HERO ============ */
.hero {
  position: sticky;            /* pins the hero in place while the page scrolls over it */
  top: 0;
  z-index: -1;                 /* sits BEHIND the opaque sections so they slide up over it */
  min-height: 100svh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--grad-hero);
  padding: calc(var(--nav-h) + 16px) 0 56px;
  isolation: isolate;          /* keeps the video layered correctly */
}

/* Short / laptop viewports: compress (zoom out) the hero so ALL of it — title,
   countdown AND the Shop Now CTA + stats — fits one screen. The next section then
   starts right after the fold, so the reveal begins immediately (no dead scroll). */
@media (min-width: 700px) and (max-height: 980px) {
  .hero       { padding: calc(var(--nav-h) - 4px) 0 22px; }
  .hero-badge { margin-bottom: 10px; }
  .hero-title { font-size: clamp(34px, 5vw, 64px); margin-bottom: 10px; line-height: 1.02; }
  .hero-sub   { font-size: clamp(13px, 1.3vw, 16px); margin-bottom: 14px; }
  .countdown  { padding: 9px 14px; margin-bottom: 8px; gap: 6px; }
  .cd-num     { font-size: clamp(20px, 2.5vw, 28px); }
  .cd-lbl     { font-size: 9px; }
  .cd-sep     { font-size: clamp(18px, 2vw, 24px); }
  .cd-caption { font-size: 12px; margin-bottom: 12px; }
  .hero-cta   { margin-bottom: 16px; gap: 12px; }
  .hero-cta .btn-lg { padding: 12px 22px; }
  .hero-stats { gap: 34px; }
  .hero-stats strong { font-size: 28px; }
}

/* Mobile keeps the SAME pinned-hero reveal as desktop — the hero stays still and
   the 2nd section rises over it. The cross-fade is now driven by a continuous
   rAF loop (reads scroll position every frame), so it stays smooth on touch and
   the banner opacity tracks scroll instead of stepping on throttled events. */

/* Very short laptops (≈768px tall and under): squeeze further still. */
@media (min-width: 700px) and (max-height: 780px) {
  .hero       { padding: calc(var(--nav-h) - 12px) 0 16px; }
  .hero-badge { margin-bottom: 8px; }
  .hero-title { font-size: clamp(30px, 4.2vw, 52px); margin-bottom: 8px; }
  .hero-sub   { margin-bottom: 10px; }
  .countdown  { padding: 7px 12px; margin-bottom: 6px; }
  .cd-num     { font-size: clamp(18px, 2.1vw, 24px); }
  .cd-caption { margin-bottom: 9px; }
  .hero-cta   { margin-bottom: 12px; }
  .hero-stats { gap: 28px; }
  .hero-stats strong { font-size: 24px; }
}

/* Brand poster — visible until the video has buffered and starts playing.
   Same filter as the video so the cross-fade is imperceptible.
   `.dimming` darkens it just before the video appears so the eye registers a
   subtle "lighting change" instead of a hard cut — masks the swap entirely. */
.hero-poster {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: calc(50% - 1.1%) center;
  z-index: 0;
  filter: saturate(0.95) brightness(0.7);
  transition: filter 0.5s ease, opacity 1.2s ease;
  pointer-events: none;
}
.hero-poster.dimming { filter: saturate(0.85) brightness(0.45); }
.hero-poster.fade-out { opacity: 0; }

/* Cinematic background video — sits above the poster, fades in once ready */
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
  /* Slight desaturation + dim so the brand colors still pop on top */
  filter: saturate(0.95) brightness(0.7);
  opacity: 0;
  transition: opacity 1.2s ease;
}
.hero-video.is-ready { opacity: 1; }

/* Dark gradient vignette so the headline stays crisp over the video */
.hero-vignette {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    radial-gradient(ellipse 80% 60% at 50% 45%, transparent 0%, rgba(6,10,14,0.35) 65%, rgba(6,10,14,0.85) 100%),
    linear-gradient(180deg, rgba(6,10,14,0.45) 0%, transparent 25%, transparent 60%, rgba(6,10,14,0.9) 100%);
  pointer-events: none;
}

/* Mobile: hero video stays visible. Browsers require muted+playsinline
   to autoplay on phones (both already set in the markup). */

/* ====================================================
   PREMIUM AMBIENT LAYER — aurora orbs + twinkling stars
   No JS, no canvas, GPU-only animations.
   ==================================================== */
.hero-aurora {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 2;          /* above video + vignette */
  overflow: hidden;
  mix-blend-mode: screen;
  opacity: 0.55;
}
.aurora-blob {
  position: absolute;
  width: 60vw;
  max-width: 720px;
  aspect-ratio: 1;
  border-radius: 50%;
  filter: blur(100px);
  will-change: transform;
}
.aurora-blob.a1 {
  background: radial-gradient(circle, rgba(94, 233, 227, 0.7) 0%, transparent 65%);
  top: -20%; left: -16%;
  opacity: 0.45;
  animation: auroraDrift1 26s ease-in-out infinite alternate;
}
.aurora-blob.a2 {
  background: radial-gradient(circle, rgba(29, 107, 58, 0.85) 0%, transparent 65%);
  bottom: -24%; right: -16%;
  opacity: 0.42;
  animation: auroraDrift2 32s ease-in-out infinite alternate;
}
.aurora-blob.a3 {
  background: radial-gradient(circle, rgba(0, 212, 255, 0.55) 0%, transparent 65%);
  top: 28%; right: 8%;
  width: 45vw; max-width: 540px;
  opacity: 0.25;
  animation: auroraDrift3 28s ease-in-out infinite alternate;
}
.aurora-blob.a4 {
  background: radial-gradient(circle, rgba(122, 31, 43, 0.6) 0%, transparent 65%);
  bottom: 14%; left: 20%;
  width: 38vw; max-width: 460px;
  opacity: 0.18;
  animation: auroraDrift4 34s ease-in-out infinite alternate;
}
@keyframes auroraDrift1 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(140px, 110px, 0) scale(1.25); }
}
@keyframes auroraDrift2 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(-130px, -90px, 0) scale(1.18); }
}
@keyframes auroraDrift3 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(-170px, 130px, 0) scale(0.85); }
}
@keyframes auroraDrift4 {
  from { transform: translate3d(0, 0, 0) scale(1); }
  to   { transform: translate3d(120px, -140px, 0) scale(1.15); }
}

/* Subtle twinkling stars — like reflective specs in spotlight haze */
.hero-sparkles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 4;          /* topmost ambient layer, above content's siblings */
}
.hero-sparkles span {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s, 2px);
  height: var(--s, 2px);
  background: #f5e9c8;
  border-radius: 50%;
  box-shadow:
    0 0 6px 1px rgba(94, 233, 227, 0.7),
    0 0 14px 3px rgba(94, 233, 227, 0.25);
  opacity: 0.2;
  animation: twinkle 5s ease-in-out infinite;
  animation-delay: var(--d, 0s);
  will-change: opacity, transform;
}
@keyframes twinkle {
  0%, 100% { opacity: 0.15; transform: scale(0.7); }
  50%      { opacity: 1;    transform: scale(1.4); }
}

.pitch-lines {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(94, 233, 227, 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(94, 233, 227, 0.05) 1px, transparent 1px);
  background-size: 60px 60px;
  mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  -webkit-mask-image: radial-gradient(ellipse at center, #000 30%, transparent 75%);
  z-index: 2;          /* above video, below content */
  animation: gridPan 30s linear infinite;
  opacity: 0.5;
}
@keyframes gridPan {
  from { background-position: 0 0; }
  to { background-position: 60px 60px; }
}

.hero-glow {
  position: absolute;
  top: -20%; left: 50%;
  transform: translateX(-50%);
  width: 800px; height: 800px;
  background: radial-gradient(circle, rgba(94, 233, 227, 0.15) 0%, transparent 60%);
  filter: blur(60px);
  z-index: 2;          /* above video, below content */
  animation: glowPulse 6s ease-in-out infinite;
}
@keyframes glowPulse {
  0%, 100% { opacity: 0.6; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.1); }
}

.hero-inner {
  position: relative;
  z-index: 5;         /* always above video + every ambient layer */
  text-align: center;
  will-change: transform, opacity;   /* scroll-driven recede stays GPU-smooth */
}

/* Hero watermark — main.png as a bold-but-restrained backdrop crest.
   Radial mask softens the center where the headline sits so the type
   stays crisp; the edges of the shield stay clearly present. */
.hero-watermark {
  position: absolute;
  top: 50%;
  left: 50%;
  width: min(120vw, 1700px);
  max-width: none;     /* override global img{max-width:100%} so 120vw+ works on mobile */
  height: auto;
  transform: translate(calc(-50% - 1.1%), -50%);
  opacity: 0.14;
  z-index: 3;          /* sits above video + vignette, below content */
  pointer-events: none;
  user-select: none;
  filter: drop-shadow(0 0 100px rgba(94, 233, 227, 0.55))
          drop-shadow(0 0 50px rgba(29, 107, 58, 0.45));
  animation: watermarkBreath 8s ease-in-out infinite;
  mask-image: radial-gradient(ellipse 55% 35% at center, transparent 0%, rgba(0,0,0,0.5) 55%, #000 100%);
  -webkit-mask-image: radial-gradient(ellipse 55% 35% at center, transparent 0%, rgba(0,0,0,0.5) 55%, #000 100%);
}
@keyframes watermarkBreath {
  0%, 100% { opacity: 0.12; transform: translate(calc(-50% - 1.1%), -50%) scale(1); }
  50%      { opacity: 0.18; transform: translate(calc(-50% - 1.1%), -50%) scale(1.02); }
}
/* Mobile variant — bigger leftward nudge to visually centre the crest */
@keyframes watermarkBreathMobile {
  0%, 100% { opacity: 0.12; transform: translate(calc(-50% - 5%), -50%) scale(1); }
  50%      { opacity: 0.18; transform: translate(calc(-50% - 5%), -50%) scale(1.02); }
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 8px 18px;
  background: rgba(94, 233, 227, 0.08);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  color: var(--neon);
  margin-bottom: 28px;
  backdrop-filter: blur(8px);
  animation: fadeInUp 0.8s var(--ease-out) both;
}
.pulse-dot {
  width: 8px; height: 8px;
  background: var(--neon);
  border-radius: 50%;
  box-shadow: 0 0 0 0 rgba(94, 233, 227, 0.7);
  animation: pulse 1.6s infinite;
}
@keyframes pulse {
  0% { box-shadow: 0 0 0 0 rgba(94, 233, 227, 0.7); }
  70% { box-shadow: 0 0 0 12px rgba(94, 233, 227, 0); }
  100% { box-shadow: 0 0 0 0 rgba(94, 233, 227, 0); }
}

.hero-title {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(48px, 9vw, 128px);
  line-height: 0.95;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  margin-bottom: 24px;
  animation: fadeInUp 1s var(--ease-out) 0.1s both;
}
.title-row {
  display: block;
  background: linear-gradient(180deg, #f5e9c8 0%, #b8a570 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.title-glitch {
  background: linear-gradient(135deg, #5ee9e3 0%, #00d4ff 50%, #5ee9e3 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  position: relative;
  /* Subtle glow via filter so letter edges stay crisp instead of bloomed */
  filter: drop-shadow(0 0 24px rgba(94, 233, 227, 0.35));
}
/* Glitch ghost copies removed — they doubled the typewriter glyphs and
   produced a broken/garbled look. The cyan gradient + soft glow alone now. */
.title-glitch::before,
.title-glitch::after { display: none; }

.hero-sub {
  font-size: clamp(15px, 1.6vw, 18px);
  color: var(--text-dim);
  margin-bottom: 40px;
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  animation: fadeInUp 1s var(--ease-out) 0.2s both;
}

/* Countdown */
.countdown {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 20px 28px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  margin-bottom: 14px;
  box-shadow: var(--shadow-card);
  animation: fadeInUp 1s var(--ease-out) 0.3s both;
}
.cd-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 60px;
}
.cd-num {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(28px, 4vw, 44px);
  line-height: 1;
  background: var(--grad-neon);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  font-variant-numeric: tabular-nums;
}
.cd-lbl {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.2em;
  color: var(--text-mute);
  margin-top: 4px;
  text-transform: uppercase;
}
.cd-sep {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(24px, 3.5vw, 36px);
  color: var(--text-mute);
  margin-top: -10px;
}
.cd-caption {
  font-size: 13px;
  color: var(--text-mute);
  margin-bottom: 36px;
  animation: fadeInUp 1s var(--ease-out) 0.4s both;
}

.hero-cta {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 60px;
  animation: fadeInUp 1s var(--ease-out) 0.5s both;
}

.hero-stats {
  display: flex;
  gap: 56px;
  justify-content: center;
  flex-wrap: wrap;
  animation: fadeInUp 1s var(--ease-out) 0.6s both;
}
.hero-stats > div {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.hero-stats strong {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 36px;
  color: var(--text);
  line-height: 1;
}
.hero-stats span {
  font-size: 12px;
  letter-spacing: 0.15em;
  color: var(--text-mute);
  text-transform: uppercase;
  margin-top: 6px;
}

.scroll-indicator {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  color: var(--text-mute);
}
.scroll-indicator span {
  width: 22px; height: 36px;
  border: 2px solid var(--text-mute);
  border-radius: 12px;
  position: relative;
}
.scroll-indicator span::before {
  content: '';
  position: absolute;
  top: 6px; left: 50%;
  transform: translateX(-50%);
  width: 3px; height: 8px;
  background: var(--neon);
  border-radius: 2px;
  animation: scrollDot 1.8s infinite;
}
@keyframes scrollDot {
  0% { opacity: 1; transform: translate(-50%, 0); }
  100% { opacity: 0; transform: translate(-50%, 14px); }
}
.scroll-indicator p {
  font-size: 10px;
  letter-spacing: 0.3em;
}

@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

/* ============================================================
   STAR-PLAYERS CINEMATIC BANNER — full-bleed scroll moment
   between hero and Featured Jerseys
   ============================================================ */
.hero-banner {
  position: relative;
  width: 100%;
  overflow: hidden;
  background: linear-gradient(180deg, var(--bg) 0%, #0a1a2e 50%, var(--bg) 100%);
  aspect-ratio: 21 / 9;
  max-height: 78vh;
  will-change: opacity;        /* scroll-driven cross-fade as it rises over the hero */
}
.hero-banner-art {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
}
.hero-banner-art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  /* Slow ken-burns pan to bring the artwork to life */
  animation: heroBannerPan 22s ease-in-out infinite alternate;
}
@keyframes heroBannerPan {
  0%   { transform: scale(1.06) translateX(0); }
  100% { transform: scale(1.10) translateX(-1.5%); }
}

/* Edge fades — blend banner into surrounding sections; bottom band
   stays denser so the CTA pill remains readable. */
.hero-banner::before,
.hero-banner::after {
  content: '';
  position: absolute;
  left: 0; right: 0;
  pointer-events: none;
  z-index: 1;
}
.hero-banner::before {
  top: 0; height: 28%;
  background: linear-gradient(180deg, var(--bg) 0%, transparent 100%);
}
.hero-banner::after {
  bottom: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.55) 65%, var(--bg) 100%);
}

.hero-banner-overlay {
  position: absolute;
  bottom: 8%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  text-align: center;
}
.hero-banner-tag {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.25em;
  text-transform: uppercase;
  color: var(--cream);
  padding: 6px 16px;
  background: rgba(0, 0, 0, 0.55);
  backdrop-filter: blur(12px);
  border: 1px solid rgba(94, 233, 227, 0.3);
  border-radius: 999px;
}
.hero-banner-overlay .btn {
  box-shadow: 0 12px 32px -8px rgba(0, 0, 0, 0.6),
              0 0 0 1px rgba(94, 233, 227, 0.3);
}

@media (max-width: 768px) {
  /* Show the WHOLE banner image (including 'ZONEFORTEEN' text)
     instead of cropping. Tall aspect + object-fit:contain preserves
     every player and the brand wordmark. Black letterbox blends with
     the surrounding hero background. */
  .hero-banner { aspect-ratio: 16 / 11; max-height: none; background: #050a0e; }
  .hero-banner-art img { object-fit: contain; }
  .hero-banner-tag { font-size: 10px; letter-spacing: 0.15em; padding: 5px 12px; }
  .hero-banner-overlay { bottom: 4%; gap: 10px; }
}
@media (max-width: 480px) {
  .hero-banner { aspect-ratio: 16 / 13; }
  .hero-banner-overlay .btn { padding: 12px 22px; font-size: 13px; }
}

/* ============ SECTIONS ============ */
.section {
  padding: 120px 0;
  position: relative;
}
.section-head {
  text-align: center;
  max-width: 720px;
  margin: 0 auto 64px;
}
.eyebrow {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.25em;
  color: var(--neon);
  margin-bottom: 16px;
  text-transform: uppercase;
  position: relative;
  padding: 4px 14px;
  background: rgba(94, 233, 227, 0.08);
  border-radius: 999px;
}
.section-title {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(36px, 5.5vw, 68px);
  line-height: 1;
  letter-spacing: 0.02em;
  margin-bottom: 16px;
}
.section-sub {
  color: var(--text-dim);
  font-size: clamp(14px, 1.2vw, 16px);
}

/* Reveal-on-scroll */
.reveal {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s var(--ease-out), transform 0.8s var(--ease-out);
}
.reveal.in-view {
  opacity: 1;
  transform: translateY(0);
}

/* Lenis smooth (momentum) scrolling — only active once JS attaches .lenis */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ============ JERSEYS ============ */
.section-jerseys {
  background: linear-gradient(180deg, var(--bg) 0%, #0c0c0c 100%);
}

.jersey-filter {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 48px;
  flex-wrap: wrap;
}
.chip {
  padding: 10px 22px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  color: var(--text-dim);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  transition: all 0.3s var(--ease);
}
.chip:hover {
  color: var(--text);
  border-color: rgba(94, 233, 227, 0.4);
}
.chip.active {
  background: var(--grad-neon);
  color: #000;
  border-color: transparent;
  box-shadow: 0 4px 16px -4px rgba(94, 233, 227, 0.5);
}

.jersey-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
}

.jersey-card {
  position: relative;
  background: var(--surface);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: all 0.5s var(--ease-out);
  perspective: 1000px;
  display: flex;
  flex-direction: column;
}
.jersey-card.hide { display: none; }

.jersey-card::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: var(--radius);
  padding: 1px;
  background: linear-gradient(135deg, rgba(94, 233, 227, 0) 0%, rgba(94, 233, 227, 0.5) 50%, rgba(0, 212, 255, 0) 100%);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  opacity: 0;
  transition: opacity 0.4s var(--ease);
  pointer-events: none;
}

.jersey-card:hover {
  transform: translateY(-8px);
  border-color: rgba(94, 233, 227, 0.3);
  box-shadow: 0 20px 60px -20px rgba(0, 0, 0, 0.8), 0 0 40px -10px rgba(94, 233, 227, 0.2);
}
.jersey-card:hover::before { opacity: 1; }
.jersey-card:hover .jersey-img-wrap { transform: scale(1.05) rotateY(8deg); }
.jersey-card:hover .jersey-shine { transform: translateX(100%); }

.jersey-img-wrap {
  position: relative;
  aspect-ratio: 1 / 1.05;
  background: linear-gradient(135deg, #0d0d0d 0%, #1a1a1a 100%);
  display: grid;
  place-items: center;
  overflow: hidden;
  transition: transform 0.6s var(--ease-out);
  transform-style: preserve-3d;
}
.jersey-img-wrap svg { width: 80%; height: 80%; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.5)); }

.jersey-tag {
  position: absolute;
  top: 14px; left: 14px;
  padding: 5px 12px;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  z-index: 2;
}
.jersey-tag.home { color: var(--neon); border-color: rgba(94, 233, 227, 0.3); }
.jersey-tag.away { color: var(--blue); border-color: rgba(0, 212, 255, 0.3); }
.jersey-tag.retro { color: var(--gold); border-color: rgba(255, 215, 0, 0.3); }

/* Stock badge — top-right of the image area */
.stock-badge {
  position: absolute;
  top: 14px; right: 14px;
  padding: 5px 10px;
  background: rgba(0, 0, 0, 0.75);
  backdrop-filter: blur(10px);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.stock-badge::before {
  content: '';
  width: 6px; height: 6px; border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 8px currentColor;
}
.stock-badge.ok   { color: #5ee9e3; border: 1px solid rgba(94, 233, 227, 0.35); }
.stock-badge.low  { color: #ffb547; border: 1px solid rgba(255, 181, 71, 0.35); animation: pulseBadge 1.6s infinite; }
.stock-badge.oos  { color: #ff6b6b; border: 1px solid rgba(255, 107, 107, 0.4); }
.stock-badge.soon { color: #ffd700; border: 1px solid rgba(255, 215, 0, 0.45); background: linear-gradient(135deg, rgba(255, 215, 0, 0.12), rgba(94, 233, 227, 0.08)); }

/* Coming-soon card has a subtle gold border + slight image desaturation */
.jersey-card.coming-soon { border-color: rgba(255, 215, 0, 0.25); }
.jersey-card.coming-soon .jersey-img-wrap svg { filter: saturate(0.85) brightness(0.92); }
@keyframes pulseBadge {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}

/* Out of stock — desaturate the kit, stamp the diagonal banner */
.jersey-card.out-of-stock .jersey-img-wrap svg { filter: grayscale(0.7) brightness(0.65); }
.oos-stamp {
  position: absolute;
  top: 48%; left: 50%;
  transform: translate(-50%, -50%) rotate(-10deg);
  padding: 8px 22px;
  background: rgba(122, 31, 43, 0.92);
  color: #fff;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.2em;
  border: 2px solid #fff;
  border-radius: 4px;
  text-transform: uppercase;
  z-index: 3;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6);
  white-space: nowrap;
  pointer-events: none;
}
.jersey-card.out-of-stock .size-btn { opacity: 0.4; pointer-events: none; }
.jersey-card.out-of-stock:hover .jersey-img-wrap { transform: none; }
.jersey-order.notify {
  background: linear-gradient(135deg, #2a2f3a 0%, #1a1f28 100%);
  color: var(--text);
  border: 1px solid rgba(94, 233, 227, 0.25);
}
.jersey-order.notify:hover {
  background: linear-gradient(135deg, #3a4150 0%, #1a1f28 100%);
  border-color: rgba(94, 233, 227, 0.5);
  box-shadow: 0 8px 20px -6px rgba(94, 233, 227, 0.3);
}

.jersey-shine {
  position: absolute;
  top: 0; left: 0;
  width: 60%; height: 100%;
  background: linear-gradient(105deg,
    transparent 30%,
    rgba(255, 255, 255, 0.08) 50%,
    transparent 70%);
  transform: translateX(-100%);
  transition: transform 0.8s var(--ease-out);
  pointer-events: none;
  z-index: 1;
}

.jersey-body {
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  flex: 1;
}

.jersey-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}
.jersey-country {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  line-height: 1;
  letter-spacing: 0.02em;
}
.jersey-price {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  color: var(--neon);
  white-space: nowrap;
}

.size-picker {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}

/* Country-name text painted with the country's flag gradient.
   IMPORTANT: never use text-shadow on background-clip:text elements —
   on mobile browsers (iOS Safari, Android Chrome) the shadow renders
   the original letter shapes in solid color OVER the gradient,
   masking the colors. Use filter:drop-shadow instead (applies to the
   actual rendered pixels, not the underlying text). */
.flag-text {
  background-clip: text;
  -webkit-background-clip: text;
  color: transparent;                  /* spec-correct */
  -webkit-text-fill-color: transparent; /* Safari fallback */
  background-color: var(--text);        /* fallback if background-clip unsupported */
  filter: drop-shadow(0 2px 3px rgba(0, 0, 0, 0.55));
  letter-spacing: 0.03em;
}
.size-btn {
  height: 34px;
  padding: 0 2px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: rgba(255, 255, 255, 0.02);
  color: var(--text-dim);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: all 0.2s var(--ease);
}
.size-btn:hover {
  border-color: var(--neon);
  color: var(--text);
}
.size-btn.active {
  background: var(--grad-neon);
  color: #000;
  border-color: transparent;
  box-shadow: 0 4px 12px -4px rgba(94, 233, 227, 0.5);
}

.jersey-order {
  margin-top: auto;
  width: 100%;
  padding: 12px;
  background: #25d366;
  color: #fff;
  font-weight: 700;
  border-radius: 10px;
  font-size: 13px;
  letter-spacing: 0.05em;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s var(--ease);
  text-transform: uppercase;
}
.jersey-order:hover {
  background: #1ebe5d;
  box-shadow: 0 8px 20px -6px rgba(37, 211, 102, 0.5);
}
.jersey-order svg { flex-shrink: 0; }

/* ============ TRUST GRID ============ */
.section-why {
  background: linear-gradient(180deg, #0c0c0c 0%, var(--bg) 100%);
}
.trust-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
}
.trust-card {
  padding: 32px 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  transition: all 0.4s var(--ease);
  position: relative;
  overflow: hidden;
}
.trust-card::after {
  content: '';
  position: absolute;
  top: -50%; right: -50%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(94, 233, 227, 0.08), transparent 70%);
  opacity: 0;
  transition: opacity 0.4s var(--ease);
}
.trust-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 233, 227, 0.25);
  background: rgba(94, 233, 227, 0.02);
}
.trust-card:hover::after { opacity: 1; }
.trust-ico {
  font-size: 36px;
  margin-bottom: 16px;
  filter: drop-shadow(0 4px 12px rgba(94, 233, 227, 0.3));
}
.trust-card h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.03em;
  margin-bottom: 8px;
}
.trust-card p {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.6;
}

/* ============ OFFERS ============ */
.section-offers {
  background: var(--bg);
  position: relative;
  overflow: hidden;
}
.section-offers::before {
  content: '';
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 800px; height: 600px;
  background: radial-gradient(ellipse, rgba(255, 215, 0, 0.08), transparent 60%);
  filter: blur(60px);
  pointer-events: none;
}
.offers-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 24px;
  position: relative;
}
.offer-card {
  padding: 36px 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  position: relative;
  text-align: center;
  transition: all 0.4s var(--ease);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.offer-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 233, 227, 0.3);
}
.offer-featured {
  background: linear-gradient(135deg, rgba(94, 233, 227, 0.06), rgba(0, 212, 255, 0.04));
  border-color: rgba(94, 233, 227, 0.25);
  box-shadow: 0 0 40px -10px rgba(94, 233, 227, 0.3);
}
.offer-tag {
  position: absolute;
  top: -12px; left: 50%;
  transform: translateX(-50%);
  padding: 5px 14px;
  background: var(--grad-neon);
  color: #000;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  border-radius: 999px;
  text-transform: uppercase;
}
.offer-card h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 32px;
  letter-spacing: 0.02em;
  margin-top: 8px;
}
.offer-card p {
  color: var(--text-dim);
  font-size: 14px;
  min-height: 42px;
}
.offer-price {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  color: var(--neon);
  margin: 6px 0 14px;
}
.offer-price .strike {
  color: var(--text-mute);
  text-decoration: line-through;
  font-size: 18px;
  margin-right: 8px;
}
.offer-card .btn { width: 100%; margin-top: auto; }

/* ============================================================
   MATCH HUB
   ============================================================ */
.section-matches {
  background: linear-gradient(180deg, var(--bg) 0%, #080d12 100%);
  position: relative;
  overflow: hidden;
}
.section-matches::before {
  content: '';
  position: absolute;
  top: 10%; left: -10%;
  width: 600px; height: 600px;
  background: radial-gradient(circle, rgba(94, 233, 227, 0.06), transparent 60%);
  filter: blur(60px);
  pointer-events: none;
}

/* Featured next match — big card */
.match-featured {
  position: relative;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 32px;
  padding: 36px 40px;
  margin-bottom: 36px;
  background:
    radial-gradient(ellipse at center, rgba(94, 233, 227, 0.06) 0%, transparent 70%),
    linear-gradient(135deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(20px);
  box-shadow: 0 0 60px -20px rgba(94, 233, 227, 0.4);
  overflow: hidden;
}
.match-featured::before {
  content: 'NEXT KICK-OFF';
  position: absolute;
  top: 14px; left: 50%;
  transform: translateX(-50%);
  padding: 4px 12px;
  background: var(--grad-neon);
  color: #052424;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: 0.2em;
  border-radius: 999px;
}
.mf-team {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.mf-team.away { align-items: center; }
.mf-flag {
  width: 110px; height: 76px;
  border-radius: 10px;
  border: 2px solid rgba(255, 255, 255, 0.18);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5);
  position: relative;
  overflow: hidden;
  background: #0c1217;
}
.mf-flag img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.mf-flag::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.12), transparent 50%);
  pointer-events: none;
  z-index: 1;
}
.mf-name {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.04em;
}
.mf-center {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  padding: 0 12px;
}
.mf-vs {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 36px;
  color: var(--text-mute);
  line-height: 1;
}
.mf-countdown {
  display: flex;
  gap: 6px;
  padding: 12px 16px;
  background: rgba(5, 10, 14, 0.7);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.mf-cd-box {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 42px;
}
.mf-cd-num {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  line-height: 1;
  color: var(--neon);
  font-variant-numeric: tabular-nums;
}
.mf-cd-lbl {
  font-size: 8px;
  letter-spacing: 0.15em;
  color: var(--text-mute);
  margin-top: 4px;
  text-transform: uppercase;
}
.mf-cd-sep { color: var(--text-mute); font-size: 18px; line-height: 24px; margin: 0 -2px; }
.mf-meta {
  font-size: 11px;
  color: var(--text-mute);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
}
.mf-meta strong { color: var(--text); font-weight: 600; }
.mf-actions { display: flex; gap: 8px; margin-top: 4px; }
.mf-actions .btn { padding: 8px 14px; font-size: 12px; }

/* Tabs */
.match-tabs {
  display: flex;
  gap: 6px;
  padding: 6px;
  margin: 0 auto 36px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  backdrop-filter: blur(20px);
  max-width: max-content;
}
.match-tab {
  padding: 10px 22px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: var(--text-dim);
  border-radius: 999px;
  transition: all 0.3s var(--ease);
}
.match-tab:hover { color: var(--text); }
.match-tab.active {
  background: var(--grad-neon);
  color: #052424;
  box-shadow: 0 4px 14px -4px rgba(94, 233, 227, 0.5);
}

.match-panel { animation: fadeInUp 0.5s var(--ease-out); }

/* Fixture grid */
.match-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 18px;
}
.match-card {
  position: relative;
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  gap: 16px;
  transition: all 0.3s var(--ease);
}
.match-card:hover {
  transform: translateY(-4px);
  border-color: rgba(94, 233, 227, 0.3);
  box-shadow: 0 12px 32px -12px rgba(0, 0, 0, 0.6);
}
.match-card.has-jersey { border-color: rgba(94, 233, 227, 0.2); }

.mc-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--text-mute);
  text-transform: uppercase;
}
.mc-head .mc-stage { color: var(--neon); font-weight: 700; }
.mc-head .mc-date  { color: var(--text-dim); }

.mc-teams {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 12px;
  align-items: center;
}
.mc-team { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.mc-flag {
  width: 68px; height: 46px;
  border-radius: 6px;
  border: 1.5px solid rgba(255, 255, 255, 0.15);
  position: relative;
  overflow: hidden;
  background: #0c1217;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);
}
.mc-flag img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.mc-flag::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.10), transparent 60%);
  z-index: 1;
}
/* Never-blank fallback: colored country-code chip when no flag image exists.
   Fills whatever flag container it sits in (.mf-flag / .mc-flag / mini-flag). */
.flag-code {
  width: 100%; height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-weight: 800;
  font-size: 14px;
  letter-spacing: 0.06em;
  line-height: 1;
}
.group-table .team-mini-flag .flag-code { font-size: 9px; }

.mc-team-name {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-align: center;
}
.mc-vs { font-family: 'Bohemian Typewriter', sans-serif; color: var(--text-mute); font-size: 18px; }

.mc-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  padding-top: 12px;
  border-top: 1px dashed var(--border);
}
.mc-venue {
  font-size: 11px;
  color: var(--text-mute);
  line-height: 1.4;
  flex: 1;
}
.mc-venue strong { color: var(--text-dim); display: block; font-weight: 600; font-size: 12px; }

.mc-countdown-pill {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 5px 10px;
  background: rgba(94, 233, 227, 0.08);
  color: var(--neon);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border: 1px solid rgba(94, 233, 227, 0.25);
  white-space: nowrap;
}

.mc-actions { display: flex; gap: 8px; }
.mc-ico-btn {
  width: 34px; height: 34px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text-dim);
  transition: all 0.2s var(--ease);
}
.mc-ico-btn:hover {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
  transform: translateY(-1px);
}

/* Group standings */
.groups-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 18px;
}
.group-card {
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.group-card h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.06em;
  margin-bottom: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
}
.group-card h3 .grp-badge {
  display: inline-grid;
  place-items: center;
  width: 32px; height: 32px;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 800;
}
.group-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.group-table th {
  padding: 8px 6px;
  text-align: center;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--text-mute);
  text-transform: uppercase;
  border-bottom: 1px solid var(--border);
}
.group-table th:first-child { text-align: left; padding-left: 4px; }
.group-table td {
  padding: 10px 6px;
  text-align: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}
.group-table tr:last-child td { border-bottom: none; }
.group-table td:first-child { text-align: left; padding-left: 4px; }
.group-table .team-cell {
  display: flex;
  align-items: center;
  gap: 8px;
}
.group-table .team-mini-flag {
  width: 28px; height: 20px;
  border-radius: 3px;
  border: 1px solid rgba(255, 255, 255, 0.14);
  overflow: hidden;
  flex-shrink: 0;
}
.group-table .team-mini-flag img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.group-table .team-name { font-weight: 600; font-size: 13px; }
.group-table tr.team-highlight td { background: rgba(94, 233, 227, 0.04); }
.group-table tr.team-highlight .team-name { color: var(--neon); }
.group-table td.pts { font-family: 'Bohemian Typewriter', sans-serif; font-size: 16px; color: var(--neon); }

/* Venues */
.venues-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 16px;
}
.venue-card {
  padding: 22px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  transition: all 0.3s var(--ease);
  position: relative;
  overflow: hidden;
}
.venue-card:hover {
  transform: translateY(-4px);
  border-color: rgba(94, 233, 227, 0.3);
}
.venue-card::before {
  content: '';
  position: absolute;
  top: -40%; right: -20%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(94, 233, 227, 0.08), transparent 70%);
  pointer-events: none;
}
.venue-host-pill {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  background: rgba(0, 0, 0, 0.5);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 10px;
  letter-spacing: 0.1em;
  color: var(--text-dim);
  text-transform: uppercase;
  margin-bottom: 14px;
}
.venue-host-pill .vp-flag {
  width: 20px; height: 14px;
  border-radius: 2px;
  display: inline-block;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.venue-host-pill .vp-flag img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.venue-card h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
  line-height: 1.1;
}
.venue-card .v-city {
  font-size: 13px;
  color: var(--text-dim);
  margin-bottom: 14px;
}
.venue-card .v-cap {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: var(--text-mute);
  letter-spacing: 0.05em;
}
.venue-card .v-cap strong {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 16px;
  color: var(--neon);
  letter-spacing: 0.04em;
}

/* Match-day flash strip (top of page) */
.matchday-strip {
  position: relative;
  z-index: 99;
  padding: 10px 16px;
  background: linear-gradient(90deg, #1d6b3a, #0f4524 50%, #1d6b3a);
  color: var(--cream);
  font-size: 13px;
  text-align: center;
  font-weight: 600;
  letter-spacing: 0.02em;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border-bottom: 1px solid rgba(94, 233, 227, 0.25);
  animation: stripShine 6s linear infinite;
  background-size: 200% 100%;
}
.matchday-strip[hidden] { display: none; }
.matchday-strip strong { color: var(--neon); }
.matchday-strip a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 12px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(94, 233, 227, 0.4);
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  color: var(--neon);
  letter-spacing: 0.05em;
}
.matchday-strip a:hover { background: rgba(94, 233, 227, 0.2); }
@keyframes stripShine {
  from { background-position: 0% 0; }
  to   { background-position: 200% 0; }
}

@media (max-width: 768px) {
  .match-featured {
    grid-template-columns: 1fr;
    text-align: center;
    padding: 32px 22px 26px;
  }
  .match-featured::before { top: 10px; }
  .mf-flag { width: 72px; height: 72px; font-size: 26px; }
  .mf-vs { display: none; }
  .mf-center { order: -1; }
  .match-tab { padding: 8px 14px; font-size: 12px; }
}

/* ============ REVIEWS ============ */
.section-reviews {
  background: linear-gradient(180deg, var(--bg) 0%, #0c0c0c 100%);
}
.reviews-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
}
.reviews-viewport {
  flex: 1;
  overflow: hidden;
}
.reviews-track {
  display: flex;
  gap: 24px;
  transition: transform 0.6s var(--ease-out);
}

/* Floating marquee mode — cards drift right→left continuously. JS clones the
   card list once so the loop seams perfectly (the second set starts exactly
   where the first ended). Hovering pauses for readability. Manual arrow
   clicks also pause autoplay. */
.reviews-track.is-floating {
  animation: reviews-float var(--marquee-duration, 60s) linear infinite;
  transition: none;
  will-change: transform;
}
.reviews-track.is-floating:hover,
.reviews-track.is-floating.is-paused {
  animation-play-state: paused;
}
@keyframes reviews-float {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }   /* exactly the first half (= 1 clone) */
}
@media (prefers-reduced-motion: reduce) {
  .reviews-track.is-floating { animation: none; }
}
.review-card {
  flex: 0 0 calc(33.333% - 16px);
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: 220px;
}
.stars {
  color: var(--gold);
  font-size: 18px;
  letter-spacing: 2px;
}
.review-card p {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.7;
  flex: 1;
  font-style: italic;
}
.review-card footer {
  display: flex;
  flex-direction: column;
  border-top: 1px solid var(--border);
  padding-top: 14px;
}
.review-card strong {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  letter-spacing: 0.04em;
}
.review-card span {
  font-size: 12px;
  color: var(--text-mute);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

/* Real-review polish: avatars, verified badges, purchase + location footer */
.rv-head {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.rv-avatar {
  width: 44px; height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.05em;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.18);
}
.rv-meta { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.rv-meta strong {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  color: var(--text);
}
.rv-sub {
  font-size: 11px;
  color: var(--text-mute);
  letter-spacing: 0.02em;
  text-transform: none;
}
.rv-verified {
  color: #51e0a4;
  font-weight: 600;
}
.rv-head .stars {
  font-size: 14px;
  letter-spacing: 1px;
  color: var(--gold);
  align-self: center;
}

.rv-body {
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.65;
  flex: 1;
  font-style: normal !important;   /* override italic from generic p rule above */
  margin-bottom: 12px;
}

.rv-foot {
  display: flex;
  flex-direction: column;
  gap: 4px;
  border-top: 1px dashed var(--border);
  padding-top: 12px;
}
.rv-foot .rv-buy {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: var(--neon);
  text-transform: uppercase;
}
.rv-foot .rv-loc {
  font-size: 11px;
  color: var(--text-mute);
  letter-spacing: 0;
  text-transform: none;
}
.review-nav {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 22px;
  display: grid;
  place-items: center;
  transition: all 0.3s var(--ease);
  flex-shrink: 0;
  z-index: 2;
}
.review-nav:hover {
  background: var(--grad-neon);
  color: #000;
  border-color: transparent;
  transform: scale(1.1);
}

/* ============ SIZE GUIDE ============ */
.section-size {
  background: var(--bg);
}
.size-wrap {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 48px;
  align-items: center;
  max-width: 960px;
  margin: 0 auto;
  padding: 40px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(20px);
}

/* 3D Jersey Viewer */
.size-3d {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.size-3d-stage {
  position: relative;
  aspect-ratio: 4 / 5;
  width: 100%;
  background:
    radial-gradient(ellipse at center 40%, rgba(94, 233, 227, 0.08) 0%, transparent 60%),
    linear-gradient(180deg, #0a1218 0%, #050a0e 100%);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.size-3d-stage.dragging { cursor: grabbing; }
.size-3d-stage.loaded .size-3d-loading,
.size-3d-stage.loaded .size-3d-fallback { display: none; }
.size-3d-stage.fallback canvas,
.size-3d-stage.fallback .size-3d-hud,
.size-3d-stage.fallback .size-3d-hint,
.size-3d-stage.fallback .size-3d-loading { display: none; }
.size-3d-stage.fallback .size-3d-fallback { display: block; }
.size-3d-stage canvas { display: block; width: 100% !important; height: 100% !important; }

.size-3d-loading {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  pointer-events: none;
}
.size-3d-loading span {
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--neon);
  animation: dotPulse 1.2s infinite ease-in-out;
}
.size-3d-loading span:nth-child(2) { animation-delay: 0.15s; }
.size-3d-loading span:nth-child(3) { animation-delay: 0.30s; }
@keyframes dotPulse {
  0%, 80%, 100% { transform: scale(0.5); opacity: 0.4; }
  40%           { transform: scale(1);   opacity: 1;   }
}

.size-3d-fallback {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  padding: 18px;
}

/* Floating HUD with size / chest / length */
.size-3d-hud {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 10px 12px;
  background: rgba(5, 10, 14, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 11px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  pointer-events: none;
  z-index: 2;
  min-width: 100px;
}
.hud-row { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.hud-lbl { color: var(--text-mute); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; }
.hud-val { color: var(--neon); font-family: 'Bohemian Typewriter', sans-serif; font-size: 14px; letter-spacing: 0.04em; }

/* Drag hint */
.size-3d-hint {
  position: absolute;
  bottom: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  background: rgba(5, 10, 14, 0.7);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-mute);
  pointer-events: none;
  z-index: 2;
  transition: opacity 0.6s var(--ease);
}
.size-3d-stage.interacted .size-3d-hint { opacity: 0; }

/* Size chips for the 3D viewer */
.size-3d-controls {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 8px;
}
.size-3d-chip {
  padding: 10px 0;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.03);
  color: var(--text-dim);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: all 0.2s var(--ease);
}
.size-3d-chip:hover { border-color: rgba(94, 233, 227, 0.45); color: var(--text); }
.size-3d-chip.active {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
  box-shadow: 0 4px 14px -4px rgba(94, 233, 227, 0.5);
}

/* Highlight the row in the size table that matches the selected 3D size */
.size-table tr.size-active td {
  background: rgba(94, 233, 227, 0.08);
  color: var(--text);
}
.size-table tr.size-active td:first-child strong { color: var(--neon); }

.size-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.size-table {
  width: 100%;
  min-width: 480px;
  border-collapse: collapse;
  font-size: 14px;
}
.size-table th, .size-table td {
  padding: 12px 10px;
  text-align: left;
  border-bottom: 1px solid var(--border);
  white-space: nowrap;
}
.size-table th {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 13px;
  letter-spacing: 0.15em;
  color: var(--neon);
  text-transform: uppercase;
  border-bottom: 2px solid rgba(94, 233, 227, 0.3);
}
.size-table tr:hover td { background: rgba(94, 233, 227, 0.04); }
.size-table td:first-child strong {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  color: var(--text);
}
.size-note {
  margin-top: 14px;
  font-size: 13px;
  color: var(--text-mute);
  font-style: italic;
}

/* ============ HOW TO ORDER ============ */
.section-how {
  background: linear-gradient(180deg, var(--bg) 0%, #0c0c0c 100%);
  position: relative;
}
.steps-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px;
  position: relative;
}
.step-card {
  padding: 36px 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  text-align: center;
  position: relative;
  transition: all 0.4s var(--ease);
}
.step-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 233, 227, 0.3);
}
.step-num {
  position: absolute;
  top: 16px; right: 24px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 64px;
  color: rgba(94, 233, 227, 0.08);
  line-height: 1;
}
.step-ico {
  font-size: 48px;
  margin-bottom: 16px;
}
.step-card h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.step-card p {
  color: var(--text-dim);
  font-size: 14px;
}

/* ============ FAQ ============ */
.section-faq {
  background: var(--bg);
}
.faq-list {
  max-width: 800px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.faq-item {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  transition: all 0.3s var(--ease);
  backdrop-filter: blur(20px);
}
.faq-item[open] {
  border-color: rgba(94, 233, 227, 0.3);
  background: rgba(94, 233, 227, 0.02);
}
.faq-item summary {
  padding: 20px 24px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  list-style: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  transition: color 0.3s var(--ease);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--neon); }
.faq-icon {
  width: 28px; height: 28px;
  display: grid;
  place-items: center;
  background: rgba(94, 233, 227, 0.1);
  color: var(--neon);
  border-radius: 50%;
  font-weight: 700;
  font-size: 18px;
  flex-shrink: 0;
  transition: transform 0.3s var(--ease);
}
.faq-item[open] .faq-icon {
  transform: rotate(45deg);
  background: var(--grad-neon);
  color: #000;
}
.faq-body {
  padding: 0 24px 22px;
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1.7;
  animation: fadeInUp 0.4s var(--ease-out);
}

/* ============ FOOTER ============ */
.footer {
  background: #050505;
  border-top: 1px solid var(--border);
  padding-top: 80px;
}
.footer-inner {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1.5fr;
  gap: 48px;
  padding-bottom: 60px;
}
.footer-col h4 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  letter-spacing: 0.15em;
  color: var(--neon);
  margin-bottom: 18px;
  text-transform: uppercase;
}
.footer-col a {
  display: block;
  font-size: 14px;
  color: var(--text-dim);
  padding: 5px 0;
  transition: color 0.2s var(--ease);
}
.footer-col a:hover { color: var(--neon); }
.footer-col p {
  font-size: 14px;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.footer-brand .logo { margin-bottom: 18px; }
.footer-crest {
  display: inline-block;
  margin-bottom: 22px;
  filter: drop-shadow(0 0 14px rgba(94, 233, 227, 0.25));
  transition: transform 0.4s var(--ease), filter 0.4s var(--ease);
}
.footer-crest:hover {
  transform: translateY(-3px);
  filter: drop-shadow(0 0 22px rgba(94, 233, 227, 0.55));
}
.footer-crest img {
  display: block;
  width: 130px;
  height: auto;
}
.footer-brand > p {
  color: var(--text-dim);
  font-size: 14px;
  max-width: 360px;
  margin-bottom: 20px;
}
.socials {
  display: flex;
  gap: 12px;
}
.socials a {
  width: 40px; height: 40px;
  display: grid;
  place-items: center;
  border-radius: 10px;
  background: var(--surface);
  border: 1px solid var(--border);
  color: var(--text-dim);
  padding: 0;
  transition: all 0.3s var(--ease);
}
.socials a:hover {
  background: var(--grad-neon);
  color: #000;
  border-color: transparent;
  transform: translateY(-3px);
}
.footer-bottom {
  border-top: 1px solid var(--border);
  padding: 24px 0;
  text-align: center;
}
.footer-bottom p {
  font-size: 13px;
  color: var(--text-mute);
}
.footer-bottom .dot { margin: 0 10px; color: var(--neon); }

/* ============ FLOATING BUTTONS ============ */
.float-whatsapp, .float-messenger, .float-instagram {
  position: fixed;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  z-index: 50;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4);
  transition: transform 0.3s var(--ease);
}
.float-whatsapp {
  bottom: 24px;
  right: 24px;
  background: #25d366;
}
.float-messenger {
  bottom: 92px;
  right: 24px;
  background: linear-gradient(135deg, #0084ff, #00c6ff);
}
.float-instagram {
  bottom: 160px;
  right: 24px;
  background: radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285aeb 90%);
}
.float-whatsapp:hover, .float-messenger:hover, .float-instagram:hover {
  transform: scale(1.1) rotate(-8deg);
}
.wa-pulse {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #25d366;
  animation: waPulse 2s infinite;
  z-index: -1;
}
@keyframes waPulse {
  0% { transform: scale(1); opacity: 0.7; }
  100% { transform: scale(1.5); opacity: 0; }
}

/* Floating cart pill */
.cart-pill {
  position: fixed;
  bottom: 298px;
  right: 24px;
  height: 48px;
  min-width: 48px;
  padding: 0 14px 0 12px;
  display: none;
  align-items: center;
  gap: 8px;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 999px;
  box-shadow: 0 10px 24px -8px rgba(94, 233, 227, 0.6);
  z-index: 50;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  font-weight: 700;
}
.cart-pill.show { display: inline-flex; animation: cartPop 0.4s var(--ease-out); }
.cart-pill:hover {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 14px 32px -8px rgba(94, 233, 227, 0.8);
}
.cart-count {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  line-height: 1;
}
@keyframes cartPop {
  0% { transform: scale(0.4); opacity: 0; }
  60% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); }
}

/* Newsletter */
.section-newsletter {
  padding: 100px 0 60px;
  background: linear-gradient(180deg, var(--bg) 0%, #050a0e 100%);
  position: relative;
  overflow: hidden;
}
.section-newsletter::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(600px 300px at 20% 50%, rgba(94, 233, 227, 0.08), transparent 60%),
    radial-gradient(600px 300px at 80% 50%, rgba(29, 107, 58, 0.08), transparent 60%);
  pointer-events: none;
}
.newsletter-wrap {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  padding: 56px 48px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(20px);
  box-shadow: 0 0 60px -20px rgba(94, 233, 227, 0.25);
}
.nl-text .section-title { text-align: left; margin-bottom: 16px; }
.nl-text .section-sub  { text-align: left; }
.nl-text .eyebrow      { margin-bottom: 12px; }
.nl-form { width: 100%; }
.nl-row {
  display: flex;
  gap: 10px;
  background: rgba(0, 0, 0, 0.4);
  padding: 8px;
  border-radius: 999px;
  border: 1px solid var(--border);
}
.nl-row input {
  flex: 1;
  background: transparent;
  border: none;
  outline: none;
  color: var(--text);
  padding: 0 18px;
  font-size: 15px;
}
.nl-row input::placeholder { color: var(--text-mute); }
.nl-row .btn { flex-shrink: 0; }
.nl-note {
  font-size: 12px;
  color: var(--text-mute);
  margin-top: 12px;
  text-align: center;
}
.nl-success {
  display: none;
  font-size: 14px;
  color: var(--neon);
  margin-top: 12px;
  text-align: center;
  font-weight: 600;
}
.nl-success.show { display: block; animation: fadeInUp 0.4s var(--ease-out); }

@media (max-width: 768px) {
  .newsletter-wrap { grid-template-columns: 1fr; gap: 28px; padding: 36px 24px; }
  .nl-row { flex-direction: column; padding: 12px; border-radius: 18px; }
  .nl-row input { padding: 12px 6px; text-align: center; }
  .nl-row .btn { width: 100%; }
  .cart-pill { bottom: 220px; }
}

.back-to-top {
  position: fixed;
  bottom: 228px;
  right: 24px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: var(--surface);
  border: 1px solid var(--border);
  backdrop-filter: blur(20px);
  color: var(--neon);
  display: grid;
  place-items: center;
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: all 0.3s var(--ease);
  z-index: 50;
}
.back-to-top.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}
.back-to-top:hover {
  background: var(--grad-neon);
  color: #000;
  border-color: transparent;
}

/* ============ RESPONSIVE ============ */
@media (max-width: 968px) {
  .footer-inner { grid-template-columns: 1fr 1fr; }
  .review-card { flex: 0 0 calc(50% - 12px); }
  .size-wrap { grid-template-columns: 1fr; padding: 28px; gap: 28px; }
  .size-3d { max-width: 320px; margin: 0 auto; width: 100%; }
}

@media (max-width: 768px) {
  .section { padding: 80px 0; }
  .section-head { margin-bottom: 40px; }

  /* Mobile navbar — logo centered, hamburger floats right */
  .nav-inner { justify-content: center; position: relative; }
  .logo { margin: 0 auto; }
  .nav-cta {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    gap: 0;
  }
  .nav-cta .btn-whatsapp { display: none; }
  .hamburger { display: flex; }
  .nav-links {
    position: fixed;
    top: var(--nav-h);
    right: 0;
    width: 80%;
    max-width: 320px;
    height: calc(100vh - var(--nav-h));
    background: rgba(10, 10, 10, 0.98);
    backdrop-filter: blur(20px);
    flex-direction: column;
    align-items: flex-start;
    padding: 40px 28px;
    gap: 8px;
    transform: translateX(100%);
    transition: transform 0.4s var(--ease-out);
    border-left: 1px solid var(--border);
  }
  .nav-links.active { transform: translateX(0); }
  .nav-links a {
    width: 100%;
    padding: 16px 0;
    font-size: 18px;
    border-bottom: 1px solid var(--border);
  }
  .nav-links a::after { display: none; }

  .hero { padding: 100px 0 80px; }
  .hero-title { font-size: clamp(40px, 12vw, 80px); }

  /* Centred logo splash on phones only (desktop keeps the full-cover poster). */
  .hero-poster {
    inset: auto;
    top: 44%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: min(86vw, 460px);
    height: auto;
    object-fit: contain;
    object-position: center;
    opacity: 0.82;
    filter: drop-shadow(0 12px 40px rgba(0, 0, 0, 0.5));
    transition: opacity 1s ease, transform 1s ease;
  }
  .hero-poster.dimming { opacity: 0.6; filter: drop-shadow(0 12px 40px rgba(0, 0, 0, 0.5)); }
  .hero-poster.fade-out { opacity: 0; transform: translate(-50%, -50%) scale(1.04); }

  /* Watermark: bigger leftward nudge on mobile — the logo in the image
     is inherently right-of-centre, so we push harder than desktop's 1.1%. */
  .hero-watermark {
    width: 145vw;
    opacity: 0.26;
    transform: translate(calc(-50% - 5%), -50%);
    animation-name: watermarkBreathMobile;
  }

  .logo-mark { height: 80px; }
  .countdown { padding: 14px 18px; gap: 4px; }
  .cd-box { min-width: 48px; }
  .cd-num { font-size: 28px; }
  .cd-sep { font-size: 20px; }
  .hero-stats { gap: 32px; }
  .hero-stats strong { font-size: 28px; }

  .jersey-grid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
  .review-card { flex: 0 0 100%; }

  .footer-inner { grid-template-columns: 1fr; gap: 32px; padding-bottom: 40px; }

  .float-whatsapp, .float-messenger { width: 52px; height: 52px; }
  .float-messenger { bottom: 88px; }
  .back-to-top { bottom: 152px; width: 44px; height: 44px; }
}

@media (max-width: 480px) {
  .container { padding: 0 18px; }
  .hero-cta { flex-direction: column; width: 100%; }
  .hero-cta .btn { width: 100%; }
  .jersey-grid { grid-template-columns: 1fr; }
  .countdown { transform: scale(0.9); }
}

/* ============================================================
   ORDER / CHECKOUT PAGE
   ============================================================ */
.page-order {
  background:
    radial-gradient(800px 600px at 50% -10%, rgba(94, 233, 227, 0.08), transparent 60%),
    var(--bg);
  min-height: 100vh;
}
.order-nav { background: rgba(10, 14, 18, 0.85); backdrop-filter: blur(16px); border-bottom: 1px solid var(--border); height: 84px; }
.order-nav .nav-inner { justify-content: space-between; }
.order-nav .logo-mark { height: 76px; }
.order-nav .back-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-dim);
  font-size: 14px;
  font-weight: 600;
  transition: color 0.2s var(--ease);
}
.order-nav .back-link:hover { color: var(--neon); }

.checkout { padding: 124px 0 80px; }
.checkout-head { margin-bottom: 32px; }
.checkout-head .section-title { font-size: clamp(36px, 4.5vw, 56px); text-align: left; }
.breadcrumb {
  list-style: none;
  display: flex;
  gap: 8px;
  font-size: 12px;
  color: var(--text-mute);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 12px;
}
.breadcrumb li:not(:last-child)::after {
  content: '›';
  margin-left: 8px;
  color: var(--text-mute);
}
.breadcrumb a { color: var(--text-dim); transition: color 0.2s var(--ease); }
.breadcrumb a:hover { color: var(--neon); }
.breadcrumb li:last-child { color: var(--neon); font-weight: 600; }

.checkout-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 36px;
  align-items: flex-start;
}

/* Form */
.checkout-form { display: flex; flex-direction: column; gap: 24px; }
.form-block {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.block-title {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.06em;
  margin-bottom: 22px;
  display: flex;
  align-items: center;
  gap: 14px;
  text-transform: uppercase;
}
.step-pill {
  display: grid;
  place-items: center;
  width: 32px;
  height: 32px;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 50%;
  font-size: 14px;
  font-weight: 800;
  font-family: 'Inter', sans-serif;
}

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 14px; }
.form-row.full { grid-template-columns: 1fr; }
.form-row label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--text-dim);
  text-transform: uppercase;
}
.form-row .req { color: #ff6b6b; margin-left: 3px; }
.form-row input, .form-row select, .form-row textarea {
  width: 100%;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 14px;
  letter-spacing: 0;
  font-family: inherit;
  font-weight: 400;
  transition: all 0.2s var(--ease);
}
.form-row textarea { resize: vertical; min-height: 80px; }
.form-row input::placeholder, .form-row textarea::placeholder { color: var(--text-mute); }
.form-row input:focus, .form-row select:focus, .form-row textarea:focus {
  outline: none;
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.04);
  box-shadow: 0 0 0 3px rgba(94, 233, 227, 0.15);
}
.form-row select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235ee9e3' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 12px; padding-right: 38px; }
.form-row select option { background: #0c1217; color: var(--text); }
.form-row .hint { font-size: 11px; color: var(--text-mute); font-weight: 400; letter-spacing: 0; text-transform: none; margin-top: 4px; }

/* Delivery options */
.delivery-options, .payment-options {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.payment-options { grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }

/* Mobile-banking instructions block (bKash / Nagad / Rocket) */
.pay-instructions {
  margin-top: 18px;
  padding: 16px;
  background: rgba(94, 233, 227, 0.06);
  border: 1px dashed rgba(94, 233, 227, 0.35);
  border-radius: 12px;
}
.pay-num-card { display: flex; flex-direction: column; gap: 6px; }
.pay-num-label {
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-mute);
  font-weight: 700;
}
.pay-num-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.pay-num {
  font-family: 'Courier Prime', 'Courier New', monospace;
  font-size: 22px;
  letter-spacing: 0.08em;
  color: var(--neon);
  text-shadow: 0 0 12px rgba(94, 233, 227, 0.35);
}
.copy-btn {
  padding: 6px 14px;
  background: rgba(94, 233, 227, 0.15);
  border: 1px solid rgba(94, 233, 227, 0.4);
  border-radius: 8px;
  color: var(--neon);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all 0.2s var(--ease);
}
.copy-btn:hover { background: rgba(94, 233, 227, 0.25); }
.pay-num-hint { font-size: 12px; color: var(--text-dim); line-height: 1.5; }
.pay-num-hint strong { color: var(--text); font-weight: 700; }

/* Bank Transfer details grid */
.bank-grid {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 6px 0 10px;
}
.bank-row {
  display: grid;
  grid-template-columns: 130px 1fr auto;
  gap: 10px;
  align-items: center;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  font-size: 13px;
}
.bank-row > span {
  color: var(--text-mute);
  font-size: 11px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 600;
}
.bank-row > strong {
  font-family: 'Courier Prime', 'Courier New', monospace;
  color: var(--text);
  letter-spacing: 0.04em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .bank-row { grid-template-columns: 1fr auto; }
  .bank-row > span { grid-column: 1 / -1; padding-bottom: 0; }
}
.opt-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--border);
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s var(--ease);
  font-size: 13px;
  font-weight: 600;
}
.opt-card input { position: absolute; opacity: 0; pointer-events: none; }
.opt-card .opt-ico {
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.04);
  border-radius: 8px;
  font-size: 18px;
  flex-shrink: 0;
}
.opt-card .opt-text { display: flex; flex-direction: column; gap: 2px; }
.opt-card .opt-sub  { font-size: 11px; color: var(--text-mute); font-weight: 400; letter-spacing: 0; }
.opt-card:hover { border-color: rgba(94, 233, 227, 0.4); }
.opt-card:has(input:checked) {
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.06);
  box-shadow: 0 0 0 2px rgba(94, 233, 227, 0.25);
}
.opt-card:has(input:checked) .opt-ico { background: var(--grad-neon); color: #052424; }

/* Summary */
.order-summary {
  position: sticky;
  top: 96px;
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.summary-title {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.summary-title .sum-count {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 600;
  color: var(--text-mute);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.cart-items { display: flex; flex-direction: column; gap: 12px; max-height: 380px; overflow-y: auto; padding-right: 4px; }
.cart-empty {
  padding: 32px 12px;
  text-align: center;
  color: var(--text-mute);
  font-size: 14px;
}
.cart-empty a { color: var(--neon); font-weight: 600; }
.cart-item {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  gap: 12px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--border);
  border-radius: 12px;
  align-items: center;
}
.cart-item-img {
  width: 64px; height: 64px;
  background: #0a0f14;
  border-radius: 8px;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.cart-item-img svg { width: 90%; height: 90%; }
.cart-item-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cart-item-name { font-weight: 700; font-size: 13px; line-height: 1.2; }
.cart-item-meta { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; text-transform: uppercase; }
.cart-item-controls { display: flex; align-items: center; gap: 6px; margin-top: 4px; }
.qty-btn {
  width: 22px; height: 22px;
  border: 1px solid var(--border);
  border-radius: 6px;
  display: grid;
  place-items: center;
  color: var(--text-dim);
  font-size: 14px;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s var(--ease);
}
.qty-btn:hover { border-color: var(--neon); color: var(--neon); }
.qty-display { min-width: 24px; text-align: center; font-weight: 700; font-size: 13px; }
.cart-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}
.cart-item-price { font-family: 'Bohemian Typewriter', sans-serif; font-size: 16px; color: var(--neon); }
.cart-item-remove {
  width: 24px; height: 24px;
  display: grid;
  place-items: center;
  color: var(--text-mute);
  border-radius: 6px;
  transition: all 0.2s var(--ease);
}
.cart-item-remove:hover { color: #ff6b6b; background: rgba(255, 107, 107, 0.1); }

/* Free shipping progress */
.ship-progress {
  padding: 14px;
  background: rgba(94, 233, 227, 0.04);
  border: 1px solid rgba(94, 233, 227, 0.2);
  border-radius: 10px;
  font-size: 12px;
}
.ship-progress.complete { background: rgba(29, 107, 58, 0.15); border-color: rgba(29, 107, 58, 0.4); }
.ship-progress p { margin-bottom: 8px; color: var(--text-dim); }
.ship-progress strong { color: var(--neon); }
.ship-progress.complete strong { color: #51e0a4; }
.ship-bar {
  height: 6px;
  background: rgba(255, 255, 255, 0.06);
  border-radius: 999px;
  overflow: hidden;
}
.ship-bar-fill {
  height: 100%;
  background: var(--grad-neon);
  border-radius: 999px;
  transition: width 0.5s var(--ease-out);
  width: 0%;
}

/* Promo */
.promo-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 8px;
}
.promo-row input {
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 10px 14px;
  color: var(--text);
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.promo-row input::placeholder { color: var(--text-mute); letter-spacing: 0; text-transform: none; }
.promo-row input:focus { outline: none; border-color: var(--neon); background: rgba(94, 233, 227, 0.04); }
.promo-row button {
  padding: 0 16px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  transition: all 0.2s var(--ease);
}
.promo-row button:hover { background: var(--grad-neon); color: #052424; border-color: transparent; }
.promo-feedback {
  font-size: 12px;
  margin-top: -4px;
  min-height: 16px;
}
.promo-feedback.ok  { color: #51e0a4; }
.promo-feedback.bad { color: #ff6b6b; }

/* Totals */
.totals {
  border-top: 1px dashed var(--border);
  padding-top: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.totals-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-dim);
}
.totals-row.discount { color: #51e0a4; }
.totals-row.grand {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 28px;
  color: var(--text);
  border-top: 1px solid var(--border);
  padding-top: 14px;
  margin-top: 6px;
  letter-spacing: 0.04em;
}
.totals-row.grand span:last-child { color: var(--neon); }

.place-order-btn {
  width: 100%;
  padding: 18px;
  font-size: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 14px;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  box-shadow: 0 10px 30px -10px rgba(94, 233, 227, 0.6);
  transition: all 0.3s var(--ease);
}
.place-order-btn:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 16px 36px -10px rgba(94, 233, 227, 0.8);
}
.place-order-btn:disabled { opacity: 0.4; cursor: not-allowed; }

.trust-row {
  display: flex;
  justify-content: space-around;
  gap: 10px;
  padding-top: 14px;
  border-top: 1px dashed var(--border);
}
.trust-row > div {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: var(--text-mute);
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: center;
}
.trust-row span { font-size: 18px; }

.promo-hint {
  margin-top: 6px;
  font-size: 11px;
  color: var(--text-mute);
}
.promo-hint code {
  display: inline-block;
  padding: 2px 8px;
  background: rgba(94, 233, 227, 0.1);
  color: var(--neon);
  border-radius: 4px;
  font-family: 'Courier New', monospace;
  font-size: 11px;
  letter-spacing: 0.1em;
  margin: 0 2px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.2s;
}
.promo-hint code:hover { background: rgba(94, 233, 227, 0.2); }

/* Order success modal */
.order-success {
  position: fixed;
  inset: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.8);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
  animation: fadeInUp 0.3s var(--ease-out);
}
.order-success.show { display: flex; }
.order-success-card {
  max-width: 460px;
  width: 100%;
  padding: 40px 32px;
  background: linear-gradient(180deg, #11181f 0%, #0a0f14 100%);
  border: 1px solid rgba(94, 233, 227, 0.3);
  border-radius: var(--radius);
  text-align: center;
  box-shadow: 0 30px 80px -20px rgba(94, 233, 227, 0.3);
}
.order-success-icon {
  width: 72px; height: 72px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: var(--grad-neon);
  display: grid;
  place-items: center;
  color: #052424;
  font-size: 36px;
  box-shadow: 0 0 40px rgba(94, 233, 227, 0.5);
}
.order-success h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 32px;
  letter-spacing: 0.04em;
  margin-bottom: 10px;
}
.order-success p {
  color: var(--text-dim);
  margin-bottom: 22px;
  font-size: 14px;
  line-height: 1.6;
}
.order-success .order-ref {
  display: inline-block;
  padding: 6px 14px;
  background: rgba(94, 233, 227, 0.1);
  color: var(--neon);
  border-radius: 8px;
  font-family: 'Courier New', monospace;
  font-weight: 700;
  letter-spacing: 0.1em;
  margin-bottom: 20px;
}

/* ============================================================
   PROMOTIONAL SALE — strikethrough prices, card flash, popup
   ============================================================ */
/* On-sale price on jersey cards: old price struck, new price in gold */
.jersey-price.on-sale { display: inline-flex; align-items: baseline; gap: 8px; }
.jersey-price .price-was {
  font-size: 16px;
  color: var(--text-mute);
  text-decoration: line-through;
  text-decoration-thickness: 2px;
}
.jersey-price .price-now { color: var(--gold); }

/* Quick-view price strikethrough */
.qv-price .price-was {
  color: var(--text-mute);
  text-decoration: line-through;
  text-decoration-thickness: 2px;
  margin-right: 8px;
  font-size: 0.7em;
}
.qv-price .price-now { color: var(--gold); }

/* Cart-line struck original price (order page) */
.cart-item-price .ci-was {
  color: var(--text-mute);
  text-decoration: line-through;
  font-size: 0.82em;
  margin-right: 4px;
}

/* Corner "SALE −৳X" flash on cards */
.sale-flash {
  position: absolute;
  top: 12px; left: 12px;
  z-index: 4;
  padding: 5px 10px;
  background: var(--grad-gold);
  color: #2a1c00;
  font-family: 'Bebas Neue', 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.06em;
  border-radius: 8px;
  box-shadow: 0 4px 14px rgba(255, 215, 0, 0.35);
  animation: salePulse 2.4s ease-in-out infinite;
}
@keyframes salePulse {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.06); }
}

/* ---- Sale popup overlay ---- */
.sale-popup {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.78);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 24px;
}
.sale-popup.show { display: flex; animation: fadeInUp 0.3s var(--ease-out); }
.sale-popup-card {
  position: relative;
  max-width: 440px;
  width: 100%;
  padding: 40px 32px 28px;
  text-align: center;
  background:
    radial-gradient(600px 300px at 50% 0%, rgba(255, 215, 0, 0.16) 0%, transparent 65%),
    linear-gradient(180deg, #14110a 0%, #0a0f14 100%);
  border: 1px solid rgba(255, 215, 0, 0.35);
  border-radius: var(--radius-lg);
  box-shadow: 0 30px 90px -20px rgba(255, 215, 0, 0.3);
  animation: popIn 0.4s var(--ease-out);
}
@keyframes popIn {
  from { transform: scale(0.9) translateY(10px); opacity: 0; }
  to   { transform: scale(1) translateY(0); opacity: 1; }
}
.sale-popup-close {
  position: absolute;
  top: 14px; right: 14px;
  width: 34px; height: 34px;
  display: grid; place-items: center;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--text-dim);
  border-radius: 50%;
  cursor: pointer;
  transition: all 0.2s ease;
}
.sale-popup-close:hover { color: var(--text); background: var(--surface-hi); transform: rotate(90deg); }
.sale-popup-badge {
  display: inline-block;
  padding: 6px 14px;
  margin-bottom: 16px;
  background: var(--grad-gold);
  color: #2a1c00;
  font-family: 'Bebas Neue', 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.12em;
  border-radius: 999px;
}
.sale-popup-title {
  font-family: 'Bohemian Typewriter', 'Bebas Neue', sans-serif;
  font-size: 34px;
  line-height: 1.05;
  letter-spacing: 0.02em;
  margin-bottom: 12px;
  color: var(--gold);
}
.sale-popup-sub {
  color: var(--text-dim);
  font-size: 14.5px;
  line-height: 1.6;
  margin-bottom: 20px;
}
.sale-popup-timer {
  display: flex;
  justify-content: center;
  gap: 10px;
  margin-bottom: 22px;
}
.sale-popup-timer .sp-unit {
  min-width: 54px;
  padding: 10px 6px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  font-size: 12px;
  color: var(--text-mute);
  letter-spacing: 0.05em;
}
.sale-popup-timer .sp-unit b {
  display: block;
  font-family: 'Bebas Neue', sans-serif;
  font-size: 26px;
  line-height: 1;
  color: var(--text);
  margin-bottom: 3px;
}
.sale-popup-cta { width: 100%; }
.sale-popup-dismiss {
  display: block;
  width: 100%;
  margin-top: 12px;
  background: none;
  border: none;
  color: var(--text-mute);
  font-size: 13px;
  cursor: pointer;
  transition: color 0.2s ease;
}
.sale-popup-dismiss:hover { color: var(--text-dim); }

@media (max-width: 480px) {
  .sale-popup-card { padding: 34px 22px 24px; }
  .sale-popup-title { font-size: 28px; }
  .sale-popup-timer .sp-unit { min-width: 46px; }
  .sale-popup-timer .sp-unit b { font-size: 22px; }
}

/* ============================================================
   HERO VIDEO BAND — caption-free autoplay strip under the hero
   ============================================================ */
.hero-video-band {
  background: var(--bg);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
}
.hvb-viewport {
  max-width: 300px;
  margin: 0 auto;
  overflow: hidden;
  touch-action: pan-y;          /* vertical page scroll still works; we handle horizontal */
  border-radius: var(--radius-sm);
}
.hero-video-track {
  display: flex;
  transition: transform 0.55s var(--ease-out);   /* smooth swap between videos */
  will-change: transform;
}
.hero-video-slide {
  flex: 0 0 100%;
  display: flex;
  justify-content: center;
}
.hvb-dots {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 12px;
}
.hvb-dot {
  width: 7px; height: 7px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: var(--surface-hi);
  cursor: pointer;
  transition: width 0.25s ease, background 0.25s ease;
}
.hvb-dot.active { width: 20px; border-radius: 999px; background: var(--neon); }
.hero-video-tile {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  max-width: 300px;
  aspect-ratio: 9 / 16;
  padding: 0;
  border-radius: var(--radius-sm);
  overflow: hidden;
  border: 1px solid var(--border);
  background: var(--bg-2);
  box-shadow: var(--shadow-card);
  cursor: pointer;
  transition: transform 0.25s var(--ease-out), border-color 0.25s ease, box-shadow 0.25s ease;
}
.hero-video-tile:hover {
  transform: translateY(-4px) scale(1.02);
  border-color: var(--border-hi);
  box-shadow: var(--shadow-neon);
}
.hero-video-tile video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;      /* clicks go to the button, not the <video> */
}
.hero-video-play {
  position: absolute;
  inset: 0;
  margin: auto;
  width: 58px; height: 58px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: rgba(6, 10, 14, 0.55);
  border: 2px solid rgba(255, 255, 255, 0.85);
  color: #fff;
  backdrop-filter: blur(2px);
  transition: transform 0.25s var(--ease-out), background 0.25s ease;
}
.hero-video-play svg { margin-left: 3px; }   /* optical-center the triangle */
.hero-video-tile:hover .hero-video-play {
  transform: scale(1.12);
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
}
@media (max-width: 768px) {
  .hvb-viewport { max-width: 270px; }
  .hero-video-play { width: 52px; height: 52px; }
}

@media (max-width: 968px) {
  .checkout-grid { grid-template-columns: 1fr; }
  .order-summary { position: static; }
  .form-row { grid-template-columns: 1fr; }
  .delivery-options { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .checkout { padding: 110px 0 60px; }
  .form-block, .order-summary { padding: 20px; }
}

/* ============================================================
   STAR PLAYERS
   ============================================================ */
.section-players {
  background: linear-gradient(180deg, #080d12 0%, var(--bg) 100%);
}
.players-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 18px;
}
.player-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  backdrop-filter: blur(20px);
  cursor: pointer;
  transition: all 0.35s var(--ease);
}
.player-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 233, 227, 0.35);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.7);
}
.player-back {
  position: relative;
  aspect-ratio: 1;
  background: var(--bg);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.player-back::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--bg) 0%, color-mix(in srgb, var(--bg) 50%, transparent) 100%);
  z-index: 1;
}
.player-back::after {
  content: '';
  position: absolute;
  inset: -10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.55) 100%);
  z-index: 2;
}
.player-num {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 168px;
  line-height: 1;
  color: var(--fg);
  text-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
  z-index: 1;
  letter-spacing: -0.02em;
  font-weight: 700;
}
.player-flag {
  position: absolute;
  top: 14px; right: 14px;
  padding: 4px 10px 4px 4px;
  background: rgba(5, 10, 14, 0.65);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255, 255, 255, 0.15);
  border-radius: 999px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: #fff;
  z-index: 3;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.player-flag img {
  width: 22px; height: 16px;
  border-radius: 3px;
  object-fit: cover;
  display: block;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.player-info {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.player-meta {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--text-mute);
}
.player-pos { color: var(--neon); font-weight: 700; }
.player-name {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  letter-spacing: 0.04em;
  line-height: 1;
  margin-top: 2px;
}
.player-blurb {
  font-size: 13px;
  color: var(--text-dim);
  margin-bottom: 8px;
}
.player-cta {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  background: rgba(94, 233, 227, 0.08);
  color: var(--text);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: 10px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: all 0.25s var(--ease);
}
.player-cta .cyan { color: var(--neon); }
.player-card:hover .player-cta {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
}
.player-card:hover .player-cta .cyan { color: #052424; }

/* ============================================================
   WISHLIST HEART ON JERSEY CARDS
   ============================================================ */
.wish-heart {
  position: absolute;
  top: 14px; right: 14px;
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  background: rgba(5, 10, 14, 0.6);
  backdrop-filter: blur(10px);
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--text-dim);
  z-index: 3;
  transition: all 0.2s var(--ease);
}
.wish-heart:hover {
  color: #ff6b8e;
  border-color: rgba(255, 107, 142, 0.4);
  transform: scale(1.1);
}
.wish-heart.active {
  color: #ff3b6c;
  border-color: rgba(255, 59, 108, 0.5);
  background: rgba(255, 59, 108, 0.15);
}
.wish-heart.pop { animation: heartPop 0.35s var(--ease-out); }
@keyframes heartPop {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.35); }
  100% { transform: scale(1); }
}

/* Stock badge now sits below the heart on cards */
.jersey-card .stock-badge {
  top: 58px;
  right: 14px;
}

/* Quick View button — appears on hover, bottom-right of image */
.jersey-quickview {
  position: absolute;
  bottom: 12px; right: 12px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  white-space: nowrap;
  padding: 7px 12px;
  background: rgba(5, 10, 14, 0.85);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(94, 233, 227, 0.3);
  border-radius: 999px;
  color: var(--neon);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0;
  transform: translateY(6px);
  transition: all 0.3s var(--ease-out);
  z-index: 3;
}
.jersey-card:hover .jersey-quickview {
  opacity: 1;
  transform: translateY(0);
}
.jersey-quickview svg { flex-shrink: 0; }
.jersey-quickview:hover {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
}

/* ============================================================
   FLOATING WISHLIST PILL
   ============================================================ */
.wishlist-pill {
  position: fixed;
  bottom: 366px;
  right: 24px;
  height: 48px;
  min-width: 48px;
  padding: 0 14px 0 12px;
  display: none;
  align-items: center;
  gap: 8px;
  background: linear-gradient(135deg, #ff3b6c, #c91645);
  color: #fff;
  border-radius: 999px;
  box-shadow: 0 10px 24px -8px rgba(255, 59, 108, 0.55);
  z-index: 50;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease);
  font-weight: 700;
}
.wishlist-pill.show { display: inline-flex; animation: cartPop 0.4s var(--ease-out); }
.wishlist-pill:hover {
  transform: translateY(-3px) scale(1.04);
  box-shadow: 0 14px 32px -8px rgba(255, 59, 108, 0.75);
}
.wishlist-count {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  line-height: 1;
}

/* ============================================================
   SOCIAL PROOF TOAST
   ============================================================ */
.social-toast {
  position: fixed;
  bottom: 24px;
  left: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px 12px 12px;
  background: rgba(12, 18, 23, 0.92);
  backdrop-filter: blur(16px);
  border: 1px solid var(--border);
  border-radius: 14px;
  box-shadow: 0 18px 40px -10px rgba(0, 0, 0, 0.6);
  max-width: 340px;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.4s var(--ease-out);
  z-index: 51;
  pointer-events: none;
}
.social-toast.show { opacity: 1; transform: translateY(0); pointer-events: auto; }
.st-avatar {
  width: 38px; height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #052424;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
  box-shadow: inset 0 0 0 2px rgba(255, 255, 255, 0.15);
}
.st-body { flex: 1; min-width: 0; }
.st-line {
  font-size: 12px;
  line-height: 1.45;
  color: var(--text);
  margin-bottom: 2px;
}
.st-line strong { color: var(--neon); }
.st-time {
  font-size: 10px;
  color: var(--text-mute);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.st-close {
  width: 24px; height: 24px;
  display: grid;
  place-items: center;
  background: transparent;
  color: var(--text-mute);
  font-size: 18px;
  border-radius: 50%;
  flex-shrink: 0;
  transition: all 0.2s var(--ease);
}
.st-close:hover { background: rgba(255, 255, 255, 0.06); color: var(--text); }

@media (max-width: 768px) {
  .social-toast { left: 12px; right: 12px; bottom: 12px; max-width: none; }
  .wishlist-pill { bottom: 282px; }
}

/* ============================================================
   QUICK VIEW MODAL
   ============================================================ */
.qv-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s var(--ease);
}
.qv-modal[hidden] { display: none !important; }
.qv-modal.show { opacity: 1; pointer-events: auto; }
.qv-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(8px);
}
.qv-card {
  position: relative;
  max-width: 1180px;
  width: 100%;
  max-height: 94vh;
  overflow-y: auto;
  background: linear-gradient(180deg, #11181f 0%, #0a0f14 100%);
  border: 1px solid rgba(94, 233, 227, 0.18);
  border-radius: var(--radius-lg);
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.8);
  transform: scale(0.94);
  transition: transform 0.3s var(--ease-out);
}
.qv-modal.show .qv-card { transform: scale(1); }
.qv-close {
  position: absolute;
  top: 14px; right: 14px;
  width: 38px; height: 38px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border);
  border-radius: 50%;
  color: var(--text);
  font-size: 22px;
  line-height: 1;
  z-index: 2;
  transition: all 0.2s var(--ease);
}
.qv-close:hover {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
  transform: rotate(90deg);
}
.qv-grid {
  display: grid;
  grid-template-columns: 0.95fr 1.05fr;
  gap: 0;
}
.qv-media {
  background: linear-gradient(135deg, #0c1217 0%, #050a0e 100%);
  border-right: 1px solid var(--border);
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.qv-media-main {
  aspect-ratio: 1;
  background: linear-gradient(135deg, #0a0f14 0%, #050a0e 100%);
  border-radius: 12px;
  display: grid;
  place-items: center;
  overflow: hidden;
  padding: 8px;
}
.qv-media-main img,
.qv-media-main video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 8px;
  display: block;
}
.qv-media-main svg { width: 100%; height: 100%; filter: drop-shadow(0 20px 40px rgba(0, 0, 0, 0.5)); }

.qv-thumbs {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
}
.qv-thumb {
  flex: 0 0 64px;
  width: 64px;
  height: 64px;
  border-radius: 10px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.04);
  border: 2px solid var(--border);
  cursor: pointer;
  padding: 0;
  transition: border-color 0.2s var(--ease), transform 0.2s var(--ease);
}
.qv-thumb:hover { border-color: rgba(94, 233, 227, 0.5); transform: translateY(-2px); }
.qv-thumb.active { border-color: var(--neon); box-shadow: 0 0 0 2px rgba(94, 233, 227, 0.25); }
.qv-thumb img, .qv-thumb svg {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.qv-thumb svg { padding: 4px; }
.qv-thumb-video {
  position: relative;
  background:
    linear-gradient(135deg, rgba(94, 233, 227, 0.2), rgba(29, 107, 58, 0.2)),
    #0c1217;
}
.qv-thumb-video::after {
  content: '▶';
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 22px;
  text-shadow: 0 2px 8px rgba(0, 0, 0, 0.6);
}

.qv-details { margin-top: 14px; }
.qv-detail-list {
  list-style: none;
  padding: 0;
  margin-top: 8px;
  display: grid;
  gap: 6px;
}
.qv-detail-list li {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 12px;
  font-size: 12px;
  padding: 6px 0;
  border-bottom: 1px dashed var(--border);
}
.qv-detail-list li:last-child { border-bottom: none; }
.qv-detail-list span {
  color: var(--text-mute);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.qv-detail-list strong { color: var(--text-dim); font-weight: 500; line-height: 1.4; }

/* Jersey card real-photo overlay — sits ABOVE the always-present SVG.
   If the image 404s, onerror sets display:none and the SVG shows through. */
.jersey-photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  z-index: 1;
}
/* Hover slideshow crossfade — top layer fades in over the always-opaque base,
   so the 2D SVG jersey underneath never shows during the swap. */
.jersey-photo.cycle-top {
  z-index: 2;
  pointer-events: none;
  transition: opacity 0.4s ease;
}
.qv-info {
  padding: 32px 36px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ============================================================
   MATCH HUB — collapse on mobile (tap to expand)
   ============================================================ */
.match-hub-toggle {
  display: inline-flex;     /* available on desktop + mobile */
  align-items: center;
  gap: 6px;
  margin: 14px auto 0;
  padding: 9px 18px;
  background: var(--surface);
  border: 1px solid var(--border-hi);
  border-radius: 999px;
  color: var(--neon);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  cursor: pointer;
}
.match-hub-toggle svg { transition: transform 0.3s ease; }
.section-matches:not(.collapsed) .match-hub-toggle svg { transform: rotate(180deg); }
/* Collapsed: hide everything but the heading + toggle (desktop + mobile) */
.section-matches.collapsed .match-featured,
.section-matches.collapsed .match-tabs,
.section-matches.collapsed .match-panel { display: none !important; }

/* ============================================================
   OFFER / BUNDLE BUILDER
   ============================================================ */
.offer-builder {
  position: fixed;
  inset: 0;
  z-index: 1200;
  background: rgba(0, 0, 0, 0.82);
  backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.offer-builder.show { display: flex; animation: fadeInUp 0.25s var(--ease-out); }
.ob-card {
  width: 100%;
  max-width: 720px;
  max-height: 92vh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #11181f 0%, #0a0f14 100%);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.8);
}
.ob-head {
  display: flex; align-items: flex-start; justify-content: space-between;
  gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--border);
}
.ob-head h3 { font-family: 'Bohemian Typewriter', sans-serif; font-size: 22px; }
.ob-head p { color: var(--text-dim); font-size: 13px; margin-top: 2px; }
.ob-close {
  flex-shrink: 0; width: 36px; height: 36px; display: grid; place-items: center;
  background: var(--surface); border: 1px solid var(--border); border-radius: 50%;
  color: var(--text-dim); cursor: pointer;
}
.ob-close:hover { color: var(--text); background: var(--surface-hi); }
.ob-grid { overflow-y: auto; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.ob-item {
  display: grid;
  grid-template-columns: 52px 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 8px 10px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: border-color 0.2s ease, background 0.2s ease;
}
.ob-item.picked { border-color: var(--border-hi); background: rgba(94, 233, 227, 0.07); }
.ob-thumb { position: relative; width: 52px; height: 52px; border-radius: 8px; overflow: hidden; background: var(--bg-2); }
.ob-thumb svg, .ob-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ob-info { display: flex; flex-direction: column; min-width: 0; }
.ob-info strong { font-size: 14px; }
.ob-info span { font-size: 13px; color: var(--neon); }
.ob-size {
  padding: 6px 8px; font-size: 13px; border-radius: 8px;
  background: var(--bg-2); color: var(--text); border: 1px solid var(--border);
}
.ob-qty { display: flex; align-items: center; gap: 8px; }
.ob-qty button {
  width: 30px; height: 30px; border-radius: 8px; font-size: 16px;
  background: var(--surface); border: 1px solid var(--border); color: var(--text); cursor: pointer;
}
.ob-qty button:hover { background: var(--surface-hi); }
.ob-q { min-width: 16px; text-align: center; font-weight: 700; }
.ob-foot {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 14px 18px; border-top: 1px solid var(--border); flex-wrap: wrap;
}
.ob-summary { display: flex; flex-direction: column; gap: 2px; font-size: 13px; color: var(--text-dim); }
.ob-summary strong { color: var(--text); font-size: 16px; }
.ob-save { color: #51e0a4; font-weight: 700; }
.ob-foot .btn { flex: 1; min-width: 200px; }
@media (max-width: 560px) {
  .ob-item { grid-template-columns: 44px 1fr auto; row-gap: 8px; }
  .ob-thumb { width: 44px; height: 44px; }
  .ob-size { grid-column: 2 / 3; }
  .ob-qty { grid-column: 3 / 4; }
  .ob-foot .btn { min-width: 100%; }
}

/* ============================================================
   IMAGE LIGHTBOX — fullscreen zoom + swipe viewer
   ============================================================ */
.qv-media-main { cursor: zoom-in; }
.img-lightbox {
  position: fixed;
  inset: 0;
  z-index: 1300;
  background: rgba(0, 0, 0, 0.95);
  display: none;
  align-items: center;
  justify-content: center;
  touch-action: none;          /* we handle pan/swipe/zoom ourselves */
}
.img-lightbox.show { display: flex; animation: fadeInUp 0.25s var(--ease-out); }
.lb-stage {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}
.lb-img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  transform-origin: center center;
  transition: transform 0.2s ease;
  user-select: none;
  -webkit-user-drag: none;
  cursor: zoom-in;
  will-change: transform;
}
.lb-img.zoomed { transition: none; cursor: grab; }
.lb-close {
  position: absolute;
  top: 16px; right: 16px;
  z-index: 2;
  width: 44px; height: 44px;
  display: grid; place-items: center;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  border: 1px solid rgba(255, 255, 255, 0.25);
  color: #fff;
  font-size: 26px;
  line-height: 1;
  cursor: pointer;
}
.lb-close:hover { background: rgba(255, 255, 255, 0.22); }
.lb-dots {
  position: absolute;
  bottom: 52px; left: 0; right: 0;
  display: flex; justify-content: center; gap: 7px;
  pointer-events: none;
}
.lb-dot { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, 0.35); transition: all 0.25s ease; }
.lb-dot.active { background: #fff; width: 22px; border-radius: 999px; }
.lb-hint {
  position: absolute;
  bottom: 22px; left: 0; right: 0;
  text-align: center;
  color: rgba(255, 255, 255, 0.6);
  font-size: 12px;
  letter-spacing: 0.03em;
  pointer-events: none;
}
.qv-tag {
  display: inline-block;
  align-self: flex-start;
  padding: 4px 12px;
  background: rgba(94, 233, 227, 0.1);
  border: 1px solid rgba(94, 233, 227, 0.3);
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--neon);
  text-transform: uppercase;
}
.qv-tag.away { color: var(--blue); border-color: rgba(0, 212, 255, 0.3); background: rgba(0, 212, 255, 0.1); }
.qv-country {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 48px;
  line-height: 1;
  letter-spacing: 0.02em;
}
.qv-edition { font-size: 13px; color: var(--text-mute); letter-spacing: 0.1em; text-transform: uppercase; margin-top: -4px; }
.qv-price {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 40px;
  color: var(--neon);
  letter-spacing: 0.04em;
  margin: 6px 0 4px;
}
.qv-stock {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.qv-stock-ok  { color: var(--neon); }
.qv-stock-oos { color: #ff6b6b; }
.qv-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--text-dim);
  text-transform: uppercase;
  margin-top: 8px;
  margin-bottom: -4px;
}
.qv-sizes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.qv-qty {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 6px 8px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  width: max-content;
}
.qv-qty button {
  width: 30px; height: 30px;
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.05);
  color: var(--text);
  font-size: 18px;
  line-height: 1;
  transition: all 0.2s var(--ease);
}
.qv-qty button:hover { background: var(--grad-neon); color: #052424; }
.qv-qty span {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  min-width: 24px;
  text-align: center;
}

.qv-actions { display: flex; gap: 10px; margin-top: 6px; }
.qv-add { flex: 1; }
.qv-add.added { background: linear-gradient(135deg, #51e0a4, #1d6b3a); color: #fff; }
.qv-wishlist {
  width: 56px; height: 56px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text-dim);
  display: grid;
  place-items: center;
  transition: all 0.25s var(--ease);
}
.qv-wishlist:hover { color: #ff6b8e; border-color: rgba(255, 107, 142, 0.4); }
.qv-wishlist.active { color: #ff3b6c; border-color: rgba(255, 59, 108, 0.5); background: rgba(255, 59, 108, 0.12); }

.qv-perks {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 14px;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
  list-style: none;
}
.qv-perks li {
  font-size: 12px;
  color: var(--text-dim);
  letter-spacing: 0.02em;
}

@media (max-width: 900px) {
  /* Compact, fits-on-one-screen quick view — no long internal scroll. */
  .qv-grid { grid-template-columns: 1fr; }
  .qv-media {
    border-right: none;
    border-bottom: 1px solid var(--border);
    padding: 10px;
    gap: 8px;
  }
  .qv-media-main { aspect-ratio: auto; height: 58vh; }
  .qv-media-main img, .qv-media-main video { object-fit: contain; }  /* full jersey on phones */
  .qv-thumbs { justify-content: center; gap: 6px; }
  .qv-thumb { flex: 0 0 44px; width: 44px; height: 44px; }
  .qv-info { padding: 14px 18px 18px; gap: 7px; }
  .qv-tag { margin-bottom: 0; }
  .qv-country { font-size: 26px; }
  .qv-edition { font-size: 12px; }
  .qv-price { font-size: 24px; }
  .qv-stock { font-size: 12px; }
  .qv-label { font-size: 11px; margin: 2px 0 0; }
  .qv-qty button { width: 34px; height: 34px; }
  .qv-actions { margin-top: 2px; }
  .qv-details { font-size: 11px; }
  .qv-perks { display: none; }     /* trim marketing fluff so it all fits */
}

/* ============================================================
   ADMIN DASHBOARD
   ============================================================ */
.page-admin {
  background:
    radial-gradient(800px 600px at 50% -10%, rgba(94, 233, 227, 0.06), transparent 60%),
    var(--bg);
  min-height: 100vh;
}

/* Soft-auth gate */
.admin-gate {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
}
.admin-gate-card {
  width: 100%;
  max-width: 380px;
  padding: 36px 30px;
  background: linear-gradient(180deg, #11181f 0%, #0a0f14 100%);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  text-align: center;
  box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.8);
}
.gate-logo { width: 96px; margin: 0 auto 18px; filter: drop-shadow(0 0 14px rgba(94, 233, 227, 0.35)); }
.admin-gate-card h1 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 32px;
  letter-spacing: 0.04em;
  margin-bottom: 6px;
}
.admin-gate-card p { color: var(--text-dim); font-size: 13px; margin-bottom: 20px; }
.admin-gate-card input[type=password] {
  width: 100%;
  padding: 14px 18px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 15px;
  letter-spacing: 0.2em;
  text-align: center;
  margin-bottom: 14px;
  font-family: 'Courier New', monospace;
}
.admin-gate-card input[type=password]:focus { outline: none; border-color: var(--neon); }
.admin-gate-card input.shake { animation: shake 0.4s; }
@keyframes shake {
  0%, 100% { transform: translateX(0); }
  25% { transform: translateX(-8px); }
  75% { transform: translateX(8px); }
}
.admin-gate-card .btn { width: 100%; }
.gate-hint { font-size: 11px; color: var(--text-mute); margin-top: 16px; }
.gate-hint code { padding: 2px 8px; background: rgba(94, 233, 227, 0.1); color: var(--neon); border-radius: 4px; font-family: 'Courier New', monospace; }

/* Top bar */
.admin-topbar {
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 24px;
  background: rgba(10, 14, 18, 0.9);
  backdrop-filter: blur(16px);
  border-bottom: 1px solid var(--border);
}
.admin-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  letter-spacing: 0.06em;
  text-decoration: none;
  color: var(--text);
}
.admin-brand img { height: 38px; }
.admin-brand em { font-style: normal; color: var(--neon); }
.admin-nav { display: flex; align-items: center; gap: 10px; }
.admin-nav a {
  font-size: 13px;
  font-weight: 600;
  color: var(--text-dim);
  padding: 8px 14px;
  transition: color 0.2s var(--ease);
}
.admin-nav a:hover { color: var(--neon); }
.admin-nav .btn { padding: 8px 16px; font-size: 12px; }

.admin-main { padding: 32px 24px 60px; max-width: 1320px; margin: 0 auto; }

/* KPI cards */
.admin-kpis {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 16px;
  margin-bottom: 28px;
}
.kpi-card {
  padding: 22px 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.kpi-lbl {
  font-size: 11px;
  letter-spacing: 0.15em;
  color: var(--text-mute);
  text-transform: uppercase;
  font-weight: 600;
}
.kpi-val {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 40px;
  line-height: 1;
  color: var(--neon);
  letter-spacing: 0.02em;
}
.kpi-sub { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; }

/* Filters */
.admin-filters { margin-bottom: 20px; }
.filter-row {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
}
.filter-row input[type=search] {
  flex: 1;
  min-width: 220px;
  padding: 12px 16px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 14px;
}
.filter-row input[type=search]:focus { outline: none; border-color: var(--neon); }
.filter-row select {
  padding: 12px 38px 12px 16px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 14px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235ee9e3' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  background-size: 12px;
}
.filter-row select option { background: #0c1217; color: var(--text); }
.filter-row .btn { padding: 12px 18px; font-size: 13px; }

/* Order cards */
.admin-orders { display: flex; flex-direction: column; gap: 12px; }

.admin-empty {
  padding: 60px 24px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}
.admin-empty-ico { font-size: 48px; margin-bottom: 14px; opacity: 0.6; }
.admin-empty h3 { font-family: 'Bohemian Typewriter', sans-serif; font-size: 24px; margin-bottom: 8px; }
.admin-empty p { color: var(--text-dim); font-size: 14px; max-width: 480px; margin: 0 auto; }

.order-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-left: 4px solid var(--text-mute);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  overflow: hidden;
  transition: border-color 0.2s var(--ease);
}
.order-card.status-pending   { border-left-color: #ffb547; }
.order-card.status-confirmed { border-left-color: #5ee9e3; }
.order-card.status-packed    { border-left-color: #00d4ff; }
.order-card.status-shipped   { border-left-color: #a78bfa; }
.order-card.status-delivered { border-left-color: #51e0a4; }
.order-card.status-cancelled { border-left-color: #ff6b6b; opacity: 0.7; }

.order-card-head {
  display: grid;
  grid-template-columns: 180px 1fr auto;
  gap: 20px;
  padding: 16px 20px;
  align-items: center;
  cursor: pointer;
}
.oc-left { display: flex; flex-direction: column; gap: 2px; }
.oc-ref { font-family: 'Courier New', monospace; font-weight: 700; color: var(--neon); font-size: 13px; letter-spacing: 0.05em; }
.oc-date { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; }
.oc-mid { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow: hidden; }
.oc-mid strong { font-size: 14px; color: var(--text); }
.oc-mid span { font-size: 12px; color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.oc-right { display: flex; align-items: center; gap: 14px; }
.oc-items { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; text-transform: uppercase; }
.oc-total { font-family: 'Bohemian Typewriter', sans-serif; font-size: 22px; color: var(--neon); }

.status-select {
  padding: 6px 28px 6px 10px;
  background: rgba(0, 0, 0, 0.4);
  border: 1.5px solid var(--c, var(--border));
  border-radius: 8px;
  color: var(--c, var(--text));
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='currentColor' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 8px center;
  background-size: 10px;
  cursor: pointer;
}
.status-select option { background: #0c1217; color: var(--text); }
.oc-chevron { color: var(--text-mute); font-size: 16px; transition: transform 0.3s var(--ease); }
.order-card.expanded .oc-chevron { transform: rotate(180deg); }

.order-card-body {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s var(--ease-out);
  border-top: 1px solid transparent;
}
.order-card.expanded .order-card-body {
  max-height: 2000px;
  border-top-color: var(--border);
}

.ocb-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  padding: 24px 20px;
}
.ocb-grid h4 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 14px;
  letter-spacing: 0.15em;
  color: var(--neon);
  margin-bottom: 10px;
  text-transform: uppercase;
}
.ocb-grid p { font-size: 13px; color: var(--text-dim); margin-bottom: 4px; line-height: 1.5; }
.ocb-grid p strong { color: var(--text); }
.ocb-grid p.muted { font-size: 11px; color: var(--text-mute); }
.ocb-grid a { color: var(--neon); }

.ocb-items { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ocb-items li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px;
  font-size: 13px;
  padding-bottom: 6px;
  border-bottom: 1px dashed var(--border);
}
.ocb-items li:last-child { border-bottom: none; }
.ocb-items strong { color: var(--text); font-weight: 700; }
.ocb-items span { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; }
.ocb-line-price { font-family: 'Bohemian Typewriter', sans-serif !important; font-size: 15px !important; color: var(--neon) !important; align-self: end; }

.ocb-tags { display: flex; gap: 6px; margin-top: 10px; flex-wrap: wrap; }
.custom-pill, .promo-pill {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: 999px;
}
.custom-pill { background: rgba(167, 139, 250, 0.15); color: #a78bfa; border: 1px solid rgba(167, 139, 250, 0.3); }
.promo-pill  { background: rgba(94, 233, 227, 0.12); color: var(--neon); border: 1px solid rgba(94, 233, 227, 0.3); }

.bill-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-dim);
  padding: 4px 0;
}
.bill-row.grand {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  color: var(--text);
  border-top: 1px solid var(--border);
  padding-top: 10px;
  margin-top: 6px;
}
.bill-row.grand span:last-child { color: var(--neon); }

.ocb-notes {
  padding: 12px 20px;
  background: rgba(255, 181, 71, 0.08);
  border-top: 1px solid var(--border);
  font-size: 13px;
  color: var(--text-dim);
}
.ocb-notes strong { color: #ffb547; }

.ocb-actions {
  display: flex;
  gap: 10px;
  padding: 14px 20px;
  background: rgba(0, 0, 0, 0.25);
  border-top: 1px solid var(--border);
}
.ocb-actions .btn { padding: 10px 18px; font-size: 13px; }

@media (max-width: 768px) {
  .order-card-head { grid-template-columns: 1fr; gap: 8px; padding: 14px; }
  .oc-right { justify-content: space-between; }
  .ocb-grid { grid-template-columns: 1fr; gap: 18px; padding: 18px; }
  .admin-kpis { grid-template-columns: repeat(2, 1fr); }
  .kpi-val { font-size: 28px; }
  .admin-topbar { padding: 12px 16px; flex-wrap: wrap; gap: 10px; }
}

/* ============================================================
   STATIC PAGES — about, contact, legal
   ============================================================ */
.page-static {
  background:
    radial-gradient(800px 600px at 50% -10%, rgba(94, 233, 227, 0.06), transparent 60%),
    var(--bg);
  min-height: 100vh;
}
.static-page { padding: 120px 0 80px; }
.container.narrow { max-width: 800px; }

.static-head {
  text-align: center;
  margin-bottom: 48px;
}
.static-head .section-title {
  font-size: clamp(40px, 5vw, 64px);
  text-align: center;
}
.static-head .section-sub { color: var(--text-mute); }

.static-block {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  margin-bottom: 18px;
}
.static-block h2 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  letter-spacing: 0.04em;
  margin-bottom: 12px;
  color: var(--neon);
}
.static-block p {
  color: var(--text-dim);
  line-height: 1.7;
  margin-bottom: 10px;
}
.static-block strong { color: var(--text); }
.static-block em { color: var(--neon); font-style: italic; }

.check-list { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.check-list li {
  position: relative;
  padding-left: 28px;
  color: var(--text-dim);
}
.check-list li::before {
  content: '✓';
  position: absolute;
  left: 0; top: 0;
  width: 20px; height: 20px;
  display: grid;
  place-items: center;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 50%;
  font-size: 12px;
  font-weight: 700;
}

.static-cta { text-align: center; background: linear-gradient(135deg, rgba(94, 233, 227, 0.08), rgba(29, 107, 58, 0.05)); border-color: rgba(94, 233, 227, 0.25); }

/* Legal text block — privacy/terms/etc */
.legal-text {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.legal-text h2 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.05em;
  color: var(--neon);
  margin: 26px 0 12px;
}
.legal-text h2:first-child { margin-top: 0; }
.legal-text p, .legal-text li {
  color: var(--text-dim);
  line-height: 1.7;
  font-size: 14px;
}
.legal-text ul, .legal-text ol { padding-left: 22px; margin: 10px 0 18px; }
.legal-text li { margin-bottom: 6px; }
.legal-text a { color: var(--neon); text-decoration: underline; text-underline-offset: 3px; }
.legal-text strong { color: var(--text); }

/* Contact grid */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 28px;
}
.contact-info {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  align-content: start;
}
.contact-item {
  padding: 20px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
  transition: all 0.3s var(--ease);
}
.contact-item:hover { transform: translateY(-3px); border-color: rgba(94, 233, 227, 0.3); }
.contact-ico { font-size: 24px; margin-bottom: 10px; }
.contact-item h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 16px;
  letter-spacing: 0.1em;
  color: var(--neon);
  margin-bottom: 8px;
}
.contact-item p { font-size: 13px; color: var(--text-dim); line-height: 1.5; margin-bottom: 4px; }
.contact-item p.muted { color: var(--text-mute); font-size: 11px; }
.contact-item a { color: var(--text); }
.contact-item a:hover { color: var(--neon); }

.contact-form {
  padding: 28px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.contact-form h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 22px;
  letter-spacing: 0.05em;
  margin-bottom: 18px;
}
.contact-form .form-row { display: grid; grid-template-columns: 1fr; gap: 6px; margin-bottom: 14px; }
.contact-form input, .contact-form textarea {
  width: 100%;
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
}
.contact-form label { font-size: 12px; font-weight: 600; letter-spacing: 0.05em; color: var(--text-dim); text-transform: uppercase; }
.contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--neon); }
.contact-form textarea { min-height: 100px; resize: vertical; }

/* Footer 5-column layout */
.footer-inner {
  grid-template-columns: 2fr 1fr 1fr 1fr 1.4fr;
}

@media (max-width: 968px) {
  .contact-grid { grid-template-columns: 1fr; }
  .footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .contact-info { grid-template-columns: 1fr; }
  .legal-text { padding: 22px; }
  .static-page { padding: 100px 0 60px; }
}

/* ============================================================
   ADMIN MEDIA LIBRARY
   ============================================================ */
.admin-media {
  margin-bottom: 28px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
#mediaModeBanner {
  color: var(--text-dim);
  font-size: 13px;
  margin-bottom: 18px;
}
#mediaModeBanner a { color: var(--neon); text-decoration: underline; text-underline-offset: 3px; }

.media-controls {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 20px;
  margin-bottom: 24px;
  align-items: start;
}
.media-jersey-pick {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.media-jersey-pick span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--text-dim);
  text-transform: uppercase;
}
.media-jersey-pick select {
  padding: 12px 14px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 14px;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235ee9e3' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 14px center;
  padding-right: 36px;
}
.media-jersey-pick select option { background: #0c1217; color: var(--text); }

.media-drop {
  padding: 32px 20px;
  background: rgba(94, 233, 227, 0.04);
  border: 2px dashed rgba(94, 233, 227, 0.35);
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.25s var(--ease);
  text-align: center;
}
.media-drop:hover, .media-drop.drag-over {
  background: rgba(94, 233, 227, 0.08);
  border-color: var(--neon);
}
.media-drop-inner { display: flex; flex-direction: column; align-items: center; gap: 10px; }
.media-drop-inner > svg { color: var(--neon); margin-bottom: 4px; pointer-events: none; }
.media-drop-inner p { color: var(--text-dim); font-size: 13px; margin: 0; pointer-events: none; }
.media-drop-inner p strong { color: var(--text); }
.media-pick-btn {
  pointer-events: auto;
  padding: 11px 22px;
  font-size: 14px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 4px;
}
.media-drop-hint { color: var(--text-mute); font-size: 12px; }
.media-drop-warn {
  margin-top: 10px;
  padding: 6px 12px;
  background: rgba(255, 181, 71, 0.12);
  color: #ffb547;
  border-radius: 8px;
  font-size: 12px;
  display: inline-block;
}
/* Upload queue panel — appears after files are picked, before Upload click */
.media-queue {
  background: rgba(0, 0, 0, 0.3);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 18px;
}
.media-queue-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
  gap: 12px;
  flex-wrap: wrap;
}
.media-queue-head strong { font-size: 13px; color: var(--neon); letter-spacing: 0.05em; }
.media-queue-actions { display: flex; gap: 8px; }
.media-queue-list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 6px; }
.media-queue-item {
  display: grid;
  grid-template-columns: 22px 1fr auto auto 22px;
  gap: 10px;
  align-items: center;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.03);
  border-radius: 8px;
  font-size: 13px;
}
.media-queue-item.q-uploading { background: rgba(94, 233, 227, 0.08); }
.media-queue-item.q-done      { background: rgba(10, 163, 127, 0.10); }
.media-queue-item.q-failed    { background: rgba(255, 64, 64, 0.10); }
.qi-ico    { font-size: 14px; }
.qi-name   { color: var(--text); font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.qi-size   { color: var(--text-mute); font-size: 11px; }
.qi-status { color: var(--text-dim); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; }
.qi-remove {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-mute);
  width: 22px; height: 22px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 14px;
  line-height: 1;
  padding: 0;
}
.qi-remove:hover { color: #ff4040; border-color: #ff4040; }

.media-stats {
  grid-column: 1 / -1;
  font-size: 11px;
  letter-spacing: 0.1em;
  color: var(--text-mute);
  text-transform: uppercase;
  padding-top: 6px;
  border-top: 1px dashed var(--border);
}

.media-empty {
  padding: 40px 20px;
  text-align: center;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 12px;
  border: 1px dashed var(--border);
}
.media-empty-ico { font-size: 36px; margin-bottom: 10px; opacity: 0.5; }
.media-empty p { color: var(--text-mute); font-size: 13px; }

.media-group { margin-bottom: 20px; }
.media-group h4 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 16px;
  letter-spacing: 0.06em;
  color: var(--neon);
  margin-bottom: 10px;
  display: flex;
  align-items: baseline;
  gap: 8px;
}
.media-group h4 span {
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  color: var(--text-mute);
  font-weight: 400;
  letter-spacing: 0.05em;
}
.media-tiles {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}
.media-tile {
  position: relative;
  aspect-ratio: 1;
  background: #0c1217;
  border-radius: 10px;
  overflow: hidden;
  cursor: pointer;
  transition: transform 0.2s var(--ease);
}
.media-tile:hover { transform: translateY(-2px); }
.media-tile img, .media-tile video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.media-tile-play {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 26px;
  background: rgba(0, 0, 0, 0.3);
  pointer-events: none;
}
.media-tile-del {
  position: absolute;
  top: 6px; right: 6px;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 16px;
  line-height: 1;
  display: grid;
  place-items: center;
  transition: all 0.2s var(--ease);
}
.media-tile-del:hover { background: #ff6b6b; }
.media-tile-name {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  padding: 6px 8px;
  background: linear-gradient(transparent, rgba(0,0,0,0.85));
  color: #fff;
  font-size: 10px;
  letter-spacing: 0.05em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Reorder controls + main-photo badge */
.media-tile.is-primary { outline: 2px solid var(--neon); outline-offset: -2px; }
.media-tile-badge {
  position: absolute;
  top: 6px; left: 6px;
  padding: 2px 7px;
  background: var(--neon);
  color: #052424;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.08em;
  border-radius: 5px;
  z-index: 2;
}
.media-tile-order {
  position: absolute;
  bottom: 28px; left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  z-index: 2;
  opacity: 0;
  transition: opacity 0.2s ease;
}
.media-tile:hover .media-tile-order { opacity: 1; }
.mt-move {
  width: 30px; height: 28px;
  display: grid; place-items: center;
  background: rgba(6,10,14,0.85);
  border: 1px solid var(--border-hi);
  color: var(--neon);
  border-radius: 7px;
  font-size: 12px;
  cursor: pointer;
  backdrop-filter: blur(4px);
}
.mt-move:hover:not(:disabled) { background: var(--neon); color: #052424; }
.mt-move:disabled { opacity: 0.3; cursor: not-allowed; }
@media (max-width: 768px) {
  .media-tile-order { opacity: 1; bottom: 26px; }   /* always visible on touch */
}

/* ============================================================
   LANDING-PAGE VIDEO SHOWCASE
   ============================================================ */
.section-videos {
  background: linear-gradient(180deg, #080d12 0%, var(--bg) 100%);
}
.video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}
.video-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  backdrop-filter: blur(20px);
  cursor: pointer;
  transition: all 0.35s var(--ease);
  display: flex;
  flex-direction: column;
}
.video-card:hover {
  transform: translateY(-6px);
  border-color: rgba(94, 233, 227, 0.4);
  box-shadow: 0 20px 50px -20px rgba(0, 0, 0, 0.7);
}
.video-card.coming-soon { cursor: default; }
.video-card.coming-soon:hover { transform: none; }

.vc-media {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: linear-gradient(135deg, #0c1217 0%, #050a0e 100%);
}
.vc-poster {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform 0.4s var(--ease);
}
.video-card:hover .vc-poster { transform: scale(1.06); }
.vc-svg {
  width: 100%; height: 100%;
  display: grid;
  place-items: center;
  padding: 16px;
}
.vc-svg svg { width: 80%; height: 80%; opacity: 0.7; }

.vc-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.5) 100%);
}
.vc-play {
  width: 64px;
  height: 64px;
  display: grid;
  place-items: center;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 50%;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5), 0 0 0 6px rgba(94, 233, 227, 0.2);
  transition: transform 0.2s var(--ease);
}
.video-card:hover .vc-play { transform: scale(1.1); }
.vc-soon {
  padding: 8px 18px;
  background: rgba(255, 181, 71, 0.15);
  color: #ffb547;
  border: 1px solid rgba(255, 181, 71, 0.4);
  border-radius: 999px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 14px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
}
.vc-duration {
  position: absolute;
  bottom: 10px;
  right: 10px;
  padding: 3px 8px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  border-radius: 4px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 13px;
  letter-spacing: 0.05em;
}

.vc-body {
  padding: 18px 20px 20px;
  flex: 1;
}
.vc-title {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 20px;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
  line-height: 1.1;
}
.vc-sub {
  font-size: 13px;
  color: var(--text-dim);
  line-height: 1.5;
}

.video-empty {
  grid-column: 1 / -1;
  padding: 60px 24px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}
.video-empty-ico { font-size: 44px; margin-bottom: 12px; opacity: 0.5; }
.video-empty p { color: var(--text-mute); font-size: 14px; max-width: 420px; margin: 0 auto; }

/* Video player modal */
.video-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s var(--ease);
}
.video-modal[hidden] { display: none !important; }
.video-modal.show { opacity: 1; pointer-events: auto; }
.video-modal-card {
  position: relative;
  max-width: 960px;
  width: 100%;
  background: #0a0f14;
  border: 1px solid rgba(94, 233, 227, 0.2);
  border-radius: var(--radius-lg);
  overflow: hidden;
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.8);
}
.video-modal-player {
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
}
.video-modal-player video {
  width: 100%; height: 100%;
  display: block;
  object-fit: contain;
}
.video-modal-meta {
  padding: 22px 26px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-top: 1px solid var(--border);
}
.video-modal-meta h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.video-modal-meta p { color: var(--text-dim); font-size: 13px; margin: 0; }
.video-modal-meta .btn-sm { padding: 8px 16px; font-size: 12px; }

@media (max-width: 768px) {
  .media-controls { grid-template-columns: 1fr; }
  .media-tiles { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
  .video-grid { grid-template-columns: 1fr; gap: 16px; }
  .vc-play { width: 52px; height: 52px; }
  .video-modal-meta { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   ORDER TRACKING PAGE
   ============================================================ */
.page-track {
  background:
    radial-gradient(800px 600px at 50% -10%, rgba(94, 233, 227, 0.06), transparent 60%),
    var(--bg);
  min-height: 100vh;
}
.track-page { padding: 120px 0 80px; }
.track-head { text-align: center; margin-bottom: 40px; }

.track-lookup {
  max-width: 480px;
  margin: 0 auto;
  padding: 36px 30px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  text-align: center;
  backdrop-filter: blur(20px);
}
.track-lookup-msg { color: var(--text-dim); margin-bottom: 20px; font-size: 14px; }
.track-lookup-form {
  display: flex;
  gap: 10px;
  margin-bottom: 16px;
}
.track-lookup-form input {
  flex: 1;
  padding: 14px 18px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-family: 'Courier New', monospace;
  font-size: 15px;
  letter-spacing: 0.2em;
  text-align: center;
  text-transform: uppercase;
}
.track-lookup-form input:focus { outline: none; border-color: var(--neon); }
.track-lookup-form input.shake { animation: shake 0.4s; }
.track-help { font-size: 12px; color: var(--text-mute); }
.track-help a { color: var(--neon); }

.track-detail {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  backdrop-filter: blur(20px);
}
.td-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  padding-bottom: 22px;
  border-bottom: 1px dashed var(--border);
  margin-bottom: 26px;
  flex-wrap: wrap;
}
.td-ref-label { font-size: 11px; color: var(--text-mute); letter-spacing: 0.15em; text-transform: uppercase; margin-bottom: 4px; }
.td-ref {
  font-family: 'Courier New', monospace;
  font-size: 26px;
  color: var(--neon);
  letter-spacing: 0.1em;
  margin-bottom: 6px;
}
.td-date { font-size: 13px; color: var(--text-dim); }
.td-status {
  padding: 8px 16px;
  background: rgba(0, 0, 0, 0.4);
  border: 1.5px solid var(--border);
  border-radius: 999px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 14px;
  letter-spacing: 0.15em;
}

/* Timeline */
.track-timeline {
  list-style: none;
  padding: 0;
  margin: 0 0 32px;
  position: relative;
}
.track-timeline::before {
  content: '';
  position: absolute;
  left: 17px;
  top: 18px;
  bottom: 18px;
  width: 2px;
  background: var(--border);
}
.tl-step {
  position: relative;
  padding-left: 50px;
  padding-bottom: 22px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.tl-step:last-child { padding-bottom: 0; }
.tl-dot {
  position: absolute;
  left: 0;
  top: 0;
  width: 36px; height: 36px;
  display: grid;
  place-items: center;
  background: rgba(255, 255, 255, 0.04);
  border: 2px solid var(--border);
  border-radius: 50%;
  font-size: 13px;
  font-weight: 700;
  color: var(--text-mute);
  z-index: 1;
}
.tl-step.done .tl-dot {
  background: var(--grad-neon);
  border-color: transparent;
  color: #052424;
  font-size: 16px;
}
.tl-step.active .tl-dot {
  box-shadow: 0 0 0 4px rgba(94, 233, 227, 0.25);
  animation: tlPulse 1.6s infinite;
}
@keyframes tlPulse {
  0%, 100% { box-shadow: 0 0 0 4px rgba(94, 233, 227, 0.25); }
  50%      { box-shadow: 0 0 0 8px rgba(94, 233, 227, 0.12); }
}
.tl-step.cancelled .tl-dot { background: rgba(255, 107, 107, 0.15); border-color: #ff6b6b; color: #ff6b6b; }
.tl-label {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
  letter-spacing: 0.04em;
  color: var(--text-mute);
}
.tl-step.done .tl-label,
.tl-step.active .tl-label { color: var(--text); }
.tl-step.active .tl-label { color: var(--neon); }
.tl-desc { font-size: 12px; color: var(--text-mute); }

/* Detail blocks */
.td-block {
  padding-top: 20px;
  border-top: 1px dashed var(--border);
  margin-top: 20px;
}
.td-block:first-of-type { padding-top: 0; border-top: none; margin-top: 0; }
.td-block h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 16px;
  letter-spacing: 0.15em;
  color: var(--neon);
  margin-bottom: 14px;
  text-transform: uppercase;
}

.td-items { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.td-items li {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 4px 14px;
  padding-bottom: 10px;
  border-bottom: 1px dashed var(--border);
  font-size: 14px;
}
.td-items li:last-child { border-bottom: none; padding-bottom: 0; }
.td-item-name { font-weight: 700; color: var(--text); }
.td-item-meta { font-size: 11px; color: var(--text-mute); letter-spacing: 0.05em; text-transform: uppercase; }
.td-item-price { font-family: 'Bohemian Typewriter', sans-serif; font-size: 18px; color: var(--neon); grid-row: span 2; align-self: center; }

.td-custom {
  margin-top: 12px;
  padding: 10px 12px;
  background: rgba(167, 139, 250, 0.08);
  border: 1px solid rgba(167, 139, 250, 0.3);
  border-radius: 8px;
  color: #c4b3fa;
  font-size: 12px;
}
.td-custom strong { color: #a78bfa; }

.td-bill { display: flex; flex-direction: column; gap: 6px; }
.td-bill-row {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: var(--text-dim);
}
.td-bill-row.grand {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  color: var(--text);
  border-top: 1px solid var(--border);
  padding-top: 12px;
  margin-top: 8px;
  letter-spacing: 0.04em;
}
.td-bill-row.grand span:last-child { color: var(--neon); }

.td-delivery { font-size: 13px; color: var(--text-dim); line-height: 1.7; margin-bottom: 10px; }
.td-delivery strong { color: var(--text); }
.td-delivery .muted { color: var(--text-mute); font-size: 11px; letter-spacing: 0.05em; text-transform: uppercase; }
.td-payment { font-size: 13px; color: var(--text-dim); }
.td-payment strong { color: var(--text); }

.td-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 28px;
  padding-top: 20px;
  border-top: 1px dashed var(--border);
}
.td-actions .btn { font-size: 13px; }

/* ============================================================
   404 ERROR PAGE
   ============================================================ */
.page-404 { min-height: 100vh; background:
  radial-gradient(800px 600px at 50% 0%, rgba(94, 233, 227, 0.08), transparent 60%),
  var(--bg); }
.error-page {
  display: grid;
  place-items: center;
  min-height: calc(100vh - 72px);
  padding: 80px 24px;
}
.error-card { text-align: center; max-width: 600px; }
.error-code {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(140px, 25vw, 240px);
  line-height: 1;
  letter-spacing: 0.05em;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: linear-gradient(180deg, var(--cream) 0%, #b8a570 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  margin-bottom: 16px;
}
.error-code .ball {
  -webkit-text-fill-color: initial;
  font-size: clamp(80px, 15vw, 140px);
  display: inline-block;
  transition: transform 0.08s linear;
}
.error-card h1 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: clamp(40px, 7vw, 72px);
  letter-spacing: 0.06em;
  color: var(--neon);
  margin-bottom: 14px;
}
.error-msg {
  color: var(--text-dim);
  font-size: 16px;
  line-height: 1.6;
  margin-bottom: 32px;
}
.error-actions {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 36px;
}
.error-shortcuts {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
  padding-top: 24px;
  border-top: 1px dashed var(--border);
}
.error-shortcuts a {
  font-size: 14px;
  font-weight: 600;
  color: var(--text-dim);
  transition: color 0.2s var(--ease);
}
.error-shortcuts a:hover { color: var(--neon); }

@media (max-width: 640px) {
  .track-page { padding: 100px 0 50px; }
  .track-detail { padding: 22px; }
  .td-head { flex-direction: column; }
  .td-ref { font-size: 22px; }
  .td-items li { grid-template-columns: 1fr; }
  .td-item-price { grid-row: auto; align-self: start; }
  .error-shortcuts { gap: 12px; }
  .error-shortcuts a { font-size: 13px; }
}

/* ============================================================
   PRINT — clean receipt for track page
   ============================================================ */
@media print {
  body { background: #fff !important; color: #000 !important; }
  .navbar, .footer, .no-print, .float-whatsapp, .float-messenger,
  .back-to-top, .cart-pill, .wishlist-pill, .social-toast,
  .td-actions, .matchday-strip { display: none !important; }
  .track-detail {
    background: #fff !important;
    border: 1px solid #ccc !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    color: #000;
  }
  .td-ref, .lb-correct, .td-item-price, .td-bill-row.grand span:last-child,
  .tl-step.active .tl-label { color: #1d6b3a !important; }
  .td-status { border-color: #1d6b3a !important; color: #1d6b3a !important; background: #fff !important; }
  .tl-step.done .tl-dot { background: #1d6b3a !important; color: #fff !important; }
  .tl-dot { background: #fff !important; border-color: #ccc !important; color: #000 !important; }
  .tl-label, .td-block h3, .td-item-name, .td-bill-row.grand,
  .td-delivery strong, .td-payment strong { color: #000 !important; }
  .tl-desc, .td-bill-row, .td-delivery, .td-item-meta,
  .td-ref-label, .td-date { color: #555 !important; }
  .track-page { padding: 0; }
  .track-head { display: none; }
  .container.narrow { max-width: none; padding: 0; }
}

/* ============================================================
   PREDICTION SYSTEM — predict button, modal, leaderboard, admin
   ============================================================ */

/* Predict button on match cards */
.mc-predict-btn {
  width: 100%;
  margin-top: 14px;
  padding: 11px 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: linear-gradient(135deg, rgba(94, 233, 227, 0.12), rgba(167, 139, 250, 0.12));
  color: var(--text);
  border: 1px solid rgba(94, 233, 227, 0.3);
  border-radius: 10px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.04em;
  transition: all 0.25s var(--ease);
  cursor: pointer;
}
.mc-predict-btn:hover {
  background: var(--grad-neon);
  color: #052424;
  border-color: transparent;
  box-shadow: 0 8px 20px -6px rgba(94, 233, 227, 0.5);
  transform: translateY(-1px);
}
.mc-predict-btn svg { fill: var(--neon); transition: fill 0.2s var(--ease); }
.mc-predict-btn:hover svg { fill: #052424; }

.mc-mypred {
  display: block;
  margin-top: 8px;
  text-align: center;
  font-size: 11px;
  color: var(--text-mute);
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* Final score block (after admin enters result) */
.mc-final {
  margin-top: 14px;
  padding: 12px 14px;
  background: rgba(94, 233, 227, 0.06);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.mc-final-score {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 32px;
  line-height: 1;
  color: var(--neon);
  letter-spacing: 0.04em;
}
.mc-final-label {
  font-size: 11px;
  color: var(--text-dim);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.mc-final-label strong { color: var(--text); }

/* Live match state — red glow + pulsing dot */
.mc-final.live {
  background: rgba(255, 59, 92, 0.08);
  border-color: rgba(255, 59, 92, 0.4);
}
.mc-final.live .mc-final-score { color: var(--red); }
.mc-final.live .mc-final-label { color: var(--red); font-weight: 700; }
.live-dot {
  display: inline-block;
  width: 8px; height: 8px;
  margin-right: 4px;
  border-radius: 50%;
  background: var(--red);
  box-shadow: 0 0 0 0 rgba(255, 59, 92, 0.6);
  animation: livePulse 1.4s ease-out infinite;
  vertical-align: middle;
}
@keyframes livePulse {
  0%   { box-shadow: 0 0 0 0 rgba(255, 59, 92, 0.6); }
  70%  { box-shadow: 0 0 0 7px rgba(255, 59, 92, 0); }
  100% { box-shadow: 0 0 0 0 rgba(255, 59, 92, 0); }
}
.my-pred {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.my-pred.correct { background: rgba(81, 224, 164, 0.15); color: #51e0a4; border: 1px solid rgba(81, 224, 164, 0.4); }
.my-pred.wrong   { background: rgba(255, 107, 107, 0.12); color: #ff8585; border: 1px solid rgba(255, 107, 107, 0.4); }

/* Prediction modal */
.predict-modal {
  position: fixed;
  inset: 0;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s var(--ease);
}
.predict-modal[hidden] { display: none !important; }
.predict-modal.show { opacity: 1; pointer-events: auto; }
.predict-card {
  position: relative;
  max-width: 520px;
  width: 100%;
  padding: 36px 30px 30px;
  background: linear-gradient(180deg, #11181f 0%, #0a0f14 100%);
  border: 1px solid rgba(94, 233, 227, 0.2);
  border-radius: var(--radius-lg);
  box-shadow: 0 40px 100px -20px rgba(0, 0, 0, 0.8);
  transform: scale(0.94);
  transition: transform 0.3s var(--ease-out);
}
.predict-modal.show .predict-card { transform: scale(1); }

.predict-headline {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  letter-spacing: 0.04em;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 6px 0;
  text-align: center;
}
.predict-headline img {
  width: 36px; height: 24px;
  border-radius: 4px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.predict-vs { color: var(--text-mute); font-size: 18px; }
.predict-meta {
  text-align: center;
  font-size: 11px;
  color: var(--text-mute);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 20px;
}

.predict-name-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.predict-name-row span {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--text-dim);
  text-transform: uppercase;
}
.predict-name-row input {
  padding: 14px 16px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--border);
  border-radius: 10px;
  color: var(--text);
  font-size: 15px;
  font-family: inherit;
}
.predict-name-row input:focus {
  outline: none;
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.04);
}

.predict-options {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 8px;
  margin-top: 8px;
  margin-bottom: 22px;
}
.predict-opt {
  padding: 16px 8px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 2px solid var(--border);
  border-radius: 12px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  transition: all 0.25s var(--ease);
}
.predict-opt img {
  width: 40px; height: 28px;
  border-radius: 4px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.15);
}
.po-draw-ico {
  width: 40px; height: 28px;
  display: grid;
  place-items: center;
  font-size: 22px;
  color: var(--text-mute);
}
.po-team {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 14px;
  letter-spacing: 0.04em;
  text-align: center;
  line-height: 1.1;
}
.po-result {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.15em;
  color: var(--text-mute);
  text-transform: uppercase;
}
.predict-opt:hover { border-color: rgba(94, 233, 227, 0.5); transform: translateY(-2px); }
.predict-opt.active {
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.08);
  box-shadow: 0 0 0 2px rgba(94, 233, 227, 0.25), 0 8px 20px -8px rgba(94, 233, 227, 0.5);
}
.predict-opt.active .po-result { color: var(--neon); }

#predictSubmit { width: 100%; }
#predictSubmit:disabled { opacity: 0.4; cursor: not-allowed; }

.predict-success {
  text-align: center;
  padding: 12px 0;
}
.predict-success-ico {
  width: 64px; height: 64px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--grad-neon);
  color: #052424;
  display: grid;
  place-items: center;
  font-size: 32px;
  box-shadow: 0 0 30px rgba(94, 233, 227, 0.5);
}
.predict-success h4 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  letter-spacing: 0.04em;
  margin-bottom: 8px;
}
.predict-success p { color: var(--text-dim); margin-bottom: 20px; font-size: 14px; }
.predict-success strong { color: var(--neon); }

/* Leaderboard panel */
.leaderboard-wrap {
  padding: 32px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.lb-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 22px;
  flex-wrap: wrap;
}
.lb-head h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 28px;
  letter-spacing: 0.04em;
  margin-bottom: 4px;
}
.lb-sub { color: var(--text-mute); font-size: 12px; }
.lb-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.lb-stat {
  padding: 5px 12px;
  background: rgba(94, 233, 227, 0.08);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: 999px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--neon);
  text-transform: uppercase;
}

.lb-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.lb-row {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 14px;
  align-items: center;
  padding: 14px 18px;
  background: rgba(255, 255, 255, 0.02);
  border: 1px solid var(--border);
  border-radius: 12px;
  transition: all 0.2s var(--ease);
}
.lb-row:hover { background: rgba(255, 255, 255, 0.04); }
.lb-row.lb-top {
  background: linear-gradient(135deg, rgba(255, 215, 0, 0.06), rgba(94, 233, 227, 0.03));
  border-color: rgba(255, 215, 0, 0.25);
}
.lb-row.lb-me {
  border-color: var(--neon);
  box-shadow: 0 0 0 1px rgba(94, 233, 227, 0.4);
  background: rgba(94, 233, 227, 0.05);
}
.lb-rank {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 26px;
  text-align: center;
  color: var(--text-mute);
  letter-spacing: 0.04em;
}
.lb-row.lb-top .lb-rank { font-size: 28px; color: var(--text); }
.lb-name {
  font-weight: 700;
  font-size: 15px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.lb-you {
  padding: 2px 8px;
  background: var(--grad-neon);
  color: #052424;
  font-size: 9px;
  font-weight: 800;
  letter-spacing: 0.15em;
  border-radius: 999px;
}
.lb-stats {
  display: flex;
  align-items: baseline;
  gap: 4px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 18px;
}
.lb-correct { color: var(--neon); font-size: 22px; }
.lb-divider, .lb-scored { color: var(--text-mute); }
.lb-acc {
  margin-left: 10px;
  padding: 3px 9px;
  background: rgba(94, 233, 227, 0.1);
  color: var(--neon);
  border-radius: 999px;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
}
.lb-pending {
  margin-left: 10px;
  padding: 3px 9px;
  background: rgba(255, 181, 71, 0.1);
  color: #ffb547;
  border-radius: 999px;
  font-family: 'Inter', sans-serif;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.05em;
}

.lb-empty {
  padding: 48px 20px;
  text-align: center;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 14px;
  border: 1px dashed var(--border);
}
.lb-empty-ico { font-size: 44px; margin-bottom: 12px; opacity: 0.6; }
.lb-empty h4 { font-family: 'Bohemian Typewriter', sans-serif; font-size: 22px; margin-bottom: 6px; }
.lb-empty p { color: var(--text-mute); font-size: 13px; }

.lb-rules {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px dashed var(--border);
  text-align: center;
  font-size: 12px;
  color: var(--text-mute);
}

/* Admin customer-reviews section */
.admin-reviews {
  margin-bottom: 28px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.review-form .form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
.review-form .form-row.full { grid-template-columns: 1fr; }
.review-form label {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--text-dim);
  text-transform: uppercase;
}
.review-form .req { color: #ff6b6b; }
.review-form .hint { font-size: 11px; color: var(--text-mute); font-weight: 400; letter-spacing: 0; text-transform: none; margin-top: 4px; }
.review-form input[type=text],
.review-form textarea,
.review-form select {
  width: 100%;
  padding: 10px 12px;
  background: rgba(0,0,0,0.35);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  letter-spacing: 0;
  font-weight: 400;
  text-transform: none;
}
.review-form input[type=file] { font-size: 13px; color: var(--text-dim); }
.review-form input:focus, .review-form textarea:focus, .review-form select:focus {
  outline: none;
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.04);
}
.review-form textarea { resize: vertical; min-height: 80px; font-family: inherit; }
.review-form select { appearance: none; padding-right: 36px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235ee9e3' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center; background-size: 11px;
}
.review-form select option { background: #0c1217; color: var(--text); }
.review-form button[type=submit] { padding: 12px 24px; }

.review-form-msg {
  margin-top: 12px;
  padding: 10px 14px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
}
.review-form-msg.ok  { background: rgba(81, 224, 164, 0.12);  color: #51e0a4; border: 1px solid rgba(81, 224, 164, 0.35); }
.review-form-msg.err { background: rgba(255, 107, 107, 0.12); color: #ff6b6b; border: 1px solid rgba(255, 107, 107, 0.35); }

.admin-reviews-list {
  margin-top: 24px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 14px;
}
.admin-review-tile {
  position: relative;
  padding: 14px;
  background: rgba(0,0,0,0.3);
  border: 1px solid var(--border);
  border-radius: 10px;
  font-size: 13px;
}
.admin-review-tile-img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: 6px;
  margin-bottom: 10px;
  display: block;
}
.admin-review-tile-head { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; margin-bottom: 8px; }
.admin-review-tile-head strong { color: var(--text); font-size: 13px; }
.art-stars { color: var(--gold); font-size: 12px; }
.art-text { color: var(--text-dim); line-height: 1.5; margin-bottom: 8px; font-size: 12px; }
.art-buy  { color: var(--neon); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; margin-bottom: 4px; }
.art-loc  { color: var(--text-mute); font-size: 11px; }
.admin-review-tile-del {
  position: absolute;
  top: 6px; right: 6px;
  width: 32px; height: 32px;       /* bigger tap target for mobile */
  background: rgba(0,0,0,0.85);
  color: #fff;
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 50%;
  font-size: 18px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  z-index: 5;                       /* must beat the video element */
  transition: background 0.2s var(--ease);
  -webkit-tap-highlight-color: rgba(255, 107, 107, 0.3);
  padding: 0;
}
.admin-review-tile-del:hover,
.admin-review-tile-del:active { background: #ff6b6b; }

/* Block the video element inside admin tiles from eating clicks meant
   for the × delete button (iOS Safari especially treats inline video as
   a click-grabbing region even without controls=true). */
.admin-review-tile > video.admin-review-tile-img {
  pointer-events: none;
}

.admin-review-empty {
  grid-column: 1 / -1;
  padding: 30px 20px;
  text-align: center;
  background: rgba(255, 255, 255, 0.02);
  border-radius: 10px;
  border: 1px dashed var(--border);
}
.admin-review-empty .icon { font-size: 32px; display: block; margin-bottom: 8px; opacity: 0.6; }
.admin-review-empty p { color: var(--text-mute); font-size: 13px; margin: 0; }

/* Landing-page review card with customer photo or video */
.review-card.has-media .rv-media {
  margin: -28px -28px 14px;
  height: 220px;
  overflow: hidden;
  border-radius: var(--radius) var(--radius) 0 0;
  background: #050a0e;
}
.review-card.has-media .rv-media img,
.review-card.has-media .rv-media video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}
.review-card.has-photo:hover .rv-media img { transform: scale(1.04); transition: transform 0.5s var(--ease-out); }
.review-card.has-media video { background: #000; }

/* Admin results section */
.admin-results {
  margin-bottom: 28px;
  padding: 24px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  backdrop-filter: blur(20px);
}
.admin-section-head h2 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  letter-spacing: 0.05em;
  margin-bottom: 4px;
}
.admin-section-head p { color: var(--text-dim); font-size: 13px; margin-bottom: 18px; }

/* ============ COLLAPSIBLE EDIT SECTIONS ============
   Titled admin sections fold down to just their heading. The title acts as a
   click target with a chevron that rotates when open. */
.admin-collapsible { margin-bottom: 18px; }
.admin-collapsible > .admin-section-head h2 {
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  user-select: none;
  transition: color 0.2s var(--ease-out);
}
.admin-collapsible > .admin-section-head h2:hover { color: var(--neon); }
.admin-collapsible > .admin-section-head h2:focus-visible {
  outline: 2px solid var(--neon);
  outline-offset: 4px;
  border-radius: 6px;
}
.admin-collapsible > .admin-section-head h2::after {
  content: '▾';
  margin-left: auto;
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  color: var(--text-mute);
  transition: transform 0.25s var(--ease-out), color 0.2s var(--ease-out);
}
.admin-collapsible > .admin-section-head h2:hover::after { color: var(--neon); }
.admin-collapsible.collapsed > .admin-section-head h2 { margin-bottom: 0; }
.admin-collapsible.collapsed > .admin-section-head h2::after { transform: rotate(-90deg); }
/* Collapsed: hide the description and every non-header child of the section */
.admin-collapsible.collapsed > .admin-section-head p { display: none; }
.admin-collapsible.collapsed > :not(.admin-section-head) { display: none; }

/* ============ JERSEYS — TOTAL + PER-TEAM BREAKDOWN ============ */
.jerseys-breakdown { margin-bottom: 18px; }
.jb-total {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin-bottom: 14px;
}
.jb-total-num {
  font-family: 'Bebas Neue', sans-serif;
  font-size: 44px;
  line-height: 1;
  color: var(--neon);
}
.jb-total-lbl {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--text-mute);
}
.jb-teams { display: flex; flex-wrap: wrap; gap: 8px; }
.jb-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 5px 6px 5px 12px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 999px;
  font-size: 13px;
}
.jb-chip-team { color: var(--text); font-weight: 500; }
.jb-chip-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 22px;
  height: 22px;
  padding: 0 6px;
  background: var(--neon);
  color: #04121a;
  font-weight: 700;
  font-size: 12px;
  border-radius: 999px;
}

/* Two-click delete confirmation state — applied by JS to ANY delete button
   on first click. The visual change (red glow + animated outline) tells Sir
   "I heard the click, click again to actually delete." Auto-reverts in ~3.5s. */
.is-confirming {
  background: rgba(255, 107, 107, 0.25) !important;
  border-color: #ff6b6b !important;
  color: #ff6b6b !important;
  box-shadow: 0 0 0 3px rgba(255, 107, 107, 0.15), 0 0 12px rgba(255, 107, 107, 0.4) !important;
  animation: confirm-pulse 0.6s ease-in-out infinite alternate;
}
.is-confirming-running {
  cursor: progress;
  opacity: 0.7;
}
@keyframes confirm-pulse {
  to { box-shadow: 0 0 0 6px rgba(255, 107, 107, 0.08), 0 0 18px rgba(255, 107, 107, 0.55) !important; }
}

/* ============ SITE SETTINGS ADMIN ============ */
.settings-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 14px;
}
.settings-card {
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 18px;
}
.settings-card h3 {
  font-family: 'Bohemian Typewriter', monospace;
  font-size: 16px;
  margin-bottom: 14px;
  color: var(--neon);
  letter-spacing: 0.04em;
}
.settings-card-hint { color: var(--text-mute); font-size: 12px; margin-bottom: 12px; }
.settings-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 8px;
}
.settings-msg { font-size: 12px; font-weight: 600; }
.settings-msg.ok  { color: #51e0a4; }
.settings-msg.err { color: #ff6b6b; }

.offers-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.offer-row {
  display: grid;
  grid-template-columns: 130px auto 1fr auto 28px;
  gap: 10px;
  align-items: center;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  font-size: 13px;
}
.offer-row-tag {
  background: rgba(94, 233, 227, 0.12);
  color: var(--neon);
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
}
.offer-row-desc { color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; }
.offer-row-star { color: #ffb547; font-size: 16px; }
.offer-add-form {
  padding-top: 14px;
  border-top: 1px dashed var(--border);
}
.offer-add-form .form-row { margin-bottom: 10px; }
@media (max-width: 700px) {
  .offer-row { grid-template-columns: 1fr; }
}

.players-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.player-row {
  display: grid;
  grid-template-columns: 38px 1fr 50px 100px 1fr 28px;
  gap: 10px;
  align-items: center;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  font-size: 13px;
}
.player-row-number {
  background: var(--neon);
  color: var(--bg);
  width: 32px; height: 32px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bohemian Typewriter', monospace;
  font-weight: 700;
}
.player-row-country {
  background: rgba(255, 181, 71, 0.15);
  color: #ffb547;
  padding: 2px 8px;
  border-radius: 10px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-align: center;
}
.player-row-pos    { color: var(--text-dim); font-size: 12px; }
.player-row-jersey { color: var(--text-mute); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.player-add-form { padding-top: 14px; border-top: 1px dashed var(--border); }
@media (max-width: 700px) {
  .player-row { grid-template-columns: 1fr; }
}

.promos-list { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.promo-row {
  display: grid;
  grid-template-columns: 120px 90px 1fr 28px;
  gap: 10px;
  align-items: center;
  padding: 8px 12px;
  background: rgba(0, 0, 0, 0.25);
  border-radius: 8px;
  font-size: 13px;
}
.promo-code-tag {
  font-family: 'Courier Prime', monospace;
  color: var(--neon);
  font-weight: 700;
  letter-spacing: 0.05em;
}
.promo-value { color: #ffb547; font-weight: 600; }
.promo-label { color: var(--text-dim); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.promo-add-row {
  display: grid;
  grid-template-columns: 160px 100px 100px 1fr auto;
  gap: 8px;
  align-items: center;
  padding-top: 10px;
  border-top: 1px dashed var(--border);
}
.promo-add-row input, .promo-add-row select {
  padding: 8px 10px;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid var(--border);
  color: var(--text);
  border-radius: 6px;
  font-size: 12px;
}
@media (max-width: 700px) {
  .promo-row, .promo-add-row { grid-template-columns: 1fr; }
}

/* ============ JERSEYS CATALOG ADMIN ============ */
.jerseys-toolbar {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 18px;
  flex-wrap: wrap;
}
.jerseys-count {
  margin-left: auto;
  font-size: 12px;
  color: var(--text-mute);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.admin-jerseys-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.admin-jersey-row {
  display: grid;
  grid-template-columns: auto 56px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 10px;
  transition: background 0.15s ease;
}
.admin-jersey-row:hover { background: rgba(94, 233, 227, 0.05); }
.ajr-order {
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.ajr-move {
  width: 26px; height: 22px;
  display: grid;
  place-items: center;
  font-size: 11px;
  line-height: 1;
  color: var(--text-dim);
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.15s ease;
}
.ajr-move:hover:not(:disabled) {
  color: #052424;
  background: var(--neon);
  border-color: transparent;
}
.ajr-move:disabled { opacity: 0.3; cursor: not-allowed; }

/* ============================================================
   ADMIN — Sales & Stock
   ============================================================ */
.sales-kpis {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 4px;
}
.due-pill {
  display: inline-block;
  margin-left: 8px;
  padding: 2px 9px;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.05em;
  border-radius: 999px;
  background: rgba(255, 181, 71, 0.18);
  color: #ffb547;
  vertical-align: middle;
}
.sales-list { display: flex; flex-direction: column; gap: 8px; }
.sale-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-left: 3px solid var(--text-mute);
  border-radius: 10px;
}
.sale-row.paid    { border-left-color: #51e0a4; }
.sale-row.partial { border-left-color: #ffb547; }
.sale-row.due     { border-left-color: var(--red); }
.sale-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.sale-main strong { font-size: 14px; }
.sale-size {
  display: inline-block; padding: 0 5px; margin-left: 2px;
  font-size: 11px; border-radius: 4px;
  background: var(--surface-hi); color: var(--text-dim);
}
.sale-cust { font-size: 12px; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sale-meta { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
.sale-total { font-family: 'Bohemian Typewriter', sans-serif; color: var(--neon); font-size: 16px; }
.sale-pay { font-size: 10px; font-weight: 700; letter-spacing: 0.04em; }
.sale-pay.paid { color: #51e0a4; }
.sale-pay.partial { color: #ffb547; }
.sale-pay.due { color: var(--red); }
.sale-date { font-size: 11px; color: var(--text-mute); }
.sale-actions { display: flex; gap: 6px; }

.stock-grid { display: flex; flex-direction: column; gap: 8px; }
.stock-row {
  display: grid;
  grid-template-columns: 1fr repeat(4, 64px) auto;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
  border-radius: 10px;
}
.stock-team { font-size: 13px; font-weight: 600; }
.stock-cell {
  display: flex; flex-direction: column; align-items: center;
  font-size: 10px; color: var(--text-mute); gap: 2px;
}
.stock-cell input {
  width: 56px; text-align: center;
  padding: 5px; font-size: 13px;
  background: var(--bg-2); color: var(--text);
  border: 1px solid var(--border); border-radius: 6px;
}
@media (max-width: 768px) {
  .sales-kpis { grid-template-columns: repeat(2, 1fr); }
  .stock-row { grid-template-columns: 1fr 1fr 1fr; }
  .stock-row .stock-team { grid-column: 1 / -1; }
  .sale-row { grid-template-columns: 1fr auto; }
  .sale-actions { grid-column: 1 / -1; justify-content: flex-end; }
}

/* ============================================================
   ACCOUNTS PAGE — P&L, expenses
   ============================================================ */
.acct-kpis { margin-bottom: 16px; }
.kpi-card.kpi-net {
  background: linear-gradient(135deg, rgba(81,224,164,0.12), rgba(94,233,227,0.06));
  border-color: rgba(81,224,164,0.4);
}
.acct-calc-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 20px 22px;
  margin-bottom: 16px;
}
.acct-calc-card h2 { font-size: 18px; margin-bottom: 14px; }
.calc-rows { display: flex; flex-direction: column; gap: 2px; max-width: 520px; }
.calc-row {
  display: flex; justify-content: space-between; align-items: center;
  padding: 9px 4px;
  border-bottom: 1px dashed var(--border);
  font-size: 14px; color: var(--text-dim);
}
.calc-row span:last-child { font-family: 'Bohemian Typewriter', sans-serif; color: var(--text); }
.calc-row .neg { color: #ff8a8a; }
.calc-row.sub { color: var(--text); font-weight: 600; }
.calc-row.sub span:last-child { color: var(--neon); }
.calc-row.total {
  margin-top: 6px; padding: 12px 4px;
  border-bottom: none; border-top: 2px solid var(--border);
  font-size: 16px; font-weight: 700; color: var(--text);
}
.calc-row.total.pos span:last-child { color: #51e0a4; font-size: 22px; }
.calc-row.total.neg span:last-child { color: #ff6b6b; font-size: 22px; }
.calc-note { margin-top: 10px; font-size: 12px; color: var(--text-mute); }
.calc-note strong { color: var(--gold); }

.acct-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.cat-breakdown { display: flex; flex-direction: column; gap: 12px; }
.cat-row { display: flex; flex-direction: column; gap: 5px; }
.cat-head { display: flex; justify-content: space-between; font-size: 13px; }
.cat-head strong { font-family: 'Bohemian Typewriter', sans-serif; color: var(--text); }
.cat-bar { height: 7px; background: var(--bg-2); border-radius: 999px; overflow: hidden; }
.cat-bar-fill { height: 100%; background: var(--grad-neon); border-radius: 999px; }

.expense-list { display: flex; flex-direction: column; gap: 7px; }
.expense-row {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  background: rgba(255,255,255,0.03);
  border: 1px solid var(--border);
  border-radius: 9px;
}
.exp-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.exp-main strong { font-size: 13px; }
.exp-note { font-size: 12px; color: var(--text-mute); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.exp-amt { font-family: 'Bohemian Typewriter', sans-serif; color: #ff8a8a; font-size: 15px; }
.exp-date { font-size: 11px; color: var(--text-mute); }

@media (max-width: 768px) {
  .acct-grid { grid-template-columns: 1fr; }
}

/* ---- Optimize existing photos (Media Library) ---- */
.optimize-box {
  margin: 14px 0;
  padding: 14px 16px;
  background: rgba(94, 233, 227, 0.05);
  border: 1px solid rgba(94, 233, 227, 0.25);
  border-radius: var(--radius-sm);
}
.optimize-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}
.optimize-head strong { display: block; font-size: 14px; margin-bottom: 3px; }
.optimize-head span { font-size: 12px; color: var(--text-mute); }
.optimize-progress { margin-top: 12px; }
.op-bar {
  height: 8px;
  background: var(--bg-2);
  border-radius: 999px;
  overflow: hidden;
  margin-bottom: 6px;
}
.op-bar-fill {
  height: 100%;
  width: 0;
  background: var(--grad-neon);
  border-radius: 999px;
  transition: width 0.3s ease;
}
.optimize-progress span { font-size: 12px; color: var(--text-dim); }
.ajr-swatch {
  width: 56px; height: 56px;
  border-radius: 8px;
  border: 2px solid;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Bohemian Typewriter', monospace;
  font-size: 20px;
  font-weight: 700;
}
.ajr-info strong { font-size: 14px; display: block; margin-bottom: 4px; }
.ajr-meta { font-size: 12px; color: var(--text-dim); }
.ajr-tag {
  display: inline-block;
  padding: 1px 8px;
  border-radius: 10px;
  font-size: 10px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  background: rgba(94, 233, 227, 0.15);
  color: var(--neon);
  font-weight: 700;
}
.ajr-tag.tag-away { background: rgba(255, 181, 71, 0.15); color: #ffb547; }
.ajr-tag.tag-third { background: rgba(178, 134, 255, 0.15); color: #b286ff; }
.ajr-tag.tag-coming { background: rgba(255, 107, 107, 0.15); color: #ff6b6b; }
.ajr-stock { font-weight: 600; }
.ajr-stock-ok   { color: #51e0a4; }
.ajr-stock-warn { color: #ffb547; }
.ajr-stock-bad  { color: #ff6b6b; }
.ajr-actions { display: flex; gap: 6px; }

/* Jersey editor modal.
   IMPORTANT: the [hidden] attribute drives visibility. `display:flex` would
   normally override the browser's user-agent `[hidden]{display:none}`, leaving
   an invisible (opacity:0) but fully clickable overlay covering the entire
   page — which silently swallows EVERY click on the admin dashboard. The
   `[hidden]{display:none !important}` rule + pointer-events guard prevents
   that classic bug. */
.jersey-editor[hidden] { display: none !important; }
.jersey-editor {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.7);
  backdrop-filter: blur(6px);
  z-index: 200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease;
  overflow-y: auto;
}
.jersey-editor.show { opacity: 1; pointer-events: auto; }
.jersey-editor-card {
  background: var(--panel);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 28px;
  max-width: 720px;
  width: 100%;
  position: relative;
  max-height: 90vh;
  overflow-y: auto;
}
.jersey-editor-card h3 {
  font-family: 'Bohemian Typewriter', monospace;
  font-size: 22px;
  margin-bottom: 18px;
  color: var(--neon);
}
.jersey-editor-close {
  position: absolute;
  top: 14px; right: 14px;
  width: 32px; height: 32px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid var(--border);
  color: var(--text);
  font-size: 18px;
  cursor: pointer;
  line-height: 1;
}
.jersey-editor-close:hover { background: rgba(255, 107, 107, 0.15); color: #ff6b6b; }
.jersey-editor input[type=color] {
  width: 100%;
  height: 42px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: transparent;
  cursor: pointer;
}

.results-stats {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  font-size: 12px;
  color: var(--text-dim);
  letter-spacing: 0.04em;
}
.results-stats strong { color: var(--neon); font-family: 'Bohemian Typewriter', sans-serif; font-size: 16px; margin-right: 4px; }
.results-stats span {
  padding: 6px 12px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
}

.results-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 12px;
}
.result-card {
  padding: 16px;
  background: rgba(0, 0, 0, 0.25);
  border: 1px solid var(--border);
  border-radius: 12px;
}
.result-card.resolved {
  border-color: rgba(81, 224, 164, 0.35);
  background: rgba(81, 224, 164, 0.04);
}
.rc-head {
  display: flex;
  justify-content: space-between;
  font-size: 10px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--text-mute);
  margin-bottom: 10px;
}
.rc-stage { color: var(--neon); font-weight: 700; }
.rc-teams {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
}
.rc-team {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
}
.rc-team img { width: 24px; height: 16px; border-radius: 3px; object-fit: cover; }
.rc-team:last-child { justify-content: flex-end; }
.rc-vs { font-family: 'Bohemian Typewriter', sans-serif; color: var(--text-mute); font-size: 14px; }
.rc-score {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.rc-input {
  width: 56px;
  padding: 10px 6px;
  text-align: center;
  background: rgba(0, 0, 0, 0.4);
  border: 1px solid var(--border);
  border-radius: 8px;
  color: var(--neon);
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  letter-spacing: 0.04em;
}
.rc-input:focus { outline: none; border-color: var(--neon); }
.rc-dash {
  font-family: 'Bohemian Typewriter', sans-serif;
  color: var(--text-mute);
  font-size: 22px;
}
.rc-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
}
.rc-actions .btn { padding: 8px 14px; font-size: 12px; }
.rc-meta { font-size: 11px; color: var(--text-mute); text-align: right; }
.rc-meta strong { color: #51e0a4; }

@media (max-width: 768px) {
  .leaderboard-wrap { padding: 20px; }
  .lb-row { grid-template-columns: 40px 1fr auto; gap: 10px; padding: 12px 14px; }
  .lb-rank { font-size: 20px; }
  .lb-name { font-size: 13px; }
  .lb-correct { font-size: 18px; }
  .predict-card { padding: 28px 20px 22px; }
  .predict-options { gap: 6px; }
  .predict-opt { padding: 12px 4px 10px; }
  .predict-opt img, .po-draw-ico { width: 32px; height: 22px; }
  .po-team { font-size: 12px; }
  .results-cards { grid-template-columns: 1fr; }
}

/* ============================================================
   MOBILE POLISH — overrides + touch-device adjustments
   Loaded after every other rule so it wins on conflicts.
   ============================================================ */

/* Honor iPhone notch & home-indicator safe areas */
@supports (padding: env(safe-area-inset-bottom)) {
  .navbar           { padding-top: env(safe-area-inset-top); height: calc(var(--nav-h) + env(safe-area-inset-top)); }
  .float-whatsapp,
  .float-messenger,
  .back-to-top,
  .cart-pill,
  .wishlist-pill    { margin-bottom: env(safe-area-inset-bottom); }
  .social-toast     { margin-bottom: env(safe-area-inset-bottom); }
}

/* Touch devices: Quick View shouldn't hide behind :hover */
@media (hover: none), (pointer: coarse) {
  .jersey-card .jersey-quickview {
    opacity: 1;
    transform: none;
  }
  /* Hover-only "shine" sweep doesn't make sense on touch — disable */
  .jersey-card:hover .jersey-shine { transform: translateX(-100%); }
  /* Make the order action button always visible / properly sized */
  .jersey-card .jersey-order { padding: 14px; font-size: 14px; }
}

/* ============ Phone-sized tweaks (≤ 768px) ============ */
@media (max-width: 768px) {
  /* Tighter container padding */
  .container { padding: 0 16px; }

  /* Sections breathe less */
  .section { padding: 64px 0; }
  .section-head { margin-bottom: 32px; }

  /* Hero — keep it tall but contents fit */
  .hero { padding: 96px 0 64px; min-height: auto; }
  .hero-title { font-size: clamp(36px, 11vw, 72px); margin-bottom: 18px; }
  .hero-sub { font-size: 14px; margin-bottom: 28px; padding: 0 8px; }
  .hero-badge { font-size: 10px; padding: 7px 14px; }

  /* Countdown — compact box layout, no overflow */
  .countdown { padding: 12px 14px; gap: 2px; flex-wrap: nowrap; }
  .cd-box { min-width: 44px; }
  .cd-num { font-size: 24px; }
  .cd-lbl { font-size: 9px; }
  .cd-sep { font-size: 18px; margin-top: -8px; }
  .cd-caption { font-size: 11px; padding: 0 16px; margin-bottom: 26px; }

  .hero-cta { gap: 10px; margin-bottom: 40px; }
  .hero-stats { gap: 28px; }
  .hero-stats strong { font-size: 26px; }
  .hero-stats span { font-size: 10px; }

  /* Aurora — reduce blur for cheaper GPU compositing on mobile */
  .aurora-blob { filter: blur(60px); }

  /* Jerseys grid — single big card per row on phone, taller for tap */
  .jersey-grid { grid-template-columns: 1fr; gap: 18px; }
  .jersey-card .jersey-img-wrap { aspect-ratio: 1/1; }

  /* Stock badge moves under heart properly */
  .jersey-card .stock-badge { top: 60px; right: 14px; }

  /* Bigger tap targets for sizes */
  .size-btn { height: 40px; font-size: 12px; }

  /* Featured match — flag stacks above center, vs label hidden, full-width */
  .match-featured {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 50px 22px 26px;
    text-align: center;
  }
  .match-featured::before { top: 12px; }
  .mf-team { flex-direction: row; gap: 12px; justify-content: center; align-items: center; }
  .mf-flag { width: 64px; height: 44px; }
  .mf-name { font-size: 20px; margin: 0; }
  .mf-center { order: 99; padding: 0; }
  .mf-vs { display: none; }
  .mf-countdown { padding: 10px 12px; gap: 3px; }
  .mf-cd-num { font-size: 20px; }
  .mf-cd-box { min-width: 32px; }
  .mf-cd-sep { font-size: 14px; }
  .mf-meta { font-size: 10px; }
  .mf-actions { justify-content: center; flex-wrap: wrap; }

  /* Match fixture cards */
  .match-grid { grid-template-columns: 1fr; gap: 14px; }
  .mc-flag { width: 56px; height: 38px; }
  .mc-team-name { font-size: 13px; }
  .mc-stage { font-size: 10px; }

  /* Group standings */
  .group-card { padding: 18px; }
  .group-card h3 { font-size: 20px; }
  .group-table th { font-size: 9px; padding: 6px 4px; }
  .group-table td { padding: 8px 4px; font-size: 12px; }

  /* Venues */
  .venues-grid { grid-template-columns: 1fr; }

  /* Star players grid */
  .players-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
  .player-num { font-size: 110px; }
  .player-name { font-size: 22px; }
  .player-blurb { font-size: 12px; }
  .player-info { padding: 16px; }

  /* Reviews — single card visible */
  .review-card { padding: 22px; }

  /* Trust grid */
  .trust-grid { grid-template-columns: 1fr; gap: 14px; }
  .trust-card { padding: 24px 22px; }

  /* Offers stack */
  .offers-grid { gap: 18px; }

  /* Steps stack */
  .steps-grid { gap: 18px; }
  .step-card { padding: 28px 22px; }

  /* FAQ — tighter on phone */
  .faq-item summary { padding: 16px 18px; font-size: 15px; gap: 12px; }
  .faq-icon { width: 24px; height: 24px; font-size: 16px; }
  .faq-body { padding: 0 18px 18px; }

  /* Section title scales */
  .section-title { font-size: clamp(32px, 8vw, 52px); }

  /* Floating buttons — repositioned + compacted to fit on a phone */
  .float-whatsapp { width: 50px; height: 50px; bottom: 18px; right: 16px; }
  .float-whatsapp svg { width: 22px; height: 22px; }
  .float-messenger { width: 50px; height: 50px; right: 16px; }
  .float-messenger svg { width: 22px; height: 22px; }
  .float-instagram { width: 50px; height: 50px; right: 16px; }
  .float-instagram svg { width: 22px; height: 22px; }
  .cart-pill { bottom: 142px; right: 16px; height: 42px; padding: 0 12px 0 10px; }
  .cart-pill svg { width: 18px; height: 18px; }
  .cart-count { font-size: 16px; }
  .wishlist-pill { bottom: 194px; right: 16px; height: 42px; padding: 0 12px 0 10px; }
  .wishlist-pill svg { width: 18px; height: 18px; }
  .wishlist-count { font-size: 16px; }
  .back-to-top { bottom: 246px; right: 16px; width: 42px; height: 42px; }

  /* Social toast — full width, smaller */
  .social-toast { left: 12px; right: 12px; bottom: 12px; padding: 10px 12px; max-width: none; }
  .st-avatar { width: 32px; height: 32px; font-size: 16px; }
  .st-line { font-size: 11px; }
  .st-time { font-size: 9px; }

  /* Match day strip */
  .matchday-strip { font-size: 12px; padding: 8px 12px; gap: 6px; }
  .matchday-strip a { padding: 3px 10px; font-size: 11px; }

  /* Order page */
  .checkout { padding: 116px 0 50px; }
  .checkout-grid { gap: 20px; }
  .form-block { padding: 22px; }
  .block-title { font-size: 18px; }
  .step-pill { width: 28px; height: 28px; font-size: 12px; }
  .form-row { gap: 12px; margin-bottom: 12px; }
  .delivery-options, .payment-options { grid-template-columns: 1fr; }
  .opt-card { padding: 12px 14px; }
  .order-summary { padding: 20px; }
  .cart-item { grid-template-columns: 56px 1fr auto; gap: 10px; padding: 10px; }
  .cart-item-img { width: 56px; height: 56px; }
  .cart-item-name { font-size: 12px; }
  .place-order-btn { padding: 16px; font-size: 15px; }
  .totals-row { font-size: 12px; }
  .totals-row.grand { font-size: 24px; }

  /* Admin */
  .admin-main { padding: 22px 14px 50px; }
  .admin-kpis { grid-template-columns: 1fr 1fr; gap: 10px; }
  .kpi-card { padding: 16px; }
  .kpi-val { font-size: 26px; }
  .filter-row { gap: 8px; }
  .filter-row input[type=search] { min-width: 100%; }
  .order-card-head { padding: 12px; gap: 10px; }
  .oc-total { font-size: 18px; }
  .ocb-actions { flex-wrap: wrap; }
  .ocb-actions .btn { width: 100%; justify-content: center; }

  /* Newsletter */
  .newsletter-wrap { padding: 32px 20px; }
  .nl-text .section-title { font-size: clamp(28px, 7vw, 40px); }
}

/* ============ Small phones (≤ 480px) ============ */
@media (max-width: 480px) {
  .hero-title { font-size: clamp(32px, 13vw, 56px); }
  .countdown { transform: scale(0.95); transform-origin: center; }
  .hero-stats { gap: 20px; }
  .hero-stats strong { font-size: 22px; }

  .section-title { font-size: clamp(28px, 9vw, 44px); }

  /* Single-col star players on tiny screens */
  .players-grid { grid-template-columns: 1fr; }

  /* Tighter buttons */
  .btn { padding: 11px 18px; font-size: 13px; }
  .btn-lg { padding: 14px 24px; font-size: 14px; }

  /* Match countdown ultra-compact */
  .mf-countdown { gap: 2px; padding: 8px 10px; }
  .mf-cd-num { font-size: 18px; }
  .mf-cd-box { min-width: 28px; }
  .mf-cd-lbl { font-size: 7px; letter-spacing: 0.1em; }

  /* Quick view modal full-bleed on tiny screens */
  .qv-modal { padding: 0; align-items: flex-end; }
  .qv-card { border-radius: 18px 18px 0 0; max-height: 96vh; }
  .qv-country { font-size: 30px; }

  /* Stop heart + stock-badge sitting on top of each other */
  .jersey-card .wish-heart { width: 32px; height: 32px; top: 12px; right: 12px; }
  .jersey-card .wish-heart svg { width: 16px; height: 16px; }
  .jersey-card .stock-badge { top: 52px; right: 12px; padding: 4px 8px; font-size: 9px; }

  /* Floating buttons one row tighter */
  .cart-pill, .wishlist-pill, .back-to-top { right: 12px; }
}

/* ============ Landscape phone — keep hero usable ============ */
@media (max-height: 480px) and (orientation: landscape) {
  .hero { min-height: auto; padding: 90px 0 40px; }
  .hero-title { font-size: clamp(28px, 6vh, 48px); margin-bottom: 12px; }
  .countdown { padding: 8px 12px; }
  .cd-num { font-size: 20px; }
  .hero-watermark { width: 95vw; opacity: 0.18; }
  .hero-cta { margin-bottom: 20px; }
}

/* ============================================================
   JERSEY TOOLBAR — search + filter chips
   ============================================================ */
.jersey-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 32px;
  flex-wrap: wrap;
}
.jersey-search {
  position: relative;
  flex: 1;
  min-width: 220px;
  max-width: 360px;
  display: flex;
  align-items: center;
}
.jersey-search svg {
  position: absolute;
  left: 16px;
  color: var(--text-mute);
  pointer-events: none;
}
.jersey-search input {
  width: 100%;
  padding: 12px 38px 12px 44px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--text);
  font-size: 14px;
  font-family: inherit;
  transition: border-color 0.2s var(--ease), background 0.2s var(--ease);
}
.jersey-search input::placeholder { color: var(--text-mute); }
.jersey-search input:focus {
  outline: none;
  border-color: var(--neon);
  background: rgba(94, 233, 227, 0.04);
}
.js-clear {
  position: absolute;
  right: 10px;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.08);
  color: var(--text-dim);
  font-size: 16px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background 0.2s var(--ease);
}
.js-clear:hover { background: var(--neon); color: #052424; }

.jersey-filter {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 0;
}

/* Empty state when search/filter returns nothing */
.jersey-empty {
  padding: 60px 24px;
  text-align: center;
  background: var(--surface);
  border: 1px dashed var(--border);
  border-radius: var(--radius);
}
.je-ico { font-size: 44px; margin-bottom: 12px; opacity: 0.5; }
.jersey-empty h3 {
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 24px;
  margin-bottom: 6px;
  letter-spacing: 0.04em;
}
.jersey-empty p { color: var(--text-mute); font-size: 14px; }

/* ============================================================
   MOBILE BOTTOM NAV — app-style sticky toolbar
   ============================================================ */
.mobile-bottom-nav {
  display: none;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 60;
  background: rgba(8, 12, 16, 0.92);
  backdrop-filter: blur(24px) saturate(180%);
  -webkit-backdrop-filter: blur(24px) saturate(180%);
  border-top: 1px solid var(--border);
  padding: 8px 4px;
  padding-bottom: calc(8px + env(safe-area-inset-bottom));
}
.mobile-bottom-nav > * {
  flex: 1;
}
.mbn-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 8px 4px;
  color: var(--text-mute);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-decoration: none;
  border-radius: 10px;
  transition: color 0.2s var(--ease), background 0.2s var(--ease);
  position: relative;
}
.mbn-item:hover, .mbn-item.active {
  color: var(--neon);
  background: rgba(94, 233, 227, 0.06);
}
.mbn-item svg { transition: transform 0.2s var(--ease); }
.mbn-item:active svg { transform: scale(0.85); }
.mbn-cart-count {
  position: absolute;
  top: 4px;
  right: calc(50% - 22px);
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  display: grid;
  place-items: center;
  background: var(--grad-neon);
  color: #052424;
  border-radius: 999px;
  font-family: 'Bohemian Typewriter', sans-serif;
  font-size: 11px;
  font-weight: 800;
  line-height: 1;
}
.mbn-wa svg { color: #25d366; }
.mbn-wa.active { color: #25d366; }

/* Show only on mobile; bump body bottom padding so content doesn't hide behind bar */
@media (max-width: 768px) {
  .mobile-bottom-nav { display: flex; }
  body { padding-bottom: 64px; }
  /* Floating widgets shift up to clear the bottom nav — social stack first */
  .float-whatsapp  { bottom: calc(86px  + env(safe-area-inset-bottom)); }
  .float-messenger { bottom: calc(146px + env(safe-area-inset-bottom)); }
  .float-instagram { bottom: calc(206px + env(safe-area-inset-bottom)); }
  .cart-pill       { bottom: calc(272px + env(safe-area-inset-bottom)); }
  .wishlist-pill   { bottom: calc(324px + env(safe-area-inset-bottom)); }
  .back-to-top     { bottom: calc(376px + env(safe-area-inset-bottom)); }
}

@media (max-width: 480px) {
  .jersey-toolbar { gap: 12px; }
  .jersey-search { max-width: 100%; min-width: 0; width: 100%; }
}

/* ============ MOTION PREFS ============ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
}
