/* ===========================================================
   SCRATCH CIRCLE — design system
   A golf community & learning hub for Delhi NCR.
   Signature motifs: the ball-marker ring (logo + ratings) and
   the scorecard ledger-line (section dividers + stat rows).
   =========================================================== */

:root {
  /* Colour — Fairway palette */
  --paper:          #F3EDE0;
  --paper-2:        #EAE1CE;
  --paper-3:        #E0D5BC;
  --ink:            #2A241A;
  --ink-soft:       #5B5242;
  --ink-xsoft:      #625847;
  --fairway:        #6A1F2B;
  --fairway-deep:   #4E1520;
  --fairway-up:     #85343F;
  --fairway-light:  #963F4B;
  --fairway-mid:    #5C1A25;
  --sand:           #DCCDA8;
  --sand-deep:      #A8893F;
  --flag:           #B43B2F;
  --flag-deep:      #8E2E25;
  --line:           #D6C9AD;
  --line-subtle:    #E3D9C2;
  --line-light:     rgba(245,246,241,.15);

  /* Gold — brand premium accent */
  --gold:           #B08D3C;
  --gold-light:     #D4B96E;
  --gold-deep:      #6E5320;
  --gold-surface:   rgba(165,139,82,.08);
  --gold-border:    rgba(165,139,82,.28);

  /* Scale */
  --radius-xs:  2px;
  --radius-s:   2px;
  --radius-m:   3px;
  --radius-l:   4px;
  --radius-xl:  6px;
  --radius-pill:999px;

  /* Shadow — elevation system */
  --shadow-xs: 0 0 0 rgba(0,0,0,0);
  --shadow-s: 0 0 0 rgba(0,0,0,0);
  --shadow-m: 0 0 0 rgba(0,0,0,0);
  --shadow-l: 0 0 0 rgba(0,0,0,0);
  --shadow-xl: 0 0 0 rgba(0,0,0,0);
  --shadow-hover: 0 0 0 rgba(0,0,0,0);

  /* Motion — derived from a golf swing's three phases:
     address (settle into a hover, unhurried), impact (decisive, slight
     overshoot on click/active), follow-through (slower decay on exit,
     the part most interfaces skip entirely) */
  --ease-address:       cubic-bezier(.25,.1,.25,1);
  --ease-impact:        cubic-bezier(.34,1.32,.4,1);
  --ease-follow:        cubic-bezier(.16,1,.3,1);
  --ease:               cubic-bezier(.16,.84,.44,1);
  --ease-out:           cubic-bezier(0,0,.2,1);
  --trans-fast:         150ms cubic-bezier(.16,.84,.44,1);
  --trans-base:         240ms cubic-bezier(.16,.84,.44,1);
  --trans-slow:         400ms cubic-bezier(.16,.84,.44,1);
  /* Signature hover/exit pair — use together: quick settle in,
     unhurried release out. This asymmetry is the brand's motion fingerprint. */
  --trans-in:           220ms cubic-bezier(.25,.1,.25,1);
  --trans-out:          560ms cubic-bezier(.16,1,.3,1);

  /* Layout */
  --container: 1200px;
  --gutter:    32px;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }

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

body {
  font-family:'Instrument Sans', system-ui, -apple-system, sans-serif;
  background:var(--paper);
  color:var(--ink);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

a { color:inherit; text-decoration:none; }
ul, ol { list-style:none; }
img, svg { display:block; max-width:100%; }
button { font:inherit; cursor:pointer; background:none; border:none; }

:focus-visible { outline:2px solid var(--fairway); outline-offset:3px; }

h1, h2, h3, .h1, .h2, .h3 { color:var(--ink); }
h1, .h1 { font-family:'EB Garamond', sans-serif; font-weight:500; line-height:1.18; letter-spacing:-0.022em; }
h2, .h2 { font-family:'EB Garamond', sans-serif; font-weight:500; line-height:1.05; letter-spacing:-0.018em; }
h3, .h3 { font-family:'EB Garamond', sans-serif; font-weight:500; line-height:1.12; letter-spacing:-0.01em; }
h2, .h2 { font-size:clamp(2rem, 2.4vw + 1rem, 2.8rem); }
h3, .h3 { font-size:1.35rem; }

.mono { font-family:'Instrument Sans', monospace; }
.text-soft { color:var(--ink-soft); }
.text-xsoft { color:var(--ink-xsoft); }

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

.skip-link {
  position:absolute; left:-9999px; top:0;
  background:var(--ink); color:var(--paper);
  padding:10px 16px; z-index:300; border-radius:0 0 var(--radius-s) 0;
}
.skip-link:focus { left:0; top:0; }

section { padding:88px 0; scroll-margin-top:96px; }
main > section + section,
main > .page-hero + section { border-top:1px solid var(--line-subtle); }

.eyebrow {
  font-family:'Instrument Sans', monospace;
  font-size:0.75rem; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--fairway); margin-bottom:14px; display:flex; align-items:center; gap:8px;
}
.eyebrow::before { content:""; width:5px; height:5px; border-radius:50%; background:var(--gold); flex:none; }
.eyebrow-light { color: rgba(245,246,241,.72); }
.eyebrow-light::before { background:var(--gold-light); }
.hero .eyebrow { color:var(--sand); }
.hero .eyebrow::before { display:none; }

.section-header { max-width:640px; margin-bottom:48px; }
.section-header p:not(.eyebrow) { color:var(--ink-soft); font-size:1.05rem; margin-top:14px; }

/* ledger divider: scorecard-style rule with tick marks, used between dense content blocks */
.ledger { display:flex; align-items:center; gap:14px; color:var(--ink-soft); font-size:0.75rem; letter-spacing:.08em; margin:40px 0; }
.ledger::before, .ledger::after { content:""; flex:1; height:1px; background:var(--line); }

/* ---------- buttons ---------- */
.btn {
  display:inline-flex; align-items:center; gap:8px;
  padding:13px 26px; border-radius:var(--radius-m);
  font-weight:600; font-size:0.92rem;
  border:1.5px solid transparent;
  transition: background var(--trans-out), color var(--trans-out), border-color var(--trans-out), transform var(--trans-out), box-shadow var(--trans-out);
  white-space:nowrap;
  cursor:pointer;
  user-select:none;
}
.btn:hover {
  transition: background var(--trans-in), color var(--trans-in), border-color var(--trans-in), transform var(--trans-in), box-shadow var(--trans-in);
}
.btn:active { transform:scale(.97) !important; transition-duration:90ms !important; }
.btn-primary { background:var(--fairway); color:var(--paper); box-shadow:var(--shadow-s); }
.btn-primary:hover { background:var(--fairway-deep); transform:translateY(-2px); box-shadow:var(--shadow-m); }
.btn-ghost { border-color:rgba(20,32,27,.25); color:var(--ink); background:transparent; }
.btn-ghost:hover { border-color:var(--fairway); color:var(--fairway); transform:translateY(-2px); }
.btn-light { background:var(--paper); color:var(--ink); box-shadow:var(--shadow-s); }
.btn-light:hover { background:var(--sand); transform:translateY(-2px); box-shadow:var(--shadow-m); }
.btn-flag { background:var(--flag); color:var(--paper); box-shadow:var(--shadow-s); }
.btn-flag:hover { background:var(--flag-deep); transform:translateY(-2px); box-shadow:var(--shadow-m); }
.btn-sm { padding:9px 18px; font-size:0.82rem; border-radius:var(--radius-s); }
.btn:disabled { opacity:.45; cursor:default; transform:none !important; box-shadow:none !important; }

/* ---------- ball-marker icon (logo + rating unit) ---------- */
.marker-mark { flex:none; }
.marker-mark path.half   { fill:rgba(31,58,46,.18); }
.marker-mark circle.ring { fill:none; stroke:#1F3A2E; stroke-width:2.8; }
.marker-mark circle.dot  { fill:#C9A84C; }

.marker-row { display:flex; gap:5px; align-items:center; }
.marker-row .marker-mark { width:16px; height:16px; }
.marker-unit { color:var(--line); }
.marker-unit.is-filled { color:var(--flag); }

/* ---------- nav ---------- */
.nav {
  position:sticky; top:0; z-index:200;
  background:rgba(245,246,241,.94);
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(218,223,211,.6);
  transition:box-shadow var(--trans-base);
}
.nav.is-scrolled { box-shadow:var(--shadow-s); }
.nav-inner { display:flex; align-items:center; justify-content:space-between; height:72px; gap:24px; }
.logo       { display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--ink); }
.logo .marker-mark { width:22px; height:22px; }
.logo-block { display:inline-block; vertical-align:middle; }
.logo-name  { display:block; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.15rem; letter-spacing:.01em; line-height:1.15; color:var(--ink); }
.logo-tag   { display:block; font-family:Georgia,serif; font-size:0.75rem; font-weight:400; font-style:italic; color:var(--ink-xsoft); letter-spacing:.04em; line-height:1.3; margin-top:2px; }

.nav-links { display:flex; align-items:center; gap:4px; font-size:0.88rem; font-weight:500; color:var(--ink); }
.nav-links > li { position:relative; }
.nav-links > li > a:not(.nav-cta) { padding:9px 12px; border-radius:var(--radius-s); display:inline-flex; align-items:center; gap:6px; transition:background var(--trans-fast), color var(--trans-fast); color:var(--ink-soft); }
.nav-links > li > a:not(.nav-cta):hover, .nav-links a.is-active { background:var(--paper-2); color:var(--fairway); }
.nav-icon { width:15px; height:15px; flex-shrink:0; stroke:currentColor; fill:none; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; opacity:.75; }
.nav-links > li > a:hover .nav-icon, .nav-links a.is-active .nav-icon { opacity:1; }
.nav-cta { background:var(--fairway); color:var(--paper) !important; padding:9px 20px; border-radius:var(--radius-m); font-weight:600; font-size:.85rem; transition:background var(--trans-fast), box-shadow var(--trans-fast), transform var(--trans-fast); box-shadow:var(--shadow-s); }
.nav-cta:hover { background:var(--fairway-deep) !important; box-shadow:var(--shadow-m); transform:translateY(-1px); }
.nav-cta.is-active { background:var(--fairway-deep); box-shadow:var(--shadow-m); }
.caret { width:8px; height:8px; border-right:1.5px solid currentColor; border-bottom:1.5px solid currentColor; transform:rotate(45deg) translateY(-2px); transition:transform .2s; }
.has-dropdown:hover .caret, .has-dropdown.is-open .caret { transform:rotate(225deg) translateY(2px); }

.dropdown {
  position:absolute; top:calc(100% + 10px); left:0; min-width:252px;
  background:white; border:1px solid var(--line);
  border-radius:var(--radius-m);
  box-shadow:var(--shadow-xl);
  padding:8px; opacity:0; visibility:hidden;
  transform:translateY(8px) scale(.98);
  transform-origin:top left;
  transition:opacity var(--trans-base), transform var(--trans-base), visibility var(--trans-base);
}
.has-dropdown:hover .dropdown, .has-dropdown.is-open .dropdown { opacity:1; visibility:visible; transform:translateY(0) scale(1); }
.dropdown a { display:flex; flex-direction:column; align-items:flex-start; text-align:left; gap:2px; padding:10px 12px; border-radius:var(--radius-s); }
.dropdown a:hover { background:var(--paper-2); }
.dropdown a span.dd-title { font-weight:600; font-size:0.92rem; }
.dropdown a span.dd-sub { font-size:0.75rem; color:var(--ink-soft); line-height:1.4; }
.dropdown-divider { height:1px; background:var(--line-subtle); margin:6px 5px; }
.nav-active-link .dd-title { color:var(--fairway); font-weight:700; }

.nav-toggle { display:none; flex-direction:column; gap:5px; width:30px; padding:8px; }
.nav-toggle span { display:block; width:100%; height:2px; background:var(--ink); transition:transform .25s var(--ease), opacity .25s var(--ease); }
.nav-toggle.is-open span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2) { opacity:0; }
.nav-toggle.is-open span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }

/* ---------- hero (home) ---------- */
.hero { position:relative; overflow:hidden; padding:64px 0 52px; background:var(--fairway); color:var(--paper); margin-top:-1px; }
.hero::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    repeating-linear-gradient(90deg, rgba(18,38,32,.12) 0 1px, transparent 1px 120px),
    repeating-linear-gradient(180deg, rgba(18,38,32,.05) 0 1px, transparent 1px 120px);
}
.hero-inner { position:relative; padding-bottom:32px; }
.hero-top { display:flex; align-items:center; justify-content:space-between; gap:48px; }
.hero-copy { flex:1; max-width:560px; display:flex; flex-direction:column; justify-content:space-between; }
.hero-mark-wrap {
  flex:none;
  flex-shrink:0;
  width:300px;
  height:300px;
  border-radius:50%;
  overflow:hidden;
  box-shadow:0 20px 48px rgba(0,0,0,0.35), 0 6px 16px rgba(0,0,0,0.2);
  border:4px solid rgba(31,58,46,0.4);
  outline:2px solid rgba(245,240,232,0.15);
}
.hero-logo-img {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.09);
  transform-origin:center center;
  display:block;
}
@media (max-width:960px) { .hero-mark-wrap { display:none; } .hero-right-col { display:none; } }
.hero-copy h1 { font-size:clamp(2.8rem, 5vw + 1rem, 5.4rem); margin-bottom:20px; color:var(--paper); letter-spacing:-0.022em; }
.hero .btn-primary { background:var(--paper); color:var(--fairway); box-shadow:0 4px 18px rgba(0,0,0,.2); }
.hero .btn-primary:hover { background:var(--gold-light); transform:translateY(-2px); box-shadow:0 8px 28px rgba(0,0,0,.25); }
.hero .btn-ghost { border-color:rgba(245,240,232,.55); color:var(--paper); }
.hero .btn-ghost:hover { border-color:var(--paper); background:rgba(245,240,232,.12); transform:translateY(-2px); }
.btn-ghost-light { border-color:rgba(245,240,232,.55); color:var(--paper); }
.btn-ghost-light:hover { border-color:var(--paper); background:rgba(245,240,232,.12); transform:translateY(-2px); }
.hero-tagline {
  font-family:Georgia,serif;
  font-size:clamp(1.05rem,1.4vw + .6rem,1.35rem);
  color:var(--sand);
  font-style:italic;
  margin:0 0 24px;
  letter-spacing:.01em;
  opacity:.92;
}
.hero-sub { font-size:1.05rem; color:rgba(245,240,232,.68); max-width:52ch; margin-bottom:36px; line-height:1.7; }
.hero-actions { display:flex; gap:16px; flex-wrap:wrap; }
.beyond-stamp {
  display:inline-block;
  font-family:Georgia,serif;
  font-size:0.75rem;
  letter-spacing:.22em;
  color:var(--gold-deep);
  margin-top:10px;
  text-transform:uppercase;
  font-style:italic;
}

/* ---------- generic page hero (sub-pages) ---------- */
.page-hero { padding:68px 0 56px; position:relative; background-color:var(--paper); border-bottom:1px solid var(--line-subtle); min-height:460px; display:flex; align-items:flex-end; }
.page-hero::before {
  content:''; position:absolute; inset:0; pointer-events:none; z-index:0;
  background-image:repeating-linear-gradient(
    90deg, transparent, transparent 56px,
    rgba(31,58,46,0.03) 56px, rgba(31,58,46,0.03) 112px
  );
}
.page-hero .wrap { position:relative; z-index:1; }
.page-hero .wrap { display:flex; flex-wrap:wrap; gap:40px; justify-content:space-between; align-items:flex-end; }
.page-hero-copy { max-width:640px; }
.page-hero h1 { font-size:clamp(2.4rem, 3.6vw + 1rem, 3.8rem); margin-bottom:16px; letter-spacing:-0.025em; }
.page-hero p { color:var(--ink-soft); font-size:1.08rem; }
.page-hero-aside { font-family:'Instrument Sans',monospace; font-size:0.78rem; color:var(--ink-soft); border-left:2px solid var(--gold); padding-left:18px; max-width:260px; line-height:2.1; letter-spacing:.01em; }
/* Dark page hero — mirrors the app's 6 dark screens */
.page-hero-dark {
  background:var(--fairway-deep);
  border-bottom:1px solid rgba(201,168,76,.12);
}
.page-hero-dark::before {
  background-image:repeating-linear-gradient(
    90deg, transparent, transparent 52px,
    rgba(245,246,241,.025) 52px, rgba(245,246,241,.025) 104px
  );
}
.page-hero-dark h1 { color:var(--paper); }
.page-hero-dark p  { color: rgba(245,246,241,.72); }
.page-hero-dark .eyebrow { color:var(--gold-light); }
.page-hero-dark .eyebrow::before { background:var(--gold); }
.page-hero-dark .page-hero-aside {
  color: rgba(245,246,241,.72);
  border-left-color:var(--gold);
}


/* ---------- badges ---------- */
.badge {
  display:inline-flex; align-items:center; gap:6px;
  font-family:'Instrument Sans'; font-size:0.75rem; letter-spacing:.06em; text-transform:uppercase;
  padding:4px 9px; border-radius:var(--radius-xs); border:1px solid currentColor;
}
.badge-public   { color:var(--fairway); }
.badge-private  { color:var(--fairway-deep); }
.badge-premium  { color:var(--flag); }
.badge-range    { color:var(--sand-deep); }
.badge-sim      { color:var(--fairway-up); }
.badge-neutral  { color:var(--ink-soft); }
.badge-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:14px; }

