/* ============================================
   KARUR KASPAROV CHESS ACADEMY — DESIGN SYSTEM
   Palette: Royal Blue / Premium Gold / Light Gray
   Type: Playfair Display (display) + Inter (body)
   ============================================ */

:root{
  --navy-950: #060e24;
  --navy-900: #0B1F4D;
  --navy-800: #142c66;
  --navy-700: #1E3A8A;
  --gold-500: #C9A227;
  --gold-400: #E8C766;
  --gold-glow: rgba(232,199,102,.35);
  --white: #FFFFFF;
  --gray-50: #F5F6FA;
  --gray-100: #ECEFF7;
  --gray-400: #8791AC;
  --gray-600: #5A6280;
  --ink: #10162E;

  --font-display: 'Playfair Display', Georgia, serif;
  --font-body: 'Inter', -apple-system, sans-serif;
  --font-mono: 'JetBrains Mono', monospace;

  --radius-lg: 24px;
  --radius-md: 16px;
  --radius-sm: 10px;
  --shadow-soft: 0 20px 60px -20px rgba(11,31,77,.25);
  --ease: cubic-bezier(.22,1,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
}

body{
  margin:0;
  font-family:var(--font-body);
  color:var(--ink);
  background:var(--gray-50);
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul,ol{list-style:none; margin:0; padding:0;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0; line-height:1.15; font-weight:700;}
p{margin:0; line-height:1.65; color:var(--gray-600);}

.skip-link{
  position:absolute; left:-9999px; top:0; background:var(--gold-500); color:var(--navy-950);
  padding:.75rem 1.25rem; z-index:200; border-radius:0 0 8px 0; font-weight:600;
}
.skip-link:focus{left:0;}

:focus-visible{outline:3px solid var(--gold-500); outline-offset:3px;}

.container{max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem);}
.container-narrow{max-width:820px;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  padding:.9rem 1.9rem; border-radius:999px; font-weight:700; font-size:.95rem;
  border:1px solid transparent; cursor:pointer; transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .25s var(--ease);
  white-space:nowrap;
}
.btn-gold{
  background:linear-gradient(135deg,var(--gold-400),var(--gold-500));
  color:var(--navy-950);
  box-shadow:0 10px 30px -8px var(--gold-glow);
}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 16px 36px -8px var(--gold-glow);}
.btn-ghost{
  background:rgba(255,255,255,.06); color:var(--white); border-color:rgba(255,255,255,.35);
  backdrop-filter:blur(6px);
}
.btn-ghost:hover{background:rgba(255,255,255,.14); transform:translateY(-2px);}
.btn-gold-outline{
  border:1.5px solid var(--gold-500); color:var(--gold-400); background:transparent; margin-top:.75rem;
}
.btn-gold-outline:hover{background:var(--gold-500); color:var(--navy-950);}
.btn-full{width:100%;}

/* ---------- Nav ---------- */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), padding .35s var(--ease);
  padding:1.35rem 0;
}
.nav.is-scrolled{
  background:rgba(6,14,36,.85); backdrop-filter:blur(14px); box-shadow:0 8px 30px -12px rgba(0,0,0,.4); padding:.85rem 0;
}
.nav-inner{
  max-width:1200px; margin:0 auto; padding:0 clamp(1.25rem,4vw,2.5rem);
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.brand{display:flex; align-items:center; gap:.6rem; color:var(--white);}
.brand-mark{
  font-size:1.6rem; color:var(--gold-400);
}
.brand-text{font-family:var(--font-display); font-weight:700; font-size:1.05rem; line-height:1.1; display:flex; flex-direction:column;}
.brand-text em{font-style:normal; font-family:var(--font-body); font-weight:500; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold-400);}
.nav-links{display:flex; gap:1.4rem;}
.nav-links a{color:rgba(255,255,255,.85); font-size:.88rem; font-weight:500; position:relative; padding:.25rem 0; white-space:nowrap;}
.nav-links a::after{
  content:''; position:absolute; left:0; bottom:0; width:0; height:1.5px; background:var(--gold-400);
  transition:width .3s var(--ease);
}
.nav-links a:hover::after{width:100%;}
.nav-links a[aria-current="page"]{color:var(--gold-400);}
.nav-links a[aria-current="page"]::after{width:100%;}
.nav-cta{padding:.7rem 1.5rem; font-size:.85rem;}
.nav-toggle{display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:.4rem;}
.nav-toggle span{width:24px; height:2px; background:var(--white); border-radius:2px;}

