/* ============================================================
   Meditation on the Great South Bay — design tokens + components
   Ported from design_handoff_landing_page/reference/tokens + components
   ============================================================ */

:root{
  /* core palette */
  --bay-black:#171716;
  --salt-white:#F4F1EA;
  --driftwood-taupe:#B8AA98;
  --dune-grass:#7D8168;
  --tide-blue:#4C6873;
  --sunset-clay:#B36A4C;

  --salt-white-2:#ECE7DC;
  --driftwood-12:rgba(184,170,152,.12);
  --driftwood-20:rgba(184,170,152,.20);
  --driftwood-30:rgba(184,170,152,.30);
  --driftwood-45:rgba(184,170,152,.45);
  --bay-black-08:rgba(23,23,22,.08);
  --bay-black-16:rgba(23,23,22,.16);
  --bay-black-60:rgba(23,23,22,.60);
  --salt-white-70:rgba(244,241,234,.70);
  --salt-white-16:rgba(244,241,234,.16);

  --border-hairline:var(--bay-black-16);
  --border-on-inverse:var(--salt-white-16);
  --focus-ring:var(--tide-blue);

  /* type */
  --font-serif-display:'Cormorant Garamond','Canela',Georgia,'Times New Roman',serif;
  --font-sans:'Hanken Grotesk','Suisse Int\'l','Neue Haas Grotesk',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;

  --weight-display-light:300;
  --weight-display-regular:400;
  --weight-body-regular:400;
  --weight-body-semibold:600;

  --text-hero:clamp(3rem,7.5vw,6.5rem);
  --text-display:clamp(2.5rem,5vw,4.25rem);
  --text-title:clamp(2rem,3.4vw,3rem);
  --text-heading:clamp(1.6rem,2.4vw,2.125rem);
  --text-subhead:1.5rem;

  --text-lead:1.3125rem;
  --text-base:1.0625rem;
  --text-sm:0.9375rem;
  --text-xs:0.8125rem;

  --text-label-size:0.8125rem;
  --tracking-label:0.16em;
  --tracking-label-tight:0.10em;

  --leading-display:1.04;
  --leading-title:1.12;
  --leading-snug:1.35;
  --leading-body:1.65;
  --leading-label:1.2;

  --tracking-display:-0.012em;

  /* spacing */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem;
  --space-5:1.5rem; --space-6:2rem; --space-7:3rem; --space-8:4rem;
  --space-9:6rem; --space-10:8rem; --space-11:11rem;

  --radius-xs:2px; --radius-sm:4px; --radius-md:8px; --radius-pill:999px;

  --shadow-soft:0 1px 2px rgba(23,23,22,.04),0 8px 24px rgba(23,23,22,.06);
  --shadow-lift:0 2px 4px rgba(23,23,22,.05),0 18px 48px rgba(23,23,22,.10);

  --container-max:1200px;
  --container-narrow:720px;
  --gutter:clamp(1.25rem,5vw,4rem);

  --ease-calm:cubic-bezier(0.22,0.61,0.36,1);
  --dur-fast:160ms; --dur-base:260ms; --dur-slow:520ms;
}