/* ---------- generic card grid ---------- */
.card-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:26px; }
.card-grid-2 { display:grid; grid-template-columns:repeat(2, 1fr); gap:26px; }
.card-grid-4 { display:grid; grid-template-columns:repeat(4, 1fr); gap:22px; }

.tile {
  position:relative; background:white; border:1px solid var(--line);
  border-radius:var(--radius-m);
  padding:28px 26px;
  box-shadow:var(--shadow-xs);
  transition:border-color var(--trans-base), transform var(--trans-base), box-shadow var(--trans-base);
}
.tile:hover { border-color:rgba(31,58,46,.25); transform:translateY(-3px); box-shadow:var(--shadow-m); }
.tile h3 { margin:10px 0 10px; }
.tile p { color:var(--ink-soft); font-size:0.96rem; }
.tile .tile-link { margin-top:16px; display:inline-flex; align-items:center; gap:6px; font-weight:600; font-size:0.88rem; color:var(--fairway); transition:gap var(--trans-fast); }

/* ---------- filter bar (reused on learn/drills/apparel/marketplace) ---------- */
.filter-bar { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:36px; }

/* --- city territory switcher --- */
.city-switcher { display:flex; flex-wrap:wrap; gap:0; border-bottom:2px solid var(--line); margin-bottom:44px; }
.city-tab {
  font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.92rem; letter-spacing:.04em;
  padding:12px 22px; border:none; background:none; cursor:pointer; color:var(--ink-soft);
  border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .2s, border-color .2s;
}
.city-tab:hover { color:var(--fairway); }
.city-tab.is-active { color:var(--fairway); border-bottom-color:var(--fairway); }
.city-panel { display:none; }
.section-empty-note { display:none; color:var(--ink-soft); font-size:0.9rem; margin-bottom:24px; }
.learn-empty { display:none; color:var(--ink-soft); font-size:0.9rem; margin:0 0 24px; }

/* --- drill level switcher (same visual as city-tab but primary accent) --- */
.level-switcher { display:flex; flex-wrap:wrap; gap:0; border-bottom:2px solid var(--line); margin-bottom:36px; }
.level-tab {
  font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.9rem; letter-spacing:.04em;
  padding:12px 22px; border:none; background:none; cursor:pointer; color:var(--ink-soft);
  border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .2s, border-color .2s;
  display:flex; align-items:center; gap:8px;
}
.level-tab .level-badge { font-size:0.75rem; padding:2px 8px; border-radius:20px; background:var(--paper-3); color:var(--ink-soft); font-family:'Instrument Sans',monospace; transition:background .2s, color .2s; }
.level-tab:hover { color:var(--fairway); }
.level-tab.is-active { color:var(--fairway); border-bottom-color:var(--fairway); }
.level-tab.is-active .level-badge { background:var(--fairway); color:var(--paper); }
.level-panel { display:none; }
.level-panel.is-active { display:block; }

/* --- drill save button --- */
.save-btn { display:inline-flex; align-items:center; gap:5px; border:none; background:none; cursor:pointer; padding:4px 8px; border-radius:var(--radius-s); color:var(--ink-soft); font-size:0.78rem; font-family:'Instrument Sans',monospace; letter-spacing:.04em; transition:color .2s, background .2s; }
.save-btn:hover { background:var(--paper-3); color:var(--fairway); }
.save-btn.is-saved { color:var(--fairway); }
.save-btn.is-saved svg { fill:var(--fairway); }
.save-btn svg { width:14px; height:14px; transition:fill .2s; }
.drill-card-head-row { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; }

/* --- My Drill Box --- */
.my-drill-box { background:var(--paper-2); border:1.5px solid var(--fairway); border-radius:var(--radius-m); overflow:hidden; margin-bottom:44px; }
.my-drill-box-head { background:var(--fairway-mid); color:var(--paper); padding:14px 22px; display:flex; align-items:center; justify-content:space-between; }
.my-drill-box-head h3 { margin:0; font-size:1rem; color:var(--paper); }
.my-drill-box-head .count-tag { font-family:'Instrument Sans',monospace; font-size:0.75rem; opacity:.75; }
.my-drill-box-empty { padding:24px; color:var(--ink-soft); font-size:0.9rem; text-align:center; }
.my-drill-list { padding:14px 18px; display:flex; flex-direction:column; gap:10px; }
.my-drill-item { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 14px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-s); }
.my-drill-item-info { display:flex; flex-direction:column; gap:3px; }
.my-drill-item-name { font-weight:600; font-size:0.9rem; }
.my-drill-item-meta { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.my-drill-item-actions { display:flex; gap:8px; }

/* --- range routine cards --- */
.routine-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; margin-bottom:28px; }
.routine-card-head { padding:20px 24px 16px; border-bottom:1px solid var(--line); background:var(--paper-2); display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.routine-card-head-left { flex:1; }
.routine-card-head .routine-tag { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway); text-transform:uppercase; letter-spacing:.07em; }
.routine-card-head h3 { margin:8px 0 4px; font-size:1.25rem; }
.routine-card-head p { color:var(--ink-soft); font-size:0.88rem; margin:0; }
.routine-card-body { padding:22px 24px; }
.routine-phases { display:flex; flex-direction:column; gap:0; }
.routine-phase { display:grid; grid-template-columns:80px 1fr; gap:16px; padding:14px 0; border-bottom:1px dashed var(--line); align-items:start; }
.routine-phase:last-child { border-bottom:none; }
.phase-balls { display:flex; flex-direction:column; align-items:center; justify-content:center; background:var(--fairway); color:var(--paper); border-radius:var(--radius-s); padding:10px 4px; min-width:60px; }
.phase-balls .ball-num { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.5rem; line-height:1; }
.phase-balls .ball-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.06em; opacity:.75; }
.phase-content h4 { font-size:0.95rem; margin:0 0 4px; }
.phase-content p { font-size:0.85rem; color:var(--ink-soft); margin:0; line-height:1.5; }
.routine-total { display:flex; align-items:center; gap:10px; margin-top:20px; padding:14px 16px; background:var(--paper-3); border-radius:var(--radius-s); }
.routine-total .total-num { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.8rem; color:var(--fairway); line-height:1; }
.routine-total p { font-size:0.85rem; color:var(--ink-soft); margin:0; }
.routine-note { margin-top:14px; padding:12px 16px; background:var(--paper-2); border-left:3px solid var(--sand-deep); border-radius:0 var(--radius-s) var(--radius-s) 0; font-size:0.85rem; color:var(--ink-soft); }

.filter-pill {
  font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.04em;
  padding:8px 16px; border:1px solid var(--line); border-radius:var(--radius-pill);
  color:var(--ink-soft); background:white;
  transition:background var(--trans-fast), color var(--trans-fast), border-color var(--trans-fast), box-shadow var(--trans-fast);
}
.filter-pill:hover { border-color:var(--fairway); color:var(--fairway); }
.filter-pill.is-active { background:var(--fairway); border-color:var(--fairway); color:var(--paper); box-shadow:0 2px 8px rgba(31,58,46,.2); }

/* ---------- stat row (scorecard-style numbers) ---------- */
.stat-row { display:grid; grid-template-columns:repeat(auto-fit, minmax(140px,1fr)); gap:0; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.stat { padding:22px 20px; border-left:1px solid var(--line); }
.stat:first-child { border-left:none; }
.stat-num { font-family:'EB Garamond',sans-serif; font-size:2.8rem; font-weight:500; color:var(--fairway); line-height:1; letter-spacing:-0.02em; }
.stat-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-xsoft); margin-top:8px; }

/* ---------- closing CTA banner ---------- */
.cta-banner { background:var(--fairway); color:var(--paper); border-top:1px solid rgba(255,255,255,.05) !important; }
.cta-banner.reveal { padding:72px 0; }
.cta-banner.reveal:not(.is-visible) { overflow:visible; }
.cta-banner h2 { color:var(--paper); }
.cta-banner .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:28px; }
.cta-banner p { color: rgba(245,246,241,.72); max-width:44ch; }
.cta-copy { max-width:560px; }

/* ---------- footer ---------- */
.footer { border-top:1px solid var(--line-subtle); padding:52px 0 40px; background:var(--paper); }
.footer-inner { display:flex; flex-wrap:wrap; justify-content:space-between; gap:28px; }
.footer-brand p { color:var(--ink-soft); font-size:0.9rem; margin-top:10px; max-width:280px; }
.footer-cols { display:flex; gap:48px; flex-wrap:wrap; }
.footer-col h4 { font-family:'Instrument Sans'; font-size:0.75rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); margin-bottom:12px; }
.footer-col a, .footer-col span { display:block; font-size:0.92rem; padding:4px 0; color:var(--ink); }
.footer-col a:hover { color:var(--fairway); }
.footer-bottom { margin-top:36px; padding-top:24px; border-top:1px solid var(--line-subtle); display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:0.82rem; color:var(--ink-xsoft); }

/* ---------- reveal on scroll — uses the same follow-through curve as hover release ---------- */
.reveal { opacity:0; transform:translateY(18px); transition:opacity var(--trans-out), transform var(--trans-out); }
.reveal.is-visible { opacity:1; transform:translateY(0); }
.reveal-stagger > * { opacity:0; transform:translateY(18px); transition:opacity var(--trans-out), transform var(--trans-out); }
.reveal-stagger.is-visible > * { opacity:1; transform:translateY(0); }
.reveal-stagger.is-visible > *:nth-child(1) { transition-delay:0ms; }
.reveal-stagger.is-visible > *:nth-child(2) { transition-delay:70ms; }
.reveal-stagger.is-visible > *:nth-child(3) { transition-delay:140ms; }
.reveal-stagger.is-visible > *:nth-child(4) { transition-delay:210ms; }
.reveal-stagger.is-visible > *:nth-child(5) { transition-delay:280ms; }
.reveal-stagger.is-visible > *:nth-child(6) { transition-delay:350ms; }
.reveal-stagger.is-visible > *:nth-child(7) { transition-delay:420ms; }
@media (prefers-reduced-motion: reduce) {
  .reveal, .reveal-stagger > * { opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ===========================================================
   PAGE-SPECIFIC COMPONENTS
   =========================================================== */

/* ---------- home: scorecard strip (signature nav-as-scorecard) ---------- */
.scorecard { border:1px solid var(--ink); border-radius:var(--radius-m); overflow:hidden; background:var(--paper); }
.scorecard-row { display:grid; grid-template-columns:repeat(7, 1fr); }
.scorecard-cell {
  position:relative; padding:22px 16px 20px; border-left:1px solid var(--line);
  background:var(--paper); color:var(--ink);
  transition:background var(--trans-out), box-shadow var(--trans-out);
}
.scorecard-cell:first-child { border-left:none; }
.scorecard-cell:hover {
  background:var(--paper-2); z-index:1; box-shadow:inset 0 -2px 0 var(--fairway);
  transition:background var(--trans-in), box-shadow var(--trans-in);
}
.scorecard-cell .hole-num { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft) !important; }
.scorecard-cell .hole-name { font-family:'EB Garamond'; font-weight:500; font-size:1.15rem; margin:10px 0 6px; color:var(--ink) !important; }
.scorecard-cell .hole-par { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--fairway) !important; }
.scorecard-cell svg.hole-icon { width:26px; height:26px; color:var(--fairway) !important; margin-bottom:8px; }

/* ---------- home: NCR strip / why section ---------- */
.ncr-grid { display:grid; grid-template-columns:1.1fr 0.9fr; gap:56px; align-items:start; }
.ncr-list { display:flex; flex-direction:column; gap:22px; }
.ncr-item { display:flex; gap:16px; }
.ncr-item .num { font-family:'EB Garamond'; font-size:1.8rem; color:var(--line); font-weight:500; flex:none; width:46px; }
.ncr-item h3 { font-size:1.1rem; margin-bottom:4px; }
.ncr-item p { color:var(--ink-soft); font-size:0.95rem; }

/* ---------- learn: directory cards ---------- */
.directory-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.directory-card {
  border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper);
  padding:26px 24px; transition:border-color var(--trans-out), transform var(--trans-out);
}
.directory-card:hover { border-color:rgba(31,58,46,.2); transform:translateY(-3px); box-shadow:var(--shadow-m); }
.directory-card .area-tag { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; }
.directory-card h3 { margin:8px 0 10px; font-size:1.25rem; }
.directory-card p { color:var(--ink-soft); font-size:0.92rem; margin-bottom:6px; }
.directory-card .facts { margin-top:14px; padding-top:14px; border-top:1px solid var(--line); display:flex; flex-direction:column; gap:6px; font-family:'Instrument Sans'; font-size:0.78rem; color:var(--ink-soft); }
.directory-card .facts strong { color:var(--ink); font-weight:600; }

.access-key { display:flex; flex-wrap:wrap; gap:18px; padding:18px 22px; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-m); margin-bottom:36px; font-size:0.88rem; }
.access-key .key-item { display:flex; align-items:center; gap:8px; }
.section-empty-note, #learnEmpty { display:none; font-family:'Instrument Sans'; font-size:0.85rem; color:var(--ink-soft); padding:18px 0; }
.directory-section + .directory-section { margin-top:48px; }
.directory-section-head { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-bottom:20px; flex-wrap:wrap; }
.directory-section-head h3 { font-size:1.4rem; }
.directory-section-head .count-tag { font-family:'Instrument Sans'; font-size:0.78rem; color:var(--ink-soft); }

/* ---------- drills ---------- */
.drill-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:24px; }
.drill-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); padding:0; overflow:hidden; transition:border-color var(--trans-out), transform var(--trans-out); display:flex; flex-direction:column; }
.drill-card:hover { border-color:rgba(31,58,46,.2); transform:translateY(-3px); box-shadow:var(--shadow-m); transition:border-color var(--trans-in), transform var(--trans-in); }
.drill-card-head { padding:20px 22px 16px; border-bottom:1px solid var(--line); background:var(--paper-2); }
.drill-card-head .cat-tag { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--fairway); text-transform:uppercase; letter-spacing:.07em; }
.drill-card-head h3 { margin:8px 0 4px; font-size:1.2rem; }
.drill-meta { display:flex; gap:14px; font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); margin-top:8px; }
.drill-card-body { padding:18px 22px 22px; flex:1; display:flex; flex-direction:column; }
.drill-card-body .objective { color:var(--ink-soft); font-size:0.9rem; margin-bottom:14px; }
.drill-steps { display:flex; flex-direction:column; gap:9px; counter-reset:step; flex:1; }
.drill-steps li { display:flex; gap:10px; font-size:0.88rem; }
.drill-steps li::before { counter-increment:step; content:counter(step); font-family:'Instrument Sans'; font-size:0.75rem; color:var(--paper); background:var(--fairway); width:18px; height:18px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex:none; margin-top:1px; }
.drill-why { margin-top:14px; padding-top:14px; border-top:1px dashed var(--line-subtle); font-size:0.82rem; color:var(--fairway); font-style:italic; }
.drill-tip { margin-top:12px; padding:11px 14px; background:var(--gold-surface); border:1px solid var(--gold-border); border-radius:var(--radius-s); }
.drill-tip-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--gold-deep); letter-spacing:.08em; text-transform:uppercase; display:block; margin-bottom:4px; }
.drill-tip p { font-size:0.8rem; color:var(--ink); line-height:1.55; margin:0; max-width:none; }

/* Membership-tier drill gating preview */
.tier-preview { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:16px 20px; margin-bottom:28px; display:flex; flex-wrap:wrap; align-items:center; gap:14px 18px; }
.tier-preview-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); letter-spacing:.07em; text-transform:uppercase; }
.tier-preview-pills { display:flex; flex-wrap:wrap; gap:8px; }
.tier-pill { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.85rem; padding:7px 16px; border-radius:100px; border:1.5px solid var(--line); background:var(--paper); color:var(--ink-soft); cursor:pointer; transition:all var(--trans-out); }
.tier-pill:hover { border-color:var(--fairway-up); color:var(--fairway); }
.tier-pill.is-active { background:var(--fairway); border-color:var(--fairway); color:var(--paper); }
.tier-preview-note { font-size:0.82rem; color:var(--ink-soft); flex-basis:100%; }
.tier-preview-note a { color:var(--fairway); font-weight:600; }

.drill-card.is-locked { position:relative; }
.drill-card.is-locked .drill-card-body { filter:blur(3px); user-select:none; pointer-events:none; opacity:.55; }
.drill-lock-overlay { position:absolute; inset:0; top:auto; bottom:0; height:calc(100% - 78px); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:20px; text-align:center; background:linear-gradient(180deg, rgba(245,246,241,0) 0%, var(--paper) 38%); }
.drill-lock-icon { width:34px; height:34px; border-radius:50%; background:var(--fairway); color:var(--gold-light); display:flex; align-items:center; justify-content:center; font-size:1rem; }
.drill-lock-text { font-size:0.85rem; color:var(--ink); font-weight:600; max-width:22ch; }
.drill-lock-cta { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.82rem; color:var(--fairway); text-decoration:underline; text-underline-offset:2px; }
.drill-actions { margin-top:14px; }

