/* ==========================================================================
   The Law School AV Department, by Mystery School Media
   Design system: "Hallway Retro, Disciplined". Retro frame, broadcast-sharp picture.
   Mobile-first. Three breakpoints only: base (0), md (760px), lg (1080px).
   Loaded only on Law School AV pages (inc/lsav/bootstrap.php). Everything is scoped to
   body.lsav, so nothing here can reach the main Cabinet page.
   ========================================================================== */

/* ---------- 1. Tokens ---------- */
.lsav {
  /* Paper and ink */
  --lsav-paper: #F7F0E1;      /* page background; ink 13.02:1 */
  --lsav-paper-2: #EDE3CB;    /* manila / hallway-tile band */
  --lsav-card: #FFFBF2;       /* card stock, form cards */
  --lsav-ink: #1E2A2B;        /* body text and headings */
  --lsav-ink-2: #4B5354;      /* muted text and form field borders (6.95:1) */
  --lsav-rule: #D8CBAE;       /* decorative hairlines only, never input borders */

  /* Faded primaries */
  --lsav-red: #A8392A;        /* primary button fill; white on it 6.40:1 */
  --lsav-red-dark: #8C2D20;
  --lsav-bus: #F2B632;        /* school-bus yellow: ink text only, never white */
  --lsav-bus-soft: #F8DD93;
  --lsav-green: #24463A;      /* chalkboard */
  --lsav-green-2: #2E5647;
  --lsav-chalk: #E9DFC6;      /* text on green, 7.87:1 */
  --lsav-blue: #335E80;       /* links and focus ring */
  --lsav-error: #A8392A;
  --lsav-ok-bg: #E4EFE4;

  /* CRT art */
  --lsav-crt-body: #CDBF9F;
  --lsav-crt-shade: #A99A78;
  --lsav-crt-bezel: #2A2724;
  --lsav-cart: #3B4448;
  --lsav-crt-glow: rgba(120, 200, 190, .35);

  /* Type */
  --lsav-font-head: "Zilla Slab", Rockwell, "Rockwell Nova", "Roboto Slab", "DejaVu Serif", Georgia, serif;
  --lsav-font-body: "Public Sans", "Segoe UI", system-ui, -apple-system, Roboto, Arial, sans-serif;
  --lsav-fs-body: 1.0625rem;                       /* 17px, 18px from lg */
  --lsav-fs-small: 1rem;                           /* 16px minimum for small print */
  --lsav-fs-label: .9375rem;                       /* 15px minimum for caps labels */
  --lsav-fs-h1: clamp(2.6rem, 9vw, 4.75rem);
  --lsav-fs-h1-page: clamp(2.2rem, 7vw, 3.6rem);
  --lsav-fs-h2: clamp(1.9rem, 5.2vw, 2.9rem);
  --lsav-fs-h3: clamp(1.35rem, 3.4vw, 1.6rem);
  --lsav-fs-price: clamp(2.25rem, 7vw, 2.75rem);
  --lsav-fs-lede: clamp(1.125rem, 2.4vw, 1.3rem);
  --lsav-lh: 1.6;

  /* Space and shape */
  --lsav-s1: 4px; --lsav-s2: 8px; --lsav-s3: 12px; --lsav-s4: 16px; --lsav-s5: 24px;
  --lsav-s6: 32px; --lsav-s7: 48px; --lsav-s8: 64px; --lsav-s9: 96px;
  --lsav-section-y: clamp(56px, 9vw, 112px);
  --lsav-gutter: clamp(16px, 4vw, 32px);
  --lsav-max: 1180px;
  --lsav-text: 720px;
  --lsav-radius: 10px;
  --lsav-radius-lg: 18px;
  --lsav-tap: 48px;
  --lsav-shadow: 0 1px 0 rgba(30, 42, 43, .08), 0 10px 24px -14px rgba(30, 42, 43, .45);
  --lsav-focus: 0 0 0 3px var(--lsav-paper), 0 0 0 6px var(--lsav-blue);
  --lsav-callbar-h: 72px;
}
@media (min-width: 1080px) {
  .lsav { --lsav-fs-body: 1.125rem; }
}

/* ---------- 2. Base ---------- */
html:has(body.lsav) { color-scheme: light; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 16px; background: #F7F0E1; }
@media (min-width: 760px) { html:has(body.lsav) { scroll-padding-top: 96px; } }
body.lsav {
  margin: 0;
  background: var(--lsav-paper);
  color: var(--lsav-ink);
  font: 400 var(--lsav-fs-body)/var(--lsav-lh) var(--lsav-font-body);
  color-scheme: light;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
  padding-bottom: calc(var(--lsav-callbar-h) + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 760px) { body.lsav { padding-bottom: 0; } }
.lsav *, .lsav *::before, .lsav *::after { box-sizing: border-box; }
/* Element defaults use :where() so every component class below overrides them. */
:where(.lsav) img, :where(.lsav) picture, :where(.lsav) svg { max-width: 100%; }
:where(.lsav) img { height: auto; display: block; }
:where(.lsav) a { color: var(--lsav-blue); text-decoration-thickness: 1.5px; text-underline-offset: .18em; }
:where(.lsav) a:hover { color: var(--lsav-red); }
:where(.lsav) p a, :where(.lsav) li a:not([class]) { padding-block: 2px; }
.lsav :focus { outline: none; }
.lsav :focus-visible { outline: none; box-shadow: var(--lsav-focus); border-radius: 6px; }
.lsav-chalk :focus-visible, .lsav-ctaband :focus-visible { box-shadow: 0 0 0 3px var(--lsav-ink), 0 0 0 6px var(--lsav-bus); }
:where(.lsav) :is(h1, h2, h3, h4) { font-family: var(--lsav-font-head); font-weight: 700; line-height: 1.1; margin: 0 0 .5em; letter-spacing: -.01em; color: inherit; }
:where(.lsav) h1 { font-size: var(--lsav-fs-h1-page); line-height: 1.05; letter-spacing: -.02em; }
:where(.lsav) h2 { font-size: var(--lsav-fs-h2); }
:where(.lsav) h3 { font-size: var(--lsav-fs-h3); line-height: 1.2; }
:where(.lsav) p { margin: 0 0 1em; }
:where(.lsav) :is(ul, ol) { margin: 0 0 1em; padding-left: 1.2em; }
:where(.lsav) strong { font-weight: 700; }
:where(.lsav) :is(button, input, select, textarea) { font: inherit; color: inherit; }
.lsav-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.lsav-icon { width: 20px; height: 20px; flex: none; display: inline-block; vertical-align: middle; }
.lsav-vh, .lsav .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lsav-main:focus { outline: none; }

.lsav-wrap { width: 100%; max-width: var(--lsav-max); margin: 0 auto; padding: 0 var(--lsav-gutter); }
.lsav-narrow { max-width: var(--lsav-text); }

/* Skip link: hidden until focused, then an ink-on-bus pill (8.10:1). */
.lsav-skip {
  position: absolute; left: 12px; top: -200px; z-index: 200;
  display: inline-flex; align-items: center; min-height: var(--lsav-tap); padding: 0 18px;
  background: var(--lsav-bus); color: var(--lsav-ink); border-radius: 999px;
  font-weight: 700; text-decoration: none;
}
.lsav a.lsav-skip:focus, .lsav a.lsav-skip:focus-visible { top: 12px; color: var(--lsav-ink); box-shadow: 0 0 0 3px var(--lsav-ink); }

/* ---------- 3. Sections and type helpers ---------- */
.lsav-section { padding: var(--lsav-section-y) 0; }
.lsav-section--tile {
  background: var(--lsav-paper-2);
  border-top: 1px solid var(--lsav-rule);
  border-bottom: 1px solid var(--lsav-rule);
}
.lsav-section--note { padding: var(--lsav-s6) 0; }
.lsav-section--note + .lsav-section--note { padding-top: 0; }
.lsav-section-head { max-width: var(--lsav-text); margin-bottom: var(--lsav-s6); }
.lsav-section-head > :last-child { margin-bottom: 0; }
.lsav-section__after { margin-top: var(--lsav-s5); max-width: var(--lsav-text); }
.lsav-section__link { margin: var(--lsav-s5) 0 0; }
.lsav-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font: 700 var(--lsav-fs-label)/1.3 var(--lsav-font-body); letter-spacing: .08em; text-transform: uppercase;
  color: var(--lsav-red); margin: 0 0 var(--lsav-s3);
  text-wrap: balance; /* no lone "ST. LOUIS" on a second line */
}
.lsav-eyebrow::before { content: ""; width: 22px; height: 3px; background: var(--lsav-bus); border-radius: 2px; flex: none; }
.lsav-lede { font-size: var(--lsav-fs-lede); line-height: 1.5; color: var(--lsav-ink-2); max-width: 65ch; }
.lsav-body { max-width: 65ch; }
.lsav-flavor { font-style: italic; color: var(--lsav-ink-2); }
.lsav-fine { font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); margin-top: var(--lsav-s5); max-width: 65ch; }
.lsav-maillink { overflow-wrap: anywhere; }

