/* =============================================================
   Life'sPilot — main stylesheet
   Direction A · Playful palette (live)
   Class contract for every pattern. Reference this file when
   adding/editing patterns — class names are stable, don't invent.
   ============================================================= */

/* THEME.JSON PRESET FALLBACKS — literal values so the design renders even if
   WordPress global-styles vars are cached/stripped/unsupported. Generated from theme.json. */
:root{
  --wp--preset--color--pilot-blue: #18ABE2;
  --wp--preset--color--pilot-blue-deep: #0D7BA4;
  --wp--preset--color--pilot-blue-soft: #D2EEF9;
  --wp--preset--color--care-teal: #53C0C7;
  --wp--preset--color--care-teal-soft: #D6F0F1;
  --wp--preset--color--heart-pink: #EE3768;
  --wp--preset--color--heart-pink-soft: #FBD4DF;
  --wp--preset--color--lavender: #C4AFD5;
  --wp--preset--color--lavender-soft: #EDE6F3;
  --wp--preset--color--lavender-deep: #7A5E97;
  --wp--preset--color--sunbeam: #FCB616;
  --wp--preset--color--sunbeam-soft: #FDE3A3;
  --wp--preset--color--charcoal: #000000;
  --wp--preset--color--charcoal-soft: #333333;
  --wp--preset--color--muted: #6A646B;
  --wp--preset--color--bg: #F1F8FB;
  --wp--preset--color--bg-soft: #E3F2F5;
  --wp--preset--color--surface: #FFFFFF;
  --wp--preset--color--line: rgba(25,45,55,0.10);
  --wp--preset--color--line-strong: rgba(25,45,55,0.18);
  --wp--preset--color--dark: #0E5E78;
  --wp--preset--color--dark-fg: #EAF6FA;
  --wp--preset--font-family--mulish: Mulish, system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  --wp--preset--font-family--source-serif: "Source Serif 4", "Source Serif Pro", Georgia, Cambria, serif;
  --wp--preset--font-family--mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  --wp--preset--font-size--eyebrow: 11px;
  --wp--preset--font-size--small: 14px;
  --wp--preset--font-size--body: clamp(15px, 0.92vw + 12px, 16.5px);
  --wp--preset--font-size--lede: clamp(17px, 1.1vw + 14px, 21px);
  --wp--preset--font-size--h3: clamp(20px, 1.4vw + 16px, 28px);
  --wp--preset--font-size--h2: clamp(28px, 2.2vw + 18px, 44px);
  --wp--preset--font-size--display: clamp(34px, 4.4vw + 20px, 72px);
  --wp--preset--spacing--10: 8px;
  --wp--preset--spacing--20: 12px;
  --wp--preset--spacing--30: 20px;
  --wp--preset--spacing--40: 32px;
  --wp--preset--spacing--50: 48px;
  --wp--preset--spacing--60: clamp(56px, 6vw + 24px, 96px);
  --wp--preset--spacing--70: clamp(72px, 8vw + 32px, 120px);
  --wp--preset--shadow--card: 0 18px 40px -22px rgba(35,31,32,0.18);
  --wp--preset--shadow--deep: 0 30px 60px -28px rgba(35,31,32,0.30);
  --wp--preset--shadow--ring: 0 0 0 3px #D2EEF9;
}



/* --- TOKEN ALIASES (shorter names over WP-generated CSS vars) - */
:root {
  --bg:           var(--wp--preset--color--bg);
  --bg-soft:      var(--wp--preset--color--bg-soft);
  --surface:      var(--wp--preset--color--surface);
  --ink:          var(--wp--preset--color--charcoal);
  --ink-soft:     var(--wp--preset--color--charcoal-soft);
  --muted:        var(--wp--preset--color--muted);
  --primary:      var(--wp--preset--color--pilot-blue);
  --primary-deep: var(--wp--preset--color--pilot-blue-deep);
  --primary-soft: var(--wp--preset--color--pilot-blue-soft);
  --secondary:    var(--wp--preset--color--care-teal);
  --secondary-soft: var(--wp--preset--color--care-teal-soft);
  --accent:       var(--wp--preset--color--heart-pink);
  --accent-soft:  var(--wp--preset--color--heart-pink-soft);
  --lav:          var(--wp--preset--color--lavender);
  --lav-soft:     var(--wp--preset--color--lavender-soft);
  --lav-deep:     var(--wp--preset--color--lavender-deep);
  --btn-bg:       var(--wp--preset--color--sunbeam);
  --btn-soft:     var(--wp--preset--color--sunbeam-soft);
  --btn-fg:       var(--wp--preset--color--charcoal);
  --line:         var(--wp--preset--color--line);
  --line-strong:  var(--wp--preset--color--line-strong);
  --dark:         var(--wp--preset--color--dark);
  --dark-fg:      var(--wp--preset--color--dark-fg);

  --font-ui:    var(--wp--preset--font-family--mulish);
  --font-body:  var(--wp--preset--font-family--source-serif);

  --r-card:  24px;
  --r-panel: 28px;
  --r-pill:  999px;
  --r-slot:  28px;

  --sh-card: 0 18px 40px -22px rgba(0,0,0,0.18);
  --sh-deep: 0 30px 60px -28px rgba(0,0,0,0.30);

  --max-w:      1200px;
  --max-w-wide: 1240px;
}

/* Disciplined alternate — apply class to <body> to swap palette. */
body.theme--disciplined {
  --bg: #F5F4F1; --bg-soft: #ECEAE3; --surface: #FFFFFF;
  --primary: #087BA7; --primary-deep: #045B7D; --primary-soft: #CDE7F0;
  --secondary: #FEC00F; --secondary-soft: #FCEAB4;
  --accent: #EE3768; --accent-soft: #FBD4DF;
  --btn-bg: #231F20; --btn-fg: #FFFFFF;
  --lav: #8B8486; --lav-soft: #E7E3E0; --lav-deep: #231F20;
}

/* --- RESET / BASE ------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { color-scheme: light; -webkit-text-size-adjust: 100%; overflow-x: hidden; }
/* v1.3.7 — kill horizontal page scroll caused by rotated/transformed hero phones
   and any overflowing decoration. Constrains the viewport on every page. */
html, body { max-width: 100vw; overflow-x: clip; }
.wp-site-blocks { overflow-x: clip; max-width: 100vw; }
body {
  margin: 0;
  font-family: var(--font-ui);
  font-size: 16px;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, svg, video, picture { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
ul { padding: 0; margin: 0; list-style: none; }
h1, h2, h3, h4, h5, h6, p { margin: 0; }

.ls-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* --- EYEBROW ------------------------------------------------ */
.ls-eyebrow {
  display: inline-flex; align-items: center; gap: 10px;
  font-family: var(--font-ui);
  font-size: 11px; font-weight: 700; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--primary-deep);
}
.ls-eyebrow::before { content: ""; width: 22px; height: 1px; background: currentColor; opacity: 0.6; }
.ls-eyebrow--accent { color: var(--accent); }
.ls-eyebrow--light  { color: var(--accent-soft); }

/* --- BUTTONS ------------------------------------------------ */
.ls-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 14px 22px; border-radius: var(--r-pill); border: 1px solid transparent;
  font-family: var(--font-ui);
  font-size: 14px; font-weight: 700; letter-spacing: -0.005em;
  cursor: pointer; text-decoration: none;
  transition: background-color 0.12s ease, transform 0.12s ease, box-shadow 0.12s ease;
  min-height: 44px; white-space: nowrap;
}
.ls-btn--sm { padding: 11px 18px; font-size: 13.5px; min-height: 0; }
.ls-btn--lg { padding: 18px 28px; font-size: 15px; }
.ls-btn--primary { background: var(--btn-bg); color: var(--btn-fg); }
.ls-btn--primary:hover { background: #E9A50A; }
.ls-btn--secondary { background: transparent; color: var(--ink); border-color: var(--line-strong); }
.ls-btn--secondary:hover { background: var(--bg-soft); }
.ls-btn--ghost { background: transparent; color: var(--ink); }
.ls-btn--dark { background: var(--ink); color: #fff; }
.ls-btn--dark:hover { background: #1a1a1a; }
.ls-btn:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--primary-soft); }
.ls-btn .ls-btn__icon { width: 16px; height: 16px; }

/* --- LAYOUT PRIMITIVES ------------------------------------- */
.ls-section { padding: clamp(56px, 6vw + 24px, 110px) clamp(16px, 3vw, 64px); position: relative; }
.ls-section--bg       { background: var(--bg); }
.ls-section--bg-soft  { background: var(--bg-soft); }
.ls-section--surface  { background: var(--surface); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ls-section--dark     { background: var(--dark); color: var(--dark-fg); }
.ls-section--dark .ls-shead__title { color: #fff; }
.ls-section--dark .ls-shead__lede,
.ls-section--dark .ls-pillar__desc { color: rgba(242,235,221,0.78); }
.ls-container         { max-width: var(--max-w-wide); margin: 0 auto; }
.ls-container--narrow { max-width: 880px; margin: 0 auto; }

/* --- SECTION HEAD ------------------------------------------ */
.ls-shead { margin-bottom: clamp(28px, 4vw, 48px); max-width: 800px; }
.ls-shead--center { text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }
.ls-shead__title {
  font-family: var(--font-ui); font-weight: 600; color: var(--ink);
  font-size: clamp(28px, 2.2vw + 18px, 44px); line-height: 1.08; letter-spacing: -0.022em;
  text-wrap: balance; margin: 20px 0 12px; max-width: 20ch;
}
.ls-shead--center .ls-shead__title { margin-left: auto; margin-right: auto; }
.ls-shead__title em { font-style: italic; font-weight: 400; color: var(--primary-deep); font-family: var(--font-body); }
.ls-shead__lede {
  font-family: var(--font-body); font-size: clamp(15px, 0.7vw + 13px, 18px);
  line-height: 1.55; color: var(--ink-soft); margin: 0; max-width: 54ch;
}
.ls-shead--center .ls-shead__lede { margin-left: auto; margin-right: auto; }

/* --- IMAGE SLOT (placeholder) ------------------------------ */
.ls-slot {
  position: relative; width: 100%;
  background: var(--bg-soft);
  border: 1.5px dashed var(--line-strong);
  border-radius: var(--r-slot);
  overflow: hidden;
  display: grid; place-items: center;
  min-height: 120px;
}
.ls-slot__id {
  position: absolute; top: 10px; left: 10px;
  font-size: 10px; font-weight: 700; letter-spacing: 0.6px;
  text-transform: uppercase; color: var(--muted);
  padding: 4px 7px; border-radius: 5px;
  background: rgba(255,255,255,0.92);
  font-family: var(--font-ui);
}
.ls-slot__label { color: var(--muted); font-size: 13px; text-align: center; padding: 28px; font-family: var(--font-ui); }
.ls-slot--ar-5-6  { aspect-ratio: 5/6; }
.ls-slot--ar-4-5  { aspect-ratio: 4/5; }
.ls-slot--ar-4-3  { aspect-ratio: 4/3; }
.ls-slot--ar-16-9 { aspect-ratio: 16/9; }
.ls-slot--ar-16-10{ aspect-ratio: 16/10; }
.ls-slot--ar-1-1  { aspect-ratio: 1/1; }
.ls-slot--ar-9-19 { aspect-ratio: 9/19.5; }
.ls-slot--dark    { background: #1F1F1F; border-color: rgba(255,255,255,0.16); }
.ls-slot--dark .ls-slot__id { background: rgba(0,0,0,0.55); color: rgba(255,255,255,0.78); }
.ls-slot--dark .ls-slot__label { color: rgba(255,255,255,0.55); }

/* --- NAV ---------------------------------------------------- */
/* WP block themes wrap every template-part in <header class="wp-block-template-part">.
   Sticky on .ls-nav-wrap alone gets trapped inside that wrapper. Make the OUTER
   wrapper sticky too so the nav stays pinned to the viewport. v1.3.5 fix. */
.wp-site-blocks > header.wp-block-template-part:has(.ls-nav-wrap),
.wp-site-blocks > .wp-block-template-part:has(.ls-nav-wrap) {
  position: sticky; top: 0; z-index: 100;
}
.ls-nav-wrap {
  position: sticky; top: 0; z-index: 100;
  background: color-mix(in oklab, var(--bg) 86%, transparent);
  -webkit-backdrop-filter: blur(14px);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid var(--line);
}
.ls-nav {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; height: 72px;
  max-width: var(--max-w-wide); margin: 0 auto;
  padding: 0 clamp(16px, 3vw, 40px);
}
.ls-nav__brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-ui); font-weight: 800; font-size: 20px; letter-spacing: -0.02em; color: var(--ink); }
.ls-nav__mark { width: 30px; height: 30px; border-radius: 9px; background: var(--primary); color: #fff; display: grid; place-items: center; }
.ls-nav__links { display: flex; gap: 4px; align-items: center; }
.ls-nav__link { padding: 9px 14px; border-radius: var(--r-pill); font-size: 14.5px; font-weight: 500; color: var(--ink-soft); border: 1px solid transparent; transition: color .12s, background-color .12s; }
.ls-nav__link:hover { color: var(--ink); }
.ls-nav__link[aria-current="page"] { background: var(--surface); color: var(--ink); border-color: var(--line); }
.ls-nav__cta { display: flex; gap: 12px; align-items: center; }
.ls-nav__demo { font-size: 14px; font-weight: 600; color: var(--ink); }
.ls-nav__demo:hover { color: var(--primary-deep); }
.ls-nav__toggle { display: none; background: transparent; border: 0; padding: 8px; cursor: pointer; border-radius: 8px; }
.ls-nav__toggle:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--primary-soft); }
.ls-nav__bar { display: block; width: 22px; height: 2px; background: var(--ink); margin: 4px 0; transition: transform .15s; }

@media (max-width: 879px) {
  .ls-nav { height: 60px; }
  .ls-nav__brand { font-size: 19px; }
  .ls-nav__mark { width: 26px; height: 26px; }
  .ls-nav__links {
    position: fixed; inset: 60px 0 auto 0; z-index: 99;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--surface); border-bottom: 1px solid var(--line);
    padding: 8px 16px 16px;
    transform: translateY(-8px); opacity: 0; pointer-events: none;
    transition: transform .2s ease, opacity .2s ease;
  }
  .ls-nav__links[data-open="true"] { transform: translateY(0); opacity: 1; pointer-events: auto; }
  .ls-nav__link { padding: 14px 14px; font-size: 16px; border-radius: 10px; }
  .ls-nav__demo { display: none; }
  .ls-nav__toggle { display: block; }
}

/* --- HERO --------------------------------------------------- */
.ls-hero { padding: clamp(36px, 5vw + 20px, 88px) clamp(16px, 3vw, 64px) clamp(40px, 6vw + 20px, 96px); position: relative; overflow: hidden; background: var(--bg); }
.ls-hero__inner { max-width: var(--max-w); margin: 0 auto; display: grid; gap: clamp(24px, 4vw, 64px); align-items: center; }
.ls-hero__inner--split { grid-template-columns: 1.05fr 0.95fr; }
.ls-hero__inner--centered { text-align: center; max-width: 920px; }

@media (max-width: 799px) {
  .ls-hero__inner--split { grid-template-columns: 1fr; }
}

.ls-pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 7px 13px 7px 9px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-pill);
  font-size: 12.5px; color: var(--ink-soft);
  margin-bottom: 24px; font-family: var(--font-ui);
}
.ls-pill__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--secondary); box-shadow: 0 0 0 4px rgba(83,192,199,0.20); }

.ls-display {
  font-family: var(--font-ui);
  font-weight: 600; color: var(--ink);
  font-size: clamp(34px, 4vw + 18px, 68px);
  line-height: 1.02; letter-spacing: -0.03em;
  margin: 0 0 22px; text-wrap: balance; max-width: 18ch;
}
.ls-display--centered { margin-left: auto; margin-right: auto; max-width: 20ch; }
.ls-display em { font-style: italic; font-weight: 400; color: var(--primary-deep); font-family: var(--font-body); }