/* --- drill video embed --- */
.drill-video { position:relative; border-top:1px solid var(--line); background:#000; aspect-ratio:16/9; cursor:pointer; overflow:hidden; }
.drill-video img { width:100%; height:100%; object-fit:cover; opacity:.85; display:block; transition:opacity .2s; }
.drill-video:hover img { opacity:.7; }
.drill-video .play-btn { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; pointer-events:none; }
.drill-video .play-btn svg { filter:drop-shadow(0 2px 8px rgba(0,0,0,.6)); transition:transform .2s; }
.drill-video:hover .play-btn svg { transform:scale(1.1); }
.drill-video .video-label { position:absolute; bottom:10px; left:12px; font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.06em; color:#fff; opacity:.7; pointer-events:none; }
.drill-video iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }

/* ---------- etiquette: rules list + trainers ---------- */
.rule-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:36px 48px; }
.rule-item { display:flex; gap:16px; }
.rule-item .rule-icon { flex:none; width:38px; height:38px; border-radius:50%; background:var(--paper-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; color:var(--fairway); }
.rule-item .rule-icon svg { width:18px; height:18px; }
.rule-item h3 { font-size:1.05rem; margin-bottom:4px; }
.rule-item p { color:var(--ink-soft); font-size:0.92rem; }

.step-flow { display:grid; grid-template-columns:repeat(4, 1fr); gap:0; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.step-flow .step { padding:24px 20px; border-left:1px solid var(--line); position:relative; }
.step-flow .step:first-child { border-left:none; }
.step-flow .step .step-num { font-family:'EB Garamond'; font-size:2rem; color:var(--line); font-weight:500; }
.step-flow .step h3 { font-size:1rem; margin:8px 0 6px; }
.step-flow .step p { font-size:0.86rem; color:var(--ink-soft); }

.trainer-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:24px; }
.trainer-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); padding:24px; transition:border-color .25s; }
.trainer-card:hover { border-color:var(--fairway); }
.trainer-top { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:10px; }
.trainer-card h3 { font-size:1.15rem; }
.trainer-card .trainer-loc { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); margin-top:3px; }
.trainer-card .trainer-bio { color:var(--ink-soft); font-size:0.9rem; margin:10px 0 14px; }
.trainer-creds { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:16px; }
.trainer-rating { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; border-top:1px solid var(--line); }
.rate-prompt { font-family:'Instrument Sans'; font-size:0.76rem; color:var(--ink-soft); }
.rate-input { display:flex; gap:4px; }
.rate-input button { background:none; border:none; cursor:pointer; color:var(--line); padding:2px; transition:color .15s; }
.rate-input button.is-on, .rate-input button:hover { color:var(--flag); }
.rate-thanks { font-size:0.78rem; color:var(--fairway); font-family:'Instrument Sans'; display:none; }
.rate-thanks.is-shown { display:inline; }

/* ---------- community: events, players, handicap tool ---------- */
.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.event-card { border:1px solid var(--line); border-radius:var(--radius-m); padding:22px; background:var(--paper); display:flex; flex-direction:column; gap:12px; transition:border-color var(--trans-out), transform var(--trans-out); }
.event-card:hover { border-color:rgba(31,58,46,.2); transform:translateY(-3px); box-shadow:var(--shadow-m); transition:border-color var(--trans-in), transform var(--trans-in); }
.event-date { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--flag); text-transform:uppercase; letter-spacing:.05em; }
.event-card h3 { font-size:1.1rem; }
.event-venue { color:var(--ink-soft); font-size:0.88rem; }
.event-spots { display:flex; align-items:center; gap:10px; margin-top:auto; padding-top:10px; }
.spots-bar { flex:1; height:6px; background:var(--line); border-radius:var(--radius-xs); overflow:hidden; }
.spots-fill { height:100%; background:var(--fairway); border-radius:var(--radius-xs); }
.spots-text { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); white-space:nowrap; }

.player-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.player-card { border:1px solid var(--line); border-radius:var(--radius-m); padding:20px; text-align:center; background:var(--paper); }
.player-avatar { width:54px; height:54px; border-radius:50%; background:var(--paper-2); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; margin:0 auto 12px; font-family:'EB Garamond'; font-weight:500; color:var(--fairway); font-size:1.1rem; }
.player-card h3 { font-size:1rem; margin-bottom:2px; }
.player-hcp { font-family:'Instrument Sans'; font-size:0.78rem; color:var(--flag); margin-bottom:6px; }
.player-status { font-size:0.8rem; color:var(--ink-soft); }

.handicap-tool { border:1px solid var(--ink); border-radius:var(--radius-m); background:var(--paper); padding:30px 28px; }
.handicap-tool .tool-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.field label { display:block; font-family:'Instrument Sans'; font-size:0.75rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin-bottom:8px; }
.field input, .field select {
  width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:var(--radius-s);
  font-family:'Inter'; font-size:0.95rem; background:var(--paper); color:var(--ink);
}
.field input:focus, .field select:focus { border-color:var(--fairway); box-shadow:0 0 0 3px rgba(31,58,46,.1); outline:none; }
.tool-result { margin-top:18px; padding:20px; background:var(--paper-2); border-radius:var(--radius-m); display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.tool-result .result-num { font-family:'EB Garamond'; font-size:2.8rem; color:var(--fairway); font-weight:500; line-height:1; }
.tool-result .result-label { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); max-width:280px; }

/* ---------- apparel / marketplace: product cards ---------- */
.product-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:22px; }
.product-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; transition:border-color var(--trans-out), transform var(--trans-out); }
.product-card:hover { border-color:rgba(31,58,46,.2); transform:translateY(-3px); box-shadow:var(--shadow-m); transition:border-color var(--trans-in), transform var(--trans-in); }
.product-art { height:150px; }
.product-art-1 { background:linear-gradient(135deg, var(--fairway) 0%, var(--fairway-up) 100%); }
.product-art-2 { background:linear-gradient(135deg, var(--sand-deep) 0%, var(--sand) 100%); }
.product-art-3 { background:linear-gradient(135deg, var(--ink) 0%, #34433c 100%); }
.product-art-4 { background:linear-gradient(135deg, var(--line) 0%, var(--paper-3) 100%); }
.product-body { padding:18px 18px 20px; display:flex; flex-direction:column; flex:1; gap:6px; }
.product-cat { font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.05em; }
.product-card h3 { font-size:1.02rem; }
.product-desc { color:var(--ink-soft); font-size:0.85rem; flex:1; }
.product-foot { display:flex; align-items:center; justify-content:space-between; margin-top:10px; }
.product-price { font-family:'Instrument Sans'; font-weight:600; font-size:0.95rem; }

.listing-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); padding:22px; transition:border-color var(--trans-out), transform var(--trans-out); }
.listing-card:hover { border-color:rgba(31,58,46,.2); transform:translateY(-3px); box-shadow:var(--shadow-m); transition:border-color var(--trans-in), transform var(--trans-in); }
.listing-top { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.listing-price { font-family:'EB Garamond'; font-weight:500; font-size:1.5rem; color:var(--fairway); white-space:nowrap; }
.listing-card h3 { font-size:1.08rem; margin:8px 0 6px; }
.listing-card p { color:var(--ink-soft); font-size:0.88rem; }
.listing-meta { display:flex; gap:14px; margin-top:14px; padding-top:14px; border-top:1px solid var(--line); font-family:'Instrument Sans'; font-size:0.75rem; color:var(--ink-soft); flex-wrap:wrap; }

.season-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.season-card { padding:24px; border-radius:var(--radius-m); border:1px solid var(--line); }
.season-card h3 { font-size:1.1rem; margin-bottom:8px; }
.season-card p { color:var(--ink-soft); font-size:0.9rem; }


/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width: 1080px) {
  .card-grid-4, .product-grid { grid-template-columns:repeat(3,1fr); }
  .player-grid { grid-template-columns:repeat(3,1fr); }
  .scorecard-row { grid-template-columns:repeat(4,1fr); }
  .scorecard-cell:nth-child(5) { border-left:none; }
  .scorecard-cell:nth-child(n+5) { border-top:1px solid var(--line); }
  .step-flow { grid-template-columns:repeat(2,1fr); }
  .step-flow .step:nth-child(3) { border-left:none; }
  .step-flow .step:nth-child(3), .step-flow .step:nth-child(4) { border-top:1px solid var(--line); }
}

@media (max-width: 980px) {
  .card-grid, .card-grid-2, .directory-grid, .drill-grid, .event-grid, .rule-grid, .trainer-grid, .season-grid { grid-template-columns:repeat(2,1fr); }
  .ncr-grid { grid-template-columns:1fr; }
  .handicap-tool .tool-grid { grid-template-columns:1fr 1fr; }
  .page-hero .wrap { align-items:flex-start; }
}

@media (max-width: 760px) {
  .nav-links {
    position:fixed; inset:72px 0 0 0;
    background:rgba(245,246,241,.97);
    backdrop-filter:blur(16px);
    overflow-y:auto;
    flex-direction:column; align-items:stretch; padding:16px; gap:4px; color:var(--ink);
    transform:translateX(100%); transition:transform var(--trans-slow);
  }
  .nav-links.is-open { transform:translateX(0); }
  .nav-links > li { width:100%; }
  .nav-links a:not(.nav-cta) { width:100%; padding:14px 12px; }
  .nav-cta { display:inline-flex; justify-content:center; margin-top:8px; }
  .dropdown { position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; display:none; margin-top:4px; }
  .has-dropdown.is-open .dropdown { display:block; }
  .nav-toggle { display:flex; }

  .card-grid, .card-grid-2, .card-grid-4, .directory-grid, .drill-grid, .event-grid, .rule-grid,
  .trainer-grid, .product-grid, .player-grid, .season-grid { grid-template-columns:1fr; }
  .scorecard-row { grid-template-columns:repeat(2,1fr); }
  .scorecard-cell:nth-child(odd) { border-left:none; }
  .scorecard-cell:nth-child(n+3) { border-top:1px solid var(--line); }
  .step-flow { grid-template-columns:1fr; }
  .step-flow .step { border-left:none; border-top:1px solid var(--line); }
  .step-flow .step:first-child { border-top:none; }
  .handicap-tool .tool-grid { grid-template-columns:1fr; }
  .stat-row { grid-template-columns:1fr 1fr; }
  .stat:nth-child(even) { border-left:1px solid var(--line); }
  .stat:nth-child(odd) { border-left:none; }

  section { padding:64px 0; }
  .hero { padding:48px 0 40px; }
  .page-hero { padding:48px 0 40px; min-height:340px; }
  .page-hero-aside { border-left:none; border-top:2px solid var(--gold); padding-left:0; padding-top:14px; }
  .cta-banner .wrap { flex-direction:column; align-items:flex-start; }
}

/* ===== ETIQUETTE ENCYCLOPEDIA COMPONENTS ===== */

/* quick-jump anchor bar */
.quick-jump { display:flex; flex-wrap:wrap; gap:8px; padding:18px 0; border-bottom:1px solid var(--line); margin-bottom:48px; }
.quick-jump a { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.05em; color:var(--fairway); border:1px solid var(--line); padding:5px 13px; border-radius:20px; text-decoration:none; transition:background .15s, color .15s, border-color .15s; white-space:nowrap; }
.quick-jump a:hover { background:var(--fairway); color:var(--paper); border-color:var(--fairway); }

/* clubs — two-column card grid */
.club-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-top:28px; }
.club-card { border:1px solid var(--line); border-radius:var(--radius-s); background:var(--paper); overflow:hidden; }
.club-card-head { padding:12px 16px 10px; background:var(--paper-2); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; gap:10px; }
.club-card-head h4 { margin:0; font-size:1rem; }
.club-num { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); background:var(--paper-3); border-radius:var(--radius-s); padding:2px 8px; }
.club-card-body { padding:12px 16px 14px; }
.club-card-body p { font-size:0.85rem; color:var(--ink-soft); margin:0 0 8px; line-height:1.5; }
.club-yards { font-family:'Instrument Sans',monospace; font-size:0.75rem; display:flex; gap:14px; flex-wrap:wrap; }
.club-yards span { display:flex; align-items:center; gap:5px; }
.club-yards span::before { content:''; width:8px; height:8px; border-radius:50%; flex:none; }
.club-yards .men::before { background:var(--fairway); }
.club-yards .women::before { background:var(--sand-deep); }

/* yardage table */
.enc-table-wrap { overflow-x:auto; margin:28px 0; border-radius:var(--radius-m); border:1px solid var(--line); }
.enc-table { width:100%; border-collapse:collapse; font-size:0.88rem; min-width:480px; }
.enc-table thead th { background:var(--fairway); color:var(--paper); padding:11px 16px; text-align:left; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.88rem; letter-spacing:.02em; white-space:nowrap; }
.enc-table thead th:not(:first-child) { text-align:center; }
.enc-table tbody td { padding:10px 16px; border-bottom:1px solid var(--line); }
.enc-table tbody td:not(:first-child) { text-align:center; font-family:'Instrument Sans',monospace; font-size:0.82rem; }
.enc-table tbody tr:last-child td { border-bottom:none; }
.enc-table tbody tr:nth-child(even) td { background:var(--paper-2); }
.enc-table .club-group { font-size:0.75rem; font-family:'Instrument Sans',monospace; color:var(--ink-soft); text-transform:uppercase; letter-spacing:.06em; display:block; }
.enc-table .divider td { background:var(--fairway-deep) !important; color:var(--paper); padding:6px 16px; font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.07em; text-transform:uppercase; }

/* scoring terms bar */
.score-terms { display:grid; grid-template-columns:repeat(7,1fr); gap:0; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; margin:24px 0; }
.score-term { padding:16px 10px; border-left:1px solid var(--line); text-align:center; }
.score-term:first-child { border-left:none; }
.score-num { font-family:'EB Garamond',sans-serif; font-size:1.8rem; font-weight:500; line-height:1; }
.score-name { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.82rem; margin:4px 0 3px; }
.score-desc { font-size:0.75rem; color:var(--ink-soft); font-family:'Instrument Sans',monospace; }
.score-term.double-eagle .score-num { color:var(--gold-deep); }
.score-term.eagle .score-num { color:var(--gold-deep); }
.score-term.birdie .score-num { color:var(--fairway); }
.score-term.par .score-num { color:var(--ink-soft); }
.score-term.bogey .score-num { color:var(--flag); }
.score-term.double .score-num { color:var(--flag); }
.score-term.triple .score-num { color:var(--flag); }

