:root{
  --navy:#0d1f17;
  --navy-2:#14281f;
  /* ---- Combat Golf / ParQuest brand guide ----
     Sampled from the official logomark + the ParQuest palette spec.
     Two-register system: green/blue = competition & product, gold = impact/giving,
     confirm-green = status only. Legacy variable names (--coral, --yellow, --green)
     are kept so every page's existing markup repaints automatically. */
  --green:#002acc;        /* ParQuest Blue — secondary / informational accents */
  --green-dark:#001f99;   /* deeper blue for hovers & gradients */
  --coral:#86c429;        /* ParQuest Green — primary brand action color */
  --coral-deep:#4a7412;   /* deep olive-green for large CTA fills (keeps white text legible) */
  --coral-deeper:#25390a;
  --yellow:#ffbf00;       /* Impact Gold — stats, money, donation highlights */
  --confirm:#2e9e4f;      /* Confirm Green — status/checkmarks only, not an action color */
  --cream:#fff9e5;
  --ink:#12201a;
  --muted:#5b6b62;
  --line:rgba(18,32,26,0.1);
  --radius:20px;
  --maxw:1180px;
  /* Combat Golf brand marks (from official logo) */
  --cg-lime:#86c429;
  --cg-blue:#002acc;
}
*{box-sizing:border-box;}
/* Keyboard skip link — the header is sticky and carries 5 nav links plus two
   CTAs, so without this every keyboard/screen-reader user tabs through the
   whole nav on every page before reaching content. Visible only on focus. */
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--navy);color:#fff;padding:12px 20px;
  border-radius:0 0 12px 0;font-weight:600;text-decoration:none;
}
.skip-link:focus{left:0;}
#main:focus{outline:none;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Poppins',sans-serif;
  color:var(--ink);
  background:var(--cream);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{
  font-family:'Fredoka',sans-serif;
  margin:0 0 .5em;
  line-height:1.12;
  letter-spacing:-0.01em;
}
p{margin:0 0 1em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
ul{margin:0;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--green-dark);
  background:rgba(0,42,204,0.10);
  padding:6px 14px;border-radius:999px;
  margin-bottom:18px;
}
.eyebrow.coral{color:var(--coral-deep);background:rgba(134,196,41,0.16);}
.eyebrow.on-dark{background:rgba(255,255,255,0.12);color:#fff;}
.eyebrow.on-dark.yellow{background:rgba(255,191,0,0.20);color:var(--yellow);}

.btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:14px 26px;border-radius:999px;
  font-weight:600;font-size:15px;
  border:2px solid transparent;
  cursor:pointer;transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  font-family:inherit;
}
.btn-primary{background:var(--navy);color:#fff;}
.btn-primary:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(11,31,23,0.25);}
.btn-outline{border-color:var(--navy);color:var(--navy);}
.btn-outline:hover{background:var(--navy);color:#fff;}
.btn-outline.on-dark{border-color:rgba(255,255,255,0.5);color:#fff;}
.btn-outline.on-dark:hover{background:#fff;color:var(--navy);}
.btn-coral{background:var(--coral);color:#16300a;}
.btn-coral:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(134,196,41,0.4);}
.btn-white{background:#fff;color:var(--navy);}
.btn-white:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,0.15);}

/* Header */
header{
  position:sticky;top:0;z-index:50;
  background:rgba(250,247,240,0.9);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 28px;max-width:var(--maxw);margin:0 auto;}
.brand{display:flex;align-items:center;gap:10px;font-family:'Fredoka',sans-serif;font-weight:700;font-size:21px;color:var(--navy);}
.brand img.logo-full{height:30px;width:auto;display:block;}
.brand img.logo-icon{height:34px;width:auto;display:block;}
.brand .logo-text{color:#fff;font-size:19px;}
nav.links{display:flex;gap:32px;font-size:15px;font-weight:500;white-space:nowrap;}
nav.links a{opacity:.8;transition:opacity .15s;}
nav.links a.active,nav.links a:hover{opacity:1;}
.nav-cta{display:flex;gap:12px;align-items:center;flex-shrink:0;}
.menu-toggle{display:none;background:none;border:none;font-size:26px;cursor:pointer;color:var(--navy);}

/* ParQuest dot mark (placeholder for crest) */
.pq-dots{display:inline-flex;gap:5px;align-items:center;}
.pq-dots span{width:10px;height:10px;border-radius:50%;display:block;}
.pq-dots span:nth-child(1){background:var(--coral);}
.pq-dots span:nth-child(2){background:var(--yellow);}
.pq-dots span:nth-child(3){background:var(--green);}
.pq-dots.ring span{background:none;border:2px solid;}
.pq-dots.ring span:nth-child(1){border-color:var(--coral);}
.pq-dots.ring span:nth-child(2){border-color:var(--yellow);}
.pq-dots.ring span:nth-child(3){border-color:var(--green);background:var(--green);}
.pq-wordmark{display:inline-flex;align-items:center;gap:10px;font-family:'Fredoka',sans-serif;font-weight:700;}

section{padding:96px 0;}
.section-head{max-width:640px;margin:0 auto 56px;text-align:center;}
.section-head.left{margin:0 0 48px;text-align:left;}
.section-head h2{font-size:clamp(28px,3.4vw,42px);}
.section-head p{color:var(--muted);font-size:17px;}

/* Generic page hero (inner pages) */
.page-hero{
  background:radial-gradient(1100px 500px at 85% -10%, rgba(134,196,41,0.22), transparent 60%),
             radial-gradient(700px 400px at 10% 10%, rgba(0,42,204,0.20), transparent 55%),
             var(--navy);
  color:#fff;padding:80px 0 70px;
  position:relative;
  overflow:hidden;
}
.page-hero.has-scene{
  background-size:cover;
  background-position:center bottom;
  background-repeat:no-repeat;
}
.page-hero.has-scene::before{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(11,31,23,0.94) 0%, rgba(11,31,23,0.82) 32%, rgba(11,31,23,0.35) 62%, rgba(11,31,23,0.08) 100%);
  pointer-events:none;
}
.page-hero.has-scene .wrap{position:relative;z-index:1;}
.page-hero.peek{
  padding-top:72px;padding-bottom:44px;
}
@media (max-width: 920px){
  .page-hero.peek{padding-top:64px;padding-bottom:40px;}
}
/* Pull the next section up over the hero's wave so it "peeks" above the fold —
   nudges the user to scroll without depending on exact hero content height. */
.teaser-peek{
  position:relative;z-index:2;
  background:var(--cream);
  margin-top:-30px;
  padding-top:30px;
}
.page-hero.scene-home{
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(74,116,18,0.38) 68%, rgba(134,196,41,0.12) 100%), url('hero-photo-course.jpg');
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(74,116,18,0.38) 68%, rgba(134,196,41,0.12) 100%), -webkit-image-set(url('hero-photo-course.webp') type('image/webp'), url('hero-photo-course.jpg') type('image/jpeg'));
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(74,116,18,0.38) 68%, rgba(134,196,41,0.12) 100%), image-set(url('hero-photo-course.webp') type('image/webp'), url('hero-photo-course.jpg') type('image/jpeg'));
}
.page-hero.scene-home.peek{padding-bottom:104px;}
.home-hero-stats{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  margin-top:52px;
}
.page-hero.scene-tournaments{
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(0,26,128,0.42) 68%, rgba(0,42,204,0.14) 100%), url('hero-photo-tournaments.jpg');
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(0,26,128,0.42) 68%, rgba(0,42,204,0.14) 100%), -webkit-image-set(url('hero-photo-tournaments.webp') type('image/webp'), url('hero-photo-tournaments.jpg') type('image/jpeg'));
  background-image:linear-gradient(100deg, rgba(13,31,23,0.95) 0%, rgba(13,31,23,0.72) 34%, rgba(0,26,128,0.42) 68%, rgba(0,42,204,0.14) 100%), image-set(url('hero-photo-tournaments.webp') type('image/webp'), url('hero-photo-tournaments.jpg') type('image/jpeg'));
}
.page-hero.scene-phoenix{
  background-image:linear-gradient(100deg, rgba(13,31,23,0.96) 0%, rgba(13,31,23,0.78) 34%, rgba(122,91,0,0.45) 68%, rgba(255,191,0,0.16) 100%), url('hero-photo-course.jpg');
  background-image:linear-gradient(100deg, rgba(13,31,23,0.96) 0%, rgba(13,31,23,0.78) 34%, rgba(122,91,0,0.45) 68%, rgba(255,191,0,0.16) 100%), -webkit-image-set(url('hero-photo-course.webp') type('image/webp'), url('hero-photo-course.jpg') type('image/jpeg'));
  background-image:linear-gradient(100deg, rgba(13,31,23,0.96) 0%, rgba(13,31,23,0.78) 34%, rgba(122,91,0,0.45) 68%, rgba(255,191,0,0.16) 100%), image-set(url('hero-photo-course.webp') type('image/webp'), url('hero-photo-course.jpg') type('image/jpeg'));
}
.page-hero.has-scene::before{display:none;} /* tint now baked into the background-image gradient above */
.hero-wave{display:block;width:100%;height:auto;position:absolute;left:0;bottom:0;z-index:1;}
.page-hero h1{color:#fff;font-size:clamp(34px,4.6vw,52px);}
.page-hero p.lead{color:rgba(255,255,255,0.78);font-size:18px;max-width:600px;}
.breadcrumb{font-size:13.5px;color:rgba(255,255,255,0.55);margin-bottom:18px;}
.breadcrumb a:hover{color:#fff;}

/* Real photo banner (tournament venue) */
.venue-banner{
  padding:0;
  position:relative;
  background:linear-gradient(100deg, rgba(13,31,23,0.88) 0%, rgba(13,31,23,0.55) 45%, rgba(0,42,204,0.30) 100%), url('tournament-venue-banner.jpg');
  background-image:linear-gradient(100deg, rgba(13,31,23,0.88) 0%, rgba(13,31,23,0.55) 45%, rgba(0,42,204,0.30) 100%), -webkit-image-set(url('tournament-venue-banner.webp') type('image/webp'), url('tournament-venue-banner.jpg') type('image/jpeg'));
  background-image:linear-gradient(100deg, rgba(13,31,23,0.88) 0%, rgba(13,31,23,0.55) 45%, rgba(0,42,204,0.30) 100%), image-set(url('tournament-venue-banner.webp') type('image/webp'), url('tournament-venue-banner.jpg') type('image/jpeg'));
  background-size:cover;background-position:center;background-repeat:no-repeat;
}
.venue-banner-inner{
  display:grid;grid-template-columns:repeat(3,1fr);gap:24px;
  padding:56px 0;
}
.venue-banner-stat{text-align:center;color:#fff;}
.venue-banner-stat .num{display:block;font-family:'Fredoka',sans-serif;font-weight:700;font-size:clamp(24px,3vw,34px);color:var(--yellow);}
.venue-banner-stat .lbl{display:block;font-size:13.5px;color:rgba(255,255,255,0.8);margin-top:6px;}
@media (max-width: 920px){
  .page-hero.scene-home.peek{padding-bottom:96px;}
  .home-hero-stats{grid-template-columns:repeat(3,minmax(0,1fr));}
  .venue-banner-inner{grid-template-columns:1fr;gap:20px;padding:40px 0;}
}

/* Cards */
.card{
  background:#fff;border-radius:var(--radius);border:1px solid var(--line);
  padding:38px;box-shadow:0 1px 3px rgba(18,32,26,0.04);
}
.feat-list{list-style:none;padding:0;margin:18px 0 26px;display:flex;flex-direction:column;gap:10px;}
.feat-list li{display:flex;gap:10px;font-size:14.5px;color:var(--ink);}
.feat-list svg{flex-shrink:0;margin-top:2px;}

/* Steps */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.step-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:30px 26px;position:relative;
}
.step-num{
  width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-family:'Fredoka',sans-serif;font-weight:700;color:#fff;margin-bottom:18px;font-size:16px;
}
.step-num[style*="var(--coral)"]{color:var(--ink);} /* bright brand green needs dark text for contrast */
.step-card h4{font-size:18px;}
.step-card p{color:var(--muted);font-size:14.5px;margin:0;}

/* Stats */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.stat-card{text-align:center;padding:26px 14px;border-radius:16px;background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.1);}
.stat-card .num{font-family:'Fredoka',sans-serif;font-size:32px;font-weight:700;color:var(--yellow);}
.stat-card .lbl{font-size:13px;color:rgba(255,255,255,0.65);margin-top:6px;}

/* Pills */
.pill-row{display:flex;flex-wrap:wrap;gap:12px;}
.pill{
  background:var(--cream);border:1px solid var(--line);border-radius:999px;
  padding:10px 20px;font-size:14.5px;font-weight:500;
}

/* Game icon grid */
.game-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
.game-tile{
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;text-align:center;
  transition:transform .15s ease, box-shadow .15s ease;
}
.game-tile:hover{transform:translateY(-3px);box-shadow:0 14px 26px rgba(18,32,26,0.08);}
.game-tile img{width:100%;aspect-ratio:1/1;object-fit:contain;display:block;margin:0 auto 8px;}
.game-tile span{font-size:12.5px;font-weight:600;color:var(--ink);line-height:1.3;display:block;}
@media (max-width: 920px){
  .game-grid{grid-template-columns:repeat(3,1fr);}
}

/* Road to Phoenix — season roadmap */
.roadmap-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:20px;}
.roadmap-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 22px;position:relative;
}
.roadmap-card .stage-tag{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:var(--coral-deep);background:rgba(134,196,41,0.14);padding:4px 11px;border-radius:999px;margin-bottom:14px;
}
.roadmap-card .field-size{font-family:'Fredoka',sans-serif;font-weight:700;font-size:26px;margin-bottom:2px;}
.roadmap-card .when{font-size:12.5px;color:var(--muted);font-weight:600;margin-bottom:10px;}
.roadmap-card p{font-size:13.5px;color:var(--muted);margin:0;}
.roadmap-card.stretch{border-style:dashed;background:var(--cream);}
.roadmap-connector{
  display:flex;align-items:center;justify-content:center;color:var(--line);
  font-size:22px;margin:0 -4px;
}
.finale-card{
  background:linear-gradient(120deg, var(--navy), var(--navy-2) 60%, #001a80);
  border-radius:28px;padding:44px;color:#fff;
  display:grid;grid-template-columns:1.2fr 1fr;gap:36px;align-items:center;
}
.finale-card .stage-tag{
  display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  color:#1a1400;background:var(--yellow);padding:5px 13px;border-radius:999px;margin-bottom:16px;
}
.finale-card h3{color:#fff;font-size:clamp(22px,2.6vw,30px);margin-bottom:10px;}
.finale-card p{color:rgba(255,255,255,0.78);font-size:15px;}
.finale-stats{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.finale-stat{background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.14);border-radius:16px;padding:18px;text-align:center;}
.finale-stat .num{display:block;font-family:'Fredoka',sans-serif;font-weight:700;font-size:24px;color:var(--yellow);}
.finale-stat .lbl{display:block;font-size:12px;color:rgba(255,255,255,0.7);margin-top:4px;}
@media (max-width: 980px){
  .roadmap-grid{grid-template-columns:repeat(2,1fr);}
  .finale-card{grid-template-columns:1fr;}
}

/* Pot builder */
.pot-card{
  background:#fff;border:1px solid var(--line);border-radius:28px;
  display:grid;grid-template-columns:1fr 1fr;overflow:hidden;
}
.pot-headline{padding:44px;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:center;}
.pot-headline .big{font-family:'Fredoka',sans-serif;font-weight:700;font-size:48px;color:var(--yellow);line-height:1;}
.pot-headline .cap{font-size:13.5px;color:rgba(255,255,255,0.65);margin-top:10px;}
.pot-breakdown{padding:44px;}
.pot-row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line);}
.pot-row:last-child{border-bottom:none;}
.pot-row .plabel{font-size:14px;color:var(--muted);}
.pot-row .pval{font-family:'Fredoka',sans-serif;font-weight:700;font-size:17px;}
.pot-note{font-size:12.5px;color:var(--muted);margin-top:16px;}
@media (max-width: 920px){
  .pot-card{grid-template-columns:1fr;}
}