@media (max-width:920px){
  :root{ --space-9:3.5rem; --space-10:4.5rem; --space-11:5rem; }
}
@media (max-width:560px){
  :root{ --space-9:3rem; --space-10:3.5rem; }
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{margin:0}
body{
  background:var(--salt-white);color:var(--bay-black);font-family:var(--font-sans);
  font-size:var(--text-base);line-height:var(--leading-body);font-weight:var(--weight-body-regular);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
img{display:block;max-width:100%}
a{color:inherit}
*:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}

.lp-container{max-width:var(--container-max);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}
.lp-container--narrow{max-width:var(--container-narrow)}

.lp-section{padding-top:var(--space-9);padding-bottom:var(--space-9)}
.lp-section--lg{padding-top:var(--space-10);padding-bottom:var(--space-10)}
.lp-section--final{padding-top:var(--space-11);padding-bottom:var(--space-11)}
.lp-wash-20{background:var(--driftwood-20)}
.lp-wash-30{background:var(--driftwood-30)}
.lp-on-white{background:var(--salt-white)}
.lp-on-dark{background:var(--bay-black);color:var(--salt-white)}

/* ---------- type helpers ---------- */
.lp-eyebrow-gap{margin-bottom:var(--space-4)}
.lp-h-title{
  font-family:var(--font-serif-display);font-weight:var(--weight-display-light);
  font-size:var(--text-title);line-height:var(--leading-title);letter-spacing:var(--tracking-display);
  margin:var(--space-4) 0 var(--space-5);text-wrap:balance;
}
.lp-h-heading{
  font-family:var(--font-serif-display);font-weight:var(--weight-display-light);
  font-size:var(--text-heading);line-height:1.14;letter-spacing:var(--tracking-display);
  margin:var(--space-4) auto var(--space-2);
}
.lp-h-display{
  font-family:var(--font-serif-display);font-weight:var(--weight-display-light);
  font-size:var(--text-display);line-height:1.1;letter-spacing:var(--tracking-display);
  margin:var(--space-5) auto var(--space-5);
}
.lp-body{font-size:var(--text-base);line-height:var(--leading-body);color:var(--bay-black);margin:0 0 var(--space-4)}
.lp-body:last-child{margin-bottom:0}
.lp-lead{font-size:var(--text-lead);line-height:1.4}

/* ---------- SectionLabel ---------- */
.gsb-seclabel{
  display:inline-flex;align-items:center;gap:.7em;font-family:var(--font-sans);
  font-size:var(--text-label-size);font-weight:var(--weight-body-semibold);
  letter-spacing:var(--tracking-label);text-transform:uppercase;line-height:var(--leading-label);
  color:var(--dune-grass);
}
.gsb-seclabel--blue{color:var(--tide-blue)}
.gsb-seclabel--onDark{color:var(--salt-white-70)}
.gsb-seclabel__tick{width:18px;height:1px;background:currentColor;opacity:.6;display:inline-block;flex:0 0 auto}

/* ---------- Button ---------- */
.gsb-btn{
  --_bg:var(--bay-black);--_fg:var(--salt-white);--_bd:transparent;
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-sans);font-weight:var(--weight-body-semibold);
  letter-spacing:.01em;line-height:1;white-space:nowrap;cursor:pointer;
  background:var(--_bg);color:var(--_fg);border:1px solid var(--_bd);
  border-radius:var(--radius-sm);text-decoration:none;
  transition:background var(--dur-fast) var(--ease-calm),color var(--dur-fast) var(--ease-calm),
             border-color var(--dur-fast) var(--ease-calm),transform var(--dur-fast) var(--ease-calm);
}
.gsb-btn:active{transform:translateY(1px)}
.gsb-btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}
.gsb-btn--md{font-size:var(--text-sm);padding:.72em 1.5em}
.gsb-btn--lg{font-size:var(--text-base);padding:.9em 1.9em}
.gsb-btn--sm{font-size:var(--text-xs);padding:.6em 1.1em}
.gsb-btn--primary{--_bg:var(--bay-black);--_fg:var(--salt-white)}
.gsb-btn--primary:hover{--_bg:#2c2c29}
.gsb-btn--onDark{--_bg:var(--salt-white);--_fg:var(--bay-black)}
.gsb-btn--onDark:hover{--_bg:#fff}
.gsb-btn--secondary{--_bg:transparent;--_fg:var(--bay-black);--_bd:var(--bay-black)}
.gsb-btn--secondary:hover{--_bg:var(--driftwood-20)}
.gsb-btn--warm{--_bg:var(--sunset-clay);--_fg:var(--salt-white)}
.gsb-btn--warm:hover{--_bg:#a25c40}
.gsb-btn__arrow{font-size:1.05em;line-height:0;transform:translateY(.02em)}
.gsb-btn:disabled .gsb-btn__arrow{opacity:.6}

/* ---------- Field (Input / Textarea / Select) ---------- */
.gsb-field{display:flex;flex-direction:column;gap:.5rem;font-family:var(--font-sans)}
.gsb-field__label{
  font-size:var(--text-label-size);font-weight:var(--weight-body-semibold);
  letter-spacing:var(--tracking-label-tight);text-transform:uppercase;color:var(--dune-grass);
}
.gsb-field__required{color:var(--sunset-clay);margin-left:.2em}
.gsb-field__control{
  font-family:var(--font-sans);font-size:var(--text-base);color:var(--bay-black);
  background:var(--salt-white);border:1px solid var(--border-hairline);
  border-radius:var(--radius-xs);padding:.7em .85em;width:100%;box-sizing:border-box;
  transition:border-color var(--dur-fast) var(--ease-calm),box-shadow var(--dur-fast) var(--ease-calm);
}
.gsb-field__control::placeholder{color:var(--bay-black-60)}
.gsb-field__control:hover{border-color:var(--driftwood-taupe)}
.gsb-field__control:focus{outline:none;border-color:var(--tide-blue);box-shadow:0 0 0 3px rgba(76,104,115,.16)}
.gsb-field__control:disabled{opacity:.5;cursor:not-allowed}
.gsb-field--onDark .gsb-field__label{color:var(--salt-white-70)}
.gsb-field--onDark .gsb-field__control{background:transparent;color:var(--salt-white);border-color:var(--border-on-inverse)}
.gsb-field--onDark .gsb-field__control::placeholder{color:var(--salt-white-70)}
.gsb-field__hint{font-size:var(--text-xs);color:var(--bay-black-60)}
textarea.gsb-field__control{resize:vertical;min-height:6.5em;line-height:var(--leading-snug)}
.gsb-field select.gsb-field__control{
  appearance:none;-webkit-appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23171716' stroke-width='1.8'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right .85em center;
}
.lp-honeypot{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.gsb-field-error{font-size:var(--text-xs);color:var(--sunset-clay);margin-top:.35rem;display:none}
.gsb-field-error.is-visible{display:block}
.gsb-field__control.is-invalid{border-color:var(--sunset-clay)}

/* ---------- Photo placeholder ---------- */
.gsb-photo{
  position:relative;display:flex;align-items:flex-end;overflow:hidden;margin:0;
  background:linear-gradient(160deg,#9aa39c 0%,#6f7d80 45%,#4c5559 100%);
  border-radius:var(--radius-md);isolation:isolate;color:var(--salt-white);width:100%;
}
.gsb-photo--warm{background:linear-gradient(160deg,#c6b39c 0%,#b08a6e 55%,#7c5d49 100%)}
.gsb-photo--bay{background:linear-gradient(165deg,#aeb4ad 0%,#6d8186 50%,#3d4c52 100%)}
.gsb-photo--dune{background:linear-gradient(160deg,#a7a78c 0%,#868a6e 55%,#5b5f49 100%)}
.gsb-photo--square{border-radius:var(--radius-md)}
.gsb-photo--flat{border-radius:0}
.gsb-photo::before{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  background-size:160px 160px;mix-blend-mode:overlay;opacity:.55;
}
.gsb-photo::after{
  content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(23,23,22,.55) 0%,rgba(23,23,22,.10) 38%,rgba(23,23,22,0) 70%);
}
.gsb-photo__cap{
  position:relative;z-index:2;font-family:var(--font-sans);font-style:italic;
  font-size:var(--text-sm);line-height:var(--leading-snug);color:var(--salt-white);
  padding:var(--space-5);max-width:34ch;text-shadow:0 1px 12px rgba(0,0,0,.35);margin:0;
}
.gsb-photo__tag{
  position:absolute;top:var(--space-4);left:var(--space-4);z-index:2;
  font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--salt-white-70);
}
.gsb-photo--ratio-45{aspect-ratio:4/5}
.gsb-photo--ratio-11{aspect-ratio:1/1}
.gsb-photo--ratio-1610{aspect-ratio:16/10}

/* ============================================================
   Hero
   ============================================================ */
.lp-header{position:relative;min-height:100vh;display:flex;flex-direction:column;color:var(--salt-white);overflow:hidden}
.lp-hero-photo{position:absolute;inset:0;z-index:0;background-image:url('../assets/great-south-bay-sunset.jpg');background-size:cover;background-position:center}
.lp-hero-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E");
  background-size:170px 170px;mix-blend-mode:overlay;opacity:.34;
}
.lp-hero-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(15,20,26,.85) 0%,rgba(15,20,26,.40) 42%,rgba(15,20,26,.06) 78%),
             linear-gradient(to bottom,rgba(15,20,26,.46) 0%,rgba(15,20,26,0) 30%);
}
.lp-nav{
  position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;
  justify-content:space-between;gap:var(--space-6);padding:var(--space-5) var(--gutter);color:var(--salt-white);
}
.lp-nav__brand{
  font-family:var(--font-serif-display);font-weight:400;font-size:1.35rem;line-height:1;
  color:inherit;text-decoration:none;white-space:nowrap;
}
.lp-nav__brand small{
  display:block;font-family:var(--font-sans);font-size:9px;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;opacity:.72;margin-top:3px;
}
.lp-nav__right{display:flex;align-items:center;gap:var(--space-6)}
.lp-navlinks{display:flex;align-items:center;gap:var(--space-6);list-style:none;margin:0;padding:0}
.lp-navlinks a{font-size:var(--text-sm);font-weight:500;color:inherit;text-decoration:none;opacity:.82;transition:opacity var(--dur-fast) var(--ease-calm)}
.lp-navlinks a:hover{opacity:1}

.lp-hero-bottom{position:relative;z-index:2;margin-top:auto;width:100%;padding:clamp(104px,13vh,150px) var(--gutter) clamp(3rem,8vh,6rem)}
.lp-hero-inner{max-width:var(--container-max);margin:0 auto;display:grid;grid-template-columns:1.12fr .88fr;gap:var(--space-9);align-items:center}
.lp-hero-title{
  font-family:var(--font-serif-display);font-weight:300;font-size:var(--text-hero);
  line-height:1.04;letter-spacing:-.012em;margin:var(--space-5) 0 var(--space-5);max-width:13ch;
  text-shadow:0 2px 34px rgba(0,0,0,.32);
}
.lp-hero-lead{font-size:var(--text-lead);line-height:1.4;max-width:44ch;margin:0;color:var(--salt-white);text-shadow:0 1px 16px rgba(0,0,0,.34)}

.lp-hero-card{
  background:rgba(13,18,24,.52);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  border:1px solid var(--salt-white-16);border-radius:var(--radius-md);padding:var(--space-6);box-shadow:var(--shadow-lift);
}
.lp-hero-card__title{font-family:var(--font-serif-display);font-weight:300;font-size:1.7rem;line-height:1.12;margin:0 0 var(--space-2);color:var(--salt-white)}
.lp-hero-card__desc{font-size:var(--text-sm);line-height:1.5;color:var(--salt-white-70);margin:0 0 var(--space-5);max-width:40ch}
.lp-form-stack{display:flex;flex-direction:column;gap:var(--space-4)}
.lp-form-note{font-size:var(--text-xs);color:var(--salt-white-70);margin:var(--space-1) 0 0;line-height:1.5}
.lp-form-note--dark{color:var(--bay-black-60)}

/* ============================================================
   2-col content sections
   ============================================================ */
.lp-2col{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-9);align-items:start}
/* Grid items default to min-width:auto, which lets a nowrap button (or any
   long unbreakable content) inside a card force the whole column — and
   therefore the viewport — wider than the screen on mobile. Overriding to 0
   lets columns actually shrink to the available width. */
.lp-2col>*,.lp-hero-inner>*,.lp-guide>*,.lp-players>*,.lp-resources>*{min-width:0}
.lp-checklist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-6)}
.lp-checklist li{display:flex;gap:.7em;align-items:baseline;font-size:var(--text-base);line-height:1.4;color:var(--bay-black);padding:var(--space-3) 0;border-bottom:1px solid var(--bay-black-08)}
.lp-checklist li span{color:var(--tide-blue)}

.lp-statement-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.lp-statement-list li{font-size:var(--text-lead);line-height:1.4;color:var(--bay-black);padding:var(--space-4) 0;border-bottom:1px solid var(--bay-black-08)}
.lp-statement-list li:last-child{border-bottom:none}

.lp-dash-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.lp-dash-list li{display:flex;gap:.7em;align-items:baseline;font-size:var(--text-base);line-height:1.4;padding:var(--space-3) 0;border-bottom:1px solid var(--bay-black-08);color:var(--bay-black)}
.lp-dash-list li:last-child{border-bottom:none}
.lp-dash-list li span{color:var(--tide-blue)}

.lp-numbered-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.lp-numbered-list li{display:flex;gap:var(--space-4);align-items:baseline;padding:var(--space-4) 0;border-bottom:1px solid var(--bay-black-08)}
.lp-numbered-list li:last-child{border-bottom:none}
.lp-numbered-list__num{font-family:var(--font-serif-display);font-size:1.3rem;color:var(--tide-blue);min-width:2.2ch}
.lp-numbered-list__text{font-size:var(--text-base);line-height:1.4}

/* ============================================================
   Areas served (photo band)
   ============================================================ */
.lp-areas{position:relative;overflow:hidden;color:var(--salt-white)}
.lp-areas-photo{position:absolute;inset:0;z-index:0;background-image:url('../assets/great-south-bay-marsh.jpg');background-size:cover;background-position:center 60%}
.lp-areas-overlay{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to bottom,rgba(15,20,26,.69) 0%,rgba(15,20,26,.41) 38%,rgba(15,20,26,.37) 62%,rgba(15,20,26,.73) 100%);
}
.lp-areas-content{position:relative;z-index:2;max-width:var(--container-max);margin:0 auto;text-align:center}
.lp-areas-heading{max-width:20ch;text-shadow:0 2px 28px rgba(0,0,0,.34)}
.lp-pills{display:flex;flex-wrap:wrap;gap:var(--space-3);justify-content:center;margin-top:var(--space-6)}
.lp-pill{
  font-size:var(--text-xs);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--salt-white);
  border:1px solid var(--salt-white-16);border-radius:var(--radius-pill);padding:.6em 1.15em;
  background:rgba(13,18,24,.40);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.lp-areas-sub{margin-top:var(--space-5);font-size:var(--text-sm);color:var(--salt-white-70)}

/* ============================================================
   Guide
   ============================================================ */
.lp-guide{display:grid;grid-template-columns:.82fr 1.18fr;gap:var(--space-9);align-items:center}

/* ============================================================
   Listen / players
   ============================================================ */
.lp-players{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5)}
.lp-player-card{
  background:var(--salt-white);border:1px solid var(--border-hairline);border-radius:var(--radius-md);
  overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow-soft);text-decoration:none;color:var(--bay-black);
  transition:transform var(--dur-base) var(--ease-calm),box-shadow var(--dur-base) var(--ease-calm);
}
.lp-player-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.lp-player-art{position:relative;aspect-ratio:1/1}
.lp-player-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;width:62px;height:62px;
  border-radius:999px;border:0;cursor:pointer;background:var(--salt-white);color:var(--bay-black);
  display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lift);
  transition:background var(--dur-fast) var(--ease-calm);font-size:19px;
}
.lp-player-card:hover .lp-player-play{background:#fff}
.lp-player-play span{transform:translateX(2px);line-height:1}
.lp-player-body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2)}
.lp-player-label{font-size:11px;font-weight:600;letter-spacing:.13em;text-transform:uppercase;color:var(--dune-grass)}
.lp-player-title{font-family:var(--font-serif-display);font-weight:400;font-size:1.45rem;line-height:1.14;margin:0;color:var(--bay-black)}
.lp-player-blurb{font-size:var(--text-sm);line-height:1.5;color:var(--bay-black-60);margin:0}