/* Dramatization label: wherever a spec still or a video appears. 16px, white on 86% black. */
.lsav-drama {
  display: inline-block; background: rgba(15, 18, 19, .86); color: #fff;
  font: 600 var(--lsav-fs-small)/1.3 var(--lsav-font-body);
  padding: 4px 10px; border-radius: 999px;
}

/* ---------- 4. Buttons and links ---------- */
.lsav-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--lsav-tap); padding: 12px 22px;
  font: 700 1.0625rem/1.2 var(--lsav-font-body);
  border-radius: 999px; border: 2px solid transparent; cursor: pointer;
  text-align: center; overflow-wrap: anywhere;
  transition: transform .12s ease, background-color .12s ease, box-shadow .12s ease;
}
.lsav a.lsav-btn { text-decoration: none; }
.lsav-btn:active { transform: translateY(1px); }
.lsav-btn--primary { background: var(--lsav-red); color: #fff; box-shadow: 0 3px 0 var(--lsav-red-dark); }
.lsav a.lsav-btn--primary, .lsav a.lsav-btn--primary:hover { color: #fff; }
.lsav-btn--primary:hover { background: var(--lsav-red-dark); }
.lsav-btn--primary:focus-visible { box-shadow: 0 3px 0 var(--lsav-red-dark), var(--lsav-focus); }
.lsav-btn--secondary { background: var(--lsav-card); color: var(--lsav-ink); border-color: var(--lsav-ink); }
.lsav a.lsav-btn--secondary, .lsav a.lsav-btn--secondary:hover { color: var(--lsav-ink); }
.lsav-btn--secondary:hover { background: var(--lsav-bus-soft); }
.lsav-btn--block { width: 100%; }
.lsav-btn .lsav-icon { width: 20px; height: 20px; }
.lsav-textlink { display: inline-flex; align-items: center; gap: 6px; min-height: var(--lsav-tap); font-weight: 700; }
.lsav-cta-row { display: flex; flex-wrap: wrap; gap: 12px 14px; align-items: center; }
.lsav-cta-row .lsav-btn { width: 100%; }
@media (min-width: 760px) { .lsav-cta-row .lsav-btn { width: auto; } }

/* ---------- 5. Header and nav ---------- */
/* Below md the header scrolls away (the bottom call bar is the persistent element). */
.lsav-header { position: relative; z-index: 50; background: var(--lsav-paper); border-bottom: 1px solid var(--lsav-rule); }
.lsav-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 72px; padding-top: 6px; padding-bottom: 6px; }
@media (min-width: 760px) {
  .lsav-header { position: sticky; top: 0; border-bottom-color: transparent; transition: border-color .15s ease, box-shadow .15s ease; }
  .lsav-header.is-scrolled { border-bottom-color: var(--lsav-rule); box-shadow: 0 6px 16px -14px rgba(30, 42, 43, .6); }
  .admin-bar .lsav-header { top: 46px; }
}
@media (min-width: 783px) { .admin-bar .lsav-header { top: 32px; } }

.lsav-brand { display: grid; min-width: 0; }
.lsav-logo { display: inline-flex; align-items: center; gap: 10px; min-height: 44px; color: var(--lsav-ink); text-decoration: none; min-width: 0; }
.lsav a.lsav-logo, .lsav a.lsav-logo:hover { color: var(--lsav-ink); text-decoration: none; }
.lsav-logo__mark { width: 40px; height: 40px; flex: none; }
.lsav-logo__name { font: 700 1.0625rem/1.1 var(--lsav-font-head); letter-spacing: -.005em; }
.lsav-logo__text { display: flex; flex-direction: column; line-height: 1.1; }
.lsav-logo__byline { font: 600 var(--lsav-fs-label)/1.3 var(--lsav-font-body); letter-spacing: .06em; text-transform: uppercase; margin-top: 3px; }
.lsav-header .lsav-logo__byline { color: var(--lsav-ink-2); }
@media (max-width: 759.98px) { .lsav-header .lsav-logo__byline { text-transform: none; letter-spacing: .01em; white-space: nowrap; margin-top: 2px; } }
.lsav-header a.lsav-logo:hover .lsav-logo__name { color: var(--lsav-red); }
@media (min-width: 760px) {
  .lsav-logo__name { font-size: 1.1875rem; }
}

.lsav-nav { display: none; flex: none; margin-left: auto; }
.lsav-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0; }
.lsav-nav a {
  display: inline-flex; align-items: center; min-height: var(--lsav-tap); padding: 0 9px; white-space: nowrap;
  color: var(--lsav-ink); text-decoration: none; font-weight: 600; font-size: 1rem; border-radius: 8px;
}
.lsav-nav a:hover { background: var(--lsav-paper-2); color: var(--lsav-ink); }
.lsav-nav a[aria-current="page"] { box-shadow: inset 0 -3px 0 var(--lsav-red); border-radius: 8px 8px 0 0; }
.lsav-header__cta { display: none; }
.lsav-header .lsav-btn { flex: none; white-space: nowrap; }
.lsav-header__cta { padding-left: 18px; padding-right: 18px; }
.lsav-header__cta .lsav-icon, .lsav-callbar .lsav-btn--primary .lsav-icon { display: none; }

/* Mobile menu: <details>, full-width panel under the header, 52px rows. Works with no JS. */
.lsav-menu { flex: none; }
.lsav-menu > summary {
  list-style: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  min-width: var(--lsav-tap); min-height: var(--lsav-tap); padding: 0 16px; border-radius: 999px;
  border: 2px solid var(--lsav-ink); background: var(--lsav-card); color: var(--lsav-ink);
  font-weight: 700; cursor: pointer; user-select: none;
}
.lsav-menu > summary::-webkit-details-marker { display: none; }
.lsav-menu > summary::marker { content: ""; }
.lsav-menu__icon { width: 18px; height: 12px; flex: none; background: linear-gradient(currentColor 0 0) top / 100% 2px no-repeat, linear-gradient(currentColor 0 0) center / 100% 2px no-repeat, linear-gradient(currentColor 0 0) bottom / 100% 2px no-repeat; }
.lsav-menu[open] > summary { background: var(--lsav-ink); color: var(--lsav-paper); }
.lsav-menu[open] .lsav-menu__icon { background: linear-gradient(45deg, transparent 45%, currentColor 45% 55%, transparent 55%), linear-gradient(-45deg, transparent 45%, currentColor 45% 55%, transparent 55%); height: 16px; width: 16px; }
.lsav-menu__panel {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 60;
  background: var(--lsav-paper); border-bottom: 1px solid var(--lsav-ink-2);
  box-shadow: 0 18px 30px -18px rgba(30, 42, 43, .55);
  padding: 4px var(--lsav-gutter) 20px;
  max-height: calc(100vh - 80px); overflow-y: auto;
}
.lsav-menu__panel ul { list-style: none; margin: 0 0 16px; padding: 0; }
.lsav-menu__panel li + li { border-top: 1px solid rgba(75, 83, 84, .45); }
.lsav-menu__panel a:not(.lsav-btn) {
  display: flex; align-items: center; min-height: 52px; color: var(--lsav-ink);
  text-decoration: none; font-weight: 600; font-size: 1.125rem;
}
.lsav-menu__panel a:not(.lsav-btn):hover { color: var(--lsav-red); }
.lsav-menu__panel a[aria-current="page"] { color: var(--lsav-red); box-shadow: inset 3px 0 0 var(--lsav-red); padding-left: 12px; }
@media (min-width: 1080px) {
  .lsav-nav { display: block; }
  .lsav-menu { display: none; }
  .lsav-header__cta { display: inline-flex; }
}

