/* ============================================================
   DEVILS ČADCA — sport site v4
   Light, warm design system built on the club's real style guide
   (logo-nove.jpg style sheet): white/cream backgrounds, the
   official red→rust→orange→gold gradient, rounded cards and pill
   buttons, organic curves. Dark tones (--black/--black-2/--black-3)
   are kept only for the navbar, mobile menu and admin panel —
   the public content itself is light, not black.
   ============================================================ */

:root{
  /* dark tokens — navbar / mobile menu / admin panel only */
  --black: #1c0f0b;
  --black-2: #2a1712;
  --black-3: #33201a;

  /* official brand palette (from devilscadca.pdf style sheet) */
  --gold: #f49909;
  --orange: #ea660c;
  --rust: #c44517;
  --red: #bd1818;
  --red-dark: #7a1216;

  /* light theme — main site background & content */
  --bg: #fdf9f5;
  --bg-alt: #f5ece2;
  --card: #ffffff;
  --ink: #2a1912;
  --ink-soft: #5c4a40;
  --muted-lt: #5c4a40;
  --border-lt: rgba(42,25,18,.12);

  /* white/muted for use on dark or colourful backgrounds (navbar, hero, footer, curve banners) */
  --white: #fff8f2;
  --muted: #c9b8ae;
  --border: rgba(255,255,255,.14);

  --grad: linear-gradient(100deg, var(--red) 0%, var(--rust) 35%, var(--orange) 68%, var(--gold) 100%);
  --grad-text: linear-gradient(100deg, var(--gold), var(--red) 85%);
  --font-head: 'Anton', 'Oswald', 'Arial Narrow', sans-serif;
  --font-body: 'Montserrat', 'Open Sans', sans-serif;
  --radius: 22px;
  --radius-sm: 14px;
  --radius-pill: 999px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--bg);color:var(--ink);
  font-family:var(--font-body);line-height:1.7;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;padding:0;}
h1,h2,h3,h4{
  font-family:var(--font-head);text-transform:uppercase;font-weight:400;
  letter-spacing:.01em;line-height:1.05;margin:0 0 .4em;
}
p{margin:0 0 1.1em;color:var(--ink-soft);}
.container{max-width:1140px;margin:0 auto;padding:0 32px;position:relative;}
.grad-text{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;}

/* ---------------- Navbar ---------------- */
.navbar{
  position:fixed;top:0;left:0;right:0;z-index:220;
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 40px;transition:background .25s ease, padding .25s ease, box-shadow .25s ease;
  background:linear-gradient(180deg, rgba(10,10,13,.75), rgba(10,10,13,0));
}
.navbar.scrolled{
  background:rgba(10,10,13,.92);backdrop-filter:blur(10px);
  padding:12px 40px;border-bottom:1px solid var(--border);
}
.nav-logo{position:relative;display:block;width:130px;height:1px;flex-shrink:0;z-index:2;}
.nav-logo::before{
  content:'';position:absolute;left:-10px;top:-8px;width:170px;height:170px;
  border-radius:50%;z-index:4;
  background:#c44517;
}
.nav-logo img{
  position:absolute;left:0;top:2px;
  height:150px!important;width:150px!important;max-width:none!important;
  z-index:5;filter:drop-shadow(0 6px 18px rgba(0,0,0,.4));
}
.nav-actions{display:flex;align-items:center;flex-shrink:0;}
.nav-links{display:flex;align-items:center;gap:4px;flex-wrap:nowrap;}
.nav-links a{
  padding:10px 13px;font-family:var(--font-head);text-transform:uppercase;
  font-size:15px;letter-spacing:.08em;color:var(--white);position:relative;white-space:nowrap;
}
.nav-links a::after{
  content:'';position:absolute;left:16px;right:16px;bottom:6px;height:2px;
  background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .2s ease;
}
.nav-links a:hover::after, .nav-links a.active::after{transform:scaleX(1);}
.nav-links a.active{color:var(--red);}
.nav-cta{
  margin-left:12px;padding:11px 22px;font-family:var(--font-head);text-transform:uppercase;
  font-size:13.5px;letter-spacing:.05em;background:var(--grad);color:#fff;
  border-radius:var(--radius-pill);
  box-shadow:0 6px 18px rgba(189,24,24,.35);
  transition:box-shadow .2s ease, transform .2s ease;
}
.nav-cta:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(189,24,24,.45);}
.nav-cta-alt{
  margin-left:10px;padding:11px 22px;font-family:var(--font-head);text-transform:uppercase;
  font-size:13.5px;letter-spacing:.05em;color:var(--white);background:transparent;
  border:1.5px solid rgba(255,255,255,.55);border-radius:var(--radius-pill);
  transition:background .2s ease, border-color .2s ease, transform .2s ease;
}
.nav-cta-alt:hover{background:rgba(255,255,255,.12);border-color:#fff;transform:translateY(-2px);}
.nav-burger{
  display:none;width:44px;height:44px;border:1px solid var(--border);background:rgba(255,255,255,.04);
  border-radius:50%;
  flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;z-index:220;
}
.nav-burger span{width:20px;height:2px;background:var(--white);transition:transform .2s, opacity .2s;}
.nav-burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.open span:nth-child(2){opacity:0;}
.nav-burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  position:fixed;inset:0;background:var(--black-2);z-index:210;
  display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:4px;
  padding:100px 40px 40px;transform:translateX(100%);transition:transform .3s ease;
  overflow-y:auto;-webkit-overflow-scrolling:touch;
}
.mobile-menu.open{transform:translateX(0);}
.mobile-menu a{
  font-family:var(--font-head);text-transform:uppercase;font-size:30px;color:var(--white);
  padding:10px 0;border-bottom:1px solid var(--border);width:100%;
}
.mobile-menu a.active{color:var(--red);}
.mobile-menu-social{display:flex;gap:16px;margin-top:24px;flex-shrink:0;}
.mobile-menu-social a{font-size:14px;border:1px solid var(--border);border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;text-transform:none;}

/* Shorter viewports (landscape phones, older/smaller devices) — shrink the
   mobile menu so more items fit without needing to scroll to reach them.
   Restricted to landscape only: on portrait phones, Safari/Chrome show/hide
   their address bar as the page scrolls, which shifts the *reported*
   viewport height back and forth across the 700px line — that made the menu
   text visibly jump between two font sizes while open. Landscape phone
   viewports don't have that toolbar jitter, so it's safe to scope it there. */