/* ---------- Hero ---------- */
.hero{
  position:relative; min-height:100vh; display:flex; flex-direction:column; align-items:center; justify-content:center;
  background:radial-gradient(120% 100% at 50% -10%, var(--navy-800) 0%, var(--navy-900) 45%, var(--navy-950) 100%);
  overflow:hidden; padding:7rem 1.5rem 4rem;
}
.hero-board{
  position:absolute; inset:0;
  background-image:
    linear-gradient(45deg, rgba(232,199,102,.05) 25%, transparent 25%),
    linear-gradient(-45deg, rgba(232,199,102,.05) 25%, transparent 25%),
    linear-gradient(45deg, transparent 75%, rgba(232,199,102,.05) 75%),
    linear-gradient(-45deg, transparent 75%, rgba(232,199,102,.05) 75%);
  background-size:90px 90px;
  background-position:0 0, 0 45px, 45px -45px, -45px 0px;
  opacity:.5;
  transform:perspective(900px) rotateX(55deg) scale(1.8) translateY(10%);
  transform-origin:center bottom;
  animation:boardDrift 40s linear infinite;
}
@keyframes boardDrift{ to{ background-position:900px 0, 900px 45px, 945px -45px, 855px 0px; } }
.hero-glow{
  position:absolute; top:-10%; left:50%; translate:-50% 0; width:900px; height:900px; border-radius:50%;
  background:radial-gradient(circle, var(--gold-glow) 0%, transparent 65%);
  opacity:.5; pointer-events:none;
}
.hero-inner{position:relative; z-index:2; max-width:760px; text-align:center; display:flex; flex-direction:column; align-items:center; gap:1.5rem;}
.hero-title{
  font-size:clamp(2.6rem, 6vw, 4.4rem); color:var(--white); font-weight:700; letter-spacing:-.01em;
}
.hero-title span{color:var(--gold-400); font-style:italic;}
.hero-sub{font-size:clamp(1.05rem,2vw,1.25rem); color:rgba(255,255,255,.78); max-width:560px;}
.hero-actions{display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; margin-top:.5rem;}
.trust-badges{display:flex; gap:1.5rem; flex-wrap:wrap; justify-content:center; margin-top:1.5rem;}
.trust-badges li{
  color:rgba(255,255,255,.75); font-size:.85rem; font-weight:600; display:flex; align-items:center; gap:.4rem;
}
.trust-badges li::before{content:'✓'; color:var(--gold-400); font-weight:800;}
.scroll-cue{position:absolute; bottom:2rem; left:50%; translate:-50% 0; width:26px; height:42px; border:2px solid rgba(255,255,255,.35); border-radius:20px;}
.scroll-cue span{
  display:block; width:4px; height:8px; background:var(--gold-400); border-radius:2px; margin:7px auto 0;
  animation:cueMove 1.8s var(--ease) infinite;
}
@keyframes cueMove{ 0%{opacity:1; transform:translateY(0);} 70%{opacity:0; transform:translateY(14px);} 100%{opacity:0;} }

/* ---------- Eyebrow / section shared ---------- */
.eyebrow{
  font-family:var(--font-mono); font-size:.78rem; letter-spacing:.08em; color:var(--gold-500);
  text-transform:lowercase; margin-bottom:1rem; display:inline-block;
}
.eyebrow-light{color:var(--gold-400);}
.section{padding:clamp(4rem,9vw,7.5rem) 0;}
.section-navy{background:var(--navy-900); background-image:radial-gradient(90% 60% at 50% 0%, var(--navy-800), var(--navy-900));}
.section-title{font-size:clamp(2rem,4vw,2.85rem); max-width:680px; margin-bottom:1rem;}
.section-title.light{color:var(--white);}
.section-intro{max-width:640px; font-size:1.05rem; margin-bottom:2.5rem;}
.section-intro.light{color:rgba(255,255,255,.72);}

/* ---------- Glass card ---------- */
.glass-card{
  background:rgba(255,255,255,.65);
  border:1px solid rgba(255,255,255,.5);
  backdrop-filter:blur(16px);
  border-radius:var(--radius-lg);
  box-shadow:var(--shadow-soft);
}
.section-navy .glass-card{
  background:rgba(255,255,255,.06); border-color:rgba(255,255,255,.14); box-shadow:none;
}