/* ---------- 6. Home hero and the CRT on its cart ---------- */
.lsav-hero { position: relative; overflow: hidden; padding: 24px 0 var(--lsav-s7); }
.lsav-hero__grid { position: relative; z-index: 1; display: grid; gap: var(--lsav-s6); align-items: center; }
.lsav-hero__grid > * { min-width: 0; }
.lsav-hero h1 { font-size: var(--lsav-fs-h1); line-height: 1.02; margin-bottom: 16px; }
.lsav-hero__red { display: block; color: var(--lsav-red); }
.lsav-hero__lede { margin-bottom: var(--lsav-s5); }
.lsav-hero__tertiary { margin: 6px 0 0; }
/* One-line price anchor under the hero buttons: links to the offers just below. */
.lsav-hero__prices { margin: 12px 0 0; font-weight: 600; font-size: var(--lsav-fs-small); line-height: 1.45; }
.lsav-hero__prices a { color: var(--lsav-ink); text-decoration-color: var(--lsav-bus); text-decoration-thickness: 2px; text-underline-offset: 4px; }
.lsav-hero__prices a:hover { color: var(--lsav-red); }
.lsav-trust { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 8px; }
.lsav-trust li { display: flex; gap: 10px; align-items: flex-start; font-weight: 600; }
.lsav-trust .lsav-icon { width: 22px; height: 22px; margin-top: 2px; color: var(--lsav-green); }
.lsav-hero__art { max-width: 360px; width: 100%; margin: 0 auto; }
@media (min-width: 760px) {
  .lsav-hero { padding: var(--lsav-s8) 0 var(--lsav-s8); }
  .lsav-hero::before { /* hallway-tile band behind the lower third */
    content: ""; position: absolute; inset: auto 0 0 0; height: 34%; z-index: 0;
    background: repeating-linear-gradient(90deg, transparent 0 58px, rgba(30, 42, 43, .05) 58px 60px), var(--lsav-paper-2);
    border-top: 1px solid var(--lsav-rule);
  }
  .lsav-hero__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lsav-s7); }
  .lsav-hero__art { max-width: 560px; }
}

.lsav-cart { position: relative; margin: 0; }
.lsav-cart__svg { display: block; width: 100%; height: auto; }
/* The screen sits exactly in the SVG's cut-out: viewBox 600x620, screen x=58 y=66 w=400 h=225. */
.lsav-cart__screen {
  position: absolute; left: 9.667%; top: 10.645%; width: 66.667%; aspect-ratio: 16 / 9;
  border-radius: 14px / 12px; overflow: hidden; background: #0c0f10;
  box-shadow: 0 0 0 2px #111, 0 0 26px 4px var(--lsav-crt-glow);
}
.lsav-cart__screen picture, .lsav-cart__screen img { display: block; width: 100%; height: 100%; object-fit: cover; }
.lsav-cart__screen::after { /* CRT glass on the edges only: vignette, glow, faint scan lines fading to a sharp centre */
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(120% 120% at 50% 50%, transparent 60%, rgba(0, 0, 0, .38) 100%),
    repeating-linear-gradient(0deg, rgba(0, 0, 0, .06) 0 1px, transparent 1px 2px);
  -webkit-mask-image: radial-gradient(110% 110% at 50% 50%, transparent 45%, #000 85%);
  mask-image: radial-gradient(110% 110% at 50% 50%, transparent 45%, #000 85%);
  box-shadow: inset 0 0 18px rgba(120, 200, 190, .25);
}
.lsav-cart__label { position: absolute; left: 6px; bottom: 6px; z-index: 2; max-width: calc(100% - 12px); }
.lsav-cart__caption { text-align: center; font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); margin: 10px 0 0; }
@media (max-width: 1079.98px) {
  /* Below lg the screen is narrower than the 16px label on one line: it stays on the glass,
     capped at the glass width, and wraps to two lines. */
  .lsav-cart__screen .lsav-cart__label { left: 8px; bottom: 8px; max-width: calc(100% - 16px); white-space: normal; border-radius: 12px; line-height: 1.25; }
}

/* ---------- 7. Inner-page hero ---------- */
.lsav-pagehero { padding: var(--lsav-s5) 0 var(--lsav-s7); border-bottom: 1px solid var(--lsav-rule); background: linear-gradient(180deg, var(--lsav-paper) 0 70%, var(--lsav-paper-2)); }
.lsav-pagehero h1 { max-width: 20em; }
.lsav-pagehero .lsav-lede { margin-bottom: var(--lsav-s5); }
.lsav-crumbs { font-size: var(--lsav-fs-small); margin-bottom: var(--lsav-s3); }
.lsav-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: center; }
.lsav-crumbs li { display: inline-flex; align-items: center; }
.lsav-crumbs li + li::before { content: "/"; margin: 0 10px; color: var(--lsav-ink-2); }
.lsav-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
.lsav-crumbs [aria-current] { color: var(--lsav-ink-2); }
@media (min-width: 760px) { .lsav-pagehero { padding: var(--lsav-s6) 0 var(--lsav-s8); } }