@media (max-height: 700px) and (orientation: landscape){
  .mobile-menu{padding:84px 32px 24px;gap:0;}
  .mobile-menu a{font-size:21px;padding:7px 0;}
  .mobile-menu-social{margin-top:14px;}
}

/* ---------------- Buttons ---------------- */
.btn{
  position:relative;display:inline-flex;align-items:center;gap:10px;padding:16px 32px;
  font-family:var(--font-head);text-transform:uppercase;letter-spacing:.05em;font-size:14.5px;
  border:1px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;
  overflow:hidden;border-radius:var(--radius-pill);
}
.btn-primary{background:var(--grad);color:#fff;
  box-shadow:0 8px 20px rgba(189,24,24,.28);}
.btn-primary:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 14px 34px rgba(189,24,24,.4);}
.btn-outline{border-color:var(--border-lt);color:var(--ink);}
.btn-outline:hover{border-color:var(--red);color:var(--red);transform:translateY(-3px);box-shadow:0 10px 26px rgba(189,24,24,.15);}
.btn-block{width:100%;justify-content:center;}

/* ---------------- Hero ---------------- */
.hero{
  position:relative;min-height:100vh;display:flex;align-items:center;
  padding:140px 0 120px;background:var(--black);
  overflow:hidden;
}
.hero::before{
  content:'';position:absolute;inset:-2%;z-index:0;
  background-image:var(--hero-bg);background-size:cover;background-position:center;
}
.hero::after{
  content:'';position:absolute;inset:0;z-index:1;
  background:linear-gradient(115deg, rgba(8,8,10,.94) 15%, rgba(8,8,10,.5) 50%, rgba(8,8,10,.1) 100%);
}
.hero-dots{
  position:absolute;inset:-20% -10%;z-index:1;opacity:.16;pointer-events:none;
  background-image:radial-gradient(circle, rgba(255,138,0,.9) 2.5px, transparent 2.6px);
  background-size:34px 34px;
  animation:dotsdrift 40s linear infinite;
}
@keyframes dotsdrift{0%{background-position:0 0;}100%{background-position:340px 170px;}}
.glow-blob{position:absolute;border-radius:50%;filter:blur(70px);z-index:1;pointer-events:none;animation:blobfloat 9s ease-in-out infinite;}
.glow-blob.b1{width:340px;height:340px;background:radial-gradient(circle, rgba(255,45,45,.55), transparent 70%);top:-60px;right:6%;}
.glow-blob.b2{width:280px;height:280px;background:radial-gradient(circle, rgba(255,138,0,.5), transparent 70%);bottom:-40px;left:2%;animation-delay:-3s;}
@keyframes blobfloat{0%,100%{transform:translateY(0) scale(1);}50%{transform:translateY(-26px) scale(1.08);}}
.hero-inner{position:relative;z-index:2;max-width:720px;}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;color:var(--white);font-family:var(--font-head);
  text-transform:uppercase;letter-spacing:.12em;font-size:13.5px;margin-bottom:20px;padding:8px 18px 8px 10px;
  border:1px solid var(--border);background:rgba(255,45,45,.08);border-radius:var(--radius-pill);
}
.hero-eyebrow .dot{width:8px;height:8px;background:var(--red);border-radius:50%;display:inline-block;animation:dotpulse 1.4s ease-in-out infinite;}
@keyframes dotpulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(1.4);}}
.hero h1{font-size:clamp(52px,8vw,104px);margin-bottom:22px;color:var(--white);text-shadow:0 4px 30px rgba(0,0,0,.5);}
.hero p{font-size:18px;max-width:520px;color:#dcdce0;}
.hero-cta{display:flex;gap:16px;margin-top:32px;flex-wrap:wrap;}
.hero-scroll{position:absolute;bottom:110px;left:50%;transform:translateX(-50%);z-index:2;color:var(--muted);font-family:var(--font-head);font-size:12px;letter-spacing:.2em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:8px;}
.hero-scroll .line{width:1px;height:34px;background:linear-gradient(var(--red), transparent);animation:scrollpulse 1.8s infinite;}
@keyframes scrollpulse{0%{opacity:.2;}50%{opacity:1;}100%{opacity:.2;}}


/* ---------------- Partners / sponsors banner (static, no auto-scroll) ---------------- */
.partners-banner{position:relative;padding:8px 0;}
.partners-track{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:22px;}
.partner-logo{
  position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;
  width:200px;height:168px;flex-shrink:0;background:var(--card);border:1px solid var(--border-lt);
  border-radius:var(--radius-sm);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.partner-logo:hover{transform:translateY(-6px);box-shadow:0 18px 36px rgba(189,24,24,.18);border-color:rgba(234,102,12,.5);}
.partner-logo img{width:100%;height:100%;object-fit:contain;padding:18px;box-sizing:border-box;}
.partner-logo .name{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;color:var(--ink);font-size:15px;white-space:nowrap;padding:0 16px;}

/* ---------------- Stats strip ---------------- */
.stats{
  position:relative;z-index:3;background:var(--grad);overflow:hidden;
  padding:50px 0;
}
.stats::before{
  content:'';position:absolute;inset:0;opacity:.5;pointer-events:none;
  background:repeating-linear-gradient(115deg, rgba(255,255,255,.16) 0 2px, transparent 2px 46px);
}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);position:relative;z-index:1;}
.stat{text-align:center;position:relative;padding:0 10px;}
.stat .num{font-family:var(--font-head);font-size:clamp(32px,4.4vw,52px);color:var(--ink);text-shadow:0 2px 0 rgba(255,255,255,.25);}
.stat .label{color:rgba(8,8,10,.75);font-size:12.5px;text-transform:uppercase;letter-spacing:.1em;font-family:var(--font-head);font-weight:400;}

/* ---------------- Sections ---------------- */
.section{padding:120px 0 100px;position:relative;}
.section-tight{padding:70px 0;}
.section-alt{background:var(--bg-alt);}
/* Subtle top-to-bottom orange wash for a page's opening section, instead of flat white/cream. */
.section-tint{background:linear-gradient(180deg, rgba(234,102,12,.16) 0%, rgba(234,102,12,.03) 55%, transparent 85%);}
.section-head{max-width:640px;margin-bottom:56px;}
.section-eyebrow{
  display:inline-block;color:var(--red);font-family:var(--font-head);text-transform:uppercase;
  letter-spacing:.14em;font-size:13.5px;margin-bottom:10px;position:relative;padding-left:26px;
}
.section-eyebrow::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:18px;height:3px;border-radius:2px;background:var(--grad);}
.section-head h1, .section-head h2{font-size:clamp(32px,4.4vw,52px);}
.center{text-align:center;}
.section-head.center{margin-left:auto;margin-right:auto;}
.section-head.center .section-eyebrow{padding-left:0;}
.section-head.center .section-eyebrow::before{display:none;}