/* ---------- About ---------- */
.about-grid{display:grid; grid-template-columns:1.3fr 1fr; gap:4rem; align-items:center;}
.about-copy h2{font-size:clamp(1.8rem,3.4vw,2.5rem); margin-bottom:1.25rem;}
.lead{font-size:1.08rem; margin-bottom:2.25rem;}
.about-pillars{display:grid; gap:1.5rem;}
.about-pillars h3{font-size:1.05rem; margin-bottom:.4rem; color:var(--navy-800);}
.about-pillars p{font-size:.95rem;}
.about-card{padding:2.25rem; display:flex; flex-direction:column; gap:1.5rem;}
.stat-row{display:flex; align-items:baseline; gap:1rem; padding-bottom:1.5rem; border-bottom:1px solid rgba(11,31,77,.1);}
.stat-row:last-child{border-bottom:0; padding-bottom:0;}
.stat-row span{font-family:var(--font-display); font-size:2.2rem; color:var(--navy-800); font-weight:700; min-width:90px;}
.stat-row p{margin:0; font-weight:600; color:var(--ink);}

/* ---------- Feature cards ---------- */
.card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;}
.feature{padding:2rem; transition:transform .3s var(--ease), border-color .3s var(--ease);}
.feature:hover{transform:translateY(-6px); border-color:var(--gold-glow);}
.feature-icon{font-size:2rem; color:var(--gold-400); display:block; margin-bottom:1rem;}
.feature h3{color:var(--white); font-size:1.15rem; margin-bottom:.5rem;}
.feature p{color:rgba(255,255,255,.68); font-size:.92rem;}

/* ---------- Programs ---------- */
.program-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem;}
.program-card{
  background:var(--white); border-radius:var(--radius-md); padding:1.9rem;
  border:1px solid var(--gray-100); position:relative; transition:transform .3s var(--ease), box-shadow .3s var(--ease);
}
.program-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-soft);}
.program-card h3{font-size:1.2rem; margin-bottom:.35rem; color:var(--navy-900);}
.program-meta{font-family:var(--font-mono); font-size:.72rem; color:var(--gold-500); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.85rem;}
.program-card p:not(.program-meta){font-size:.92rem; margin-bottom:1.25rem; min-height:3.2em;}
.program-link{font-weight:700; font-size:.88rem; color:var(--navy-800);}
.program-card.featured{border-color:var(--gold-500); box-shadow:0 20px 45px -18px var(--gold-glow);}
.program-badge{
  position:absolute; top:-.7rem; left:1.5rem; background:var(--gold-500); color:var(--navy-950);
  font-size:.68rem; font-weight:800; padding:.3rem .7rem; border-radius:999px; text-transform:uppercase; letter-spacing:.04em;
}

/* ---------- Journey ---------- */
.journey-list{display:grid; gap:0; max-width:760px; margin:0 auto;}
.journey-list li{
  display:grid; grid-template-columns:80px 1fr; gap:1.5rem; padding:1.4rem 0; border-bottom:1px solid var(--gray-100);
  align-items:flex-start;
}
.journey-list li:last-child{border-bottom:0;}
.journey-mark{
  font-family:var(--font-mono); font-weight:700; color:var(--white); background:var(--navy-800);
  border-radius:8px; padding:.4rem 0; text-align:center; font-size:.85rem; height:fit-content;
}
.journey-list h3{font-size:1.05rem; margin-bottom:.25rem; color:var(--navy-900);}
.journey-list p{font-size:.92rem;}

/* ---------- Achievements ---------- */
.stats-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:1.5rem; text-align:center;}
.stat-block{padding:1.5rem .5rem;}
.stat-num, .stat-suffix{font-family:var(--font-display); font-size:clamp(2.2rem,4vw,3.2rem); color:var(--gold-400); font-weight:700;}
.stat-block p{color:rgba(255,255,255,.72); font-size:.9rem; margin-top:.5rem; font-weight:600;}

/* ---------- Gallery ---------- */
.gallery-grid{display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:180px; gap:1rem;}
.gallery-tile{
  border-radius:var(--radius-sm); background:linear-gradient(135deg,var(--navy-800),var(--navy-900));
  position:relative; overflow:hidden;
}
.gallery-tile.tall{grid-row:span 2;}
.gallery-tile img, .gallery-tile video{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block; transition:transform .4s var(--ease);
}
.gallery-tile:hover img, .gallery-tile:hover video{transform:scale(1.05);}
.gallery-tile-video::before{
  content:'\25B6'; position:absolute; top:50%; left:50%; translate:-50% -50%; z-index:2;
  width:52px; height:52px; border-radius:50%; background:rgba(6,14,36,.55); backdrop-filter:blur(4px);
  color:var(--gold-400); font-size:1.1rem; display:flex; align-items:center; justify-content:center;
  pointer-events:none; transition:opacity .25s var(--ease);
}
.gallery-tile-video:has(video:focus)::before,
.gallery-tile-video video:hover ~ *,
.gallery-tile-video:hover::before{opacity:.85;}

