/* ============================================================
   Strata — page-specific sections
   HOME: ported 1:1 from approved Concept E prototype.
   ============================================================ */

/* ================= HOME: HERO ================= */
.home-hero {
  min-height: 100svh;
  position: relative; overflow: hidden;
  display: flex; align-items: center;
  padding: 104px 0 132px;
  background: var(--st-midnight);
}

/* Hero media panel — right 64%; the slot content is swappable,
   the scrims are permanent. See data/asset-manifest.json. */
.hero-media {
  position: absolute; top: 0; right: 0; bottom: 0; width: 64%;
  overflow: hidden;
}
.hero-media__slot { position: absolute; inset: 0; }
.hero-media__slot img,
.hero-media__slot video {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: var(--hero-object-position, 56% 30%);
}
.hero-media__scrim { position: absolute; pointer-events: none; }
.hero-media__scrim--left {
  inset: 0;
  background: linear-gradient(90deg, #0B1424 0%, #0B1424 16%, rgba(11,20,36,0.96) 26%, rgba(11,20,36,0.82) 36%, rgba(11,20,36,0.55) 45%, rgba(11,20,36,0.25) 52%, rgba(11,20,36,0) 60%);
}
.hero-media__scrim--top {
  left: 0; right: 0; top: 0; height: 22%;
  background: linear-gradient(180deg, #0B1424 0%, rgba(11,20,36,0) 100%);
}
.hero-media__scrim--bottom {
  left: 0; right: 0; bottom: 0; height: 22%;
  background: linear-gradient(0deg, #0B1424 0%, rgba(11,20,36,0) 100%);
}

.home-hero__content { position: relative; }
.home-hero__copy { max-width: 760px; }
.home-hero__eyebrow {
  font-family: var(--font-mono); font-size: 17px; font-weight: 500;
  letter-spacing: 0.18em; color: var(--st-cobalt); margin-bottom: 24px;
}
.home-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(42px, 5.8vw, 88px); line-height: 0.93; letter-spacing: -0.01em;
  color: var(--st-bone); text-wrap: balance; max-width: 14ch;
}
/* Hero headline typed-in words: hidden only once JS has split them, so no-JS shows the full line. */
.home-hero__h1 .h1-word { opacity: 0; }
.home-hero__h1 .h1-word.is-on { opacity: 1; }
html[data-reduced] .home-hero__h1 .h1-word { opacity: 1; }

.home-hero__benefit {
  font-size: clamp(19px, 1.7vw, 24px); font-weight: 500; line-height: 1.4;
  color: var(--st-bone); margin-top: 28px; max-width: 34ch;
}
.home-hero__body {
  font-size: 17px; line-height: 1.65; color: var(--st-bone-72);
  margin-top: 16px; max-width: 56ch; text-wrap: pretty;
}
.home-hero__ctas {
  display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; align-items: center;
}
.home-hero__micro { font-size: 13.5px; color: rgba(247,243,234,0.6); margin-top: 20px; }

.scroll-cue {
  position: absolute; left: 0; right: 0; bottom: 18px;
  display: flex; flex-direction: column; align-items: center; gap: 8px;
  text-align: center; pointer-events: none;
}
.scroll-cue span {
  font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.18em;
  color: var(--st-bone-75);
}
.scroll-cue--dark span { color: var(--st-slate); }

@media (max-width: 767px) {
  .hero-media { width: 100%; opacity: 1; }
  .hero-media__slot img, .hero-media__slot video { object-position: var(--hero-object-position-mobile, 46% 30%); }
  .hero-media__scrim--left {
    background: linear-gradient(90deg, #0B1424 0%, #0B1424 20%, rgba(11,20,36,0.94) 36%, rgba(11,20,36,0.78) 50%, rgba(11,20,36,0.45) 64%, rgba(11,20,36,0.12) 80%, rgba(11,20,36,0) 92%);
  }
  .home-hero { padding-top: 96px; }
}

/* ================= HOME: SIGNATURE FOLD-BACK STAGE ================= */
.sigstage { position: relative; background: var(--st-midnight); height: 540svh; }
.sigstage__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.sigstage__svgwrap {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
}
.sigstage__frame {
  position: relative; width: min(100%, 138svh); aspect-ratio: 3 / 2; margin: 0 auto;
}
.sigstage__frame > svg { position: absolute; inset: 0; width: 100%; height: 100%; }

.sig-label {
  position: absolute;
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em;
  color: var(--st-bone); white-space: nowrap;
  transform: translate(-50%, 20px);
}
.sig-label--athlete {
  left: 50%; top: 53.75%;
  transform: translate(calc(-100% - 30px), -50%);
  font-size: 17px; font-weight: 700; letter-spacing: 0.24em;
}

.sigstage__overlay {
  position: absolute; inset: 0;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; padding: 0 24px;
  pointer-events: none;
}
.sigstage__act1 { transform: translateY(-24svh); }
.sigstage__act1 h2 {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(30px, 3.6vw, 52px); line-height: 1.06;
  color: var(--st-bone); text-wrap: balance; max-width: 22ch;
}
.sigstage__act2 { transform: translateY(26svh); }
.sigstage__act2 p {
  font-size: clamp(17px, 1.6vw, 22px); line-height: 1.55;
  color: var(--st-bone-85); max-width: 44ch; text-wrap: balance;
}

.sigstage__peak-mask { overflow: hidden; padding: 2px 0; }
.sigstage__peak-line {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(40px, 6.4vw, 104px); line-height: 0.9; letter-spacing: -0.015em;
  color: var(--st-bone);
  transform: translateY(112%);
  will-change: transform;
}
.sigstage__peak-support {
  font-size: clamp(17px, 1.5vw, 21px); line-height: 1.5;
  color: var(--st-bone-82); margin-top: 28px; max-width: 48ch;
  opacity: 0;
}
.sigstage__peak-cta { margin-top: 32px; opacity: 0; }
.sigstage__peak-cta .btn-primary { padding: 17px 36px; font-size: 16px; }

.sigstage__cue { opacity: 0; pointer-events: none; }

/* ================= HOME: FLOW SECTIONS (Bone main) ================= */
.home-main { position: relative; z-index: 2; background: var(--st-bone); }

.home-nil { padding: clamp(72px, 9vw, 140px) var(--gutter) clamp(56px, 6vw, 96px); }
.home-law {
  background: var(--st-white);
  border-top: 1px solid var(--st-hairline);
  border-bottom: 1px solid var(--st-hairline);
  padding: clamp(64px, 7vw, 112px) var(--gutter);
}
.home-law__cards {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px;
}
.home-intl { padding: clamp(64px, 7vw, 112px) var(--gutter); }
.section-link { margin-top: 32px; }

@media (max-width: 767px) {
  .home-law__cards { grid-template-columns: 1fr; }
}

/* ================= HOME: FOUNDER (Midnight) ================= */
.home-founder { background: var(--st-midnight); padding: clamp(64px, 7vw, 112px) var(--gutter) 0; overflow: hidden; }
/* photo anchored flush to the section's bottom edge; the text column carries the bottom padding */
.home-founder__grid { align-items: end; }
.home-founder__grid > div:last-child { padding-bottom: clamp(64px, 7vw, 112px); align-self: center; }
.home-founder__img { align-self: end; }
.home-founder__grid {
  max-width: var(--content); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr);
  gap: clamp(32px, 5vw, 80px); align-items: center;
}
.home-founder__img { position: relative; }
.home-founder__img img {
  width: 100%; max-width: 420px; height: auto; display: block;
  mix-blend-mode: lighten; margin: 0 auto;
}
.home-founder__h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(34px, 4vw, 60px); line-height: 0.96;
  color: var(--st-bone); text-wrap: balance;
}
.home-founder__body {
  font-size: 16.5px; line-height: 1.68; color: var(--st-bone-78);
  margin-top: 24px; max-width: 60ch; text-wrap: pretty;
}
.home-founder__body + .home-founder__body { margin-top: 16px; }
.home-founder__id {
  margin-top: 28px; padding-top: 20px;
  border-top: 1px solid rgba(247, 243, 234, 0.18);
}
.home-founder__id .name { font-size: 17px; font-weight: 600; color: var(--st-bone); }
.home-founder__id .role { font-size: 14.5px; color: var(--st-steel); margin-top: 2px; }
.home-founder__id .role + .role { margin-top: 0; }
.home-founder__link { margin-top: 24px; }

@media (max-width: 767px) {
  .home-founder__grid { grid-template-columns: 1fr; }
  .home-founder__img { order: 2; }
}

/* ================= HOME: BUILT FOR COLLEGE FOOTBALL ================= */
.home-cfb { padding: clamp(72px, 8vw, 128px) var(--gutter); }
.home-cfb__grid {
  max-width: var(--content); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr);
  gap: clamp(36px, 5vw, 88px); align-items: center;
}
.home-cfb__h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(38px, 5vw, 80px); line-height: 0.92;
  color: var(--st-midnight); max-width: 16ch; text-wrap: balance;
}
.home-cfb__body {
  font-size: 17px; line-height: 1.68; color: var(--st-ink-soft);
  margin-top: 28px; max-width: 66ch; text-wrap: pretty;
}
.home-cfb__legal {
  font-size: 14.5px; line-height: 1.6; color: var(--st-slate);
  margin-top: 22px; max-width: 66ch;
}
.home-cfb__panel svg { width: 100%; height: auto; display: block; }