/* ---------------- reveal on scroll ---------------- */
.reveal{opacity:0;transform:translateY(36px);transition:opacity .7s ease, transform .7s ease;}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-1{transition-delay:.08s;}
.reveal-2{transition-delay:.16s;}
.reveal-3{transition-delay:.24s;}

/* ---------------- Two-col ---------------- */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.two-col.reverse{direction:rtl;}
.two-col.reverse > *{direction:ltr;}
.img-frame{position:relative;border-radius:var(--radius);overflow:hidden;
  box-shadow:0 20px 50px rgba(255,45,45,.15);}
.img-frame img{width:100%;height:100%;object-fit:cover;max-height:480px;}

/* ---------------- Cards / articles ---------------- */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:26px;}

.article-card{
  position:relative;background:var(--card);border:1px solid var(--border-lt);
  border-radius:var(--radius);
  transition:transform .25s ease, border-color .25s ease, box-shadow .25s ease;overflow:hidden;
  box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.article-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform .3s ease;z-index:3;}
.article-card:hover::before{transform:scaleX(1);}
.article-card:hover{transform:translateY(-8px);border-color:rgba(189,24,24,.4);box-shadow:0 18px 40px rgba(189,24,24,.14), 0 6px 16px rgba(234,102,12,.1);}
.article-card .thumb{height:190px;overflow:hidden;position:relative;}
.article-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.article-card:hover .thumb img{transform:scale(1.08);}
.article-card .date-badge{
  position:absolute;top:14px;left:0;background:var(--grad);color:#fff;font-family:var(--font-head);
  font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:6px 16px;
  border-radius:0 var(--radius-pill) var(--radius-pill) 0;
}
.article-card .body{padding:22px 24px 26px;}
.article-card h3{font-size:20px;margin:0;transition:color .2s;}
.article-card:hover h3{color:var(--red);}

.article-list-row{
  display:grid;grid-template-columns:140px 1fr;gap:26px;padding:26px 20px;margin:0 -20px;border-bottom:1px solid var(--border-lt);
  transition:background .2s ease;align-items:center;
}
.article-list-row:hover{background:rgba(189,24,24,.04);}
.article-list-row .thumb{border-radius:var(--radius-sm);overflow:hidden;aspect-ratio:1/1;}
.article-list-row .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease;}
.article-list-row:hover .thumb img{transform:scale(1.08);}
.article-list-row .meta{color:var(--red);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;font-size:12.5px;}
.article-list-row h2{font-size:23px;margin:6px 0;}
.article-list-row:hover h3{color:var(--red);}
.article-list-row p{color:var(--muted-lt);font-size:14.5px;margin:0;}

/* ---------------- Article detail ---------------- */
.article-detail-wrap{max-width:clamp(680px, 62vw, 940px);margin:0 auto;}
/* Flexible frame that works with any photo orientation (portrait, landscape, square)
   instead of a fixed-height crop that mangles non-landscape images. */
.article-hero-wrap{
  width:100%;max-height:70vh;margin:0 auto 34px;border-radius:var(--radius);overflow:hidden;
  background:var(--bg-alt);display:flex;align-items:center;justify-content:center;
}
.article-hero-wrap img{width:100%;height:100%;max-height:70vh;object-fit:contain;}
.article-body{text-align:left;}
.article-body h2, .article-body h3{color:var(--red);margin-top:1.3em;text-transform:none;}
.article-body img{margin:20px 0;border-radius:var(--radius-sm);cursor:zoom-in;transition:opacity .15s ease;}
.article-body img:hover{opacity:.92;}
.article-body a{color:var(--red);text-decoration:underline;}
/* The site-wide ul{padding:0} reset strips list indentation everywhere, which
   left article bullet lists (match results, etc.) sitting flush against the
   container edge with no breathing room. Give lists inside article content
   their own indent + spacing back. */
.article-body ul, .article-body ol{padding-left:22px;margin-bottom:1.1em;}
.article-body li{margin-bottom:6px;}

/* Mini gallery — consecutive <img> tags in article content get grouped (via JS) into this grid. */
.article-gallery{
  display:grid;grid-template-columns:repeat(auto-fit, minmax(150px, 1fr));gap:12px;
  margin:20px 0;
}
.article-gallery img{
  width:100%;height:100%;aspect-ratio:1/1;object-fit:cover;margin:0;border-radius:var(--radius-sm);cursor:zoom-in;
}

/* Lightbox overlay for enlarging article images */
.lightbox-overlay{
  position:fixed;inset:0;z-index:500;background:rgba(10,8,7,.92);
  display:flex;align-items:center;justify-content:center;padding:40px;
  opacity:0;pointer-events:none;transition:opacity .2s ease;
}
.lightbox-overlay.open{opacity:1;pointer-events:auto;}
.lightbox-overlay img{max-width:92vw;max-height:88vh;border-radius:var(--radius-sm);box-shadow:0 30px 70px rgba(0,0,0,.5);cursor:default;}
.lightbox-close{
  position:absolute;top:22px;right:28px;width:44px;height:44px;border-radius:50%;
  border:1.5px solid rgba(255,255,255,.5);background:rgba(255,255,255,.08);color:#fff;
  font-size:26px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.lightbox-close:hover{background:rgba(255,255,255,.2);}
.article-meta{color:var(--red);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;font-size:13.5px;margin-bottom:14px;}

/* ---------------- Timeline (zig-zag) ---------------- */
.timeline{position:relative;padding:20px 0;}
.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:2px;background:var(--border-lt);transform:translateX(-50%);}
.timeline-item{display:grid;grid-template-columns:1fr 60px 1fr;gap:0;align-items:center;margin-bottom:46px;}
.timeline-item .tl-content{grid-column:1;text-align:right;padding-right:36px;}
.timeline-item .tl-dot{grid-column:2;width:20px;height:20px;background:var(--grad);border-radius:50%;justify-self:center;position:relative;z-index:2;box-shadow:0 0 0 5px var(--bg-alt);}
.timeline-item.right .tl-content{grid-column:3;text-align:left;padding-right:0;padding-left:36px;}
.timeline-item.right .tl-dot{grid-column:2;}
.timeline-item .tl-content h3{color:var(--ink);font-size:19px;margin-bottom:6px;}
.timeline-item .tl-content p{color:var(--muted-lt);font-size:14.5px;}