/* ---------- Testimonials ---------- */
.testimonial-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;}
.testimonial{padding:2rem; display:flex; flex-direction:column; gap:1rem;}
.stars{color:var(--gold-500); letter-spacing:.15em;}
.testimonial p{font-style:italic; color:var(--ink); font-size:.98rem;}
.testimonial footer{font-weight:700; font-size:.85rem; color:var(--navy-800);}

/* ---------- FAQ ---------- */
.faq-list{display:flex; flex-direction:column; gap:.75rem;}
.faq-item{
  background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius-sm); padding:1.1rem 1.4rem;
}
.faq-item summary{
  cursor:pointer; font-weight:700; color:var(--navy-900); list-style:none; display:flex; justify-content:space-between; align-items:center; gap:1rem;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-size:1.3rem; color:var(--gold-500); flex-shrink:0;}
.faq-item[open] summary::after{content:'–';}
.faq-item p{margin-top:.8rem; font-size:.94rem;}

/* ---------- Contact ---------- */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:start;}
.contact-details{display:grid; gap:1.1rem; margin:2rem 0;}
.contact-details li{display:flex; flex-direction:column; gap:.15rem;}
.contact-details strong{color:var(--gold-400); font-size:.78rem; text-transform:uppercase; letter-spacing:.06em;}
.contact-details span{color:rgba(255,255,255,.85); font-size:.98rem;}
.contact-form{padding:2.25rem; display:flex; flex-direction:column; gap:1.1rem;}
.contact-form label{display:flex; flex-direction:column; gap:.4rem; font-size:.85rem; font-weight:700; color:var(--navy-900);}
.contact-form input, .contact-form select, .contact-form textarea{
  font-family:var(--font-body); font-size:.95rem; padding:.75rem .9rem; border-radius:var(--radius-sm);
  border:1px solid rgba(11,31,77,.18); background:rgba(255,255,255,.9); color:var(--ink); resize:vertical;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{border-color:var(--gold-500);}
.form-note{font-size:.85rem; color:var(--navy-800); min-height:1.2em;}

/* ---------- Footer ---------- */
.footer{background:var(--navy-950); color:rgba(255,255,255,.7); padding:4.5rem 0 0;}
.footer-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.5rem; padding-bottom:3rem; border-bottom:1px solid rgba(255,255,255,.08);}
.brand-footer{margin-bottom:1rem;}
.footer h4{color:var(--white); font-family:var(--font-body); font-size:.85rem; text-transform:uppercase; letter-spacing:.06em; margin-bottom:1rem;}
.footer a, .footer p{display:block; font-size:.92rem; margin-bottom:.6rem;}
.footer a:hover{color:var(--gold-400);}
.footer-bottom{text-align:center; padding:1.75rem 0; font-size:.82rem;}

/* ---------- Floating WhatsApp ---------- */
.floating-whatsapp{
  position:fixed; bottom:1.5rem; right:1.5rem; width:56px; height:56px; border-radius:50%;
  background:#25D366; color:var(--white); display:flex; align-items:center; justify-content:center;
  box-shadow:0 12px 30px -8px rgba(37,211,102,.6); z-index:90; transition:transform .3s var(--ease);
}
.floating-whatsapp svg{width:28px; height:28px;}
.floating-whatsapp:hover{transform:scale(1.08);}

/* ---------- Reveal on scroll ---------- */
[data-reveal]{opacity:0; transform:translateY(24px); transition:opacity .7s var(--ease), transform .7s var(--ease);}
[data-reveal].is-visible{opacity:1; transform:translateY(0);}