/* ---------- 8. Generic cards and lists ---------- */
.lsav-checks { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; max-width: 65ch; }
.lsav-checks li { position: relative; padding-left: 32px; }
.lsav-checks li::before {
  content: ""; position: absolute; left: 0; top: .25em; width: 22px; height: 22px; border-radius: 50%;
  background: var(--lsav-green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5.5 10.5l3 3 6-7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / 100% no-repeat;
}
.lsav-points { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--lsav-s4); }
.lsav-point { background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-top: 4px solid var(--lsav-bus); border-radius: var(--lsav-radius); padding: 18px 20px; box-shadow: var(--lsav-shadow); }
.lsav-point__title { font-size: 1.25rem; margin-bottom: 6px; }
.lsav-point p { margin: 0; color: var(--lsav-ink-2); }
@media (min-width: 760px) { .lsav-points { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lsav-s5); } }
@media (min-width: 1080px) { .lsav-points { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.lsav-split { display: grid; gap: var(--lsav-s6); }
.lsav-split > * { min-width: 0; }
@media (min-width: 760px) { .lsav-split { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--lsav-s7); } }

/* ---------- 9. Pilot hall pass and offer tickets ---------- */
.lsav-pass {
  position: relative; display: grid; overflow: hidden;
  background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius-lg); box-shadow: var(--lsav-shadow);
}
.lsav-pass::before, .lsav-pass::after { /* ticket notches */
  content: ""; position: absolute; width: 26px; height: 26px; border-radius: 50%; z-index: 2;
  background: var(--lsav-paper); border: 1px solid var(--lsav-rule); top: 30px;
}
.lsav-pass::before { left: -14px; }
.lsav-pass::after { right: -14px; }
.lsav-section--tile .lsav-pass::before, .lsav-section--tile .lsav-pass::after { background: var(--lsav-paper-2); }
.lsav-pass__stub {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px;
  padding: 10px 22px; background: var(--lsav-bus); color: var(--lsav-ink);
  border-bottom: 2px dashed rgba(30, 42, 43, .45);
}
.lsav-pass__stub-title { font: 700 1.5rem/1 var(--lsav-font-head); letter-spacing: .06em; text-transform: uppercase; }
.lsav-pass__stub-no, .lsav-pass__tag { font: 700 var(--lsav-fs-label)/1.2 var(--lsav-font-body); letter-spacing: .08em; text-transform: uppercase; }
.lsav-pass__body { padding: 22px 22px 24px; }
.lsav-pass__body h2, .lsav-pass__body h3 { margin-bottom: 4px; }
.lsav-price { font: 700 var(--lsav-fs-price)/1 var(--lsav-font-head); font-variant-numeric: tabular-nums; margin: 6px 0 10px; }
.lsav-price small { font: 600 var(--lsav-fs-small)/1.3 var(--lsav-font-body); color: var(--lsav-ink-2); margin-left: 6px; letter-spacing: 0; }
.lsav-credit { display: flex; gap: 10px; align-items: flex-start; background: #F3F7EF; border-left: 4px solid var(--lsav-green); padding: 12px 14px; border-radius: 6px; font-weight: 600; margin: 14px 0 18px; }
.lsav-credit .lsav-icon { width: 22px; height: 22px; color: var(--lsav-green); margin-top: 2px; }
/* Founding-class rate: body-size bold text in a soft callout. Never the price font, never a before/after. */
.lsav-founding { background: var(--lsav-bus-soft); border-left: 4px solid var(--lsav-ink-2); border-radius: 8px; padding: 12px 14px; font-size: var(--lsav-fs-body); margin: 0 0 14px; }
.lsav-founding strong { font: inherit; font-weight: 700; }
.lsav-pill { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 10px; border-radius: 999px; background: var(--lsav-bus-soft); color: var(--lsav-ink); font: 700 var(--lsav-fs-label)/1.2 var(--lsav-font-body); }
@media (min-width: 760px) {
  .lsav-pass--wide { grid-template-columns: 220px minmax(0, 1fr); }
  .lsav-pass--wide .lsav-pass__stub { flex-direction: column; align-items: flex-start; justify-content: center; border-bottom: 0; border-right: 2px dashed rgba(30, 42, 43, .45); padding: 28px; }
  .lsav-pass--wide .lsav-pass__stub-title { font-size: 2rem; }
  .lsav-pass--wide::before { left: 206px; top: -14px; }
  .lsav-pass--wide::after { left: 206px; right: auto; top: auto; bottom: -14px; }
  .lsav-pass--wide .lsav-pass__body { padding: 30px 32px; display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 12px 36px; align-items: center; }
}
.lsav-offers { display: grid; gap: var(--lsav-s5); margin-top: var(--lsav-s6); }
.lsav-offer { display: flex; flex-direction: column; }
.lsav-offer .lsav-pass__body { display: flex; flex-direction: column; flex: 1; }
.lsav-offer h3 { font-size: var(--lsav-fs-h3); }
.lsav-offer--dfy .lsav-pass__stub { background: var(--lsav-red); color: #fff; border-bottom-color: rgba(255, 255, 255, .55); }
.lsav-offer--own .lsav-pass__stub { background: var(--lsav-green); color: var(--lsav-chalk); border-bottom-color: rgba(233, 223, 198, .55); }
.lsav-offer--custom .lsav-pass__stub { background: var(--lsav-blue); color: #fff; border-bottom-color: rgba(255, 255, 255, .55); }
.lsav-offer .lsav-checks { margin-bottom: 20px; }
.lsav-offer__cta { margin-top: auto; }
.lsav-offer__cta .lsav-btn { width: 100%; }
.lsav-talk { font: 700 1.75rem/1.1 var(--lsav-font-head); margin: 8px 0 14px; }
@media (min-width: 760px) {
  .lsav-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .lsav-offer--custom { grid-column: 1 / -1; }
}
@media (min-width: 1080px) {
  .lsav-offers { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .lsav-offer--custom { grid-column: auto; }
}

/* ---------- 10. Price box, deliverables, timeline, guarantee ---------- */
.lsav-pricebox { background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius-lg); box-shadow: var(--lsav-shadow); overflow: hidden; }
.lsav-pricebox__body { padding: 20px 22px 24px; }
.lsav-deliver { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; counter-reset: lsav-d; }
.lsav-deliver li { position: relative; counter-increment: lsav-d; background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius); padding: 16px 18px 16px 64px; }
.lsav-deliver li::before { content: counter(lsav-d, decimal-leading-zero); position: absolute; left: 16px; top: 15px; width: 34px; height: 34px; border-radius: 8px; background: var(--lsav-green); color: var(--lsav-chalk); font: 700 var(--lsav-fs-label)/34px var(--lsav-font-head); text-align: center; }
@media (min-width: 760px) { .lsav-deliver { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 22px; } }
.lsav-timeline { list-style: none; padding: 0; margin: 0; display: grid; }
.lsav-timeline li { position: relative; padding: 0 0 26px 60px; }
.lsav-timeline li::before { content: ""; position: absolute; left: 20px; top: 8px; bottom: -8px; width: 3px; background: repeating-linear-gradient(180deg, var(--lsav-ink) 0 6px, transparent 6px 12px); opacity: .35; }
.lsav-timeline li:last-child::before { display: none; }
.lsav-timeline__dot { position: absolute; left: 0; top: 0; width: 44px; height: 44px; border-radius: 50%; background: var(--lsav-bus); border: 3px solid var(--lsav-ink); display: grid; place-items: center; font: 700 1.125rem/1 var(--lsav-font-head); }
.lsav-timeline h3 { font-size: 1.3125rem; margin: 6px 0 4px; }
.lsav-timeline p { margin: 0; color: var(--lsav-ink-2); }
.lsav-guarantee { background: var(--lsav-card); border: 3px double var(--lsav-green); border-radius: var(--lsav-radius-lg); padding: 28px 22px; display: grid; gap: 18px; align-items: center; }
.lsav-guarantee blockquote { margin: 0; font: 700 clamp(1.3rem, 3.4vw, 1.75rem)/1.3 var(--lsav-font-head); }
.lsav-guarantee p { color: var(--lsav-ink-2); margin: 10px 0 0; }
.lsav-seal { width: 128px; height: 128px; }
@media (min-width: 760px) { .lsav-guarantee { grid-template-columns: 150px minmax(0, 1fr); padding: 34px 36px; } }

/* ---------- 11. Video card, facade, EN/ES switch, 3-2-1 leader ---------- */
.lsav-reel-head { display: flex; gap: 18px; align-items: center; margin-bottom: var(--lsav-s5); }
.lsav-leader { width: 72px; height: 72px; flex: none; }
.lsav-reel-grid { display: grid; gap: var(--lsav-s5); list-style: none; margin: 0; padding: 0; }
.lsav-reel-grid--shorts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 760px) { .lsav-reel-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lsav-reel-grid--shorts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .lsav-reel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lsav-reel-grid--shorts { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.lsav-video { display: flex; flex-direction: column; background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius-lg); overflow: hidden; box-shadow: var(--lsav-shadow); }
.lsav-video__frame {
  position: relative; aspect-ratio: 16 / 9; max-height: 70vh; background: #0c0f10;
  border: 2px solid var(--lsav-ink); border-radius: var(--lsav-radius-lg) var(--lsav-radius-lg) 0 0; overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(120, 200, 190, .35);
}
.lsav-video--short .lsav-video__frame { aspect-ratio: 9 / 16; max-width: 320px; margin: 0 auto; width: 100%; }
@media (min-width: 760px) { .lsav-reel-grid:not(.lsav-reel-grid--shorts) .lsav-video--short .lsav-video__frame { max-width: 260px; } }
.lsav-video__frame picture, .lsav-video__frame img, .lsav-video__frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border: 0; }
.lsav-video__frame .lsav-drama { position: absolute; left: 10px; top: 10px; z-index: 3; }
.lsav-video__play { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; display: grid; place-items: center; padding: 0; border: 0; background: linear-gradient(180deg, transparent 55%, rgba(0, 0, 0, .35)); color: #fff; cursor: pointer; }
.lsav-video__play:focus-visible { box-shadow: inset 0 0 0 4px var(--lsav-bus); border-radius: 0; }
.lsav-video__disc { width: 72px; height: 72px; border-radius: 50%; background: var(--lsav-red); display: grid; place-items: center; box-shadow: 0 0 0 5px rgba(255, 255, 255, .85), 0 8px 20px rgba(0, 0, 0, .4); transition: transform .15s ease; }
.lsav-video__disc .lsav-icon { width: 30px; height: 30px; margin-left: 4px; }
.lsav-video__play:hover .lsav-video__disc, .lsav-video__play:focus-visible .lsav-video__disc { transform: translateY(-2px); }
.lsav-video__play[aria-disabled="true"] { cursor: default; }
.lsav-video__soon { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 8px 14px; border-radius: 999px; background: rgba(15, 18, 19, .86); color: #fff; font: 700 var(--lsav-fs-small)/1.2 var(--lsav-font-body); }
.lsav-video__soon::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--lsav-bus); }
.lsav-video.is-playing .lsav-video__play, .lsav-video.is-playing .lsav-video__frame picture, .lsav-video.is-playing .lsav-video__frame .lsav-drama { display: none; }
.lsav-video__body { display: flex; flex-direction: column; gap: 10px; flex: 1; padding: 16px 18px 18px; }
.lsav-video__title { font: 700 1.25rem/1.2 var(--lsav-font-head); margin: 0; }
.lsav-video__meta { font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); margin: 0; }
.lsav-video__row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: auto; }
.lsav-lang { display: inline-flex; padding: 3px; border: 2px solid var(--lsav-ink); border-radius: 999px; background: var(--lsav-paper); }
.lsav-lang button { min-height: 44px; min-width: 56px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--lsav-ink); font: 700 var(--lsav-fs-small)/1 var(--lsav-font-body); cursor: pointer; }
.lsav-lang button[aria-pressed="true"] { background: var(--lsav-ink); color: var(--lsav-paper); }
.lsav-lang button:disabled { color: var(--lsav-ink-2); cursor: not-allowed; }
.lsav-reel-note { margin-top: var(--lsav-s5); font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); max-width: 65ch; }
/* 3-2-1 film leader: only on click-to-play, never on load, skipped with reduced motion (JS). */
.lsav-leader-run { position: absolute; inset: 0; z-index: 4; display: grid; place-items: center; overflow: hidden; background: #1b1d1c; color: #F2E8D0; font: 700 5rem/1 var(--lsav-font-head); }
.lsav-leader-run::before { content: ""; position: absolute; width: 58%; aspect-ratio: 1; border-radius: 50%; border: 3px solid rgba(242, 232, 208, .8); box-shadow: inset 0 0 0 10px #1b1d1c, inset 0 0 0 12px rgba(242, 232, 208, .5); }
.lsav-leader-run::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent 49.8%, rgba(242, 232, 208, .5) 49.8% 50.2%, transparent 50.2%), linear-gradient(0deg, transparent 49.6%, rgba(242, 232, 208, .5) 49.6% 50.4%, transparent 50.4%); }
.lsav-leader-run__wedge { position: absolute; width: 58%; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(rgba(242, 232, 208, .22) var(--lsav-sweep, 0deg), transparent 0); animation: lsav-sweep .3s linear infinite; }
.lsav-leader-run__num { position: relative; z-index: 1; }
.lsav-leader-run.is-flash { background: #F2E8D0; }
@property --lsav-sweep { syntax: "<angle>"; inherits: false; initial-value: 0deg; }
@keyframes lsav-sweep { from { --lsav-sweep: 0deg; } to { --lsav-sweep: 360deg; } }
/* Video card details (B3): hidden-until-JS controls, thumbnail, soon pill, iframe, labels. */
.lsav-video [hidden] { display: none !important; }
.lsav-video__iframe { z-index: 5; background: #000; }
.lsav-video.is-playing .lsav-video__thumb { display: none; }
.lsav-video__soonwrap { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; }
.lsav-video__body .lsav-video__label { margin-top: -6px; }
.lsav-video__note { margin: 0; font-size: var(--lsav-fs-small); }
.lsav .lsav-video__iframe:focus-visible { outline: 4px solid var(--lsav-bus); outline-offset: -4px; box-shadow: none; border-radius: 0; }
.lsav-reel-grid--stills .lsav-still:has(figcaption) .lsav-video__frame { border-radius: var(--lsav-radius-lg) var(--lsav-radius-lg) 0 0; }

/* ---------- 12. Comparison table ---------- */
.lsav-compare { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius-lg); overflow: hidden; box-shadow: var(--lsav-shadow); }
.lsav-compare caption { caption-side: top; text-align: left; font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); padding-bottom: 12px; }
.lsav-compare th, .lsav-compare td { padding: 14px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--lsav-rule); }
.lsav-compare thead th { font: 700 1.0625rem/1.25 var(--lsav-font-head); background: var(--lsav-paper-2); }
.lsav-compare .is-us { background: var(--lsav-card); font-weight: 700; }
.lsav-compare thead .is-us { box-shadow: inset 0 3px 0 var(--lsav-red); }
.lsav-compare tbody th { font-weight: 700; }
.lsav-compare tr:last-child > * { border-bottom: 0; }
@media (min-width: 760px) {
  .lsav-compare tbody tr:nth-child(even) > :not(.is-us) { background: var(--lsav-paper-2); }
  .lsav-compare tbody th { position: sticky; left: 0; }
  .lsav-compare-wrap { overflow-x: auto; }
}
@media (max-width: 759.98px) {
  .lsav-compare, .lsav-compare tbody, .lsav-compare tr, .lsav-compare th, .lsav-compare td { display: block; }
  .lsav-compare { background: transparent; border: 0; box-shadow: none; overflow: visible; }
  .lsav-compare thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .lsav-compare tbody tr { background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius); margin-bottom: 12px; overflow: hidden; display: flex; flex-direction: column; }
  .lsav-compare tbody th { background: var(--lsav-paper-2); font: 700 1.125rem/1.25 var(--lsav-font-head); }
  .lsav-compare td { display: grid; grid-template-columns: minmax(0, 9em) minmax(0, 1fr); gap: 10px; padding: 11px 16px; }
  .lsav-compare td::before { content: attr(data-label); font-weight: 600; color: var(--lsav-ink-2); font-size: var(--lsav-fs-small); }
  .lsav-compare td.is-us { order: 9; border-top: 3px solid var(--lsav-red); }
  .lsav-compare td.is-us::before { color: var(--lsav-ink); }
}