/* ============================================================
   Coaching
   ============================================================ */
.lp-coaching-accent{width:44px;height:2px;background:var(--sunset-clay);margin:0 0 var(--space-5)}
.lp-coaching-fit-label{font-size:var(--text-label-size);font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--dune-grass);margin:0 0 var(--space-4)}
.lp-coaching-card{background:var(--salt-white-2);border:1px solid var(--border-hairline);border-radius:var(--radius-md);padding:var(--space-7);box-shadow:var(--shadow-soft)}
.lp-coaching-card__title{font-family:var(--font-serif-display);font-weight:400;font-size:1.6rem;line-height:1.12;margin:0 0 var(--space-2);color:var(--bay-black)}
.lp-coaching-card__desc{font-size:var(--text-sm);line-height:1.55;color:var(--bay-black-60);margin:0 0 var(--space-6);max-width:46ch}

/* ============================================================
   Resources
   ============================================================ */
.lp-resources{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5)}
.lp-resource-card{
  display:flex;flex-direction:column;background:var(--salt-white);border:1px solid var(--border-hairline);
  border-radius:var(--radius-md);overflow:hidden;text-decoration:none;color:var(--bay-black);
  transition:transform var(--dur-base) var(--ease-calm),box-shadow var(--dur-base) var(--ease-calm);
}
.lp-resource-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.lp-resource-card__body{padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-2);flex:1}
.lp-resource-card__title{font-family:var(--font-serif-display);font-weight:400;font-size:1.3rem;line-height:1.15;margin:0}
.lp-resource-card__blurb{font-size:var(--text-sm);line-height:1.5;color:var(--bay-black-60);margin:0;flex:1}
.lp-resource-card__cta{font-size:var(--text-sm);font-weight:600;color:var(--tide-blue);display:inline-flex;gap:.4em;align-items:center}