@keyframes cfbShimmer {
  0%   { fill: #F7F3EA; filter: none; }
  30%  { fill: #315CF5; filter: drop-shadow(0 0 7px rgba(87,70,232,0.9)); }
  60%  { fill: #F7F3EA; filter: drop-shadow(0 0 4px rgba(49,92,245,0.5)); }
  100% { fill: #F7F3EA; filter: none; }
}
@keyframes cfbGlow {
  0%, 100% { transform: scale(1); opacity: 0.75; }
  50%      { transform: scale(1.28); opacity: 1; }
}
@keyframes cfbPing {
  0%   { r: 4;  opacity: 0.9; }
  70%  { r: 13; opacity: 0; }
  100% { r: 13; opacity: 0; }
}
.cfb-ping { animation: cfbPing 2.6s ease-out infinite; }
.cfb-ping--d2 { animation-delay: 0.5s; }
.cfb-ping--d3 { animation-delay: 1s; }
.cfb-glow-pulse { animation: cfbGlow 3.2s ease-in-out infinite; }
.cfb-shimmer { animation: cfbShimmer 1.3s ease-in-out 1; }

@media (max-width: 767px) {
  .home-cfb__grid { grid-template-columns: 1fr; }
}

/* ================= HOME: FINAL CTA (Midnight) ================= */
.home-cta {
  background: var(--st-midnight);
  padding: clamp(80px, 9vw, 144px) var(--gutter);
  text-align: center;
}
.home-cta__inner { max-width: 760px; margin: 0 auto; }
.home-cta__h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(40px, 5.4vw, 84px); line-height: 0.92;
  color: var(--st-bone); text-wrap: balance;
}
.home-cta__body {
  font-size: 17px; line-height: 1.68; color: var(--st-bone-75);
  margin-top: 24px; text-wrap: pretty;
}
.home-cta__actions {
  display: flex; gap: 16px; justify-content: center; align-items: center;
  flex-wrap: wrap; margin-top: 36px;
}

/* ============================================================
   REDUCED MOTION — complete alternative (Concept E `reduced` branch)
   Activated by html[data-reduced] (set from prefers-reduced-motion,
   ?rm=1, or the om-rm event).
   ============================================================ */
html[data-reduced] .sigstage { height: auto; }
html[data-reduced] .sigstage__sticky {
  position: relative; height: auto; overflow: visible;
  padding: 96px 20px 120px; max-width: var(--content); margin: 0 auto;
}
html[data-reduced] .sigstage__svgwrap {
  position: static; max-width: 1000px; margin: 48px auto 0; padding: 0; display: block;
}
html[data-reduced] .sigstage__overlay {
  position: relative; inset: auto; transform: none; padding: 0;
  pointer-events: auto;
}
html[data-reduced] .sigstage__act1 { max-width: 640px; margin: 0 auto; }
html[data-reduced] .sigstage__act2 { max-width: 640px; margin: 20px auto 0; }
html[data-reduced] .sigstage__peak { margin-top: 72px; }
html[data-reduced] .sigstage__peak-line { transform: none; }
html[data-reduced] .sigstage__peak-support,
html[data-reduced] .sigstage__peak-cta { opacity: 1; }
html[data-reduced] .sigstage__cue { display: none; }
html[data-reduced] .num-row,
html[data-reduced] .flip-card {
  opacity: 1; transform: none; transition: none;
}
html[data-reduced] .eyebrow-mono.do-pulse,
html[data-reduced] .btn-final.do-pulse { animation: none; }
html[data-reduced] .cfb-ping, html[data-reduced] .cfb-glow-pulse,
html[data-reduced] .cfb-shimmer { animation: none; }
html[data-reduced] .social-circle { transition: none; }
html[data-reduced] .social-circle:hover { transform: none; }
html[data-reduced] .site-header { transition: none; }

@media (prefers-reduced-motion: reduce) {
  .num-row, .flip-card { transition: none; }
}

/* Mobile step-down for the signature stage (design system §15.2):
   smaller label type, secondary marks unlabeled, athlete label under ring.
   Flagged in QA notes as a mobile adaptation of the approved desktop design. */
@media (max-width: 767px) {
  .sigstage__svgwrap { padding: 0; }
  /* The play chart runs edge to edge: the frame scales up hard so the
     X's and their traced routes carry the phone width; label type is
     stepped DOWN in equal measure so only the chart grows, not the
     words (7.9px here renders at ~12.6px after the 1.6 scale). */
  .sigstage__frame { transform: scale(1.6); }
  .sig-label { font-size: 7.9px; letter-spacing: 0.08em; }
  #sig-label-7, #sig-label-8, #sig-label-9, #sig-label-10 { display: none; }
  /* Two clean chalk rows at 390px: REV SHARE / BRANDS / PORTAL read
     above the line, COLLECTIVES / OFFER TERMS / NIL below it, with
     small horizontal nudges so neighbors clear each other and the
     athlete ring stays unobstructed. */
  #sig-label-1 { transform: translate(calc(-50% - 5px), -25px) !important; }
  #sig-label-3 { transform: translate(-50%, -25px) !important; }
  #sig-label-5 { transform: translate(-50%, -25px) !important; }
  #sig-label-2 { transform: translate(calc(-50% - 13px), 12px) !important; }
  #sig-label-4 { transform: translate(calc(-50% + 13px), 12px) !important; }
  #sig-label-6 { transform: translate(calc(-50% + 13px), 12px) !important; }
  .sig-label--athlete {
    display: block;
    font-size: 10px; letter-spacing: 0.18em;
    transform: translate(-50%, 22px) !important;
  }
}

/* ============================================================
   SPORTS LAW PAGE — "The Contract X-Ray"
   Interior page under the white header (CLAUDE.md rule).
   Mobile is a first-class design target throughout.
   ============================================================ */

/* ---------- Hero (Midnight stage) ---------- */
.law-hero {
  background: var(--st-bone); /* Brian (Aug 31): match the NIL hero; the stage below carries the Midnight */
  min-height: 88svh;
  display: flex; align-items: center;
  position: relative;
  padding: calc(72px + clamp(56px, 8vw, 96px)) var(--gutter) clamp(88px, 10vw, 128px);
}
.law-hero__copy { max-width: 820px; }
.law-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(40px, 5.4vw, 84px); line-height: 0.93; letter-spacing: -0.01em;
  color: var(--st-midnight); text-wrap: balance; max-width: 16ch;
}
.law-hero__lead {
  font-size: clamp(18px, 1.6vw, 22px); font-weight: 500; line-height: 1.45;
  color: var(--st-navy); margin-top: 28px; max-width: 46ch; text-wrap: pretty;
}
.law-hero__body {
  font-size: 17px; line-height: 1.65; color: var(--st-slate);
  margin-top: 16px; max-width: 56ch; text-wrap: pretty;
}
.law-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.disclosure--dark { color: var(--st-steel); border-top-color: var(--st-bone-hairline); }
.disclosure--center { margin-left: auto; margin-right: auto; text-align: center; }

/* ---------- X-Ray pinned stage ---------- */
.xray { position: relative; background: var(--st-midnight); height: 500svh; }
.xray__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }

.xray__docwrap {
  position: absolute; left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: min(640px, calc(100vw - 32px));
  height: min(78svh, 860px);
  border-radius: 14px; overflow: hidden;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.5);
}
.xray__doc {
  background: var(--st-white); color: var(--st-navy);
  padding: clamp(18px, 3vw, 30px) clamp(18px, 3.4vw, 34px);
  will-change: transform;
}
.xray__dochead {
  display: flex; justify-content: space-between; align-items: baseline; gap: 12px;
  border-bottom: 1px solid var(--st-hairline); padding-bottom: 12px;
}
.xray__doclabel {
  font-family: var(--font-mono); font-size: clamp(11px, 1.2vw, 13px);
  letter-spacing: 0.14em; color: var(--st-navy); font-weight: 500;
}
.xray__doctag {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.1em;
  color: var(--st-slate); border: 1px solid var(--st-hairline);
  border-radius: var(--radius-xs); padding: 3px 7px; white-space: nowrap;
}
.xray__figure {
  padding: clamp(18px, 2.6vw, 28px) 0 clamp(14px, 2vw, 22px);
  border-bottom: 1px solid var(--st-hairline);
  transform-origin: left top;
  will-change: transform, opacity;
}
.xray__figure-label {
  font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.14em;
  color: var(--st-slate);
}
.xray__figure-num {
  font-family: var(--font-display); font-weight: 700;
  font-size: clamp(56px, 9vw, 92px); line-height: 1;
  letter-spacing: -0.01em; color: var(--st-midnight);
  font-variant-numeric: tabular-nums;
  margin-top: 6px;
}
.xray__figure-note {
  font-family: var(--font-mono); font-size: 9.5px; letter-spacing: 0.1em;
  color: var(--st-slate); margin-top: 8px;
}
.xray__clauses { list-style: none; margin: 0; padding: 0; }
.xray__clause {
  display: flex; gap: 14px; align-items: flex-start;
  padding: clamp(10px, 1.4vw, 14px) 10px;
  border-bottom: 1px solid var(--st-hairline);
  border-left: 3px solid transparent;
  margin-left: -10px;
  opacity: 0.38;
  position: relative;
  transition: opacity .35s ease, border-color .35s ease, background .35s ease;
}
.xray__clause-n {
  font-family: var(--font-mono); font-size: 11px; color: var(--st-slate);
  padding-top: 3px; min-width: 20px;
}
.xray__clause h3 {
  font-size: clamp(14px, 1.5vw, 16.5px); font-weight: 600; color: var(--st-midnight);
  letter-spacing: -0.005em; line-height: 1.3;
}
.redact { display: flex; flex-direction: column; gap: 5px; margin-top: 7px; }
.redact i {
  display: block; height: 6px; border-radius: 3px;
  background: linear-gradient(90deg, #E4E9EF 0%, #EDF1F5 60%, #E4E9EF 100%);
}
.redact i:first-child { width: 92%; }
.redact i:last-child { width: 64%; }
.xray__clause.is-lit {
  opacity: 1;
  border-left-color: var(--st-violet);
  background: rgba(87, 70, 232, 0.05);
}
.xray__clause.is-lit .xray__clause-n { color: var(--st-violet); }
.xray__risk-dot {
  position: absolute; right: 8px; top: 50%;
  width: 9px; height: 9px; border-radius: 50%;
  background: var(--st-coral);
  opacity: 0; transform: translateY(-50%) scale(0.5);
  transition: opacity .35s ease, transform .35s ease;
}
.xray__clause--risk.is-lit .xray__risk-dot { opacity: 1; transform: translateY(-50%) scale(1); }
.xray__disclaimer {
  font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.04em;
  line-height: 1.6; color: var(--st-slate); padding-top: 14px;
}
.xray__scan {
  position: absolute; left: 0; right: 0; top: -4px; height: 3px;
  background: linear-gradient(90deg, rgba(87,70,232,0) 0%, rgba(87,70,232,0.9) 18%, #315CF5 50%, rgba(87,70,232,0.9) 82%, rgba(87,70,232,0) 100%);
  box-shadow: 0 0 18px rgba(87, 70, 232, 0.55);
  opacity: 0;
  will-change: transform, opacity;
}

.xray__cap {
  position: absolute; left: 50%; bottom: 6.5svh;
  transform: translateX(-50%);
  width: min(680px, calc(100vw - 48px));
  text-align: center;
  font-size: clamp(16px, 1.6vw, 21px); font-weight: 500; line-height: 1.5;
  color: var(--st-bone);
  text-shadow: 0 2px 18px rgba(11, 20, 36, 0.9);
  opacity: 0;
}
.xray__peak { padding: 0 24px; }
.xray__peak-line { font-size: clamp(34px, 6.2vw, 100px); }

/* mobile-first X-Ray adjustments */
@media (max-width: 767px) {
  .xray__docwrap { height: min(72svh, 640px); top: 46%; }
  .xray__figure-num { font-size: clamp(44px, 15vw, 64px); }
  .xray__clause h3 { font-size: 14px; }
  .xray__cap { bottom: 4.5svh; font-size: 15.5px; }
  .xray__peak-line { font-size: clamp(30px, 9.4vw, 40px); }
}

/* X-Ray reduced motion: static annotated document, everything legible */
html[data-reduced] .xray { height: auto; }
html[data-reduced] .xray__sticky {
  position: relative; height: auto; overflow: visible;
  padding: 72px 16px 96px;
}
html[data-reduced] .xray__docwrap {
  position: relative; left: auto; top: auto; transform: none;
  margin: 0 auto; height: auto; overflow: visible;
}
html[data-reduced] .xray__clause { opacity: 1; border-left-color: var(--st-violet); background: rgba(87,70,232,0.05); }
html[data-reduced] .xray__clause--risk .xray__risk-dot { opacity: 1; transform: translateY(-50%) scale(1); }
html[data-reduced] .xray__scan { display: none; }
html[data-reduced] .xray__cap {
  position: relative; left: auto; bottom: auto; transform: none;
  opacity: 1; margin: 28px auto 0;
}
html[data-reduced] .xray__peak { position: relative; margin-top: 56px; }

/* ---------- Contracts: Review & Counsel (White) ---------- */
.law-contracts {
  background: var(--st-white);
  border-bottom: 1px solid var(--st-hairline);
  padding: clamp(64px, 7vw, 112px) var(--gutter);
  position: relative; z-index: 2;
}
.law-body {
  font-size: 17px; line-height: 1.68; color: var(--st-ink-soft);
  max-width: 76ch; text-wrap: pretty; margin-bottom: clamp(28px, 3vw, 40px);
}
.law-body--dark { color: var(--st-bone-78); }
.law-sublabel {
  font-family: var(--font-mono); font-size: 12px; font-weight: 500;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--st-slate);
  margin-bottom: 4px;
}
.law-sublabel--dark { color: var(--st-steel); }
.num-row--bare { grid-template-columns: 60px 1fr; }
@media (max-width: 767px) { .num-row--bare { grid-template-columns: 40px 1fr; } }

/* ---------- Eligibility & Litigation (Bone, kinetic timeline) ---------- */
.law-elig { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.elig-timeline { margin: clamp(32px, 4vw, 56px) 0; }
.elig-svg { width: 100%; height: auto; display: block; }
.elig-svg--mobile { display: none; max-width: 380px; margin: 0 auto; }
@media (max-width: 767px) {
  .elig-svg--desktop { display: none; }
  .elig-svg--mobile { display: block; }
}
.law-examples {
  columns: 2; column-gap: clamp(24px, 4vw, 64px);
  margin: 8px 0 0; padding: 0 0 0 20px;
  font-size: 15.5px; line-height: 1.62; color: var(--st-navy);
}
.law-examples li { margin-bottom: 10px; break-inside: avoid; }
.law-examples--dark { color: var(--st-bone-78); }
@media (max-width: 767px) { .law-examples { columns: 1; } }

/* ---------- Investigations & Athlete Defense (Midnight, quieter) ---------- */
.law-invest { background: var(--st-midnight); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.split-head--dark h2 { color: var(--st-bone); }
.split-head--dark .lead { color: var(--st-bone-75); }
.invest-steps {
  list-style: none; margin: clamp(32px, 4vw, 48px) 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px;
}
.invest-step {
  border: 1px solid var(--st-bone-hairline); border-radius: 12px;
  padding: 18px 20px;
  display: flex; gap: 14px; align-items: baseline;
  background: rgba(247, 243, 234, 0.03);
  opacity: 0; transform: translateY(22px);
  transition: opacity .6s ease, transform .6s ease;
}
.invest-step.is-in { opacity: 1; transform: translateY(0); }
.invest-step__n {
  font-family: var(--font-mono); font-size: 12px; color: var(--st-cobalt);
  border: 1px solid rgba(49, 92, 245, 0.45); border-radius: 50%;
  width: 24px; height: 24px; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
}
.invest-step p { font-size: 15px; font-weight: 500; color: var(--st-bone); }
@media (max-width: 1023px) { .invest-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .invest-steps { grid-template-columns: 1fr; } }
.invest-pull {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(22px, 2.6vw, 32px); line-height: 1.15;
  color: var(--st-bone); max-width: 30ch; text-wrap: balance;
  border-left: 3px solid var(--st-cobalt); padding-left: 18px;
  margin-top: clamp(28px, 3vw, 44px);
}
.invest-pull--white { border-left-color: var(--st-bone); }
.invest-pull--lead { margin-top: 6px; font-size: clamp(19px, 2vw, 26px); max-width: 40ch; }
html[data-reduced] .invest-step { opacity: 1; transform: none; transition: none; }

/* ---------- How legal representation begins (Bone precision) ---------- */
.law-steps { background: var(--st-bone); border-top: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.law-steps__h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(32px, 4vw, 60px); line-height: 0.96; color: var(--st-midnight);
  margin-bottom: clamp(32px, 4vw, 48px);
}

/* ---------- Closing ---------- */
.law-close .home-cta__h2 { margin: 0 auto; }
.xray__peak .sigstage__peak-support { text-shadow: 0 2px 16px rgba(11, 20, 36, 0.9); }
.law-close__support {
  font-size: clamp(18px, 1.8vw, 23px); font-weight: 500; line-height: 1.45;
  color: var(--st-bone); margin-top: 22px;
}
.law-close .home-cta__body { max-width: 58ch; margin-left: auto; margin-right: auto; }
.law-close .disclosure { max-width: 66ch; }
@media (max-width: 767px) {
  .xray__peak-line { text-wrap: balance; }
}

/* ============================================================
   NIL REPRESENTATION — "The Portal Shift"
   ============================================================ */
.nil-hero {
  background: var(--st-bone);
  padding: calc(72px + clamp(56px, 8vw, 96px)) var(--gutter) clamp(72px, 9vw, 120px);
}
.nil-hero__copy { max-width: 820px; }
.nil-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(44px, 6vw, 92px); line-height: 0.92; letter-spacing: -0.01em;
  color: var(--st-midnight); text-wrap: balance;
}
.nil-hero__lead {
  font-size: clamp(18px, 1.7vw, 23px); font-weight: 500; line-height: 1.45;
  color: var(--st-navy); margin-top: 28px; max-width: 46ch; text-wrap: pretty;
}
.nil-hero__body {
  font-size: 17px; line-height: 1.65; color: var(--st-slate);
  margin-top: 16px; max-width: 60ch; text-wrap: pretty;
}
.nil-hero__ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.btn-secondary-light {
  border: 1px solid var(--st-violet); color: var(--st-violet);
  border-radius: var(--radius-md); padding: 15px 30px;
  font-size: 15.5px; font-weight: 600;
  display: inline-flex; align-items: center; min-height: 48px;
}
.btn-secondary-light:hover { color: var(--st-violet-press); border-color: var(--st-violet-press); }

.portal { position: relative; background: var(--st-midnight); height: 460svh; }
.portal__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.portal__frame {
  position: absolute; inset: 0; margin: auto;
  width: min(94%, 150svh); aspect-ratio: 12 / 7; max-height: 74svh;
}
.portal__frame > svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.pt-label {
  position: absolute; transform: translate(14px, -50%);
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em;
  color: var(--st-bone); white-space: nowrap; opacity: 0;
}
.pt-label--start { left: 11.6%; top: 50%; transform: translate(-50%, 30px); opacity: 1; }
.pt-label--field { left: 80%; top: 50%; transform: translate(-50%, -76px); }
.portal__cap {
  position: absolute; left: 50%; bottom: 7svh; transform: translateX(-50%);
  width: min(640px, calc(100vw - 48px)); text-align: center;
  font-size: clamp(15.5px, 1.5vw, 20px); line-height: 1.5; color: var(--st-bone-85);
  text-shadow: 0 2px 16px rgba(11, 20, 36, 0.9); opacity: 0;
}
.portal__cap strong { color: var(--st-bone); font-weight: 600; }
.portal__peak-line { font-size: clamp(34px, 6.2vw, 100px); }
@media (max-width: 767px) {
  .portal__frame { width: 100%; max-height: 56svh; top: -8svh; transform: scale(1.22); }
  .pt-label { font-size: 9.5px; letter-spacing: 0.08em; }
  .pt-label--field { display: none; } /* collides with branch labels at small widths; captions carry the beat */
  .portal__cap { bottom: 5svh; }
  .portal__peak-line { font-size: clamp(28px, 8.6vw, 38px); text-wrap: balance; }
}
html[data-reduced] .portal { height: auto; }
html[data-reduced] .portal__sticky { position: relative; height: auto; overflow: visible; padding: 72px 16px 96px; }
html[data-reduced] .portal__frame { position: relative; inset: auto; margin: 0 auto; max-height: none; }
html[data-reduced] .portal__frame .draw-path { stroke-dashoffset: 0 !important; }
html[data-reduced] .portal__frame [opacity="0"], html[data-reduced] .pt-label { opacity: 1 !important; }
html[data-reduced] .portal__cap { position: relative; left: auto; bottom: auto; transform: none; opacity: 1; margin: 22px auto 0; }
html[data-reduced] .portal__peak { position: relative; margin-top: 56px; }

.nil-lanes { background: var(--st-white); border-bottom: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); position: relative; z-index: 2; }
.nil-fit .law-body { margin-bottom: 14px; } /* single paragraph rhythm, not a double break */
.nil-transfer { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }

/* Decision-factors rail: lateral scroll on desktop, stacked on mobile */
.factor-rail {
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr);
  gap: 14px; overflow-x: auto; padding: 6px 2px 18px;
  scroll-snap-type: x proximity;
  scrollbar-width: thin; scrollbar-color: var(--st-hairline) transparent;
}
.factor-card {
  background: var(--st-white); border: 1px solid var(--st-hairline);
  border-radius: 14px; padding: 22px; scroll-snap-align: start;
  display: flex; flex-direction: column; gap: 12px;
}
.factor-card span { font-family: var(--font-mono); font-size: 12px; color: var(--st-violet); }
.factor-card p { font-size: 15.5px; font-weight: 500; line-height: 1.45; color: var(--st-midnight); }
@media (max-width: 767px) {
  .factor-rail { grid-auto-flow: row; grid-auto-columns: unset; grid-template-columns: 1fr; overflow: visible; }
}
.nil-important {
  font-family: var(--font-display); font-weight: 600;
  font-size: clamp(21px, 2.4vw, 30px); line-height: 1.2; color: var(--st-midnight);
  border-left: 3px solid var(--st-violet); padding-left: 18px;
  max-width: 34ch; text-wrap: balance; margin-top: clamp(24px, 3vw, 40px);
}
/* Pull-quote used as a section lead (Sports Law eligibility): inherits the split-head slot */
.nil-important--lead { margin-top: 6px; font-size: clamp(19px, 2vw, 26px); }