/* penalty cards */
.penalty-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin:28px 0; }
.penalty-card { border-radius:var(--radius-m); overflow:hidden; border:1px solid var(--line); }
.penalty-card-head { padding:14px 18px; display:flex; align-items:center; gap:14px; }
.penalty-card-head.ob { background:#fff0ef; border-bottom:2px solid var(--flag); }
.penalty-card-head.water-y { background:#f0f5ff; border-bottom:2px solid #5580C9; }
.penalty-card-head.water-r { background:#f5f0ff; border-bottom:2px solid #8A5DC9; }
.penalty-card-head.unplayable { background:#f0f5ef; border-bottom:2px solid var(--fairway-up); }
.penalty-strokes { font-family:'EB Garamond',sans-serif; font-size:2.6rem; font-weight:500; line-height:1; }
.penalty-card-head.ob .penalty-strokes { color:var(--flag); }
.penalty-card-head.water-y .penalty-strokes { color:#5580C9; }
.penalty-card-head.water-r .penalty-strokes { color:#8A5DC9; }
.penalty-card-head.unplayable .penalty-strokes { color:var(--fairway-up); }
.penalty-card-head-text h4 { margin:0 0 2px; font-size:1.05rem; }
.penalty-card-head-text p { margin:0; font-size:0.78rem; color:var(--ink-soft); font-family:'Instrument Sans',monospace; }
.penalty-card-body { padding:16px 18px; }
.penalty-card-body > p { font-size:0.88rem; color:var(--ink-soft); margin:0 0 10px; }
.penalty-card-body ul { padding-left:18px; margin:0; display:flex; flex-direction:column; gap:6px; font-size:0.87rem; }
.penalty-card-body li { color:var(--ink); line-height:1.5; }
.penalty-card-body .stake-legend { display:flex; gap:16px; margin-top:12px; flex-wrap:wrap; }
.stake-pill { display:inline-flex; align-items:center; gap:6px; font-family:'Instrument Sans',monospace; font-size:0.75rem; border-radius:var(--radius-s); padding:3px 10px; }
.stake-pill.white { background:#f0f0f0; color:#444; border:1px solid #ccc; }
.stake-pill.yellow { background:#fffbe0; color:#806600; border:1px solid #c8a800; }
.stake-pill.red { background:#ffe0e8; color:#860030; border:1px solid #c0004a; }
.stake-pill::before { content:''; width:8px; height:8px; border-radius:50%; flex:none; }
.stake-pill.white::before { background:#ddd; border:1px solid #bbb; }
.stake-pill.yellow::before { background:#FFD700; }
.stake-pill.red::before { background:#FF0040; }

/* drop procedure */
.drop-procedure { border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; margin:24px 0; }
.drop-step { display:grid; grid-template-columns:56px 1fr; border-bottom:1px solid var(--line); }
.drop-step:last-child { border-bottom:none; }
.drop-step-num { background:var(--fairway); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:1.8rem; font-weight:500; }
.drop-step-body { padding:14px 18px; }
.drop-step-body h4 { font-size:0.95rem; margin:0 0 4px; }
.drop-step-body p { font-size:0.85rem; color:var(--ink-soft); margin:0; line-height:1.5; }

/* glossary */
.glossary-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:24px 0; }
.glossary-card { border:1px solid var(--line); border-radius:var(--radius-s); padding:14px 16px; background:var(--paper); }
.glossary-term { display:flex; align-items:center; gap:8px; margin-bottom:6px; }
.glossary-term strong { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.05rem; color:var(--fairway-deep); }
.glossary-abbr { font-family:'Instrument Sans',monospace; font-size:0.75rem; background:var(--fairway); color:var(--paper); padding:2px 7px; border-radius:var(--radius-s); }
.glossary-card p { font-size:0.82rem; color:var(--ink-soft); margin:0; line-height:1.55; }

/* first round tips */
.tip-list { display:flex; flex-direction:column; gap:0; border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; margin:24px 0; }
.tip-item { display:flex; align-items:flex-start; gap:16px; padding:16px 20px; border-bottom:1px solid var(--line); }
.tip-item:last-child { border-bottom:none; }
.tip-icon { flex:none; width:36px; height:36px; background:var(--paper-2); border:1px solid var(--line); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.1rem; }
.tip-item h4 { font-size:0.95rem; margin:0 0 3px; }
.tip-item p { font-size:0.85rem; color:var(--ink-soft); margin:0; line-height:1.5; }

/* responsive enc */
@media (max-width:980px) {
  .club-grid { grid-template-columns:repeat(2,1fr); }
  .score-terms { grid-template-columns:repeat(4,1fr); }
  .penalty-grid { grid-template-columns:1fr; }
  .glossary-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px) {
  .club-grid { grid-template-columns:1fr; }
  .score-terms { grid-template-columns:repeat(2,1fr); }
  .score-term { border-top:1px solid var(--line); }
  .score-term:first-child { border-top:none; }
  .score-term:nth-child(odd) { border-left:none; }
  .glossary-grid { grid-template-columns:1fr; }
}

/* ===== AFFILIATE INTEGRATION STYLES ===== */
.aff-disclosure {
  display:flex; align-items:flex-start; gap:10px; padding:12px 18px;
  background:#fffbe0; border:1px solid #c8a800; border-radius:var(--radius-s);
  font-size:0.78rem; color:#705d00; margin-bottom:28px; line-height:1.5;
}
.aff-disclosure strong { color:#504300; }
.aff-disclosure svg { flex:none; margin-top:1px; }

.aff-link-row { display:flex; gap:6px; flex-wrap:wrap; margin-top:10px; }
.shop-brand-btn {
  display:inline-flex; align-items:center; gap:4px; padding:5px 11px;
  border:1.5px solid var(--line); border-radius:var(--radius-s);
  font-size:0.75rem; font-weight:500; font-family:'EB Garamond',sans-serif;
  color:var(--fairway); background:var(--paper-2); text-decoration:none;
  transition:background .15s, border-color .15s, color .15s; white-space:nowrap;
}
.shop-brand-btn:hover { background:var(--fairway); color:var(--paper); border-color:var(--fairway); }
.shop-brand-btn .ext-arr { opacity:.6; font-size:0.8rem; }
.brand-attr { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); margin-bottom:4px; letter-spacing:.04em; }

.aff-brand-strip {
  display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:32px 0;
  padding:24px; background:var(--paper-2); border:1px solid var(--line);
  border-radius:var(--radius-m);
}
.aff-brand-card { text-align:center; padding:16px 12px; background:var(--paper); border:1px solid var(--line); border-radius:var(--radius-s); }
.aff-brand-card .brand-name { font-family:'EB Garamond',sans-serif; font-size:1.25rem; font-weight:500; color:var(--fairway-deep); margin-bottom:4px; }
.aff-brand-card p { font-size:0.8rem; color:var(--ink-soft); margin:0 0 14px; line-height:1.4; }
.aff-brand-card .btn { width:100%; display:block; text-align:center; }

.buy-new-btn {
  display:inline-flex; align-items:center; gap:5px; padding:8px 14px;
  background:var(--paper-2); border:1.5px solid var(--fairway); border-radius:var(--radius-s);
  font-size:0.8rem; font-weight:500; font-family:'EB Garamond',sans-serif;
  color:var(--fairway); text-decoration:none; transition:background .15s, color .15s;
}
.buy-new-btn:hover { background:var(--fairway); color:var(--paper); }
.buy-new-label { font-size:0.75rem; font-family:'Instrument Sans',monospace; color:var(--ink-soft); margin-top:4px; }

@media (max-width:760px) {
  .aff-brand-strip { grid-template-columns:1fr; }
}

/* ===== LEAGUES PAGE ===== */

/* league card */
.league-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:28px; }
.league-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; }
.league-card-head { padding:18px 22px 14px; border-bottom:1px solid var(--line); background:var(--paper-2); }
.league-card-head-top { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px; }
.league-card-head h3 { font-size:1.1rem; margin:0 0 3px; }
.league-sub { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.league-status { font-family:'Instrument Sans',monospace; font-size:0.75rem; font-weight:600; letter-spacing:.05em; padding:3px 10px; border-radius:var(--radius-s); white-space:nowrap; flex:none; }
.ls-active { background:#e6f5ec; color:#1a6b36; border:1px solid #a5d6b5; }
.ls-open { background:#fff8e0; color:#6b4f00; border:1px solid #d4a900; }
.ls-upcoming { background:#e8f2ff; color:#1a4080; border:1px solid #a5c4f0; }
.ls-completed { background:var(--paper-3); color:var(--ink-soft); border:1px solid var(--line); }
.league-meta { display:flex; flex-wrap:wrap; gap:10px; }
.league-meta-item { font-size:0.8rem; color:var(--ink-soft); display:flex; align-items:center; gap:5px; }
.league-card-body { padding:16px 22px; flex:1; }
.league-card-body p { font-size:0.88rem; color:var(--ink-soft); margin:0 0 12px; line-height:1.55; }
.league-tags { display:flex; flex-wrap:wrap; gap:6px; }
.league-tag { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); border:1px solid var(--line); color:var(--ink-soft); background:var(--paper-2); }
.league-card-foot { padding:14px 22px; border-top:1px solid var(--line); display:flex; align-items:center; gap:10px; flex-wrap:wrap; }

/* team card */
.board-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:24px; }
.team-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s, box-shadow .2s; }
.team-card:hover { border-color:rgba(60,107,82,.35); box-shadow:var(--shadow-m); }
.team-card-head { padding:14px 18px 12px; background:var(--paper-2); border-bottom:1px solid var(--line); }
.team-card-head-top { display:flex; align-items:flex-start; justify-content:space-between; gap:8px; margin-bottom:4px; }
.team-card-head h3 { font-size:1rem; margin:0; }
.team-card-head .league-ref { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway-up); }
.spots-visual { display:flex; gap:4px; margin:8px 0; }
.spot-dot { width:10px; height:10px; border-radius:50%; }
.spot-dot.filled { background:var(--fairway); }
.spot-dot.open { background:var(--paper-3); border:1.5px solid var(--line); }
.spot-dot.open.highlight { border-color:var(--fairway); background:#e6f5ec; }
.spots-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.team-card-body { padding:14px 18px; flex:1; }
.team-card-body p { font-size:0.82rem; color:var(--ink-soft); margin:0 0 10px; line-height:1.5; }
.team-badges { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.badge-sponsor-want { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:#fff8e0; color:#6b4f00; border:1px solid #d4a900; }
.badge-spots { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:#e6f5ec; color:#1a6b36; border:1px solid #a5d6b5; }
.team-stat-row { display:flex; gap:12px; flex-wrap:wrap; margin-bottom:10px; }
.team-stat { font-size:0.8rem; }
.team-stat strong { color:var(--fairway-deep); font-family:'Instrument Sans',monospace; font-size:0.75rem; display:block; }
.team-card-foot { padding:12px 18px; border-top:1px solid var(--line); display:flex; gap:8px; flex-wrap:wrap; }

/* player card */
.player-board-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); padding:16px 20px; display:flex; gap:16px; align-items:flex-start; }
.player-board-card .player-avatar { width:42px; height:42px; border-radius:50%; background:var(--fairway); color:var(--paper); display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:1.1rem; font-weight:500; flex:none; }
.player-board-card h4 { font-size:0.95rem; margin:0 0 4px; }
.player-meta-row { display:flex; gap:10px; flex-wrap:wrap; margin:6px 0; }
.player-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); border:1px solid var(--line); background:var(--paper-2); color:var(--ink-soft); }
.player-board-card p { font-size:0.82rem; color:var(--ink-soft); margin:0 0 8px; }
.player-board-list { display:flex; flex-direction:column; gap:12px; margin-top:24px; }

/* sponsor card */
.sponsor-board-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:24px; }
.sponsor-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; }
.sponsor-card-head { padding:14px 20px 12px; border-bottom:1px solid var(--line); display:flex; align-items:center; gap:14px; }
.sponsor-type-badge { font-family:'Instrument Sans',monospace; font-size:0.75rem; font-weight:600; padding:3px 9px; border-radius:var(--radius-s); }
.stb-seeker { background:#e0efff; color:#1a3a6b; border:1px solid #a5c0e8; }
.stb-offerer { background:#fff0e8; color:#6b3000; border:1px solid #e8b080; }
.sponsor-card-head h4 { font-size:1rem; margin:0 0 2px; }
.sponsor-card-head .sponsor-ask-num { font-family:'EB Garamond',sans-serif; font-size:1.3rem; font-weight:500; color:var(--fairway); }
.sponsor-card-body { padding:14px 20px 18px; }
.sponsor-detail { display:flex; flex-direction:column; gap:8px; margin-bottom:12px; }
.sponsor-row { font-size:0.83rem; display:flex; gap:8px; }
.sponsor-row-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); width:90px; flex:none; padding-top:1px; }
.sponsor-row-val { color:var(--ink); line-height:1.45; }

/* board tabs */
.board-tabs { display:flex; flex-wrap:wrap; gap:0; border-bottom:2px solid var(--line); margin-bottom:36px; }
.board-tab { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.88rem; letter-spacing:.04em; padding:12px 20px; border:none; background:none; cursor:pointer; color:var(--ink-soft); border-bottom:3px solid transparent; margin-bottom:-2px; transition:color .2s, border-color .2s; display:flex; align-items:center; gap:8px; }
.board-tab:hover { color:var(--fairway); }
.board-tab.is-active { color:var(--fairway); border-bottom-color:var(--fairway); }
.board-tab .tab-count { font-family:'Instrument Sans',monospace; font-size:0.75rem; background:var(--paper-3); border-radius:var(--radius-s); padding:1px 7px; transition:background .2s, color .2s; }
.board-tab.is-active .tab-count { background:var(--fairway); color:var(--paper); }
.board-panel { display:none; }
.board-panel.is-active { display:block; }

/* AI match panel */
.ai-match-form { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:28px 32px; margin-bottom:28px; }
.ai-match-form h3 { font-size:1.15rem; margin-bottom:6px; }
.ai-match-form > p { color:var(--ink-soft); font-size:0.9rem; margin-bottom:22px; }
.ai-match-type-row { display:flex; gap:10px; margin-bottom:20px; flex-wrap:wrap; }
.ai-type-btn { padding:9px 20px; border:1.5px solid var(--line); border-radius:var(--radius-s); font-size:0.88rem; font-weight:500; font-family:'EB Garamond',sans-serif; cursor:pointer; background:var(--paper); transition:all .15s; }
.ai-type-btn.is-active { border-color:var(--fairway); background:var(--fairway); color:var(--paper); }
.ai-result-card { border:1.5px solid var(--fairway); border-radius:var(--radius-m); overflow:hidden; margin-bottom:16px; }
.ai-result-head { background:var(--fairway-mid); color:var(--paper); padding:12px 18px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.ai-result-head h4 { margin:0; font-size:1rem; color:var(--paper); }
.ai-match-pct { font-family:'EB Garamond',sans-serif; font-size:1.5rem; font-weight:500; color:var(--paper); }
.ai-result-body { padding:16px 18px; }
.ai-result-body p { font-size:0.88rem; color:var(--ink-soft); margin:0 0 10px; line-height:1.5; }

/* register / list forms */
.form-overlay-bg { position:fixed; inset:0; background:rgba(20,32,27,.55); z-index:200; display:none; align-items:center; justify-content:center; padding:20px; }
.form-overlay-bg.is-open { display:flex; }
.form-overlay { background:var(--paper); border-radius:var(--radius-m); width:100%; max-width:560px; max-height:90vh; overflow-y:auto; }
.form-overlay-head { padding:20px 24px 16px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.form-overlay-head h3 { margin:0; font-size:1.1rem; }
.form-overlay-close { width:32px; height:32px; border:none; background:none; cursor:pointer; border-radius:50%; font-size:1.2rem; color:var(--ink-soft); display:flex; align-items:center; justify-content:center; }
.form-overlay-close:hover { background:var(--paper-3); }
.form-overlay-body { padding:22px 24px; display:flex; flex-direction:column; gap:16px; }
.fo-field label { display:block; font-size:0.85rem; font-weight:600; margin-bottom:5px; }
.fo-field input, .fo-field select, .fo-field textarea {
  width:100%; padding:10px 14px; border:1.5px solid var(--line); border-radius:var(--radius-s);
  font-family:'Instrument Sans',sans-serif; font-size:0.92rem; background:var(--paper);
  transition:border-color .2s; box-sizing:border-box;
}
.fo-field input:focus, .fo-field select:focus, .fo-field textarea:focus { border-color:var(--fairway); box-shadow:0 0 0 3px rgba(31,58,46,.08); outline:none; }
.fo-field textarea { resize:vertical; min-height:80px; line-height:1.5; }
.fo-grid2 { display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.fo-note { font-size:0.8rem; color:var(--ink-soft); }
.form-overlay-foot { padding:16px 24px; border-top:1px solid var(--line); display:flex; gap:10px; align-items:center; }

/* board empty state */
.board-empty { text-align:center; padding:44px 24px; border:1.5px dashed var(--line); border-radius:var(--radius-m); color:var(--ink-soft); }
.board-empty svg { opacity:.2; margin-bottom:14px; }
.board-empty h4 { font-size:1.1rem; margin:0 0 8px; }
.board-empty p { font-size:0.88rem; margin:0 auto 18px; max-width:44ch; }

/* posted-by timestamp */
.posted-by { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }

@media (max-width:980px) {
  .league-grid { grid-template-columns:1fr; }
  .board-grid { grid-template-columns:repeat(2,1fr); }
  .sponsor-board-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .board-grid { grid-template-columns:1fr; }
  .fo-grid2 { grid-template-columns:1fr; }
}

/* ===== COACHES MARKETPLACE ===== */

/* filter + search bar */
.coaches-filter-row { display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:32px; }
.coaches-filter-row .filter-bar { margin-bottom:0; }
.coach-search { padding:9px 14px; border:1.5px solid var(--line); border-radius:var(--radius-s); font-family:'Instrument Sans',sans-serif; font-size:0.9rem; background:var(--paper); width:220px; flex:none; transition:border-color .2s; }
.coach-search:focus { border-color:var(--fairway); box-shadow:0 0 0 3px rgba(31,58,46,.08); outline:none; }

/* coach card */
.coach-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-bottom:48px; }
.coach-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s, box-shadow .2s; }
.coach-card:hover { border-color:rgba(60,107,82,.3); box-shadow:var(--shadow-m); transform:translateY(-2px); }
.coach-card[data-featured] { border-color:var(--fairway); }
.coach-card-featured-tag { background:var(--fairway); color:var(--paper); font-family:'Instrument Sans',monospace; font-size:0.75rem; font-weight:600; letter-spacing:.06em; text-align:center; padding:5px; }
.coach-card-head { padding:18px 20px 14px; border-bottom:1px solid var(--line); }
.coach-card-top { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.coach-avatar { width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:1.2rem; font-weight:500; color:var(--paper); flex:none; }
.av-green  { background:var(--fairway); }
.av-teal   { background:var(--fairway-up); }
.av-gold   { background:var(--sand-deep); }
.av-dark   { background:var(--fairway-deep); }
.av-red    { background:var(--flag); }
.av-sage   { background:#57A06A; }
.coach-info h3 { font-size:1rem; margin:0 0 2px; }
.coach-facility { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway-up); }
.coach-location { font-size:0.78rem; color:var(--ink-soft); margin-top:2px; }
.star-row { display:flex; align-items:center; gap:5px; margin-top:4px; }
.stars { color:var(--gold); font-size:0.85rem; letter-spacing:1px; }
.star-count { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.coach-meta-chips { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:10px; }
.cert-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:#e8f5ee; color:#1a5c35; border:1px solid #a5d6b5; }
.exp-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:var(--paper-3); color:var(--ink-soft); border:1px solid var(--line); }
.hcp-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:#fff8e0; color:#6b4f00; border:1px solid #d4a900; }
.specialty-chips { display:flex; flex-wrap:wrap; gap:5px; }
.specialty-chip { font-size:0.75rem; padding:3px 9px; border-radius:var(--radius-s); border:1px solid var(--line); background:var(--paper-2); color:var(--ink-soft); }
.specialty-chip.playing { background:#f0f5ff; color:#1a3a6b; border-color:#a5c0e8; }
.specialty-chip.junior { background:#fff0f5; color:#6b1a2e; border-color:#e8a5b5; }
.specialty-chip.ladies { background:#f5f0ff; color:#3a1a6b; border-color:#c0a5e8; }
.specialty-chip.advanced { background:#f0faf5; color:#1a5c35; border-color:#a5d6b5; }

.coach-card-body { padding:14px 20px; flex:1; }
.coach-card-body p { font-size:0.83rem; color:var(--ink-soft); margin:0 0 12px; line-height:1.5; }
.coach-lessons { display:flex; flex-direction:column; gap:6px; }
.lesson-price-row { display:flex; align-items:center; justify-content:space-between; font-size:0.82rem; padding:5px 10px; background:var(--paper-2); border-radius:var(--radius-s); }
.lesson-price-row .l-name { color:var(--ink-soft); }
.lesson-price-row .l-price { font-family:'EB Garamond',sans-serif; font-size:1rem; font-weight:500; color:var(--fairway); }
.playing-lesson-tag { display:inline-flex; align-items:center; gap:4px; font-family:'Instrument Sans',monospace; font-size:0.75rem; background:var(--flag); color:var(--paper); padding:1px 7px; border-radius:var(--radius-s); margin-left:4px; }

.coach-card-foot { padding:12px 20px; border-top:1px solid var(--line); display:flex; gap:7px; flex-wrap:wrap; }

/* package cards */
.packages-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-bottom:48px; }
.pkg-card { border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; display:flex; flex-direction:column; }
.pkg-head { padding:20px 24px 16px; }
.pkg-head.ph-break90 { background:linear-gradient(135deg,var(--fairway-deep) 0%,var(--fairway) 100%); color:var(--paper); }
.pkg-head.ph-break80 { background:linear-gradient(135deg,#122620 0%,var(--fairway-deep) 100%); color:var(--paper); }
.pkg-head.ph-junior { background:linear-gradient(135deg,#1a3a6b 0%,#4a7cd4 100%); color:var(--paper); }
.pkg-head.ph-ladies { background:linear-gradient(135deg,#3a1a6b 0%,#8a5cd4 100%); color:var(--paper); }
.pkg-label { font-family:'Instrument Sans',monospace; font-size:0.75rem; opacity:.75; letter-spacing:.06em; text-transform:uppercase; }
.pkg-head h3 { margin:6px 0 3px; font-size:1.35rem; color:var(--paper); }
.pkg-head p { margin:0; font-size:0.85rem; opacity:.8; }
.pkg-price-badge { display:inline-block; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.35); border-radius:var(--radius-s); padding:6px 14px; margin-top:10px; font-family:'EB Garamond',sans-serif; font-size:1.5rem; font-weight:500; }
.pkg-body { padding:18px 24px; flex:1; background:var(--paper); }
.pkg-sessions { display:flex; flex-direction:column; gap:7px; margin-bottom:14px; }
.pkg-session { display:flex; align-items:center; gap:10px; font-size:0.85rem; color:var(--ink-soft); }
.pkg-session::before { content:''; width:8px; height:8px; border-radius:50%; flex:none; }
.pkg-session.range::before { background:var(--sand-deep); }
.pkg-session.playing::before { background:var(--fairway); }
.pkg-session.analysis::before { background:var(--fairway-up); }
.pkg-session.mental::before { background:var(--flag); }
.pkg-card-foot { padding:14px 24px; border-top:1px solid var(--line); background:var(--paper-2); }

/* how it works */
.hiw-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:20px; margin-top:28px; }
.hiw-step { text-align:center; }
.hiw-num { width:48px; height:48px; border-radius:50%; background:var(--fairway); color:var(--paper); font-family:'EB Garamond',sans-serif; font-size:1.4rem; font-weight:500; display:flex; align-items:center; justify-content:center; margin:0 auto 12px; }
.hiw-step h4 { font-size:0.95rem; margin:0 0 6px; }
.hiw-step p { font-size:0.82rem; color:var(--ink-soft); margin:0; line-height:1.5; }

/* coach profile modal */
.coach-profile-modal { max-width:680px; max-height:90vh; overflow-y:auto; }
.cpm-head { display:flex; align-items:flex-start; gap:20px; padding:24px 28px 20px; border-bottom:1px solid var(--line); }
.cpm-avatar { width:80px; height:80px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:2rem; font-weight:500; color:var(--paper); flex:none; }
.cpm-head h2 { font-size:1.3rem; margin:0 0 4px; }
.cpm-body { padding:22px 28px; }
.cpm-section { margin-bottom:22px; padding-bottom:22px; border-bottom:1px solid var(--line); }
.cpm-section:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.cpm-section h4 { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.07em; text-transform:uppercase; color:var(--ink-soft); margin:0 0 12px; }
.cpm-section p { font-size:0.88rem; color:var(--ink-soft); margin:0; line-height:1.6; }
.review-item { padding:12px 14px; background:var(--paper-2); border-radius:var(--radius-s); margin-bottom:10px; }
.review-item:last-child { margin-bottom:0; }
.review-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:6px; }
.reviewer { font-weight:600; font-size:0.88rem; }
.review-meta { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.review-item p { font-size:0.83rem; color:var(--ink); margin:0; }

/* booking modal */
.booking-modal { max-width:520px; }
.bm-coach-header { display:flex; align-items:center; gap:14px; padding:16px 24px; background:var(--paper-2); border-bottom:1px solid var(--line); }
.bm-coach-avatar { width:44px; height:44px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:1.1rem; font-weight:500; color:var(--paper); flex:none; }
.bm-coach-header h4 { margin:0 0 2px; font-size:0.95rem; }
.bm-coach-header .bm-facility { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }
.lesson-type-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:6px; }
.lt-btn { padding:10px 8px; border:1.5px solid var(--line); border-radius:var(--radius-s); font-size:0.8rem; font-weight:600; cursor:pointer; background:var(--paper); transition:all .15s; text-align:center; font-family:'EB Garamond',sans-serif; }
.lt-btn.is-active { border-color:var(--fairway); background:var(--fairway); color:var(--paper); }
.lt-btn .lt-price { display:block; font-family:'EB Garamond',sans-serif; font-size:1.05rem; font-weight:500; margin-top:3px; }
.duration-row { display:flex; gap:8px; flex-wrap:wrap; }
.dur-btn { padding:7px 14px; border:1.5px solid var(--line); border-radius:var(--radius-s); font-size:0.82rem; font-weight:600; cursor:pointer; background:var(--paper); transition:all .15s; font-family:'EB Garamond',sans-serif; }
.dur-btn.is-active { border-color:var(--fairway); background:var(--fairway); color:var(--paper); }
.price-breakdown { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:14px 16px; display:flex; flex-direction:column; gap:6px; }
.pb-row { display:flex; justify-content:space-between; font-size:0.85rem; }
.pb-row .pb-label { color:var(--ink-soft); }
.pb-row .pb-val { font-weight:600; font-family:'Instrument Sans',monospace; }
.pb-row.pb-total { border-top:1px solid var(--line); padding-top:8px; margin-top:2px; }
.pb-row.pb-total .pb-label { color:var(--ink); font-weight:700; }
.pb-row.pb-total .pb-val { color:var(--fairway); font-size:1rem; }

/* coach join section */
.coach-join-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; align-items:center; }

@media (max-width:980px) {
  .coach-grid { grid-template-columns:repeat(2,1fr); }
  .packages-grid { grid-template-columns:1fr; }
  .hiw-grid { grid-template-columns:repeat(2,1fr); }
  .coach-join-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .coach-grid { grid-template-columns:1fr; }
  .hiw-grid { grid-template-columns:1fr; }
  .lesson-type-grid { grid-template-columns:1fr; }
}

/* ===== FITTING PAGE ===== */
.fitting-card { border:1px solid var(--line); border-radius:var(--radius-m); background:var(--paper); overflow:hidden; display:flex; flex-direction:column; transition:border-color .2s,box-shadow .2s; }
.fitting-card:hover { border-color:rgba(60,107,82,.3); box-shadow:var(--shadow-m); transform:translateY(-2px); }
.fitting-card[data-featured] { border-color:var(--fairway); }
.fitting-card-featured-tag { background:var(--fairway); color:var(--paper); font-family:'Instrument Sans',monospace; font-size:0.75rem; font-weight:600; letter-spacing:.06em; text-align:center; padding:5px; }
.fitting-card-head { padding:18px 20px 14px; border-bottom:1px solid var(--line); }
.fitting-card-top { display:flex; align-items:flex-start; gap:14px; margin-bottom:12px; }
.fitter-avatar { width:56px; height:56px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'EB Garamond',sans-serif; font-size:1.2rem; font-weight:500; color:var(--paper); flex:none; }
.lm-chips { display:flex; flex-wrap:wrap; gap:5px; margin-bottom:10px; }
.lm-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:#e8f5ee; color:#1a5c35; border:1px solid #a5d6b5; }
.brand-chips { display:flex; flex-wrap:wrap; gap:5px; }
.brand-chip { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 8px; border-radius:var(--radius-s); background:var(--paper-3); color:var(--ink-soft); border:1px solid var(--line); }
.fitting-services-grid { display:grid; grid-template-columns:1fr 1fr; gap:5px; margin-top:10px; }
.fitting-svc { font-size:0.78rem; display:flex; align-items:center; gap:5px; color:var(--ink-soft); }
.fitting-svc::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--fairway); flex:none; }
.fitting-card-body { padding:14px 20px; flex:1; }
.fit-price-row { display:flex; align-items:center; justify-content:space-between; font-size:0.82rem; padding:5px 10px; background:var(--paper-2); border-radius:var(--radius-s); margin-bottom:5px; }
.fit-price-row .fp-name { color:var(--ink-soft); }
.fit-price-row .fp-price { font-family:'EB Garamond',sans-serif; font-size:1rem; font-weight:500; color:var(--fairway); }
.fitting-card-foot { padding:12px 20px; border-top:1px solid var(--line); display:flex; gap:7px; flex-wrap:wrap; }

/* fitting packages */
.fit-pkg-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin-bottom:40px; }
.fit-pkg-card { border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.fit-pkg-head { padding:16px 20px 14px; }
.fit-pkg-head.ph-analysis { background:linear-gradient(135deg,var(--fairway-deep) 0%,var(--fairway) 100%); color:var(--paper); }
.fit-pkg-head.ph-new     { background:linear-gradient(135deg,#122620 0%,var(--fairway-deep) 100%); color:var(--paper); }
.fit-pkg-head.ph-premium { background:linear-gradient(135deg,#B43B2F 0%,#8E2E25 100%); color:var(--paper); }
.fit-pkg-head h3 { margin:5px 0 2px; font-size:1.1rem; color:var(--paper); }
.fit-pkg-head p { margin:0; font-size:0.82rem; opacity:.8; }
.fit-pkg-price { font-family:'EB Garamond',sans-serif; font-size:1.5rem; font-weight:500; display:inline-block; background:rgba(255,255,255,.18); border:1px solid rgba(255,255,255,.3); border-radius:var(--radius-s); padding:4px 12px; margin-top:8px; }
.fit-pkg-body { padding:16px 20px; background:var(--paper); }
.fit-pkg-body ul { list-style:none; padding:0; margin:0 0 12px; display:flex; flex-direction:column; gap:7px; }
.fit-pkg-body ul li { font-size:0.83rem; color:var(--ink-soft); display:flex; gap:8px; }
.fit-pkg-body ul li::before { content:'✓'; color:var(--fairway); font-weight:700; flex:none; }
.fit-pkg-body p { font-size:0.8rem; color:var(--ink-soft); margin:0; font-style:italic; }
.fit-pkg-foot { padding:12px 20px; border-top:1px solid var(--line); background:var(--paper-2); }

/* ===== SERVICE PAGE ===== */
.service-menu-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-bottom:36px; }
.svc-item-card { border:1px solid var(--line); border-radius:var(--radius-m); padding:18px 20px; background:var(--paper); display:flex; flex-direction:column; gap:8px; transition:border-color .2s,box-shadow .2s; cursor:pointer; }
.svc-item-card:hover { border-color:rgba(60,107,82,.3); box-shadow:var(--shadow-m); transform:translateY(-2px); }
.svc-item-card .svc-icon { font-size:1.4rem; }
.svc-item-card h4 { font-size:0.95rem; margin:0; }
.svc-item-card p { font-size:0.8rem; color:var(--ink-soft); margin:0; line-height:1.4; flex:1; }
.svc-price-range { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway); }
.svc-turnaround { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); }

/* Scratch Circle Care subscription */
.care-card { border:2px solid var(--fairway); border-radius:var(--radius-m); overflow:hidden; margin-bottom:40px; position:relative; }
.care-head { background:var(--fairway-mid); padding:22px 28px 18px; }
.care-head .care-eyebrow { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.07em; color: rgba(245,246,241,.72); text-transform:uppercase; }
.care-head h2 { color:var(--paper); font-size:1.6rem; margin:6px 0 4px; }
.care-head p { color:rgba(245,246,241,.8); font-size:0.88rem; margin:0; max-width:48ch; }
.care-head .care-price { font-family:'EB Garamond',sans-serif; font-size:2.4rem; font-weight:500; color:var(--gold); margin-top:14px; line-height:1; letter-spacing:-0.02em; }
.care-head .care-price-sub { font-family:'Instrument Sans',monospace; font-size:0.75rem; color: rgba(245,246,241,.72); }
.care-body { padding:22px 28px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.care-includes h4 { font-size:0.85rem; font-family:'Instrument Sans',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin:0 0 12px; }
.care-includes ul { list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:8px; }
.care-includes ul li { font-size:0.88rem; display:flex; gap:8px; }
.care-includes ul li::before { content:'●'; color:var(--fairway); flex:none; font-size:0.75rem; margin-top:4px; }
.care-math { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-s); padding:16px 18px; }
.care-math h4 { font-size:0.8rem; font-family:'Instrument Sans',monospace; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); margin:0 0 10px; }
.care-math-row { display:flex; justify-content:space-between; font-size:0.83rem; padding:4px 0; border-bottom:1px solid var(--line); }
.care-math-row:last-child { border-bottom:none; padding-top:8px; margin-top:4px; }
.care-math-row .cm-label { color:var(--ink-soft); }
.care-math-row .cm-val { font-family:'Instrument Sans',monospace; font-weight:600; }
.care-math-row.cm-total .cm-label { color:var(--fairway); font-weight:700; }
.care-math-row.cm-total .cm-val { color:var(--fairway); font-size:0.95rem; }
.care-foot { padding:14px 28px; border-top:1px solid var(--line); display:flex; align-items:center; gap:14px; background:var(--paper-2); flex-wrap:wrap; }

/* delivery toggle */
.delivery-toggle-row { display:flex; align-items:center; gap:12px; margin-bottom:24px; padding:14px 18px; background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-s); flex-wrap:wrap; }
.delivery-toggle-row p { font-size:0.85rem; color:var(--ink-soft); margin:0; flex:1; }
.toggle-pill { display:flex; border:1.5px solid var(--line); border-radius:var(--radius-s); overflow:hidden; }
.toggle-pill button { padding:7px 16px; border:none; background:none; font-size:0.82rem; font-weight:600; cursor:pointer; font-family:'EB Garamond',sans-serif; transition:background .15s,color .15s; }
.toggle-pill button.is-active { background:var(--fairway); color:var(--paper); }

/* service provider card */
.svc-provider-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:36px; }
.svc-provider-card { border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; }
.svc-provider-head { padding:16px 20px 12px; background:var(--paper-2); border-bottom:1px solid var(--line); display:flex; gap:14px; align-items:flex-start; }
.svc-provider-head h3 { font-size:1rem; margin:0 0 3px; }
.svc-provider-body { padding:14px 20px 16px; }
.svc-provider-body p { font-size:0.85rem; color:var(--ink-soft); margin:0 0 10px; line-height:1.5; }
.svc-spec-row { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:12px; }

@media (max-width:980px) {
  .fit-pkg-grid { grid-template-columns:1fr 1fr; }
  .service-menu-grid { grid-template-columns:repeat(2,1fr); }
  .care-body { grid-template-columns:1fr; }
  .svc-provider-grid { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .fit-pkg-grid { grid-template-columns:1fr; }
  .service-menu-grid { grid-template-columns:1fr; }
  .fitting-services-grid { grid-template-columns:1fr; }
}

/* ===== TRAVEL PAGE ===== */
.dest-hero-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:44px; }
.dest-hero-card {
  border-radius:var(--radius-m); overflow:hidden; cursor:pointer; position:relative;
  aspect-ratio:3/4; display:flex; flex-direction:column; justify-content:flex-end;
  padding:16px 14px; transition:transform .2s, box-shadow .2s; border:2px solid transparent;
}
.dest-hero-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-l); }
.dest-hero-card.is-active { border-color:var(--paper); box-shadow:0 12px 32px rgba(0,0,0,.25); }
.dest-hero-card .dest-flag { font-size:2rem; margin-bottom:8px; }
.dest-hero-card .dest-name { font-family:'EB Garamond',sans-serif; font-size:1.15rem; font-weight:500; color:#fff; line-height:1.1; }
.dest-hero-card .dest-courses { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:rgba(255,255,255,.7); margin-top:5px; }
.dest-hero-card .dest-best-time { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:rgba(255,255,255,.55); margin-top:3px; }
.dest-active-indicator { position:absolute; bottom:0; left:50%; transform:translateX(-50%); width:0; height:0; border-left:8px solid transparent; border-right:8px solid transparent; border-bottom:8px solid var(--paper-2); display:none; }
.dest-hero-card.is-active .dest-active-indicator { display:block; }

/* destination gradients */
.dg-cambodia  { background:linear-gradient(160deg,#7B4A10 0%,#C4831E 60%,#E6A832 100%); }
.dg-srilanka  { background:linear-gradient(160deg,#1a4a28 0%,#2E7D46 60%,#3DAA5E 100%); }
.dg-thailand  { background:linear-gradient(160deg,#3B0E6E 0%,#6B2FA0 60%,#9B5DD4 100%); }
.dg-vietnam   { background:linear-gradient(160deg,#0A3A5A 0%,#116B8E 60%,#1AA0C8 100%); }
.dg-dubai     { background:linear-gradient(160deg,#1A1820 0%,#5A4200 60%,#A87B00 100%); }

/* destination content panels */
.dest-panel { display:none; }
.dest-panel.is-active { display:block; }
.dest-panel-inner { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-m); overflow:hidden; margin-bottom:36px; }
.dest-panel-head { padding:24px 28px 20px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:20px; align-items:start; }
.dest-panel-head h2 { font-size:1.45rem; margin:0 0 8px; }
.dest-panel-head p { font-size:0.9rem; color:var(--ink-soft); margin:0; line-height:1.65; max-width:60ch; }
.dest-trip-meta { display:flex; flex-direction:column; gap:8px; align-items:flex-end; }
.dest-meta-pill { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:4px 10px; border-radius:var(--radius-s); white-space:nowrap; }
.dmp-duration { background:#e6f5ec; color:#1a5c35; border:1px solid #a5d6b5; }
.dmp-price    { background:#fff8e0; color:#6b4f00; border:1px solid #d4a900; }
.dmp-season   { background:#e8f2ff; color:#1a4080; border:1px solid #a5c4f0; }
.dmp-flights  { background:var(--paper-3); color:var(--ink-soft); border:1px solid var(--line); }

/* course grid within destination */
.travel-courses-section { padding:22px 28px; border-bottom:1px solid var(--line); }
.travel-courses-section h3 { font-size:1rem; margin:0 0 16px; }
.travel-course-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.travel-course-card { border:1px solid var(--line); border-radius:var(--radius-s); background:var(--paper); overflow:hidden; }
.tcourse-head { height:6px; }
.tcourse-body { padding:12px 14px 14px; }
.tcourse-body h4 { font-size:0.9rem; margin:0 0 3px; }
.tcourse-designer { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-soft); margin-bottom:6px; }
.tcourse-body p { font-size:0.8rem; color:var(--ink-soft); margin:0 0 8px; line-height:1.45; }
.tcourse-fee { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway); }
.tcourse-badge { font-family:'Instrument Sans',monospace; font-size:0.75rem; padding:2px 7px; border-radius:var(--radius-s); border:1px solid var(--line); background:var(--paper-2); color:var(--ink-soft); margin-top:5px; display:inline-block; }

/* itinerary */
.itinerary-section { padding:22px 28px; }
.itinerary-section h3 { font-size:1rem; margin:0 0 16px; }
.itinerary-timeline { display:flex; flex-direction:column; gap:0; }
.itin-day { display:grid; grid-template-columns:88px 1fr; gap:0; position:relative; }
.itin-day-left { padding:0 16px 20px 0; display:flex; flex-direction:column; align-items:center; }
.itin-day-num { font-family:'EB Garamond',sans-serif; font-size:0.8rem; font-weight:500; color:var(--fairway); background:var(--paper-2); border:1.5px solid var(--fairway); border-radius:var(--radius-s); padding:4px 8px; text-align:center; white-space:nowrap; }
.itin-day-line { flex:1; width:1.5px; background:var(--line); margin-top:8px; }
.itin-day:last-child .itin-day-line { display:none; }
.itin-day-right { padding-bottom:20px; }
.itin-day-right h4 { font-size:0.88rem; margin:0 0 3px; }
.itin-day-right p { font-size:0.8rem; color:var(--ink-soft); margin:0; line-height:1.5; }
.itin-golf-badge { display:inline-flex; align-items:center; gap:4px; font-family:'Instrument Sans',monospace; font-size:0.75rem; background:var(--fairway); color:var(--paper); padding:2px 8px; border-radius:var(--radius-s); margin-top:5px; }

/* group travel */
.group-travel-card { border:1.5px solid var(--fairway); border-radius:var(--radius-m); overflow:hidden; margin-bottom:40px; display:grid; grid-template-columns:1fr 1fr; }
.gtc-left { background:var(--fairway-mid); padding:28px 28px; color:var(--paper); }
.gtc-left h2 { color:var(--paper); font-size:1.4rem; margin:0 0 8px; }
.gtc-left p { color:rgba(245,246,241,.8); font-size:0.88rem; margin:0 0 20px; line-height:1.6; max-width:36ch; }
.gtc-left ul { list-style:none; padding:0; margin:0 0 20px; display:flex; flex-direction:column; gap:7px; }
.gtc-left ul li { font-size:0.85rem; color:rgba(245,246,241,.85); display:flex; gap:8px; }
.gtc-left ul li::before { content:'✓'; font-weight:700; flex:none; }
.gtc-right { padding:28px 28px; background:var(--paper); display:flex; flex-direction:column; justify-content:center; gap:14px; }
.gtc-stat { display:flex; flex-direction:column; gap:3px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.gtc-stat:last-child { border-bottom:none; padding-bottom:0; }
.gtc-stat .stat-num { font-family:'EB Garamond',sans-serif; font-size:1.8rem; font-weight:500; color:var(--fairway); line-height:1; }
.gtc-stat .stat-label { font-size:0.82rem; color:var(--ink-soft); }

@media (max-width:980px) {
  .dest-hero-grid { grid-template-columns:repeat(3,1fr); }
  .travel-course-grid { grid-template-columns:repeat(2,1fr); }
  .group-travel-card { grid-template-columns:1fr; }
}
@media (max-width:640px) {
  .dest-hero-grid { grid-template-columns:repeat(2,1fr); }
  .travel-course-grid { grid-template-columns:1fr; }
  .dest-panel-head { grid-template-columns:1fr; }
  .dest-trip-meta { align-items:flex-start; flex-direction:row; flex-wrap:wrap; }
}

/* Seven-pillar card grid — centred 4+3 layout */
.card-grid-7 { display:flex; flex-wrap:wrap; gap:22px; justify-content:center; }
.card-grid-7 > .tile { flex:0 0 calc(25% - 17px); min-width:220px; }
@media (max-width:980px) {
  .card-grid-7 > .tile { flex:0 0 calc(33.333% - 15px); }
}
@media (max-width:640px) {
  .card-grid-7 > .tile { flex:0 0 100%; }
}

/* scorecard — colour accent bar on each cell (top border by pillar) */
.scorecard-cell:nth-child(1) { border-top:3px solid var(--fairway); }
.scorecard-cell:nth-child(2) { border-top:3px solid var(--sand-deep); }
.scorecard-cell:nth-child(3) { border-top:3px solid #378ADD; }
.scorecard-cell:nth-child(4) { border-top:3px solid var(--flag); }
.scorecard-cell:nth-child(5) { border-top:3px solid #7B7B7B; }
.scorecard-cell:nth-child(6) { border-top:3px solid #7B3FA8; }
.scorecard-cell:nth-child(7) { border-top:3px solid var(--sand-deep); }
/* "front four / back three" divider between cell 4 and 5 */
.scorecard-cell:nth-child(5) { border-left:2px solid var(--fairway); }

/* ── Card typography utilities — single source of truth ──────────────── */
.card-heading    { font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.1rem; line-height:1.2; letter-spacing:-0.008em; }
.card-subheading { font-family:'Inter',sans-serif; font-weight:600; font-size:0.92rem; line-height:1.35; }
.card-label      { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
.card-meta       { font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--ink-xsoft); letter-spacing:.04em; }

/* WhatsApp CTA button */
.btn-wa {
  display:inline-flex; align-items:center; gap:8px;
  padding:10px 20px; border-radius:var(--radius-m);
  background:#25D366; color:white;
  font-weight:600; font-size:0.88rem;
  border:none; cursor:pointer;
  transition:background var(--trans-fast), transform var(--trans-fast), box-shadow var(--trans-fast);
  box-shadow:0 2px 8px rgba(37,211,102,.25);
  text-decoration:none;
}
.btn-wa:hover { background:#128C7E; transform:translateY(-1px); box-shadow:0 4px 14px rgba(37,211,102,.3); }
.btn-wa:active { transform:scale(.98); }

/* ================================================================
   SCRATCH CIRCLE — styles.css additions (June 2026)
   These rules extend the design system. They do NOT override
   any existing rules above.
================================================================ */

/* ── Launch Monitor: shimmer skeleton while React initialises ── */
#lm-app-root:empty {
  min-height: 420px;
  background: var(--fairway-deep);
  border-radius: var(--radius-m);
  position: relative;
  overflow: hidden;
}
#lm-app-root:empty::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255,255,255,.06) 48%,
    rgba(255,255,255,.10) 50%,
    rgba(255,255,255,.06) 52%,
    transparent 100%
  );
  background-size: 200% 100%;
  animation: lm-shimmer 1.6s ease-in-out infinite;
}
@keyframes lm-shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  #lm-app-root:empty::after { animation: none; background: none; }
}

/* ── Filter pills: 44px minimum tap target on mobile ─────────── */
@media (max-width: 760px) {
  .filter-pill {
    min-height: 44px;
    min-width:  44px;
    display:    inline-flex;
    align-items: center;
    padding: 10px 16px;
  }
}

/* ── Prefers-reduced-motion: JS adds .reduce-motion to <html> ── */
.reduce-motion .reveal,
.reduce-motion .reveal.is-visible {
  opacity: 1;
  transform: none;
  transition: none;
}

/* ── Footer legal bar ─────────────────────────────────────────── */
.footer-legal {
  border-top: 1px solid var(--line-subtle);
  padding: 18px 0;
  margin-top: 28px;
}
.footer-legal-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 10px;
}
.footer-legal-copy {
  font-family: 'Instrument Sans', monospace;
  font-size:0.75rem;
  color: var(--ink-xsoft);
}
.footer-legal-links {
  display: flex;
  gap: 20px;
}
.footer-legal-links a {
  font-family: 'Instrument Sans', monospace;
  font-size:0.75rem;
  color: var(--ink-xsoft);
  text-decoration: none;
  transition: color var(--trans-fast);
}
.footer-legal-links a:hover { color: var(--ink-soft); }
@media (max-width: 480px) {
  .footer-legal-inner { flex-direction: column; align-items: flex-start; }
}

/* ══════════════════════════════════════════════════════════════════════════
   Get the app + the app-marketing pages (swing analysis, launch monitor, the app)
   ══════════════════════════════════════════════════════════════════════════ */
.nav-app { font-weight:600; color:var(--fairway); border:1.5px solid var(--fairway); border-radius:var(--radius-pill); padding:7px 16px; }
.nav-app:hover { background:var(--fairway); color:var(--paper); }

.app-cta { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.app-badge { display:inline-flex; align-items:center; gap:10px; background:var(--fairway-deep); color:var(--paper);
  border:1px solid var(--gold-border); border-radius:12px; padding:10px 18px; text-decoration:none;
  transition:transform .2s var(--ease-address), border-color .2s var(--ease-address); }
.app-badge:hover { transform:translateY(-2px); border-color:var(--gold); }
.app-badge svg { width:22px; height:22px; flex:none; fill:var(--gold-light); }
.app-badge small { display:block; font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.06em; text-transform:uppercase; opacity:.7; }
.app-badge strong { display:block; font-family:'EB Garamond',sans-serif; font-size:1.05rem; font-weight:500; line-height:1.1; }
.app-cta-note { flex-basis:100%; margin:4px 0 0; font-size:.82rem; color:var(--ink-soft); line-height:1.5; }
.app-cta-note a { color:var(--fairway); font-weight:600; }
.footer .app-cta { margin-top:14px; }
.footer .app-badge { padding:8px 14px; }

.mk-lead { max-width:62ch; color:var(--ink-soft); line-height:1.75; }
.mk-steps, .mk-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:20px; margin-top:28px; }
.mk-card { background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-m); padding:24px 26px; }
.mk-card h3 { font-family:'EB Garamond',sans-serif; font-size:1.15rem; font-weight:500; color:var(--ink); margin:0 0 8px; }
.mk-card p { margin:0; color:var(--ink-soft); font-size:.92rem; line-height:1.65; }
.mk-card a.mk-more { display:inline-block; margin-top:12px; font-weight:600; font-size:.88rem; color:var(--fairway); }
.mk-step-num { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.1em; color:var(--gold-deep); margin-bottom:10px; display:block; }
.mk-list { list-style:none; padding:0; margin:18px 0 0; display:flex; flex-direction:column; gap:10px; }
.mk-list li { display:flex; gap:10px; align-items:flex-start; color:var(--ink-soft); font-size:.95rem; line-height:1.55; }
.mk-list li::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--gold); flex:none; margin-top:.5em; }
.mk-list strong { color:var(--ink); }
.mk-table { width:100%; border-collapse:collapse; margin-top:24px; font-size:.95rem; }
.mk-table th, .mk-table td { text-align:left; padding:12px 14px; border-bottom:1px solid var(--line); }
.mk-table th { font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); }
.mk-table td:first-child { font-weight:700; color:var(--ink); }
.mk-scroll { overflow-x:auto; }
.mk-note { margin-top:28px; background:var(--gold-surface); border:1px solid var(--gold-border); border-radius:var(--radius-m); padding:18px 22px; color:var(--ink-soft); font-size:.92rem; line-height:1.65; }
.mk-note strong { color:var(--ink); }
.mk-cta-band { background:var(--fairway-deep); color:var(--paper); border-radius:var(--radius-l); padding:44px clamp(24px,5vw,56px); margin-top:56px; }
.mk-cta-band h2 { color:var(--paper); margin:0 0 10px; }
.mk-cta-band p { color:rgba(245,246,241,.7); max-width:56ch; line-height:1.7; margin:0 0 22px; }
.mk-cta-band .app-cta-note, .mk-cta-band .app-cta-note a { color:rgba(245,246,241,.7); }
.mk-cta-band .app-cta-note a { text-decoration:underline; }
.mk-hero-cta { margin-top:26px; }

/* nav + hero refinements for the new "Get the app" pieces */
.nav-app, .nav-cta { white-space:nowrap; }
.nav-app { font-size:.85rem; padding:7px 14px; }
@media (min-width:761px) and (max-width:1100px) { .nav-links > li > a.nav-app { display:none; } }   /* the hero + footer carry the app buttons at this width */
@media (max-width:760px) { .nav-links > li > a.nav-app { display:inline-flex; justify-content:center; border-radius:var(--radius-m); margin-top:8px; } }
.page-hero-dark .app-cta-note { color:rgba(245,246,241,.7); }
.page-hero-dark .app-cta-note a { color:var(--gold-light); text-decoration:underline; }
.footer .app-cta-note { display:none; }

/* ── Launch pass additions ───────────────────────────────────────────── */
.mk-badge { display:inline-block; margin-left:8px; padding:2px 8px; border-radius:20px; background:rgba(201,168,76,.18); color:var(--gold-deep); font-family:'Instrument Sans',monospace; font-size:0.75rem; letter-spacing:.08em; text-transform:uppercase; vertical-align:middle; }

/* ── Launch audit fixes ──────────────────────────────────────────────── */
/* C1: a backdrop-filter on the header makes it the containing block for the fixed mobile menu, which then
   collapses to the header's height. No blur on the header on phones, and a 44px menu button. */
@media (max-width: 760px) {
  .nav { backdrop-filter:none; -webkit-backdrop-filter:none; background:var(--paper); }
  .nav-toggle { width:44px; height:44px; padding:0 9px; justify-content:center; }
}
@media (max-width: 760px) {
  .nav-links .nav-cta { width:100%; padding:14px 20px; }
  .has-dropdown > a { cursor:pointer; }
  .has-dropdown .dropdown a { padding:12px 14px; }
}
/* H1: the badge sits inside .footer-col, whose link rule made its text the page's dark ink */
.footer .app-badge { display:inline-flex; color:var(--paper); padding:8px 14px; }
.footer .app-badge span { display:block; padding:0; color:inherit; }   /* .footer-col span (the "Based in" line) was also catching the badge's inner span */
.footer .app-badge small { opacity:.85; }
/* M1: four cards sit two by two, or four across on wide screens, never three and one */
.mk-grid-4 { grid-template-columns:repeat(2,1fr); }
@media (min-width: 1100px) { .mk-grid-4 { grid-template-columns:repeat(4,1fr); } }
@media (max-width: 640px) { .mk-grid-4 { grid-template-columns:1fr; } }

/* ---------- plans page (moved from membership.html) ---------- */
.tier-card {background:var(--paper); border:1.5px solid var(--line); border-radius:var(--radius-l); overflow:hidden; display:flex; flex-direction:column;}
.tier-card-top {height:3px; background:var(--fairway);}
.tier-card-top.gradient {background:linear-gradient(90deg,var(--fairway),var(--gold));}
.tier-card-top.gold {background:var(--gold);}
.tier-card-body {padding:28px 28px 24px; flex:1; display:flex; flex-direction:column;}
.tier-identity {font-size:0.8rem; color:var(--ink-soft); font-style:italic; margin-bottom:10px;}
.tier-name {font-family:'EB Garamond',sans-serif; font-size:2rem; font-weight:500; color:var(--fairway); line-height:1; margin-bottom:6px;}
.tier-price-main {font-family:'EB Garamond',sans-serif; font-size:1.6rem; font-weight:500; color:var(--ink); line-height:1;}
.tier-price-unit {font-size:0.8rem; color:var(--ink-soft); font-weight:400; font-family:'Instrument Sans',sans-serif;}
.tier-save {font-family:'Instrument Sans',monospace; font-size:0.75rem; color:var(--fairway); letter-spacing:.06em; margin-top:4px; display:none;}
.tier-sub {font-size:0.83rem; color:var(--ink-soft); line-height:1.5; margin:12px 0 16px;}
.tier-outcome {background:rgba(31,58,46,.05); border-radius:8px; padding:10px 14px; margin-bottom:16px; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.9rem; color:var(--fairway);}
.tier-list {list-style:none; display:flex; flex-direction:column; gap:9px; margin:0 0 18px; padding:0; flex:1;}
.tier-list li {display:flex; gap:10px; align-items:flex-start; font-size:0.85rem; color:var(--ink); line-height:1.45;}
.tier-list li svg {flex-shrink:0; margin-top:2px;}
.tier-belief {border-left:2px solid var(--fairway); padding-left:12px; margin-bottom:20px; font-size:0.8rem; color:var(--ink-soft); font-style:italic; line-height:1.5;}
.tier-belief.gold {border-color:var(--gold);}
.tier-cta {margin-top:auto; background:var(--fairway); color:var(--paper); border:none; border-radius:10px; padding:14px 20px; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1rem; cursor:pointer; width:100%; text-align:center; display:block; text-decoration:none;}
.tier-cta:hover {background:var(--fairway-dark, #122620); color:var(--paper);}

.circle-card {background:var(--fairway); border:1px solid rgba(201,168,76,.25); border-radius:var(--radius-l); overflow:hidden; padding:36px 36px 32px;}
.sc-care-card {background:var(--fairway); border-radius:var(--radius-l); overflow:hidden;}

.toggle-track {background:rgba(31,58,46,.08); border:1px solid var(--line); border-radius:100px; padding:4px; display:flex; position:relative; max-width:320px; margin:0 auto 48px;}
.toggle-indicator {position:absolute; top:4px; bottom:4px; left:4px; width:calc(50% - 4px); background:var(--fairway); border-radius:100px; transition:transform .25s cubic-bezier(.4,0,.2,1); z-index:0;}
.toggle-btn {flex:1; padding:12px 8px; border:none; background:none; cursor:pointer; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:0.95rem; position:relative; z-index:1; border-radius:100px; transition:color .25s; color:var(--paper);}
.toggle-btn.inactive {color:var(--ink-soft);}

.check-icon {display:inline-flex; width:16px; height:16px; border-radius:50%; background:var(--fairway); align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;}
.check-icon-gold {display:inline-flex; width:16px; height:16px; border-radius:50%; border:1.5px solid rgba(201,168,76,.5); align-items:center; justify-content:center; flex-shrink:0; margin-top:1px;}
.tier-cta-soon {background:transparent !important; border:1.5px dashed var(--line) !important; color:var(--ink-soft) !important; text-align:center;}
.mk-roadmap {background:var(--paper-2); border:1px solid var(--line); border-radius:var(--radius-l); padding:36px 40px; margin-bottom:40px;}
.mk-roadmap-list {display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px 28px; list-style:none; margin:0; padding:0; color:var(--ink);}
.mk-roadmap-list li {padding:10px 0; border-bottom:1px solid var(--line-subtle);}
.mk-faq details {border-bottom:1px solid var(--line); padding:14px 0;}
.mk-faq summary {cursor:pointer; font-family:'EB Garamond',sans-serif; font-weight:500; font-size:1.05rem; color:var(--ink);}
.mk-faq details p {margin:10px 0 0; color:var(--ink-soft); max-width:680px;}
.tier-grid {display:grid; grid-template-columns:repeat(4,1fr); gap:16px; align-items:start; margin-bottom:24px;}
.circle-grid {padding:40px 48px; display:grid; grid-template-columns:1fr 2fr; gap:48px; align-items:center;}
@media (max-width:1100px) { .tier-grid {grid-template-columns:repeat(2,1fr);} }
@media (max-width:700px) { .tier-grid {grid-template-columns:1fr;} .circle-grid {grid-template-columns:1fr; padding:28px 24px; gap:24px;} .mk-roadmap {padding:24px 22px;} }

/* ===========================================================
   QUIET LAYER (October 2026 redesign)
   Stone paper, deep green, muted brass. Newsreader for headings, Instrument Sans for everything else.
   Hairlines instead of shadows, small radii, no movement on hover, photographs from the course.
   This block is generated: edit Website/tools/quiet_layer.css and run tools/redesign.py.
   =========================================================== */

:root {
  --f-display: 'EB Garamond', Georgia, 'Times New Roman', serif;
  --f-ui: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

body { font-family: var(--f-ui); font-size: 1rem; line-height: 1.65; letter-spacing: 0; }
h1, h2, h3, h4, .h1, .h2, .h3, .logo-name, .stat-num, .tier-name, .tier-price-main {
  font-family: var(--f-display); font-weight: 400; font-feature-settings: "lnum"; text-wrap: balance;
}
h1, .h1 { line-height: 1.08; letter-spacing: -0.02em; }
h2, .h2 { line-height: 1.15; letter-spacing: -0.015em; font-size: clamp(1.9rem, 1.6vw + 1.3rem, 2.6rem); }
h3, .h3 { line-height: 1.25; letter-spacing: -0.005em; font-size: 1.28rem; font-weight: 500; }
h4 { font-family: var(--f-ui); font-weight: 600; }
.mono { font-family: var(--f-ui); }
p { max-width: 68ch; }
section { padding: 76px 0; }
main > section + section, main > .page-hero + section { border-top: 1px solid var(--line-subtle); }
main > .framed + section { border-top: 0; }
::selection { background: color-mix(in srgb, var(--fairway) 22%, transparent); }

.eyebrow { font-family: var(--f-ui); font-size: .75rem; font-weight: 500; letter-spacing: .16em; color: var(--ink-soft); margin-bottom: 18px; }
.eyebrow::before { display: none; }
.section-header p:not(.eyebrow) { font-size: 1.05rem; }

/* ---------- no movement, no motion-on-scroll ---------- */
.reveal, .reveal-stagger > *, .reveal.is-visible, .reveal-stagger.is-visible > * { opacity: 1; transform: none; transition: none; }

/* ---------- buttons ---------- */
.btn { padding: 12px 24px; border-radius: 2px; font-weight: 500; font-size: .9rem; letter-spacing: .01em; border-width: 1px; box-shadow: none; }
.btn:hover, .btn:active { transform: none !important; box-shadow: none; }
.btn-primary { background: var(--fairway); color: var(--paper); box-shadow: none; }
.btn-primary:hover { background: var(--fairway-deep); box-shadow: none; }
.btn-ghost { border-color: color-mix(in srgb, var(--ink) 30%, transparent); color: var(--ink); }
.btn-ghost:hover { border-color: var(--ink); color: var(--ink); background: transparent; }
.btn-light { background: var(--paper); color: var(--ink); box-shadow: none; }
.btn-light:hover { background: var(--paper-2); box-shadow: none; }
.btn-sm { padding: 8px 16px; font-size: .82rem; border-radius: 2px; }

/* ---------- header ---------- */
.nav { background: color-mix(in srgb, var(--paper) 94%, transparent); border-bottom: 1px solid var(--line-subtle); }
.nav.is-scrolled { box-shadow: none; border-bottom-color: var(--line); }
.nav-inner { height: 68px; }
.logo { gap: 11px; align-items: center; }
.logo-block { display: flex; flex-direction: column; gap: 4px; }
.logo-tag { display: block; font-family: var(--f-ui); font-style: normal; font-size: .75rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; line-height: 1; color: var(--ink-soft); margin: 0; white-space: nowrap; }
@media (max-width: 420px) { .logo-tag { letter-spacing: .08em; } }
.logo-name { font-family: var(--f-display); font-weight: 500; font-size: 1.28rem; letter-spacing: -.005em; line-height: 1; }
.nav-links { gap: 2px; font-size: .88rem; font-weight: 400; }
.nav-links > li > a:not(.nav-cta) { padding: 8px 12px; border-radius: 2px; color: var(--ink-soft); }
.nav-links > li > a:not(.nav-cta):hover, .nav-links a.is-active { background: transparent; color: var(--ink); }
.nav-icon { display: none; }
.nav-links .nav-app { border: 1px solid var(--line); margin-left: 8px; color: var(--ink); }
.nav-links .nav-app:hover { border-color: var(--ink-soft); }
.nav-cta { padding: 9px 18px; border-radius: 2px; font-weight: 500; box-shadow: none; margin-left: 4px; }
.nav-cta:hover { box-shadow: none; transform: none; }
.dropdown { background: var(--paper); border: 1px solid var(--line); border-radius: 3px; box-shadow: 0 14px 34px color-mix(in srgb, var(--ink) 10%, transparent); transform: translateY(4px); }
.has-dropdown:hover .dropdown, .has-dropdown.is-open .dropdown { transform: translateY(0); }
.dropdown a { border-radius: 2px; }
.dropdown a:hover { background: var(--paper-2); }
.dropdown a span.dd-title { font-weight: 500; }
.nav-toggle span { height: 1.5px; }

/* ---------- inner page hero: quiet type on paper, then a photograph ---------- */
.page-hero, .page-hero-dark {
  background: var(--paper); min-height: 0; padding: 92px 0 60px; border-bottom: 0; display: block; color: var(--ink);
}
.page-hero::before, .page-hero-dark::before { display: none; }
.page-hero .wrap { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
.page-hero-copy { max-width: 720px; margin-inline: auto; }
.page-hero h1, .page-hero-dark h1 { font-size: clamp(2.5rem, 3.6vw + 1rem, 4.1rem); color: var(--ink); text-shadow: none; margin-bottom: 22px; letter-spacing: -.022em; }
.page-hero p, .page-hero-dark p { color: var(--ink-soft); font-size: 1.1rem; text-shadow: none; margin-inline: auto; }
.page-hero-dark .eyebrow, .page-hero .eyebrow { color: var(--ink-soft); justify-content: center; }
.page-hero-aside, .page-hero .page-hero-aside, .page-hero-dark .page-hero-aside {
  font-family: var(--f-ui); font-size: .85rem; line-height: 1.9; letter-spacing: .02em; color: var(--ink-soft); text-align: center; align-items: center;
  border: 0; border-top: 1px solid var(--line); padding: 14px 0 0; margin-top: 6px; width: min(540px, 100%); max-width: none; background: none; border-radius: 0; backdrop-filter: none;
}
.page-hero .mk-hero-cta { margin-top: 30px; display: flex; justify-content: center; }
@media (max-width: 900px) { .page-hero { padding: 64px 0 40px; } }

/* a matted photograph with a thin brass line */
.framed { padding-block: 0; margin-bottom: 40px; }
.mat { border: 1px solid var(--gold); padding: 14px; background: var(--paper); }
.mat img { width: 100%; height: auto; aspect-ratio: 1500 / 640; object-fit: cover; display: block; background: var(--paper-3); }
@media (max-width: 760px) { .mat { padding: 8px; } .mat img { aspect-ratio: 3 / 2; } }

/* ---------- editorial cards: rules and type, not boxes ---------- */
.mk-lead { font-size: 1.1rem; color: var(--ink-soft); }
.mk-steps, .mk-grid { gap: 40px 44px; margin-top: 40px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.mk-grid-4 { gap: 40px 36px; grid-template-columns: repeat(2, 1fr); }
@media (min-width: 1100px) { .mk-grid-4 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 640px) { .mk-grid-4 { grid-template-columns: 1fr; } }
.mk-card { background: transparent; border: 0; border-top: 1px solid var(--ink); border-radius: 0; padding: 20px 0 0; }
.mk-card h3 { font-family: var(--f-display); font-weight: 500; font-size: 1.3rem; margin: 0 0 10px; }
.mk-card p { color: var(--ink-soft); font-size: .95rem; }
.mk-card a.mk-more { color: var(--fairway); font-weight: 500; border-bottom: 1px solid var(--line); }
.mk-step-num { font-family: var(--f-display); font-style: italic; font-size: 1rem; letter-spacing: 0; color: var(--gold-deep); margin-bottom: 14px; }
.mk-list { gap: 0; margin-top: 28px; max-width: 760px; }
.mk-list li { padding: 16px 0; border-top: 1px solid var(--line-subtle); gap: 0; }
.mk-list li:last-child { border-bottom: 1px solid var(--line-subtle); }
.mk-list li::before { display: none; }
.mk-table th { font-family: var(--f-ui); font-weight: 500; letter-spacing: .12em; }
.mk-table th, .mk-table td { border-bottom: 1px solid var(--line-subtle); }
.mk-table td:first-child { font-weight: 500; }
.mk-note { background: transparent; border: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); border-radius: 0; padding: 20px 0; }
.mk-badge { background: transparent; border: 1px solid var(--gold); border-radius: 2px; padding: 1px 8px; font-family: var(--f-ui); letter-spacing: .08em; text-transform: uppercase; }

.mk-cta-band { background: var(--paper-2); color: var(--ink); border: 0; border-radius: 2px; padding: 56px clamp(24px, 5vw, 64px); margin-top: 24px; }
.mk-cta-band h2 { color: var(--ink); }
.mk-cta-band p, .mk-cta-band .app-cta-note, .mk-cta-band .app-cta-note a { color: var(--ink-soft); }
.mk-cta-band .app-cta-note a { text-decoration: underline; }
.cta-banner { background: var(--paper-2); color: var(--ink); }
.cta-banner h2 { color: var(--ink); }
.cta-banner p { color: var(--ink-soft); }

/* ---------- cards used on drills, handbook, etiquette, support ---------- */
.tile, .drill-card, .directory-card, .routine-card, .club-card, .penalty-card, .rule-card { border-radius: 3px; box-shadow: none; }
.tile:hover, .drill-card:hover, .directory-card:hover, .club-card:hover { transform: none; box-shadow: none; border-color: var(--ink-soft); }
.drill-card-head, .routine-card-head { background: transparent; }
.drill-card-head .cat-tag, .routine-card-head .routine-tag { color: var(--ink-soft); letter-spacing: .12em; }
.drill-steps li::before { background: transparent; color: var(--ink); border: 1px solid var(--ink-soft); }
.drill-tip { background: transparent; border: 0; border-top: 1px solid var(--line); border-radius: 0; padding: 12px 0 0; }
.drill-tip-label { color: var(--gold-deep); }
.phase-balls { background: transparent; color: var(--ink); border: 1px solid var(--line); }
.tier-preview { background: transparent; border-radius: 3px; }
.tier-pill, .filter-pill, .level-tab { font-family: var(--f-ui); font-weight: 500; letter-spacing: .01em; }
.tier-pill { border-width: 1px; }
.filter-pill { border-radius: 2px; background: transparent; letter-spacing: .02em; }
.filter-pill.is-active { box-shadow: none; }
.level-tab { font-size: .9rem; }
.level-tab .level-badge { font-family: var(--f-ui); border-radius: 2px; }
.level-tab.is-active .level-badge { background: var(--ink); }
.stat-row { border-radius: 3px; }
.badge { font-family: var(--f-ui); letter-spacing: .1em; border-radius: 2px; }
.my-drill-box { border-width: 1px; border-radius: 3px; }
.my-drill-box-head { background: var(--paper-2); color: var(--ink); border-bottom: 1px solid var(--line); }
.my-drill-box-head h3 { color: var(--ink); }
.my-drill-item, .routine-total, .routine-note { border-radius: 2px; }

/* ---------- plans ---------- */
.tier-grid { gap: 20px; }
.tier-card { border: 1px solid var(--line); border-radius: 3px; background: var(--paper); box-shadow: none; }
.tier-card-top, .tier-card-top.gradient, .tier-card-top.gold { height: 0; background: none; }
.tier-card-body { padding: 32px 28px 28px; }
.tier-identity { font-family: var(--f-display); font-size: .95rem; color: var(--ink-soft); }
.tier-name { font-size: 1.9rem; font-weight: 400; color: var(--ink); }
.tier-price-main { font-size: 1.7rem; font-weight: 400; }
.tier-price-unit { font-family: var(--f-ui); }
.tier-save { font-family: var(--f-ui); }
.tier-outcome { background: none; border-radius: 0; padding: 12px 0; margin-bottom: 14px; border-top: 1px solid var(--line-subtle); border-bottom: 1px solid var(--line-subtle); font-family: var(--f-display); font-weight: 400; font-size: 1.02rem; color: var(--ink); }
.tier-belief { border-left: 0; padding-left: 0; }
.tier-cta { border-radius: 2px; font-family: var(--f-ui); font-weight: 500; font-size: .92rem; background: var(--fairway); }
.tier-cta:hover { background: var(--fairway-deep); }
.tier-cta-soon { border: 1px solid var(--line) !important; }
.check-icon { background: transparent; border: 1px solid var(--fairway); position: relative; }
.check-icon::after { content: ''; position: absolute; left: 4px; top: 1px; width: 4px; height: 8px; border: solid var(--fairway); border-width: 0 1.5px 1.5px 0; transform: rotate(45deg); }
.toggle-track { border-radius: 2px; background: transparent; }
.toggle-indicator { border-radius: 1px; background: var(--ink); }
.toggle-btn { font-family: var(--f-ui); font-weight: 500; border-radius: 1px; }
.circle-card { border-radius: 3px; background: var(--paper-2); border: 0; padding: 0; }
.circle-card .circle-grid { padding: 48px clamp(24px, 5vw, 64px); }
.sc-care-card { border-radius: 3px; background: var(--paper-2); }
.tier-card-feature { border-color: var(--ink); }
.tier-card-quiet { border-style: dashed; }
.tier-cta-ghost, .tier-cta-ghost:hover { background: transparent; border: 1px solid var(--line); color: var(--ink); }
.tier-cta-ghost:hover { border-color: var(--ink-soft); }
#tog-badge { font-family: var(--f-ui); font-size: .75rem; padding: 1px 7px; border: 1px solid currentColor; border-radius: 2px; letter-spacing: .06em; opacity: .9; }
.mk-roadmap { background: transparent; border: 0; border-top: 1px solid var(--ink); border-radius: 0; padding: 28px 0 0; }
.mk-faq summary { font-family: var(--f-display); font-weight: 400; font-size: 1.15rem; }

/* ---------- footer ---------- */
.footer { background: var(--paper-2); border-top: 0; padding: 72px 0 44px; }
.footer-brand .logo-name { font-size: 1.28rem; }
.beyond-stamp { font-family: var(--f-display); font-size: .95rem; letter-spacing: .04em; text-transform: none; color: var(--gold-deep); }
.footer-col h4 { font-family: var(--f-ui); font-weight: 500; letter-spacing: .14em; color: var(--ink-soft); }
.footer-col a { color: var(--ink-soft); }
.footer-col a:hover { color: var(--ink); }
.footer-legal { background: var(--paper-2); }
.app-badge { border-radius: 2px; background: var(--fairway-deep); }
.app-badge:hover { transform: none; }
.app-badge strong { font-family: var(--f-ui); font-weight: 600; }
.app-badge small { font-family: var(--f-ui); letter-spacing: .08em; }
.app-badge svg { fill: var(--paper); }

/* ===========================================================
   HOME
   =========================================================== */
.q-hero { padding: 88px 0 0; text-align: center; }
.q-hero p { margin-inline: auto; }
.q-kicker { font-size: .75rem; letter-spacing: .18em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 28px; }
.q-hero h1 { font-size: clamp(2.3rem, 3.4vw + 1rem, 4rem); line-height: 1.07; letter-spacing: -.025em; }
.q-soft { color: var(--ink-soft); }
.q-welcome { font-family: var(--f-display); font-style: italic; font-size: clamp(1.3rem, 1vw + 1rem, 1.7rem); color: var(--gold-deep); margin: 22px auto 30px; }
.q-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; }
.q-hero .q-actions { justify-content: center; }
.q-link { font-weight: 500; font-size: .92rem; border-bottom: 1px solid var(--line); padding-bottom: 2px; }
.q-link:hover { border-bottom-color: var(--ink); }
.q-note { margin-top: 22px; font-size: .85rem; color: var(--ink-soft); }
.q-arch { max-width: 1040px; margin: 64px auto 0; }
.q-arch img { width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; border-radius: 999px 999px 0 0; background: var(--paper-3); display: block; }

.q-index { border-bottom: 1px solid var(--line); background: var(--paper); }
.q-index ul { display: grid; grid-template-columns: repeat(5, 1fr); }
.q-index li + li a { border-left: 1px solid var(--line-subtle); }
.q-index a { display: block; padding: 24px 22px; }
.q-index a:hover { background: var(--paper-2); }
.q-index b { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.15rem; margin-bottom: 4px; }
.q-index span { font-size: .85rem; color: var(--ink-soft); }

.q-loop .wrap { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 88px; align-items: stretch; }
.q-loop figure { margin: 0; position: relative; min-height: 420px; }   /* the picture is as tall as the text beside it */
.q-loop figure img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; border-radius: 2px; background: var(--paper-3); }
.q-loop h2 { margin-bottom: 14px; }
.q-pull { font-family: var(--f-display); font-size: 1.35rem; line-height: 1.45; color: var(--ink); max-width: 30ch; margin-bottom: 40px; }
.q-steps { counter-reset: q; }
.q-steps li { display: grid; grid-template-columns: 44px 1fr; gap: 6px 12px; padding: 24px 0; border-top: 1px solid var(--line); }
.q-steps li:last-child { border-bottom: 1px solid var(--line); }
.q-steps li::before { counter-increment: q; content: counter(q); font-family: var(--f-display); font-style: italic; font-size: 1.1rem; color: var(--gold-deep); grid-row: span 2; }
.q-steps h3 { font-size: 1.2rem; }
.q-steps p { color: var(--ink-soft); font-size: .96rem; }

.q-parts { background: var(--paper-2); }
.q-parts h2 { margin-bottom: 44px; }
.q-row { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 6fr) 150px; gap: 8px 40px; align-items: baseline; padding: 26px 0; border-top: 1px solid var(--line); }
.q-row:last-child { border-bottom: 1px solid var(--line); }
.q-row h3 { font-size: 1.5rem; font-weight: 400; }
.q-row h3 small { display: block; font-family: var(--f-ui); font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-soft); margin-bottom: 6px; font-weight: 500; }
.q-row p { color: var(--ink-soft); }
.q-row .q-go { font-size: .9rem; font-weight: 500; color: var(--fairway); white-space: nowrap; text-align: right; }
.q-row:hover h3 { color: var(--fairway); }

.q-card .wrap { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 4fr); gap: 88px; align-items: center; }
.q-card h2 { margin-bottom: 20px; }
.q-card p { color: var(--ink-soft); margin-bottom: 14px; }
.q-card p a { color: var(--fairway); font-weight: 500; border-bottom: 1px solid var(--line); }
.q-card img { width: min(380px, 100%); height: auto; margin-inline: auto; border-radius: 6px; box-shadow: 0 18px 44px color-mix(in srgb, var(--ink) 16%, transparent); }

.q-close { text-align: center; padding: 88px 0 96px; }
.q-close h2 { font-size: clamp(2.2rem, 2.6vw + 1.2rem, 3.4rem); margin-bottom: 18px; }
.q-close p { margin: 0 auto 32px; color: var(--ink-soft); max-width: 46ch; }
.q-close .q-actions { justify-content: center; }

@media (max-width: 960px) {
  .q-hero { padding: 56px 0 0; }
  .q-arch { margin-top: 44px; }
  .q-arch img { aspect-ratio: 3 / 2; }
  .q-loop .wrap, .q-card .wrap { grid-template-columns: 1fr; gap: 44px; }
  .q-loop figure { position: static; min-height: 0; }
  .q-loop figure img { position: static; height: auto; aspect-ratio: 4 / 5; object-position: 50% 22%; }
  .q-index ul { grid-template-columns: repeat(2, 1fr); }
  .q-index li:nth-child(odd) a { border-left: 0; }
  .q-index li { border-top: 1px solid var(--line-subtle); }
  .q-index li:nth-child(-n+2) { border-top: 0; }
  .q-row { grid-template-columns: 1fr; gap: 8px; }
  section { padding: 56px 0; }
}
@media (max-width: 760px) {
  .q-card img { box-shadow: 0 10px 28px color-mix(in srgb, var(--ink) 14%, transparent); }
}

/* ---------- handbook and etiquette components ---------- */
.enc-table-wrap { border-radius: 3px; border: 0; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); }
.enc-table thead th { background: transparent; color: var(--ink-soft); font-family: var(--f-ui); font-weight: 500; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; border-bottom: 1px solid var(--line); }
.enc-table tbody td:not(:first-child) { font-family: var(--f-ui); }
.enc-table tbody tr:nth-child(even) td { background: transparent; }
.enc-table .divider td { background: var(--paper-2) !important; color: var(--ink-soft); font-family: var(--f-ui); letter-spacing: .14em; padding: 8px 16px; }
.enc-table .club-group { font-family: var(--f-ui); }
.quick-jump a { font-family: var(--f-ui); border-radius: 2px; color: var(--ink-soft); letter-spacing: .02em; }
.quick-jump a:hover { background: transparent; color: var(--ink); border-color: var(--ink-soft); }
.step-flow { border-radius: 3px; border-width: 1px 0; border-color: var(--line); }
.step-flow .step .step-num { font-family: var(--f-display); font-style: italic; font-weight: 400; color: var(--gold-deep); }
.rule-item .rule-icon { border-radius: 2px; background: transparent; }
.stake-pill { font-family: var(--f-ui); border-radius: 2px; }

/* ---------- the dark green frame: header, footer, call-to-action bands and the five parts ---------- */
:is(.nav, .footer, .footer-legal, .mk-cta-band, .cta-banner, .q-parts) {
  --paper: #13251D; --paper-2: #1A3026; --paper-3: #223B2F; --ink: #EFE9D8; --ink-soft: #BDB7A4; --ink-xsoft: #B5AF9C;
  --fairway: #C9AA5E; --fairway-deep: #DCC27F; --fairway-up: #C9AA5E; --fairway-light: #DCC27F; --fairway-mid: #B8995A;
  --sand: #8C7D54; --sand-deep: #C9AA5E; --line: #2E4A3D; --line-subtle: #243C31; --gold: #C9AA5E; --gold-light: #E2CB8E; --gold-deep: #D3B76F;
  color: var(--ink);
}
:is(.nav, .footer, .footer-legal, .mk-cta-band, .cta-banner, .q-parts) .app-badge { background: var(--paper-3); color: var(--ink); border-color: var(--line); }
:is(.nav, .footer, .footer-legal, .mk-cta-band, .cta-banner, .q-parts) .app-badge svg { fill: var(--ink); }
:is(.nav, .footer, .footer-legal, .mk-cta-band, .cta-banner, .q-parts) .logo svg { border-radius: 50%; box-shadow: 0 0 0 1px var(--line); }
/* one colour means "do this": oxblood buttons with a thin gold edge on the green as well as on the beige */
:is(.nav, .footer, .mk-cta-band, .cta-banner, .q-parts) :is(.btn-primary, .nav-cta) { background: #6A1F2B; color: #F4EBDD !important; border: 1px solid var(--gold); }
:is(.nav, .footer, .mk-cta-band, .cta-banner, .q-parts) :is(.btn-primary, .nav-cta):hover { background: #7E2836 !important; color: #F4EBDD !important; }
@media (max-width: 760px) {
  .nav-links { inset: 68px 0 0 0; background: var(--paper); backdrop-filter: none; -webkit-backdrop-filter: none; }
  .nav-links .nav-app { color: var(--ink); }
}

/* the call-to-action bands at the foot of the drills, handbook and etiquette pages: one oxblood, one green, both with cream type */
.cta-banner.cta-oxblood { --paper: #4E1520; --paper-2: #4E1520; --paper-3: #5C1A25; --ink: #F4EBDD; --ink-soft: #DDD0C2; --line: #7A3140; background: #4E1520; }
.cta-banner h2 { color: var(--ink); }
.cta-banner p { color: var(--ink-soft); }
.cta-banner .eyebrow, .cta-banner .eyebrow-light { color: var(--ink-soft); }
.cta-banner :is(.btn-light, .btn-flag) { background: #F4EBDD; color: #2A241A; border: 1px solid #F4EBDD; }
.cta-banner :is(.btn-light, .btn-flag):hover { background: #fff; color: #2A241A; }

/* the two player-card faces side by side, with the copy beside them */
.mk-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 72px; align-items: center; }
.mk-split-copy .mk-small { font-size: .95rem; margin-top: 18px; }
.mk-cards-row { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.mk-cards-row img, .q-card img { width: 100%; height: auto; border-radius: 6% / 4.8%; box-shadow: 0 16px 40px color-mix(in srgb, var(--ink) 16%, transparent); }
@media (max-width: 900px) { .mk-split { grid-template-columns: 1fr; gap: 36px; } .mk-cards-row { gap: 14px; } }

/* lists use the full width: two columns on wide screens instead of one narrow column with an empty right half */
.tip-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 56px; border: 0; border-top: 1px solid var(--ink); border-radius: 0; overflow: visible; }
.tip-item { padding: 20px 4px; border-bottom: 1px solid var(--line); }
.tip-item:last-child { border-bottom: 1px solid var(--line); }
.tip-item:last-child:nth-child(odd) { grid-column: 1 / -1; }
.tip-icon { background: transparent; border-radius: 2px; }
.mk-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 56px; max-width: none; border-bottom: 1px solid var(--line-subtle); }
.mk-list li:last-child { border-bottom: 0; }
@media (max-width: 900px) { .tip-list, .mk-list { grid-template-columns: 1fr; } .tip-item:last-child { grid-column: auto; } }

/* no lone card on the last row: an odd one out spans the full width */
.club-grid > :last-child:nth-child(3n+1) { grid-column: 1 / -1; }
.mk-list > :last-child:nth-child(odd) { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .club-grid > :last-child:nth-child(3n+1) { grid-column: auto; }
  .club-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .mk-steps > :last-child:nth-child(odd), .mk-grid:not(.mk-grid-4) > :last-child:nth-child(odd) { grid-column: 1 / -1; }
  .q-index li:last-child { grid-column: 1 / -1; }
  .q-index li:last-child a { border-left: 0; }
}
@media (max-width: 640px) { .score-terms > :last-child:nth-child(odd) { grid-column: 1 / -1; } }

/* ---------- app screens teaser ---------- */
.shots-strip { display: flex; gap: 28px; overflow-x: auto; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch;
  padding: 12px max(24px, calc((100% - 1120px) / 2)) 30px; scroll-padding-inline: max(24px, calc((100% - 1120px) / 2)); }
.shots-strip:focus-visible { outline: 2px solid var(--fairway); outline-offset: -2px; }
.shots-strip figure { flex: 0 0 clamp(240px, 24vw, 300px); margin: 0; scroll-snap-align: start; }
.shots-strip img { display: block; width: 100%; height: auto; border-radius: 4px; background: var(--paper-3); box-shadow: 0 18px 44px rgba(18, 38, 32, .22); }
.shots-strip-3 { justify-content: center; }
.mk-shots { padding-bottom: 20px; }
.mk-shots .mk-lead { margin-bottom: 8px; }
.q-peek { padding-block: 88px 64px; }
.q-peek h2 { margin-bottom: 14px; }
.q-peek-lead { max-width: 620px; color: var(--ink-soft); margin-bottom: 6px; }
.q-peek .q-link { display: inline-block; margin-top: 4px; }
@media (max-width: 760px) {
  .shots-strip { gap: 18px; padding-inline: 24px; scroll-padding-inline: 24px; }
  .shots-strip figure { flex-basis: 68vw; }
  .shots-strip-3 { justify-content: flex-start; }
  .q-peek { padding-block: 64px 40px; }
}

/* ---------- the logo mark: a picture now. The header mark sits beside the name; the footer mark stands alone with "Beyond 18." under it ---------- */
.logo .logo-mark { display: block; width: 50px; height: 50px; border-radius: 50%; flex: none; }
:is(.nav, .footer, .footer-legal, .mk-cta-band, .cta-banner, .q-parts) .logo img { border-radius: 50%; box-shadow: 0 0 0 1px var(--line); }
.footer-brand { display: flex; flex-direction: column; align-items: center; }
.footer-brand .logo-mark { width: 120px; height: 120px; }
.footer-brand .beyond-stamp { margin: 14px 0 0; text-align: center; font-size: 1.12rem; color: var(--gold-light); }
@media (max-width: 760px) { .footer-brand { align-items: flex-start; } .footer-brand .beyond-stamp { text-align: left; } }