/* ---------------- Tables ---------------- */
table{width:100%;border-collapse:collapse;}

/* ---------------- Training schedule (day cards) ---------------- */
.training-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(250px,1fr));gap:20px;margin-top:8px;}
.training-day-card{
  background:var(--card);border:1px solid var(--border-lt);border-radius:var(--radius);
  padding:26px 26px 8px;box-shadow:0 4px 20px rgba(42,25,18,.05);
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.training-day-card:hover{border-color:rgba(189,24,24,.3);transform:translateY(-5px);box-shadow:0 14px 30px rgba(189,24,24,.12);}
.training-day-name{
  display:flex;align-items:center;gap:10px;font-family:var(--font-head);text-transform:uppercase;
  letter-spacing:.05em;font-size:19px;color:var(--ink);margin:0 0 16px;padding-bottom:14px;
  border-bottom:2px solid var(--border-lt);
}
.training-day-name::before{content:'';width:10px;height:10px;border-radius:50%;background:var(--grad);flex-shrink:0;}
.training-session{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--border-lt);}
.training-session:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.training-session-top{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px;}
.training-time{font-family:var(--font-head);font-size:19px;color:var(--ink);letter-spacing:.02em;}
.training-place{color:var(--ink-soft);font-size:14.5px;font-weight:500;}
.training-badge{
  display:inline-block;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;
  font-size:13px;padding:5px 13px;border-radius:var(--radius-pill);color:#fff;white-space:nowrap;
}
.training-badge.cat-kids{background:linear-gradient(120deg, var(--orange), var(--gold));}
.training-badge.cat-youth{background:var(--red);}
.training-badge.cat-adult{background:var(--black);}

/* ---------------- Notice / poznámka boxes (solid flat colour, no border) ---------------- */
.notice-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px,1fr));gap:18px;}
.notice-box{
  background:var(--bg-alt);border-radius:var(--radius-sm);
  padding:22px 26px;color:var(--ink-soft);font-size:14.5px;
}
.notice-box p:last-child{margin-bottom:0;}
.notice-grid .notice-box{background:rgba(189,24,24,.08);}
.notice-grid .notice-box:nth-child(2){background:rgba(234,102,12,.09);}
.notice-label{
  display:block;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;
  font-size:12px;color:var(--red);margin-bottom:8px;
}

/* ---------------- Forms ---------------- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
.form-grid .full{grid-column:1 / -1;}
label{display:block;font-size:13px;color:var(--muted-lt);margin-bottom:8px;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.06em;}
input[type=text], input[type=email], input[type=tel], input[type=number], input[type=password], select, textarea{
  width:100%;padding:14px 16px;background:var(--card);border:1px solid var(--border-lt);color:var(--ink);
  font-family:var(--font-body);font-size:16px;border-radius:var(--radius-sm);
}
/* font-size kept at 16px (not 15px) on purpose: iOS Safari auto-zooms the page
   on focus for any input with a smaller font-size, which is a jarring mobile bug. */
textarea{min-height:120px;resize:vertical;}
textarea.code-textarea{font-family:monospace;font-size:13.5px;}
input:focus, select:focus, textarea:focus{outline:none;border-color:var(--red);}
.field{margin-bottom:20px;}

/* ---------------- Contact cards ---------------- */
.contact-card{
  background:var(--card);border:1px solid var(--border-lt);padding:26px;
  border-radius:var(--radius);
  transition:border-color .2s, transform .2s, box-shadow .2s;
  box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.contact-card:hover{border-color:rgba(189,24,24,.35);transform:translateY(-5px);box-shadow:0 14px 30px rgba(189,24,24,.14);}
.contact-card h3{margin:0 0 4px;font-size:19px;text-transform:none;}
.contact-card .role{color:var(--muted-lt);font-size:13px;margin-bottom:12px;}
.contact-card a{display:block;color:var(--red);font-size:14.5px;margin-bottom:3px;}

/* ---------------- Promo stat (big number + label, reused inside curve banners) ---------------- */
.promo-stat{display:flex;align-items:baseline;gap:12px;margin:18px 0;}
.promo-stat .big{font-family:var(--font-head);font-weight:400;font-size:56px;color:var(--red);text-shadow:0 0 30px rgba(255,45,45,.4);}
.promo-stat .small{color:var(--muted);font-size:14px;max-width:140px;line-height:1.3;}

/* ---------------- Highlight tiles (2-up photo cards with caption) ---------------- */
.tile-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;}
.tile{
  position:relative;min-height:280px;background-size:cover;background-position:center;overflow:hidden;
  border-radius:var(--radius);
  transition:transform .3s ease;filter:grayscale(1) contrast(1.1) brightness(.9);
}
.tile:hover{transform:translateY(-6px);}
.tile::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(8,8,10,.92) 10%, rgba(90,25,10,.25) 55%, rgba(8,8,10,0) 100%);}
.tile-caption{position:absolute;left:26px;bottom:24px;right:26px;z-index:2;}
.tile-caption h3{font-size:24px;margin:0 0 4px;color:var(--white);text-shadow:0 2px 12px rgba(0,0,0,.4);}
.tile-caption p{color:#d8d8dc;font-size:14px;margin:0;}

/* ---------------- Partners static grid + become-partner CTA ---------------- */
.partners-static-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));gap:20px;}
.partners-static-grid .partner-logo{width:100%;height:150px;}

/* ---------------- Partner hero + pitch (Tatran-inspired: big title, photo bleeding into pitch, logos last) ---------------- */
.partner-hero{
  position:relative;padding:100px 0 0;overflow:hidden;
  background:linear-gradient(180deg, rgba(234,102,12,.28) 0%, rgba(234,102,12,.05) 55%, var(--bg) 100%);
}
.partner-hero-inner{position:relative;z-index:1;}
.partner-hero h1{font-size:clamp(46px,7vw,92px);margin:10px 0 0;line-height:.98;}
.partner-hero .section-eyebrow{padding-left:0;}
.partner-hero .section-eyebrow::before{display:none;}