.ls-lede {
  font-family: var(--font-body);
  font-size: clamp(15px, 0.6vw + 14px, 21px);
  line-height: 1.5; color: var(--ink-soft);
  margin: 0 0 36px; max-width: 46ch;
}
.ls-hero__inner--centered .ls-lede { margin-left: auto; margin-right: auto; }
.ls-hero__ctas { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.ls-hero__inner--centered .ls-hero__ctas { justify-content: center; }
@media (max-width: 799px) {
  .ls-hero__ctas { flex-direction: column; align-items: stretch; }
}

.ls-hero__visual { position: relative; }
.ls-hero__visual .ls-slot { aspect-ratio: 5/6; border-radius: 36px; }

/* Decorative biophilic blob */
.ls-blob { position: absolute; pointer-events: none; }
.ls-blob--coral  { fill: var(--accent-soft); opacity: 0.32; }
.ls-blob--teal   { fill: var(--secondary-soft); opacity: 0.40; }
.ls-blob--lav    { fill: var(--lav-soft); opacity: 0.45; }
.ls-blob--butter { fill: var(--btn-soft); opacity: 0.32; }

/* Hero C — phones cluster */
.ls-hero-phones {
  display: flex; justify-content: center; align-items: flex-end;
  gap: clamp(8px, 1vw, 18px);
  margin-top: clamp(28px, 4vw, 56px);
}
.ls-phone {
  width: clamp(110px, 18vw, 240px);
  aspect-ratio: 9 / 19.5;
  padding: 8px;
  border-radius: clamp(22px, 2.5vw, 34px);
  background: #231F20;
  box-shadow: var(--sh-deep);
}
.ls-phone__screen { width: 100%; height: 100%; border-radius: clamp(16px, 1.8vw, 26px); overflow: hidden; background: var(--surface); }
.ls-phone__screen > img { width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }
.ls-phone--tilt-left  { transform: rotate(-8deg) translateY(10px); opacity: 0.92; }
.ls-phone--tilt-right { transform: rotate(8deg) translateY(10px); opacity: 0.92; }

/* --- PILLARS (4-card, swipe on mobile) --------------------- */
.ls-pillars__head { display: grid; grid-template-columns: 1fr 1fr; gap: 64px; align-items: end; margin-bottom: 48px; max-width: var(--max-w-wide); margin-left: auto; margin-right: auto; }
.ls-pillars__lede { font-family: var(--font-body); font-size: 18px; line-height: 1.5; color: var(--ink-soft); margin: 0; max-width: 46ch; }
.ls-pillars__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
.ls-pillar { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); padding: 26px; min-height: 300px; display: flex; flex-direction: column; }
.ls-pillar__num { font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: 0.6px; margin-bottom: 28px; font-family: var(--font-ui); }
.ls-pillar__icon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; margin-bottom: 14px; }
.ls-pillar__icon--primary   { background: var(--primary-soft); color: var(--primary-deep); }
.ls-pillar__icon--accent    { background: var(--accent-soft); color: #B81E4A; }
.ls-pillar__icon--secondary { background: var(--secondary-soft); color: #0E5E78; }
.ls-pillar__icon--lav       { background: var(--lav-soft); color: var(--lav-deep); }
.ls-pillar__title { font-family: var(--font-ui); font-weight: 600; font-size: 22px; margin: 0 0 8px; letter-spacing: -0.015em; color: var(--ink); }
.ls-pillar__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.45; color: var(--ink-soft); margin: 0; }

@media (max-width: 799px) {
  .ls-pillars__head { grid-template-columns: 1fr; gap: 16px; margin-bottom: 28px; }
  .ls-pillars__grid {
    grid-template-columns: none;
    display: grid; grid-auto-flow: column; grid-auto-columns: 80%;
    overflow-x: auto; scroll-snap-type: x mandatory;
    padding-bottom: 12px;
  }
  .ls-pillar { scroll-snap-align: start; min-height: auto; }
}

/* --- PRODUCT (phone + callouts) ---------------------------- */
.ls-product { padding: clamp(56px, 6vw + 24px, 100px) clamp(16px, 3vw, 64px); background: var(--bg-soft); }
.ls-product__stage { position: relative; max-width: 1100px; margin: 0 auto; display: flex; justify-content: center; align-items: center; min-height: 640px; }
.ls-product__phone { width: clamp(220px, 28vw, 320px); aspect-ratio: 9/19.5; padding: 8px; border-radius: 38px; background: #231F20; box-shadow: var(--sh-deep); position: relative; z-index: 2; }
.ls-product__phone .ls-phone__screen { border-radius: 30px; }
.ls-callout {
  position: absolute; max-width: 260px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 18px; padding: 16px;
  box-shadow: var(--sh-card);
  display: flex; align-items: flex-start; gap: 10px;
  font-family: var(--font-body); font-size: 15px; line-height: 1.4; color: var(--ink);
}
.ls-callout__dot { width: 10px; height: 10px; border-radius: 50%; margin-top: 5px; flex-shrink: 0; }
.ls-callout--top-left    { top: 12%; left: 6%; }
.ls-callout--mid-right   { top: 40%; right: 6%; }
.ls-callout--bottom-left { bottom: 12%; left: 6%; }
.ls-callout--accent .ls-callout__dot    { background: var(--accent); }
.ls-callout--primary .ls-callout__dot   { background: var(--primary); }
.ls-callout--secondary .ls-callout__dot { background: var(--secondary); }

@media (max-width: 799px) {
  .ls-product__stage { min-height: auto; flex-direction: column; gap: 18px; }
  .ls-callout { position: static; max-width: none; }
}

/* --- VIDEO -------------------------------------------------- */
.ls-video__stage { position: relative; max-width: 1000px; margin: 0 auto; }
.ls-video__glow { position: absolute; inset: -30px; border-radius: 40px; background: radial-gradient(60% 80% at 50% 50%, var(--accent-soft), transparent 70%); opacity: 0.45; filter: blur(20px); pointer-events: none; }
.ls-video__player { position: relative; aspect-ratio: 16/9; border-radius: 28px; overflow: hidden; background: #1A1A1A; }
.ls-video__player .ls-slot { aspect-ratio: 16/9; border-radius: 28px; }
.ls-video__play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: clamp(64px, 8vw, 96px); aspect-ratio: 1; border-radius: 50%;
  background: rgba(255,255,255,0.96); color: var(--ink); border: 0;
  display: grid; place-items: center; cursor: pointer;
  box-shadow: 0 18px 40px -16px rgba(0,0,0,0.4);
}
.ls-video__play:focus-visible { outline: 0; box-shadow: 0 0 0 4px var(--primary-soft), 0 18px 40px -16px rgba(0,0,0,0.4); }

/* --- WHO IT'S FOR (two-card split) ------------------------- */
.ls-whofor__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-whofor__grid { grid-template-columns: 1fr; } }
.ls-whocard {
  position: relative; overflow: hidden;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 32px; padding: clamp(24px, 3vw, 40px); min-height: 360px;
}
.ls-whocard--orgs { background: var(--primary-soft); color: var(--ink); }
.ls-whocard__tag { display: inline-flex; padding: 5px 10px; background: var(--accent-soft); color: #B81E4A; border-radius: var(--r-pill); font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; }
.ls-whocard--orgs .ls-whocard__tag { background: var(--surface); color: var(--primary-deep); }
.ls-whocard__title { font-family: var(--font-ui); font-weight: 600; font-size: clamp(22px, 1.6vw + 14px, 30px); color: var(--ink); margin: 20px 0 12px; letter-spacing: -0.015em; text-wrap: balance; }
.ls-whocard__lede { font-family: var(--font-body); font-size: clamp(14.5px, 0.4vw + 13.5px, 17px); line-height: 1.5; color: var(--ink-soft); margin: 0 0 22px; }
.ls-whocard__list { display: grid; gap: 10px; margin: 0 0 26px; }
.ls-whocard__list li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-family: var(--font-body); font-size: 15.5px; color: var(--ink); align-items: start; }
.ls-whocard__check { color: var(--accent); margin-top: 3px; }
.ls-whocard--orgs .ls-whocard__check { color: var(--primary); }

/* --- CARE CIRCLE -------------------------------------------- */
.ls-circle { display: grid; place-items: center; }
.ls-circle__wrap { position: relative; width: min(480px, 100%); aspect-ratio: 1.26 / 1; }
.ls-circle__center {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%);
  width: 38%; aspect-ratio: 1; border-radius: 50%;
  background: radial-gradient(70% 70% at 50% 35%, #fff, var(--primary-soft) 60%, var(--primary));
  display: grid; place-items: center; text-align: center; color: var(--primary-deep);
  font-family: var(--font-ui); font-weight: 600; font-size: 14px; padding: 16px;
  box-shadow: var(--sh-deep);
}
.ls-circle__center small { display: block; font-size: 10px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; opacity: 0.7; margin-bottom: 4px; }
.ls-circle__node {
  position: absolute; transform: translate(-50%, -50%);
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-pill); padding: 8px 14px 8px 8px;
  display: inline-flex; align-items: center; gap: 8px;
  font-family: var(--font-ui); font-size: 13px; font-weight: 600; color: var(--ink);
  box-shadow: 0 6px 14px -8px rgba(0,0,0,0.18);
}
.ls-circle__node-icon { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; }
.ls-circle__node--top    { left: 50%; top: 9%; }
.ls-circle__node--right  { left: 87%; top: 50%; }
.ls-circle__node--bottom { left: 50%; top: 91%; }
.ls-circle__node--left   { left: 13%; top: 50%; }
.ls-circle__node-icon--accent    { background: var(--accent-soft); color: #B81E4A; }
.ls-circle__node-icon--primary   { background: var(--primary-soft); color: var(--primary-deep); }
.ls-circle__node-icon--secondary { background: var(--secondary-soft); color: #0E5E78; }
.ls-circle__node-icon--lav       { background: var(--lav-soft); color: var(--lav-deep); }
.ls-circle__svg { position: absolute; inset: 0; }

/* --- TESTIMONIALS (3-card grid) ---------------------------- */
.ls-testi__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-testi__grid { grid-template-columns: 1fr; } }
.ls-testi {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 20px; padding: clamp(22px, 2vw + 12px, 28px);
  display: flex; flex-direction: column;
}
.ls-testi__quote-mark { color: var(--accent); margin-bottom: 14px; }
.ls-testi__slot { font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; color: var(--muted); margin-bottom: 10px; }
.ls-testi__quote { font-family: var(--font-body); font-style: italic; font-size: clamp(16px, 0.5vw + 14px, 18px); line-height: 1.45; color: var(--ink); margin: 0 0 18px; }
.ls-testi__by { margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--line); display: flex; align-items: center; gap: 10px; }
.ls-testi__avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--bg-soft); border: 1.5px dashed var(--line-strong); display: grid; place-items: center; font-size: 9px; color: var(--muted); font-family: var(--font-ui); flex-shrink: 0; }
.ls-testi__name { font-family: var(--font-ui); font-weight: 600; font-size: 13px; color: var(--ink); }
.ls-testi__role { font-family: var(--font-ui); font-size: 12px; color: var(--muted); }

/* --- OUTCOMES (3 word-claims) ------------------------------ */
.ls-outcomes__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; max-width: 1080px; margin: 0 auto; }
@media (max-width: 799px) { .ls-outcomes__grid { grid-template-columns: 1fr; } }
.ls-outcome { padding: clamp(22px, 2vw + 12px, 32px); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); text-align: left; }
.ls-outcome__num { font-family: ui-monospace, monospace; font-size: 12px; color: var(--muted); margin-bottom: 16px; }
.ls-outcome__title { font-family: var(--font-ui); font-weight: 500; font-size: clamp(22px, 1vw + 18px, 26px); color: var(--ink); margin: 0 0 10px; letter-spacing: -0.02em; line-height: 1.1; }
.ls-outcome__desc { font-family: var(--font-body); font-size: clamp(14.5px, 0.2vw + 14px, 15.5px); line-height: 1.5; color: var(--ink-soft); margin: 0; }

/* --- FAQ (sticky-side accordion) --------------------------- */
.ls-faq__layout { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(28px, 4vw, 80px); align-items: start; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-faq__layout { grid-template-columns: 1fr; } }
@media (min-width: 800px) { .ls-faq__sidebar { position: sticky; top: 96px; } }
.ls-faq__list { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); overflow: hidden; }
.ls-faq__item { border-top: 1px solid var(--line); padding: 0; }
.ls-faq__item:first-child { border-top: 0; }
.ls-faq__item summary {
  list-style: none; cursor: pointer;
  padding: clamp(18px, 1.5vw + 12px, 22px) clamp(20px, 2vw + 12px, 28px);
  display: flex; justify-content: space-between; align-items: center; gap: 16px;
  font-family: var(--font-ui); font-weight: 600; font-size: 17px; color: var(--ink); letter-spacing: -0.01em;
}
.ls-faq__item summary::-webkit-details-marker { display: none; }
.ls-faq__icon { width: 28px; height: 28px; border-radius: 50%; background: var(--bg); color: var(--ink); display: grid; place-items: center; flex-shrink: 0; transition: transform .2s; }
.ls-faq__item[open] .ls-faq__icon { transform: rotate(45deg); }
.ls-faq__answer { padding: 0 clamp(20px, 2vw + 12px, 28px) clamp(18px, 1.5vw + 12px, 22px); font-family: var(--font-body); font-size: 16px; line-height: 1.55; color: var(--ink-soft); max-width: 64ch; }

/* --- FINAL CTA (light gradient + email) -------------------- */
.ls-cta {
  padding: clamp(64px, 8vw + 16px, 110px) clamp(16px, 3vw, 64px);
  background: linear-gradient(160deg, var(--primary-soft) 0%, var(--bg) 50%, var(--accent-soft) 100%);
  color: var(--ink); position: relative; overflow: hidden;
}
.ls-cta__inner { position: relative; max-width: 720px; margin: 0 auto; text-align: center; }
.ls-cta__form {
  display: flex; align-items: center; gap: 6px;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-pill); padding: 6px 6px 6px 22px;
  max-width: 460px; margin: 0 auto 16px;
  box-shadow: var(--sh-card);
}
.ls-cta__form input[type="email"] {
  flex: 1; border: 0; background: transparent; padding: 14px 0;
  font-family: var(--font-ui); font-size: 14px; color: var(--ink); min-width: 0;
}
.ls-cta__form input::placeholder { color: var(--muted); }
.ls-cta__form input:focus { outline: 0; }
@media (max-width: 559px) {
  .ls-cta__form { flex-direction: column; padding: 8px; align-items: stretch; border-radius: 24px; }
  .ls-cta__form input[type="email"] { padding: 14px; text-align: center; }
}
.ls-cta__note { font-family: var(--font-ui); font-size: 12px; color: var(--muted); }

/* --- CAREGIVERS: TIMELINE (4 hard moments) ----------------- */
.ls-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-timeline { grid-template-columns: 1fr; } }
.ls-tmoment { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 1.5vw + 12px, 24px); min-height: 200px; }
.ls-tmoment__time { font-family: ui-monospace, monospace; font-size: 12px; font-weight: 600; color: var(--primary); letter-spacing: 0.4px; margin-bottom: 18px; }
.ls-tmoment__title { font-family: var(--font-ui); font-weight: 600; font-size: clamp(16px, 0.3vw + 14px, 17px); color: var(--ink); margin: 0 0 8px; letter-spacing: -0.01em; text-wrap: balance; }
.ls-tmoment__desc { font-family: var(--font-body); font-size: clamp(14px, 0.2vw + 13px, 14.5px); line-height: 1.5; color: var(--ink-soft); margin: 0; }

/* --- CAREGIVERS: PILLARS-STORY (alternating) --------------- */
.ls-pstory { display: grid; gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
.ls-pstory__row {
  background: var(--surface); border: 1px solid var(--line); border-radius: 28px;
  padding: clamp(20px, 2vw + 12px, 32px);
  display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(16px, 3vw, 40px); align-items: center;
}
@media (max-width: 799px) { .ls-pstory__row { grid-template-columns: 1fr; } }
.ls-pstory__row--rev .ls-pstory__copy { order: 1; }
.ls-pstory__row--rev .ls-pstory__visual { order: 0; }
@media (max-width: 799px) { .ls-pstory__row--rev .ls-pstory__copy, .ls-pstory__row--rev .ls-pstory__visual { order: initial; } }
.ls-pstory__step { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.ls-pstory__label { font-family: var(--font-ui); font-size: 11px; font-weight: 700; color: var(--muted); letter-spacing: 0.6px; }
.ls-pstory__title { font-family: var(--font-ui); font-weight: 500; color: var(--ink); font-size: clamp(22px, 1.5vw + 14px, 30px); margin: 0 0 8px; letter-spacing: -0.02em; line-height: 1.1; text-wrap: balance; }
.ls-pstory__desc { font-family: var(--font-body); font-size: clamp(15px, 0.3vw + 13.5px, 17px); line-height: 1.55; color: var(--ink-soft); margin: 0; }
.ls-pstory__visual .ls-slot { aspect-ratio: 4/3; border-radius: 18px; }

/* --- CAREGIVERS: TRUST GRID (2x2) -------------------------- */
.ls-trust__layout { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(28px, 4vw, 80px); max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-trust__layout { grid-template-columns: 1fr; } }
.ls-trust__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 559px) { .ls-trust__grid { grid-template-columns: 1fr; } }
.ls-trust__card { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: 24px; }
.ls-trust__icon { width: 40px; height: 40px; border-radius: 12px; background: var(--primary-soft); color: var(--primary-deep); display: grid; place-items: center; margin-bottom: 14px; }
.ls-trust__title { font-family: var(--font-ui); font-weight: 600; font-size: 17px; color: var(--ink); margin: 0 0 6px; letter-spacing: -0.01em; }
.ls-trust__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.45; color: var(--ink-soft); margin: 0; }

/* --- ORG: VALUE PROPS (4 cards) ---------------------------- */
.ls-orgval__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-orgval__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 559px) { .ls-orgval__grid { grid-template-columns: 1fr; } }

/* --- ORG: USE CASES (6 cards) ------------------------------ */
.ls-orguse__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-orguse__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 559px) { .ls-orguse__grid { grid-template-columns: 1fr; } }
.ls-orguse__card { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: clamp(18px, 1.5vw + 12px, 26px); display: flex; align-items: center; gap: 14px; min-height: 96px; }
.ls-orguse__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; flex-shrink: 0; }
.ls-orguse__title { font-family: var(--font-ui); font-weight: 600; font-size: clamp(15.5px, 0.2vw + 14px, 18px); color: var(--ink); letter-spacing: -0.01em; }