/* ---------- 13. ROI row ---------- */
.lsav-roi { display: grid; gap: var(--lsav-s4); margin-top: var(--lsav-s6); list-style: none; padding: 0; }
.lsav-roi__item { border-top: 4px solid var(--lsav-bus); padding-top: 14px; }
.lsav-roi__num { display: block; font: 700 1.875rem/1.1 var(--lsav-font-head); margin-bottom: 6px; }
.lsav-roi__item p { margin: 0; color: var(--lsav-ink-2); }
@media (min-width: 760px) { .lsav-roi { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--lsav-s5); } }

/* ---------- 14. Chalkboard bands: compliance strip, footer ---------- */
.lsav-chalk { background: var(--lsav-green); color: var(--lsav-chalk); background-image: radial-gradient(120% 90% at 20% 0%, rgba(255, 255, 255, .06), transparent 60%); }
.lsav-chalk h2, .lsav-chalk h3 { color: var(--lsav-paper); }
.lsav-chalk a:not(.lsav-btn) { color: var(--lsav-bus); }
.lsav-chalk a:not(.lsav-btn):hover { color: #fff; }
.lsav-chalk .lsav-eyebrow { color: var(--lsav-bus); }
.lsav-chalk .lsav-lede, .lsav-chalk .lsav-fine { color: var(--lsav-chalk); }
.lsav-comply { list-style: none; padding: 0; margin: 0 0 var(--lsav-s5); display: grid; gap: 14px; }
.lsav-comply li { display: flex; gap: 12px; align-items: flex-start; }
.lsav-comply .lsav-icon { width: 26px; height: 26px; color: var(--lsav-bus); margin-top: 1px; }
.lsav-comply strong { display: block; color: var(--lsav-paper); }
.lsav-quote { margin: 0 0 var(--lsav-s5); padding: 14px 18px; border-left: 4px solid var(--lsav-bus); background: var(--lsav-green-2); font-style: italic; max-width: 65ch; }
.lsav-quote p { margin: 0 0 6px; }
.lsav-quote footer { font-style: normal; font-size: var(--lsav-fs-small); }
.lsav-comply-note { border-top: 1px solid rgba(233, 223, 198, .3); padding-top: 16px; font-size: var(--lsav-fs-small); font-style: italic; max-width: 65ch; }
@media (min-width: 760px) { .lsav-comply { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 28px; } }

/* ---------- 15. CTA band ---------- */
.lsav-ctaband { position: relative; background: var(--lsav-bus); color: var(--lsav-ink); padding: calc(var(--lsav-s7) + 10px) 0 var(--lsav-s7); }
.lsav-ctaband::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 10px; background: repeating-linear-gradient(-45deg, var(--lsav-ink) 0 14px, var(--lsav-bus) 14px 28px); }
.lsav-ctaband__grid { display: grid; gap: var(--lsav-s5); align-items: center; }
.lsav-ctaband__grid > * { min-width: 0; }
.lsav-ctaband h2 { margin-bottom: 10px; }
.lsav-ctaband p { font-size: 1.125rem; margin: 0; max-width: 60ch; }
.lsav-ctaband a:not(.lsav-btn) { color: var(--lsav-ink); font-weight: 700; }
.lsav-ctaband .lsav-btn--secondary { background: #FFF8E4; }
@media (min-width: 760px) { .lsav-ctaband__grid { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); } .lsav-ctaband .lsav-cta-row { justify-content: flex-end; } }