/* ============================================================
   FAQ
   ============================================================ */
.lp-faq-list{border-top:1px solid var(--bay-black-16)}
.lp-faq{border-bottom:1px solid var(--bay-black-16)}
.lp-faq summary{list-style:none;display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-5);cursor:pointer;padding:var(--space-5) 0;font-family:var(--font-serif-display);font-weight:400;font-size:1.4rem;line-height:1.2;color:var(--bay-black)}
.lp-faq summary::-webkit-details-marker{display:none}
.lp-faq__sign{font-family:var(--font-sans);font-size:1.4rem;color:var(--dune-grass);line-height:1;flex:0 0 auto;transition:transform var(--dur-base) var(--ease-calm)}
.lp-faq[open] .lp-faq__sign{transform:rotate(45deg)}
.lp-faq__body{padding:0 0 var(--space-6);font-size:var(--text-base);line-height:var(--leading-body);color:var(--bay-black-60);max-width:62ch}

/* ============================================================
   Footer
   ============================================================ */
.gsb-footer{font-family:var(--font-sans);background:var(--bay-black);color:var(--salt-white);padding:var(--space-9) var(--gutter) var(--space-7)}
.gsb-footer__inner{max-width:var(--container-max);margin:0 auto;display:flex;flex-wrap:wrap;gap:var(--space-8);justify-content:space-between}
.gsb-footer__brand{font-family:var(--font-serif-display);font-weight:300;font-size:2rem;line-height:1.05;margin:0;max-width:14ch}
.gsb-footer__cols{display:flex;gap:var(--space-8);flex-wrap:wrap}
.gsb-footer__col{display:flex;flex-direction:column;gap:var(--space-3)}
.gsb-footer__h{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dune-grass);margin:0 0 var(--space-2)}
.gsb-footer__link{font-size:var(--text-sm);color:var(--salt-white-70);text-decoration:none;transition:color var(--dur-fast) var(--ease-calm)}
.gsb-footer__link:hover{color:var(--salt-white)}
.gsb-footer__rule{max-width:var(--container-max);margin:var(--space-8) auto 0;border-top:1px solid var(--border-on-inverse);padding-top:var(--space-5);display:flex;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;font-size:var(--text-xs);color:var(--salt-white-70);letter-spacing:.02em}
.gsb-footer__rule-side{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}
.gsb-footer__sep{opacity:.4}
.gsb-footer__rule a{color:var(--salt-white-70);text-decoration:none;transition:color var(--dur-fast) var(--ease-calm)}
.gsb-footer__rule a:hover{color:var(--salt-white)}