/* --- ORG: DASHBOARD (laptop mock) -------------------------- */
.ls-orgdash { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: clamp(28px, 4vw, 80px); max-width: var(--max-w-wide); margin: 0 auto; align-items: center; }
@media (max-width: 799px) { .ls-orgdash { grid-template-columns: 1fr; } }
.ls-orgdash__copy ul { display: grid; gap: 10px; margin: 0; }
.ls-orgdash__copy li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; font-family: var(--font-body); font-size: 15.5px; color: var(--ink); }
.ls-orgdash__check { color: var(--primary); margin-top: 3px; }
.ls-laptop { position: relative; width: 100%; aspect-ratio: 16/10; background: #231F20; border-radius: 18px; padding: 14px; box-shadow: var(--sh-deep); }
.ls-laptop__screen { width: 100%; height: 100%; border-radius: 8px; overflow: hidden; background: var(--surface); position: relative; }
.ls-laptop__chrome { height: 28px; background: var(--bg-soft); display: flex; align-items: center; gap: 6px; padding: 0 12px; border-bottom: 1px solid var(--line); font-family: var(--font-ui); font-size: 11px; color: var(--muted); }
.ls-laptop__dot { width: 8px; height: 8px; border-radius: 50%; }
.ls-laptop__url { margin-left: auto; }
.ls-laptop__base { height: 12px; background: linear-gradient(180deg, #231F20, #0F1815); border-radius: 0 0 24px 24px; margin: 0 -20px; box-shadow: 0 24px 30px -16px rgba(0,0,0,0.35); }

/* --- ORG: CONTACT FORMS (2 cards) -------------------------- */
.ls-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-contact__grid { grid-template-columns: 1fr; } }
.ls-form-card {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 28px; padding: clamp(22px, 2vw + 12px, 36px);
  position: relative; overflow: hidden;
}
.ls-form-card--dark { background: var(--ink); color: #F2EBDD; border-color: var(--ink); }
.ls-form-card--dark .ls-form__label { color: var(--accent-soft); }
.ls-form-card--dark .ls-field { background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.14); color: rgba(242,235,221,0.55); }
.ls-form-card__tag { display: inline-flex; padding: 5px 10px; background: var(--accent-soft); color: #B81E4A; border-radius: var(--r-pill); font-family: var(--font-ui); font-size: 10.5px; font-weight: 700; letter-spacing: 0.6px; text-transform: uppercase; }
.ls-form-card--dark .ls-form-card__tag { background: rgba(255,255,255,0.10); color: var(--primary-soft); }
.ls-form-card__title { font-family: var(--font-ui); font-weight: 500; font-size: clamp(22px, 1.2vw + 16px, 28px); margin: 14px 0 8px; letter-spacing: -0.015em; color: inherit; }
.ls-form-card__lede { font-family: var(--font-body); font-size: 15px; line-height: 1.5; margin: 0 0 22px; color: var(--ink-soft); }
.ls-form-card--dark .ls-form-card__lede { color: rgba(242,235,221,0.78); }
.ls-form { display: grid; gap: 12px; }
.ls-form__label { display: block; font-family: var(--font-ui); font-size: 12px; font-weight: 700; color: var(--ink); letter-spacing: 0.4px; text-transform: uppercase; margin-bottom: 6px; }
.ls-form__optional { font-size: 11px; color: var(--muted); font-weight: 500; text-transform: none; letter-spacing: 0; margin-left: 6px; }
.ls-field {
  width: 100%; padding: 14px;
  border-radius: 12px; background: var(--bg); border: 1px solid var(--line);
  font-family: var(--font-body); font-size: 14px; color: var(--ink);
  min-height: 50px;
}
.ls-field--textarea { min-height: 90px; resize: vertical; }
.ls-field:focus { outline: 0; box-shadow: 0 0 0 3px var(--primary-soft); border-color: var(--primary); }
.ls-form__submit { margin-top: 4px; }
.ls-form__note { display: flex; align-items: center; gap: 6px; margin-top: 14px; font-family: var(--font-ui); font-size: 12px; color: var(--muted); }
.ls-form-card--dark .ls-form__note { color: rgba(242,235,221,0.6); }

/* --- ORG: TRUST (dark variant) ----------------------------- */
.ls-orgtrust__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 1.5vw, 24px); max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-orgtrust__grid { grid-template-columns: 1fr; } }
.ls-orgtrust__icon { width: 44px; height: 44px; border-radius: 12px; background: rgba(255,255,255,0.06); color: #F8F2E3; display: grid; place-items: center; margin-bottom: 14px; border: 1px solid rgba(255,255,255,0.10); }
.ls-orgtrust__title { font-family: var(--font-ui); font-weight: 600; font-size: 18px; margin: 0 0 6px; letter-spacing: -0.01em; color: #fff; }
.ls-orgtrust__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.5; color: rgba(242,235,221,0.72); margin: 0; }

/* --- ORG: MEASURE (4 signals, bordered cards) -------------- */
.ls-measure__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; max-width: var(--max-w-wide); margin: 0 auto; }
@media (max-width: 799px) { .ls-measure__grid { grid-template-columns: 1fr 1fr; } }
.ls-measure__card { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: clamp(18px, 1.5vw + 12px, 24px); border-top: 3px solid var(--primary); }
.ls-measure__card--accent    { border-top-color: var(--accent); }
.ls-measure__card--secondary { border-top-color: var(--secondary); }
.ls-measure__card--lav       { border-top-color: var(--lav-deep); }
.ls-measure__label { font-family: var(--font-ui); font-weight: 500; font-size: clamp(22px, 1.2vw + 14px, 32px); color: var(--ink); letter-spacing: -0.02em; line-height: 1.1; margin: 0 0 6px; }
.ls-measure__sub { font-family: var(--font-body); font-size: clamp(13px, 0.1vw + 12px, 14px); color: var(--ink-soft); line-height: 1.4; }

/* --- FOOTER ------------------------------------------------- */
.ls-footer { padding: clamp(48px, 5vw + 16px, 60px) clamp(16px, 3vw, 64px) 36px; background: var(--ink); color: rgba(242,235,221,0.78); font-family: var(--font-ui); }
.ls-footer__inner { max-width: var(--max-w-wide); margin: 0 auto; }
.ls-footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; gap: 32px; padding-bottom: 36px; border-bottom: 1px solid rgba(255,255,255,0.10); }
@media (max-width: 1023px) { .ls-footer__grid { grid-template-columns: 1fr 1fr 1fr; gap: 28px; } .ls-footer__col--brand { grid-column: 1 / -1; } }
@media (max-width: 599px) { .ls-footer__grid { grid-template-columns: 1fr 1fr; gap: 24px; } }
.ls-footer__brand { font-family: var(--font-ui); font-weight: 800; font-size: 20px; color: #fff; letter-spacing: -0.02em; margin-bottom: 12px; display: inline-flex; align-items: center; gap: 10px; }
.ls-footer__brand .ls-nav__mark { background: var(--primary); }
.ls-footer__desc { font-family: var(--font-body); font-size: 14px; line-height: 1.5; margin: 0; max-width: 32ch; }
.ls-footer__col h5 { font-size: 12px; letter-spacing: 0.8px; text-transform: uppercase; color: rgba(242,235,221,0.5); margin: 0 0 14px; font-weight: 700; }
.ls-footer__col ul { display: grid; gap: 9px; font-size: 14px; }
.ls-footer__col a:hover { color: #fff; }
.ls-footer__bottom { display: flex; justify-content: space-between; align-items: center; margin-top: 24px; font-size: 12px; color: rgba(242,235,221,0.5); font-family: var(--font-body); flex-wrap: wrap; gap: 12px; }

/* --- DISCLAIMER (global, above footer) --------------------- */
.ls-disclaimer { background: var(--bg); padding: clamp(20px, 2vw, 24px) clamp(16px, 3vw, 64px) clamp(32px, 3vw, 48px); }
.ls-disclaimer__inner { max-width: var(--max-w-wide); margin: 0 auto; padding: 18px 22px; background: var(--surface); border: 1px dashed var(--line-strong); border-radius: 14px; font-family: var(--font-body); font-size: 13px; line-height: 1.55; color: var(--ink-soft); display: flex; align-items: flex-start; gap: 12px; }
.ls-disclaimer__icon { color: var(--muted); margin-top: 2px; flex-shrink: 0; }
.ls-disclaimer__inner p { margin: 0; }
.ls-disclaimer__inner strong { font-family: var(--font-ui); font-weight: 700; color: var(--ink); }

/* --- UTILITY ------------------------------------------------ */
.ls-flow > * + * { margin-top: var(--flow-space, 1rem); }
.ls-hide-mobile { display: initial; }
.ls-hide-desktop { display: none; }
@media (max-width: 799px) {
  .ls-hide-mobile { display: none; }
  .ls-hide-desktop { display: initial; }
}

/* --- A11Y --------------------------------------------------- */
:focus-visible { outline: 0; box-shadow: 0 0 0 3px var(--primary-soft); border-radius: 4px; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* =============================================================
   POLISH PASS (2026-05-28) — brand logo, hero accent, card hovers
   Additive only; tokens unchanged. Respects reduced-motion above.
   ============================================================= */

/* --- Brand logo (header + footer) -------------------------- */
.ls-nav__logo { height: 34px; width: auto; display: block; }
@media (max-width: 879px) { .ls-nav__logo { height: 28px; } }
/* Footer is dark (--ink); the black logo is filtered to white.
   Replace with a true white logo asset when available. */
.ls-footer__logo { height: 30px; width: auto; display: block; filter: brightness(0) invert(1); }

/* --- Hero accent glow (subtle depth behind centered hero) -- */
.ls-hero::before {
  content: ""; position: absolute; z-index: 0;
  top: -10%; left: 50%; transform: translateX(-50%);
  width: min(900px, 90%); height: 70%;
  background: radial-gradient(55% 60% at 50% 40%,
    color-mix(in oklab, var(--primary-soft) 70%, transparent),
    transparent 70%);
  opacity: 0.6; pointer-events: none; filter: blur(8px);
}
.ls-hero__inner { position: relative; z-index: 1; }

/* --- Universal card hover-lift ----------------------------- */
.ls-pillar, .ls-whocard, .ls-trust__card, .ls-orguse__card,
.ls-measure__card, .ls-testi, .ls-tmoment, .ls-outcome,
.ls-pstory__row, .ls-form-card, .ls-orguse__card {
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease;
  will-change: transform;
}
.ls-pillar:hover, .ls-whocard:hover, .ls-trust__card:hover,
.ls-orguse__card:hover, .ls-measure__card:hover, .ls-testi:hover,
.ls-tmoment:hover, .ls-outcome:hover, .ls-form-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sh-card);
  border-color: var(--line-strong);
}
.ls-pstory__row:hover { box-shadow: var(--sh-card); }
/* keep the dark org-form card from lifting harshly */
.ls-form-card--dark:hover { transform: translateY(-2px); }

/* =============================================================
   BLOG — index, archive, search, single, 404
   Templates: home.html, archive.html, search.html, single.html,
   404.html. Same token contract as the rest of the system.
   ============================================================= */

/* --- Blog index / archive / search shell ------------------- */
.ls-blog { background: var(--bg); padding-bottom: clamp(56px, 6vw, 110px); }
.ls-blog__head {
  max-width: var(--max-w-wide); margin: 0 auto;
  padding: clamp(48px, 6vw, 96px) clamp(16px, 3vw, 64px) clamp(28px, 3vw, 44px);
}
.ls-blog__head .ls-container { max-width: 100%; padding: 0; }
.ls-blog__title {
  font-family: var(--font-ui); font-weight: 600; color: var(--ink);
  font-size: clamp(30px, 3vw + 18px, 52px); line-height: 1.06; letter-spacing: -0.025em;
  text-wrap: balance; margin: 18px 0 14px; max-width: 18ch;
}
.ls-blog__lede {
  font-family: var(--font-body); font-size: clamp(16px, 0.7vw + 14px, 19px);
  line-height: 1.55; color: var(--ink-soft); margin: 0; max-width: 58ch;
}
.ls-blog__query { max-width: var(--max-w-wide); margin: 0 auto; padding: 0 clamp(16px, 3vw, 64px); }

/* --- Post grid + cards ------------------------------------- */
.ls-postgrid {
  display: grid; gap: clamp(20px, 2.4vw, 34px);
  grid-template-columns: repeat(3, 1fr);
}
.ls-post-card {
  display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--line);
  border-radius: var(--r-card); overflow: hidden;
  box-shadow: var(--sh-card);
  transition: transform 0.14s ease, box-shadow 0.14s ease;
}
.ls-post-card:hover { transform: translateY(-3px); box-shadow: var(--sh-deep); }
.ls-post-card__img { margin: 0; }
.ls-post-card__img img { width: 100%; height: 200px; object-fit: cover; border-radius: 0; display: block; }
.ls-post-card__img a { display: block; }
.ls-post-card > :where(.ls-post-card__cat, .ls-post-card__title, .ls-post-card__excerpt, .ls-post-card__date) {
  margin-left: clamp(18px, 2vw, 24px); margin-right: clamp(18px, 2vw, 24px);
}
.ls-post-card__cat {
  margin-top: clamp(20px, 2.2vw, 26px);
  font-family: var(--font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent);
}
.ls-post-card__cat a { color: inherit; }
.ls-post-card__title { margin-top: 14px; }
.ls-post-card__title a, .ls-post-card__title {
  font-family: var(--font-ui); font-weight: 600; color: var(--ink);
  font-size: 20px; line-height: 1.25; letter-spacing: -0.015em; text-wrap: balance;
}
.ls-post-card__title a:hover { color: var(--primary-deep); }
.ls-post-card__excerpt {
  margin-top: 12px; margin-bottom: 20px;
  font-family: var(--font-body); font-size: 15.5px; line-height: 1.55; color: var(--ink-soft);
}
.ls-post-card__date {
  margin-top: auto; padding-top: 16px; padding-bottom: clamp(20px, 2.2vw, 26px);
  border-top: 1px solid var(--line);
  font-family: var(--font-ui); font-size: 13px; color: var(--muted);
}

/* --- Pagination -------------------------------------------- */
.ls-pagination { margin-top: clamp(36px, 4vw, 56px); gap: 6px; align-items: center; }
.ls-pagination .wp-block-query-pagination-numbers,
.ls-pagination a, .ls-pagination .page-numbers {
  font-family: var(--font-ui); font-size: 14px; font-weight: 600; color: var(--ink);
}
.ls-pagination a.page-numbers, .ls-pagination span.page-numbers {
  display: inline-grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px;
  border-radius: var(--r-pill); border: 1px solid var(--line-strong); text-decoration: none;
  transition: background-color 0.12s ease, color 0.12s ease;
}
.ls-pagination a.page-numbers:hover { background: var(--bg-soft); }
.ls-pagination .page-numbers.current { background: var(--ink); color: #fff; border-color: var(--ink); }
.ls-noresults { font-family: var(--font-body); color: var(--ink-soft); text-align: center; padding: 48px 0; }

/* --- Single post ------------------------------------------- */
.ls-single { background: var(--bg); padding: clamp(40px, 5vw, 80px) clamp(16px, 3vw, 64px) clamp(56px, 6vw, 100px); }
.ls-single__head { text-align: center; margin-bottom: clamp(24px, 3vw, 40px); }
.ls-single__cat {
  font-family: var(--font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); margin-bottom: 14px;
}
.ls-single__cat a { color: inherit; }
.ls-single__title {
  font-family: var(--font-ui); font-weight: 600; color: var(--ink);
  font-size: clamp(30px, 3vw + 18px, 50px); line-height: 1.08; letter-spacing: -0.025em;
  text-wrap: balance; margin: 0 auto 18px;
}
.ls-single__meta { justify-content: center; gap: 14px; color: var(--muted); font-family: var(--font-ui); font-size: 14px; }
.ls-single__img { margin: 0 auto clamp(28px, 4vw, 48px); max-width: 1000px; }
.ls-single__img img { width: 100%; border-radius: var(--r-panel); box-shadow: var(--sh-card); }

/* Reading column typography */
.ls-single .wp-block-post-content {
  font-family: var(--font-body); font-size: 18px; line-height: 1.7; color: var(--ink-soft);
}
.ls-single .wp-block-post-content > * { margin-top: 1.3em; margin-bottom: 0; }
.ls-single .wp-block-post-content > :first-child { margin-top: 0; }
.ls-single .wp-block-post-content :where(h2, h3, h4) {
  font-family: var(--font-ui); color: var(--ink); letter-spacing: -0.02em; line-height: 1.2;
  margin-top: 1.8em;
}
.ls-single .wp-block-post-content h2 { font-size: clamp(24px, 1.6vw + 16px, 32px); font-weight: 600; }
.ls-single .wp-block-post-content h3 { font-size: clamp(20px, 1.2vw + 14px, 25px); font-weight: 600; }
.ls-single .wp-block-post-content a { color: var(--primary-deep); text-decoration: underline; text-underline-offset: 2px; }
.ls-single .wp-block-post-content a:hover { color: var(--primary); }
.ls-single .wp-block-post-content :where(ul, ol) { padding-left: 1.4em; }
.ls-single .wp-block-post-content ul { list-style: disc; }
.ls-single .wp-block-post-content ol { list-style: decimal; }
.ls-single .wp-block-post-content li { margin: 0.5em 0; }
.ls-single .wp-block-post-content img { border-radius: var(--r-card); }
.ls-single .wp-block-post-content blockquote {
  margin: 1.6em 0; padding: 6px 0 6px 24px; border-left: 3px solid var(--accent);
  font-style: italic; color: var(--ink);
}
.ls-single .wp-block-post-content :where(h2, h3) + * { margin-top: 0.7em; }

/* Single footer */
.ls-single__foot { margin: clamp(36px, 4vw, 56px) auto 0; padding-top: 28px; border-top: 1px solid var(--line); }
.ls-single__tags { font-family: var(--font-ui); font-size: 13px; color: var(--muted); }
.ls-single__tags a { color: var(--primary-deep); }
.ls-single__back { margin-top: 16px; font-family: var(--font-ui); font-weight: 600; font-size: 14px; }
.ls-single__back a { color: var(--primary-deep); }

/* --- Search input ------------------------------------------ */
.ls-search { max-width: 460px; margin-top: 18px; }
.ls-search .wp-block-search__inside-wrapper {
  border: 1px solid var(--line-strong); border-radius: var(--r-pill);
  background: var(--surface); padding: 4px 4px 4px 18px; overflow: hidden;
}
.ls-search input.wp-block-search__input { border: 0; background: transparent; font-family: var(--font-ui); font-size: 15px; }
.ls-search input.wp-block-search__input:focus { outline: 0; }
.ls-search .wp-block-search__button {
  background: var(--btn-bg); color: var(--btn-fg); border: 0; border-radius: var(--r-pill);
  font-family: var(--font-ui); font-weight: 700; font-size: 14px; padding: 10px 20px; cursor: pointer;
}
.ls-search .wp-block-search__button:hover { background: #E9A50A; }

/* --- 404 --------------------------------------------------- */
.ls-404 { background: var(--bg); padding: clamp(64px, 9vw, 140px) clamp(16px, 3vw, 64px); text-align: center; }
.ls-404__inner { max-width: 620px; margin: 0 auto; display: grid; justify-items: center; }
.ls-404__title { font-family: var(--font-ui); font-weight: 600; color: var(--ink); font-size: clamp(32px, 4vw + 18px, 60px); line-height: 1.05; letter-spacing: -0.025em; margin: 18px 0 14px; text-wrap: balance; }
.ls-404__lede { font-family: var(--font-body); font-size: 18px; line-height: 1.55; color: var(--ink-soft); margin: 0 0 28px; }
.ls-404__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; }
.ls-404 .ls-search { margin: 36px auto 0; }

/* --- Blog responsive --------------------------------------- */
@media (max-width: 980px) {
  .ls-postgrid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  .ls-postgrid { grid-template-columns: 1fr; }
  .ls-single .wp-block-post-content { font-size: 17px; }
}

/* =============================================================
   NINJA FORMS — theme skin
   Makes an embedded [ninja_form id=X] inherit the Direction A look.
   Only applies when Ninja Forms markup is present (no effect otherwise).
   See docs/forms-integration.md.
   ============================================================= */
.nf-form-cont { font-family: var(--font-ui); }
.nf-form-cont .nf-field-label label,
.nf-form-cont .nf-field-label .label {
  font-family: var(--font-ui); font-size: 12px; font-weight: 700;
  letter-spacing: 0.4px; text-transform: uppercase; color: var(--ink); margin-bottom: 6px;
}
.nf-form-cont input:not([type=button]):not([type=submit]),
.nf-form-cont textarea,
.nf-form-cont select {
  width: 100%; padding: 14px; min-height: 50px;
  border-radius: 12px; background: var(--bg); border: 1px solid var(--line);
  font-family: var(--font-body); font-size: 14px; color: var(--ink);
}
.nf-form-cont textarea { min-height: 90px; resize: vertical; }
.nf-form-cont input:focus, .nf-form-cont textarea:focus, .nf-form-cont select:focus {
  outline: 0; box-shadow: 0 0 0 3px var(--primary-soft); border-color: var(--primary);
}
.nf-form-cont .submit-wrap input[type=button],
.nf-form-cont input[type=submit] {
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--btn-bg); color: var(--btn-fg); border: 0;
  border-radius: var(--r-pill); padding: 14px 22px; min-height: 44px;
  font-family: var(--font-ui); font-weight: 700; font-size: 14px; cursor: pointer;
  width: auto; transition: background-color 0.12s ease;
}
.nf-form-cont .submit-wrap input[type=button]:hover,
.nf-form-cont input[type=submit]:hover { background: #E9A50A; }
/* dark org form card context */
.ls-form-card--dark .nf-field-label label { color: var(--accent-soft); }
.ls-form-card--dark .nf-form-cont input:not([type=button]):not([type=submit]),
.ls-form-card--dark .nf-form-cont textarea {
  background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.14); color: #F2EBDD;
}

/* --- PROSE (readable body copy in redesigned legacy content sections) --- */
.ls-prose { font-family: var(--font-body); font-size: 17px; line-height: 1.7; color: var(--ink-soft); max-width: 72ch; }
.ls-prose > * + * { margin-top: 1.1em; }
.ls-prose h3 { font-family: var(--font-ui); font-weight: 600; color: var(--ink); font-size: clamp(20px, 1.2vw + 14px, 25px); letter-spacing: -0.015em; line-height: 1.2; margin-top: 1.6em; }
.ls-prose h4 { font-family: var(--font-ui); font-weight: 600; color: var(--ink); font-size: 18px; margin-top: 1.4em; }
.ls-prose :where(ul, ol) { padding-left: 1.3em; }
.ls-prose ul { list-style: disc; } .ls-prose ol { list-style: decimal; }
.ls-prose li { margin: 0.4em 0; }
.ls-prose a { color: var(--primary-deep); text-decoration: underline; text-underline-offset: 2px; }
.ls-prose strong { color: var(--ink); }

/* ============================================================
   Adult Autism Support (page 1310) — section primitives
   ============================================================ */

/* Newsletter strip (slim, above manifesto) */
.ls-newsletter-strip { padding-top: clamp(36px, 4vw, 56px); padding-bottom: clamp(36px, 4vw, 56px); }
.ls-newsletter-strip__layout { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 24px; }
.ls-newsletter-strip .nf-form-cont { max-width: 520px; flex: 1 1 360px; }

/* 2-column manifesto split */
.ls-split { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(24px, 5vw, 64px); align-items: start; }
.ls-split__head .ls-shead__title { margin-top: 12px; }
.ls-split__body > * + * { margin-top: 18px; }
@media (max-width: 800px) { .ls-split { grid-template-columns: 1fr; } }

/* PillarsC — alternating story rows */
.ls-rows { display: grid; gap: clamp(48px, 6vw, 96px); margin-top: clamp(36px, 4vw, 64px); }
.ls-row { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: center; }
.ls-row--reverse .ls-row__copy { order: 2; }
.ls-row--reverse .ls-row__visual { order: 1; }
.ls-row__num { font-family: var(--font-ui); font-size: 12px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--primary); margin-bottom: 14px; }
.ls-row__title { font-family: var(--font-ui); font-weight: 700; color: var(--ink); font-size: clamp(22px, 1.6vw + 14px, 30px); line-height: 1.2; letter-spacing: -0.015em; margin: 0 0 14px; }
.ls-row__desc { font-family: var(--font-body); color: var(--ink-soft); font-size: 17px; line-height: 1.6; margin: 0 0 14px; }
.ls-row__list { font-family: var(--font-body); color: var(--ink-soft); font-size: 16px; line-height: 1.55; margin: 0 0 14px 1.2em; padding: 0; list-style: disc; display: grid; gap: 6px; }
.ls-row__visual .ls-slot { border-radius: 22px; }
@media (max-width: 800px) {
  .ls-row, .ls-row--reverse { grid-template-columns: 1fr; }
  .ls-row--reverse .ls-row__copy, .ls-row--reverse .ls-row__visual { order: initial; }
}