.nil-hs { background: var(--st-bone); padding: 0 var(--gutter) clamp(64px, 7vw, 112px); }
.nil-hs__card {
  background: var(--st-soft-violet); border-radius: var(--radius-lg);
  padding: clamp(28px, 4vw, 56px);
}
.nil-hs__card h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(30px, 3.6vw, 52px); line-height: 0.96; color: var(--st-midnight);
  margin-bottom: 20px;
}
.nil-parent-pull {
  font-size: clamp(16.5px, 1.5vw, 20px); font-weight: 500; line-height: 1.55;
  color: var(--st-navy); border-left: 3px solid var(--st-violet);
  padding-left: 18px; max-width: 62ch; text-wrap: pretty;
}
.nil-includes { background: var(--st-white); border-top: 1px solid var(--st-hairline); border-bottom: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.nil-services {
  columns: 2; column-gap: clamp(24px, 4vw, 64px);
  margin: 8px 0 0; padding: 0 0 0 20px;
  font-size: 16px; line-height: 1.6; color: var(--st-navy);
}
.nil-services li { margin-bottom: 12px; break-inside: avoid; }
@media (max-width: 767px) { .nil-services { columns: 1; } }
.nil-fit { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }

/* ============================================================
   INTERNATIONAL ATHLETES — split stage
   ============================================================ */
.split { position: relative; background: var(--st-midnight); height: 430svh; }
.split__sticky { position: sticky; top: 0; height: 100svh; overflow: hidden; }
.split__grid {
  position: absolute; left: 50%; top: 46%;
  transform: translate(-50%, -50%);
  width: min(980px, calc(100vw - 32px));
  display: grid; grid-template-columns: 1fr 56px 1fr; gap: 0 clamp(8px, 2vw, 22px);
  align-items: start;
}
.split__col { display: flex; flex-direction: column; gap: clamp(8px, 1.4svh, 14px); }
.split__col--left { align-items: flex-end; text-align: right; }
.split__col--right { align-items: flex-start; text-align: left; }
.split__col-label {
  font-family: var(--font-mono); font-size: clamp(10px, 1.2vw, 13px); font-weight: 700;
  letter-spacing: 0.2em; color: var(--st-cobalt); margin-bottom: clamp(8px, 1.6svh, 18px);
  white-space: nowrap;
}
.split__item {
  border: 1px solid var(--st-bone-hairline); border-radius: 10px;
  background: rgba(247, 243, 234, 0.04);
  padding: clamp(9px, 1.4svh, 14px) clamp(12px, 1.8vw, 20px);
  opacity: 0; transform: translateX(-18px);
  max-width: 100%;
}
.split__item--right { transform: translateX(18px); }
.split__item.is-in { opacity: 1; transform: translateX(0); transition: opacity .5s ease, transform .5s ease; }
.split__item p { font-size: clamp(12.5px, 1.4vw, 15.5px); font-weight: 500; color: var(--st-bone); white-space: nowrap; }
.split__divider { position: relative; height: 100%; min-height: 46svh; display: flex; justify-content: center; }
.split__divider-line {
  width: 2px; height: 100%; display: block;
  background: linear-gradient(180deg, rgba(49,92,245,0) 0%, #315CF5 12%, #5746E8 88%, rgba(87,70,232,0) 100%);
  transform-origin: center top;
}
.split__tension { opacity: 0; bottom: 13svh; } /* Brian (Aug 31): sit a touch closer to the graphic */
.split__peak-line { font-size: clamp(36px, 6.4vw, 104px); }
.split__peak-line--long { font-size: clamp(26px, 4.4vw, 72px); text-wrap: balance; }
@media (max-width: 767px) {
  .split__grid { grid-template-columns: 1fr 28px 1fr; top: 42%; }
  .split__item p { white-space: normal; }
  .split__peak-line { font-size: clamp(30px, 9vw, 42px); }
}
html[data-reduced] .split { height: auto; }
html[data-reduced] .split__sticky { position: relative; height: auto; overflow: visible; padding: 72px 16px 96px; }
html[data-reduced] .split__grid { position: relative; left: auto; top: auto; transform: none; margin: 0 auto; }
html[data-reduced] .split__item { opacity: 1; transform: none; }
html[data-reduced] .split__tension { position: relative; left: auto; bottom: auto; transform: none; opacity: 1; margin: 26px auto 0; }
html[data-reduced] .split__peak { position: relative; margin-top: 56px; }

.intl-nil { background: var(--st-white); border-bottom: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); position: relative; z-index: 2; }
.intl-questions {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 10px;
}
.intl-q {
  background: var(--st-soft-violet); border-radius: 12px; padding: 20px 22px;
  opacity: 0; transform: translateY(22px);
  transition: opacity .6s ease, transform .6s ease;
}
.intl-q.is-in { opacity: 1; transform: translateY(0); }
.intl-q:nth-child(2).is-in, .intl-q:nth-child(5).is-in { transition-delay: .15s; }
.intl-q:nth-child(3).is-in, .intl-q:nth-child(6).is-in { transition-delay: .3s; }
.intl-q p { font-size: 15.5px; font-weight: 500; line-height: 1.45; color: var(--st-midnight); }
@media (max-width: 1023px) { .intl-questions { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 767px) { .intl-questions { grid-template-columns: 1fr; } }
html[data-reduced] .intl-q { opacity: 1; transform: none; transition: none; }
.intl-strategy { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.intl-founder { background: var(--st-midnight); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.intl-founder .home-founder__h2 { max-width: 22ch; }
.intl-paths { background: var(--st-white); border-top: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); }

/* About: Dallas statement band (Bone) */
.about-dallas { background: var(--st-bone); border-top: 1px solid var(--st-hairline); padding: clamp(56px, 6vw, 96px) var(--gutter); text-align: center; }
.about-dallas .eyebrow-mono { display: inline-block; }
.about-dallas .eyebrow-mono .tuck { margin-left: -0.18em; margin-right: -0.18em; } /* pull the comma against the S and close the tracked gap before TEXAS */
.about-dallas__line {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(26px, 3.4vw, 48px); line-height: 1.06; letter-spacing: -0.01em;
  color: var(--st-midnight); max-width: 26ch; margin: 14px auto 0;
  opacity: 0; transform: translateY(14px);
}
.about-dallas__line.is-in { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s ease; }
html[data-reduced] .about-dallas__line { opacity: 1; transform: none; }

/* ============================================================
   ABOUT — editorial (intensity 1.5)
   ============================================================ */
.about-hero { background: var(--st-bone); padding: calc(72px + clamp(56px, 8vw, 96px)) var(--gutter) clamp(64px, 8vw, 112px); }
.about-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(42px, 5.6vw, 88px); line-height: 0.93; letter-spacing: -0.01em;
  color: var(--st-midnight); max-width: 18ch;
}
.about-hero__lead {
  font-size: clamp(18px, 1.6vw, 22px); font-weight: 450; line-height: 1.55;
  color: var(--st-navy); margin-top: 28px; max-width: 64ch; text-wrap: pretty;
}
.about-why { background: var(--st-white); border-top: 1px solid var(--st-hairline); border-bottom: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.about-founder { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.about-founder__grid {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: clamp(32px, 5vw, 80px); align-items: start;
}
.about-founder__img { margin: 0; }
.about-founder__img img { width: 100%; height: auto; display: block; border-radius: 16px; }
.about-founder__caption {
  margin-top: 14px; display: flex; flex-direction: column; gap: 2px;
  font-size: 14.5px; color: var(--st-slate);
}
.about-founder__caption .name { font-size: 17px; font-weight: 600; color: var(--st-midnight); }
.about-founder .law-body { margin-bottom: clamp(18px, 2vw, 24px); }
.about-founder__h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(34px, 4.2vw, 64px); line-height: 0.95; color: var(--st-midnight);
  margin-bottom: 24px;
}
@media (max-width: 767px) { .about-founder__grid { grid-template-columns: 1fr; } }
.about-diff { background: var(--st-midnight); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.about-diff__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); }
.about-diff__item {
  border-top: 1px solid var(--st-bone-hairline); padding-top: 20px;
  opacity: 0; transform: translateY(22px);
  transition: opacity .6s ease, transform .6s ease;
}
.about-diff__item.is-in { opacity: 1; transform: translateY(0); }
.about-diff__item:nth-child(2).is-in { transition-delay: .15s; }
.about-diff__item:nth-child(3).is-in { transition-delay: .3s; }
.about-diff__item:nth-child(4).is-in { transition-delay: .45s; }
@media (max-width: 767px) {
  .intl-q.is-in, .about-diff__item.is-in { transition-delay: 0s !important; }
}
.about-diff__item h3 { font-size: 20px; font-weight: 600; color: var(--st-bone); }
.about-diff__item p { font-size: 15.5px; line-height: 1.65; color: var(--st-bone-78); margin-top: 12px; text-wrap: pretty; }
@media (max-width: 767px) { .about-diff__grid { grid-template-columns: 1fr; } }
html[data-reduced] .about-diff__item { opacity: 1; transform: none; transition: none; }
.about-does { background: var(--st-white); border-bottom: 1px solid var(--st-hairline); padding: clamp(64px, 7vw, 112px) var(--gutter); }
.about-links { display: flex; flex-direction: column; gap: 14px; margin-top: 8px; }
.about-principles { background: var(--st-bone); padding: clamp(64px, 7vw, 112px) var(--gutter); }

/* ============================================================
   TALK TO STRATA — adaptive form (usability first)
   ============================================================ */
.talk-hero { background: var(--st-bone); padding: calc(72px + clamp(48px, 6vw, 80px)) var(--gutter) clamp(32px, 4vw, 56px); }
.talk-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(38px, 4.8vw, 72px); line-height: 0.94; color: var(--st-midnight);
}
.talk-hero__lead { font-size: clamp(17px, 1.5vw, 20px); line-height: 1.6; color: var(--st-navy); margin-top: 20px; max-width: 60ch; text-wrap: pretty; }
.talk-hero__note {
  font-size: 14.5px; line-height: 1.6; color: var(--st-slate);
  background: var(--st-soft-violet); border-radius: 10px;
  padding: 12px 16px; margin-top: 20px; max-width: 62ch;
}
.talk-form-section { background: var(--st-bone); padding: 0 var(--gutter) clamp(72px, 8vw, 120px); }
.talk-form__wrap { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 3fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
@media (max-width: 1023px) { .talk-form__wrap { grid-template-columns: 1fr; } }
.talk-form { display: flex; flex-direction: column; gap: clamp(22px, 2.6vw, 34px); }
.talk-form > .disclosure { margin-top: calc(-1 * clamp(8px, 1.2vw, 16px)); }
.talk-form > .talk-submit { margin-top: calc(-1 * clamp(6px, 1vw, 12px)); }
.talk-selectall { margin-top: 0; margin-bottom: 4px; }

/* Thank-you page (Bone, quiet) */
.thanks { background: var(--st-bone); min-height: 74svh; display: flex; align-items: center; padding: calc(72px + clamp(48px, 7vw, 80px)) var(--gutter) clamp(72px, 9vw, 120px); }
.thanks__inner { max-width: 760px; }
.thanks__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(38px, 5vw, 72px); line-height: 0.95; letter-spacing: -0.01em;
  color: var(--st-midnight); max-width: 18ch;
}
.thanks__body { font-size: 17px; line-height: 1.65; color: var(--st-ink-soft); margin-top: 18px; max-width: 60ch; text-wrap: pretty; }
.thanks__next { margin-top: clamp(30px, 4vw, 48px); }
.thanks__next .about-links { margin-top: 14px; }
.thanks__ctas { margin-top: clamp(30px, 4vw, 44px); }
.talk-form fieldset {
  border: 1px solid var(--st-hairline); border-radius: 14px;
  background: var(--st-white); padding: clamp(18px, 2.4vw, 28px); margin: 0;
}
.talk-form legend {
  font-size: 16.5px; font-weight: 600; color: var(--st-midnight);
  padding: 0 8px; margin-left: -8px;
}
.req { color: var(--st-error); }
.talk-options { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.talk-options--row { flex-direction: row; flex-wrap: wrap; gap: 10px; }
.talk-option {
  display: flex; gap: 10px; align-items: flex-start;
  border: 1px solid var(--st-hairline); border-radius: 10px;
  padding: 12px 14px; cursor: pointer; font-size: 15px; line-height: 1.45;
  color: var(--st-navy); background: var(--st-bone); min-height: 44px;
}
.talk-option:has(input:checked) { border-color: var(--st-violet); background: var(--st-soft-violet); }
.talk-option input { accent-color: var(--st-violet); margin-top: 3px; flex-shrink: 0; }
.talk-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; margin-top: 12px; }
.talk-fields label, .talk-form textarea + .talk-micro { font-size: 14px; }
.talk-fields label {
  display: block;
  font-weight: 500; color: var(--st-navy);
}
.talk-fields label > input { display: block; margin-top: 6px; }
.talk-fields__wide { grid-column: 1 / -1; }
@media (max-width: 767px) { .talk-fields { grid-template-columns: 1fr; } }
.talk-form input[type="text"], .talk-form input[type="email"], .talk-form input[type="tel"],
.talk-form input[type="date"], .talk-form textarea {
  border: 1px solid var(--st-hairline); border-radius: 10px;
  background: var(--st-bone); color: var(--st-navy);
  font: 15.5px/1.4 var(--font-body); padding: 12px 14px; width: 100%;
  min-height: 46px;
}
.talk-form textarea { margin-top: 12px; resize: vertical; }
.talk-form input:focus-visible, .talk-form textarea:focus-visible {
  outline: 2px solid var(--st-cobalt); outline-offset: 1px;
}
.talk-check {
  display: flex; gap: 12px; align-items: flex-start;
  font-size: 14.5px; line-height: 1.55; color: var(--st-navy);
  margin-top: 14px; cursor: pointer;
}
.talk-check input { accent-color: var(--st-violet); margin-top: 3px; width: 18px; height: 18px; flex-shrink: 0; }
.talk-micro { font-size: 13px; line-height: 1.55; color: var(--st-slate); margin-top: 10px; }
#minor-block, #deadline-when { margin-top: 6px; }
.talk-submit { align-self: flex-start; cursor: pointer; border: 0; font-family: var(--font-body); }
.talk-error {
  border: 1px solid var(--st-error); background: #FDF2F3;
  border-radius: 10px; padding: 14px 16px;
}
.talk-error p { font-size: 14.5px; line-height: 1.55; color: var(--st-error); }
.talk-success {
  background: var(--st-white); border: 1px solid var(--st-hairline);
  border-radius: var(--radius-lg); padding: clamp(28px, 4vw, 48px);
}
.talk-success h2 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(28px, 3.4vw, 44px); line-height: 1; color: var(--st-midnight);
}
.talk-success p { font-size: 16px; line-height: 1.65; color: var(--st-navy); margin-top: 16px; max-width: 62ch; }
.talk-alt { display: flex; flex-direction: column; gap: 12px; font-size: 15px; line-height: 1.6; color: var(--st-navy); }
.talk-alt .site-footer__col-label { color: var(--st-slate); }