.partner-pitch{
  position:relative;padding-bottom:80px;
  background:linear-gradient(180deg, var(--bg) 0%, var(--bg-alt) 160px, var(--bg-alt) 100%);
}
.partner-pitch-inner{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;align-items:end;}
.partner-pitch-photo{
  position:relative;margin-top:-70px;height:420px;background-size:cover;background-position:center 20%;
  border-radius:var(--radius);
  box-shadow:0 24px 50px rgba(42,25,18,.18);filter:grayscale(1) contrast(1.1) brightness(.92);
}
.partner-pitch-photo::before{
  content:'';position:absolute;inset:0;border-radius:var(--radius);
  background:
    linear-gradient(180deg, var(--bg) 0%, rgba(253,249,245,.35) 16%, transparent 34%),
    linear-gradient(180deg, rgba(8,8,10,0) 45%, rgba(8,8,10,.55) 100%),
    linear-gradient(115deg, rgba(234,102,12,.2), transparent 60%);
}
.partner-pitch-text{padding-bottom:16px;}
.partner-pitch-text .section-eyebrow{padding-left:0;}
.partner-pitch-text .section-eyebrow::before{display:none;}
.partner-pitch-text p{max-width:520px;}
.partner-pitch-text .list-check{margin:18px 0 26px;}

/* ---------------- Partners static grid (logos, shown last) ---------------- */
.partners-static-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(190px, 1fr));gap:20px;}
.partners-static-grid .partner-logo{width:100%;height:150px;}

/* ---------------- Fanshop banner (fanshop.php page cover) ---------------- */
.fanshop-cover{
  position:relative;box-shadow:0 20px 50px rgba(255,45,45,.15);
  border-radius:var(--radius);overflow:hidden;
}
.fanshop-cover img{width:100%;display:block;object-fit:cover;max-height:520px;}

