/* ==========================================================================
   Summerlin.Golf — shared design system
   Single source of truth for the whole site. Re-skin the site by editing the
   tokens in :root below. Aesthetic: bold grotesque display, light minimal UI,
   rounded cards, monochrome with an emerald golf accent (the "EagleGlide" look).
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700&family=Libre+Baskerville:wght@400;700&display=swap');

:root{
  /* ---- Brand palette (Summerlin Golf) — source of truth ---- */
  --heritage-green:#143126;  /* primary brand color */
  --antique-gold:#C9A15A;    /* signature accent */
  --warm-ivory:#F7F2E8;      /* primary light neutral */
  --stone:#C9BEAA;
  --sand:#DCC9A4;
  --navy-club:#1D2F4D;
  --sage:#A9B39B;
  --bronze:#8A6B43;
  --charcoal:#2C2C2C;

  /* ---- Semantic color (mapped from the brand palette) ---- */
  --bg:#F7F2E8;            /* page background — warm ivory */
  --surface:#ffffff;       /* cards / panels */
  --surface-2:#F1E7D2;     /* subtle alt panel — warm sand tint */
  --ink:#143126;           /* headings, dark CTAs, footer — heritage green */
  --ink-soft:#2C2C2C;      /* strong body text — charcoal */
  --muted:#5f5849;         /* secondary text — warm taupe */
  --faint:#6f6759;         /* tertiary / meta */
  --line:#E7DFCC;          /* hairline borders */
  --line-strong:#D9CEB4;

  --accent:#C9A15A;        /* antique gold accent */
  --accent-press:#8A6B43;  /* bronze — accent text / hover (AA on ivory) */
  --accent-soft:#F1E7D2;   /* pale gold tint */

  --white:#ffffff;

  /* ---- Type ---- */
  --display:'Cormorant Garamond', Georgia, 'Times New Roman', serif;  /* headlines */
  --serif:'Libre Baskerville', Georgia, serif;                        /* subheads / quotes */
  --sans:'Inter', system-ui, -apple-system, sans-serif;              /* body / UI */

  /* ---- Radius / shadow ---- */
  --r-sm:10px;
  --r:18px;
  --r-lg:28px;
  --r-pill:999px;
  --shadow-sm:0 1px 2px rgba(22,21,15,.04), 0 2px 8px rgba(22,21,15,.05);
  --shadow:0 8px 30px rgba(22,21,15,.08);
  --shadow-lg:0 24px 60px rgba(22,21,15,.12);

  /* ---- Layout ---- */
  --maxw:1280px;
  --gutter:clamp(20px,4vw,48px);

  /* ---- Motion ---- */
  --ease:cubic-bezier(.16,1,.3,1);
}

/* ---- Reset ---- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  background:var(--bg);
  color:var(--ink-soft);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
::selection{background:var(--accent-soft);color:var(--ink)}
::-webkit-scrollbar{width:10px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:999px;border:3px solid var(--bg)}

/* ---- Typography ---- */
h1,h2,h3,h4{font-family:var(--display);color:var(--ink);font-weight:600;line-height:1.06;letter-spacing:-.005em}
.display{font-family:var(--display);font-weight:600;letter-spacing:-.01em;line-height:1.0;color:var(--ink)}
.h-xxl{font-size:clamp(52px,10vw,150px)}
.h-xl{font-size:clamp(42px,7vw,96px)}
.h-lg{font-size:clamp(34px,4.8vw,68px)}
.h-md{font-size:clamp(26px,3.2vw,44px)}
.h-sm{font-size:clamp(21px,2.2vw,30px)}
.lead{font-family:var(--serif);font-size:clamp(16px,1.4vw,19px);color:var(--muted);line-height:1.7}
.eyebrow{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-press)}
.muted{color:var(--muted)}
.mono{font-variant-numeric:tabular-nums}

/* ---- Layout helpers ---- */
.container{max-width:var(--maxw);margin:0 auto;padding-inline:var(--gutter)}
.section{padding-block:clamp(64px,9vw,128px)}
.section-tight{padding-block:clamp(40px,6vw,80px)}
.stack>*+*{margin-top:1rem}
.center{text-align:center}
.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:clamp(28px,4vw,52px);flex-wrap:wrap}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:var(--sans);font-weight:600;font-size:15px;
  padding:14px 26px;border-radius:var(--r-pill);border:1px solid transparent;transition:transform .35s var(--ease),background .25s,color .25s,border-color .25s,box-shadow .25s;white-space:nowrap}
.btn:hover{transform:translateY(-2px)}
.btn--primary{background:var(--ink);color:var(--white)}
.btn--primary:hover{box-shadow:var(--shadow)}
.btn--accent{background:var(--accent);color:#1c130a}
.btn--accent:hover{background:#b8924a;box-shadow:var(--shadow)}
.btn--ghost{background:transparent;color:var(--ink);border-color:var(--line-strong)}
.btn--ghost:hover{border-color:var(--ink)}
.btn--sm{padding:10px 18px;font-size:14px}
.btn .arrow{transition:transform .35s var(--ease)}
.btn:hover .arrow{transform:translateX(4px)}

/* ---- Pills / tags ---- */
.pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--muted);
  padding:8px 16px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);transition:all .3s var(--ease)}
.pill:hover{border-color:var(--ink);color:var(--ink)}
.pill--active{background:var(--ink);color:var(--white);border-color:var(--ink)}
.tag{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent-press);
  padding:6px 12px;border-radius:var(--r-pill);background:var(--accent-soft)}

/* ---- FTC paid-unit disclosure (ADR-000) — deliberately DISTINCT from decorative .tag: ----
   plain language, amber notice, a leading "PAID" chip, conspicuous. Use on every paid placement. */