/* Format cards */
.format-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.format-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 24px;text-align:center;}
.format-card .ficon{
  width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:24px;margin:0 auto 16px;background:rgba(0,42,204,0.10);
}
.format-card h4{font-size:16px;margin-bottom:8px;}
.format-card p{font-size:13.5px;color:var(--muted);margin:0;}
@media (max-width: 920px){
  .format-grid{grid-template-columns:repeat(2,1fr);}
}

/* Feature list (sponsor / partner cards) */
.feat-list li{align-items:flex-start;}
.feat-list .tick{
  flex-shrink:0;width:20px;height:20px;border-radius:50%;background:rgba(46,158,79,0.16);color:var(--confirm);
  display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-top:1px;
}

/* CTA band */
.cta-band{
  color:#fff;text-align:center;border-radius:28px;
  padding:64px 40px;margin:0 auto;max-width:var(--maxw);
}
.cta-band.coral{background:linear-gradient(120deg, var(--coral-deep), var(--coral-deeper));}
.cta-band.green{background:linear-gradient(120deg, var(--green), var(--green-dark));}
.cta-band.gold{background:linear-gradient(120deg, #7a5b00, #4a3800);}
.cta-band.gold h2{color:var(--yellow);}
.cta-band h2{color:#fff;font-size:clamp(26px,3.4vw,38px);}
.cta-band p{color:rgba(255,255,255,0.9);max-width:520px;margin:0 auto 28px;}
.cta-actions{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;}

/* WIIFM benefit cards */
.wiifm-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
.wiifm-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px 26px;}
.wiifm-icon{
  width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;
  font-size:22px;margin-bottom:18px;
}
.wiifm-card h4{font-size:18px;}
.wiifm-card p{color:var(--muted);font-size:14.5px;margin:0;}

/* ROI Calculator */
.calc-wrap{
  display:grid;grid-template-columns:1fr 1fr;gap:0;
  background:#fff;border:1px solid var(--line);border-radius:28px;overflow:hidden;
}
.calc-inputs{padding:44px;border-right:1px solid var(--line);}
.calc-results{padding:44px;background:var(--navy);color:#fff;display:flex;flex-direction:column;justify-content:center;}
.calc-field{margin-bottom:24px;}
.calc-field label{display:flex;justify-content:space-between;font-size:14px;font-weight:600;margin-bottom:8px;}
.calc-field label .val{color:var(--coral-deep);font-family:'Fredoka',sans-serif;}
.calc-field input[type="number"]{
  width:100%;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;
  font-family:inherit;font-size:15px;background:var(--cream);color:var(--ink);outline:none;
}
.calc-field input[type="number"]:focus{border-color:var(--green);}
.calc-field input[type="range"]{width:100%;accent-color:var(--coral);}
.calc-note{font-size:12px;color:var(--muted);margin-top:4px;}
.calc-result-row{display:flex;justify-content:space-between;align-items:baseline;padding:14px 0;border-bottom:1px solid rgba(255,255,255,0.12);}
.calc-result-row:last-child{border-bottom:none;}
.calc-result-row .rlabel{font-size:13.5px;color:rgba(255,255,255,0.65);}
.calc-result-row .rval{font-family:'Fredoka',sans-serif;font-weight:700;font-size:20px;color:#fff;}
.calc-headline{margin-bottom:22px;}
.calc-headline .big{font-family:'Fredoka',sans-serif;font-weight:700;font-size:44px;color:var(--yellow);line-height:1;}
.calc-headline .cap{font-size:13.5px;color:rgba(255,255,255,0.65);margin-top:8px;}
@media (max-width: 920px){
  .wiifm-grid{grid-template-columns:repeat(2,1fr);}
  .calc-wrap{grid-template-columns:1fr;}
  .calc-inputs{border-right:none;border-bottom:1px solid var(--line);}
}

/* Contact form */
.form-card{background:#fff;border-radius:var(--radius);border:1px solid var(--line);padding:44px;max-width:640px;margin:0 auto;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field.full{grid-column:1/-1;}
.form-field label{font-size:13.5px;font-weight:600;color:var(--ink);}
.form-field input,.form-field select,.form-field textarea{
  border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;
  font-family:inherit;font-size:14.5px;background:var(--cream);color:var(--ink);
  outline:none;transition:border-color .15s;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:var(--green);}
.form-field textarea{resize:vertical;min-height:120px;}
.form-submit{width:100%;justify-content:center;margin-top:6px;}
.form-note{font-size:12.5px;color:var(--muted);text-align:center;margin-top:16px;}

/* Spots-filled urgency tracker */
.spots-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.spot-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px 30px;}
.spot-card .srow{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;}
.spot-card h4{font-size:16px;margin:0;}
.spot-card .scount{font-family:'Fredoka',sans-serif;font-weight:700;font-size:15px;color:var(--coral-deep);}
.progress-track{background:var(--line);border-radius:999px;height:10px;overflow:hidden;}
.progress-fill{background:linear-gradient(90deg, var(--coral), var(--coral-deep));height:100%;border-radius:999px;transition:width .4s ease;}
.spot-card .scaption{font-size:12.5px;color:var(--muted);margin-top:10px;}
@media (max-width: 780px){
  .spots-grid{grid-template-columns:1fr;}
}

/* Newsletter / email capture bar */
.newsletter-bar{background:var(--navy);padding:52px 0;}
.newsletter-inner{
  display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
}
.newsletter-copy h3{color:#fff;font-size:20px;margin-bottom:4px;}
.newsletter-copy p{color:rgba(255,255,255,0.65);font-size:14px;margin:0;}
.newsletter-form{display:flex;gap:10px;flex-wrap:wrap;flex:0 0 auto;}
.newsletter-form input[type="email"]{
  border:1.5px solid rgba(255,255,255,0.2);border-radius:999px;padding:12px 18px;
  font-family:inherit;font-size:14.5px;background:rgba(255,255,255,0.08);color:#fff;
  outline:none;min-width:260px;transition:border-color .15s;
}
.newsletter-form input[type="email"]::placeholder{color:rgba(255,255,255,0.45);}
.newsletter-form input[type="email"]:focus{border-color:var(--coral);}
.newsletter-note{width:100%;font-size:11.5px;color:rgba(255,255,255,0.4);margin-top:8px;}
.newsletter-form.sent .newsletter-fields{display:none;}
@media (max-width: 780px){
  .newsletter-inner{flex-direction:column;align-items:stretch;}
  .newsletter-form,.newsletter-fields{width:100%;}
  .newsletter-form input[type="email"]{min-width:0;flex:1;}
}

/* Legal pages (Privacy / Terms) */
.legal-content{max-width:760px;margin:0 auto;}
.legal-content h2{font-size:22px;margin:40px 0 12px;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p{color:var(--muted);font-size:15px;line-height:1.7;margin:0 0 14px;}
.legal-content ul{margin:0 0 14px;padding-left:22px;}
.legal-content li{color:var(--muted);font-size:15px;line-height:1.7;margin-bottom:6px;}
.legal-content .updated{font-size:13px;color:var(--muted);margin-bottom:36px;}
.legal-note{background:rgba(255,191,0,0.12);border:1px solid rgba(255,191,0,0.35);border-radius:14px;padding:16px 20px;margin-bottom:36px;}
.legal-note p{color:var(--ink);font-size:13.5px;margin:0;}

/* FAQ accordion */
.faq-item{
  border:1px solid var(--line);border-radius:16px;padding:4px 22px;margin-bottom:12px;background:#fff;
}
.faq-item summary{
  padding:16px 0;font-weight:600;font-size:15.5px;color:var(--ink);cursor:pointer;
  list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+';font-size:20px;color:var(--coral-deep);flex-shrink:0;transition:transform .15s ease;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{color:var(--muted);font-size:14.5px;line-height:1.7;padding-bottom:18px;margin:0;}
.legal-content h2{border-top:1px solid var(--line);padding-top:32px;}
.legal-content h2:first-of-type{border-top:none;padding-top:0;}

/* Footer */
footer{background:var(--navy);color:rgba(255,255,255,0.7);padding:72px 0 28px;}
.footer-top-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:44px;margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,0.1);}
.footer-top-grid h5{color:var(--yellow);font-size:13px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:14px;}
.footer-top-grid p{font-size:14.5px;color:rgba(255,255,255,0.72);margin:0;}
.footer-founders{display:flex;flex-direction:column;gap:10px;margin-top:4px;}
.footer-founders div{font-size:14px;}
.footer-founders strong{color:#fff;}
.footer-founders span{color:rgba(255,255,255,0.55);font-size:12.5px;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px;}
.footer-grid h5{color:#fff;font-size:14px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:16px;}
.footer-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;font-size:14.5px;}
.footer-grid ul a:hover{color:#fff;}
.footer-brand p{font-size:14.5px;max-width:280px;color:rgba(255,255,255,0.6);}
.social-row{display:flex;gap:12px;margin-top:18px;}
.social-row a{
  width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,0.2);
  display:flex;align-items:center;justify-content:center;font-size:13px;
}
.social-row a:hover{background:rgba(255,255,255,0.1);}
.footer-bottom{
  border-top:1px solid rgba(255,255,255,0.12);padding-top:24px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:13.5px;color:rgba(255,255,255,0.5);
}
.footer-bottom a{margin-left:18px;}

/* Grid items shrink to fit their track by default only if they can shrink below
   their content's natural width — selects, wide text, etc. can silently force
   a grid/flex track wider than the viewport otherwise. */
.form-field,.calc-inputs,.calc-results,.wiifm-card,.step-card,.card,.finale-stats > *{min-width:0;}
select{max-width:100%;}

/* Nav collapses earlier than the layout grids: below ~1040px the logo,
   five nav links and two CTAs no longer fit on one row with breathing room. */
@media (max-width: 1040px){
  nav.links, .nav-cta .btn-outline{display:none;}
  .menu-toggle{display:block;}
  .nav{position:relative;}
  /* Mobile nav drawer: JS toggles .nav.open (see mobile-nav.js). Hidden by
     default via the rule above; this re-shows it as a dropdown panel only
     when the drawer is open, so the collapsed state stays untouched. */
  .nav.open nav.links{
    display:flex !important;flex-direction:column;gap:4px;
    position:absolute;top:calc(100% + 1px);left:0;right:0;
    background:#faf7f0;border:1px solid var(--line);border-top:none;
    padding:14px 20px 18px;box-shadow:0 12px 24px rgba(18,32,26,0.12);
    border-radius:0 0 16px 16px;
  }
  .nav.open nav.links a{padding:10px 4px;border-bottom:1px solid var(--line);opacity:1;}
  .nav.open nav.links a:last-child{border-bottom:none;}
  .menu-toggle{position:relative;z-index:2;}
  .menu-toggle .icon-close{display:none;}
  .nav.open .menu-toggle .icon-open{display:none;}
  .nav.open .menu-toggle .icon-close{display:inline;}
}

@media (max-width: 920px){
  .steps-grid{grid-template-columns:repeat(2,1fr);}
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .footer-top-grid{grid-template-columns:1fr;gap:28px;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
  .finale-stats{grid-template-columns:1fr 1fr;}

  /* Every two-column layout on the site is built with an inline
     grid-template-columns style rather than a class — collapse them all to
     a single column on mobile. !important is required to beat the inline
     style (this is one of the few places it's the right tool). */
  .wrap[style*="grid-template-columns"],
  div[style*="grid-template-columns"]{
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 600px){
  .home-hero-stats{grid-template-columns:1fr;gap:18px;margin-top:40px;}
  .steps-grid,.stat-grid,.wiifm-grid,.game-grid,.format-grid,.roadmap-grid,.footer-grid{grid-template-columns:1fr !important;}
  .finale-stats{grid-template-columns:1fr 1fr;}
  h1{font-size:clamp(28px,7vw,38px) !important;}
}

/* Season schedule status callout (Road to Phoenix roadmap). Sits under the
   section intro to make clear which dates are locked vs. still being set. */
.schedule-note{
  max-width:760px;margin:18px auto 0;padding:14px 18px;
  background:rgba(255,191,0,0.14);border:1px solid rgba(255,191,0,0.45);
  border-radius:14px;font-size:14.5px;line-height:1.55;color:var(--ink);
}
.schedule-note a{color:var(--coral-deep);text-decoration:underline;}