/* ---------------- Fanshop PDF flipbook (fanshop.php) ---------------- */
.pdf-flipbook{
  background:var(--card);border:1px solid var(--border-lt);border-radius:var(--radius);
  padding:22px;box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.pdf-flipbook-toolbar{display:flex;align-items:center;justify-content:center;gap:22px;margin-bottom:18px;}
.pdf-flipbook-btn{
  width:44px;height:44px;border-radius:50%;border:1px solid var(--border-lt);background:var(--card);
  color:var(--ink);font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;
  transition:border-color .2s, color .2s;flex-shrink:0;
}
.pdf-flipbook-btn:hover:not(:disabled){border-color:var(--red);color:var(--red);}
.pdf-flipbook-btn:disabled{opacity:.35;cursor:default;}
.pdf-flipbook-page-indicator{font-family:var(--font-head);letter-spacing:.05em;font-size:14px;color:var(--ink-soft);min-width:90px;text-align:center;}
.pdf-flipbook-stage{
  display:flex;align-items:center;justify-content:center;min-height:340px;
  background:var(--bg-alt);border-radius:var(--radius-sm);overflow:hidden;padding:20px;
}
.pdf-flipbook-canvas{max-width:100%;height:auto;box-shadow:0 10px 30px rgba(8,8,10,.15);border-radius:4px;}
.pdf-flipbook-loading{color:var(--muted-lt);font-size:14.5px;text-align:center;padding:0 20px;}
.pdf-flipbook-download{text-align:center;margin:16px 0 0;font-size:13.5px;}
.pdf-flipbook-download a{color:var(--red);}
.fanshop-order-hint{text-align:center;color:var(--muted-lt);font-size:14px;margin-top:32px;}
.fanshop-order-hint a{color:var(--red);}

/* ---------------- Fanshop teaser banner (official brand gradient — homepage) ----------------
   Player cutout photo centered and breaking out the top; text on the left, CTA buttons
   on the right — matches the brief: "hráč v strede, zvyšok vľavo/vpravo", coloured with
   the club's official brand gradient (same tokens as buttons/curve banners). */
.fanshop-banner{
  position:relative;overflow:visible;background:transparent;
  border-radius:var(--radius);min-height:420px;display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:0 48px;
}
.fanshop-banner-bg{
  position:absolute;inset:0;z-index:0;border-radius:inherit;overflow:hidden;pointer-events:none;
  background:var(--grad);
  box-shadow:0 24px 50px rgba(150,60,10,.3);
}
.fanshop-banner-glow{
  position:absolute;width:380px;height:380px;border-radius:50%;z-index:0;pointer-events:none;
  background:rgba(255,255,255,.16);filter:blur(65px);
  top:-150px;right:-110px;
}
.fanshop-banner-photo{
  position:absolute;z-index:1;left:50%;bottom:0;transform:translateX(-50%);
  height:calc(100% + 140px);max-height:560px;width:auto;pointer-events:none;
  filter:drop-shadow(0 18px 20px rgba(8,8,10,.35));
}
.fanshop-banner-text{position:relative;z-index:2;max-width:300px;flex-shrink:0;}
.fanshop-banner-label{
  display:inline-flex;align-items:center;gap:10px;font-family:var(--font-head);text-transform:uppercase;
  letter-spacing:.1em;font-size:13.5px;color:rgba(8,8,10,.65);margin-bottom:16px;
}
.fanshop-banner-label .dot{width:8px;height:8px;border-radius:50%;background:var(--black);flex-shrink:0;}
.fanshop-banner-text h2{font-size:clamp(32px,4.4vw,48px);color:var(--white);margin-bottom:10px;line-height:.98;text-shadow:0 2px 16px rgba(0,0,0,.2);}
.fanshop-banner-text p{color:rgba(255,255,255,.92);font-size:15px;margin-bottom:0;}
.fanshop-banner-cta{position:relative;z-index:2;display:flex;flex-direction:column;gap:14px;align-items:flex-end;flex-shrink:0;}
.fanshop-banner-cta .btn{white-space:nowrap;}

/* ---------------- Curve banner (solid colour + soft blobs, Instagram-post inspired, no photo) ---------------- */
.curve-banner{
  position:relative;overflow:hidden;border-radius:var(--radius);
  background:var(--grad);padding:56px 56px;display:flex;align-items:center;min-height:280px;
}
.curve-banner.variant-red{background:linear-gradient(120deg, var(--red) 8%, var(--red-dark) 95%);}
/* Full viewport-width variant — square corners except one scoop top-left */
.curve-banner-full{
  width:100%;border-radius:0;padding:64px 56px;min-height:340px;margin:0 0 70px;
}
.curve-banner-full .curve-content{max-width:1140px;margin:0 auto;padding:0 32px;}
.curve-banner.variant-orange{background:linear-gradient(120deg, #ffb020 0%, var(--orange) 55%, var(--red) 100%);}
.curve-blob{position:absolute;border-radius:50%;pointer-events:none;}
.curve-blob.b1{width:420px;height:420px;background:rgba(255,255,255,.13);top:-180px;right:-140px;}
.curve-blob.b2{width:260px;height:260px;background:rgba(8,8,10,.14);bottom:-150px;left:-90px;}
.curve-banner-wave{position:absolute;inset:0;opacity:.55;mix-blend-mode:overlay;pointer-events:none;}
.curve-banner-wave .wave-layer{width:100%;height:100%;}
.curve-banner-mark{position:absolute;top:26px;right:32px;width:64px;height:64px;opacity:.9;z-index:1;}
/* Where a banner centers its text (e.g. the "Ďakujeme" thank-you banner),
   wrapped lines can run under this top-right watermark on narrow screens.
   Reserve clearance for it so the text never sits behind the mark. */
.curve-banner:has(.curve-banner-mark) .curve-content{padding-right:76px;}
.curve-content{position:relative;z-index:2;width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:28px;}
.curve-content > div:first-child{flex:1 1 320px;min-width:0;}
.curve-content .section-eyebrow{padding-left:0;color:rgba(8,8,10,.65);}
.curve-content .section-eyebrow::before{display:none;}
.curve-content h2{color:var(--white);font-size:clamp(30px,4vw,46px);margin-bottom:8px;text-shadow:0 2px 16px rgba(0,0,0,.15);}
.curve-content p{color:rgba(255,255,255,.92);max-width:460px;margin-bottom:0;}
.curve-content .promo-stat .big{color:var(--white);text-shadow:0 2px 16px rgba(0,0,0,.2);}
.curve-content .promo-stat .small{color:rgba(255,255,255,.85);}
.curve-side{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  flex:0 0 auto;
}
.curve-side .promo-stat{justify-content:center;}
.curve-side .hero-cta{justify-content:center;margin-top:16px;}
.btn-light{background:var(--white);color:var(--black);}
.btn-light:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(0,0,0,.25);}
.btn-ghost{border:1.5px solid rgba(255,255,255,.7);color:var(--white);background:transparent;}
.btn-ghost:hover{background:rgba(255,255,255,.16);border-color:#fff;transform:translateY(-3px);}
.follow-social{display:flex;gap:16px;flex-wrap:wrap;}
.follow-social a{
  display:inline-flex;align-items:center;gap:10px;color:var(--white);font-family:var(--font-head);
  font-weight:400;text-transform:uppercase;letter-spacing:.05em;font-size:15px;
  padding:10px 22px;border:1.5px solid rgba(255,255,255,.7);
  border-radius:var(--radius-pill);
  transition:background .2s ease, color .2s ease;
}
.follow-social a:hover{background:var(--white);color:var(--black);}

/* ---------------- Coaches ---------------- */
.coach-card{
  display:flex;flex-direction:column;background:var(--card);border:1px solid var(--border-lt);overflow:hidden;
  border-radius:var(--radius);
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.coach-card:hover{transform:translateY(-6px);border-color:rgba(189,24,24,.35);box-shadow:0 16px 34px rgba(189,24,24,.14);}
.coach-photo{
  width:100%;height:320px;flex-shrink:0;overflow:hidden;background:var(--grad);position:relative;
  display:flex;align-items:center;justify-content:center;
}
.coach-photo img{width:100%;height:100%;object-fit:cover;}
.coach-photo .initials{font-family:var(--font-head);font-size:64px;color:#fff;}
.coach-body{padding:24px 26px 28px;}
.coach-body h2{font-size:22px;margin-bottom:3px;text-transform:none;}
.coach-role{color:var(--red);font-family:var(--font-head);text-transform:uppercase;letter-spacing:.05em;font-size:13.5px;}
.coach-body p{color:var(--muted-lt);font-size:14.5px;margin:14px 0 12px;}
.coach-links{display:flex;flex-direction:column;gap:6px;}
.coach-links a{font-size:14px;color:var(--ink);}
.coach-links a:hover{color:var(--red);}

/* ---------------- Map ---------------- */
.map-wrap{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border-lt);}
.map-wrap iframe{width:100%;height:340px;border:0;display:block;}

/* ---------------- History page: stat cards + achievement cards ---------------- */
.history-stat-cards{display:flex;flex-direction:column;gap:20px;}
.history-stat-card{
  background:var(--card);border:1px solid var(--border-lt);border-radius:var(--radius);
  padding:30px;text-align:center;box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.history-stat-card .big{font-family:var(--font-head);font-size:44px;color:var(--red);}
.history-stat-card .small{color:var(--muted-lt);font-size:13.5px;margin-top:6px;}

.awards-grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(260px, 1fr));gap:22px;}
.award-card{
  background:var(--card);border:1px solid var(--border-lt);border-radius:var(--radius);
  padding:24px 26px;box-shadow:0 4px 20px rgba(42,25,18,.05);
}
.award-card h3{font-size:18px;margin:0 0 14px;padding-bottom:12px;border-bottom:2px solid var(--border-lt);text-transform:none;color:var(--ink);}
.award-list{display:flex;flex-direction:column;}
.award-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--border-lt);}
.award-row:last-child{border-bottom:none;}
.award-season{font-family:var(--font-head);font-size:13.5px;color:var(--ink-soft);letter-spacing:.02em;}
.award-place{
  font-family:var(--font-head);font-size:11.5px;text-transform:uppercase;letter-spacing:.03em;
  padding:5px 12px;border-radius:var(--radius-pill);background:var(--bg-alt);color:var(--ink-soft);
  white-space:nowrap;
}
.award-place.rank-1{background:var(--gold);color:#3a2400;}
.award-place.rank-2{background:#d7d2c9;color:#3a3630;}
.award-place.rank-3{background:#c9834a;color:#fff;}

/* ---------------- Footer (colourful gradient, matches the club's social media look) ---------------- */
.site-footer{position:relative;background:linear-gradient(165deg, var(--orange) 0%, var(--red) 55%, var(--red-dark) 100%);overflow:hidden;margin-top:70px;}
.footer-inner{position:relative;z-index:1;max-width:1140px;margin:0 auto;padding:60px 32px 40px;display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px;}
.footer-logo-text{font-family:var(--font-head);text-transform:uppercase;letter-spacing:.04em;font-size:22px;color:var(--white);white-space:nowrap;}
.footer-col h4{font-size:14px;color:rgba(255,255,255,.75);letter-spacing:.1em;text-transform:uppercase;font-family:var(--font-head);margin-bottom:16px;}
.footer-phone, .footer-email{display:block;color:var(--white);font-family:var(--font-head);font-size:19px;margin-bottom:8px;}
.footer-phone:hover, .footer-email:hover{text-decoration:underline;}
.footer-social{display:flex;flex-direction:column;gap:10px;}
.footer-social a{color:var(--white);}
.footer-social a:hover{text-decoration:underline;}
.footer-bottom-wrap{position:relative;z-index:1;background:rgba(8,8,10,.25);border-top:1px solid rgba(255,255,255,.15);}
.footer-bottom{padding:20px 32px;display:flex;flex-wrap:wrap;row-gap:8px;justify-content:space-between;color:rgba(255,255,255,.8);font-size:12.5px;max-width:1140px;margin:0 auto;}
.footer-admin-link{color:rgba(255,255,255,.8);}
.footer-admin-link:hover{color:var(--white);text-decoration:underline;}
.footer-recaptcha-note{flex-basis:100%;text-align:center;color:rgba(255,255,255,.45);font-size:11px;line-height:1.5;}
.footer-recaptcha-note a{color:rgba(255,255,255,.6);text-decoration:underline;}
.footer-recaptcha-note a:hover{color:var(--white);}

/* Skryjeme plávajúci štítok reCAPTCHA v3 vpravo dole (povinné odkazy na Google zásady
   sú namiesto neho v pätičke — v súlade s podmienkami používania Google reCAPTCHA). */
.grecaptcha-badge{visibility:hidden!important;opacity:0!important;pointer-events:none!important;}

/* ---------------- Misc ---------------- */
.badge{display:inline-block;padding:5px 16px;font-size:12px;font-family:var(--font-head);text-transform:uppercase;letter-spacing:.08em;background:rgba(189,24,24,.1);color:var(--red);border-radius:var(--radius-pill);}
.list-check{list-style:none;padding:0;}
.list-check li{position:relative;padding-left:28px;margin-bottom:12px;color:var(--ink-soft);}
.list-check li::before{content:'';position:absolute;left:0;top:7px;width:10px;height:10px;background:var(--grad);border-radius:50%;}
.pagination{display:flex;gap:10px;margin-top:36px;justify-content:center;}
.pagination a, .pagination span{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-lt);font-family:var(--font-head);}
.pagination a:hover{border-color:var(--red);color:var(--red);}
.pagination .active{background:var(--grad);border-color:transparent;}
.alert{padding:16px 20px;margin-bottom:22px;font-size:14.5px;border-left:3px solid;}
.alert-success{background:rgba(60,180,100,.1);color:#7fe0a0;border-color:#3cb464;}
.alert-error{background:rgba(232,52,42,.1);color:#ff9a9a;border-color:var(--red);}

/* ---------------- Public form inline result (AJAX submit, no page navigation) ---------------- */
.form-result{display:none;padding:16px 20px;margin-bottom:24px;border-radius:var(--radius-sm);font-size:14.5px;font-weight:600;}
.form-result.open{display:block;}
.form-result.is-success{background:rgba(60,180,100,.12);color:#1e7a45;border-left:3px solid #3cb464;}
.form-result.is-error{background:rgba(189,24,24,.08);color:var(--red);border-left:3px solid var(--red);}

/* ---------------- Back-to-top button ---------------- */
.back-to-top{
  position:fixed;right:24px;bottom:24px;z-index:150;
  width:48px;height:48px;border-radius:50%;border:none;cursor:pointer;
  background:var(--grad);color:#fff;display:flex;align-items:center;justify-content:center;
  box-shadow:0 8px 22px rgba(189,24,24,.35);
  opacity:0;visibility:hidden;transform:translateY(12px);
  transition:opacity .25s ease, transform .25s ease, visibility .25s, bottom .25s ease;
}
.back-to-top.visible{opacity:1;visibility:visible;transform:translateY(0);}
.back-to-top:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(189,24,24,.45);}
/* Shift up out of the way while the cookie banner is open at the bottom of the screen. */
body.cookie-banner-open .back-to-top{bottom:96px;}
@media (max-width:640px){
  .back-to-top{right:16px;bottom:16px;width:44px;height:44px;}
  body.cookie-banner-open .back-to-top{bottom:150px;}
}

/* ---------------- Cookie consent banner + settings modal ---------------- */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:400;
  background:var(--black);box-shadow:0 -10px 30px rgba(8,8,10,.25);
  transform:translateY(110%);transition:transform .35s ease;
}
.cookie-banner.open{transform:translateY(0);}
.cookie-banner-inner{
  max-width:1140px;margin:0 auto;padding:20px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;
}
.cookie-banner-inner p{color:rgba(255,255,255,.82);font-size:13.5px;margin:0;max-width:560px;flex:1 1 320px;}
.cookie-banner-actions{display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0;}
.cookie-btn{
  font-family:var(--font-head);text-transform:uppercase;letter-spacing:.05em;font-size:13px;
  padding:11px 20px;border-radius:var(--radius-pill);border:1px solid transparent;cursor:pointer;
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease, color .15s ease;white-space:nowrap;
}
.cookie-btn-primary{background:var(--grad);color:#fff;box-shadow:0 8px 20px rgba(189,24,24,.28);}
.cookie-btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(189,24,24,.4);}
.cookie-btn-outline{background:transparent;border-color:rgba(255,255,255,.35);color:var(--white);}
.cookie-btn-outline:hover{border-color:#fff;transform:translateY(-2px);}
.cookie-btn-ghost{background:transparent;border-color:transparent;color:rgba(255,255,255,.7);text-decoration:underline;padding:11px 6px;}
.cookie-btn-ghost:hover{color:#fff;}

.cookie-modal{
  position:fixed;inset:0;z-index:410;background:rgba(8,8,10,.55);
  display:flex;align-items:center;justify-content:center;padding:20px;
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.cookie-modal.open{opacity:1;pointer-events:auto;}
.cookie-modal-box{
  background:var(--card);border-radius:var(--radius);padding:32px;max-width:480px;width:100%;
  box-shadow:0 30px 70px rgba(8,8,10,.35);
}
.cookie-modal-box h3{font-size:20px;margin:0 0 18px;color:var(--ink);}
.cookie-modal-row{
  display:flex;align-items:flex-start;justify-content:space-between;gap:18px;
  padding:16px 0;border-bottom:1px solid var(--border-lt);
}
.cookie-modal-row:last-of-type{border-bottom:none;}
.cookie-modal-text strong{display:block;font-size:14.5px;color:var(--ink);margin-bottom:4px;}
.cookie-modal-text p{font-size:13px;color:var(--muted-lt);margin:0;}
.cookie-toggle{position:relative;display:inline-block;width:44px;height:26px;flex-shrink:0;cursor:pointer;}
.cookie-toggle input{opacity:0;width:0;height:0;}
.cookie-toggle span{
  position:absolute;inset:0;background:var(--border-lt);border-radius:var(--radius-pill);transition:background .2s ease;
}
.cookie-toggle span::before{
  content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;background:#fff;
  border-radius:50%;transition:transform .2s ease;box-shadow:0 2px 6px rgba(8,8,10,.25);
}
.cookie-toggle input:checked + span{background:var(--grad);}
.cookie-toggle input:checked + span::before{transform:translateX(18px);}
.cookie-toggle.is-disabled{cursor:default;opacity:.6;}
.cookie-modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap;}

/* ---------------- Responsive ---------------- */
/* The full 10-item nav only fits comfortably on large desktop screens — switch
   to the hamburger menu well before it starts wrapping onto two lines. */
@media (max-width: 1650px){
  .nav-links{display:none;}
  .nav-actions{display:none;}
  .nav-burger{display:flex;}
}
@media (max-width: 980px){
  .nav-logo{width:80px;}
  .nav-logo::before{width:100px;height:100px;left:-6px;top:-2px;}
  .nav-logo img{height:88px!important;width:88px!important;top:4px;}
  .two-col{grid-template-columns:1fr;}
  .grid-3{grid-template-columns:1fr 1fr;}
  .stats-row{grid-template-columns:1fr 1fr;row-gap:24px;}
  .stat:nth-child(2)::after{display:none;}
  .footer-inner{grid-template-columns:1fr;}
  .tile-grid{grid-template-columns:1fr;}
  .curve-content{justify-content:center;text-align:center;}
  .curve-content p{margin-left:auto;margin-right:auto;}
  .curve-banner-mark{width:44px;height:44px;top:20px;right:22px;}
  .curve-banner-full{border-radius:0;padding:44px 24px;}
  .fanshop-banner{flex-direction:column;justify-content:center;text-align:center;padding:32px 28px 0;min-height:auto;gap:6px;}
  .fanshop-banner-bg{box-shadow:0 16px 34px rgba(8,8,10,.25);}
  .fanshop-banner-photo{position:relative;left:auto;bottom:auto;transform:none;order:1;height:auto;max-height:280px;width:auto;margin:0 auto;}
  .fanshop-banner-text{order:2;max-width:100%;}
  .fanshop-banner-cta{order:3;align-items:center;flex-direction:row;flex-wrap:wrap;justify-content:center;padding-bottom:28px;}
  .partner-hero{padding:70px 0 0;}
  .partner-pitch-inner{grid-template-columns:1fr;}
  .partner-pitch-photo{margin-top:34px;height:280px;}
  .timeline::before{left:20px;}
  .timeline-item{grid-template-columns:40px 1fr;}
  .timeline-item .tl-dot{grid-column:1;}
  .timeline-item .tl-content{grid-column:2;text-align:left;padding-left:20px;padding-right:0;}
  .timeline-item.right .tl-content{grid-column:2;text-align:left;padding-left:20px;}
  .timeline-item.right .tl-dot{grid-column:1;}
}
@media (max-width: 640px){
  .navbar{padding:16px 20px;}
  .navbar.scrolled{padding:10px 20px;}
  /* On desktop the navbar logo deliberately "bleeds" down out of the navbar
     into the hero below it. On narrow phones that bleed kept colliding with
     whatever sat right below the navbar (the hero eyebrow badge, or a page's
     first heading) — shrinking the bleed size wasn't enough clearance and it
     still visually touched the text. Simplest fix: on mobile, stop bleeding
     altogether — give nav-logo its own real height so it's a normal navbar
     logo that sits fully inside the bar, centered on the orange badge behind
     it, with zero chance of overlapping page content underneath. */
  .nav-logo{width:44px;height:44px;}
  .nav-logo::before{width:44px;height:44px;left:0;top:0;}
  .nav-logo img{height:38px!important;width:38px!important;left:3px;top:3px;}
  .container{padding:0 20px;}
  .section{padding:80px 0 60px;}
  .hero{padding:120px 0 120px;}
  .grid-3, .grid-2{grid-template-columns:1fr;}
  .form-grid{grid-template-columns:1fr;}
  .article-list-row{grid-template-columns:1fr;}
  .article-list-row .thumb{max-width:260px;margin:0 auto;}
  .footer-bottom{flex-direction:column;gap:10px;padding:18px 20px;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .glow-blob{transform:scale(.6);}
  .fanshop-banner-photo{max-height:220px;}
  .fanshop-banner{padding:26px 20px 0;}
  .coach-photo{height:240px;}
  .curve-banner{padding:36px 24px;min-height:auto;}
  .curve-blob.b1{width:260px;height:260px;top:-120px;right:-100px;}
  .curve-blob.b2{width:180px;height:180px;bottom:-100px;left:-60px;}
  /* Hides on narrow screens: on short mobile viewports this absolutely-positioned
     indicator could sit on top of the hero buttons instead of below all content. */
  .hero-scroll{display:none;}
  .cookie-banner-inner{padding:18px 20px;}
  .cookie-banner-actions{width:100%;}
  .cookie-banner-actions .cookie-btn{flex:1 1 auto;text-align:center;}
  .cookie-modal-box{padding:24px 20px;}
}

/* ---------------- Training schedule mobile tweak ----------------
   .training-grid already collapses to 1 column via auto-fit/minmax,
   just tighten spacing a little on narrow screens. */
@media (max-width: 700px){
  .training-day-card{padding:22px 20px 6px;}
  .training-session-top{gap:8px;}
}