/* ============ Responsive ============ */
@media (max-width: 1024px){
  .card-grid, .program-grid, .testimonial-grid{grid-template-columns:repeat(2,1fr);}
  .stats-grid{grid-template-columns:repeat(3,1fr);}
  .about-grid, .contact-grid{grid-template-columns:1fr; gap:2.5rem;}
}
@media (max-width: 900px){
  .nav-links, .nav-cta{display:none;}
  .nav-toggle{display:flex;}
  .card-grid, .program-grid, .testimonial-grid, .gallery-grid{grid-template-columns:1fr 1fr;}
  .stats-grid{grid-template-columns:repeat(2,1fr);}
  .journey-list li{grid-template-columns:56px 1fr;}
}
@media (max-width: 520px){
  .card-grid, .program-grid, .testimonial-grid, .gallery-grid, .footer-grid{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .hero-actions{flex-direction:column; width:100%;}
  .hero-actions .btn{width:100%;}
}

/* Mobile nav drawer */
.nav-links.is-open{
  display:flex; position:fixed; inset:0 0 0 auto; width:78%; max-width:320px; background:var(--navy-950);
  flex-direction:column; padding:6.5rem 2rem 2rem; gap:1.6rem; box-shadow:-20px 0 50px rgba(0,0,0,.4);
}

/* ============================================
   INNER PAGE ADDITIONS (multi-page build)
   ============================================ */

/* ---------- Page Hero (inner pages) ---------- */
.page-hero{
  position:relative; padding:9.5rem 1.5rem 4.5rem;
  background:radial-gradient(120% 100% at 50% -10%, var(--navy-800) 0%, var(--navy-900) 45%, var(--navy-950) 100%);
  overflow:hidden; text-align:center;
}
.page-hero .hero-board{opacity:.35;}
.page-hero-inner{position:relative; z-index:2; max-width:760px; margin:0 auto; display:flex; flex-direction:column; align-items:center; gap:1rem;}
.page-hero h1{font-size:clamp(2.1rem,4.6vw,3.2rem); color:var(--white);}
.page-hero h1 span{color:var(--gold-400); font-style:italic;}
.page-hero p{color:rgba(255,255,255,.78); font-size:1.05rem; max-width:560px;}
.breadcrumb{display:flex; align-items:center; gap:.5rem; font-size:.82rem; color:rgba(255,255,255,.55); font-family:var(--font-mono);}
.breadcrumb a{color:rgba(255,255,255,.75);}
.breadcrumb a:hover{color:var(--gold-400);}

/* ---------- Section title helpers reused across inner pages ---------- */
.section-title{font-size:clamp(1.8rem,3.4vw,2.5rem); margin-bottom:.75rem;}
.section-title.light{color:var(--white);}
.section-intro{max-width:640px; margin-bottom:2.5rem; font-size:1.02rem;}
.section-intro.light{color:rgba(255,255,255,.75);}
.center{text-align:center; margin-left:auto; margin-right:auto;}

/* ---------- Coaches (About page) ---------- */
.coach-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem;}
.coach-card{background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius-md); padding:1.75rem; text-align:center; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.coach-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-soft);}
.coach-photo{width:96px; height:96px; border-radius:50%; margin:0 auto 1.1rem; background:linear-gradient(135deg,var(--navy-800),var(--navy-900)); display:flex; align-items:center; justify-content:center; font-size:2.1rem; color:var(--gold-400);}
.coach-card h3{font-size:1.1rem; margin-bottom:.2rem; color:var(--navy-900);}
.coach-role{font-family:var(--font-mono); font-size:.72rem; color:var(--gold-500); text-transform:uppercase; letter-spacing:.05em; margin-bottom:.75rem; display:block;}
.coach-card p{font-size:.9rem;}

/* ---------- Timeline (About page milestones) ---------- */
.milestone-list{display:grid; gap:0; max-width:760px; margin:0 auto;}
.milestone-list li{display:grid; grid-template-columns:90px 1fr; gap:1.5rem; padding:1.3rem 0; border-bottom:1px solid var(--gray-100);}
.milestone-list li:last-child{border-bottom:0;}
.milestone-year{font-family:var(--font-mono); font-weight:700; color:var(--navy-800);}
.milestone-list h3{font-size:1rem; margin-bottom:.2rem; color:var(--navy-900);}
.milestone-list p{font-size:.9rem;}

/* ---------- Programs page extras ---------- */
.program-detail{background:var(--white); border-radius:var(--radius-lg); border:1px solid var(--gray-100); padding:2.25rem; display:grid; grid-template-columns:1fr auto; gap:1.5rem; align-items:center; margin-bottom:1.25rem;}
.program-detail-body h3{font-size:1.3rem; color:var(--navy-900); margin-bottom:.4rem;}
.program-detail-body p{font-size:.95rem;}
.program-detail-tags{display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.9rem;}
.program-detail-tags span{font-family:var(--font-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; background:var(--gray-100); color:var(--navy-800); padding:.35rem .7rem; border-radius:999px;}

/* ---------- Achievements page: champions list ---------- */
.champion-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem;}
.champion-card{background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius-md); padding:1.5rem; display:flex; gap:1.1rem; align-items:flex-start;}
.champion-trophy{font-size:1.6rem; color:var(--gold-500); flex-shrink:0;}
.champion-card h3{font-size:1.02rem; color:var(--navy-900); margin-bottom:.2rem;}
.champion-card p{font-size:.88rem;}