/* ============================================================
   Modal (Bootstrap modal restyle)
   ============================================================ */
.lp-modal .modal-content{
  background:var(--salt-white);border-radius:var(--radius-md);border:none;
  padding:var(--space-8) var(--space-7) var(--space-7);box-shadow:var(--shadow-lift);
}
.lp-modal .modal-dialog{max-width:464px}
.lp-modal .btn-close-lp{
  position:absolute;top:var(--space-4);right:var(--space-4);width:34px;height:34px;border-radius:999px;
  border:0;background:transparent;color:var(--bay-black-60);font-size:22px;line-height:1;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast) var(--ease-calm),color var(--dur-fast) var(--ease-calm);
}
.lp-modal .btn-close-lp:hover{background:var(--driftwood-20);color:var(--bay-black)}
.lp-modal .modal-backdrop-blur{backdrop-filter:blur(4px)}
.modal-backdrop.show{opacity:.62}
.lp-modal-title{font-family:var(--font-serif-display);font-weight:300;font-size:1.85rem;line-height:1.12;margin:var(--space-3) 0 var(--space-2);color:var(--bay-black);max-width:18ch}
.lp-modal-desc{font-size:var(--text-sm);line-height:1.55;color:var(--bay-black-60);margin:0 0 var(--space-6);max-width:42ch}

/* ============================================================
   Form feedback
   ============================================================ */
.lp-form-feedback{font-size:var(--text-sm);line-height:1.5;margin-top:var(--space-2);display:none}
.lp-form-feedback.is-success{display:block;color:var(--tide-blue)}
.lp-form-feedback.is-error{display:block;color:var(--sunset-clay)}
.lp-form-submitting{opacity:.7;pointer-events:none}

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width:920px){
  .lp-2col,.lp-hero-inner,.lp-guide{grid-template-columns:1fr!important;gap:var(--space-7)!important}
  .lp-players{grid-template-columns:1fr!important}
  .lp-resources{grid-template-columns:1fr 1fr!important}
  .lp-navlinks{display:none!important}
  .lp-hero-bottom{padding-top:clamp(88px,11vh,120px)}
}
@media (max-width:560px){
  .lp-resources{grid-template-columns:1fr!important}
  .lp-checklist{grid-template-columns:1fr!important}
  .gsb-btn--lg{width:100%}
  .lp-hero-card{width:100%}
}

/* reCAPTCHA badge sits bottom-right by default; keep clear of mobile CTA stacks */
.grecaptcha-badge{z-index:30}