/* Why Consistency Matters — 2-card + closing */
.ls-consistency__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 32px); margin: clamp(28px, 4vw, 48px) 0; }
.ls-ccard { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(24px, 3vw, 36px); }
.ls-ccard--triggers { background: var(--accent-soft); border-color: transparent; }
.ls-ccard--cycle { background: var(--lav-soft); border-color: transparent; }
.ls-ccard__tag { display: inline-block; font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.9px; text-transform: uppercase; color: var(--ink); background: rgba(255,255,255,0.55); border-radius: 999px; padding: 6px 12px; margin-bottom: 14px; }
.ls-ccard__lede { font-family: var(--font-body); color: var(--ink); font-size: 17px; line-height: 1.55; margin: 0 0 12px; }
.ls-ccard__list { font-family: var(--font-body); color: var(--ink-soft); font-size: 16px; line-height: 1.55; margin: 0 0 0 1.2em; padding: 0; list-style: disc; display: grid; gap: 8px; }
.ls-consistency__closing { font-family: var(--font-body); font-size: clamp(18px, 1.2vw + 8px, 21px); line-height: 1.55; color: var(--ink); text-align: center; max-width: 72ch; margin: clamp(20px, 3vw, 32px) auto 0; }
@media (max-width: 800px) { .ls-consistency__grid { grid-template-columns: 1fr; } }

/* WhoForB — 3-card audience grid */
.ls-whofor3__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 32px); margin-top: clamp(28px, 4vw, 48px); }
.ls-whocard3 { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(24px, 3vw, 32px); display: flex; flex-direction: column; gap: 14px; }
.ls-whocard3__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; color: var(--ink); }
.ls-whocard3--primary .ls-whocard3__icon { background: var(--primary-soft); color: var(--primary-deep); }
.ls-whocard3--accent .ls-whocard3__icon { background: var(--accent-soft); color: var(--accent); }
.ls-whocard3--secondary .ls-whocard3__icon { background: var(--secondary-soft); color: var(--secondary); }
.ls-whocard3__title { font-family: var(--font-ui); font-weight: 700; font-size: 19px; line-height: 1.25; color: var(--ink); margin: 0; letter-spacing: -0.01em; }
.ls-whocard3__desc { font-family: var(--font-body); font-size: 16px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .ls-whofor3__grid { grid-template-columns: 1fr; } }

/* ============================================================
   Batch 1 (about-us / contact / services) — section primitives
   ============================================================ */

/* Subhead under H1 (used on About, Contact, Services heroes) */
.ls-subhead { font-family: var(--font-ui); font-weight: 600; font-size: clamp(20px, 1.4vw + 10px, 26px); color: var(--ink); line-height: 1.3; margin: 18px 0 0; letter-spacing: -0.01em; }
.ls-subhead--centered { text-align: center; }

/* Trust line under hero CTAs (Services) */
.ls-trustline { font-family: var(--font-ui); font-weight: 500; font-size: 13px; letter-spacing: 0.4px; color: var(--ink-soft); text-align: center; margin: 16px 0 24px; }

/* Leadership team grid (About) */
.ls-team__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 32px); margin-top: clamp(28px, 4vw, 48px); }
.ls-team__card { display: flex; flex-direction: column; gap: 14px; text-align: center; }
.ls-team__photo { border-radius: 24px; max-width: 280px; margin: 0 auto; }
.ls-team__name { font-family: var(--font-ui); font-weight: 700; font-size: 20px; line-height: 1.2; color: var(--ink); margin: 8px 0 0; }
.ls-team__role { font-family: var(--font-body); font-size: 15px; color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .ls-team__grid { grid-template-columns: 1fr; } }

/* Contact routing blocks */
.ls-contact__block { display: grid; grid-template-columns: 1fr 1.2fr; gap: clamp(28px, 4vw, 56px); padding: clamp(32px, 4vw, 56px) 0; border-bottom: 1px solid var(--line); align-items: start; }
.ls-contact__block:last-of-type { border-bottom: 0; }
.ls-contact__block--media { grid-template-columns: 1fr; max-width: 720px; }
.ls-contact__copy .ls-shead__title { margin-top: 10px; }
.ls-contact__form { background: var(--bg); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 3vw, 28px); }
@media (max-width: 800px) { .ls-contact__block { grid-template-columns: 1fr; } }

/* Checklist (Services bullet sections) */
.ls-checklist { list-style: none; padding: 0; margin: clamp(24px, 3vw, 36px) 0 0; display: grid; gap: 14px; max-width: 820px; }
.ls-checklist li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; align-items: start; font-family: var(--font-body); font-size: 17px; line-height: 1.55; color: var(--ink); }
.ls-checklist__icon { width: 28px; height: 28px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-deep); display: grid; place-items: center; flex-shrink: 0; }

/* Generic feature grid (Services caregiver + org sub-blurbs) */
.ls-features__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: clamp(20px, 3vw, 32px); margin-top: clamp(24px, 3vw, 40px); }
.ls-features__grid--3 { grid-template-columns: repeat(3, 1fr); }
.ls-feature { background: var(--surface); border: 1px solid var(--line); border-radius: 20px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 14px; }
.ls-feature__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; }
.ls-feature__icon--primary { background: var(--primary-soft); color: var(--primary-deep); }
.ls-feature__icon--accent { background: var(--accent-soft); color: var(--accent); }
.ls-feature__icon--secondary { background: var(--secondary-soft); color: var(--secondary); }
.ls-feature__icon--lav { background: var(--lav-soft); color: var(--lav-deep); }
.ls-feature__desc { font-family: var(--font-body); font-size: 16px; line-height: 1.55; color: var(--ink); margin: 0; }
@media (max-width: 800px) { .ls-features__grid, .ls-features__grid--3 { grid-template-columns: 1fr; } }

/* ============================================================
   Spacing pass v2 — aggressive tighten (Batch 1 deadspace fix)
   - Treats grid `gap` as single source of truth for stacking.
   - Strips margins from elements that live inside grid containers.
   - Cuts hero + section padding ~60% from original.
   ============================================================ */

/* Section + hero padding — major cut */
.ls-section { padding: clamp(28px, 3vw + 8px, 56px) clamp(16px, 3vw, 64px); }
.ls-hero { padding: clamp(24px, 3vw, 48px) clamp(16px, 3vw, 64px); min-height: auto; }
.ls-cta { padding: clamp(32px, 3.5vw, 56px) clamp(16px, 3vw, 64px); }
.ls-newsletter-strip { padding-top: clamp(20px, 2.5vw, 32px); padding-bottom: clamp(20px, 2.5vw, 32px); }

/* Hero inner is a grid — gap is the ONLY spacing between children */
.ls-hero__inner { gap: clamp(10px, 1.5vw, 18px); }
.ls-hero__inner > .ls-display,
.ls-hero__inner > .ls-subhead,
.ls-hero__inner > .ls-lede,
.ls-hero__inner > .ls-trustline,
.ls-hero__inner > .ls-hero__ctas,
.ls-hero__inner > .ls-eyebrow,
.ls-hero__inner > .ls-pill,
.ls-hero__inner > div > .ls-display,
.ls-hero__inner > div > .ls-subhead,
.ls-hero__inner > div > .ls-lede,
.ls-hero__inner > div > .ls-trustline,
.ls-hero__inner > div > .ls-hero__ctas { margin: 0; }
/* Centered hero: override the parent grid with a flex column that actually centers every child.
   This wins over the earlier .ls-hero__inner display:grid because of source order. */
.ls-hero__inner--centered {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  max-width: 760px;
  gap: clamp(10px, 1.5vw, 18px);
}
.ls-hero__inner--centered > * { margin: 0; max-width: 100%; }
.ls-hero__inner--centered .ls-display { max-width: 22ch; }
.ls-hero__inner--centered .ls-lede,
.ls-hero__inner--centered .ls-subhead { max-width: 60ch; margin: 0 auto; }
.ls-hero__inner--centered .ls-eyebrow,
.ls-hero__inner--centered .ls-trustline { margin: 0 auto; }
.ls-hero__inner--centered .ls-hero__ctas { margin: clamp(8px, 1vw, 14px) 0 0; }
.ls-display { font-size: clamp(30px, 3.4vw + 12px, 54px); margin: 0; line-height: 1.05; max-width: 22ch; }
.ls-display--centered { max-width: 24ch; }
.ls-lede { font-size: clamp(15px, 0.4vw + 14px, 18px); margin: 0; }
.ls-subhead { margin: 0; font-size: clamp(18px, 0.8vw + 12px, 22px); }
.ls-trustline { margin: 0; }
.ls-hero__ctas { margin: clamp(8px, 1vw, 14px) 0 0; gap: 10px; }

/* Section heads — collapse the "left column hangs alone" pattern when no right body */
.ls-shead { margin-bottom: clamp(12px, 1.5vw, 20px); max-width: 760px; }
.ls-shead--center { max-width: 760px; }
.ls-shead__title { margin: 6px 0 0; font-size: clamp(24px, 2vw + 12px, 38px); line-height: 1.15; }
.ls-shead__lede { margin: 8px 0 0; font-size: 16px; line-height: 1.55; }
.ls-pillars__head { display: block; gap: 0; margin-bottom: clamp(16px, 2vw, 24px); }
.ls-pillars__head .ls-shead { margin-bottom: 8px; }
.ls-pillars__lede { margin: 8px 0 0; max-width: 60ch; }

/* Card / grid gaps */
.ls-pillars__grid { gap: clamp(12px, 1.5vw, 20px); }
.ls-pillar { padding: 20px; min-height: 0; }
.ls-pillar__num { margin-bottom: 12px; }
.ls-pillar__icon { width: 38px; height: 38px; margin-bottom: 10px; }
.ls-pillar__title { font-size: 18px; margin: 0 0 6px; }
.ls-pillar__desc { font-size: 14.5px; line-height: 1.5; }
.ls-features__grid { gap: clamp(12px, 1.5vw, 20px); margin-top: clamp(12px, 1.5vw, 20px); }
.ls-feature { padding: 20px; gap: 10px; }
.ls-checklist { gap: 8px; margin: clamp(12px, 1.5vw, 20px) 0 0; }
.ls-checklist li { font-size: 15.5px; line-height: 1.5; }
.ls-team__grid { gap: clamp(12px, 1.5vw, 20px); margin-top: clamp(12px, 1.5vw, 20px); }
.ls-whofor3__grid { gap: clamp(12px, 1.5vw, 20px); margin-top: clamp(12px, 1.5vw, 20px); }
.ls-consistency__grid { gap: clamp(12px, 1.5vw, 20px); margin: clamp(12px, 1.5vw, 20px) 0; }
.ls-consistency__closing { margin-top: clamp(12px, 1.5vw, 20px); font-size: clamp(16px, 0.6vw + 12px, 18px); }
.ls-rows { gap: clamp(24px, 3vw, 40px); margin-top: clamp(16px, 2vw, 24px); }
.ls-split { gap: clamp(16px, 2vw, 28px); }
.ls-contact__block { padding: clamp(16px, 2vw, 28px) 0; gap: clamp(16px, 2vw, 28px); }

/* Section-to-section: collapse top padding when sections of same bg follow */
.ls-section + .ls-section,
.ls-section + .ls-cta,
.ls-cta + .ls-section,
.ls-hero + .ls-section,
.ls-newsletter-strip + .ls-section { padding-top: clamp(20px, 2.5vw, 36px); }

/* Lede + eyebrow margins outside hero context */
.ls-eyebrow { margin: 0 0 6px; }

/* CTA inner */
.ls-cta__inner { max-width: 720px; }
.ls-cta__inner > * + * { margin-top: 12px; }

/* Pillar grid 3-col variant + sensible responsive collapse */
.ls-pillars__grid--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1100px) {
  .ls-pillars__grid { grid-template-columns: repeat(2, 1fr); grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; padding-bottom: 0; }
  .ls-pillars__grid--3 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 800px) {
  .ls-pillars__grid, .ls-pillars__grid--3 { grid-template-columns: 1fr; grid-auto-flow: row; grid-auto-columns: auto; overflow: visible; padding-bottom: 0; }
}

/* Bold lead-in styling for checklist */
.ls-checklist li strong { color: var(--ink); font-weight: 700; }

/* ============================================================
   New section variants (added 2026-05-29) — break up monotony
   ============================================================ */

/* Stat strip — 3 or 4 numbers/icons in a horizontal row, no card chrome */
.ls-stat-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 2vw, 28px); padding: clamp(20px, 2.5vw, 32px); border-radius: 22px; background: var(--bg); border: 1px solid var(--line); }
.ls-stat-strip--3 { grid-template-columns: repeat(3, 1fr); }
.ls-stat { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.ls-stat__icon { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); margin-bottom: 4px; }
.ls-stat__num { font-family: var(--font-ui); font-weight: 700; font-size: clamp(20px, 1.4vw + 10px, 26px); color: var(--ink); letter-spacing: -0.01em; line-height: 1.1; }
.ls-stat__label { font-family: var(--font-body); font-size: 14px; line-height: 1.4; color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .ls-stat-strip, .ls-stat-strip--3 { grid-template-columns: 1fr 1fr; } }

/* Split-with-image — copy left, image-or-illustration right (or reversed) */
.ls-split-img { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 48px); align-items: center; }
.ls-split-img--reverse .ls-split-img__copy { order: 2; }
.ls-split-img--reverse .ls-split-img__visual { order: 1; }
.ls-split-img__copy > * + * { margin-top: 12px; }
.ls-split-img__visual .ls-slot { border-radius: 22px; }
@media (max-width: 800px) { .ls-split-img { grid-template-columns: 1fr; } .ls-split-img--reverse .ls-split-img__copy, .ls-split-img--reverse .ls-split-img__visual { order: initial; } }

/* Bio grid — 3-col for leadership with portrait + name + role + paragraph */
.ls-bio__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 36px); margin-top: clamp(20px, 3vw, 32px); }
.ls-bio { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
.ls-bio__photo { width: 100%; max-width: 280px; aspect-ratio: 4/5; border-radius: 22px; overflow: hidden; background: var(--bg-soft); margin: 0 0 4px; }
.ls-bio__photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 22%; display: block; }
.ls-bio__name { font-family: var(--font-ui); font-weight: 700; font-size: 19px; line-height: 1.2; color: var(--ink); margin: 4px 0 0; }
.ls-bio__role { font-family: var(--font-ui); font-size: 13px; letter-spacing: 0.4px; color: var(--primary-deep); text-transform: uppercase; margin: 0; }
.ls-bio__paragraph { font-family: var(--font-body); font-size: 15.5px; line-height: 1.55; color: var(--ink); margin: 8px 0 0; }
.ls-bio__paragraph--placeholder { background: var(--bg-soft); border: 1px dashed var(--line-strong); border-radius: 12px; padding: 12px; font-style: italic; color: var(--ink-soft); }
@media (max-width: 800px) { .ls-bio__grid { grid-template-columns: 1fr; } }

/* Founder story — full-width copy block with optional pull-quote */
.ls-founder { max-width: 760px; margin: 0 auto; }
.ls-founder > * + * { margin-top: 16px; }
.ls-founder--tight > * + * { margin-top: 12px; }
.ls-founder--tight .ls-founder__pull { margin: 18px 0; }

/* Home contact section — split copy + form */
.ls-contact-home {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(28px, 4vw, 56px);
  align-items: start;
  max-width: var(--max-w-wide);
  margin: 0 auto;
}
.ls-contact-home__copy { padding-top: clamp(4px, 1vw, 12px); }
.ls-contact-home__list {
  list-style: none; padding: 0; margin: 24px 0 0;
  display: flex; flex-direction: column; gap: 12px;
  font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: var(--ink);
}
.ls-contact-home__list li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: start; }
.ls-contact-home__list svg { color: var(--primary-deep); margin-top: 2px; }
.ls-contact-home__note { margin-top: 24px; font-size: 14.5px; color: var(--ink-soft); }
.ls-contact-home__note a { color: var(--primary-deep); font-weight: 600; border-bottom: 1px solid var(--line-strong); }
.ls-contact-home__form .ls-form-card { margin: 0; }
@media (max-width: 880px) {
  .ls-contact-home { grid-template-columns: 1fr; }
}

/* About Us video section */
.ls-au-video {
  max-width: 920px;
  margin: clamp(24px, 3vw, 40px) auto 0;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: var(--sh-deep);
  aspect-ratio: 16 / 9;
  background: var(--ink);
}
.ls-au-video video { width: 100%; height: 100%; display: block; object-fit: cover; }
.ls-founder p { font-family: var(--font-body); font-size: 17px; line-height: 1.65; color: var(--ink); }
.ls-founder__pull { font-family: var(--font-body); font-style: italic; font-size: clamp(20px, 1.4vw + 8px, 26px); line-height: 1.4; color: var(--primary-deep); border-left: 3px solid var(--primary); padding-left: 18px; margin: 24px 0; max-width: 60ch; }

/* Single post (blog) chrome */
.ls-post { max-width: 740px; margin: 0 auto; padding: clamp(28px, 4vw, 56px) clamp(16px, 3vw, 32px); }
.ls-post__meta { display: flex; gap: 12px; align-items: center; font-family: var(--font-ui); font-size: 13px; color: var(--ink-soft); margin-bottom: 12px; }
.ls-post__title { font-family: var(--font-ui); font-weight: 700; font-size: clamp(28px, 2.4vw + 12px, 42px); line-height: 1.15; color: var(--ink); letter-spacing: -0.02em; margin: 0 0 16px; }
.ls-post__body { font-family: var(--font-body); font-size: 17px; line-height: 1.7; color: var(--ink); }
.ls-post__body > * + * { margin-top: 1em; }
.ls-post__body h2 { font-family: var(--font-ui); font-weight: 700; font-size: clamp(22px, 1.4vw + 10px, 28px); margin: 1.6em 0 0.4em; color: var(--ink); letter-spacing: -0.015em; line-height: 1.25; }
.ls-post__body h3 { font-family: var(--font-ui); font-weight: 600; font-size: 20px; margin: 1.4em 0 0.3em; color: var(--ink); }
.ls-post__body p { margin: 0; color: var(--ink); }
.ls-post__body :where(ul, ol) { padding-left: 1.3em; }
.ls-post__body ul { list-style: disc; } .ls-post__body ol { list-style: decimal; }
.ls-post__body li { margin: 0.4em 0; }
.ls-post__body a { color: var(--primary-deep); text-decoration: underline; text-underline-offset: 2px; }
.ls-post__body strong { color: var(--ink); }
.ls-post__body img { border-radius: 16px; max-width: 100%; height: auto; }

/* ============================================================
   Pricing — tier grid + annual toggle + supporting sections
   ============================================================ */

/* Annual/monthly billing toggle (above tier grid) */
.ls-billing-toggle { display: inline-flex; padding: 4px; border-radius: 999px; background: var(--bg); border: 1px solid var(--line); gap: 4px; margin: 0 auto 28px; }
.ls-billing-toggle__btn { font-family: var(--font-ui); font-weight: 600; font-size: 13.5px; color: var(--ink-soft); padding: 9px 18px; border: 0; background: transparent; border-radius: 999px; cursor: pointer; transition: background-color 0.15s ease, color 0.15s ease; min-height: 36px; }
.ls-billing-toggle__btn[aria-pressed="true"] { background: var(--ink); color: #fff; }
.ls-billing-toggle__btn:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
.ls-billing-toggle__badge { font-size: 11px; font-weight: 700; color: var(--accent); margin-left: 6px; letter-spacing: 0.4px; }

/* Tier grid — 4 cards */
.ls-tier-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 1.5vw, 22px); align-items: stretch; }
.ls-tier-grid--center { justify-content: center; }
@media (max-width: 1100px) { .ls-tier-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .ls-tier-grid { grid-template-columns: 1fr; } }