/* ---------- Blog ---------- */
.blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1.75rem;}
.blog-card{background:var(--white); border:1px solid var(--gray-100); border-radius:var(--radius-md); overflow:hidden; transition:transform .3s var(--ease), box-shadow .3s var(--ease);}
.blog-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-soft);}
.blog-thumb{height:170px; background:linear-gradient(135deg,var(--navy-800),var(--navy-900)); display:flex; align-items:center; justify-content:center; font-size:2rem; color:var(--gold-400);}
.blog-card-body{padding:1.5rem;}
.blog-meta{font-family:var(--font-mono); font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--gold-500); margin-bottom:.6rem; display:block;}
.blog-card h3{font-size:1.05rem; color:var(--navy-900); margin-bottom:.55rem; line-height:1.35;}
.blog-card p{font-size:.9rem; margin-bottom:1rem;}
.blog-read{font-weight:700; font-size:.85rem; color:var(--navy-800);}

/* ---------- CTA banner (reused on inner pages) ---------- */
.cta-banner{
  background:linear-gradient(120deg,var(--navy-900),var(--navy-950));
  border-radius:var(--radius-lg); padding:3.5rem 2.5rem; text-align:center;
  display:flex; flex-direction:column; align-items:center; gap:1.25rem;
  position:relative; overflow:hidden;
}
.cta-banner::before{
  content:''; position:absolute; top:-30%; left:50%; translate:-50% 0; width:600px; height:600px; border-radius:50%;
  background:radial-gradient(circle, var(--gold-glow) 0%, transparent 65%); opacity:.6; pointer-events:none;
}
.cta-banner h2{color:var(--white); position:relative; z-index:1; font-size:clamp(1.5rem,3vw,2.1rem);}
.cta-banner p{color:rgba(255,255,255,.75); max-width:520px; position:relative; z-index:1;}
.cta-banner .hero-actions{position:relative; z-index:1;}

/* ---------- Legal pages (Privacy / Terms) ---------- */
.legal-content{max-width:820px; margin:0 auto;}
.legal-content h2{font-size:1.35rem; color:var(--navy-900); margin:2.25rem 0 .75rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{margin-bottom:1rem; font-size:.96rem;}
.legal-content ul{list-style:disc; padding-left:1.4rem; margin-bottom:1rem;}
.legal-content ul li{color:var(--gray-600); font-size:.96rem; line-height:1.65; margin-bottom:.4rem;}
.legal-updated{font-family:var(--font-mono); font-size:.78rem; color:var(--gray-400); margin-bottom:2.5rem; display:block;}

/* ---------- Gallery filter (Gallery page) ---------- */
.gallery-filter{display:flex; gap:.75rem; flex-wrap:wrap; margin-bottom:2rem;}
.gallery-filter button{
  font-family:var(--font-body); font-weight:600; font-size:.85rem; padding:.55rem 1.2rem; border-radius:999px;
  border:1px solid var(--gray-100); background:var(--white); color:var(--gray-600); cursor:pointer; transition:all .25s var(--ease);
}
.gallery-filter button.is-active, .gallery-filter button:hover{background:var(--navy-900); color:var(--white); border-color:var(--navy-900);}
.gallery-grid.gallery-grid-full{grid-template-columns:repeat(4,1fr); grid-auto-rows:200px;}

/* ---------- Responsive additions ---------- */
@media (max-width: 1024px){
  .coach-grid{grid-template-columns:repeat(2,1fr);}
  .blog-grid{grid-template-columns:repeat(2,1fr);}
  .champion-grid{grid-template-columns:1fr;}
  .gallery-grid.gallery-grid-full{grid-template-columns:repeat(3,1fr);}
}
@media (max-width: 768px){
  .program-detail{grid-template-columns:1fr;}
  .gallery-grid.gallery-grid-full{grid-template-columns:repeat(2,1fr);}
}
@media (max-width: 520px){
  .coach-grid, .blog-grid, .gallery-grid.gallery-grid-full{grid-template-columns:1fr;}
}