/* ============================================================
   PRIVACY, TERMS & LEGAL — readable document
   ============================================================ */
.legal-hero { background: var(--st-bone); padding: calc(72px + clamp(40px, 5vw, 64px)) var(--gutter) clamp(24px, 3vw, 40px); }
.legal-hero__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(34px, 4.2vw, 60px); line-height: 0.96; color: var(--st-midnight);
}
.legal-hero__meta { font-size: 14.5px; color: var(--st-slate); margin-top: 14px; }
.legal-draft-banner {
  display: inline-block; margin-top: 16px;
  font-family: var(--font-mono); font-size: 11.5px; letter-spacing: 0.1em;
  color: var(--st-coral); border: 1px solid var(--st-coral);
  border-radius: var(--radius-xs); padding: 6px 10px;
}
.legal-body-section { background: var(--st-bone); padding: clamp(24px, 3vw, 40px) var(--gutter) clamp(72px, 8vw, 120px); }
.legal-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.legal-toc { position: sticky; top: 92px; max-height: calc(100vh - 120px); overflow-y: auto; }
.legal-toc__details summary {
  font-family: var(--font-mono); font-size: 12px; letter-spacing: 0.14em;
  color: var(--st-slate); cursor: pointer; margin-bottom: 12px;
}
.legal-toc__list { list-style: none; margin: 0; padding: 0; font-size: 13.5px; line-height: 1.5; }
.legal-toc__list a { color: var(--st-navy); display: block; padding: 4px 0; }
.legal-toc__list a:hover { color: var(--st-violet); }
.toc-part > a { font-weight: 600; color: var(--st-midnight); margin-top: 10px; }
.legal-toc__list ol { list-style: none; margin: 0 0 6px; padding: 0 0 0 14px; border-left: 1px solid var(--st-hairline); }
.legal-article { max-width: 760px; font-size: 15.5px; line-height: 1.7; color: var(--st-navy); }
.legal-article p, .legal-article li { text-wrap: pretty; }
.legal-article ul, .legal-article ol { padding-left: 22px; }
.legal-article li { margin-bottom: 6px; }
.legal-part {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(24px, 2.8vw, 36px); line-height: 1; color: var(--st-midnight);
  margin: clamp(40px, 5vw, 64px) 0 8px; padding-top: 20px; border-top: 1px solid var(--st-hairline);
  scroll-margin-top: 96px;
}
.legal-h {
  font-size: 20px; font-weight: 600; color: var(--st-midnight);
  margin: 32px 0 8px; scroll-margin-top: 96px;
}
.legal-article blockquote {
  margin: 14px 0; padding: 10px 18px;
  border-left: 3px solid var(--st-violet);
  background: var(--st-soft-violet); border-radius: 0 10px 10px 0;
  color: var(--st-navy);
}
.legal-article blockquote p { margin: 4px 0; }
@media (max-width: 1023px) {
  .legal-layout { grid-template-columns: 1fr; }
  .legal-toc { position: static; max-height: none; }
  .legal-toc__details { border: 1px solid var(--st-hairline); border-radius: 12px; padding: 14px 16px; background: var(--st-white); }
}

/* ============================================================
   404 — WRONG ROUTE
   ============================================================ */
.nf {
  background: var(--st-midnight); min-height: 100svh; position: relative;
  display: flex; align-items: center; overflow: hidden;
  padding: 104px var(--gutter) 132px;
}
.nf__field { position: absolute; left: 0; right: 0; bottom: 0; width: 100%; height: 46%; }
.nf__copy { position: relative; }
.nf__h1 {
  font-family: var(--font-display); font-weight: 700; text-transform: uppercase;
  font-size: clamp(42px, 6vw, 92px); line-height: 0.93; color: var(--st-bone);
  max-width: 14ch; text-wrap: balance;
}
.nf__body { font-size: 17px; line-height: 1.6; color: var(--st-bone-72); margin-top: 18px; }