/* Single tier card */
.ls-tier { position: relative; background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2vw, 28px); display: flex; flex-direction: column; gap: 14px; }
.ls-tier--recommended { border: 2px solid var(--primary); box-shadow: 0 12px 30px rgba(24, 171, 226, 0.12); }
@media (prefers-reduced-motion: no-preference) {
  .ls-tier { transition: box-shadow 0.15s ease, transform 0.15s ease; }
  .ls-tier:hover { box-shadow: 0 8px 22px rgba(0,0,0,0.06); }
}

.ls-tier__badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--primary); color: #fff; font-family: var(--font-ui); font-weight: 700; font-size: 11px; letter-spacing: 0.5px; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.ls-tier__name { font-family: var(--font-ui); font-weight: 700; font-size: 22px; line-height: 1.2; color: var(--ink); margin: 0; letter-spacing: -0.01em; }
.ls-tier__sub { font-family: var(--font-body); font-size: 14px; line-height: 1.4; color: var(--ink-soft); margin: 0; }

.ls-tier__price { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; margin: 4px 0; }
.ls-tier__price-amount { font-family: var(--font-ui); font-weight: 700; font-size: clamp(28px, 2vw + 16px, 36px); line-height: 1; color: var(--ink); letter-spacing: -0.02em; }
.ls-tier__price-period { font-family: var(--font-body); font-size: 14px; color: var(--ink-soft); }
.ls-tier__price-note { font-family: var(--font-body); font-size: 12px; color: var(--ink-soft); width: 100%; line-height: 1.3; }
.ls-tier__price--hidden { display: none; }

.ls-tier__divider { border: 0; border-top: 1px solid var(--line); margin: 4px 0; }
.ls-tier__features { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; flex-grow: 1; }
.ls-tier__features li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; font-family: var(--font-body); font-size: 14.5px; line-height: 1.45; color: var(--ink); }
.ls-tier__check { width: 18px; height: 18px; color: var(--primary-deep); flex-shrink: 0; margin-top: 2px; }

.ls-tier__cta { width: 100%; justify-content: center; min-height: 44px; }

/* Compare section (after tier grid) */
.ls-compare { display: grid; gap: 18px; max-width: 880px; margin: 0 auto; }
.ls-compare__row { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); align-items: center; font-family: var(--font-body); font-size: 14.5px; color: var(--ink); }
.ls-compare__row--header { font-family: var(--font-ui); font-weight: 700; font-size: 13px; letter-spacing: 0.4px; text-transform: uppercase; color: var(--ink-soft); border-bottom: 2px solid var(--line-strong); }
.ls-compare__feature { font-weight: 600; color: var(--ink); }
.ls-compare__cell { text-align: center; }
.ls-compare__cell--check { color: var(--primary-deep); }
@media (max-width: 800px) { .ls-compare__row { grid-template-columns: 1fr; gap: 6px; padding: 14px 0; } .ls-compare__cell { text-align: left; padding-left: 12px; } }

/* CarePro org block — dark variant */
.ls-section--dark { background: var(--ink); color: #F2EBDD; }
.ls-section--dark .ls-shead__title,
.ls-section--dark .ls-shead__lede,
.ls-section--dark .ls-eyebrow { color: inherit; }
.ls-section--dark .ls-shead__title { color: #fff; }
.ls-section--dark .ls-eyebrow { color: var(--accent); }
.ls-carepro__lede { font-family: var(--font-body); font-size: 17px; line-height: 1.6; max-width: 60ch; margin: 0; color: rgba(242, 235, 221, 0.85); }
.ls-carepro__features { list-style: none; padding: 0; margin: clamp(20px, 3vw, 32px) 0 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px 24px; max-width: 720px; }
.ls-carepro__features li { display: grid; grid-template-columns: 18px 1fr; gap: 10px; align-items: start; font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: rgba(242, 235, 221, 0.85); }
.ls-carepro__check { width: 18px; height: 18px; color: var(--accent); flex-shrink: 0; margin-top: 2px; }
@media (max-width: 700px) { .ls-carepro__features { grid-template-columns: 1fr; } }

/* ============================================================
   v1.2.8 — Direction A comparison card + CTA centering fix
   ============================================================ */

/* Final CTA centering — force-center every child of .ls-cta__inner */
.ls-cta__inner > *,
.ls-cta__inner .ls-shead__title,
.ls-cta__inner .ls-shead__lede,
.ls-cta__inner .ls-eyebrow { text-align: center; }

/* Direction A comparison card (used by pr-compare + pr-compare-deep) */
.ls-compare-card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 22px;
  padding: clamp(20px, 2.5vw, 32px);
  max-width: 1100px;
  margin: 0 auto;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
.ls-compare-card table { width: 100%; border-collapse: separate; border-spacing: 0; font-family: var(--font-body); font-size: 14.5px; color: var(--ink); min-width: 640px; }
.ls-compare-card thead th {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 13.5px;
  color: var(--ink);
  text-align: center;
  padding: 12px 14px 18px;
  border-bottom: 1.5px solid var(--line);
  background: transparent;
  letter-spacing: -0.01em;
}
.ls-compare-card thead th:first-child {
  text-align: left;
  color: var(--ink-soft);
  font-size: 12px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  font-weight: 700;
}
.ls-compare-card thead th .ls-compare-card__sub {
  display: block;
  font-family: var(--font-body);
  font-size: 12px;
  font-weight: 500;
  color: var(--ink-soft);
  margin-top: 2px;
}
.ls-compare-card thead th.is-recommended { color: var(--primary-deep); }
.ls-compare-card thead th.is-recommended::before {
  content: "Recommended";
  display: block;
  font-size: 10px;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  margin-bottom: 4px;
}
.ls-compare-card tbody td { padding: 14px; text-align: center; border-bottom: 1px solid var(--line); color: var(--ink); }
.ls-compare-card tbody td:first-child { text-align: left; font-weight: 600; color: var(--ink); }
.ls-compare-card tbody tr:last-child td { border-bottom: 0; }
.ls-compare-card tbody td.is-recommended { background: linear-gradient(180deg, rgba(24,171,226,0.06), rgba(24,171,226,0.02)); }
.ls-compare-card__check { width: 20px; height: 20px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-deep); display: inline-grid; place-items: center; }
.ls-compare-card__check svg { width: 12px; height: 12px; }
.ls-compare-card__dash { color: var(--muted); }
.ls-compare-card__group td {
  background: transparent !important;
  font-family: var(--font-ui);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.8px;
  text-transform: uppercase;
  color: var(--primary-deep);
  padding: 22px 14px 8px !important;
  text-align: left !important;
  border-top: 1.5px solid var(--line);
  border-bottom: 0 !important;
}
.ls-compare-card__group:first-of-type td { border-top: 0; padding-top: 12px !important; }
@media (max-width: 700px) { .ls-compare-card { padding: 16px; } .ls-compare-card table { font-size: 13.5px; } }

/* .ls-pillars__grid 4-col support (for pr-capabilities) */
.ls-pillars__grid--4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .ls-pillars__grid--4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px)  { .ls-pillars__grid--4 { grid-template-columns: 1fr; } }

/* ============================================================
   v1.2.9 — /autism-app/ (page 686) primitives
   ============================================================ */

/* Stat strip with citations underneath each stat */
.ls-stat-strip__cite { font-family: var(--font-body); font-size: 11px; line-height: 1.4; color: var(--ink-soft); margin-top: 8px; font-style: italic; }

/* Numbered callouts list (next to phone screen) */
.ls-callouts { display: grid; gap: clamp(16px, 2vw, 24px); }
.ls-callout { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; }
.ls-callout__num { width: 40px; height: 40px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-deep); font-family: var(--font-ui); font-weight: 700; font-size: 14px; display: grid; place-items: center; flex-shrink: 0; }
.ls-callout--accent .ls-callout__num { background: var(--accent-soft); color: var(--accent); }
.ls-callout--secondary .ls-callout__num { background: var(--secondary-soft); color: var(--secondary); }
.ls-callout--lav .ls-callout__num { background: var(--lav-soft); color: var(--lav-deep); }
.ls-callout__title { font-family: var(--font-ui); font-weight: 700; font-size: 16px; line-height: 1.3; color: var(--ink); margin: 0 0 4px; }
.ls-callout__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; }

/* Persona avatar (Direction A SVG-style) */
.ls-persona-avatar { width: 100%; max-width: 240px; aspect-ratio: 1/1; border-radius: 22px; display: grid; place-items: center; position: relative; overflow: hidden; }
.ls-persona-avatar--maria { background: linear-gradient(135deg, var(--accent-soft), var(--accent) 200%); }
.ls-persona-avatar--lena  { background: linear-gradient(135deg, var(--primary-soft), var(--primary) 200%); }
.ls-persona-avatar--tanya { background: linear-gradient(135deg, var(--secondary-soft), var(--secondary) 200%); }
.ls-persona-avatar svg { width: 60%; height: 60%; color: #fff; opacity: 0.92; }

/* Video block — placeholder with play affordance + poster */
.ls-video-block { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.5vw, 32px); }
.ls-video-block__frame { position: relative; aspect-ratio: 16/9; border-radius: 18px; overflow: hidden; background: linear-gradient(135deg, var(--primary-soft), var(--lav-soft) 100%); display: grid; place-items: center; }
.ls-video-block__frame img,
.ls-video-block__frame iframe { width: 100%; height: 100%; object-fit: cover; border: 0; display: block; }
.ls-video-block__play { width: 80px; height: 80px; border-radius: 999px; background: rgba(255,255,255,0.95); color: var(--primary-deep); display: grid; place-items: center; box-shadow: 0 12px 30px rgba(13,123,164,0.3); transition: transform 0.2s ease; cursor: pointer; }
.ls-video-block__play:hover { transform: scale(1.06); }
.ls-video-block__play svg { width: 28px; height: 28px; margin-left: 4px; }
.ls-video-block__caption { font-family: var(--font-body); font-size: 14px; color: var(--ink-soft); text-align: center; margin: 16px 0 0; }

/* ============================================================
   v1.2.11 — app-callouts (NAMESPACED .ls-app-cl* to avoid the
   .ls-callout collision with ls-product-callouts pattern)
   ============================================================ */

/* Two-column stage */
.ls-app-cl__stage { display: grid; grid-template-columns: minmax(220px, 300px) 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; margin-top: clamp(24px, 3vw, 40px); }
.ls-app-cl__phone-wrap { position: sticky; top: 80px; }
.ls-app-cl__phone-wrap .ls-phone { max-width: 280px; margin: 0 auto; }
.ls-app-cl__phone-wrap .ls-slot { max-height: 520px; }

/* Mobile: phone above, callouts below */
@media (max-width: 800px) {
  .ls-app-cl__stage { grid-template-columns: 1fr; gap: 28px; }
  .ls-app-cl__phone-wrap { position: static; }
  .ls-app-cl__phone-wrap .ls-phone { max-width: 220px; }
  .ls-app-cl__phone-wrap .ls-slot { max-height: 380px; }
}

/* Callout list — flex column, no card chrome, subtle dividers */
.ls-app-cl__list { display: flex; flex-direction: column; gap: 0; list-style: none; padding: 0; margin: 0; }
.ls-app-cl__item { display: flex; gap: 18px; align-items: flex-start; padding: 22px 0; border-bottom: 1px solid var(--line); }
.ls-app-cl__item:first-child { padding-top: 0; }
.ls-app-cl__item:last-child  { border-bottom: 0; padding-bottom: 0; }

/* Number marker */
.ls-app-cl__num { width: 52px; height: 52px; flex-shrink: 0; border-radius: 999px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); font-family: var(--font-ui); font-weight: 700; font-size: 16px; box-shadow: 0 0 0 6px rgba(24,171,226,0.08); }
.ls-app-cl__item--accent .ls-app-cl__num    { background: var(--accent-soft); color: var(--accent); box-shadow: 0 0 0 6px rgba(238,55,104,0.08); }
.ls-app-cl__item--secondary .ls-app-cl__num { background: var(--secondary-soft); color: var(--secondary); box-shadow: 0 0 0 6px rgba(83,192,199,0.08); }
.ls-app-cl__item--lav .ls-app-cl__num       { background: var(--lav-soft); color: var(--lav-deep); box-shadow: 0 0 0 6px rgba(196,175,213,0.18); }

/* Body (title + desc) */
.ls-app-cl__body { flex: 1; min-width: 0; }
.ls-app-cl__title { font-family: var(--font-ui); font-weight: 700; font-size: 18px; line-height: 1.3; color: var(--ink); margin: 4px 0 8px; letter-spacing: -0.01em; display: inline-flex; align-items: center; gap: 10px; }
.ls-app-cl__title svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--ink-soft); }
.ls-app-cl__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0; max-width: 52ch; }

/* ============================================================
   v1.2.12 — Final CTA H2 box centering (recurring bug fix)
   The H2 had max-width:20ch but no auto margins → sat at the LEFT
   of .ls-cta__inner. Force the box to auto-center inside the CTA.
   ============================================================ */
.ls-cta__inner .ls-shead__title,
.ls-cta__inner h2 { margin-left: auto !important; margin-right: auto !important; max-width: 26ch; text-align: center; }
.ls-cta__inner .ls-shead__lede,
.ls-cta__inner p.ls-shead__lede { margin-left: auto !important; margin-right: auto !important; text-align: center; max-width: 54ch; }

/* ============================================================
   v1.2.13 — /autism-app-for-children/ (page 676) primitives
   ============================================================ */

/* Why Consistency Matters — 2-card side-by-side with colored backgrounds */
.ls-kid-consistency { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2.5vw, 28px); margin-top: clamp(24px, 3vw, 36px); }
.ls-kid-consistency__card { border-radius: 22px; padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 12px; }
.ls-kid-consistency__card--problem { background: var(--accent-soft); }
.ls-kid-consistency__card--solution { background: var(--primary-soft); }
.ls-kid-consistency__tag { display: inline-block; font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.55); color: var(--ink); width: max-content; }
.ls-kid-consistency__title { font-family: var(--font-ui); font-weight: 700; font-size: 19px; line-height: 1.25; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-kid-consistency__list { list-style: none; padding: 0; margin: 6px 0 0; display: flex; flex-direction: column; gap: 10px; }
.ls-kid-consistency__list li { display: flex; gap: 12px; align-items: flex-start; font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: var(--ink); }
.ls-kid-consistency__bullet { width: 20px; height: 20px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; margin-top: 2px; }
.ls-kid-consistency__bullet svg { width: 18px; height: 18px; }
.ls-kid-consistency__text { flex: 1; min-width: 0; }
.ls-kid-consistency__card--problem .ls-kid-consistency__bullet svg { color: var(--accent); }
.ls-kid-consistency__card--solution .ls-kid-consistency__bullet svg { color: var(--primary-deep); }
.ls-kid-consistency__outcome { font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: var(--ink); margin: 10px 0 0; font-style: italic; }
@media (max-width: 800px) { .ls-kid-consistency { grid-template-columns: 1fr; } }

/* Knowledge blocks — 4-tile grid with icons */
.ls-kid-blocks { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 20px); margin-top: clamp(24px, 3vw, 36px); }
.ls-kid-block { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
.ls-kid-block__icon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; }
.ls-kid-block--school .ls-kid-block__icon { background: var(--primary-soft); color: var(--primary-deep); }
.ls-kid-block--home .ls-kid-block__icon { background: var(--accent-soft); color: var(--accent); }
.ls-kid-block--care .ls-kid-block__icon { background: var(--secondary-soft); color: var(--secondary); }
.ls-kid-block--emergency .ls-kid-block__icon { background: var(--lav-soft); color: var(--lav-deep); }
.ls-kid-block__title { font-family: var(--font-ui); font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); margin: 4px 0 2px; letter-spacing: -0.01em; }
.ls-kid-block__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); margin: 0; }
@media (max-width: 1100px) { .ls-kid-blocks { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-kid-blocks { grid-template-columns: 1fr; } }


/* ============================================================
   v1.2.15 — /how-it-works/ rethought (real assets, no dead space)
   ============================================================ */

/* Hero photo (single real image, replaces 3-phone placeholder) */
.ls-how-hero-photo { width: 100%; max-width: 920px; margin: clamp(20px, 3vw, 36px) auto 0; display: block; }
.ls-how-hero-photo img { width: 100%; height: auto; display: block; }

/* === LAPTOP CHASSIS === actually looks like a laptop now */
.ls-laptop { max-width: 980px; margin: 0 auto; position: relative; }
.ls-laptop__lid {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 16px 16px 4px 4px;
  padding: 18px 18px 14px;
  position: relative;
  box-shadow: 0 20px 60px rgba(14,94,120,0.18);
}
.ls-laptop__lid::before {
  content: ''; position: absolute; top: 5px; left: 50%; transform: translateX(-50%);
  width: 90px; height: 5px; background: #0a0a0a; border-radius: 0 0 6px 6px;
}
.ls-laptop__lid::after {
  content: ''; position: absolute; top: 7px; left: 50%; transform: translateX(-50%);
  width: 6px; height: 6px; background: #444; border-radius: 50%; box-shadow: inset 0 0 2px rgba(255,255,255,0.3);
}
.ls-laptop__screen {
  width: 100%; aspect-ratio: 16/10; border-radius: 6px; overflow: hidden;
  background: var(--bg); position: relative; display: grid; place-items: center;
}
.ls-laptop__screen video,
.ls-laptop__screen img,
.ls-laptop__screen iframe { width: 100%; height: 100%; object-fit: cover; display: block; border: 0; }
.ls-laptop__base {
  width: 108%; margin: 0 -4%; height: 18px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 45%, #4a4a4a 48%, #2a2a2a 100%);
  border-radius: 0 0 22px 22px;
  box-shadow: 0 10px 24px rgba(0,0,0,0.25);
  position: relative;
}
.ls-laptop__base::after {
  content: ''; position: absolute; top: 8px; left: 50%; transform: translateX(-50%);
  width: 22%; height: 4px; background: rgba(255,255,255,0.18); border-radius: 2px;
}
@media (max-width: 700px) {
  .ls-laptop__lid { padding: 12px 12px 10px; border-radius: 10px 10px 3px 3px; }
  .ls-laptop__lid::before { width: 60px; height: 4px; }
  .ls-laptop__base { height: 14px; border-radius: 0 0 16px 16px; }
}

/* === Quick explainer 3-step horizontal === */
.ls-how-quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.5vw, 28px); margin-top: clamp(24px, 3vw, 36px); position: relative; }
.ls-how-quick__step { display: flex; flex-direction: column; gap: 10px; position: relative; }
.ls-how-quick__num { width: 44px; height: 44px; border-radius: 999px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); font-family: var(--font-ui); font-weight: 700; font-size: 16px; }
.ls-how-quick__step:nth-child(2) .ls-how-quick__num { background: var(--accent-soft); color: var(--accent); }
.ls-how-quick__step:nth-child(3) .ls-how-quick__num { background: var(--secondary-soft); color: var(--secondary); }
.ls-how-quick__title { font-family: var(--font-ui); font-weight: 700; font-size: 18px; line-height: 1.3; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-how-quick__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .ls-how-quick { grid-template-columns: 1fr; } }