/* ---------- 16. FAQ ---------- */
.lsav-faq { display: grid; gap: 10px; max-width: 860px; }
.lsav-faq details { background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius); }
.lsav-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 14px 18px; font: 700 1.0625rem/1.35 var(--lsav-font-body); border-radius: var(--lsav-radius); }
.lsav-faq summary::-webkit-details-marker { display: none; }
.lsav-faq summary::marker { content: ""; }
.lsav-faq summary::after {
  content: ""; flex: none; width: 28px; height: 28px; border-radius: 50%;
  background: linear-gradient(var(--lsav-ink) 0 0) center / 12px 2px no-repeat, linear-gradient(var(--lsav-ink) 0 0) center / 2px 12px no-repeat, var(--lsav-paper-2);
  box-shadow: inset 0 0 0 1px var(--lsav-rule); transition: transform .15s ease;
}
.lsav-faq details[open] summary::after { background: linear-gradient(var(--lsav-ink) 0 0) center / 12px 2px no-repeat, var(--lsav-bus); transform: rotate(180deg); }
.lsav-faq details > div { padding: 16px 18px 18px; border-top: 1px solid var(--lsav-rule); }
.lsav-faq details > div > :last-child { margin-bottom: 0; }

/* ---------- 17. Forms ---------- */
.lsav-formcard { background: var(--lsav-card); border: 1px solid var(--lsav-rule); border-radius: var(--lsav-radius-lg); box-shadow: var(--lsav-shadow); overflow: hidden; }
.lsav-formcard__head { background: var(--lsav-green); color: var(--lsav-chalk); padding: 18px 22px; }
.lsav-formcard__head h2, .lsav-formcard__head h3 { color: var(--lsav-paper); margin: 0 0 4px; font-size: 1.5rem; }
.lsav-formcard__head p { margin: 0; }
.lsav-form { padding: 22px; display: grid; gap: 18px; }
.lsav-form__two { display: grid; gap: 18px; }
.lsav-page-contact .lsav-pagehero { padding: 28px 0; }
.lsav-page-contact .lsav-pagehero .lsav-lede { margin-bottom: 0; }
.lsav-page-contact .lsav-formsec { padding: 28px 0 40px; }
.lsav-page-contact .lsav-section--note { padding: 0 0 40px; }
.lsav-form[data-lsav-leadform="call"] textarea { min-height: 100px; }
@media (min-width: 600px) {
  .lsav-form[data-lsav-leadform="call"] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lsav-form[data-lsav-leadform="call"] > * { grid-column: 1 / -1; min-width: 0; }
  .lsav-form[data-lsav-leadform="call"] > [data-lsav-field="name"],
  .lsav-form[data-lsav-leadform="call"] > [data-lsav-field="firm"],
  .lsav-form[data-lsav-leadform="call"] > [data-lsav-field="email"],
  .lsav-form[data-lsav-leadform="call"] > [data-lsav-field="market"] { grid-column: auto; }
}
@media (min-width: 760px) { .lsav-form__two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lsav-field { display: grid; gap: 6px; min-width: 0; }
.lsav-field label, .lsav-field legend { font-weight: 600; font-size: 1rem; }
.lsav-opt { font-weight: 400; color: var(--lsav-ink-2); }
.lsav-field input, .lsav-field select, .lsav-field textarea {
  width: 100%; min-height: 48px; padding: 11px 14px;
  font: 400 1.0625rem/1.4 var(--lsav-font-body); color: var(--lsav-ink);
  background: var(--lsav-card); border: 1.5px solid var(--lsav-ink-2); border-radius: var(--lsav-radius);
}
.lsav-field textarea { min-height: 128px; resize: vertical; }
.lsav-field input:focus-visible, .lsav-field select:focus-visible, .lsav-field textarea:focus-visible { border-color: var(--lsav-blue); box-shadow: 0 0 0 3px var(--lsav-blue); border-radius: var(--lsav-radius); }
.lsav-field [aria-invalid="true"] { border: 2px solid var(--lsav-error); }
.lsav-field__error { display: flex; gap: 8px; align-items: flex-start; color: var(--lsav-error); font-weight: 600; font-size: var(--lsav-fs-small); margin: 0; }
.lsav-choices { display: grid; gap: 10px; border: 0; padding: 0; margin: 0; min-width: 0; }
.lsav-choices legend { margin-bottom: 8px; padding: 0; }
.lsav-choice { display: flex; align-items: center; gap: 12px; min-height: 64px; padding: 10px 14px; border: 1.5px solid var(--lsav-ink-2); border-radius: var(--lsav-radius); background: var(--lsav-card); cursor: pointer; font-weight: 600; }
.lsav-choice input { width: 22px; height: 22px; flex: none; margin: 0; accent-color: var(--lsav-red); }
.lsav-choice:has(input:checked) { border: 2px solid var(--lsav-ink); background: #FFF6DB; }
.lsav-choice:has(input:focus-visible) { box-shadow: var(--lsav-focus); }
@media (min-width: 760px) { .lsav-choices--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lsav-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.lsav-form .lsav-btn--primary { width: 100%; }
@media (min-width: 760px) { .lsav-form .lsav-btn--primary { width: auto; justify-self: start; } }
.lsav-form__note { font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); margin: 0; }
.lsav-errors { border: 2px solid var(--lsav-error); border-radius: var(--lsav-radius); background: #FDF1EE; padding: 14px 18px; }
.lsav-errors h3 { font: 700 1.0625rem/1.3 var(--lsav-font-body); color: var(--lsav-error); margin: 0 0 6px; }
.lsav-errors ul { margin: 0; }
.lsav-form__done { background: var(--lsav-ok-bg); color: var(--lsav-ink); padding: 26px 22px; border-radius: var(--lsav-radius-lg); }
.lsav-form__done:focus-visible { box-shadow: var(--lsav-focus); }
/* B4: the working lead form (template-parts/lsav/form.php). */
.lsav-form [hidden], .lsav-errors[hidden] { display: none !important; }
.lsav-req { font-weight: 400; color: var(--lsav-ink-2); }
.lsav-field__help { margin: 0; font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); }
.lsav-choices .lsav-field__help, .lsav-choices .lsav-field__error { margin: -2px 0 4px; }
.lsav-field__error .lsav-icon { width: 20px; height: 20px; margin-top: 1px; }
.lsav-errors:focus { outline: none; }
.lsav-errors:focus-visible { box-shadow: var(--lsav-focus); }
.lsav-errors h3 { font-size: 1.0625rem; }
.lsav-errors a { color: var(--lsav-error); font-weight: 600; }
.lsav-errors li + li { margin-top: 4px; }
.lsav-form__submit { display: grid; }
.lsav-form .lsav-btn--primary[disabled] { opacity: .75; cursor: progress; }
.lsav-form__done:focus { outline: none; }
.lsav-form__done h3 { margin: 0 0 8px; font-size: 1.5rem; }
.lsav-form__done p { margin: 0 0 12px; }
.lsav-form__done .lsav-form__back { margin: 16px 0 0; }
.lsav-form--done { padding: 22px; }

/* ---------- 18. Footer ---------- */
.lsav-footer { padding: var(--lsav-s7) 0 var(--lsav-s6); font-size: 1rem; }
.lsav-footer__grid { display: grid; gap: var(--lsav-s6); }
.lsav-footer__grid > * { min-width: 0; }
.lsav-footer .lsav-logo, .lsav-footer a.lsav-logo:hover { color: var(--lsav-paper); }
.lsav-footer .lsav-logo__mark { background: var(--lsav-paper); border-radius: 8px; padding: 2px; width: 44px; height: 44px; }
.lsav-footer .lsav-logo__byline { color: var(--lsav-chalk); }
.lsav-footer__about { margin: 14px 0 0; max-width: 34em; }
.lsav-footer h2 { font: 700 var(--lsav-fs-label)/1.3 var(--lsav-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--lsav-bus); margin: 0 0 8px; }
.lsav-footer ul { list-style: none; padding: 0; margin: 0; }
.lsav-footer li a { display: inline-flex; align-items: center; min-height: 44px; }
.lsav-footer a:not(.lsav-btn):not(.lsav-logo) { color: var(--lsav-chalk); }
.lsav-footer a:not(.lsav-btn):not(.lsav-logo):hover { color: #fff; }
.lsav-footer p { margin: 8px 0 0; }
.lsav-footer__legal { margin-top: var(--lsav-s6); padding-top: 18px; border-top: 1px solid rgba(233, 223, 198, .3); display: grid; gap: 6px; font-size: var(--lsav-fs-small); }
.lsav-footer__legal p { margin: 0; }
.lsav-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
.lsav-footer__line { font-weight: 600; color: var(--lsav-chalk); }
@media (min-width: 760px) { .lsav-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .lsav-footer__grid { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); } }

/* ---------- 19. Phone call bar ---------- */
.lsav-callbar {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 70;
  display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px;
  padding: 10px var(--lsav-gutter) calc(10px + env(safe-area-inset-bottom, 0px));
  background: var(--lsav-paper); border-top: 1px solid var(--lsav-rule);
  box-shadow: 0 -6px 18px -10px rgba(30, 42, 43, .4);
  transition: transform .2s ease, visibility .2s;
}
.lsav-callbar .lsav-btn { min-height: var(--lsav-tap); padding-left: 14px; padding-right: 14px; white-space: nowrap; }
.lsav-callbar.is-hidden { transform: translateY(110%); visibility: hidden; }
@media (min-width: 760px) { .lsav-callbar { display: none; } }

/* ---------- 19b. Page sections (B2): offers, reel slot, stills, pricing, forms slot ---------- */
/* Offer tickets as a list: the <li> is the ticket, the <article> inside fills it. */
.lsav ul.lsav-offers { list-style: none; padding: 0; margin: var(--lsav-s6) 0 0; }
.lsav-offer__inner { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.lsav-offer .lsav-pass__stub { flex-wrap: wrap; }
.lsav-offer .lsav-pass__stub-title { font-size: 1.375rem; }
.lsav-offer__note { font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); margin: -4px 0 14px; }
.lsav-offer .lsav-flavor { margin-bottom: 8px; }
.lsav-offer .lsav-talk { margin: 4px 0 18px; } /* after the examples, before the button */
.lsav-pass__summary { margin-bottom: 0; }
.lsav-pass--wide .lsav-price { margin-top: 0; }
.lsav-pass--wide .lsav-credit { margin: 10px 0 16px; }
.lsav-section-head + .lsav-pass--wide { margin-top: 0; }

/* Card grids with 2 or 4 cards: keep them even (2 across) instead of leaving an orphan. */
@media (min-width: 1080px) {
  .lsav-points:has(> li:nth-child(2):last-child), .lsav-points:has(> li:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 960px; }
}
/* Numbers row: 1 -> 2 -> 4 across. */
@media (min-width: 760px) { .lsav-roi { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1080px) { .lsav-roi { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.lsav-roi__num { font-variant-numeric: tabular-nums; }

/* Compliance strip quote (a <figure>). */
.lsav-quote blockquote { margin: 0; }
.lsav-quote figcaption { font-style: normal; font-size: var(--lsav-fs-small); }
.lsav-comply-strip .lsav-section__link { margin-top: var(--lsav-s3); }
@media (max-width: 759.98px) { .lsav-compare caption { display: block; } }

/* Reel slot: coming-soon state and stills. */
.lsav-reel-head h2 { margin: 0; }
.lsav-reel-group { margin: var(--lsav-s7) 0 var(--lsav-s5); font-size: var(--lsav-fs-h3); }
.lsav-reel-group:first-child { margin-top: 0; }
.lsav-reel-empty { display: grid; gap: var(--lsav-s5); }
.lsav-reel-empty__text { max-width: var(--lsav-text); }
.lsav-reel-empty__text > * { margin: 0; }
.lsav-reel-empty__note { font: 700 var(--lsav-fs-h3)/1.25 var(--lsav-font-head); margin-bottom: 6px !important; }
.lsav-reel-empty__mail { font-size: var(--lsav-fs-small); color: var(--lsav-ink-2); }
@media (min-width: 760px) { .lsav-reel-grid--stills { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.lsav-still { margin: 0; height: 100%; }
.lsav-still .lsav-video__frame { border-radius: var(--lsav-radius-lg); }
.lsav-still figcaption.lsav-video__body { flex: none; gap: 4px; }
.lsav-still figcaption .lsav-video__title { display: block; }
.lsav-reel-empty > .lsav-reel-note { margin: 0; }
.lsav-still__soon { position: absolute; left: 10px; bottom: 10px; z-index: 3; }
.lsav ul.lsav-stills { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--lsav-s5); }
.lsav-stills .lsav-still .lsav-video__frame { border-radius: var(--lsav-radius-lg) var(--lsav-radius-lg) 0 0; }
@media (min-width: 760px) { .lsav ul.lsav-stills { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Price box. */
.lsav-pricebox { max-width: 680px; }
.lsav-pricebox--dfy .lsav-pass__stub { background: var(--lsav-red); color: #fff; border-bottom-color: rgba(255, 255, 255, .55); }
.lsav-pricebox--own .lsav-pass__stub { background: var(--lsav-green); color: var(--lsav-chalk); border-bottom-color: rgba(233, 223, 198, .55); }
.lsav-pricebox .lsav-pass__stub { flex-wrap: wrap; }
.lsav-pricebox__note { font-weight: 600; margin: -2px 0 14px; }
.lsav-pricebox .lsav-checks { margin-bottom: 4px; }
.lsav-pricebox .lsav-credit { margin: 18px 0 0; }
.lsav-credit span { min-width: 0; }

/* Guarantee: the heading sits inside the sealed box. */
.lsav-guarantee h2 { font-size: var(--lsav-fs-h3); margin-bottom: 8px; }
.lsav-guarantee__text { font: 700 clamp(1.25rem, 3.2vw, 1.6rem)/1.35 var(--lsav-font-head); color: var(--lsav-ink); margin: 0; max-width: 40ch; }
.lsav-guarantee .lsav-seal { justify-self: start; }

/* Timeline as its own section. */
.lsav-timeline { max-width: var(--lsav-text); }

/* Custom: "Let's talk." */
.lsav-letstalk__grid { display: grid; gap: var(--lsav-s4); align-items: end; }
.lsav-letstalk h2 { margin-bottom: 4px; }
.lsav-letstalk .lsav-talk { font-size: clamp(2rem, 6vw, 2.75rem); color: var(--lsav-red); margin: 0; }
.lsav-letstalk__cta { margin: 0; }
@media (min-width: 760px) { .lsav-letstalk__grid { grid-template-columns: minmax(0, 1fr) auto; } }

/* Form slot (email card until the online form is switched on). */
.lsav-formsec .lsav-wrap.lsav-narrow { max-width: calc(var(--lsav-text) + 2 * var(--lsav-gutter)); }
.lsav-form--email > * { margin: 0; }
.lsav-form--email .lsav-btn--primary { width: 100%; }
@media (min-width: 760px) { .lsav-form--email .lsav-btn--primary { width: auto; } }
.lsav-form__lead { font-size: 1.125rem; }
.lsav-form__addr { font-weight: 700; }
.lsav-form__addr a, .lsav-reel-empty__mail a { display: inline-flex; align-items: center; min-height: 44px; }

/* Brief rows: a heading and one paragraph. Heading left, text right from 760px. */
.lsav-section--brief { padding: clamp(40px, 6vw, 72px) 0; }
.lsav-section--brief + .lsav-section--brief { border-top: 1px solid var(--lsav-rule); }
.lsav-section--brief .lsav-section-head { margin-bottom: 0; }
.lsav-section--brief h2 { font-size: clamp(1.6rem, 3.6vw, 2.25rem); }
.lsav-section--brief .lsav-body, .lsav-section--brief .lsav-lede { font-size: var(--lsav-fs-lede); line-height: 1.55; color: var(--lsav-ink); }
@media (min-width: 760px) {
  .lsav-section--brief .lsav-section-head { max-width: none; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 12px var(--lsav-s7); align-items: start; }
  .lsav-section--brief h2 { margin: 0; }
  .lsav-section--brief .lsav-section-head > p { margin: 0; }
}

/* Inner-page hero small print. */
.lsav-pagehero__note { margin: 0 0 var(--lsav-s5); }

/* ---------- 20. Motion and print ---------- */
@media (prefers-reduced-motion: reduce) {
  html:has(body.lsav) { scroll-behavior: auto; }
  .lsav *, .lsav *::before, .lsav *::after { animation: none !important; transition: none !important; }
}
@media print {
  .lsav-header, .lsav-callbar, .lsav-menu, .lsav-skip { display: none !important; }
  body.lsav { padding: 0; background: #fff; }
}

/* ---------- Review fixes (2026-09-23) ---------- */
/* Home comparison: on phones only the key rows; the full table is on Done For You. */
@media (max-width: 759.98px) { .lsav-compare tbody tr.lsav-compare__more { display: none; } }
@media (min-width: 760px) { .lsav-compare-more { display: none; } }
/* Home reel while the videos are on their way: three stills (one wide + two from 760px,
   one row of three from 1080px). */
@media (min-width: 760px) and (max-width: 1079.98px) { .lsav-reel-empty--home .lsav-reel-grid--stills > li:first-child { grid-column: 1 / -1; } }
@media (min-width: 1080px) { .lsav-reel-empty--home .lsav-reel-grid--stills { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* Video card: no-JS link and the admin-only note about an unreadable video link. */
.lsav-video__nojs { margin: 0; font-weight: 600; }
.lsav-video__admin { margin: 0; padding: 8px 12px; border-left: 4px solid var(--lsav-bus); background: var(--lsav-paper-2); font-size: var(--lsav-fs-small); }
/* ---------- Short home: work first, readable offer summaries ---------- */
.lsav-page-home { --lsav-section-y: clamp(40px, 6vw, 80px); }
.lsav-page-home .lsav-hero h1 { max-width: 12ch; }
.lsav-page-home .lsav-hero__lede { max-width: 38ch; }
.lsav-hero__actions .lsav-btn { width: auto; }
.lsav-page-home .lsav-section-head { margin-bottom: 24px; }
.lsav-page-home .lsav-reel-head { margin-bottom: 12px; }
.lsav-page-home .lsav-leader { width: 52px; height: 52px; }
.lsav-page-home .lsav-offer__terms { color: var(--lsav-ink-2); font-size: var(--lsav-fs-small); }
.lsav-page-home .lsav-offer__cta { padding-top: 6px; margin-bottom: 0; }
.lsav-page-home .lsav-offers { grid-template-columns: minmax(0, 1fr); }
.lsav-page-home .lsav-founding { font-size: var(--lsav-fs-small); }
.lsav-custom-summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 28px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--lsav-rule); }
.lsav-custom-summary h3 { margin-bottom: 4px; }
.lsav-custom-summary p { margin-bottom: 0; color: var(--lsav-ink-2); }
.lsav-page-home .lsav-comply-note { margin-bottom: 0; font-style: normal; }
.lsav-page-home .lsav-comply-strip .lsav-section-head { margin-bottom: 20px; }
@media (min-width: 760px) {
  .lsav-page-home .lsav-offers { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lsav-page-home .lsav-pass--wide { grid-template-columns: 150px minmax(0, 1fr); }
  .lsav-page-home .lsav-pass--wide .lsav-pass__stub { padding: 22px; }
  .lsav-page-home .lsav-pass--wide .lsav-pass__stub-title { font-size: 1.5rem; }
  .lsav-page-home .lsav-pass--wide::before, .lsav-page-home .lsav-pass--wide::after { left: 136px; }
}
@media (max-width: 759.98px) {
  .lsav-header .lsav-brand { flex: 1; }
  .lsav-header .lsav-logo { gap: 8px; }
  .lsav-header .lsav-logo__mark { width: 32px; height: 32px; }
  .lsav-header .lsav-logo__text { min-width: 0; }
  .lsav-header .lsav-logo__name { font-size: .95rem; }
  .lsav-header .lsav-logo__byline { white-space: normal; font-size: .8125rem; }
  .lsav-header .lsav-menu > summary { width: 100px; padding-inline: 12px; }
  .lsav-page-home .lsav-hero { padding: 28px 0 32px; }
  .lsav-page-home .lsav-hero__grid { gap: 24px; }
  .lsav-page-home .lsav-hero h1 { font-size: clamp(2.35rem, 9.7vw, 3rem); }
  .lsav-page-home .lsav-hero__lede { margin-bottom: 18px; }
  .lsav-page-home .lsav-hero__art { max-width: 220px; }
  .lsav-page-home .lsav-cart__screen .lsav-cart__label { left: 4px; bottom: 4px; max-width: calc(100% - 8px); font-size: 10px; line-height: 1.25; padding: 3px 5px; border-radius: 4px; }
  .lsav-hero__actions { gap: 8px 16px; }
  .lsav-hero__actions .lsav-btn { flex: 1; padding: 12px 16px; }
  .lsav-hero__actions .lsav-textlink { flex: none; font-size: 1rem; }
  .lsav-page-home .lsav-reel-grid {
    display: flex; gap: 14px; overflow-x: auto; padding: 3px 3px 14px;
    scroll-snap-type: x proximity; overscroll-behavior-x: contain;
    scrollbar-width: thin; scrollbar-color: var(--lsav-ink-2) var(--lsav-rule);
  }
  .lsav-page-home .lsav-reel-grid > li { flex: 0 0 88%; min-width: 0; scroll-snap-align: start; }
  .lsav-page-home .lsav-reel .lsav-section__link { margin-top: 10px; }
  .lsav-page-home .lsav-pass__body { padding: 20px; }
  .lsav-page-home .lsav-pass--wide .lsav-pass__body { display: grid; gap: 16px; }
  .lsav-page-home .lsav-pass__stub { padding: 10px 20px; }
  .lsav-page-home .lsav-pass__stub-title { font-size: 1.25rem; }
  .lsav-page-home .lsav-offer .lsav-pass__body > h3 { margin-bottom: 10px; }
  .lsav-page-home .lsav-custom-summary { gap: 4px; }
  .lsav-page-home .lsav-ctaband { padding: 42px 0 36px; }
  .lsav-page-home .lsav-ctaband__grid { gap: 20px; }
  .lsav-footer { padding-top: 36px; }
  .lsav-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 16px; }
  .lsav-footer__brand, .lsav-footer__grid > :last-child { grid-column: 1 / -1; }
}