.disclosure{display:inline-flex;align-items:center;gap:9px;font-size:13.5px;font-weight:600;letter-spacing:.005em;
  color:#7a5a12;background:#fcf2d6;border:1px solid #e6c878;border-radius:8px;padding:9px 14px;line-height:1.35}
.disclosure::before{content:"PAID";font-size:10px;font-weight:700;letter-spacing:.08em;color:#fff;background:#c08a2e;border-radius:4px;padding:3px 7px;flex:none}
.disclosure--block{display:flex}
.disclosure-note{font-size:13.5px;line-height:1.55;color:#6b6256;background:#fbf6ea;border-left:3px solid #c08a2e;
  padding:11px 15px;border-radius:0 6px 6px 0;margin:14px 0}
.disclosure-note strong{color:#7a5a12}

/* ---- Header ---- */
.site-header{position:fixed;inset:0 0 auto 0;z-index:100;transition:background .3s,box-shadow .3s,border-color .3s}
.site-header.scrolled{background:linear-gradient(180deg,#FBF7EF 0%,var(--warm-ivory) 100%);backdrop-filter:blur(16px);border-bottom:1px solid var(--antique-gold);box-shadow:0 6px 24px -10px rgba(20,49,38,.22)}
.header-inner{max-width:var(--maxw);margin:0 auto;padding:18px var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-weight:700;font-size:21px;letter-spacing:-.03em;color:var(--ink)}
.brand .dot{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block}
.nav{display:flex;align-items:center;gap:30px}
.nav a{font-size:15px;font-weight:500;color:var(--ink-soft);transition:color .25s}
.nav a:hover,.nav a.active{color:var(--accent-press)}
.header-cta{display:flex;align-items:center;gap:14px}
.menu-btn{display:none;width:44px;height:44px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-btn span{width:18px;height:2px;background:var(--ink);border-radius:2px;transition:.3s}

/* ---- Cards ---- */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.card__media{position:relative;aspect-ratio:16/11;overflow:hidden;background:var(--surface-2)}
.card__media img,.card__bg{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}
.card:hover .card__media img,.card:hover .card__bg{transform:scale(1.04)}
.card__body{padding:24px}
.card__title{font-family:var(--display);font-weight:600;font-size:20px;line-height:1.2;color:var(--ink);letter-spacing:-.02em}
.card__meta{margin-top:10px;font-size:13px;color:var(--faint);display:flex;gap:10px;align-items:center}

/* feature grid */
.grid{display:grid;gap:20px}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.grid-feature{grid-template-columns:repeat(12,1fr);grid-auto-rows:1fr}
.grid-feature .feat-lead{grid-column:span 7}
.grid-feature .feat-side{grid-column:span 5}

/* list rows */
.row-link{display:grid;grid-template-columns:1fr auto auto;gap:24px;align-items:center;padding:22px 4px;border-bottom:1px solid var(--line);transition:padding .3s var(--ease),background .3s}
.row-link:hover{padding-left:16px;background:linear-gradient(90deg,var(--accent-soft),transparent)}
.row-link h3{font-family:var(--display);font-weight:500;font-size:clamp(17px,1.7vw,21px);color:var(--ink-soft);letter-spacing:-.01em}
.row-link:hover h3{color:var(--ink)}
.row-link .r-cat{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);white-space:nowrap}
.row-link .r-date{font-size:13px;color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums}

/* ---- Hero (clip-art scroll-film) ---- */
.hero-film{position:relative;height:440vh;background:#fff}
/* height:100svh = small viewport height (accounts for iOS Safari URL bar);
   100vh fallback for browsers that don't support svh units yet */
.hero-film__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:linear-gradient(180deg,#fff,#f6f5f1)}
.hero-film__canvas{position:absolute;inset:0;width:100%;height:100%;display:block}
.film-copy{position:absolute;z-index:3;max-width:min(40ch,44vw);opacity:0;pointer-events:none;will-change:opacity,transform}
.film-copy span{display:block;font-family:var(--display);font-weight:600;letter-spacing:-.02em;line-height:1.04;
  font-size:clamp(26px,4.6vw,62px);color:var(--ink)}
.film-copy--bl{left:var(--gutter);bottom:17vh;text-align:left}
.film-copy--tr{right:var(--gutter);top:15vh;text-align:right;max-width:min(34ch,40vw)}
.film-copy--ml{left:var(--gutter);top:40%;text-align:left}
.film-enter{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-46%);width:min(760px,92vw);
  text-align:center;opacity:0;pointer-events:none;will-change:opacity,transform}
.film-enter .display{margin:14px auto 8px;max-width:16ch}
.film-enter .lead{max-width:54ch;margin:0 auto}
.film-enter .hero-actions{display:flex;gap:14px;justify-content:center;margin-top:26px;flex-wrap:wrap}
.film-cue{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);z-index:3;font-size:11px;
  letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}
@media(max-width:760px){
  .hero-film{height:360vh}
  .film-copy span{font-size:clamp(22px,7.4vw,36px)}
  .film-copy--bl,.film-copy--tr,.film-copy--ml{max-width:76vw}
  .film-copy--tr{top:12vh}.film-copy--bl{bottom:14vh}.film-copy--ml{top:38%}

  /* film-enter: reduce heading size at phone widths to prevent panel overflowing
     the viewport on devices wider than 480px (e.g. 540px Android phones at portrait) */
  .film-enter .display.h-xl{font-size:clamp(30px,7.5vw,52px);margin:10px auto 6px}
  .film-enter .lead{font-size:clamp(15px,1.4vw,18px);line-height:1.6}
  .film-enter .hero-actions{margin-top:18px;gap:10px}
  /* Safety net: if panel is still taller than the viewport on an unusually short
     device, allow internal scrolling rather than clipping content off-screen.
     max-height:92vh is the fallback; 92svh (small viewport height) is the
     preferred value — browsers that understand svh override the vh line above it */
  .film-enter{max-height:92vh;max-height:92svh;overflow-y:auto}
}
@media(prefers-reduced-motion:reduce){
  .hero-film{height:100vh}
  .film-enter{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}
  .film-cue{display:none}
}

/* ---- Hero (drone-shot reveal) — new landing page ----
   A sticky cinematic stage: an aerial drone shot of Summerlin pushes in as you
   scroll while the Summerlin Golf crest grows to fill the screen and dissolves,
   resolving into the site entrance. Scroll is the playhead (see site.js). */
.hero-drone{position:relative;height:340vh;background:var(--ink)}
.hero-drone__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--ink)}
.dh-media{position:absolute;inset:0;width:100%;height:100%;background-size:cover;background-position:center;
  background-repeat:no-repeat;transform:scale(1.06);transform-origin:center;will-change:transform;
  /* Earth-tone scene shows if the photo ever fails to load. The drone shot is
     layered on top: plain JPG baseline, then WebP via image-set where supported. */
  background-image:linear-gradient(180deg,#F7F2E8 0%,#E7D7B6 24%,#C9A15A 42%,#8A6B43 60%,#143126 100%);
  background-image:url('/assets/img/hero-drone.jpg'),linear-gradient(180deg,#F7F2E8 0%,#E7D7B6 24%,#C9A15A 42%,#8A6B43 60%,#143126 100%);
  background-image:-webkit-image-set(url('/assets/img/hero-drone.webp') type('image/webp'),url('/assets/img/hero-drone.jpg') type('image/jpeg')),linear-gradient(180deg,#F7F2E8 0%,#E7D7B6 24%,#C9A15A 42%,#8A6B43 60%,#143126 100%);
  background-image:image-set(url('/assets/img/hero-drone.webp') type('image/webp'),url('/assets/img/hero-drone.jpg') type('image/jpeg')),linear-gradient(180deg,#F7F2E8 0%,#E7D7B6 24%,#C9A15A 42%,#8A6B43 60%,#143126 100%)}
.dh-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.4;
  background:linear-gradient(180deg,rgba(20,49,38,.5) 0%,rgba(20,49,38,.08) 28%,rgba(11,24,17,.72) 100%)}
.dh-crest{position:absolute;left:50%;top:50%;z-index:3;width:min(560px,72vw);
  transform:translate(-50%,-50%) scale(.42);pointer-events:none;will-change:transform,opacity;
  filter:drop-shadow(0 28px 60px rgba(0,0,0,.5))}
.dh-crest img{width:100%;height:auto;display:block}
.dh-enter{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-44%);width:min(820px,92vw);
  text-align:center;opacity:0;pointer-events:none;color:var(--warm-ivory);will-change:opacity,transform}
.dh-enter .eyebrow{color:var(--antique-gold)}
.dh-enter .display{color:var(--warm-ivory);margin:14px auto 12px;max-width:18ch;text-shadow:0 2px 30px rgba(0,0,0,.35)}
.dh-enter .lead{color:rgba(247,242,232,.88);max-width:56ch;margin:0 auto;text-shadow:0 1px 16px rgba(0,0,0,.35)}
.dh-enter .hero-actions{display:flex;gap:14px;justify-content:center;margin-top:28px;flex-wrap:wrap}
.dh-enter .btn--primary{background:var(--antique-gold);color:#1c130a}
.dh-enter .btn--primary:hover{background:#d8b673;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.dh-enter .btn--ghost{color:var(--warm-ivory);border-color:rgba(247,242,232,.5)}
.dh-enter .btn--ghost:hover{border-color:var(--warm-ivory);background:rgba(247,242,232,.1)}
.dh-cue{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:3;font-family:var(--sans);
  font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(247,242,232,.72)}
@media(max-width:760px){
  .hero-drone{height:280vh}
  .dh-crest{width:84vw}
  .dh-enter{width:92vw}
}
@media(max-width:480px){.hero-drone{height:240vh}}
@media(prefers-reduced-motion:reduce){
  .hero-drone{height:100vh}
  .dh-crest{opacity:0}
  .dh-scrim{opacity:.6}
  .dh-enter{opacity:1;transform:translate(-50%,-50%);pointer-events:auto}
  .dh-cue{display:none}
}

/* ---- Marquee ---- */
.marquee{overflow:hidden;white-space:nowrap;border-block:1px solid var(--line);padding-block:22px;background:var(--surface)}
.marquee-track{display:inline-flex;gap:48px;animation:mq 38s linear infinite}
.marquee span{font-family:var(--display);font-weight:600;font-size:clamp(18px,2.2vw,30px);color:var(--faint);letter-spacing:-.02em}
.marquee .dot{color:var(--accent)}
@keyframes mq{to{transform:translateX(-50%)}}

/* ---- Stats ---- */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center}
.stat .num{font-family:var(--display);font-weight:700;font-size:clamp(34px,5vw,60px);color:var(--ink);letter-spacing:-.03em;line-height:1}
.stat .lbl{margin-top:8px;font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}

/* ---- Map ---- */
.map-wrap{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
#map,.leaflet-mini{width:100%}
#map{height:min(70vh,640px)}
.leaflet-mini{height:280px;border-radius:var(--r);overflow:hidden;border:1px solid var(--line)}
.leaflet-popup-content-wrapper{border-radius:var(--r-sm)!important;box-shadow:var(--shadow)!important}
.leaflet-popup-content{font-family:var(--sans)!important;margin:14px 16px!important}
.map-pop h3{font-family:var(--display);font-size:16px;margin-bottom:2px}
.map-pop p{font-size:13px;color:var(--muted);margin:0}
.map-pop a{color:var(--accent);font-weight:600;font-size:13px}

/* ---- Forms ---- */
.field{width:100%;padding:14px 18px;border:1px solid var(--line-strong);border-radius:var(--r-pill);background:var(--surface);
  font-family:var(--sans);font-size:15px;color:var(--ink);outline:none;transition:border-color .25s,box-shadow .25s}
.field:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}
.field::placeholder{color:var(--faint)}

/* ---- Footer ---- */
.site-footer{background:var(--ink);color:#cfcec5;padding-block:clamp(56px,7vw,88px) 32px}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:40px;margin-bottom:48px}
.site-footer h3{color:var(--white);font-family:var(--display);font-size:14px;letter-spacing:.04em;margin-bottom:18px}
.site-footer a{display:block;color:rgba(255,255,255,.55);font-size:14px;margin-bottom:11px;transition:color .25s}
.site-footer a:hover{color:var(--accent)}
.footer-brand{display:flex;align-items:center;gap:9px;font-family:var(--display);font-weight:700;font-size:22px;color:var(--white);margin-bottom:14px}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:rgba(255,255,255,.4);flex-wrap:wrap}

/* ---- Scroll reveal ---- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.08s}.reveal.d2{transition-delay:.16s}.reveal.d3{transition-delay:.24s}
.reveal.d4{transition-delay:.32s}.reveal.d5{transition-delay:.4s}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}*{scroll-behavior:auto}}

/* ---- Article / category / prose ---- */
.page-top{padding-top:clamp(104px,13vw,150px)}
.breadcrumb{font-size:13px;color:var(--faint)}
.breadcrumb a{color:var(--accent)}
.article-hero-img{width:100%;aspect-ratio:16/8;object-fit:cover;border-radius:var(--r-lg);border:1px solid var(--line)}
.article-head{max-width:820px;margin:0 auto;text-align:center}
.article-title{font-family:var(--display);font-weight:700;letter-spacing:-.03em;line-height:1.05;font-size:clamp(30px,5vw,56px);color:var(--ink);margin:16px 0}
.article-sub{font-size:clamp(18px,2vw,22px);color:var(--muted);line-height:1.5}
.article-meta{margin-top:18px;font-size:14px;color:var(--faint);display:flex;gap:12px;flex-wrap:wrap;align-items:center;justify-content:center}
.glance{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px 28px;box-shadow:var(--shadow-sm);max-width:820px;margin:0 auto}
.glance h3{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-family:var(--sans);font-weight:600;margin-bottom:14px}
.glance .row{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.glance .row:last-child{border-bottom:0}
.glance .k{color:var(--muted)}.glance .v{color:var(--ink);font-weight:500;text-align:right}
.glance a{color:var(--accent);font-weight:600}
.prose{max-width:760px;margin:0 auto}
.prose p{font-size:18px;line-height:1.8;color:var(--ink-soft);margin-bottom:24px}
.prose h2{font-family:var(--display);font-weight:700;letter-spacing:-.02em;font-size:clamp(24px,3vw,34px);color:var(--ink);margin:44px 0 16px}
.prose h3{font-family:var(--display);font-weight:600;font-size:22px;color:var(--ink);margin:32px 0 12px}
.prose a{color:var(--accent-press);text-decoration:underline;text-underline-offset:3px;font-weight:500}
.prose ul,.prose ol{margin:0 0 24px 22px}.prose li{font-size:18px;line-height:1.8;margin-bottom:8px;color:var(--ink-soft)}
.prose blockquote{border-left:3px solid var(--accent);background:var(--surface);padding:18px 24px;border-radius:0 var(--r-sm) var(--r-sm) 0;margin:28px 0;font-family:var(--display);font-weight:500;font-size:20px;line-height:1.5;color:var(--ink)}
.prose strong{color:var(--ink);font-weight:600}
.cat-hero{padding-top:clamp(120px,15vw,180px)}
.cat-hero h1{font-family:var(--display);font-weight:700;letter-spacing:-.03em;font-size:clamp(36px,6vw,72px);color:var(--ink)}
.cat-hero p{font-size:clamp(17px,1.6vw,20px);color:var(--muted);max-width:60ch;margin-top:14px}

/* ---- Responsive ---- */
@media(max-width:1024px){
  .grid-3{grid-template-columns:repeat(2,1fr)}
  .grid-feature .feat-lead,.grid-feature .feat-side{grid-column:span 12}
}
@media(max-width:760px){
  .nav,.header-cta .btn{display:none}
  .menu-btn{display:flex}
  /* Mobile open nav: full-bleed dropdown, links get a real tap target */
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:linear-gradient(180deg,var(--warm-ivory) 0%,var(--surface-2) 55%,var(--sand) 100%);
    padding:8px var(--gutter) 16px;border-bottom:1px solid var(--antique-gold);
    box-shadow:0 14px 30px -12px rgba(20,49,38,.28)}
  .nav.open a{padding:13px 0;border-bottom:1px solid var(--line);min-height:44px;display:flex;align-items:center}
  .nav.open a:last-child{border-bottom:0}

  .grid-3,.grid-2{grid-template-columns:1fr}
  .stats{grid-template-columns:1fr 1fr;gap:32px}
  .footer-grid{grid-template-columns:1fr 1fr}
  .row-link{grid-template-columns:1fr;gap:6px}
  .row-link .r-cat,.row-link .r-date{display:none}

  /* btn--sm tap target: ensure at least 44px tall on mobile */
  .btn--sm{padding:13px 18px}

  /* Subscribe form: stack on very narrow screens */
  .subscribe-form{flex-wrap:wrap}
  .subscribe-form .field{min-width:0;flex:1 1 200px}
  .subscribe-form .btn{flex-shrink:0;width:100%}

  /* Glance rows: allow long values to wrap instead of overflow/squish */
  .glance .row{flex-wrap:wrap;gap:4px}
  .glance .k{flex-shrink:0}
  .glance .v{text-align:left}

  /* Footer links: widen tap target slightly without ballooning whitespace */
  .site-footer a{padding-block:5px;margin-bottom:4px}

  /* Inline .hero-actions button rows (used on course detail pages) */
  .hero-actions{flex-wrap:wrap!important;row-gap:10px!important}
  .hero-actions .btn{flex:1 1 auto}

  /* cat-hero heading: tighten for narrow viewports */
  .cat-hero h1{font-size:clamp(28px,7.5vw,72px)}
}

/* ---- Narrow phone (≤480px) ---- */
@media(max-width:480px){
  /* Hero film: shorten scroll journey so it doesn't drag on a short phone */
  .hero-film{height:280vh}

  /* film-enter panel: further shrink text so the full panel fits inside 100svh */
  .film-enter{width:92vw;top:50%;transform:translate(-50%,-50%)}
  .film-enter .display.h-xl{font-size:clamp(26px,8vw,40px);margin:8px auto 4px}
  .film-enter .lead{font-size:14px;line-height:1.5;margin-top:0}
  .film-enter .hero-actions{margin-top:14px;gap:8px}
  .film-enter .eyebrow{font-size:11px;letter-spacing:.12em}

  /* film-copy side text: tighten further for 360px-class phones */
  .film-copy span{font-size:clamp(18px,6.5vw,26px)}
  .film-copy--tr,.film-copy--bl,.film-copy--ml{max-width:82vw}

  /* Section headings: tighter clamp to prevent overflow on tiny screens */
  .h-xl{font-size:clamp(26px,8vw,84px)}
  .h-lg{font-size:clamp(22px,7vw,60px)}

  /* Stats: keep 2-column at this width (numbers are short enough) */
  .stats{grid-template-columns:1fr 1fr}

  /* Footer: single column below 480px */
  .footer-grid{grid-template-columns:1fr}

  /* Subscribe form: full-width button on narrow phones */
  .subscribe-form .btn{flex:1 1 100%}

  /* Map: reduce mini-map height slightly so it doesn't dominate the viewport */
  .leaflet-mini{height:220px}
}

/* ---- Footer transition: breathing room between the light content and the dark footer ---- */
.site-footer{margin-top:clamp(48px,7vw,96px);border-top-left-radius:var(--r-lg);border-top-right-radius:var(--r-lg)}

/* ---- Brand crest logo (header) — the SG shield, used as the logo mark ---- */
.brand .dot{width:34px;height:34px;border-radius:0;background:transparent;background-image:url('/assets/img/logo-256.png');background-size:contain;background-position:center;background-repeat:no-repeat}

/* ---- Premium placeholder hero (course/community pages without a photo) ---- */
.article-hero-img.hero-placeholder{position:relative;display:flex;align-items:center;justify-content:center;text-align:center;padding:28px;overflow:hidden;background:radial-gradient(130% 130% at 50% 12%,#1f4631 0%,#143126 54%,#0e2018 100%)}
.article-hero-img.hero-placeholder::before{content:"";position:absolute;inset:0;background:url('/assets/img/logo-256.png') no-repeat center;background-size:min(46%,260px);opacity:.12}
.article-hero-img.hero-placeholder::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(201,161,90,.28)}
.article-hero-img.hero-placeholder span{position:relative;z-index:1;color:#fff!important;text-shadow:0 2px 16px rgba(0,0,0,.4)}

/* ---- Accessible focus rings (keyboard navigation) ---- */
a:focus-visible,button:focus-visible,.btn:focus-visible,.field:focus-visible,.menu-btn:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}

/* ---- Skip to content (accessibility) ---- */
.skip-link{position:absolute;left:8px;top:-52px;z-index:300;background:var(--ink);color:#fff;padding:10px 16px;border-radius:8px;font-weight:600;transition:top .2s var(--ease)}
.skip-link:focus{top:8px;outline:2px solid var(--accent);outline-offset:2px}

/* ---- Contrast: darken tertiary text to meet WCAG AA ---- */
:root{--faint:#6b6253}

/* ---- Player reviews widget ---- */
.rt{display:inline-flex;gap:2px;vertical-align:middle;margin-left:8px}
.rt-s{font-size:22px;line-height:1;color:var(--line-strong);background:none;border:0;padding:0 1px;cursor:pointer;transition:color .15s}
.rt-s.on,.rt-s:hover{color:#e0b43c}
.rv-l{display:block;font-size:14px;font-weight:600;color:var(--ink-soft);margin-bottom:12px}
.rv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:6px 24px;margin:6px 0 16px}
.rv-form{margin-top:28px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow-sm)}
.rv-form .field{margin:8px 0}
.rv-flags{display:flex;gap:24px;flex-wrap:wrap;margin:4px 0 14px;font-size:14px;color:var(--ink-soft)}
.rv-flags label{display:flex;align-items:center;gap:8px}
.rv-summary{display:flex;gap:32px;flex-wrap:wrap;align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px;box-shadow:var(--shadow-sm)}
.rv-big{display:flex;flex-direction:column}
.rv-num{font-family:var(--display);font-weight:700;font-size:48px;line-height:1;color:var(--ink)}
.rv-stars{color:#e0b43c;letter-spacing:2px}
.rv-count{font-size:13px;color:var(--faint);margin-top:4px}
.rv-bars{flex:1;min-width:240px;display:grid;gap:6px}
.rv-bar{display:grid;grid-template-columns:118px 1fr 30px;align-items:center;gap:10px;font-size:13px;color:var(--muted)}
.rv-track{height:8px;background:var(--line);border-radius:99px;overflow:hidden}
.rv-track i{display:block;height:100%;background:var(--accent)}
.rv-list{margin:18px 0}
.rv-item{padding:16px 0;border-bottom:1px solid var(--line)}
.rv-head .rv-stars{font-size:15px}
.rv-meta{font-size:13px;color:var(--faint);margin:2px 0 6px}
.rv-tags{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.rv-tags span{font-size:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--r-pill);padding:3px 10px;color:var(--muted)}
.rv-msg{font-size:14px;margin:10px 0;min-height:1em}
.rv-msg.ok{color:var(--accent-press)}
.rv-msg.err{color:#b3261e}

/* ==========================================================================
   LUXURY BRAND LAYER — Summerlin Golf
   Heritage / old-money refinements layered over the base system: editorial
   serif headings, antique-gold hairlines, crest motifs, and premium bands.
   Reusable components: .kicker, .lux-rule, .lux-band, .feature-split.
   ========================================================================== */

/* Faint paper grain in the ivory margins for a tactile, printed feel */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Refined display headings: a touch of optical polish on the serif */
.display,h1,h2,h3{font-feature-settings:"liga" 1,"dlig" 1}
.lead{font-style:normal}

/* Brand wordmark — elegant, slightly tracked */
.brand{letter-spacing:.005em;font-weight:600}
.site-header.scrolled{border-bottom-color:rgba(201,161,90,.4)}

/* Kicker — the luxury eyebrow with a gold lead rule */
.kicker{display:inline-flex;align-items:center;gap:12px;font-family:var(--sans);font-size:12px;font-weight:600;
  letter-spacing:.26em;text-transform:uppercase;color:var(--accent-press)}
.kicker::before{content:"";width:26px;height:1px;background:var(--accent)}
.kicker--center::after{content:"";width:26px;height:1px;background:var(--accent)}

/* Gold hairline divider with a centered diamond */
.lux-rule{display:flex;align-items:center;justify-content:center;gap:16px;margin:clamp(28px,5vw,56px) auto}
.lux-rule::before,.lux-rule::after{content:"";height:1px;width:min(140px,18vw)}
.lux-rule::before{background:linear-gradient(90deg,transparent,var(--accent))}
.lux-rule::after{background:linear-gradient(90deg,var(--accent),transparent)}
.lux-rule i{width:7px;height:7px;background:var(--accent);transform:rotate(45deg);flex:0 0 auto;display:block}

/* Editorial band — full-bleed heritage green with a faint crest watermark */
.lux-band{position:relative;overflow:hidden;background:var(--ink);color:var(--warm-ivory)}
.lux-band::before{content:"";position:absolute;right:-3%;top:50%;transform:translateY(-50%);
  width:min(440px,42vw);aspect-ratio:1;opacity:.06;pointer-events:none;
  background:url('/assets/img/logo-crest.webp') no-repeat center/contain}
.lux-band .kicker{color:var(--accent)}
.lux-band h1,.lux-band h2,.lux-band h3,.lux-band .display{color:var(--warm-ivory)}
.lux-band p,.lux-band .lead{color:rgba(247,242,232,.82)}
.lux-band a:not(.btn){color:var(--accent)}
.lux-band .btn--outline{color:var(--warm-ivory);border-color:rgba(201,161,90,.55)}
.lux-band .btn--outline:hover{background:var(--accent);color:#1c130a;border-color:var(--accent)}

/* Button variants */
.btn--gold{background:var(--accent);color:#1c130a}
.btn--gold:hover{background:#d8b673;box-shadow:var(--shadow)}
.btn--outline{background:transparent;color:var(--ink);border-color:var(--accent)}
.btn--outline:hover{background:var(--accent);color:#1c130a}

/* Feature split — lifestyle image + editorial copy */
.feature-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.fs-media{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);
  box-shadow:var(--shadow);aspect-ratio:4/3;background:#1f2c22 center/cover no-repeat;
  background-image:linear-gradient(140deg,#1f4631,#143126 55%,#0e2018)}
.fs-media::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(201,161,90,.22);border-radius:inherit}
.fs-body .display{margin:14px 0 14px}
.fs-body .lead{margin-bottom:22px}
.feature-split--reverse .fs-media{order:2}
@media(max-width:860px){
  .feature-split{grid-template-columns:1fr;gap:28px}
  .feature-split--reverse .fs-media{order:0}
}

/* Editorial cards — gold top hairline reveals on hover */
.card--lux{border-top:2px solid transparent}
.card--lux:hover{border-top-color:var(--accent)}

/* Marquee as a refined masthead ticker */
.marquee span{font-style:italic;font-weight:500}
.marquee .dot{font-style:normal}

/* Stats — gold tick under each figure */
.stat .num{position:relative;display:inline-block;padding-bottom:14px}
.stat .num::after{content:"";position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:34px;height:2px;background:var(--accent);border-radius:2px}

/* Prose drop cap + refined quotes for editorial luxury */
.prose>p:not(.lead):first-of-type::first-letter{font-family:var(--display);font-weight:600;float:left;font-size:3.6em;
  line-height:.78;margin:6px 12px 0 0;color:var(--accent-press)}
.prose blockquote{font-style:italic}

/* Luxury footer — crest watermark + gold section headings */
.site-footer{position:relative;overflow:hidden}
.site-footer::before{content:"";position:absolute;right:-40px;bottom:-40px;width:300px;height:300px;opacity:.05;
  pointer-events:none;background:url('/assets/img/logo-crest.webp') no-repeat center/contain}
.site-footer h3{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;font-family:var(--sans);font-size:12px;font-weight:600}
.footer-brand{letter-spacing:.01em}
.footer-grid,.footer-bottom{position:relative;z-index:1}

/* ---- Editorial polish for category & article templates ---- */
/* Category kicker sits as its own line above the heading */
.cat-hero .kicker{display:flex;margin-bottom:16px}
/* Gold tick above each in-article section heading */
.prose h2{position:relative}
.prose h2::before{content:"";position:absolute;top:-18px;left:0;width:38px;height:2px;background:var(--accent);border-radius:2px}

/* ==========================================================================
   SKELETON LOADERS — shimmer placeholders shown while async content loads
   (Leaflet maps and the Supabase-backed player-review widget).
   ========================================================================== */
@keyframes sk-shimmer{100%{background-position:-200% 0}}
.sk{background:linear-gradient(100deg,var(--surface-2) 28%,#efe6d2 48%,var(--surface-2) 68%);
  background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite;border-radius:var(--r-sm);display:block}
.sk-line{height:13px;margin:11px 0;border-radius:6px}
.sk-line.w-90{width:90%}.sk-line.w-70{width:70%}.sk-line.w-50{width:50%}

/* Map containers shimmer until Leaflet paints tiles over them */
#map,.leaflet-mini{background:linear-gradient(100deg,var(--surface-2) 28%,#efe6d2 48%,var(--surface-2) 68%);
  background-size:200% 100%;animation:sk-shimmer 1.4s ease-in-out infinite}
.leaflet-container{background:var(--surface-2)}

/* Review widget skeleton */
.rv-skel{margin:4px 0}

@media(prefers-reduced-motion:reduce){.sk,#map,.leaflet-mini{animation:none}}

/* ==========================================================================
   PRO SHOP — merchandise catalog, product placeholders, product detail pages.
   "Coming soon" drops: imagery is a branded placeholder; the buy action is a
   "Reserve" CTA (email capture) rather than a live price/checkout.
   ========================================================================== */

/* Branded product image placeholder — heritage-green field, crest watermark,
   gold inner hairline + a small "coming soon" caption. Colorway modifiers vary
   the field so a grid of placeholders doesn't read as identical tiles. */
.prod-ph{position:relative;display:flex;align-items:flex-end;justify-content:center;text-align:center;
  overflow:hidden;background:radial-gradient(120% 120% at 50% 16%,#1f4631 0%,#143126 56%,#0e2018 100%)}
.prod-ph--gold{background:radial-gradient(120% 120% at 50% 16%,#caa765 0%,#8A6B43 56%,#5a4327 100%)}
.prod-ph--navy{background:radial-gradient(120% 120% at 50% 16%,#2a4067 0%,#1D2F4D 56%,#111d31 100%)}
.prod-ph--sand{background:radial-gradient(120% 120% at 50% 16%,#efe2c4 0%,#DCC9A4 55%,#b9a274 100%)}
.prod-ph::before{content:"";position:absolute;inset:0;background:url('/assets/img/logo-256.png') no-repeat center;
  background-size:min(50%,190px);opacity:.16}
.prod-ph::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(201,161,90,.30);pointer-events:none}
.prod-ph span{position:relative;z-index:1;margin-bottom:16px;font-family:var(--sans);font-size:10.5px;font-weight:600;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(247,242,232,.7);text-shadow:0 1px 10px rgba(0,0,0,.35)}
.prod-ph--sand span{color:rgba(20,49,38,.6);text-shadow:none}

/* Catalog grid + product cards */
.shop-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.product-card{position:relative;display:flex;flex-direction:column}
.product-card .prod-ph{aspect-ratio:1/1}
.product-card .card__body{display:flex;flex-direction:column;gap:6px;flex:1}
.product-card .p-name{font-family:var(--display);font-weight:600;font-size:21px;line-height:1.18;color:var(--ink);letter-spacing:-.01em}
.product-card .p-cat{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}
.product-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px}
.product-foot .p-price{font-family:var(--display);font-size:20px;font-weight:600;color:var(--ink)}
.product-foot .p-price s{color:var(--faint);font-weight:400;font-size:15px;margin-right:8px}

/* "Coming soon" ribbon pinned to the media corner */
.coming-soon{position:absolute;top:16px;left:16px;z-index:2;font-size:10.5px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:#1c130a;background:var(--accent);padding:7px 13px;border-radius:var(--r-pill);
  box-shadow:0 4px 14px rgba(20,49,38,.28)}

/* "Reserve" pill — sits where a buy/price chip would, signals the pre-order CTA */
.reserve-pill{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:600;color:#1c130a;
  background:var(--accent);padding:9px 16px;border-radius:var(--r-pill);transition:background .25s,transform .35s var(--ease)}
.reserve-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:#1c130a;opacity:.55}
.product-card:hover .reserve-pill{background:#d8b673}

/* ---- Product detail layout ---- */
.product-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(28px,5vw,64px);align-items:start}
.product-gallery{position:sticky;top:104px}
.product-gallery .prod-ph{aspect-ratio:1/1;border-radius:var(--r-lg);border:1px solid var(--line)}
.product-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}
.product-thumbs .prod-ph{aspect-ratio:1/1;border-radius:var(--r);border:1px solid var(--line)}
.product-thumbs .prod-ph span{display:none}
.product-info .p-cat{font-size:12px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--accent-press)}
.product-info h1{font-family:var(--display);font-weight:700;letter-spacing:-.02em;line-height:1.05;
  font-size:clamp(30px,4.4vw,52px);color:var(--ink);margin:12px 0 14px}
.product-price{display:flex;align-items:baseline;gap:14px;margin:6px 0 4px}
.product-price .now{font-family:var(--display);font-weight:700;font-size:34px;color:var(--ink)}
.product-price .was{font-size:17px;color:var(--faint);text-decoration:line-through}
.product-price .note{font-size:13px;color:var(--accent-press);font-weight:600}
.opt-group{margin:22px 0}
.opt-group .opt-label{display:block;font-size:13px;font-weight:600;letter-spacing:.04em;color:var(--ink-soft);margin-bottom:10px}
.opt-row{display:flex;gap:10px;flex-wrap:wrap}
.opt{min-width:46px;text-align:center;padding:10px 16px;border:1px solid var(--line-strong);border-radius:var(--r-pill);
  background:var(--surface);font-size:14px;font-weight:500;color:var(--ink-soft);cursor:pointer;transition:all .25s var(--ease)}
.opt:hover{border-color:var(--ink)}
.opt.sel{background:var(--ink);color:var(--white);border-color:var(--ink)}
.swatch{width:30px;height:30px;border-radius:50%;padding:0;min-width:0;border:2px solid var(--line-strong)}
.swatch.sel{border-color:var(--ink);box-shadow:0 0 0 3px var(--accent-soft)}
.product-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}
.product-actions .btn{flex:1 1 200px}
.reserve-note{margin-top:16px;font-size:13.5px;color:var(--muted);display:flex;gap:9px;align-items:flex-start}
.reserve-note::before{content:"✦";color:var(--accent);font-size:13px;line-height:1.5}
.prod-detail{margin-top:30px;border-top:1px solid var(--line);padding-top:22px}
.prod-detail dl{display:grid;grid-template-columns:140px 1fr;gap:10px 18px;font-size:14.5px}
.prod-detail dt{color:var(--muted)}
.prod-detail dd{color:var(--ink)}
.prod-detail h3{font-family:var(--display);font-size:20px;margin:0 0 12px}
.prod-detail p{font-size:15.5px;line-height:1.75;color:var(--ink-soft);margin-bottom:14px}
.prod-detail ul{margin:0 0 14px 20px}.prod-detail li{font-size:15px;line-height:1.7;margin-bottom:6px}

@media(max-width:900px){
  .product-layout{grid-template-columns:1fr;gap:32px}
  .product-gallery{position:static}
}
@media(max-width:1024px){.shop-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.shop-grid{grid-template-columns:1fr}.prod-detail dl{grid-template-columns:1fr;gap:2px 0}.prod-detail dt{margin-top:8px}}

/* ==========================================================================
   EVENTS CALENDAR — aggregated golf events shown as a date-blocked list.
   Static sample data today; ready to be populated from a ticketing API
   (Ticketmaster Discovery / SeatGeek / StubHub) — see events page comment.
   ========================================================================== */
.event-cal{display:grid;gap:14px;margin-top:8px}
.event-row{display:grid;grid-template-columns:auto 1fr auto;gap:clamp(16px,2.4vw,30px);align-items:center;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px 22px;
  box-shadow:var(--shadow-sm);transition:transform .4s var(--ease),box-shadow .4s var(--ease),border-color .3s}
.event-row:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:var(--line-strong)}
.event-date{flex:0 0 auto;width:74px;text-align:center;border-radius:var(--r-sm);overflow:hidden;border:1px solid var(--line);background:var(--bg)}
.event-date .m{display:block;background:var(--ink);color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;padding:5px 0}
.event-date .d{display:block;font-family:var(--display);font-weight:700;font-size:28px;color:var(--ink);padding:6px 0 8px;line-height:1}
.event-main h3{font-family:var(--display);font-weight:600;font-size:clamp(18px,2vw,23px);color:var(--ink);letter-spacing:-.01em}
.event-meta{display:flex;gap:8px 16px;flex-wrap:wrap;margin-top:6px;font-size:13.5px;color:var(--muted)}
.event-meta .venue{display:inline-flex;align-items:center;gap:6px}
.event-cta{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-end;gap:8px;text-align:right}
.event-cta .tag{white-space:nowrap}
.event-cta .elink{font-size:13px;font-weight:600;color:var(--accent-press);white-space:nowrap}
.event-cta .elink .arrow{transition:transform .3s var(--ease);display:inline-block}
.event-row:hover .event-cta .elink .arrow{transform:translateX(3px)}
.cal-note{margin-top:18px;font-size:13px;color:var(--faint);display:flex;gap:8px;align-items:flex-start}
.cal-note::before{content:"◇";color:var(--accent)}
@media(max-width:680px){
  .event-row{grid-template-columns:auto 1fr;gap:16px}
  .event-cta{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between;
    border-top:1px solid var(--line);padding-top:12px;text-align:left}
}

/* ==========================================================================
   APPLY-FOR-REVIEW — call-to-action panel + form on the Reviews category page.
   ========================================================================== */
.apply-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  padding:clamp(26px,4vw,44px);box-shadow:var(--shadow-sm);max-width:760px;margin:0 auto}
.apply-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:8px}
.apply-form .full{grid-column:1 / -1}
.apply-form label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin-bottom:7px}
.apply-form textarea.field{border-radius:var(--r);min-height:120px;resize:vertical;line-height:1.6}
.apply-form .btn{justify-self:start}
.apply-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin:8px 0 4px}
.apply-step{text-align:left}
.apply-step .n{font-family:var(--display);font-weight:700;font-size:26px;color:var(--accent);line-height:1}
.apply-step h4{font-family:var(--display);font-size:18px;margin:8px 0 4px;color:var(--ink)}
.apply-step p{font-size:14px;color:var(--muted);line-height:1.6}
@media(max-width:620px){.apply-form{grid-template-columns:1fr}.apply-steps{grid-template-columns:1fr;gap:16px}}