/* === Care Circle flow (split image left, copy right with real Pilot-Built-Around-Your-Care-Circle.jpg) === */
.ls-how-flow { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 3vw, 48px); align-items: center; margin-top: clamp(24px, 3vw, 36px); }
.ls-how-flow__visual { width: 100%; border-radius: 22px; overflow: hidden; aspect-ratio: 4/3; }
.ls-how-flow__visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ls-how-flow__copy > * + * { margin-top: 14px; }
.ls-how-flow__title { font-family: var(--font-ui); font-weight: 700; font-size: clamp(22px, 1.6vw + 12px, 28px); line-height: 1.2; color: var(--ink); letter-spacing: -0.01em; margin: 0; }
.ls-how-flow__desc { font-family: var(--font-body); font-size: 16px; line-height: 1.6; color: var(--ink); margin: 0; }
.ls-how-flow__list { list-style: none; padding: 0; margin: 12px 0 0; display: flex; flex-direction: column; gap: 10px; }
.ls-how-flow__list li { display: flex; gap: 12px; align-items: flex-start; font-family: var(--font-body); font-size: 15.5px; line-height: 1.55; color: var(--ink); }
.ls-how-flow__list li::before { content: '✓'; flex-shrink: 0; width: 22px; height: 22px; border-radius: 999px; background: var(--primary-soft); color: var(--primary-deep); display: inline-grid; place-items: center; font-size: 12px; font-weight: 700; margin-top: 2px; }
@media (max-width: 800px) { .ls-how-flow { grid-template-columns: 1fr; } }

/* === 4-step rhythm compact (icons + title + outcome, NO per-step phones) === */
.ls-how-rhythm { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 24px); margin-top: clamp(24px, 3vw, 36px); }
.ls-how-rhythm__card { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 10px; }
.ls-how-rhythm__num { font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--primary-deep); }
.ls-how-rhythm__card:nth-child(2) .ls-how-rhythm__num { color: var(--accent); }
.ls-how-rhythm__card:nth-child(3) .ls-how-rhythm__num { color: var(--secondary); }
.ls-how-rhythm__card:nth-child(4) .ls-how-rhythm__num { color: var(--lav-deep); }
.ls-how-rhythm__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); }
.ls-how-rhythm__card:nth-child(2) .ls-how-rhythm__icon { background: var(--accent-soft); color: var(--accent); }
.ls-how-rhythm__card:nth-child(3) .ls-how-rhythm__icon { background: var(--secondary-soft); color: var(--secondary); }
.ls-how-rhythm__card:nth-child(4) .ls-how-rhythm__icon { background: var(--lav-soft); color: var(--lav-deep); }
.ls-how-rhythm__title { font-family: var(--font-ui); font-weight: 700; font-size: 18px; line-height: 1.25; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-how-rhythm__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; flex-grow: 1; }
.ls-how-rhythm__outcome { font-family: var(--font-body); font-size: 13.5px; line-height: 1.5; color: var(--primary-deep); margin: 8px 0 0; padding-top: 10px; border-top: 1px dashed var(--line-strong); font-style: italic; }
@media (max-width: 1100px) { .ls-how-rhythm { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-how-rhythm { grid-template-columns: 1fr; } }

/* === Before/After impact (kept from v1.2.15) === */
.ls-how-impact { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(16px, 2.5vw, 28px); margin-top: clamp(24px, 3vw, 36px); }
.ls-how-impact__card { border-radius: 22px; padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 14px; }
.ls-how-impact__card--before { background: var(--accent-soft); }
.ls-how-impact__card--after { background: var(--primary-soft); }
.ls-how-impact__label { display: inline-block; font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,0.55); color: var(--ink); width: max-content; }
.ls-how-impact__title { font-family: var(--font-ui); font-weight: 700; font-size: 20px; line-height: 1.25; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-how-impact__story { font-family: var(--font-body); font-size: 16px; line-height: 1.55; color: var(--ink); margin: 0; }
.ls-how-impact__outcome { font-family: var(--font-body); font-size: 15px; line-height: 1.5; color: var(--ink); margin: 6px 0 0; font-style: italic; padding-top: 12px; border-top: 1px dashed rgba(0,0,0,0.12); }
@media (max-width: 800px) { .ls-how-impact { grid-template-columns: 1fr; } }

/* ============================================================
   v1.2.16 — /for-caregivers/ primitives
   ============================================================ */

/* Day timeline — banner image above 4 moment cards */
.ls-cg-day__banner { width: 100%; aspect-ratio: 21/9; border-radius: 22px; overflow: hidden; margin: clamp(20px, 3vw, 32px) auto 0; max-width: 1100px; }
.ls-cg-day__banner img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ls-cg-day__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 24px); margin-top: clamp(20px, 3vw, 32px); }
.ls-cg-day__card { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 8px; }
.ls-cg-day__time { font-family: var(--font-ui); font-size: 12px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--primary-deep); }
.ls-cg-day__card:nth-child(2) .ls-cg-day__time { color: var(--accent); }
.ls-cg-day__card:nth-child(3) .ls-cg-day__time { color: var(--secondary); }
.ls-cg-day__card:nth-child(4) .ls-cg-day__time { color: var(--lav-deep); }
.ls-cg-day__title { font-family: var(--font-ui); font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-cg-day__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 1100px) { .ls-cg-day__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-cg-day__grid { grid-template-columns: 1fr; } }

/* Trust strip — 3 cards */
.ls-cg-trust { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.5vw, 28px); margin-top: clamp(24px, 3vw, 36px); }
.ls-cg-trust__card { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(24px, 3vw, 32px); display: flex; flex-direction: column; gap: 12px; }
.ls-cg-trust__icon { width: 48px; height: 48px; border-radius: 14px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); }
.ls-cg-trust__card:nth-child(2) .ls-cg-trust__icon { background: var(--accent-soft); color: var(--accent); }
.ls-cg-trust__card:nth-child(3) .ls-cg-trust__icon { background: var(--secondary-soft); color: var(--secondary); }
.ls-cg-trust__title { font-family: var(--font-ui); font-weight: 700; font-size: 18px; line-height: 1.3; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-cg-trust__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 800px) { .ls-cg-trust { grid-template-columns: 1fr; } }

/* ============================================================
   v1.2.16 (org additions) — /for-organizations/ primitives
   ============================================================ */

/* Org problems (4 cards with warning/accent framing) */
.ls-org-problems { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 24px); margin-top: clamp(24px, 3vw, 36px); }
.ls-org-problem { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 10px; }
.ls-org-problem__num { font-family: var(--font-ui); font-size: 11px; font-weight: 700; letter-spacing: 0.8px; text-transform: uppercase; color: var(--accent); }
.ls-org-problem__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--accent-soft); color: var(--accent); display: grid; place-items: center; }
.ls-org-problem__title { font-family: var(--font-ui); font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-org-problem__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 1100px) { .ls-org-problems { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-org-problems { grid-template-columns: 1fr; } }

/* Org features 6-card grid (CarePro features) */
.ls-org-features { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(14px, 2vw, 24px); margin-top: clamp(24px, 3vw, 36px); }
.ls-org-feature { background: var(--surface); border: 1px solid var(--line); border-radius: 22px; padding: clamp(20px, 2.4vw, 28px); display: flex; flex-direction: column; gap: 10px; }
.ls-org-feature__icon { width: 44px; height: 44px; border-radius: 12px; display: grid; place-items: center; background: var(--primary-soft); color: var(--primary-deep); }
.ls-org-feature:nth-child(2) .ls-org-feature__icon { background: var(--accent-soft); color: var(--accent); }
.ls-org-feature:nth-child(3) .ls-org-feature__icon { background: var(--secondary-soft); color: var(--secondary); }
.ls-org-feature:nth-child(4) .ls-org-feature__icon { background: var(--lav-soft); color: var(--lav-deep); }
.ls-org-feature:nth-child(5) .ls-org-feature__icon { background: var(--primary-soft); color: var(--primary-deep); }
.ls-org-feature:nth-child(6) .ls-org-feature__icon { background: var(--accent-soft); color: var(--accent); }
.ls-org-feature__title { font-family: var(--font-ui); font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-org-feature__desc { font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
@media (max-width: 1100px) { .ls-org-features { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-org-features { grid-template-columns: 1fr; } }

/* Org outcomes — 3 stat-like cards (no fabricated %s) */
.ls-org-outcomes { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(16px, 2.5vw, 28px); margin-top: clamp(24px, 3vw, 36px); }
.ls-org-outcome { background: var(--primary-soft); border-radius: 22px; padding: clamp(24px, 3vw, 36px); display: flex; flex-direction: column; gap: 12px; }
.ls-org-outcome:nth-child(2) { background: var(--accent-soft); }
.ls-org-outcome:nth-child(3) { background: var(--secondary-soft); }
.ls-org-outcome__icon { width: 48px; height: 48px; border-radius: 14px; background: rgba(255,255,255,0.7); color: var(--primary-deep); display: grid; place-items: center; }
.ls-org-outcome:nth-child(2) .ls-org-outcome__icon { color: var(--accent); }
.ls-org-outcome:nth-child(3) .ls-org-outcome__icon { color: var(--secondary); }
.ls-org-outcome__title { font-family: var(--font-ui); font-weight: 700; font-size: 19px; line-height: 1.25; color: var(--ink); margin: 4px 0 0; letter-spacing: -0.01em; }
.ls-org-outcome__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.55; color: var(--ink); margin: 0; }
@media (max-width: 800px) { .ls-org-outcomes { grid-template-columns: 1fr; } }

/* Org trust 4-card strip */
.ls-org-trust-4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 2vw, 24px); margin-top: clamp(24px, 3vw, 36px); }
.ls-org-trust-4 .ls-cg-trust__card { padding: clamp(20px, 2.4vw, 26px); }
@media (max-width: 1100px) { .ls-org-trust-4 { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .ls-org-trust-4 { grid-template-columns: 1fr; } }

/* Org dark CTA with inline form */
.ls-org-cta { background: var(--ink); color: #F2EBDD; padding: clamp(40px, 5vw, 80px) clamp(16px, 3vw, 64px); }
.ls-org-cta__inner { max-width: 980px; margin: 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px, 4vw, 56px); align-items: center; }
.ls-org-cta__copy .ls-eyebrow { color: var(--accent); }
.ls-org-cta__copy h2 { font-family: var(--font-ui); font-weight: 700; color: #fff; font-size: clamp(26px, 2vw + 14px, 36px); line-height: 1.15; letter-spacing: -0.015em; margin: 12px 0 16px; }
.ls-org-cta__copy p { font-family: var(--font-body); font-size: 16px; line-height: 1.6; color: rgba(242,235,221,0.85); margin: 0 0 18px; }
.ls-org-cta__copy a { color: var(--accent); text-decoration: underline; }
.ls-org-cta__form { background: var(--surface); border-radius: 22px; padding: clamp(20px, 3vw, 28px); color: var(--ink); }
@media (max-width: 900px) { .ls-org-cta__inner { grid-template-columns: 1fr; } }

/* ============================================================
   v1.2.17 — Footer cleanup (reset list bullets, anchor color)
   ============================================================ */
.ls-footer__col ul { list-style: none; padding: 0; margin: 0; }
.ls-footer__col a { color: inherit; text-decoration: none; transition: color 0.12s ease; }
.ls-footer__col a:hover { color: #fff; }
.ls-footer__col h5 { font-family: var(--font-ui); }
.ls-footer__bottom { padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.06); }

/* ============================================================
   v1.2.18 — Legal pages bundle (Accessibility, Privacy, Terms, Responsible AI)
   ============================================================ */
.ls-legal-hero { padding: clamp(36px, 4vw + 12px, 72px) clamp(16px, 3vw, 64px) clamp(20px, 3vw, 32px); background: var(--bg-soft); text-align: center; }
.ls-legal-hero__inner { max-width: 760px; margin: 0 auto; }
.ls-legal-hero__updated { display: inline-block; margin-top: 16px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; letter-spacing: 0.6px; color: var(--ink-soft); padding: 6px 12px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); }
.ls-legal-hero__draft { background: rgba(238,55,104,0.08); color: var(--accent); border: 1px solid rgba(238,55,104,0.25); padding: 10px 16px; border-radius: 12px; font-family: var(--font-ui); font-size: 13px; font-weight: 600; max-width: 760px; margin: 16px auto 0; }

.ls-legal-body { padding: clamp(28px, 4vw, 56px) clamp(16px, 3vw, 32px); }
.ls-legal-body .ls-prose { max-width: 720px; margin: 0 auto; }
.ls-legal-body .ls-prose h2 { font-family: var(--font-ui); font-weight: 700; font-size: clamp(22px, 1.4vw + 12px, 28px); margin-top: 2em; color: var(--ink); letter-spacing: -0.015em; }
.ls-legal-body .ls-prose h2:first-child { margin-top: 0; }

/* v1.2.40 — Legal-document feel: TOC, numbered sections, tighter typography */
.ls-legal-toc {
  max-width: var(--max-w-legal); margin: 0 auto clamp(32px, 4vw, 56px);
  padding: clamp(20px, 2.2vw, 28px) clamp(20px, 2.4vw, 32px);
  background: var(--bg-soft); border: 1px solid var(--line); border-radius: 14px;
}
.ls-legal-toc__label {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--ink-soft); margin: 0 0 14px;
}
.ls-legal-toc__list {
  list-style: decimal; padding-left: 1.6em; margin: 0;
  columns: 2; column-gap: 32px; column-rule: 1px solid var(--line);
  font-family: var(--font-body); font-size: 14.5px; line-height: 1.55;
}
.ls-legal-toc__list li { margin: 0 0 6px; break-inside: avoid; }
.ls-legal-toc__list a { color: var(--ink); text-decoration: none; border-bottom: 1px solid transparent; }
.ls-legal-toc__list a:hover { color: var(--primary-deep); border-bottom-color: currentColor; }
@media (max-width: 720px) { .ls-legal-toc__list { columns: 1; } }

.ls-legal-prose { font-size: 15.5px; line-height: 1.65; color: var(--ink); }
.ls-legal-prose > * + * { margin-top: 0.9em; }
.ls-legal-prose h2 {
  display: flex; align-items: baseline; gap: 12px;
  padding-top: clamp(28px, 3vw, 40px); margin-top: clamp(28px, 3vw, 40px);
  border-top: 1px solid var(--line);
  font-size: clamp(19px, 1vw + 12px, 23px); letter-spacing: -0.01em;
}
.ls-legal-prose h2:first-child { padding-top: 0; margin-top: 0; border-top: 0; }
.ls-legal-num {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 0.78em; font-weight: 700; color: var(--primary-deep);
  letter-spacing: 0; min-width: 2.2em;
}
.ls-legal-prose h3 {
  font-family: var(--font-ui); font-weight: 600; color: var(--ink);
  font-size: 16px; letter-spacing: -0.005em; line-height: 1.3;
  margin-top: 1.4em;
}
.ls-legal-prose ul, .ls-legal-prose ol { padding-left: 1.4em; }
.ls-legal-prose li { margin: 0.3em 0; }
.ls-legal-footer {
  margin-top: clamp(40px, 5vw, 64px); padding-top: 20px;
  border-top: 1px solid var(--line);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.04em; color: var(--ink-soft); text-align: center;
}

.ls-legal-cta { padding: clamp(24px, 3vw, 40px) clamp(16px, 3vw, 32px); background: var(--bg-soft); text-align: center; border-top: 1px solid var(--line); }
.ls-legal-cta__inner { max-width: 720px; margin: 0 auto; font-family: var(--font-body); font-size: 15.5px; color: var(--ink); }
.ls-legal-cta a { color: var(--primary-deep); text-decoration: underline; font-weight: 600; }

/* =============================================================
   v1.2.20 BEGIN  —  motion · decorations · padding tokens
   Additive only. Rollback = delete this block + revert version.
   ============================================================= */

/* ----- §1 Tokens (additive, no existing rule changed) ----- */
:root {
  --max-w-prose:    68ch;
  --max-w-narrower: 60ch;
  --max-w-bio:      720px;
  --max-w-legal:    720px;
  --max-w-content:  880px;
  --max-w-media:    1100px;
}

/* ----- §2 Padding migrations (10 audit findings, all applied) ----- */
.ls-hero__inner--centered .ls-lede,
.ls-hero__inner--centered .ls-subhead { max-width: var(--max-w-prose); }
/* v1.2.21 fix: .ls-founder now matches hero lede exactly (was --max-w-bio 720px,
   which still left a visible gap with the hero's 68ch). Single prose width. */
.ls-founder { max-width: var(--max-w-prose); }
.ls-faq__answer { max-width: var(--max-w-prose); }
.ls-shead--center .ls-shead__lede { max-width: var(--max-w-prose); margin-left: auto; margin-right: auto; }
.ls-product__stage { max-width: var(--max-w); }
.ls-org-cta__inner { max-width: var(--max-w-wide); }
.ls-legal-body .ls-prose,
.ls-legal-hero__inner { max-width: var(--max-w-legal); }
.ls-blog__head .ls-container { max-width: 100%; }
.ls-pillars__lede,
.ls-carepro__lede { max-width: var(--max-w-prose); }

/* ----- §3 Smooth anchor + scroll-padding (matches FAQ sidebar top:96px) ----- */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* ----- §4 Sticky nav scrolled state ----- */
.ls-nav-wrap, .ls-nav, .ls-nav__logo { transition: background-color .25s ease, box-shadow .25s ease, height .25s ease; }
html[data-scrolled="true"] .ls-nav-wrap {
  background: color-mix(in oklab, var(--bg) 94%, transparent);
  box-shadow: 0 6px 22px rgba(0,0,0,.06);
  border-bottom-color: transparent;
  will-change: box-shadow;
}
html[data-scrolled="true"] .ls-nav { height: 60px; }
html[data-scrolled="true"] .ls-nav__logo { height: 28px; }

/* ----- §5 Reveal on scroll + stagger children ----- */
@media (prefers-reduced-motion: no-preference) {
  [data-ls-reveal] {
    opacity: 0; transform: translateY(24px);
    transition: opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1);
    will-change: opacity, transform;
  }
  [data-ls-reveal][data-ls-revealed="true"] { opacity: 1; transform: none; }

  [data-ls-reveal-children] > * {
    opacity: 0; transform: translateY(20px);
    transition: opacity .6s cubic-bezier(.2,.7,.2,1), transform .6s cubic-bezier(.2,.7,.2,1);
  }
  [data-ls-reveal-children][data-ls-revealed="true"] > * { opacity: 1; transform: none; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(1)  { transition-delay: 0ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(2)  { transition-delay: 60ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(3)  { transition-delay: 120ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(4)  { transition-delay: 180ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(5)  { transition-delay: 240ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(6)  { transition-delay: 300ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(7)  { transition-delay: 360ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(8)  { transition-delay: 420ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(9)  { transition-delay: 480ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(10) { transition-delay: 540ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(11) { transition-delay: 600ms; }
  [data-ls-reveal-children][data-ls-revealed="true"] > *:nth-child(12) { transition-delay: 660ms; }
}
/* JS-off / reduced-motion fallback: ensure content is always visible */
@media (prefers-reduced-motion: reduce) {
  [data-ls-reveal], [data-ls-reveal-children] > * {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
}

/* ----- §6 Hero parallax (REFACTORED to preserve translateX(-50%)) ----- */
/* Replace the existing transform: translateX(-50%) on .ls-hero::before by re-declaring it via custom property */
.ls-hero::before { --ls-parallax-y: 0px; transform: translate(-50%, var(--ls-parallax-y)); }
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: scroll()) {
    .ls-hero::before {
      animation: ls-hero-parallax linear both;
      animation-timeline: scroll(root);
      animation-range: 0 600px;
    }
    @keyframes ls-hero-parallax { to { --ls-parallax-y: -60px; opacity: .3; } }
  }
}
/* Static fallback for browsers without animation-timeline */
@supports not (animation-timeline: scroll()) {
  .ls-hero::before { opacity: .55; }
}

/* ----- §7 C1 Soft blobs (opt-in modifier) -----
   v1.2.21 fix: isolation:isolate creates new stacking context so z-index:-1 pseudos
   stay inside the section (previously leaked behind body bg = invisible).
   Bumped opacity .55 → .7 for more visible blobs. */
.ls-section--blobs { position: relative; overflow: hidden; isolation: isolate; }
.ls-section--blobs::before,
.ls-section--blobs::after {
  content: ""; position: absolute; z-index: -1; pointer-events: none;
  border-radius: 50%; filter: blur(60px); opacity: .7;
}
.ls-section--blobs::before {
  width: clamp(280px, 28vw, 380px); height: clamp(280px, 28vw, 380px);
  left: -120px; top: -100px;
  background: rgba(24,171,226,.35);
}
.ls-section--blobs::after {
  width: clamp(240px, 24vw, 320px); height: clamp(240px, 24vw, 320px);
  right: -100px; bottom: -100px;
  background: rgba(238,55,104,.28);
}
.ls-section--blobs > * { position: relative; z-index: 0; }

.ls-section--blobs-alt::before { left: auto; right: -100px; background: rgba(167,127,221,.32); }
.ls-section--blobs-alt::after  { right: auto; left: -120px; background: rgba(24,171,226,.28); }

/* Adult page palette: teal + lavender */
.ls-section--blobs-adult::before { background: rgba(72,160,180,.35); }
.ls-section--blobs-adult::after  { background: rgba(167,127,221,.32); }

/* Kid page palette: lavender + accent */
.ls-section--blobs-kid::before { background: rgba(167,127,221,.35); }
.ls-section--blobs-kid::after  { background: rgba(238,55,104,.28); }

/* Dark section variant: lighter blobs to remain visible */
.ls-section--dark.ls-section--blobs::before { background: rgba(255,255,255,.10); opacity: .8; }
.ls-section--dark.ls-section--blobs::after  { background: rgba(167,127,221,.20); opacity: .7; }

/* Mobile disable for performance */
@media (max-width: 880px) {
  .ls-section--blobs::before,
  .ls-section--blobs::after { display: none; }
}

/* ----- §8 C2 Wave divider (CSS modifier — adds curved transition at section top) ----- */
.ls-section--wave-top { position: relative; }
.ls-section--wave-top::before {
  content: ""; position: absolute; top: -1px; left: 0; right: 0; height: 60px; z-index: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C360,80 1080,0 1440,40 L1440,0 L0,0 Z' fill='%23F2EBDD'/%3E%3C/svg%3E");
  background-size: 100% 100%; background-repeat: no-repeat; background-position: top;
  pointer-events: none;
}
/* Variants by source background (the wave is the previous section's color bleeding down) */
.ls-section--wave-top-from-bg::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C360,80 1080,0 1440,40 L1440,0 L0,0 Z' fill='%23FFFFFF'/%3E%3C/svg%3E"); }
.ls-section--wave-top-from-soft::before { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 80' preserveAspectRatio='none'%3E%3Cpath d='M0,40 C360,80 1080,0 1440,40 L1440,0 L0,0 Z' fill='%23F2EBDD'/%3E%3C/svg%3E"); }
.ls-section--wave-top > * { position: relative; z-index: 1; }

/* ----- §9 C3 Gradient wash (gentlest transition) ----- */
.ls-section--wash-from-bg { position: relative; }
.ls-section--wash-from-bg::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 120px; z-index: 0;
  background: linear-gradient(180deg, var(--bg) 0%, transparent 100%);
  pointer-events: none;
}
.ls-section--wash-from-soft { position: relative; }
.ls-section--wash-from-soft::before {
  content: ""; position: absolute; left: 0; right: 0; top: 0; height: 120px; z-index: 0;
  background: linear-gradient(180deg, var(--bg-soft) 0%, transparent 100%);
  pointer-events: none;
}
.ls-section--wash-from-bg > *,
.ls-section--wash-from-soft > * { position: relative; z-index: 1; }

/* ----- §10 C4 Dot grid texture (with @supports mask-image fallback) ----- */
.ls-section--dots { position: relative; }
.ls-section--dots::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background-image: radial-gradient(rgba(24,171,226,.10) 1.2px, transparent 1.2px);
  background-size: 24px 24px; background-position: 0 0;
  pointer-events: none;
}
@supports (mask-image: linear-gradient(black, transparent)) or (-webkit-mask-image: linear-gradient(black, transparent)) {
  .ls-section--dots::before {
    mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 70%, transparent);
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 30%, #000 70%, transparent);
    opacity: 1;
  }
}
@supports not ((mask-image: linear-gradient(black, transparent)) or (-webkit-mask-image: linear-gradient(black, transparent))) {
  .ls-section--dots::before { opacity: .35; }
}
.ls-section--dots > * { position: relative; z-index: 0; }

/* ----- §11 C5 Top-center accent line (::after to avoid border-top collision) ----- */
.ls-section--accent-line { position: relative; }
.ls-section--accent-line::after {
  content: ""; position: absolute; left: 50%; top: 0; transform: translateX(-50%);
  width: 60px; height: 3px; border-radius: 999px;
  background: linear-gradient(90deg, var(--primary) 0%, var(--accent) 100%);
  pointer-events: none;
}

/* ----- §12 Pricing tier recommended pulse (1.0→1.05 scale loop) ----- */
@media (prefers-reduced-motion: no-preference) {
  @keyframes ls-tier-pulse {
    0%, 100% { transform: translateX(-50%) scale(1); }
    50%      { transform: translateX(-50%) scale(1.05); }
  }
  .ls-tier--recommended .ls-tier__badge { animation: ls-tier-pulse 1.6s ease-in-out infinite; }
}

/* ----- §13 Micro-CTA lightweight pattern ----- */
.ls-micro-cta {
  margin: clamp(24px, 4vw, 48px) auto;
  max-width: var(--max-w-wide);
  padding: clamp(20px, 3vw, 32px) clamp(20px, 4vw, 40px);
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  background: linear-gradient(135deg, var(--primary-soft) 0%, var(--accent-soft) 100%);
  border-radius: 18px; flex-wrap: wrap;
}
.ls-micro-cta__text { flex: 1 1 320px; font-family: var(--font-ui); }
.ls-micro-cta__title { font-size: clamp(17px, 1vw + 12px, 22px); font-weight: 700; line-height: 1.3; color: var(--ink); margin: 0 0 4px; letter-spacing: -.01em; }
.ls-micro-cta__sub { font-family: var(--font-body); font-size: 14.5px; color: var(--ink-soft); margin: 0; }
.ls-micro-cta__actions { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 640px) {
  .ls-micro-cta { flex-direction: column; align-items: stretch; text-align: center; }
  .ls-micro-cta__actions { justify-content: center; }
}

/* ----- §14 Print stylesheet (hide all decorations + animations) ----- */
@media print {
  .ls-section--blobs::before, .ls-section--blobs::after,
  .ls-section--wave-top::before,
  .ls-section--wash-from-bg::before, .ls-section--wash-from-soft::before,
  .ls-section--dots::before,
  .ls-section--accent-line::after,
  .ls-hero::before,
  .ls-video__glow,
  .ls-micro-cta { display: none !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
  [data-ls-reveal], [data-ls-reveal-children] > * { opacity: 1 !important; transform: none !important; }
}

/* ----- §15 High-contrast mode (more visible decorations) ----- */
@media (prefers-contrast: more) {
  .ls-section--blobs::before, .ls-section--blobs::after { opacity: .7; filter: blur(40px); }
  .ls-section--dots::before { opacity: .5; }
}

/* ----- §16 Explicit reduced-motion guards for new filter/transform/animation ----- */
@media (prefers-reduced-motion: reduce) {
  .ls-section--blobs::before, .ls-section--blobs::after,
  .ls-video__glow { animation: none !important; }
  .ls-tier--recommended .ls-tier__badge { animation: none !important; }
}

/* =============================================================
   v1.2.20 END
   ============================================================= */

/* v1.2.50 — Dead inline-mockup CSS removed (was 1994-2110, ~14KB, 79 selectors).
   Replaced by real <img> screenshots in v1.2.26+. .lp-laptop / .lp-photo / .lp-asset-note retained below. */

/* ----- 10. ORG LAPTOP / CAREPRO DASHBOARD ----- */
.lp-laptop { width: 100%; max-width: 560px; background: #fff; border: 1px solid var(--line); border-radius: 10px 10px 0 0; box-shadow: 0 14px 36px rgba(0,0,0,.12); overflow: hidden; font-family: var(--font-ui); margin: 0 auto; }
.lp-laptop__chrome { height: 24px; background: #f1f3f5; border-bottom: 1px solid var(--line); display: flex; align-items: center; padding: 0 12px; gap: 5px; }
.lp-laptop__dot { width: 9px; height: 9px; border-radius: 50%; background: #c0c4c8; }
.lp-laptop__url { font-size: 9.5px; color: var(--ink-soft); margin-left: 14px; font-family: monospace; }
.lp-laptop__body { display: grid; grid-template-columns: 130px 1fr; min-height: 320px; }
.lp-laptop__side { background: var(--ink); color: #fff; padding: 16px 12px; }
.lp-laptop__brand { font-weight: 800; font-size: 11.5px; margin-bottom: 4px; }
.lp-laptop__brand small { display: block; font-size: 9px; opacity: .65; font-family: var(--font-body); font-weight: 500; margin-top: 2px; }
.lp-laptop__nav { display: flex; flex-direction: column; gap: 3px; margin-top: 16px; }
.lp-laptop__nav-item { font-size: 10.5px; color: rgba(255,255,255,.7); padding: 6px 9px; border-radius: 6px; font-family: var(--font-body); }
.lp-laptop__nav-item--active { background: rgba(255,255,255,.12); color: #fff; font-weight: 700; }
.lp-laptop__content { padding: 16px 18px; background: #fff; }
.lp-laptop__row1 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 10px; margin-bottom: 14px; }
.lp-laptop__stat { background: var(--bg-soft); border-radius: 9px; padding: 10px; }
.lp-laptop__stat-num { font-size: 20px; font-weight: 800; color: var(--ink); line-height: 1; }
.lp-laptop__stat-num--down { color: #0d6d40; }
.lp-laptop__stat-label { font-size: 9px; color: var(--ink-soft); font-family: var(--font-body); margin-top: 4px; }
.lp-laptop__h { font-size: 12.5px; font-weight: 800; color: var(--ink); margin: 0 0 9px; }
.lp-laptop__table { display: flex; flex-direction: column; gap: 5px; }
.lp-laptop__trow { display: grid; grid-template-columns: 24px 1.4fr 1fr 0.8fr 60px; gap: 8px; padding: 7px 10px; background: var(--bg-soft); border-radius: 6px; align-items: center; font-size: 10.5px; color: var(--ink); font-family: var(--font-body); }
.lp-laptop__trow:first-child { background: transparent; padding: 0 10px; font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; color: var(--ink-soft); }
.lp-laptop__avs { width: 22px; height: 22px; border-radius: 50%; background: linear-gradient(135deg, var(--primary), var(--accent)); color: #fff; display: grid; place-items: center; font-size: 9px; font-weight: 700; }
.lp-laptop__pill { display: inline-block; font-size: 9px; padding: 2px 7px; border-radius: 10px; font-weight: 700; }
.lp-laptop__pill--green { background: rgba(24,166,97,.15); color: #0d6d40; }
.lp-laptop__pill--yellow { background: rgba(240,180,0,.15); color: #8a6700; }

/* ----- Directive caption (visible "ideally:" tag for designers/AI) ----- */
.lp-asset-note { font-family: var(--font-body); font-size: 12px; line-height: 1.4; color: #8a6700; background: rgba(255,248,225,.85); border-left: 3px solid #f0b400; padding: 6px 10px; margin: 10px auto 0; border-radius: 0 6px 6px 0; font-style: italic; max-width: 360px; }
.lp-asset-note::before { content: "📷 Ideally: "; font-weight: 700; font-style: normal; color: #6d4f00; }

/* ----- Lifestyle photo holders ----- */
.lp-photo { width: 100%; height: 100%; object-fit: cover; display: block; }

/* =============================================================
   v1.2.22 END
   ============================================================= */

/* =============================================================
   v1.2.23 BEGIN — home revamp: gap timeline, full-bleed banners,
   meet-your-pilot chat, IS/ISN'T list, split header
   Additive only. Rollback = delete this block + revert version.
   ============================================================= */

/* §2 split header — copy left, asset right */
.ls-split-head { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: clamp(28px, 4vw, 56px); align-items: center; max-width: var(--max-w-wide); margin: 0 auto; }
.ls-split-head__asset { aspect-ratio: 5/4; border-radius: 18px; overflow: hidden; box-shadow: 0 10px 28px rgba(0,0,0,.08); }
.ls-split-head__asset img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 880px) { .ls-split-head { grid-template-columns: 1fr; } }

/* §2 gap timeline — minimal LP-token only */
.ls-gap { max-width: var(--max-w-wide); margin: 32px auto 0; padding: 0 clamp(16px, 3vw, 40px); }
.ls-gap__row { display: grid; grid-template-columns: 110px 1fr; gap: 26px; padding: 26px 0; border-top: 1px solid var(--line); align-items: start; transition: background-color .18s ease; }
.ls-gap__row:hover { background: color-mix(in oklab, var(--primary-soft) 30%, transparent); }
.ls-gap__time { font-family: ui-monospace, monospace; font-size: 13px; color: var(--primary-deep); letter-spacing: .06em; line-height: 1.3; font-weight: 700; }
.ls-gap__h { font-family: var(--font-ui); font-weight: 600; font-size: 22px; color: var(--ink); margin: 0 0 6px; letter-spacing: -.015em; }
.ls-gap__p { font-family: var(--font-body); font-size: 16px; color: var(--ink-soft); margin: 0; line-height: 1.5; }

/* Full-bleed image banner — natural break, not a full fold */
.ls-banner-full { padding: 0; margin: 0; }
.ls-banner-full__media { position: relative; width: 100%; aspect-ratio: 32/9; max-height: 420px; min-height: 320px; overflow: hidden; }
.ls-banner-full__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ls-banner-full__card { position: absolute; bottom: clamp(24px, 3vw, 40px); max-width: 440px; background: var(--bg); border: 1px solid var(--line); border-radius: 18px; padding: clamp(18px, 1.8vw, 24px) clamp(20px, 2vw, 28px); box-shadow: 0 18px 44px rgba(0,0,0,.22); }
.ls-banner-full__card--left { left: clamp(24px, 4vw, 80px); }
.ls-banner-full__card--right { right: clamp(24px, 4vw, 80px); }
.ls-banner-full__eyebrow { font-family: ui-monospace, monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--primary-deep); margin: 0 0 8px; }
.ls-banner-full__h { font-family: var(--font-serif); font-size: clamp(20px, 1.6vw + 8px, 26px); line-height: 1.2; color: var(--ink); margin: 0 0 8px; font-weight: 500; letter-spacing: -.01em; }
.ls-banner-full__h em { color: var(--primary-deep); font-style: italic; }
.ls-banner-full__p { font-family: var(--font-body); font-size: 14.5px; line-height: 1.5; color: var(--ink-soft); margin: 0; }
@media (max-width: 880px) {
  .ls-banner-full__media { aspect-ratio: 16/9; max-height: 240px; min-height: 200px; }
  .ls-banner-full__card { position: static; max-width: none; margin: -40px 16px 0; }
}

/* §5 Meet Your Pilot chat */
.ls-mpc { background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-card); padding: 24px; max-width: 720px; margin: 28px auto 0; }
.ls-mpc__msg { display: grid; grid-template-columns: 36px 1fr; gap: 14px; margin-bottom: 16px; align-items: start; }
.ls-mpc__av { width: 32px; height: 32px; border-radius: 50%; background: var(--primary-soft); color: var(--primary-deep); display: grid; place-items: center; font-family: var(--font-ui); font-weight: 800; font-size: 13px; }
.ls-mpc__av--p { background: var(--ink); color: var(--bg); }
.ls-mpc__meta { font-family: ui-monospace, monospace; font-size: 10.5px; color: var(--muted); letter-spacing: .04em; margin-bottom: 4px; }
.ls-mpc__bubble { background: var(--bg); padding: 12px 14px; border-radius: 10px; border: 1px solid var(--line); font-family: var(--font-body); font-size: 14.5px; color: var(--ink); line-height: 1.5; }
.ls-mpc__bubble--p { background: var(--bg-soft); }
.ls-mpc__chips { display: flex; gap: 8px; margin-top: 10px; flex-wrap: wrap; }
.ls-mpc__chip { background: var(--primary-soft); color: var(--primary-deep); border-radius: var(--r-pill); padding: 5px 12px; font-family: var(--font-ui); font-size: 12px; font-weight: 600; }

/* §8 IS/ISN'T list — design canon */
.ls-isnt { background: var(--surface); border: 1px solid var(--line); border-radius: 16px; padding: 26px 28px; margin: 36px auto 0; max-width: var(--max-w-wide); }
.ls-isnt__label { font-family: ui-monospace, monospace; font-size: 11px; letter-spacing: .08em; color: var(--muted); margin: 0 0 14px; }
.ls-isnt__list { list-style: none; padding: 0; margin: 0; }
.ls-isnt__list li { display: grid; grid-template-columns: 20px 1fr; gap: 10px; font-family: var(--font-body); font-size: 14.5px; line-height: 1.55; margin-bottom: 6px; }
.ls-isnt__list li.is { color: var(--ink); }
.ls-isnt__list li.isnt { color: var(--ink-soft); }
.ls-isnt__divider { border-top: 1px dashed var(--line); margin: 10px 0; height: 1px; }
.ls-isnt__list li svg { margin-top: 2px; }

/* =============================================================
   v1.2.23 END
   ============================================================= */


/* =============================================================
   v1.2.25 BEGIN — additive only
   Org page revamp + caregivers refresh + Schedule a Demo CTA
   Components: .ls-frame, .ls-cpshow, .ls-outc, .ls-trustquad, .ls-trustmicro
   ============================================================= */

/* Banner-full height tightening (v1.2.24 carryover) */
.ls-banner-full__media { aspect-ratio: 32/9; max-height: 420px; min-height: 320px; }
@media (max-width: 800px) { .ls-banner-full__media { aspect-ratio: 16/9; max-height: 240px; min-height: 180px; } }

/* .ls-frame — swappable asset container (plug-and-play rule) */
.ls-frame {
  position: relative;
  display: block;
  margin: 0;
  border-radius: 22px;
  overflow: hidden;
  background: linear-gradient(180deg, var(--bg) 0%, var(--bg-soft) 100%);
  box-shadow: 0 40px 80px -28px rgba(8,123,167,0.25), 0 0 0 1px rgba(8,123,167,0.06);
  transition: transform 220ms ease, box-shadow 220ms ease;
}
.ls-frame:hover {
  transform: translateY(-3px);
  box-shadow: 0 50px 100px -28px rgba(8,123,167,0.32), 0 0 0 1px rgba(8,123,167,0.1);
}
.ls-frame > img { display: block; width: 100%; height: auto; object-fit: cover; }
.ls-frame--ratio-16x10 > img { aspect-ratio: 16/10; }
.ls-frame--ratio-5x6   > img { aspect-ratio: 5/6; }
.ls-frame--ratio-4x3   > img { aspect-ratio: 4/3; }

/* Hero trust micro-strip */
.ls-trustmicro {
  margin-top: 22px;
  display: flex; align-items: center; gap: 14px;
  flex-wrap: wrap;
  font-family: var(--font-ui); font-size: 12px; color: var(--muted);
  letter-spacing: 0.4px; text-transform: uppercase; font-weight: 600;
}
.ls-trustmicro span { display: flex; align-items: center; gap: 6px; }
.ls-trustmicro svg { color: var(--primary-deep); }
.ls-trustmicro__dot { width: 4px; height: 4px; border-radius: 50%; background: var(--line-strong); flex-shrink: 0; }

/* .ls-cpshow — light Direction A showcase (mockup + numbered features) */
.ls-cpshow {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: clamp(28px, 4vw, 72px);
  max-width: var(--max-w-wide);
  margin: 0 auto;
  align-items: center;
}
@media (max-width: 980px) { .ls-cpshow { grid-template-columns: 1fr; gap: 32px; } }
.ls-cpshow__visual { position: relative; padding-bottom: 30px; }
.ls-cpshow__features { display: flex; flex-direction: column; }
.ls-cpshow__feature {
  display: grid;
  grid-template-columns: 44px 1fr;
  gap: 18px;
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  align-items: start;
}
.ls-cpshow__feature:last-child { border-bottom: 0; padding-bottom: 0; }
.ls-cpshow__feature:first-child { padding-top: 0; }
.ls-cpshow__num {
  width: 44px; height: 44px; border-radius: 12px;
  background: var(--primary-soft); color: var(--primary-deep);
  display: grid; place-items: center;
  font-family: var(--font-ui); font-weight: 700; font-size: 14px;
  letter-spacing: -0.01em; flex-shrink: 0;
}
.ls-cpshow__feature:nth-child(2) .ls-cpshow__num { background: var(--accent-soft); color: var(--accent-rose-deep); }
.ls-cpshow__feature:nth-child(3) .ls-cpshow__num { background: var(--secondary-soft); color: var(--secondary-teal); }
.ls-cpshow__feature:nth-child(4) .ls-cpshow__num { background: var(--lav-soft); color: var(--lav-deep); }
.ls-cpshow__feature h3 {
  font-family: var(--font-ui); font-weight: 700; font-size: 19px;
  color: var(--ink); margin: 0 0 6px; letter-spacing: -0.01em;
}
.ls-cpshow__feature p {
  font-family: var(--font-body); font-size: 15px; line-height: 1.55;
  color: var(--ink-soft); margin: 0;
}

/* .ls-outc — Direction A outcome cards (used on org-outcomes) */
.ls-outc {
  max-width: var(--max-w-wide);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(14px, 1.5vw, 24px);
}
@media (max-width: 900px) { .ls-outc { grid-template-columns: 1fr; } }
.ls-outc__card {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: clamp(24px, 2.5vw, 36px);
  display: flex; flex-direction: column; gap: 18px;
  transition: transform 200ms ease, box-shadow 200ms ease, border-color 200ms ease;
  position: relative; overflow: hidden;
}
.ls-outc__card:hover { transform: translateY(-3px); box-shadow: var(--sh-deep); border-color: var(--primary-soft); }
.ls-outc__icon { width: 56px; height: 56px; border-radius: 16px; display: grid; place-items: center; }
.ls-outc__icon--primary   { background: var(--primary-soft); color: var(--primary-deep); }
.ls-outc__icon--accent    { background: var(--accent-soft); color: var(--accent-rose-deep); }
.ls-outc__icon--secondary { background: var(--secondary-soft); color: var(--secondary-teal); }
.ls-outc__num {
  font-family: var(--font-ui); font-size: 11px; font-weight: 700;
  letter-spacing: 0.8px; text-transform: uppercase; color: var(--muted); margin: 0;
}
.ls-outc__title {
  font-family: var(--font-serif); font-weight: 400;
  font-size: clamp(22px, 1.6vw + 8px, 28px); line-height: 1.2;
  letter-spacing: -0.015em; color: var(--ink); margin: 0;
}
.ls-outc__title em { font-style: italic; color: var(--primary-deep); font-family: var(--font-serif); font-weight: 400; }
.ls-outc__desc { font-family: var(--font-body); font-size: 15px; line-height: 1.55; color: var(--ink-soft); margin: 0; }
.ls-outc__bullet {
  font-family: var(--font-ui); font-size: 12.5px; color: var(--ink);
  margin-top: auto; padding-top: 14px; border-top: 1px dashed var(--line);
  display: flex; align-items: center; gap: 8px;
}
.ls-outc__bullet svg { color: var(--primary-deep); }

/* .ls-trustquad — final-CTA trust quad strip */
.ls-trustquad {
  margin-top: 36px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  max-width: 920px;
  margin-left: auto; margin-right: auto;
}
@media (max-width: 800px) { .ls-trustquad { grid-template-columns: repeat(2, 1fr); } }
.ls-trustquad article {
  background: var(--surface); border: 1px solid var(--line);
  border-radius: 16px; padding: 18px; text-align: center;
}
.ls-trustquad__icon {
  width: 36px; height: 36px; border-radius: 10px;
  background: var(--primary-soft); color: var(--primary-deep);
  display: grid; place-items: center; margin: 0 auto 10px;
}
.ls-trustquad h3,
.ls-trustquad h4 {
  font-family: var(--font-ui); font-weight: 600; font-size: 14px;
  margin: 0 0 4px; color: var(--ink); letter-spacing: -0.005em;
}
.ls-trustquad p {
  font-family: var(--font-body); font-size: 13px; line-height: 1.4;
  color: var(--ink-soft); margin: 0;
}

/* =============================================================
   v1.2.25 END
   ============================================================= */


/* =============================================================
   v1.2.26 BEGIN — additive only
   Pricing/App/Kid/Adult/How/About/Contact/Legal batch
   New components: .ls-pillar__inpractice, .ls-phone-trio, .ls-bizband, .ls-tier--carepro
   ============================================================= */

/* IN PRACTICE subtext under .ls-pillar (canon S4) */
.ls-pillar__inpractice {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px dashed var(--line);
  font-family: var(--font-body);
  font-size: 13.5px;
  line-height: 1.45;
  color: var(--ink-soft);
}
.ls-pillar__inpractice strong {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--primary-deep);
  display: block;
  margin-bottom: 4px;
}

/* .ls-phone-trio — 3 phones: still left + VIDEO center elevated + still right
   All phones use default .ls-phone 9:19.5 aspect (locked by feedback-phone-aspect-ratio) */
.ls-phone-trio {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: clamp(8px, 1.5vw, 18px);
  margin: clamp(20px, 2.5vw, 36px) auto 0;
  max-width: 860px;
  position: relative;
}
.ls-phone-trio .ls-phone {
  width: clamp(120px, 15vw, 170px);
  position: relative;
  transition: transform 280ms ease;
  padding: 5px;
  border-radius: clamp(18px, 2vw, 26px);
  background: #1A1A1C;
  box-shadow: 0 12px 30px -10px rgba(0,0,0,0.18);
}
.ls-phone-trio .ls-phone .ls-phone__screen { border-radius: clamp(13px, 1.5vw, 20px); }
.ls-phone-trio .ls-phone--side-left  { transform: rotate(-6deg) translateY(14px) scale(0.94); z-index: 1; }
.ls-phone-trio .ls-phone--side-right { transform: rotate(6deg)  translateY(14px) scale(0.94); z-index: 1; }
.ls-phone-trio .ls-phone--center {
  width: clamp(150px, 18vw, 210px);
  transform: translateY(-8px);
  z-index: 3;
  box-shadow: 0 40px 80px -24px rgba(8,123,167,0.32), 0 0 0 1px rgba(0,0,0,0.06);
  position: relative;
}
.ls-phone-trio .ls-phone--center::before {
  content: "";
  position: absolute;
  inset: -2px;
  border-radius: clamp(20px, 2.2vw, 28px);
  background: linear-gradient(135deg, var(--primary), var(--accent));
  z-index: -1;
  opacity: 0.2;
  filter: blur(16px);
}
.ls-phone-trio .ls-phone--center .ls-phone__screen {
  background: #000;
  position: relative;
  overflow: hidden;
}
.ls-phone-trio .ls-phone--center .ls-phone__screen {
  background: #000;
}
.ls-phone-trio .ls-phone--center .ls-phone__screen video {
  display: block;
  width: 100%; height: 100%;
  object-fit: contain;
  background: #000;
}
.ls-phone-trio__playbadge {
  position: absolute;
  top: 12px; right: 12px;
  display: flex; align-items: center; gap: 6px;
  background: rgba(15,24,21,0.85);
  color: #fff;
  font-family: var(--font-ui);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.4px;
  padding: 4px 8px;
  border-radius: 999px;
  z-index: 5;
  pointer-events: none;
  text-transform: uppercase;
}
.ls-phone-trio__playbadge::before {
  content: "";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #FF3B30;
  animation: lp-pulse 2s ease-in-out infinite;
}
@keyframes lp-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.4; } }
.ls-phone-trio-labels {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: clamp(10px, 2vw, 24px);
  max-width: 860px;
  margin: clamp(14px, 2vw, 24px) auto 0;
  align-items: start;
  padding: 0 clamp(10px, 2vw, 40px);
  position: relative;
}
.ls-phone-trio-labels__item {
  text-align: center;
  display: flex; flex-direction: column; align-items: center;
  gap: 4px;
}
.ls-phone-trio-labels__step {
  font-family: var(--font-ui);
  font-size: 10px; font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--muted);
}
.ls-phone-trio-labels__item:nth-child(2) .ls-phone-trio-labels__step { color: var(--primary-deep); }
.ls-phone-trio-labels__title {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 13.5px;
  color: var(--ink);
  margin: 0;
  line-height: 1.3;
}
.ls-phone-trio-labels__sub {
  font-family: var(--font-body);
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--ink-soft);
  margin: 0;
  max-width: 26ch;
}
@media (min-width: 901px) {
  .ls-phone-trio-labels::before {
    content: "";
    position: absolute;
    top: 18px;
    left: 18%; right: 18%;
    height: 1px;
    background: repeating-linear-gradient(to right, var(--line-strong) 0 4px, transparent 4px 10px);
    z-index: 0;
    pointer-events: none;
  }
}
@media (max-width: 900px) {
  .ls-phone-trio { flex-wrap: wrap; gap: 12px; justify-content: center; }
  .ls-phone-trio .ls-phone--side-left,
  .ls-phone-trio .ls-phone--side-right { transform: none; scale: 1; width: clamp(110px, 28vw, 150px); }
  .ls-phone-trio .ls-phone--center { width: clamp(150px, 42vw, 200px); transform: none; order: -1; }
  .ls-phone-trio-labels { grid-template-columns: 1fr; gap: 14px; }
}

/* .ls-bizband — light B2B callout (replaces dark surface in pr-carepro) */
.ls-bizband {
  background: linear-gradient(160deg, var(--surface) 0%, var(--bg-soft) 100%);
  border: 1px solid var(--line);
  border-radius: var(--r-card);
  padding: clamp(32px, 4vw, 64px);
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: clamp(28px, 4vw, 64px);
  max-width: var(--max-w-wide);
  margin: 0 auto;
  align-items: center;
  box-shadow: 0 30px 60px -28px rgba(8,123,167,0.18);
}
@media (max-width: 900px) { .ls-bizband { grid-template-columns: 1fr; gap: 24px; } }
.ls-bizband__eyebrow {
  font-family: var(--font-ui);
  font-size: 12px; font-weight: 700;
  letter-spacing: 0.6px;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 12px;
}
.ls-bizband h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: clamp(26px, 2vw + 12px, 36px);
  line-height: 1.15;
  letter-spacing: -0.015em;
  color: var(--ink);
  margin: 0 0 14px;
  max-width: 22ch;
}
.ls-bizband h2 em { font-style: italic; color: var(--primary-deep); font-family: var(--font-serif); }
.ls-bizband__lede {
  font-family: var(--font-body);
  font-size: 17px; line-height: 1.55;
  color: var(--ink-soft);
  margin: 0 0 22px;
}
.ls-bizband__list { list-style: none; padding: 0; margin: 0 0 24px; display: grid; gap: 10px; }
.ls-bizband__list li {
  display: grid; grid-template-columns: 20px 1fr; gap: 10px;
  font-family: var(--font-body);
  font-size: 14.5px; line-height: 1.5;
  color: var(--ink-soft);
}
.ls-bizband__list li svg { color: var(--primary-deep); }
.ls-bizband__list li strong { color: var(--ink); font-weight: 600; }
.ls-bizband__panel {
  background: var(--surface);
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 24px;
  display: flex; flex-direction: column; gap: 14px;
}
.ls-bizband__panel h3,
.ls-bizband__panel h4 {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: 14px;
  color: var(--primary-deep);
  margin: 0;
  letter-spacing: 0.4px;
  text-transform: uppercase;
}
.ls-bizband__stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-size: clamp(32px, 3vw + 10px, 48px);
  color: var(--ink);
  line-height: 1;
  letter-spacing: -0.02em;
  margin: 0;
}
.ls-bizband__stat-sub {
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0;
}

/* .ls-tier--carepro — dashed-border tier card variant (5th tier B2B) */
.ls-tier--carepro {
  background: linear-gradient(160deg, var(--bg-soft) 0%, var(--primary-soft) 100%);
  border: 1px dashed var(--primary);
}
.ls-tier--carepro .ls-tier__name { color: var(--primary-deep); }
.ls-tier--carepro .ls-tier__price-amount { font-size: clamp(22px, 1.4vw + 14px, 28px); }

/* =============================================================
   v1.2.26 END
   ============================================================= */

/* =============================================================
   v1.3.7 — MOBILE LAYOUT HOTFIX
   Final-cascade overrides for sub-640px viewports (iPhone, small Android).
   These rules come last in the file so they win against any earlier
   competing breakpoint rule (most older rules used 800px / 799px boundaries
   that didn't account for narrow iPhone widths under real usage).
   ============================================================= */
@media (max-width: 640px) {
  /* --- Pillars + Pillars--3 + Pillars--4: force 1-col stack, kill carousel.
     Earlier @media(max-width:799px) sets grid-auto-flow:column carousel mode,
     but the cascade at viewport 393px gets stuck on it in some Safari
     paint passes. !important nails it. */
  .ls-pillars__grid,
  .ls-pillars__grid--3,
  .ls-pillars__grid--4 {
    grid-template-columns: 1fr !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    overflow-x: visible !important;
    scroll-snap-type: none !important;
    padding-bottom: 0 !important;
    gap: 14px !important;
  }
  .ls-pillar { min-height: 0 !important; padding: 22px !important; }

  /* --- ls-rows alternating split: stack 1-col (some patterns still
     showed 2-col on narrow viewports because the rule used max-width:800px). */
  .ls-row, .ls-row--reverse {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
  .ls-row--reverse .ls-row__copy,
  .ls-row--reverse .ls-row__visual { order: initial !important; }

  /* --- Other multi-col grids that were left at 2-col on the old break: */
  .ls-cg-day__grid,
  .ls-org-problems,
  .ls-org-features,
  .ls-org-trust-4,
  .ls-how-rhythm,
  .ls-kid-blocks,
  .ls-features__grid,
  .ls-features__grid--3,
  .ls-stat-strip,
  .ls-stat-strip--3,
  .ls-trustquad,
  .ls-orgval__grid,
  .ls-orguse__grid,
  .ls-measure__grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  /* --- Hero phones: tighten so 3 phones + rotation fit inside 393px viewport.
     At 110px min × 3 + gaps + ±8° rotation, bounding box was ≈395px (overflow).
     Drop to 92px floor → 276 + gaps ≈ 308px, leaves headroom for rotation. */
  .ls-hero-phones {
    gap: 6px !important;
    margin-top: 28px !important;
    flex-wrap: nowrap !important;
  }
  .ls-hero-phones .ls-phone {
    width: clamp(82px, 26vw, 108px) !important;
  }

  /* v1.3.11 — Phone trio mobile: just the center video phone, no sides.
     The "elements around the bezel" the user kept seeing were the dark iPhone
     notch/status-bar areas BAKED INTO the side phone PNGs. When the sides
     tilted via rotate(±8°), those dark image-bound regions swung outward and
     appeared next to the center bezel. CSS can't remove what's in the source
     image. Cleanest decisive fix: hide the sides on mobile, let the center
     video phone stand alone with its natural phone bezel as the border.
     Sides still render at desktop (>=641px) so the trio composition is intact
     where it works. */
  .ls-phone-trio {
    flex-direction: column !important;
    align-items: center !important;
    gap: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding: 8px 0 14px !important;
  }

  .ls-phone-trio .ls-phone--side-left,
  .ls-phone-trio .ls-phone--side-right {
    display: none !important;
  }

  /* v1.3.15 — Real iPhone aspect (9:19.5) + ENTIRE video visible (object-fit:
     contain). The letterbox bars top/bottom match the phone bezel color
     (#1A1A1C), so they visually merge into the frame — looks like an iPhone
     with the avatar floating in a dark video player area. No cropping. */
  .ls-phone-trio .ls-phone--center::before { display: none !important; }
  .ls-phone-trio .ls-phone--center {
    width: clamp(200px, 56vw, 250px) !important;
    aspect-ratio: 9 / 19.5 !important;
    flex-shrink: 0 !important;
    order: 0 !important;
    padding: 5px !important;
    background: #1A1A1C !important;
    border: 0 !important;
    border-radius: 34px !important;
    box-shadow: 0 18px 34px -14px rgba(0,0,0,0.22) !important;
    transform: none !important;
    z-index: 3 !important;
    overflow: hidden !important;
  }
  .ls-phone-trio .ls-phone--center .ls-phone__screen {
    border-radius: 29px !important;
    background: #1A1A1C !important;
  }
  .ls-phone-trio .ls-phone--center .ls-phone__screen video {
    object-fit: contain !important;
    object-position: center !important;
    background: transparent !important;
  }

  .ls-phone-trio-labels { grid-template-columns: 1fr !important; gap: 14px !important; }

  /* --- Display heading: tighten on iPhone so it doesn't overflow on long words */
  .ls-display { font-size: clamp(28px, 8vw, 38px) !important; max-width: 100% !important; }
  .ls-display--centered { max-width: 100% !important; }

  /* --- Section containers: prevent horizontal padding from forcing overflow */
  .ls-section, .ls-hero, .ls-product, .ls-video, .ls-cta, .ls-banner-full {
    max-width: 100vw;
    overflow-x: clip;
  }
}

/* Extra-safe rule for iPhone SE / older small devices (≤375px) */
@media (max-width: 380px) {
  .ls-hero-phones .ls-phone { width: 78px !important; }
  .ls-display { font-size: clamp(26px, 7vw, 34px) !important; }
}

/* =============================================================
   v1.3.13 — .ls-watch-features (replaces .ls-phone-trio-labels)
   Compact icon + title + 1-line description rows that stack
   cleanly on mobile and grid 3-col on desktop. Designed for
   scannability — no stacked paragraphs, no eyebrow noise.
   ============================================================= */
.ls-watch-features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(18px, 2.4vw, 28px);
  max-width: 880px;
  margin: clamp(28px, 4vw, 44px) auto 0;
  list-style: none;
  padding: 0 clamp(16px, 3vw, 40px);
}
.ls-watch-feature {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.ls-watch-feature__icon {
  flex-shrink: 0;
  width: 44px; height: 44px;
  border-radius: 14px;
  background: var(--primary-soft);
  color: var(--primary-deep);
  display: grid;
  place-items: center;
}
.ls-watch-feature__icon--accent { background: var(--accent-soft); color: var(--accent); }
.ls-watch-feature__icon--secondary { background: var(--secondary-soft); color: var(--secondary); }
.ls-watch-feature__icon svg { width: 22px; height: 22px; display: block; }
.ls-watch-feature__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.ls-watch-feature__title {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--ink);
  margin: 0;
}
.ls-watch-feature__desc {
  font-family: var(--font-body);
  font-size: 14.5px;
  line-height: 1.45;
  color: var(--ink-soft);
  margin: 0;
}
@media (max-width: 700px) {
  .ls-watch-features {
    grid-template-columns: 1fr;
    gap: 16px;
    max-width: 460px;
    margin-top: clamp(24px, 4vw, 32px);
  }
  .ls-watch-feature { gap: 12px; }
  .ls-watch-feature__icon { width: 40px; height: 40px; border-radius: 12px; }
  .ls-watch-feature__icon svg { width: 20px; height: 20px; }
}
