

/* ===== Navbar ===== */
.lh-header,
.lh-header *,
.lh-header *::before,
.lh-header *::after { box-sizing: border-box; }

.lh-skip {
  position: absolute; inset-inline-start: 12px; top: -64px; z-index: 2000;
  padding: 10px 16px; border-radius: 10px;
  background: var(--theme); color: var(--on-theme);
  font-family: var(--font-body); font-weight: 700; text-decoration: none;
}
.lh-skip:focus { top: 12px; }

.lh-header {
  --lh-h: 80px;
  position: sticky; top: 0; z-index: 1000;
  height: var(--lh-h);
  background: var(--bg);
  border-bottom: 1px solid var(--border);
  font-family: var(--font-body);
  transition: box-shadow .25s ease, background .3s ease;
}
.lh-header.is-scrolled { box-shadow: var(--shadow); }

.lh-header__inner {
  height: 100%; max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: auto 1fr auto;
  align-items: center; gap: 20px;
}
.lh-header :focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* ---- Brand ---- */
.lh-brand {
  position: relative; z-index: 2;
  display: inline-flex; align-items: center; gap: 12px;
  color: var(--text); text-decoration: none;
}
.lh-brand__mark {
  width: 42px; height: 42px; flex: none;
  display: grid; place-items: center;
  border-radius: 12px;
  background: var(--logo-bg); color: var(--logo-fg);
  font-size: 19px;
}
[data-theme="dark"] .lh-brand__mark { box-shadow: 0 0 0 1px var(--border); }
/* keeps the edge visible on dark green */
.lh-brand__text { display: flex; flex-direction: column; line-height: 1.1; white-space: nowrap; }
.lh-brand__name { font-family: var(--font-heading); font-size: 20px; font-weight: 700; letter-spacing: -.01em; }
.lh-brand__name span { color: var(--theme); }
.lh-brand__tag { margin-top: 4px; font-size: 12px; font-weight: 600; color: var(--muted); }

/* ---- Desktop nav ---- */
.lh-menu { display: contents; }
.lh-nav { justify-self: center; }

.lh-nav__list {
  display: flex; align-items: center; gap: 2px;
  margin: 0; padding: 4px; list-style: none;
  background: var(--shade); border-radius: 999px;
}
.lh-nav__item { position: relative; }

.lh-nav__link,
.lh-nav__row { border-radius: 999px; }

.lh-nav__link {
  display: inline-block; padding: 10px 18px;
  font-size: 14px; font-weight: 700; white-space: nowrap;
  color: var(--text); text-decoration: none;
  transition: background .2s ease, color .2s ease, box-shadow .2s ease;
}
.lh-nav__row {
  display: flex; align-items: center;
  transition: background .2s ease, box-shadow .2s ease;
}
.lh-nav__row .lh-nav__link { padding-inline: 18px 4px; }

.lh-nav__toggle {
  width: 28px; height: 28px; margin-inline-end: 8px;
  display: grid; place-items: center;
  background: none; border: 0; border-radius: 50%;
  color: var(--text); font-size: 11px; cursor: pointer;
}
.lh-nav__toggle i { transition: transform .2s ease; }
.lh-has-sub.is-open .lh-nav__toggle i { transform: rotate(180deg); }

.lh-nav__link:hover { color: var(--theme); }
.lh-nav__item > .lh-nav__link:hover,
.lh-nav__row:hover { background: var(--shade-strong); }

/* active page */
.lh-nav__item.is-current > .lh-nav__link,
.lh-nav__item.is-current > .lh-nav__row {
  background: var(--surface);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .12), 0 0 0 1px var(--border);
}
.lh-nav__item.is-current > .lh-nav__link,
.lh-nav__item.is-current .lh-nav__row .lh-nav__link,
.lh-nav__item.is-current .lh-nav__toggle { color: var(--theme); }

/* ---- Dropdown ---- */
.lh-sub {
  position: absolute; top: 100%; inset-inline-start: 0; z-index: 5;
  min-width: 170px; margin: 14px 0 0; padding: 6px; list-style: none; display: none;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; box-shadow: var(--shadow);
}
.lh-sub::before { content: ""; position: absolute; inset-inline: 0; top: -16px; height: 16px; }
.lh-has-sub.is-open > .lh-sub { display: block; }
@media (min-width: 1025px) and (hover: hover) {
  .lh-has-sub:hover > .lh-sub,
  .lh-has-sub:focus-within > .lh-sub { display: block; }
}
.lh-sub__link {
  display: block; padding: 11px 16px; border-radius: 12px;
  font-size: 14px; font-weight: 700;
  color: var(--text); text-decoration: none;
  transition: background .2s ease, color .2s ease;
}
.lh-sub__link:hover { background: var(--shade); color: var(--theme); }
.lh-sub__link[aria-current="page"] { background: var(--shade-strong); color: var(--theme); }

.lh-sub__link { text-align: center; font-size: 16px; padding: 12px; }

/* ---- Actions ---- */
.lh-actions { display: flex; align-items: center; gap: 10px; }

.lh-icon-btn {
  width: 42px; height: 42px; display: grid; place-items: center;
  background: var(--shade); border: 1px solid var(--border); border-radius: 50%;
  color: var(--text); font-size: 16px; cursor: pointer;
  transition: background .2s ease, color .2s ease;
}
.lh-icon-btn:hover { background: var(--shade-strong); color: var(--theme); }
.lh-ico-sun { display: none; }
[data-theme="dark"] .lh-ico-moon { display: none; }
[data-theme="dark"] .lh-ico-sun { display: inline; }

.lh-btn {
  height: 44px; padding-inline: 22px;
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--theme); color: var(--on-theme);
  border: 1px solid var(--theme); border-radius: 999px;
  font-size: 14px; font-weight: 700; text-decoration: none;
  box-shadow: 0 6px 16px var(--shade-strong);
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-btn i { font-size: 12px; transition: translate .2s ease; }
.lh-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px var(--shade-strong); }
.lh-btn:hover i { translate: 3px 0; }

/* ---- Hamburger ---- */
.lh-burger {
  position: relative; z-index: 2;
  display: none; width: 44px; height: 44px; place-items: center;
  background: none; border: 0; color: var(--text); font-size: 24px; cursor: pointer;
}
.lh-burger .fa-xmark { display: none; }
.lh-burger[aria-expanded="true"] .fa-bars { display: none; }
.lh-burger[aria-expanded="true"] .fa-xmark { display: inline; }

body.lh-lock { overflow: hidden; }

/* ---- Large devices: keep one row ---- */
@media (min-width: 1025px) and (max-width: 1180px) {
  .lh-header__inner { gap: 12px; padding-inline: 20px; }
  .lh-brand__name { font-size: 18px; }
  .lh-brand__tag { font-size: 11px; }
  .lh-nav__link { padding: 9px 12px; font-size: 13px; }
  .lh-nav__row .lh-nav__link { padding-inline: 12px 2px; }
  .lh-nav__toggle { margin-inline-end: 6px; }
  .lh-actions { gap: 8px; }
  .lh-btn { padding-inline: 16px; font-size: 13px; }
}

/* ---- Tablet + mobile (up to 1024px): full-screen menu ---- */
@media (max-width: 1024px) {
  .lh-header { --lh-h: 68px; }
  .lh-header__inner { display: flex; justify-content: space-between; gap: 12px; }
  .lh-burger { display: grid; }

  .lh-brand__mark { width: 40px; height: 40px; border-radius: 12px; font-size: 17px; }
  .lh-brand__name { font-size: 18px; }
  .lh-brand__tag { font-size: 11px; }

  .lh-menu {
    position: fixed; inset: 0; z-index: 1;
    display: flex; flex-direction: column;
    padding-top: var(--lh-h);
    background:
      radial-gradient(70% 40% at 100% 100%, var(--shade-strong), transparent 70%),
      radial-gradient(60% 35% at 0% 0%, var(--shade), transparent 70%),
      var(--bg);
    visibility: hidden; opacity: 0; transform: translateY(-10px);
    transition: opacity .3s ease, transform .3s ease, visibility 0s linear .3s;
  }
  .lh-menu::before {
    content: ""; position: absolute; inset-inline: 0;
    top: calc(var(--lh-h) - 1px); height: 1px; background: var(--border);
  }
  .lh-menu.is-open { visibility: visible; opacity: 1; transform: none; transition-delay: 0s; }

  .lh-nav {
    flex: 1; width: 100%; min-height: 0; justify-self: auto;
    overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch;
    padding: 20px clamp(16px, 6vw, 48px) 24px;
  }
  .lh-nav__list {
    flex-direction: column; align-items: stretch; gap: 0;
    max-width: 560px; margin-inline: auto; padding: 0;
    background: none; border-radius: 0;
  }
  .lh-nav__item {
    padding-block: 4px; text-align: center;
    border-bottom: 1px solid var(--border);
    opacity: 0; transform: translateY(12px);
    transition: opacity .35s ease, transform .35s ease;
  }
  .lh-nav__item.is-current { border-bottom-color: var(--theme); }
  .lh-menu.is-open .lh-nav__item { opacity: 1; transform: none; }
  .lh-menu.is-open .lh-nav__item:nth-child(1) { transition-delay: .05s; }
  .lh-menu.is-open .lh-nav__item:nth-child(2) { transition-delay: .10s; }
  .lh-menu.is-open .lh-nav__item:nth-child(3) { transition-delay: .15s; }
  .lh-menu.is-open .lh-nav__item:nth-child(4) { transition-delay: .20s; }
  .lh-menu.is-open .lh-nav__item:nth-child(5) { transition-delay: .25s; }

  .lh-nav__link, .lh-nav__row { border-radius: 14px; }
  .lh-nav__link {
    display: block; padding: 16px;
    font-family: var(--font-heading); font-size: 20px; font-weight: 600;
  }
  .lh-nav__row { justify-content: center; }
  .lh-nav__row::before { content: ""; width: 44px; flex: none; } /* keeps "Home" visually centered */
  .lh-nav__row .lh-nav__link { display: inline-block; padding: 16px 4px; }
  .lh-nav__toggle { width: 44px; height: 44px; margin-inline-end: 0; font-size: 13px; }

  .lh-nav__item.is-current > .lh-nav__link,
  .lh-nav__item.is-current > .lh-nav__row { background: var(--shade-strong); box-shadow: none; }

  .lh-sub {
    position: static; min-width: 0; margin: 0; padding: 4px 0 10px;
    background: transparent; border: 0; border-radius: 0; box-shadow: none;
  }
  .lh-sub::before { display: none; }
  .lh-sub__link { justify-content: center; }

  .lh-actions {
    flex: none; justify-content: center; padding: 16px;
    border-top: 1px solid var(--border);
  }
}

@media (prefers-reduced-motion: reduce) {
  .lh-header *, .lh-menu { transition: none !important; }
  .lh-nav__item { opacity: 1 !important; transform: none !important; }
}





/* ===== Home 1: Hero ===== */
.lh-hero {
  position: relative; isolation: isolate; overflow: hidden;
  height: calc(100vh - 80px);
  height: calc(100svh - 80px);
  min-height: 560px;
  background: var(--bg);
  font-family: var(--font-body);
}

/* background: clouds + waves */
.lh-hero__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lh-hero__cloud {
  position: absolute; background: var(--blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-hero__cloud--a { top: -70px; inset-inline-end: -80px; width: min(46vw, 560px); aspect-ratio: 2 / 1.1; }
.lh-hero__cloud--b { top: 14%; inset-inline-start: -6%; width: min(40vw, 480px); aspect-ratio: 1.5 / 1; opacity: .75; }
.lh-hero__cloud--c { top: 30%; inset-inline-end: 28%; width: 140px; aspect-ratio: 2 / 1; opacity: .8; }

.lh-hero__waves { position: absolute; inset-inline: 0; bottom: -1px; width: 100%; height: 56%; }
.lh-w0 { fill: var(--wave-0); }
.lh-w1 { fill: var(--wave-1); }
.lh-w2 { fill: var(--wave-2); }
.lh-w3 { fill: var(--bg); } /* front wave = page color, so the hero flows into the next section */

/* layout */
.lh-hero__inner {
  position: relative; z-index: 2; height: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  align-items: center; gap: clamp(16px, 3vw, 48px);
}
.lh-hero__copy { padding-bottom: 6vh; }

.lh-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-hero__title {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-size: clamp(2.6rem, 6.2vw, 4.75rem);
  font-weight: 500; line-height: 1.04; letter-spacing: -.03em;
  color: var(--text);
}
.lh-hero__title span { color: var(--theme); }
.lh-hero__text {
  margin: 0 0 28px; max-width: 46ch;
  font-size: clamp(.95rem, 1.2vw, 1.05rem); line-height: 1.65; color: var(--muted);
}
.lh-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.lh-hero__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.lh-hero__btn i { font-size: 13px; }
.lh-hero__btn--solid { background: var(--theme); color: var(--on-theme); box-shadow: 0 8px 20px var(--shade-strong); }
.lh-hero__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-hero__btn--ghost { background: transparent; color: var(--theme); }
.lh-hero__btn--ghost:hover { background: var(--shade-strong); }
.lh-hero__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

.lh-hero__trust {
  display: flex; flex-wrap: wrap; gap: 10px 24px;
  margin: 30px 0 0; padding: 0; list-style: none;
}
.lh-hero__trust li { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--muted); }
.lh-hero__trust i { color: var(--theme); }

/* photo scene */
.lh-hero__scene {
  align-self: end; justify-self: end;
  height: 84%; width: 100%;
  display: flex; justify-content: flex-end; align-items: flex-end;
  margin-bottom: 5%;
  padding-inline-end: clamp(8px, 2vw, 28px);
}

.lh-hero__photo {
  --lh-arch: 50% 50% 32px 32px / 38% 38% 32px 32px;
  position: relative; height: 100%; max-width: 100%;
  aspect-ratio: 4 / 5;
}

/* tilted shape behind the photo */
.lh-hero__photo-back {
  position: absolute; inset: 0; z-index: 0;
  border-radius: var(--lh-arch);
  background: var(--heart); opacity: .55;
  rotate: -5deg;
}

/* arch photo */
.lh-hero__frame {
  position: absolute; inset: 0; z-index: 1; margin: 0; overflow: hidden;
  border-radius: var(--lh-arch);
  border: 6px solid var(--photo-ring);
  background: var(--shade-strong);
  box-shadow: var(--shadow);
}
.lh-hero__frame img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 30%;
  filter: var(--photo-filter);
}

/* sun accent */
.lh-hero__sun {
  position: absolute; z-index: 2; top: -3%; inset-inline-end: -7%;
  width: clamp(72px, 8vw, 112px); height: auto; overflow: visible;
  fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
.lh-hero__sun-core { fill: var(--sun); }

/* floating badge */
.lh-hero__badge {
  position: absolute; z-index: 3; inset-inline-start: -9%; bottom: 14%;
  display: flex; align-items: center; gap: 10px;
  padding-block: 10px; padding-inline: 10px 18px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; box-shadow: var(--shadow);
}
.lh-hero__badge-icon {
  width: 38px; height: 38px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--theme); color: var(--on-theme); font-size: 16px;
}
.lh-hero__badge-text { display: flex; flex-direction: column; line-height: 1.25; text-align: start; }
.lh-hero__badge-text strong { font-size: 14px; font-weight: 700; color: var(--text); }
.lh-hero__badge-text small { font-size: 12px; font-weight: 600; color: var(--muted); }

  .lh-hero__scene { padding-inline-end: 0; }
  .lh-hero__photo { aspect-ratio: 1 / 1; }
    .lh-hero__sun { width: 64px; inset-inline-end: 0; }
  .lh-hero__badge { inset-inline-start: 2%; bottom: 10%; padding-block: 8px; padding-inline: 8px 14px; }
  .lh-hero__badge-icon { width: 32px; height: 32px; font-size: 14px; }
  .lh-hero__badge-text strong { font-size: 13px; }
  .lh-hero__badge-text small { display: none; }

  /* =========================================================
   HOME 1 HERO — RESPONSIVE STYLES
   Mobile:        320px–767px
   Tablet:        768px–1024px
   Large devices: 1025px–1280px
   ========================================================= */


/* ---------- TABLET: 768px–1024px ---------- */
@media (min-width: 768px) and (max-width: 1024px) {

  .lh-hero {
    height: auto;
    min-height: 0;
  }

  .lh-hero__inner {
    min-height: 680px;
    height: auto;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.85fr);
    gap: clamp(20px, 3vw, 32px);
    padding: 60px 28px 100px;
  }

  .lh-hero__copy {
    padding-bottom: 0;
    min-width: 0;
  }

  .lh-hero__eyebrow {
    margin-bottom: 16px;
    font-size: 12px;
  }

  .lh-hero__title {
    font-size: clamp(2.5rem, 5vw, 3.7rem);
    line-height: 1.08;
  }

  .lh-hero__text {
    font-size: 1rem;
    margin-bottom: 24px;
  }

  .lh-hero__actions {
    gap: 10px;
  }

  .lh-hero__btn {
    height: 48px;
    padding-inline: 20px;
    font-size: 14px;
  }

  .lh-hero__trust {
    gap: 12px 16px;
    margin-top: 24px;
  }

  .lh-hero__trust li {
    font-size: 12px;
  }

  .lh-hero__scene {
    height: auto;
    min-width: 0;
    width: 100%;
    aspect-ratio: 4 / 5;
    align-self: center;
    justify-self: stretch;
    margin: 0;
    padding-inline-end: 0;
  }

  .lh-hero__photo {
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 5;
  }

  .lh-hero__sun {
    width: 68px;
    inset-inline-end: -2%;
  }

  .lh-hero__badge {
    inset-inline-start: -3%;
    bottom: 10%;
    gap: 8px;
    padding: 8px 12px 8px 8px;
  }

  .lh-hero__badge-icon {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }

  .lh-hero__badge-text strong {
    font-size: 12px;
  }

  .lh-hero__badge-text small {
    font-size: 11px;
  }

  .lh-hero__waves {
    height: 42%;
  }
}


/* ---------- MOBILE: 320px–767px ---------- */
@media (max-width: 767px) {

  .lh-hero {
    height: auto;
    min-height: 0;
  }

  .lh-hero__inner {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto;
    gap: 34px;
    padding: 48px 20px 100px;
  }

  .lh-hero__copy {
    padding-bottom: 0;
    min-width: 0;
  }

  .lh-hero__eyebrow {
    gap: 7px;
    margin-bottom: 16px;
    padding: 7px 12px;
    font-size: 11px;
  }

  .lh-hero__title {
    margin-bottom: 16px;
    font-size: clamp(2.25rem, 9vw, 3.5rem);
    line-height: 1.08;
    letter-spacing: -0.035em;
    overflow-wrap: break-word;
  }

  .lh-hero__text {
    max-width: 52ch;
    margin-bottom: 22px;
    font-size: 15px;
    line-height: 1.7;
  }

  .lh-hero__actions {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .lh-hero__btn {
    width: 100%;
    min-height: 48px;
    height: auto;
    justify-content: center;
    padding: 13px 20px;
    font-size: 14px;
    white-space: normal;
    text-align: center;
  }

  .lh-hero__trust {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-top: 24px;
  }

  .lh-hero__trust li {
    align-items: flex-start;
    gap: 9px;
    font-size: 13px;
    line-height: 1.5;
  }

  .lh-hero__trust i {
    margin-top: 3px;
    flex: none;
  }

  /* Image below the hero text */
  .lh-hero__scene {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3.7;
    align-self: auto;
    justify-self: stretch;
    display: flex;
    justify-content: center;
    align-items: stretch;
    margin: 0;
    padding-inline: 8px;
  }

  .lh-hero__photo {
    width: 100%;
    max-width: 420px;
    height: 100%;
    aspect-ratio: auto;
    margin-inline: auto;
  }

  .lh-hero__photo-back {
    rotate: -4deg;
  }

  .lh-hero__frame {
    border-width: 5px;
  }

  .lh-hero__frame img {
    object-position: 50% 30%;
  }

  .lh-hero__sun {
    width: 58px;
    top: -4%;
    inset-inline-end: -2%;
  }

  .lh-hero__badge {
    inset-inline-start: -2%;
    bottom: 8%;
    gap: 8px;
    padding-block: 8px;
    padding-inline: 8px 13px;
    border-radius: 14px;
  }

  .lh-hero__badge-icon {
    width: 32px;
    height: 32px;
    font-size: 13px;
  }

  .lh-hero__badge-text strong {
    font-size: 12px;
  }

  .lh-hero__badge-text small {
    display: block;
    font-size: 10px;
  }

  .lh-hero__cloud--a {
    top: -15px;
    inset-inline-end: -60px;
    width: 65vw;
  }

  .lh-hero__cloud--b {
    top: 32%;
    inset-inline-start: -18%;
    width: 55vw;
  }

  .lh-hero__cloud--c {
    top: 54%;
    inset-inline-end: 8%;
    width: 80px;
  }

  .lh-hero__waves {
    height: 25%;
  }
}


/* ---------- SMALL MOBILE: 320px–400px ---------- */
@media (max-width: 400px) {

  .lh-hero__inner {
    padding-inline: 16px;
    padding-top: 36px;
    gap: 28px;
  }

  .lh-hero__title {
    font-size: clamp(2rem, 9.2vw, 2.5rem);
  }

  .lh-hero__text {
    font-size: 14px;
  }

  .lh-hero__btn {
    padding-inline: 14px;
  }

  .lh-hero__scene {
    aspect-ratio: 4 / 4.2;
    padding-inline: 5px;
  }

  .lh-hero__badge {
    inset-inline-start: -1%;
    bottom: 7%;
  }

  .lh-hero__badge-text small {
    display: none;
  }

  .lh-hero__sun {
    width: 48px;
  }

  .lh-hero__waves {
    height: 20%;
  }
}


/* ---------- LARGE DEVICES: 1025px–1280px ---------- */
@media (min-width: 1025px) and (max-width: 1280px) {

  .lh-hero__inner {
    padding-inline: clamp(28px, 3.5vw, 44px);
    gap: clamp(28px, 4vw, 48px);
  }

  .lh-hero__title {
    font-size: clamp(3.2rem, 5.2vw, 4.4rem);
  }

  .lh-hero__scene {
    height: 80%;
    margin-bottom: 4%;
    padding-inline-end: 8px;
  }

  .lh-hero__photo {
    height: 100%;
    aspect-ratio: 4 / 5;
  }

  .lh-hero__sun {
    width: clamp(64px, 6vw, 90px);
  }

  .lh-hero__badge {
    inset-inline-start: -5%;
  }
}


/* ---------- ACCESSIBILITY: REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {

  .lh-hero__btn {
    transition: none;
  }

  .lh-hero__btn--solid:hover {
    transform: none;
  }
}



/* ===== Home 1: About / Welcome ===== */
.lh-about {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--bg);
  font-family: var(--font-body);
}

/* background blobs */
.lh-about__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lh-about__blob {
  position: absolute; background: var(--blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-about__blob--a { top: -60px; inset-inline-start: -90px; width: min(38vw, 460px); aspect-ratio: 1.3 / 1; }
.lh-about__blob--b { bottom: -80px; inset-inline-end: -100px; width: min(44vw, 540px); aspect-ratio: 1.6 / 1; opacity: .8; }

/* layout */
.lh-about__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center; gap: clamp(40px, 6vw, 88px);
}

/* photo */
.lh-about__media {
  --lh-r: 32px;
  position: relative; width: 100%; max-width: 500px;
  aspect-ratio: 4 / 5; justify-self: center;
}
.lh-about__back,
.lh-about__frame {
  position: absolute; margin: 0;
  border-radius: var(--lh-r);
  border-start-start-radius: 140px;
}
.lh-about__back {
  inset-block: 22px -22px; inset-inline: -22px 22px;
  background: var(--heart); opacity: .5;
}
.lh-about__frame {
  inset: 0; overflow: hidden;
  border: 6px solid var(--photo-ring);
  background: var(--shade-strong);
  box-shadow: var(--shadow);
}
.lh-about__frame img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 30%;
  filter: var(--photo-filter);
}

.lh-about__badge {
  position: absolute; z-index: 2; inset-inline-end: -6%; bottom: 8%;
  display: flex; align-items: center; gap: 10px;
  padding-block: 10px; padding-inline: 10px 18px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 18px; box-shadow: var(--shadow);
}
.lh-about__badge-icon {
  width: 40px; height: 40px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--theme); color: var(--on-theme); font-size: 16px;
}
.lh-about__badge-text { display: flex; flex-direction: column; line-height: 1.25; text-align: start; }
.lh-about__badge-text strong { font-size: 14px; font-weight: 700; color: var(--text); }
.lh-about__badge-text small { font-size: 12px; font-weight: 600; color: var(--muted); }

/* text */
.lh-about__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-about__title {
  margin: 0 0 18px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--text);
}
.lh-about__title span { color: var(--theme); }
.lh-about__text {
  margin: 0 0 14px; max-width: 56ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--muted);
}

/* key points */
.lh-about__points {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px;
  margin: 28px 0 0; padding: 0; list-style: none;
}
.lh-about__point {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 16px; text-align: start;
  background: var(--surface); border: 1px solid var(--border); border-radius: 18px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.lh-about__point:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--theme); }
.lh-about__icon {
  width: 44px; height: 44px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--shade-strong); color: var(--theme); font-size: 17px;
}
.lh-about__point h3 {
  margin: 2px 0 4px;
  font-family: var(--font-heading); font-size: 16px; font-weight: 700; color: var(--text);
}
.lh-about__point p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--muted); }

/* button */
.lh-about__actions { margin-top: 30px; }
.lh-about__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  background: var(--theme); color: var(--on-theme);
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  box-shadow: 0 8px 20px var(--shade-strong);
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-about__btn i { font-size: 13px; transition: translate .2s ease; }
.lh-about__btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-about__btn:hover i { translate: 3px 0; }
.lh-about__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* =========================================================
   HOME 1 ABOUT / WELCOME — RESPONSIVE
   Mobile:        320px–767px
   Tablet:        768px–1024px
   Large devices: 1025px–1280px
   ========================================================= */

@media (min-width: 768px) and (max-width: 1024px) {
  .lh-about {
    padding-block: 72px;
  }

  .lh-about__inner {
    grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr);
    grid-template-rows: auto auto auto auto auto auto;
    column-gap: clamp(28px, 4vw, 44px);
    row-gap: 0;
    padding-inline: 28px;
  }

  /* Keep the image alongside the complete text block. */
  .lh-about__media {
    grid-column: 1;
    grid-row: 1 / 5;
    width: 100%;
    max-width: 420px;
    aspect-ratio: 4 / 5;
    align-self: center;
  }

  .lh-about__back {
    inset-block: 16px -16px;
    inset-inline: -16px 16px;
  }

  .lh-about__frame {
    border-width: 5px;
  }

  .lh-about__badge {
    inset-inline-end: -3%;
    bottom: 7%;
    gap: 8px;
    padding: 8px 12px 8px 8px;
    border-radius: 15px;
  }

  .lh-about__badge-icon {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }

  .lh-about__badge-text strong {
    font-size: 12px;
  }

  .lh-about__badge-text small {
    font-size: 11px;
  }

  /* Let the text, features, and CTA use the parent grid. */
  .lh-about__copy {
    display: contents;
  }

  .lh-about__eyebrow {
    grid-column: 2;
    grid-row: 1;
    justify-self: start;
    margin-bottom: 14px;
    padding: 7px 13px;
    font-size: 12px;
  }

  .lh-about__title {
    grid-column: 2;
    grid-row: 2;
    min-width: 0;
    font-size: clamp(2rem, 3.5vw, 2.65rem);
    line-height: 1.12;
    overflow-wrap: anywhere;
  }

  .lh-about__text {
    grid-column: 2;
    min-width: 0;
    font-size: 15px;
    line-height: 1.7;
    overflow-wrap: anywhere;
  }

  .lh-about__text:nth-of-type(1) {
    grid-row: 3;
  }

  .lh-about__text:nth-of-type(2) {
    grid-row: 4;
  }

  /* Full-width row below both top columns. */
  .lh-about__points {
    grid-column: 1 / -1;
    grid-row: 5;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 22px;
    min-width: 0;
  }

  .lh-about__point {
    min-width: 0;
    height: 100%;
    flex-direction: column;
    gap: 10px;
    padding: 13px;
    border-radius: 15px;
    overflow-wrap: anywhere;
  }

  .lh-about__icon {
    width: 38px;
    height: 38px;
    font-size: 15px;
  }

  .lh-about__point h3 {
    font-size: 15px;
  }

  .lh-about__point p {
    font-size: 13px;
  }

  /* Center the CTA across the whole section. */
  .lh-about__actions {
    grid-column: 1 / -1;
    grid-row: 6;
    justify-self: center;
    margin-top: 24px;
  }

  .lh-about__btn {
    height: 48px;
    padding-inline: 22px;
    font-size: 14px;
  }

  .lh-about__blob--a {
    width: 36vw;
  }

  .lh-about__blob--b {
    width: 38vw;
  }

  .lh-about__points {
  /* keep the existing declarations */
  margin-top: 40px;
}
}

/* ---------- MOBILE: 320px–767px ---------- */
@media (max-width: 767px) {

  .lh-about {
    padding-block: 56px 64px;
  }

  .lh-about__inner {
    grid-template-columns: minmax(0, 1fr);
    gap: 38px;
    padding-inline: 24px;
  }

  /* Image appears first */
  .lh-about__media {
    width: 100%;
    max-width: 440px;
    aspect-ratio: 4 / 4.2;
    justify-self: center;
  }

  .lh-about__back {
    inset-block: 14px -14px;
    inset-inline: -12px 12px;
    border-start-start-radius: 110px;
  }

  .lh-about__frame {
    border-width: 5px;
    border-start-start-radius: 110px;
  }

  .lh-about__frame img {
    object-position: 50% 30%;
  }

  .lh-about__badge {
    inset-inline-end: -2%;
    bottom: 7%;
    gap: 8px;
    padding-block: 8px;
    padding-inline: 8px 13px;
    border-radius: 14px;
  }

  .lh-about__badge-icon {
    width: 34px;
    height: 34px;
    font-size: 14px;
  }

  .lh-about__badge-text strong {
    font-size: 12px;
  }

  .lh-about__badge-text small {
    font-size: 10px;
  }

  /* Text */
  .lh-about__eyebrow {
    gap: 7px;
    margin-bottom: 14px;
    padding: 7px 12px;
    font-size: 11px;
  }

  .lh-about__title {
    margin-bottom: 16px;
    font-size: clamp(1.9rem, 7.5vw, 2.7rem);
    line-height: 1.12;
    letter-spacing: -0.025em;
    overflow-wrap: break-word;
  }

  .lh-about__text {
    margin-bottom: 13px;
    font-size: 15px;
    line-height: 1.75;
  }

  /* Feature points */
  .lh-about__points {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    margin-top: 24px;
  }

  .lh-about__point {
    gap: 13px;
    padding: 15px;
    border-radius: 16px;
    transition: box-shadow 0.2s ease, border-color 0.2s ease;
  }

  /* Avoid hover movement on touch screens */
  .lh-about__point:hover {
    transform: none;
  }

  .lh-about__icon {
    width: 40px;
    height: 40px;
    font-size: 16px;
  }

  .lh-about__point h3 {
    margin-top: 2px;
    font-size: 15px;
    line-height: 1.4;
  }

  .lh-about__point p {
    font-size: 13px;
    line-height: 1.65;
  }

  /* Button */
  .lh-about__actions {
    margin-top: 24px;
  }

  .lh-about__btn {
    width: 100%;
    min-height: 49px;
    height: auto;
    justify-content: center;
    padding: 13px 20px;
    font-size: 14px;
    white-space: normal;
    text-align: center;
  }

  /* Background blobs */
  .lh-about__blob--a {
    top: -25px;
    inset-inline-start: -65px;
    width: 58vw;
  }

  .lh-about__blob--b {
    bottom: -35px;
    inset-inline-end: -70px;
    width: 62vw;
  }
}


/* ---------- SMALL MOBILE: 320px–400px ---------- */
@media (max-width: 400px) {

  .lh-about {
    padding-block: 44px 52px;
  }

  .lh-about__inner {
    padding-inline: 20px;
    gap: 30px;
  }

  .lh-about__media {
    aspect-ratio: 4 / 4.3;
  }

  .lh-about__back {
    inset-block: 10px -10px;
    inset-inline: -9px 9px;
    border-start-start-radius: 88px;
  }

  .lh-about__frame {
    border-start-start-radius: 88px;
  }

  .lh-about__badge {
    inset-inline-end: -1%;
    bottom: 6%;
    gap: 7px;
    padding: 7px 10px 7px 7px;
  }

  .lh-about__badge-icon {
    width: 30px;
    height: 30px;
    font-size: 12px;
  }

  .lh-about__badge-text strong {
    font-size: 11px;
  }

  .lh-about__badge-text small {
    display: none;
  }

  .lh-about__title {
    font-size: clamp(1.75rem, 8vw, 2.1rem);
  }

  .lh-about__text {
    font-size: 14px;
  }

  .lh-about__point {
    gap: 11px;
    padding: 12px;
  }

  .lh-about__icon {
    width: 36px;
    height: 36px;
    font-size: 14px;
  }

  .lh-about__point h3 {
    font-size: 14px;
  }

  .lh-about__point p {
    font-size: 12px;
  }
}


/* ---------- LARGE DEVICES: 1025px–1280px ---------- */
@media (min-width: 1025px) and (max-width: 1280px) {

  .lh-about__inner {
    gap: clamp(36px, 5vw, 64px);
    padding-inline: clamp(28px, 3.5vw, 44px);
  }

  .lh-about__media {
    max-width: 460px;
  }

  .lh-about__title {
    font-size: clamp(2.5rem, 4vw, 3.2rem);
  }

  .lh-about__points {
    gap: 12px;
  }

  .lh-about__point {
    gap: 11px;
    padding: 14px;
  }

  .lh-about__icon {
    width: 40px;
    height: 40px;
  }

  .lh-about__badge {
    inset-inline-end: -4%;
  }
}


/* ---------- REDUCED MOTION ---------- */
@media (prefers-reduced-motion: reduce) {

  .lh-about__point,
  .lh-about__btn,
  .lh-about__btn i {
    transition: none;
  }

  .lh-about__point:hover,
  .lh-about__btn:hover {
    transform: none;
  }

  .lh-about__btn:hover i {
    translate: 0 0;
  }
}


/* ===== HOME 1: PROGRAMS ===== */

.lh-programs {
  position: relative;
  overflow: hidden;
  padding-block: clamp(48px, 6vw, 80px);
  background: var(--shade);
  font-family: var(--font-body);
}

.lh-programs__inner {
  width: 100%;
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* ===== HEADING ===== */

.lh-programs__head {
  max-width: 680px;
  margin: 0 auto clamp(28px, 4vw, 40px);
  text-align: center;
}

.lh-programs__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 12px;
  padding: 7px 14px;

  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--surface);
  color: var(--theme);

  font-size: 13px;
  font-weight: 700;
}

.lh-programs__title {
  margin: 0 0 12px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.2rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--text);
}

.lh-programs__title span {
  color: var(--theme);
}

.lh-programs__lead {
  max-width: 52ch;
  margin: 0 auto;
  font-size: clamp(0.95rem, 1.2vw, 1.05rem);
  line-height: 1.65;
  color: var(--muted);
}

/* ===== PROGRAM GRID ===== */

.lh-programs__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lh-programs__item {
  display: flex;
  min-width: 0;
}

/* ===== IMAGE CARD ===== */

.lh-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;

  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 360px;

  display: flex;
  flex-direction: column;
  justify-content: space-between;

  padding: 20px;
  text-align: start;

  background: var(--shade-strong);
  border: 1px solid var(--border);
  border-radius: 24px;
  color: var(--card-text);

  transition: border-color 0.25s ease;
}

/* No card movement or extra shadow on hover */
.lh-card:hover,
.lh-card:focus-within {
  transform: none;
  box-shadow: none;
  border-color: var(--border);
}

/* ===== BACKGROUND IMAGE ===== */

.lh-card__img {
  position: absolute;
  inset: 0;
  z-index: -2;

  display: block;
  width: 100%;
  height: 100%;

  object-fit: cover;
  object-position: 50% 30%;

  transform: scale(1);
  transition: transform 0.5s ease;
}

/* Only the image zooms */
.lh-card:hover .lh-card__img,
.lh-card:focus-within .lh-card__img {
  transform: scale(1.06);
}

/* ===== IMAGE OVERLAY ===== */

.lh-card__shade {
  position: absolute;
  inset: 0;
  z-index: -1;

  background: linear-gradient(
    180deg,
    var(--card-shade-from) 0%,
    var(--card-shade-mid) 45%,
    var(--card-shade-to) 100%
  );

  opacity: 1;
  transition: none;
}

/* ===== TOP: ICON + AGE TAG ===== */

.lh-card__top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;

  opacity: 1;
  transform: none;
  transition: none;
}

.lh-card__icon {
  width: 48px;
  height: 48px;
  flex: none;

  display: grid;
  place-items: center;

  border-radius: 15px;
  background: var(--card-glass);
  border: 1px solid var(--card-glass-line);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  color: var(--card-text);
  font-size: 20px;
  transition: none;
}

.lh-card:hover .lh-card__icon,
.lh-card:focus-within .lh-card__icon {
  background: var(--card-glass);
  color: var(--card-text);
  border-color: var(--card-glass-line);
}

.lh-card__tag {
  padding: 6px 12px;
  border-radius: 999px;

  background: var(--card-glass);
  border: 1px solid var(--card-glass-line);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);

  font-size: 12px;
  font-weight: 700;
  color: var(--card-text);
}

/* ===== BOTTOM: CONTENT ===== */

.lh-card__body {
  opacity: 1;
  transform: none;
  transition: none;
}

.lh-card__title {
  margin: 0 0 8px;
  font-family: var(--font-heading);
  font-size: clamp(19px, 1.7vw, 22px);
  font-weight: 700;
  line-height: 1.25;
  color: var(--card-text);
}

.lh-card__text {
  margin: 0 0 14px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--card-text-soft);
}

/* ===== LEARN MORE LINK ===== */

.lh-card__link {
  display: inline-flex;
  align-items: center;
  gap: 8px;

  padding-block: 4px;

  font-size: 14px;
  font-weight: 700;
  color: var(--card-text);
  text-decoration: none;

  border-bottom: 1.5px solid var(--card-glass-line);
}

.lh-card__link i {
  font-size: 12px;
  transition: none;
}

.lh-card__link:hover i {
  translate: 0 0;
}

.lh-card__link:focus-visible {
  outline: 3px solid var(--theme);
  outline-offset: 4px;
  border-radius: 8px;
}

/* ===== VIEW ALL BUTTON ===== */

.lh-programs__actions {
  margin-top: clamp(28px, 3.5vw, 40px);
  text-align: center;
}

.lh-programs__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;

  min-height: 48px;
  padding-inline: 26px;

  background: var(--theme);
  color: var(--on-theme);

  border: 1.5px solid var(--theme);
  border-radius: 999px;

  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;

  box-shadow: 0 8px 20px var(--shade-strong);

  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.lh-programs__btn i {
  font-size: 13px;
  transition: translate 0.2s ease;
}

.lh-programs__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 26px var(--shade-strong);
}

.lh-programs__btn:hover i {
  translate: 3px 0;
}

.lh-programs__btn:focus-visible {
  outline: 3px solid var(--theme);
  outline-offset: 3px;
}

/* ===== TABLET: 641px–1024px ===== */

@media (min-width: 641px) and (max-width: 1024px) {
  .lh-programs {
    padding-block: 56px 68px;
  }

  .lh-programs__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
  }

  .lh-card {
    height: 340px;
    padding: 18px;
    border-radius: 20px;
  }

  .lh-card__title {
    font-size: 20px;
  }

  .lh-card__text {
    font-size: 13px;
  }
}

/* ===== MOBILE: 320px–640px ===== */

@media (max-width: 640px) {
  .lh-programs {
    padding-block: 44px 56px;
  }

  .lh-programs__inner {
    padding-inline: 16px;
  }

  .lh-programs__head {
    margin-bottom: 28px;
  }

  .lh-programs__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .lh-card {
    height: 320px;
    padding: 17px;
    border-radius: 18px;
  }

  .lh-card__icon {
    width: 44px;
    height: 44px;
    font-size: 18px;
    border-radius: 13px;
  }

  .lh-card__tag {
    padding: 5px 10px;
    font-size: 11px;
  }

  .lh-card__title {
    font-size: 20px;
  }

  .lh-card__text {
    margin-bottom: 12px;
    font-size: 13px;
    line-height: 1.55;
  }

  .lh-card__link {
    font-size: 13px;
  }

  .lh-programs__btn {
    min-height: 46px;
    padding-inline: 22px;
    font-size: 13px;
  }
}

/* ===== SMALL MOBILE: 320px–380px ===== */

@media (max-width: 380px) {
  .lh-card {
    height: 300px;
    padding: 15px;
  }

  .lh-card__title {
    font-size: 18px;
  }

  .lh-card__text {
    font-size: 12px;
  }
}

/* ===== TOUCH DEVICES ===== */

@media (hover: none) {
  .lh-card:hover .lh-card__img,
  .lh-card:focus-within .lh-card__img {
    transform: scale(1);
  }
}

/* ===== REDUCED MOTION ===== */

@media (prefers-reduced-motion: reduce) {
  .lh-card,
  .lh-card__img,
  .lh-programs__btn,
  .lh-programs__btn i {
    transition: none;
  }

  .lh-programs__btn:hover {
    transform: none;
  }

  .lh-programs__btn:hover i {
    translate: 0 0;
  }
}


/* ===== Home 1: How it works ===== */
.lh-how {
  padding-block: clamp(40px, 6vw, 80px);
  background: var(--bg);
  font-family: var(--font-body);
}

.lh-how__band {
  position: relative; isolation: isolate; overflow: hidden;
  margin-inline: clamp(12px, 2vw, 28px);
  padding: clamp(56px, 8vw, 96px) clamp(16px, 3vw, 32px);
  border-radius: clamp(28px, 4vw, 56px);
  background: var(--band-bg); color: var(--band-text);
}

/* faint blobs */
.lh-how__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lh-how__blob {
  position: absolute; background: var(--band-blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-how__blob--a { top: -90px; inset-inline-start: -80px; width: min(40vw, 480px); aspect-ratio: 1.5 / 1; }
.lh-how__blob--b { bottom: -100px; inset-inline-end: -90px; width: min(44vw, 540px); aspect-ratio: 1.6 / 1; }

.lh-how__inner { position: relative; z-index: 1; max-width: 1216px; margin-inline: auto; }

/* heading */
.lh-how__head { max-width: 660px; margin: 0 auto clamp(40px, 6vw, 64px); text-align: center; }
.lh-how__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--band-line); border-radius: 999px;
  background: var(--band-blob); color: var(--band-accent);
  font-size: 13px; font-weight: 700;
}
.lh-how__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--band-text);
}
.lh-how__title span { color: var(--band-accent); }
.lh-how__lead {
  margin: 0 auto; max-width: 50ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--band-soft);
}

/* steps + path */
.lh-how__steps {
  position: relative; align-items: start;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0; padding: 0; list-style: none;
}
.lh-how__svg {
  position: absolute; top: 0; inset-inline: 0;
  width: 100%; height: 120px; overflow: visible;
  fill: none; stroke-linecap: round; pointer-events: none;
}
.lh-how__base { stroke: var(--band-line); stroke-width: 3; stroke-dasharray: 1 12; }
.lh-how__draw {
  stroke: var(--band-accent); stroke-width: 4;
  stroke-dasharray: 1; stroke-dashoffset: 1;
  transition: stroke-dashoffset 2.6s ease .2s;
}
.lh-how.is-in .lh-how__draw { stroke-dashoffset: 0; }

.lh-how__sun {
  position: absolute; top: 38px; inset-inline-end: -6px;
  width: 44px; height: 44px; overflow: visible; pointer-events: none;
  stroke: var(--band-accent); stroke-width: 2.5; stroke-linecap: round;
}
.lh-how__sun circle { fill: var(--sun); stroke: none; }

/* a step */
.lh-step { position: relative; padding: 0 12px; text-align: center; }
.lh-step:nth-of-type(odd)  { --y: 30px; padding-top: 112px; }
.lh-step:nth-of-type(even) { --y: 90px; padding-top: 172px; }

.lh-step__node {
  position: absolute; z-index: 1;
  top: calc(var(--y) - 36px);
  inset-inline-start: 50%; margin-inline-start: -36px;
  width: 72px; height: 72px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--band-node-bg); color: var(--band-node-fg); font-size: 28px;
  box-shadow: 0 0 0 8px var(--band-blob), 0 12px 24px rgba(0, 0, 0, .22);
  transition: transform .25s ease;
}
.lh-step:hover .lh-step__node { transform: scale(1.08); }

.lh-step__num {
  position: absolute; top: -4px; inset-inline-end: -4px;
  width: 28px; height: 28px; display: grid; place-items: center;
  border: 3px solid var(--band-bg); border-radius: 50%;
  background: var(--band-accent); color: var(--band-on-accent);
  font-family: var(--font-heading); font-size: 12px; font-weight: 700;
}

.lh-step__label {
  display: block; margin-bottom: 6px;
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase;
  color: var(--band-accent);
}
.lh-step__title {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 21px; font-weight: 700; line-height: 1.25;
  color: var(--band-text);
}
.lh-step__text { margin: 0 auto; max-width: 26ch; font-size: 15px; line-height: 1.6; color: var(--band-soft); }

/* button */
.lh-how__actions { margin-top: clamp(36px, 5vw, 56px); text-align: center; }
.lh-how__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  background: var(--band-accent); color: var(--band-on-accent);
  border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-how__btn i { font-size: 14px; }
.lh-how__btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0, 0, 0, .28); }
.lh-how__btn:focus-visible { outline: 3px solid var(--band-text); outline-offset: 3px; }

/* Tablet + mobile: vertical path */
@media (max-width: 1024px) {
  .lh-how__svg, .lh-how__sun { display: none; }

  .lh-how__steps {
    display: flex; flex-direction: column; gap: 30px;
    max-width: 620px; margin-inline: auto;
  }
  .lh-how__steps::before {
    content: ""; position: absolute; inset-block: 32px; inset-inline-start: 30px;
    border-inline-start: 3px dotted var(--band-line);
  }

  .lh-step,
  .lh-step:nth-of-type(odd),
  .lh-step:nth-of-type(even) {
    display: grid; grid-template-columns: 64px minmax(0, 1fr); align-items: start; column-gap: 20px;
    padding: 0; text-align: start;
  }
  .lh-step__node {
    position: relative; top: auto; inset-inline-start: auto; margin: 0;
    width: 64px; height: 64px; font-size: 24px;
  }
  .lh-step__num { width: 26px; height: 26px; }
  .lh-step__text { margin: 0; max-width: 46ch; }
}

@media (max-width: 600px) {
  .lh-step__title { font-size: 19px; }
  .lh-how__btn { height: 46px; padding-inline: 22px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-how__draw { stroke-dashoffset: 0; transition: none; }
  .lh-step__node, .lh-how__btn { transition: none; }
}



/* ===== Home 1: A day at Little Horizons ===== */
.lh-day {
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-day__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-day__head { max-width: 660px; margin: 0 auto clamp(36px, 5vw, 56px); text-align: center; }
.lh-day__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-day__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--text);
}
.lh-day__title span { color: var(--theme); }
.lh-day__lead {
  margin: 0 auto; max-width: 50ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--muted);
}

/* layout: two equal columns, equal height */
.lh-day__layout {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch; gap: clamp(20px, 3vw, 40px);
}

/* left: timeline card */
.lh-day__tabs {
  --p: 22px;
  position: relative;
  display: flex; flex-direction: column; justify-content: center;
  min-height: 580px; padding: var(--p);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 32px; box-shadow: var(--shadow);
}
/* dotted line through the icons (icon centre = 22 + 14 + 28 = 64px) */
.lh-day__tabs::before {
  content: ""; position: absolute;
  inset-inline-start: 63px;
  top: calc(var(--p) + (100% - 2 * var(--p)) / 10);
  bottom: calc(var(--p) + (100% - 2 * var(--p)) / 10);
  border-inline-start: 2px dashed var(--border);
}
.lh-day__tab {
  flex: 1; margin-block: 4px; padding: 8px 14px;
  display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: center; gap: 18px;
  text-align: start;
  background: transparent; border: 1px solid transparent; border-radius: 22px;
  font: inherit; color: var(--text); cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
.lh-day__tab:hover { background: var(--shade); }
.lh-day__tab:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }
.lh-day__tab[aria-selected="true"] { background: var(--shade); border-color: var(--theme); }

.lh-day__icon {
  position: relative; z-index: 1;
  width: 56px; height: 56px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--surface); border: 2px solid var(--border);
  color: var(--theme); font-size: 21px;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.lh-day__tab:hover .lh-day__icon { transform: scale(1.06); }
.lh-day__tab[aria-selected="true"] .lh-day__icon {
  background: var(--theme); color: var(--on-theme); border-color: var(--theme);
}
.lh-day__label { display: flex; flex-direction: column; gap: 3px; }
.lh-day__time { font-size: 13px; font-weight: 700; color: var(--theme); }
.lh-day__name { font-family: var(--font-heading); font-size: 21px; font-weight: 700; color: var(--text); }

/* right: stage, same height as the left card */
.lh-day__stage { display: grid; min-width: 0; }
.lh-day__panel {
  position: relative; grid-area: 1 / 1;
  opacity: 0; visibility: hidden;
  transition: opacity .45s ease, visibility 0s linear .45s;
}
.lh-day__panel.is-active { opacity: 1; visibility: visible; transition-delay: 0s; }
.lh-day__panel:focus-visible { outline: 3px solid var(--theme); outline-offset: 6px; border-radius: 32px; }

.lh-day__photo {
  position: absolute; inset: 0; margin: 0; overflow: hidden;
  border: 6px solid var(--photo-ring); border-radius: 32px;
  border-start-end-radius: 120px;
  background: var(--shade-strong); box-shadow: var(--shadow);
}
.lh-day__photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 35%;
  filter: var(--photo-filter);
  transform: scale(1.05); transition: transform .9s ease;
}
.lh-day__panel.is-active .lh-day__photo img { transform: scale(1); }

/* note card sits inside the bottom of the photo */
.lh-day__note {
  position: absolute; z-index: 2; inset-inline: 20px; bottom: 20px;
  padding: 22px 26px;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: 22px; box-shadow: var(--shadow);
  opacity: 0; transform: translateY(14px);
  transition: opacity .45s ease .1s, transform .45s ease .1s;
}
.lh-day__panel.is-active .lh-day__note { opacity: 1; transform: none; }

.lh-day__chip {
  display: inline-flex; align-items: center; gap: 6px;
  margin-bottom: 10px; padding: 5px 12px; border-radius: 999px;
  background: var(--shade-strong); color: var(--theme);
  font-size: 12px; font-weight: 700;
}
.lh-day__note h3 {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 22px; font-weight: 700; color: var(--text);
}
.lh-day__note p { margin: 0; font-size: 15.5px; line-height: 1.65; color: var(--muted); }

/* Tablet + mobile: swipeable tab strip, then photo */
@media (max-width: 1024px) {
  .lh-day__layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }

  .lh-day__tabs {
    min-height: 0; flex-direction: row; justify-content: flex-start; gap: 8px;
    margin-inline: calc(-1 * clamp(16px, 3vw, 32px));
    padding: 4px clamp(16px, 3vw, 32px) 8px;
    background: none; border: 0; border-radius: 0; box-shadow: none;
    overflow-x: auto; scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch; scrollbar-width: none;
  }
  .lh-day__tabs::-webkit-scrollbar { display: none; }
  .lh-day__tabs::before { display: none; }

  .lh-day__tab {
    flex: 1 1 0; width: 0; min-width: 0; margin-block: 0; padding: 12px 8px;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
    text-align: center;
    background: var(--surface); border-color: var(--border);
    scroll-snap-align: center;
  }
  .lh-day__tab[aria-selected="true"] { background: var(--shade); border-color: var(--theme); }
  .lh-day__icon { width: 44px; height: 44px; font-size: 18px; }
  .lh-day__label { align-items: center; }
  .lh-day__time { display: none; }
  .lh-day__name { font-size: 15px; line-height: 1.25; white-space: normal; overflow-wrap: anywhere; }

  .lh-day__photo { position: relative; inset: auto; aspect-ratio: 4 / 3; }
  .lh-day__note {
    position: relative; inset-inline: auto; bottom: auto;
    margin: -64px 24px 0;
  }
}

@media (max-width: 600px) {
  .lh-day__tabs { justify-content: flex-start; overflow-x: auto; scroll-snap-type: x mandatory; }
  .lh-day__tab { flex: 0 0 142px; width: 142px; min-width: 142px; min-height: 144px; padding: 12px 10px; }
  .lh-day__name { white-space: nowrap; overflow-wrap: normal; }
  .lh-day__photo { aspect-ratio: 5 / 4; border-width: 4px; border-radius: 22px; border-start-end-radius: 72px; }
  .lh-day__note { margin: -44px 14px 0; padding: 18px 20px; }
  .lh-day__note h3 { font-size: 20px; }
  .lh-day__note p { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-day__panel, .lh-day__note, .lh-day__photo img, .lh-day__tab, .lh-day__icon { transition: none; }
  .lh-day__photo img { transform: none; }
}


/* ===== Home 1: Parent FAQ ===== */
.lh-faq {
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--shade);
  font-family: var(--font-body);
}
.lh-faq__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start; gap: clamp(32px, 5vw, 72px);
}

/* left: heading + help card (stays in view on desktop) */
.lh-faq__side { position: sticky; top: 112px; }

.lh-faq__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-faq__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--text);
}
.lh-faq__title span { color: var(--theme); }
.lh-faq__lead {
  margin: 0 auto; max-width: 46ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--muted);
}

.lh-faq__help {
  position: relative; overflow: hidden; isolation: isolate;
  margin-top: 32px; padding: 28px;
  background: var(--band-bg); color: var(--band-text);
  border-radius: 28px;
}
.lh-faq__help::after {
  content: ""; position: absolute; z-index: -1;
  bottom: -70px; inset-inline-end: -50px; width: 220px; aspect-ratio: 1.4 / 1;
  background: var(--band-blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-faq__help-icon {
  width: 52px; height: 52px; margin-bottom: 16px;
  display: grid; place-items: center; border-radius: 16px;
  background: var(--band-node-bg); color: var(--band-node-fg); font-size: 21px;
}
.lh-faq__help h3 {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 22px; font-weight: 700; color: var(--band-text);
}
.lh-faq__help p { margin: 0 0 20px; max-width: 40ch; font-size: 15px; line-height: 1.6; color: var(--band-soft); }

.lh-faq__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 48px; padding-inline: 24px;
  background: var(--band-accent); color: var(--band-on-accent);
  border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-faq__btn i { font-size: 13px; transition: translate .2s ease; }
.lh-faq__btn:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(0, 0, 0, .25); }
.lh-faq__btn:hover i { translate: 3px 0; }
.lh-faq__btn:focus-visible { outline: 3px solid var(--band-text); outline-offset: 3px; }

/* right: accordion */
.lh-faq__list { display: flex; flex-direction: column; gap: 12px; min-width: 0; }

.lh-faq__item {
  background: var(--surface); border: 1px solid var(--border); border-radius: 22px;
  transition: border-color .25s ease, box-shadow .25s ease;
}
.lh-faq__item:hover { border-color: var(--theme); }
.lh-faq__item.is-open { border-color: var(--theme); box-shadow: var(--shadow); }

.lh-faq__h { margin: 0; }
.lh-faq__q {
  width: 100%; padding: 20px 22px;
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  background: none; border: 0; border-radius: 22px;
  font-family: var(--font-heading); font-size: 17px; font-weight: 700; line-height: 1.4;
  color: var(--text); text-align: start; cursor: pointer;
}
.lh-faq__q:focus-visible { outline: 3px solid var(--theme); outline-offset: 2px; }

.lh-faq__chev {
  width: 36px; height: 36px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--shade-strong); color: var(--theme); font-size: 13px;
  transition: transform .3s ease, background .25s ease, color .25s ease;
}
.lh-faq__item.is-open .lh-faq__chev { transform: rotate(180deg); background: var(--theme); color: var(--on-theme); }

/* smooth open / close */
.lh-faq__a {
  display: grid; grid-template-rows: 0fr; visibility: hidden;
  transition: grid-template-rows .35s ease, visibility 0s linear .35s;
}
.lh-faq__item.is-open .lh-faq__a { grid-template-rows: 1fr; visibility: visible; transition-delay: 0s; }
.lh-faq__a-in { overflow: hidden; }
.lh-faq__a-in p { margin: 0; padding: 0 22px 22px; max-width: 62ch; font-size: 15.5px; line-height: 1.7; color: var(--muted); }

/* Tablet + mobile: one column, help card last */
@media (max-width: 1024px) {
  .lh-faq__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .lh-faq__side { display: contents; }
  .lh-faq__head { order: 1; text-align: center; }
  .lh-faq__lead { margin-inline: auto; }
  .lh-faq__list { order: 2; max-width: 760px; width: 100%; margin-inline: auto; }
  .lh-faq__help { order: 3; max-width: 760px; width: 100%; margin: 8px auto 0; }
}

@media (max-width: 600px) {
  .lh-faq__q { padding: 16px 16px; font-size: 16px; }
  .lh-faq__a-in p { padding: 0 16px 18px; }
  .lh-faq__chev { width: 32px; height: 32px; }
  .lh-faq__help { padding: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-faq__item, .lh-faq__chev, .lh-faq__a, .lh-faq__btn, .lh-faq__btn i { transition: none; }
}



/* ===== Home 1: Parent stories ===== */
.lh-stories {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--bg);
  font-family: var(--font-body);
}

/* background blobs */
.lh-stories__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lh-stories__blob {
  position: absolute; background: var(--blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-stories__blob--a { top: -70px; inset-inline-end: -90px; width: min(42vw, 520px); aspect-ratio: 1.5 / 1; }
.lh-stories__blob--b { bottom: -80px; inset-inline-start: -100px; width: min(40vw, 480px); aspect-ratio: 1.5 / 1; opacity: .8; }

.lh-stories__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* heading */
.lh-stories__head { max-width: 640px; margin: 0 auto; text-align: center; }
.lh-stories__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-stories__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--text);
}
.lh-stories__title span { color: var(--theme); }
.lh-stories__lead {
  margin: 0 auto; max-width: 48ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--muted);
}

/* slider */
.lh-stories__slider { max-width: 860px; margin: clamp(72px, 8vw, 88px) auto 0; }
.lh-stories__stage { display: grid; }

.lh-story {
  grid-area: 1 / 1; position: relative; margin: 0;
  padding: 68px clamp(22px, 5vw, 64px) clamp(28px, 4vw, 44px);
  text-align: center;
  background: var(--surface); border: 1px solid var(--border); border-radius: 36px;
  box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
}
.lh-story.is-active { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }

/* round photo overlapping the card */
.lh-story__top {
  position: absolute; top: -48px;
  inset-inline-start: 50%; margin-inline-start: -48px;
  width: 96px; height: 96px;
}
.lh-story__avatar {
  display: block; width: 100%; height: 100%;
  object-fit: cover; border-radius: 50%;
  border: 5px solid var(--photo-ring);
  background: var(--shade-strong); box-shadow: var(--shadow);
  filter: var(--photo-filter);
}
.lh-story__badge {
  position: absolute; bottom: -2px; inset-inline-end: -6px;
  width: 36px; height: 36px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--theme); color: var(--on-theme); font-size: 13px;
  border: 3px solid var(--surface);
}

.lh-story__quote { margin: 0 0 26px; }
.lh-story__quote p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.2rem, 2.3vw, 1.6rem);
  font-weight: 500; line-height: 1.5; color: var(--text);
}

.lh-story__cap {
  display: inline-block; min-width: 220px; padding-top: 18px;
  border-top: 2px dashed var(--border);
}
.lh-story__name { display: block; font-family: var(--font-heading); font-size: 17px; font-weight: 700; color: var(--text); }
.lh-story__role { display: block; margin-top: 2px; font-size: 14px; color: var(--muted); }

/* controls */
.lh-stories__controls {
  display: flex; align-items: center; justify-content: center; gap: 16px;
  margin-top: 28px;
}
.lh-stories__arrow {
  width: 48px; height: 48px;
  display: grid; place-items: center;
  background: var(--surface); border: 1px solid var(--border); border-radius: 50%;
  color: var(--theme); font-size: 15px; cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.lh-stories__arrow:hover { background: var(--theme); color: var(--on-theme); border-color: var(--theme); transform: translateY(-2px); }
.lh-stories__arrow:focus-visible,
.lh-stories__dot:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

.lh-stories__dots { display: flex; align-items: center; gap: 2px; }
.lh-stories__dot {
  width: 28px; height: 28px; padding: 0;
  display: grid; place-items: center;
  background: none; border: 0; border-radius: 50%; cursor: pointer;
}
.lh-stories__dot::before {
  content: ""; width: 12px; height: 12px; border-radius: 999px;
  background: var(--border);
  transition: width .3s ease, background .3s ease;
}
.lh-stories__dot:hover::before { background: var(--muted); }
.lh-stories__dot[aria-current="true"]::before { width: 28px; background: var(--theme); }

@media (max-width: 600px) {
  .lh-story { padding-top: 64px; border-radius: 28px; }
  .lh-story__top { top: -44px; margin-inline-start: -44px; width: 88px; height: 88px; }
  .lh-stories__slider { margin-top: 68px; }
  .lh-story__cap { min-width: 0; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-story, .lh-stories__arrow, .lh-stories__dot::before { transition: none; }
}



/* ===== Home 1: Final CTA ===== */
.lh-cta {
  padding-block: clamp(32px, 4vw, 56px) clamp(40px, 5vw, 68px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-cta__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

.lh-cta__card {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(40px, 5vw, 64px) clamp(20px, 5vw, 64px) clamp(110px, 13vw, 160px);
  text-align: center;
  background: var(--shade); border: 1px solid var(--border);
  border-radius: clamp(28px, 4vw, 48px);
}

/* background */
.lh-cta__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }

.lh-cta__cloud {
  position: absolute; background: var(--surface); opacity: .8;
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-cta__cloud--a { top: 18%; inset-inline-start: 6%; width: clamp(90px, 14vw, 190px); aspect-ratio: 2 / 1; }
.lh-cta__cloud--b { top: 48%; inset-inline-end: 4%; width: clamp(80px, 11vw, 150px); aspect-ratio: 2 / 1; opacity: .65; }

.lh-cta__sun {
  position: absolute; top: clamp(18px, 4vw, 44px); inset-inline-end: clamp(24px, 8vw, 120px);
  width: clamp(64px, 8vw, 110px); height: auto; overflow: visible;
  fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
.lh-cta__sun circle { fill: var(--sun); }

.lh-cta__waves {
  position: absolute; inset-inline: 0; bottom: -1px;
  width: 100%; height: clamp(110px, 14vw, 170px);
}
.lh-cta__w1 { fill: var(--wave-1); }
.lh-cta__w0 { fill: var(--wave-0); }
.lh-cta__w2 { fill: var(--wave-2); }

/* content */
.lh-cta__content { position: relative; z-index: 2; max-width: 720px; margin-inline: auto; }

.lh-cta__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-cta__title {
  margin: 0 0 18px;
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 5.2vw, 4rem);
  font-weight: 500; line-height: 1.06; letter-spacing: -.03em;
  color: var(--text);
}
.lh-cta__title span { color: var(--theme); }
.lh-cta__text {
  margin: 0 auto 30px; max-width: 50ch;
  font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.65; color: var(--muted);
}

.lh-cta__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.lh-cta__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.lh-cta__btn i { font-size: 14px; }
.lh-cta__btn--solid { background: var(--theme); color: var(--on-theme); box-shadow: 0 8px 20px var(--shade-strong); }
.lh-cta__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-cta__btn--ghost { background: var(--surface); color: var(--theme); }
.lh-cta__btn--ghost:hover { background: var(--shade-strong); transform: translateY(-2px); }
.lh-cta__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

.lh-cta__trust {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 24px;
  margin: 30px 0 0; padding: 0; list-style: none;
}
.lh-cta__trust li { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--muted); }
.lh-cta__trust i { color: var(--theme); }

/* Tablet + mobile */
@media (max-width: 1024px) {
  .lh-cta__cloud--b { display: none; }
}

@media (max-width: 600px) {
  .lh-cta__cloud--a { top: 30%; opacity: .6; }
  .lh-cta__actions { flex-direction: column; align-items: stretch; }
  .lh-cta__btn { justify-content: center; height: 48px; font-size: 14px; }
  .lh-cta__trust { flex-direction: column; align-items: center; gap: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-cta__btn { transition: none; }
}

/* ===== Footer ===== */
.lh-footer {
  --band-bg: var(--bg);
  --band-text: var(--text);
  --band-soft: var(--muted);
  --band-line: var(--border);
  --band-accent: var(--theme);
  --band-on-accent: var(--on-theme);
  --band-node-bg: var(--logo-bg);
  --band-node-fg: var(--logo-fg);
  --band-blob: var(--shade-strong);
  position: relative;
  background: var(--band-bg); color: var(--band-text);
  font-family: var(--font-body);
}

/* wave on top, in the footer colour */
.lh-footer__wave {
  position: absolute; bottom: 100%; inset-inline: 0;
  width: 100%; height: clamp(40px, 6vw, 90px);
  display: block; fill: var(--band-bg); pointer-events: none;
}

/* faint blobs */
.lh-footer__bg { position: absolute; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.lh-footer__blob {
  position: absolute; background: var(--band-blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-footer__blob--a { top: -60px; inset-inline-end: -80px; width: min(40vw, 460px); aspect-ratio: 1.5 / 1; }
.lh-footer__blob--b { bottom: 40px; inset-inline-start: -100px; width: min(36vw, 400px); aspect-ratio: 1.4 / 1; }

.lh-footer__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding: clamp(48px, 6vw, 80px) clamp(16px, 3vw, 32px) 0;
}

.lh-footer__grid {
  display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr;
  gap: clamp(28px, 4vw, 56px);
}

/* Keep footer brand colors matched to the navbar brand. */
.lh-footer .lh-brand { color: var(--text); }
.lh-footer .lh-brand__mark { background: var(--logo-bg); color: var(--logo-fg); }
.lh-footer .lh-brand__name span { color: var(--theme); }
.lh-footer .lh-brand__tag { color: var(--muted); }
.lh-footer .lh-brand:focus-visible { outline: 3px solid var(--band-text); outline-offset: 4px; border-radius: 12px; }

.lh-footer__about { margin: 18px 0 22px; max-width: 34ch; font-size: 15px; line-height: 1.7; color: var(--band-soft); }

.lh-footer__social { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.lh-footer__social a {
  width: 42px; height: 42px;
  display: grid; place-items: center;
  border: 1px solid var(--band-line); border-radius: 50%;
  color: var(--band-text); font-size: 15px; text-decoration: none;
  transition: background .2s ease, color .2s ease, border-color .2s ease, transform .2s ease;
}
.lh-footer__social a:hover { background: var(--band-accent); color: var(--band-on-accent); border-color: var(--band-accent); transform: translateY(-3px); }

/* columns */
.lh-footer__title {
  position: relative; margin: 0 0 22px; padding-bottom: 14px;
  font-family: var(--font-heading); font-size: 18px; font-weight: 700; color: var(--band-text);
}
.lh-footer__title::after {
  content: ""; position: absolute; bottom: 0; inset-inline-start: 0;
  width: 34px; height: 3px; border-radius: 3px; background: var(--band-accent);
}

.lh-footer__list { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 0; list-style: none; }
.lh-footer__list a,
.lh-footer__legal a {
  display: inline-block;
  font-size: 15px; color: var(--band-soft); text-decoration: none;
  transition: color .2s ease, transform .2s ease;
}
.lh-footer__list a:hover { color: var(--band-accent); transform: translateX(4px); }
[dir="rtl"] .lh-footer__list a:hover { transform: translateX(-4px); }

/* contact */
.lh-footer__contact { display: flex; flex-direction: column; gap: 16px; margin: 0; padding: 0; list-style: none; }
.lh-footer__contact li {
  display: grid; grid-template-columns: 38px minmax(0, 1fr); align-items: center; gap: 14px;
  font-size: 15px; line-height: 1.5; color: var(--band-soft);
}
.lh-footer__contact a { color: var(--band-soft); text-decoration: none; word-break: break-word; transition: color .2s ease; }
.lh-footer__contact a:hover { color: var(--band-accent); }
.lh-footer__ico {
  width: 38px; height: 38px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--band-blob); border: 1px solid var(--band-line);
  color: var(--band-accent); font-size: 14px;
}

/* focus */
.lh-footer a:focus-visible { outline: 3px solid var(--band-text); outline-offset: 3px; border-radius: 6px; }

/* bottom bar */
.lh-footer__bar {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 14px 24px;
  margin-top: clamp(36px, 5vw, 56px); padding-block: 22px;
  border-top: 1px dashed var(--band-line);
}
.lh-footer__copy { margin: 0; font-size: 14px; color: var(--band-soft); }
.lh-footer__legal { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 0; padding: 0; list-style: none; }
.lh-footer__legal a { font-size: 14px; }
.lh-footer__legal a:hover { color: var(--band-accent); }


/* Tablet */
@media (max-width: 1024px) {
  .lh-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lh-footer__brand { grid-column: 1 / -1; }
  .lh-footer__about { max-width: 52ch; }
}

/* Mobile */
@media (max-width: 600px) {
  .lh-footer__grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .lh-footer__bar { flex-direction: column; text-align: center; }
  .lh-footer__legal { justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-footer a { transition: none; }
}

/* ===== Back to top ===== */
.lh-top {
  position: fixed; z-index: 900;
  inset-inline-end: 24px;
  inset-block-end: max(24px, env(safe-area-inset-bottom));
  width: 44px; height: 44px;
  display: grid; place-items: center;
  background: var(--theme);
  border: 1px solid var(--theme); border-radius: 50%;
  color: var(--on-theme); text-decoration: none;
  box-shadow: 0 4px 12px rgba(20, 40, 30, .18);
  opacity: 0; visibility: hidden; transform: translateY(14px);
  transition: opacity .3s ease, transform .3s ease, box-shadow .2s ease, visibility 0s linear .3s;
}
.lh-top.is-visible {
  opacity: 1; visibility: visible; transform: none;
  transition-delay: 0s;
}

/* simple arrow inside the green button */
.lh-top__disc {
  width: 100%; height: 100%;
  display: grid; place-items: center;
  background: transparent; color: var(--on-theme);
  border-radius: 50%;
  font-size: 16px;
}
.lh-top__disc i { transition: translate .2s ease; }

.lh-top:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(20, 40, 30, .22); }
.lh-top:hover .lh-top__disc i { translate: 0 -2px; }
.lh-top:focus-visible { outline: 3px solid var(--theme); outline-offset: 5px; }

@media (max-width: 767px) {
  .lh-top {
    width: 44px; height: 44px;
    inset-inline-end: 16px;
    inset-block-end: max(16px, env(safe-area-inset-bottom));
  }
  .lh-top__disc { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-top, .lh-top__disc i { transition: none; }
  .lh-top:hover { transform: none; }
}





/* ===== Home 2: Video hero ===== */
.lh-vhero {
  --vh-wave: clamp(50px, 7vw, 96px);
  position: relative; isolation: isolate; overflow: hidden;
  height: calc(100vh - 80px);
  height: calc(100svh - 80px);
  min-height: 640px;
  background: var(--vhero-dark);
  color: var(--vhero-ink);
  font-family: var(--font-body);
}

/* video + overlay */
.lh-vhero__media { position: absolute; inset: 0; z-index: 0; }
.lh-vhero__video { display: block; width: 100%; height: 100%; object-fit: cover; }
.lh-vhero__overlay {
  position: absolute; inset: 0;
  background:
    linear-gradient(to right, var(--vhero-overlay-a) 0%, var(--vhero-overlay-b) 45%, var(--vhero-overlay-c) 100%),
    linear-gradient(to top, rgba(13, 27, 20, .55), transparent 40%);
}

/* layout: copy centered in the free space, strip above the wave */
.lh-vhero__inner {
  position: relative; z-index: 2; height: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  padding-block-start: 24px;
  padding-block-end: calc(var(--vh-wave) + 24px);
  display: grid; grid-template-rows: minmax(0, 1fr) auto; gap: 20px;
}
.lh-vhero__copy { align-self: center; max-width: 760px; }

.lh-vhero__eyebrow {
  width: fit-content;
  display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--vhero-glass-line); border-radius: 999px;
  background: var(--vhero-glass); color: var(--vhero-ink);
  font-size: 13px; font-weight: 700;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.lh-vhero__eyebrow i { color: var(--vhero-accent); }

.lh-vhero__title {
  margin: 0 0 18px;
  font-family: var(--font-heading);
  font-size: clamp(2.4rem, 4.8vw, 4.1rem);
  font-weight: 500; line-height: 1.06; letter-spacing: -.03em;
  text-wrap: balance;
  color: var(--vhero-ink);
  text-shadow: 0 2px 18px rgba(0, 0, 0, .3);
}
.lh-vhero__title span { color: var(--vhero-accent); }

.lh-vhero__text {
  margin: 0 0 26px; max-width: 50ch;
  font-size: clamp(1rem, 1.35vw, 1.15rem); line-height: 1.65;
  text-wrap: pretty;
  color: var(--vhero-soft);
  text-shadow: 0 1px 10px rgba(0, 0, 0, .3);
}
.lh-vhero__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.lh-vhero__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 52px; padding-inline: 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.lh-vhero__btn i { font-size: 13px; }
.lh-vhero__btn--solid {
  background: var(--vhero-accent); color: var(--vhero-dark);
  border: 1.5px solid var(--vhero-accent);
  box-shadow: 0 8px 22px rgba(0, 0, 0, .3);
}
.lh-vhero__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, .38); }
.lh-vhero__btn--glass {
  background: var(--vhero-glass); color: var(--vhero-ink);
  border: 1.5px solid var(--vhero-glass-line);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.lh-vhero__btn--glass:hover { background: rgba(255, 255, 255, .22); }
.lh-vhero__btn:focus-visible,
.lh-vhero__toggle:focus-visible { outline: 3px solid var(--vhero-ink); outline-offset: 3px; }

/* journey strip */
.lh-vhero__journey {
  width: fit-content; max-width: 100%;
  display: flex; margin: 0; padding: 8px; list-style: none;
  border: 1px solid var(--vhero-glass-line); border-radius: 999px;
  background: var(--vhero-glass);
  backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px);
}
.lh-vhero__journey li {
  display: flex; align-items: center; gap: 12px;
  padding-block: 4px; padding-inline: 6px 22px;
}
.lh-vhero__journey li + li {
  padding-inline-start: 22px;
  border-inline-start: 1px solid var(--vhero-glass-line);
}
.lh-vhero__num {
  width: 36px; height: 36px; flex: none; display: grid; place-items: center;
  border-radius: 50%; background: var(--vhero-accent); color: var(--vhero-dark);
  font-size: 14px; font-weight: 700;
}
.lh-vhero__j { display: flex; flex-direction: column; line-height: 1.25; }
.lh-vhero__j strong { font-size: 14px; font-weight: 700; }
.lh-vhero__j small { font-size: 12px; color: var(--vhero-soft); }

/* pause / play: same baseline as the strip, same right edge as the page container */
.lh-vhero__toggle {
  position: absolute; z-index: 3;
  inset-inline-end: max(clamp(16px, 3vw, 32px), calc((100% - 1280px) / 2 + clamp(16px, 3vw, 32px)));
  inset-block-end: calc(var(--vh-wave) + 27px);
  width: 48px; height: 48px; display: grid; place-items: center;
  border: 1px solid var(--vhero-glass-line); border-radius: 50%;
  background: var(--vhero-glass); color: var(--vhero-ink);
  font-size: 15px; cursor: pointer;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  transition: background .2s ease, transform .2s ease;
}
.lh-vhero__toggle:hover { background: rgba(255, 255, 255, .24); transform: translateY(-2px); }
.lh-vhero__toggle .fa-play { display: none; margin-inline-start: 2px; }
.lh-vhero__toggle.is-paused .fa-pause { display: none; }
.lh-vhero__toggle.is-paused .fa-play { display: inline; }

/* scroll cue: round button sitting on the wave, bottom center */
.lh-vhero__cue {
  position: absolute; z-index: 3; left: 50%; translate: -50% 0; bottom: 14px;
  width: 46px; height: 46px; display: none; place-items: center;
  border-radius: 50%; background: var(--theme); color: var(--on-theme);
  font-size: 15px; text-decoration: none;
  box-shadow: 0 0 0 4px var(--bg), 0 8px 20px var(--shade-strong);
}
.lh-vhero__cue:focus-visible { outline: 3px solid var(--theme); outline-offset: 7px; }

/* wave (below the content, above the video) */
.lh-vhero__wave {
  position: absolute; z-index: 1; inset-inline: 0; bottom: -1px;
  width: 100%; height: var(--vh-wave); fill: var(--bg);
}

@media (min-width: 768px) { .lh-vhero__cue { display: grid; } }

/* Tablet + mobile */
@media (max-width: 1024px) {
  .lh-vhero { height: calc(100vh - 68px); height: calc(100svh - 68px); }
}

@media (max-width: 767px) {
  .lh-vhero__inner { padding-block-end: calc(var(--vh-wave) + 16px); }
  .lh-vhero__title { font-size: clamp(2.1rem, 9vw, 2.7rem); margin-bottom: 14px; }
  .lh-vhero__eyebrow { margin-bottom: 14px; font-size: 12px; }
  .lh-vhero__text { margin-bottom: 20px; font-size: 1rem; }
  .lh-vhero__btn { height: 46px; padding-inline: 20px; font-size: 14px; }

  .lh-vhero__journey { width: 100%; justify-content: space-between; border-radius: 22px; }
  .lh-vhero__journey li { gap: 8px; padding-inline: 4px 8px; }
  .lh-vhero__journey li + li { padding-inline-start: 10px; }
  .lh-vhero__num { width: 30px; height: 30px; font-size: 13px; }
  .lh-vhero__j small { display: none; }

  .lh-vhero__toggle { width: 44px; height: 44px; inset-inline-end: 16px; inset-block-end: auto; inset-block-start: 16px; }
}

@media (max-width: 380px) {
  .lh-vhero__journey { padding: 6px; }
  .lh-vhero__journey li { flex: 1 1 0; min-width: 0; gap: 5px; padding-inline: 2px 4px; }
  .lh-vhero__journey li + li { padding-inline-start: 5px; }
  .lh-vhero__num { width: 26px; height: 26px; font-size: 12px; }
  .lh-vhero__j strong { font-size: 12px; white-space: nowrap; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-vhero *, .lh-vhero { transition: none !important; }
}



/* ===== Home 2: Bento ===== */
.lh-bento {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-bento__bg { display: none; }
.lh-bento__blob { position: absolute; background: var(--blob); border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%; }
.lh-bento__blob--a { top: -90px; inset-inline-end: -120px; width: min(46vw, 560px); aspect-ratio: 1.3 / 1; }
.lh-bento__blob--b { bottom: -80px; inset-inline-start: -100px; width: min(40vw, 460px); aspect-ratio: 1.4 / 1; opacity: .8; }

.lh-bento__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-bento__head {
  display: grid; grid-template-columns: minmax(0, 1fr);
  justify-items: center; gap: 20px;
  margin-bottom: clamp(28px, 5vw, 52px);
  text-align: center;
}
.lh-bento__headL { display: grid; justify-items: center; }
.lh-bento__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-bento__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-bento__title span { color: var(--theme); }
.lh-bento__lead { margin: 0 auto; max-width: 46ch; text-align: center; font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--muted); }

/* grid */
.lh-bento__grid {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: minmax(200px, auto); gap: 20px;
  margin: 0; padding: 0; list-style: none;
}
.lh-bento__item { min-width: 0; }
.lh-bento__item--photo { grid-column: span 2; grid-row: span 2; }
.lh-bento__item--wide { grid-column: span 2; }

/* tiles (hover lives on the inner article so it doesn't fight AOS) */
.lh-bento__tile {
  position: relative; isolation: isolate; overflow: hidden;
  height: 100%; display: flex; flex-direction: column; gap: 12px;
  padding: 26px;
  background: var(--surface);
  border: 1px solid var(--border); border-radius: 28px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lh-bento__tile:hover { transform: translateY(-4px); border-color: var(--theme); box-shadow: var(--shadow); }

.lh-bento__icon {
  width: 52px; height: 52px; flex: none; display: grid; place-items: center;
  border-radius: 16px; background: var(--shade-strong); color: var(--theme); font-size: 20px;
}
.lh-bento__tile h3 {
  margin: 0; font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1.6vw, 1.35rem); font-weight: 600; line-height: 1.2; color: var(--text);
}
.lh-bento__tile p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--muted); }

/* big faint icon behind the text */
.lh-bento__ghost {
  position: absolute; z-index: -1;
  inset-inline-end: -14px; inset-block-end: -18px;
  font-size: clamp(90px, 10vw, 130px); color: var(--theme); opacity: .08;
  transform: rotate(-10deg); transition: transform .4s ease;
}
.lh-bento__tile:hover .lh-bento__ghost { transform: rotate(-4deg) scale(1.06); }

/* wide row tile */
.lh-bento__tile--row { flex-direction: row; align-items: flex-start; gap: 20px; }
.lh-bento__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.lh-bento__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 6px 0 0; padding: 0; list-style: none; }
.lh-bento__chips li {
  padding: 6px 14px; border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme); font-size: 13px; font-weight: 700;
}

/* photo tile */
.lh-bento__tile--photo {
  padding: 0; justify-content: flex-end;
  background: var(--band-bg); border-color: transparent; color: var(--card-text);
}
.lh-bento__photo {
  position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%;
  object-fit: cover; filter: var(--photo-filter);
  transition: transform .6s ease;
}
.lh-bento__tile--photo::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(to top, var(--card-shade-to) 0%, var(--card-shade-mid) 45%, var(--card-shade-from) 100%);
}
.lh-bento__tile--photo:hover { border-color: transparent; }
.lh-bento__tile--photo:hover .lh-bento__photo { transform: scale(1.05); }
.lh-bento__label {
  position: absolute; inset-block-start: 20px; inset-inline-start: 20px;
  display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px;
  border: 1px solid var(--card-glass-line); border-radius: 999px;
  background: var(--card-glass); color: var(--card-text);
  font-size: 13px; font-weight: 700;
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
}
.lh-bento__cover { display: flex; flex-direction: column; gap: 10px; padding: 26px; }
.lh-bento__tile--photo h3 { color: var(--card-text); font-size: clamp(1.4rem, 2.4vw, 2rem); }
.lh-bento__tile--photo p { color: var(--card-text-soft); max-width: 42ch; }

/* accent tile */
.lh-bento__tile--accent {
  justify-content: space-between; gap: 20px;
  background: var(--band-bg); border-color: transparent; color: var(--band-text);
}
.lh-bento__tile--accent::after {
  content: ""; position: absolute; z-index: -1;
  inset-inline-end: -60px; inset-block-start: -60px;
  width: 220px; height: 220px; border-radius: 50%; background: var(--band-blob);
}
.lh-bento__tile--accent:hover { border-color: transparent; }
.lh-bento__tile--accent h3 { color: var(--band-text); font-size: clamp(1.3rem, 2.2vw, 1.8rem); max-width: 22ch; }
.lh-bento__tile--accent p { color: var(--band-soft); margin-top: 10px; max-width: 40ch; }

.lh-bento__btn {
  align-self: flex-start;
  display: inline-flex; align-items: center; gap: 10px;
  height: 48px; padding-inline: 24px; border-radius: 999px;
  background: var(--band-accent); color: var(--band-on-accent);
  font-size: 15px; font-weight: 700; text-decoration: none;
  box-shadow: 0 8px 20px rgba(0, 0, 0, .2);
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-bento__btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(0, 0, 0, .28); }
.lh-bento__btn:focus-visible { outline: 3px solid var(--band-text); outline-offset: 3px; }

/* Tablet: 2 columns */
@media (max-width: 1024px) {
  .lh-bento__head { grid-template-columns: 1fr; align-items: start; }
  .lh-bento__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lh-bento__item--photo { grid-column: span 2; grid-row: span 1; }
  .lh-bento__tile--photo { min-height: 380px; }
}

/* Mobile: 1 column */
@media (max-width: 767px) {
  .lh-bento__grid { grid-template-columns: minmax(0, 1fr); grid-auto-rows: auto; gap: 16px; }
  .lh-bento__item--photo, .lh-bento__item--wide { grid-column: auto; }
  .lh-bento__tile { padding: 22px; border-radius: 24px; }
  .lh-bento__tile--photo { min-height: 340px; padding: 0; }
  .lh-bento__cover { padding: 22px; }
  .lh-bento__tile--row { flex-direction: column; gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-bento__tile, .lh-bento__ghost, .lh-bento__photo, .lh-bento__btn { transition: none; }
  .lh-bento__tile:hover, .lh-bento__btn:hover { transform: none; }
  .lh-bento__tile:hover .lh-bento__photo, .lh-bento__tile:hover .lh-bento__ghost { transform: none; }
}



/* ===== The assessment day ===== */
.lh-assess {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--bg);
  font-family: var(--font-body);
}

/* blobs */
.lh-assess__bg { position: absolute; inset: 0; z-index: 0; pointer-events: none; }
.lh-assess__blob {
  position: absolute; background: var(--blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-assess__blob--a { top: -70px; inset-inline-start: -90px; width: min(40vw, 480px); aspect-ratio: 1.5 / 1; }
.lh-assess__blob--b { bottom: -80px; inset-inline-end: -100px; width: min(42vw, 520px); aspect-ratio: 1.5 / 1; opacity: .8; }

.lh-assess__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-assess__head { max-width: 660px; margin: 0 auto clamp(40px, 6vw, 64px); text-align: center; }
.lh-assess__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-assess__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.4vw, 3.2rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.02em;
  color: var(--text);
}
.lh-assess__title span { color: var(--theme); }
.lh-assess__lead {
  margin: 0 auto; max-width: 50ch;
  font-size: clamp(1rem, 1.3vw, 1.08rem); line-height: 1.7; color: var(--muted);
}

/* horizontal timeline */
.lh-assess__list {
  position: relative;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 0 clamp(10px, 1.6vw, 22px);
  margin: 0; padding: 0; list-style: none;
}
.lh-assess__list::before,
.lh-assess__list::after {
  content: ""; position: absolute; top: 26.5px; inset-inline: 10%; z-index: 0;
}
.lh-assess__list::before { border-top: 3px dashed var(--border); }
.lh-assess__list::after {
  height: 3px; border-radius: 3px; background: var(--theme);
  transform: scaleX(0); transform-origin: left center;
  transition: transform 2.4s ease .2s;
}
.lh-assess.is-in .lh-assess__list::after { transform: scaleX(1); }

.lh-assess__item { position: relative; z-index: 1; text-align: center; }

.lh-assess__node {
  position: relative; z-index: 2;
  width: 56px; height: 56px; margin: 0 auto 24px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--surface); border: 3px solid var(--theme); color: var(--theme);
  font-size: 21px; box-shadow: 0 0 0 6px var(--bg);
  transition: background .35s ease, color .35s ease;
}
.lh-assess.is-in .lh-assess__node { background: var(--theme); color: var(--on-theme); }
.lh-assess.is-in .lh-assess__item:nth-child(1) .lh-assess__node { transition-delay: .2s; }
.lh-assess.is-in .lh-assess__item:nth-child(2) .lh-assess__node { transition-delay: .75s; }
.lh-assess.is-in .lh-assess__item:nth-child(3) .lh-assess__node { transition-delay: 1.3s; }
.lh-assess.is-in .lh-assess__item:nth-child(4) .lh-assess__node { transition-delay: 1.85s; }
.lh-assess.is-in .lh-assess__item:nth-child(5) .lh-assess__node { transition-delay: 2.4s; }

.lh-assess__num {
  position: absolute; top: -8px; inset-inline-end: -8px;
  width: 24px; height: 24px; display: grid; place-items: center;
  background: var(--surface); border: 2px solid var(--theme); border-radius: 50%;
  color: var(--theme); font-family: var(--font-heading); font-size: 11px; font-weight: 700;
}

/* card */
.lh-assess__card {
  position: relative; height: calc(100% - 80px);
  padding: 22px 16px;
  background: var(--surface); border: 1px solid var(--border); border-radius: 22px;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lh-assess__card::before {
  content: ""; position: absolute; top: -24px; height: 24px; inset-inline-start: 50%;
  border-inline-start: 2px dashed var(--border);
}
.lh-assess__card:hover { transform: translateY(-4px); box-shadow: var(--shadow); border-color: var(--theme); }

.lh-assess__tag {
  display: inline-block; margin-bottom: 10px; padding: 4px 12px; border-radius: 999px;
  background: var(--shade-strong); color: var(--theme);
  font-size: 12px; font-weight: 700;
}
.lh-assess__name {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 18px; font-weight: 700; line-height: 1.25;
  color: var(--text);
}
.lh-assess__text { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); }

/* last stop = the result, in solid green */
.lh-assess__item:last-child .lh-assess__card { background: var(--band-bg); border-color: var(--band-bg); }
.lh-assess__item:last-child .lh-assess__tag { background: var(--band-blob); color: var(--band-accent); }
.lh-assess__item:last-child .lh-assess__name { color: var(--band-text); }
.lh-assess__item:last-child .lh-assess__text { color: var(--band-soft); }

/* bottom strip */
.lh-assess__foot {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 16px 22px;
  margin-top: clamp(36px, 5vw, 56px); padding: 22px 28px;
  background: var(--shade); border: 1px solid var(--border); border-radius: 26px;
}
.lh-assess__foot-icon {
  width: 46px; height: 46px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--theme); color: var(--on-theme); font-size: 18px;
}
.lh-assess__foot-text { margin: 0; flex: 1 1 280px; max-width: 60ch; font-size: 15.5px; line-height: 1.6; color: var(--muted); }
.lh-assess__foot-text strong { color: var(--text); }

.lh-assess__btn {
  display: inline-flex; align-items: center; gap: 10px;
  height: 50px; padding-inline: 26px;
  background: var(--theme); color: var(--on-theme);
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  box-shadow: 0 8px 20px var(--shade-strong);
  transition: transform .2s ease, box-shadow .2s ease;
}
.lh-assess__btn:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-assess__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* Tablet + mobile: vertical timeline */
@media (max-width: 1024px) {
  .lh-assess__list {
    display: flex; flex-direction: column; gap: 22px;
    max-width: 640px; margin-inline: auto;
  }
  .lh-assess__list::before,
  .lh-assess__list::after {
    top: 28px; bottom: 28px; inset-inline: auto; inset-inline-start: 26.5px;
  }
  .lh-assess__list::before { border-top: 0; border-inline-start: 3px dashed var(--border); }
  .lh-assess__list::after {
    width: 3px; height: auto;
    transform: scaleY(0); transform-origin: top center;
  }
  .lh-assess.is-in .lh-assess__list::after { transform: scaleY(1); }

  .lh-assess__item {
    display: grid; grid-template-columns: 56px minmax(0, 1fr);
    align-items: start; column-gap: 18px; text-align: start;
  }
  .lh-assess__node { margin: 0; }
  .lh-assess__card { height: auto; padding: 20px 18px; }
  .lh-assess__card::before { display: none; }
}

@media (max-width: 600px) {
  .lh-assess__foot { flex-direction: column; text-align: center; padding: 22px 20px; }
  .lh-assess__foot-text { flex: 0 1 auto; }
  .lh-assess__btn { height: 46px; padding-inline: 22px; font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-assess__list::after { transition: none; transform: none; }
  .lh-assess__node { transition: none; background: var(--theme); color: var(--on-theme); }
  .lh-assess__card, .lh-assess__btn { transition: none; }
}

/* ===== Home 2: Specialists ===== */
.lh-team {
  position: relative;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-team__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-team__head {
  display: grid; justify-items: center; gap: 16px;
  margin-bottom: clamp(32px, 5vw, 60px);
  text-align: center;
}
.lh-team__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-team__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-team__title span { color: var(--theme); }
.lh-team__lead {
  margin: 0 auto; max-width: 46ch;
  font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--muted);
}

/* strip: no cards, just arches + text */
.lh-team__list {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 3vw, 40px);
}
.lh-team__item {
  display: flex; flex-direction: column; align-items: center;
  min-width: 0; text-align: center;
}
.lh-team__item:nth-child(even) { margin-block-start: 0; }

.lh-team__figure {
  position: relative; margin: 0 0 40px;
  width: 100%; max-width: 280px; aspect-ratio: 4 / 5;
}
/* offset outline behind the photo */
.lh-team__figure::before {
  content: ""; position: absolute; inset: 0;
  border: 2px solid var(--team-arch-line);
  border-radius: 50% 50% 28px 28px / 36% 36% 28px 28px;
  translate: 10px 10px;
  transition: translate .35s ease, border-color .35s ease;
}
.lh-team__photo {
  position: relative; display: block;
  width: 100%; height: 100%; object-fit: cover;
  border-radius: 50% 50% 28px 28px / 36% 36% 28px 28px;
  filter: var(--photo-filter);
}
.lh-team__badge {
  position: absolute; inset-inline: 0; bottom: -26px;
  width: 52px; height: 52px; margin-inline: auto;
  display: grid; place-items: center;
  border-radius: 50%; border: 4px solid var(--bg);
  background: var(--theme); color: var(--on-theme);
  font-size: 18px;
  box-shadow: 0 8px 18px var(--shade-strong);
  transition: box-shadow .3s ease;
}
.lh-team__item:hover .lh-team__figure::before { translate: 0 0; border-color: var(--theme); }
.lh-team__item:hover .lh-team__badge { box-shadow: var(--shadow); }

.lh-team__role {
  margin: 0 0 8px;
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1.5vw, 1.3rem);
  font-weight: 600; line-height: 1.25; color: var(--text);
}
.lh-team__text {
  margin: 0; max-width: 26ch;
  font-size: 15px; line-height: 1.6; color: var(--muted);
}

/* closing line */
.lh-team__note {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px 14px;
  margin: clamp(40px, 6vw, 64px) 0 0;
  text-align: center; font-size: 15px; color: var(--muted);
}
.lh-team__link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--theme); font-weight: 700; text-decoration: none;
  border-bottom: 2px solid var(--border); padding-bottom: 2px;
  transition: border-color .25s ease;
}
.lh-team__link i { transition: translate .25s ease; }
.lh-team__link:hover { border-color: var(--theme); }
.lh-team__link:hover i { translate: 3px 0; }
.lh-team__link:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; border-radius: 4px; }

/* Tablet: 2 columns */
@media (max-width: 1024px) {
  .lh-team__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 44px; }
  .lh-team__item:nth-child(even) { margin-block-start: 0; }
  .lh-team__figure { max-width: 300px; }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-team__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 16px; }
  .lh-team__item:nth-child(even) { margin-block-start: 0; }
  .lh-team__figure { margin-bottom: 36px; }
  .lh-team__badge { width: 44px; height: 44px; font-size: 16px; bottom: -22px; }
  .lh-team__text { font-size: 14px; }
}
@media (max-width: 479px) {
  .lh-team__list { grid-template-columns: minmax(0, 1fr); }
  .lh-team__figure { max-width: 260px; }
  .lh-team__text { font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-team__figure::before, .lh-team__badge, .lh-team__link, .lh-team__link i { transition: none; }
}




/* ===== Home 2: After the assessment ===== */
.lh-next {
  position: relative; overflow: hidden;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--shade);
  font-family: var(--font-body);
}
.lh-next__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading (centered, like Bento + Specialists) */
.lh-next__head {
  display: grid; justify-items: center; gap: 16px;
  margin-bottom: clamp(32px, 5vw, 56px);
  text-align: center;
}
.lh-next__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-next__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-next__title span { color: var(--theme); }
.lh-next__lead {
  margin: 0 auto; max-width: 48ch;
  font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--muted);
}

/* two equal panels: same width, same height */
.lh-next__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(20px, 3vw, 40px);
}

/* LEFT: illustration fills the whole panel */
.lh-next__scene {
  position: relative; overflow: hidden;
  min-height: 560px;
  border: 1px solid var(--border); border-radius: 36px;
  background: var(--blob);
}
.lh-next__svg {
  position: absolute; inset: 0;
  display: block; width: 100%; height: 100%;
}

.lh-next__sun { fill: var(--sun); }
.lh-next__rays { fill: none; stroke: var(--sun); stroke-width: 4; stroke-linecap: round; }
.lh-next__cloud { fill: var(--next-cloud); }
.lh-next__hill--a { fill: var(--wave-1); }
.lh-next__hill--b { fill: var(--wave-2); }
.lh-next__hill--c { fill: var(--wave-0); }

.lh-next__trail {
  fill: none; stroke: var(--next-trail); stroke-width: 4;
  stroke-dasharray: 2 12; stroke-linecap: round;
}
.lh-next__progress {
  fill: none; stroke: var(--theme); stroke-width: 5; stroke-linecap: round;
  stroke-dasharray: 1; stroke-dashoffset: .86;      /* JS updates this */
  transition: stroke-dashoffset .6s ease;
}
.lh-next__house { fill: var(--house); stroke: var(--ink); stroke-width: 3; }
.lh-next__roof  { fill: var(--heart); stroke: var(--ink); stroke-width: 3; stroke-linejoin: round; }
.lh-next__door  { fill: var(--tree-b); stroke: var(--ink); stroke-width: 3; }
.lh-next__tree-a { fill: var(--tree-a); }
.lh-next__tree-b { fill: var(--tree-b); }
.lh-next__trunk { fill: var(--ink); }

.lh-next__pin {
  fill: var(--next-pin-fill); stroke: var(--theme); stroke-width: 4;
  transform-box: fill-box; transform-origin: center;
  transition: transform .35s ease, fill .35s ease;
}
.lh-next__pin.is-done { fill: var(--theme); }
.lh-next__pin.is-active { fill: var(--theme); transform: scale(1.3); }

/* RIGHT: content panel */
.lh-next__panel {
  display: flex; flex-direction: column;
  border: 1px solid var(--border); border-radius: 36px;
  background: var(--surface);
  padding: clamp(24px, 3.2vw, 44px);
}
.lh-next__list { list-style: none; margin: 0; padding: 0; flex: 1; }
.lh-next__item {
  display: grid; grid-template-columns: 56px minmax(0, 1fr); align-items: start; gap: 20px;
  padding-block: 22px;
}
.lh-next__item:first-child { padding-top: 0; }
.lh-next__item + .lh-next__item { border-top: 1px solid var(--border); }
.lh-next__icon {
  width: 56px; height: 56px; display: grid; place-items: center;
  border-radius: 50%; border: 1px solid var(--border);
  background: var(--shade); color: var(--theme); font-size: 20px;
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}
.lh-next__name {
  margin: 4px 0 8px;
  font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1.5vw, 1.35rem);
  font-weight: 600; line-height: 1.25; color: var(--text);
  transition: color .3s ease;
}
.lh-next__text { margin: 0; max-width: 52ch; font-size: 15px; line-height: 1.65; color: var(--muted); }

.lh-next__item.is-active .lh-next__icon {
  background: var(--theme); border-color: var(--theme); color: var(--on-theme); transform: scale(1.06);
}
.lh-next__item.is-active .lh-next__name { color: var(--theme); }

/* foot, pinned to the bottom of the panel */
.lh-next__foot {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px;
  margin-top: 8px; padding-top: 24px;
  border-top: 1px solid var(--border);
}
.lh-next__btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 26px; border-radius: 999px;
  background: var(--theme); color: var(--on-theme);
  font-weight: 700; font-size: 15px; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
}
.lh-next__btn i { transition: translate .25s ease; }
.lh-next__btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-next__btn:hover i { translate: 3px 0; }
.lh-next__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }
.lh-next__foot-text { margin: 0; font-size: 14.5px; color: var(--muted); }

/* Tablet: stacked, both panels full width */
@media (max-width: 1024px) {
  .lh-next__split { grid-template-columns: minmax(0, 1fr); max-width: 720px; margin-inline: auto; }
  .lh-next__scene { min-height: 0; aspect-ratio: 520 / 600; max-height: 560px; width: 100%; max-width: 480px; margin-inline: auto; }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-next__scene, .lh-next__panel { border-radius: 28px; }
  .lh-next__panel { padding: 22px 18px; }
  .lh-next__item { grid-template-columns: 46px minmax(0, 1fr); gap: 14px; padding-block: 20px; }
  .lh-next__icon { width: 46px; height: 46px; font-size: 17px; }
  .lh-next__name { margin-top: 2px; }
  .lh-next__btn { width: 100%; justify-content: center; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-next__progress, .lh-next__pin, .lh-next__icon, .lh-next__name,
  .lh-next__btn, .lh-next__btn i { transition: none; }
  .lh-next__btn:hover { transform: none; }
}



/* ===== Home 2: Parent voices ===== */
.lh-voices {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(64px, 9vw, 120px);
  background: var(--band-bg);               /* fallback if the photo fails */
  color: var(--band-text);
  font-family: var(--font-body);
}
/* background photo (taller than the section so it can drift) */
.lh-voices__bg {
  position: absolute; inset-inline: 0; top: -8%;
  width: 100%; height: 116%; object-fit: cover;
  z-index: -2; filter: var(--voices-img-filter);
  will-change: transform;
}
.lh-voices__veil {
  position: absolute; inset: 0; z-index: -1;
  background: var(--voices-overlay);
}
.lh-voices__inner {
  position: relative;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-voices__head {
  display: grid; justify-items: center; gap: 16px;
  margin-bottom: clamp(32px, 5vw, 56px);
  text-align: center;
}
.lh-voices__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--band-line); border-radius: 999px;
  background: var(--band-blob); color: var(--band-text);
  font-size: 13px; font-weight: 700;
}
.lh-voices__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--band-text);
}
.lh-voices__title span { color: var(--band-accent); }
.lh-voices__lead {
  margin: 0 auto; max-width: 46ch;
  font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--band-soft);
}

/* stage: all panels share one cell, so the height never jumps */
.lh-voices__stage { display: grid; }
.lh-voices__panel {
  grid-area: 1 / 1;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(16px, 2.5vw, 32px);
  visibility: hidden; opacity: 0; transform: translateY(12px);
  transition: opacity .45s ease, transform .45s ease, visibility 0s linear .45s;
}
.lh-voices__panel.is-active {
  visibility: visible; opacity: 1; transform: none;
  transition-delay: 0s;
}

/* LEFT: photo */
.lh-voices__photo {
  position: relative; margin: 0; min-height: 420px; overflow: hidden;
  border: 1px solid var(--band-line); border-radius: 36px;
}
.lh-voices__photo img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block;
}

/* RIGHT: quote (same size as the photo) */
.lh-voices__card {
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(24px, 4vw, 52px);
  border: 1px solid var(--band-line); border-radius: 36px;
  background: var(--voices-glass);
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
}
.lh-voices__mark {
  width: 52px; height: 52px; display: grid; place-items: center;
  border-radius: 50%; background: var(--band-accent); color: var(--band-on-accent);
  font-size: 18px;
}
.lh-voices__quote { margin: 24px 0 0; padding: 0; quotes: none; }
.lh-voices__quote p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.3rem, 2.3vw, 1.9rem);
  font-weight: 500; line-height: 1.32; letter-spacing: -.01em;
  text-wrap: pretty; color: var(--band-text);
}
.lh-voices__who {
  display: flex; flex-direction: column; gap: 2px;
  margin: 28px 0 0; padding-top: 20px;
  border-top: 1px solid var(--band-line);
}
.lh-voices__who strong { font-size: 16px; color: var(--band-text); }
.lh-voices__who span { font-size: 14.5px; color: var(--band-soft); }

/* avatar tabs */
.lh-voices__tabs {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 16px;
  margin-top: clamp(24px, 4vw, 40px);
}
.lh-voices__tab {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 8px; padding-inline-end: 20px;
  border: 1px solid var(--band-line); border-radius: 999px;
  background: transparent; color: var(--band-soft);
  font: 700 14px/1.2 var(--font-body); cursor: pointer;
  transition: background .25s ease, color .25s ease, border-color .25s ease;
}
.lh-voices__tab img {
  width: 44px; height: 44px; border-radius: 50%;
  object-fit: cover; display: block;
}
.lh-voices__tab:hover { border-color: var(--band-text); color: var(--band-text); }
.lh-voices__tab[aria-selected="true"] {
  background: var(--band-accent); color: var(--band-on-accent); border-color: transparent;
}
.lh-voices__tab:focus-visible { outline: 3px solid var(--band-text); outline-offset: 3px; }

/* Tablet: still two equal halves */
@media (max-width: 1024px) {
  .lh-voices__photo { min-height: 360px; }
  .lh-voices__quote p { font-size: clamp(1.2rem, 2.6vw, 1.5rem); }
}

/* Mobile: stacked */
@media (max-width: 767px) {
  .lh-voices__panel { grid-template-columns: minmax(0, 1fr); }
  .lh-voices__photo { width: min(100%, 320px); min-height: 0; aspect-ratio: 4 / 3; margin-inline: auto; border-radius: 28px; }
  .lh-voices__card { border-radius: 28px; padding: 24px 20px; }
  .lh-voices__tabs { flex-direction: column; align-items: stretch; }
  .lh-voices__tab { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-voices__panel, .lh-voices__tab { transition: none; }
  .lh-voices__panel { transform: none; }
  .lh-voices__bg { will-change: auto; }
}


/* ===== Home 2: Assessment questions ===== */
.lh-ask {
  position: relative;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--bg);
  font-family: var(--font-body);
}

/* two equal halves */
.lh-ask__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(32px, 6vw, 88px);
}
.lh-ask__left, .lh-ask__right { display: flex; flex-direction: column; min-width: 0; }

/* LEFT */
.lh-ask__head { display: grid; justify-items: start; gap: 16px; margin-bottom: clamp(24px, 3vw, 36px); }
.lh-ask__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-ask__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.1rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-ask__title span { color: var(--theme); }
.lh-ask__lead { margin: 0; max-width: 44ch; font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--muted); }

/* photo stretches to match the height of the questions */
.lh-ask__photo {
  position: relative; flex: 1; margin: 0; min-height: 340px; overflow: hidden;
  border: 1px solid var(--border); border-radius: 36px;
  border-start-start-radius: 160px;              /* soft organic corner, flips in RTL */
}
.lh-ask__photo img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; display: block; filter: var(--photo-filter);
}

/* RIGHT: unboxed rows */
.lh-ask__list { border-top: 1px solid var(--border); }
.lh-ask__item { border-bottom: 1px solid var(--border); }
.lh-ask__h { margin: 0; }
.lh-ask__q {
  width: 100%;
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px;
  padding: 22px 0; margin: 0;
  background: none; border: 0; text-align: start; cursor: pointer;
  color: var(--text);
  font: 600 clamp(1.05rem, 1.5vw, 1.25rem)/1.3 var(--font-heading);
  transition: color .25s ease;
}
.lh-ask__q:hover { color: var(--theme); }
.lh-ask__q:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 8px; }
.lh-ask__num {
  min-width: 28px;
  font: 700 14px/1 var(--font-body); letter-spacing: .08em; color: var(--theme);
}
.lh-ask__plus {
  width: 40px; height: 40px; display: grid; place-items: center;
  border: 1px solid var(--border); border-radius: 50%;
  color: var(--theme); font-size: 14px;
  transition: background .3s ease, color .3s ease, border-color .3s ease, transform .3s ease;
}
.lh-ask__item.is-open .lh-ask__q { color: var(--theme); }
.lh-ask__item.is-open .lh-ask__plus {
  background: var(--theme); border-color: var(--theme); color: var(--on-theme); transform: rotate(45deg);
}

/* answer: smooth height, hidden from keyboard and screen readers when closed */
.lh-ask__a {
  display: grid; grid-template-rows: 0fr; visibility: hidden;
  transition: grid-template-rows .35s ease, visibility 0s linear .35s;
}
.lh-ask__item.is-open .lh-ask__a { grid-template-rows: 1fr; visibility: visible; transition-delay: 0s; }
.lh-ask__a-in { overflow: hidden; }
.lh-ask__a-in p {
  margin: 0; padding: 0 0 24px; padding-inline-start: 46px;   /* lines up with the question text */
  max-width: 58ch; font-size: 15.5px; line-height: 1.7; color: var(--muted);
}

/* foot */
.lh-ask__foot {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px;
  margin: 28px 0 0; font-size: 15px; color: var(--muted);
}
.lh-ask__link {
  display: inline-flex; align-items: center; gap: 8px;
  color: var(--theme); font-weight: 700; text-decoration: none;
  border-bottom: 2px solid var(--border); padding-bottom: 2px;
  transition: border-color .25s ease;
}
.lh-ask__link i { font-size: 13px; transition: translate .25s ease; }
.lh-ask__link:hover { border-color: var(--theme); }
.lh-ask__link:hover i { translate: 3px 0; }
.lh-ask__link:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; border-radius: 4px; }

/* Tablet: stacked */
@media (max-width: 1024px) {
  .lh-ask__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(28px, 5vw, 44px); max-width: 720px; }
  .lh-ask__photo {
    flex: none; min-height: 0; aspect-ratio: 16 / 9;
    border-start-start-radius: 36px;
  }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-ask__photo { aspect-ratio: 16 / 10; border-radius: 28px; }
  .lh-ask__q { gap: 12px; padding: 18px 0; }
  .lh-ask__plus { width: 36px; height: 36px; }
  .lh-ask__a-in p { padding-inline-start: 0; font-size: 15px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-ask__q, .lh-ask__plus, .lh-ask__a, .lh-ask__link, .lh-ask__link i { transition: none; }
}


/* ===== Home 2: Closing band ===== */
.lh-end {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(96px, 12vw, 170px);
  background: var(--band-bg);
  color: var(--band-text);
  font-family: var(--font-body);
  text-align: center;
}

/* edges in the page color */
.lh-end__wave {
  position: absolute; inset-inline: 0; z-index: 1;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}
.lh-end__wave--top { top: -1px; }
.lh-end__wave--bottom { bottom: -1px; transform: rotate(180deg); }

/* decoration */
.lh-end__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.lh-end__blob {
  position: absolute; background: var(--band-blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-end__blob--a { top: 8%; inset-inline-start: -120px; width: min(40vw, 480px); aspect-ratio: 1.3 / 1; }
.lh-end__blob--b { bottom: 6%; inset-inline-end: -100px; width: min(34vw, 400px); aspect-ratio: 1.4 / 1; }
.lh-end__trail { position: absolute; inset: 0; width: 100%; height: 100%; }
.lh-end__dots {
  fill: none; stroke: var(--band-line); stroke-width: 4;
  stroke-dasharray: 2 14; stroke-linecap: round;
  animation: lhEndMarch 6s linear infinite;
}
.lh-end__sun-ring { fill: none; stroke: var(--band-line); stroke-width: 2; }
.lh-end__sun { fill: var(--band-accent); }
@keyframes lhEndMarch { to { stroke-dashoffset: -64; } }

/* content */
.lh-end__inner {
  position: relative; z-index: 2;
  max-width: 880px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; justify-items: center; gap: 20px;
}
.lh-end__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--band-line); border-radius: 999px;
  background: var(--band-blob); color: var(--band-text);
  font-size: 13px; font-weight: 700;
}
.lh-end__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 5.2vw, 4rem);
  font-weight: 500; line-height: 1.05; letter-spacing: -.035em;
  text-wrap: balance; color: var(--band-text);
}
.lh-end__title span { color: var(--band-accent); }
.lh-end__lead {
  margin: 0; max-width: 46ch;
  font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.65; color: var(--band-soft);
}

/* buttons */
.lh-end__actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 14px;
  margin-top: 12px;
}
.lh-end__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 30px; border-radius: 999px;
  font-size: 15.5px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background .25s ease;
}
.lh-end__btn i { transition: translate .25s ease; }
.lh-end__btn--main { background: var(--band-accent); color: var(--band-on-accent); border: 2px solid transparent; }
.lh-end__btn--main:hover { transform: translateY(-2px); box-shadow: 0 14px 28px rgba(0, 0, 0, .28); }
.lh-end__btn--ghost { background: transparent; color: var(--band-text); border: 2px solid var(--band-line); }
.lh-end__btn--ghost:hover { border-color: var(--band-text); transform: translateY(-2px); }
.lh-end__btn--ghost:hover i { translate: 3px 0; }
.lh-end__btn:focus-visible { outline: 3px solid var(--band-text); outline-offset: 4px; }

/* reassurance row */
.lh-end__points {
  display: flex; flex-wrap: wrap; justify-content: center;
  margin: 28px 0 0; padding: 0; list-style: none;
}
.lh-end__points li {
  display: flex; align-items: center; gap: 10px;
  padding: 6px 28px; font-size: 14.5px; font-weight: 600; color: var(--band-soft);
}
.lh-end__points li + li { border-inline-start: 1px solid var(--band-line); }
.lh-end__points i { color: var(--band-accent); }

/* Tablet */
@media (max-width: 1024px) {
  .lh-end__points li { padding-inline: 20px; }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-end__actions { flex-direction: column; align-items: stretch; width: 100%; max-width: 380px; }
  .lh-end__points { flex-direction: column; align-items: center; gap: 8px; }
  .lh-end__points li { padding-inline: 0; }
  .lh-end__points li + li { border-inline-start: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-end__dots { animation: none; }
  .lh-end__btn, .lh-end__btn i { transition: none; }
  .lh-end__btn--main:hover, .lh-end__btn--ghost:hover { transform: none; }
}








/* ===== About: Hero ===== */
.lh-ahero {
  position: relative; overflow: hidden;
  min-height: min(70vh, 720px);
  display: flex; align-items: center;
  padding-block: clamp(36px, 5vw, 72px) clamp(90px, 10vw, 140px);
  background: var(--shade);
  font-family: var(--font-body);
}

/* two equal halves */
.lh-ahero__inner {
  position: relative; z-index: 1; width: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  column-gap: clamp(32px, 6vw, 88px);
}

/* LEFT */
.lh-ahero__copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }

.lh-ahero__crumbs { margin-bottom: 22px; }
.lh-ahero__crumbs ol {
  display: flex; flex-wrap: wrap; align-items: center;
  margin: 0; padding: 0; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--muted);
}
.lh-ahero__crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--border); }
.lh-ahero__crumbs a { color: var(--theme); text-decoration: none; }
.lh-ahero__crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lh-ahero__crumbs a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

.lh-ahero__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-ahero__title {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 500; line-height: 1.04; letter-spacing: -.035em;
  text-wrap: balance; color: var(--text);
}
.lh-ahero__title span { color: var(--theme); }
.lh-ahero__lead {
  margin: 0 0 32px; max-width: 46ch;
  font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.7; color: var(--muted);
}

.lh-ahero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-ahero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lh-ahero__btn i { transition: translate .25s ease; }
.lh-ahero__btn--main { background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-ahero__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-ahero__btn--main:hover i { translate: 3px 0; }
.lh-ahero__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--border); }
.lh-ahero__btn--ghost:hover { border-color: var(--theme); transform: translateY(-2px); }
.lh-ahero__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

/* RIGHT: collage */
.lh-ahero__media {
  position: relative; width: 100%; max-width: 600px;
  margin-inline: auto; aspect-ratio: 1 / 1;
}
.lh-ahero__blob {
  position: absolute; inset-block: 6% 0; inset-inline: 8% 0;
  background: var(--wave-0);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-ahero__photo { position: absolute; margin: 0; overflow: hidden; }
.lh-ahero__photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; filter: var(--photo-filter);
}
.lh-ahero__photo--a {
  inset-inline-end: 0; top: 0; width: 74%; height: 82%;
  border-radius: 36px; border-start-start-radius: 150px;   /* soft organic corner */
  box-shadow: var(--shadow);
}
.lh-ahero__photo--b {
  inset-inline-start: 0; bottom: 0; width: 44%; aspect-ratio: 1 / 1;
  border-radius: 50%; border: 8px solid var(--surface);
  box-shadow: var(--shadow);
}
.lh-ahero__badge {
  position: absolute; inset-inline-start: 2%; top: 16%;
  display: flex; align-items: center; gap: 10px;
  margin: 0; padding: 10px 18px 10px 10px; padding-inline-end: 18px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--text);
  font-size: 13.5px; font-weight: 700; line-height: 1.25;
  box-shadow: var(--shadow); max-width: 230px;
}
.lh-ahero__badge-icon {
  flex: none; width: 36px; height: 36px; display: grid; place-items: center;
  border-radius: 50%; background: var(--theme); color: var(--on-theme); font-size: 14px;
}

/* wave */
.lh-ahero__wave {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 2;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}

/* Tablet: stacked */
@media (max-width: 1024px) {
  .lh-ahero { min-height: 0; }
  .lh-ahero__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 56px); }
  .lh-ahero__copy { align-items: center; text-align: center; }
  .lh-ahero__lead { margin-inline: auto; }
  .lh-ahero__actions { justify-content: center; }
  .lh-ahero__media { max-width: 520px; }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-ahero__actions { flex-direction: column; align-self: stretch; }
  .lh-ahero__photo--a { border-start-start-radius: 100px; }
  .lh-ahero__photo--b { border-width: 6px; }
  .lh-ahero__badge { font-size: 12.5px; max-width: 190px; top: 10%; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-ahero__btn, .lh-ahero__btn i { transition: none; }
  .lh-ahero__btn--main:hover, .lh-ahero__btn--ghost:hover { transform: none; }
}



/* ===== About: Our story ===== */
.lh-astory {
  --lh-o: 16px; /* offset of the outline behind the photo */
  position: relative; overflow: hidden;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-astory__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* two exactly equal halves */
.lh-astory__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(40px, 6vw, 88px);
}

/* LEFT: photo + offset outline */
.lh-astory__media { position: relative; min-height: 560px; }

.lh-astory__photo,
.lh-astory__outline {
  position: absolute; margin: 0;
  border-radius: 50% 50% 32px 32px / 38% 38% 32px 32px;
}
.lh-astory__photo {
  inset: 0; z-index: 1; overflow: hidden;
  background: var(--shade-strong);
  box-shadow: var(--shadow);
}
.lh-astory__sun {
  position: absolute; z-index: 2; top: 2%; inset-inline-end: 2%;
  color: var(--sun); font-size: clamp(28px, 4vw, 42px);
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.18));
}
.lh-astory__photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 30%;
  filter: var(--photo-filter);
}
.lh-astory__outline {
  z-index: 0;
  inset-block: var(--lh-o) calc(-1 * var(--lh-o));
  inset-inline: var(--lh-o) calc(-1 * var(--lh-o));
  border: 2px solid var(--team-arch-line);
  transition: inset .9s ease .15s;
}
.lh-astory__badge {
  position: absolute; z-index: 2; inset-inline-start: 2%; bottom: 12%;
  display: inline-flex; align-items: center; gap: 10px;
  margin: 0; padding: 8px 16px 8px 8px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--text);
  font-size: 13px; font-weight: 700; line-height: 1.2;
  box-shadow: var(--shadow);
}
.lh-astory__badge > span {
  width: 36px; height: 36px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--theme); color: var(--on-theme);
}
/* JS arms the section, then the outline slides out from behind the photo */
.lh-astory.is-armed .lh-astory__outline { inset-block: 0; inset-inline: 0; }
.lh-astory.is-armed.is-in .lh-astory__outline {
  inset-block: var(--lh-o) calc(-1 * var(--lh-o));
  inset-inline: var(--lh-o) calc(-1 * var(--lh-o));
}

/* RIGHT: text */
.lh-astory__copy {
  display: flex; flex-direction: column; justify-content: center;
  align-items: flex-start; min-width: 0;
}
.lh-astory__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-astory__title {
  margin: 0 0 22px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.1rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-astory__title span { color: var(--theme); }
.lh-astory__text {
  margin: 0 0 16px; max-width: 56ch;
  font-size: clamp(1rem, 1.25vw, 1.08rem); line-height: 1.75; color: var(--muted);
}

/* founder signature */
.lh-astory__sign {
  display: flex; align-items: center; gap: 14px;
  width: 100%; max-width: 56ch;
  margin: 12px 0 0; padding-top: 22px;
  border-top: 1px dashed var(--border);
}
.lh-astory__sign-icon {
  width: 48px; height: 48px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--shade-strong); color: var(--theme); font-size: 18px;
}
.lh-astory__sign-text { display: flex; flex-direction: column; line-height: 1.3; }
.lh-astory__sign-text strong {
  font-family: var(--font-heading); font-size: 17px; font-weight: 700; color: var(--text);
}
.lh-astory__sign-text span { font-size: 14px; color: var(--muted); }

/* What we believe: unboxed row with dividers */
.lh-astory__believe {
  margin-top: clamp(56px, 8vw, 96px);
  padding-top: clamp(28px, 4vw, 40px);
  border-top: 1px solid var(--border);
}
.lh-astory__believe-title {
  margin: 0 0 clamp(20px, 3vw, 32px);
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  font-weight: 600; letter-spacing: -.02em; color: var(--text);
}
.lh-astory__list {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0; padding: 0; list-style: none;
}
.lh-astory__item {
  display: flex; align-items: flex-start; gap: 16px;
  min-width: 0; padding-inline: clamp(16px, 2.4vw, 32px);
}
.lh-astory__item:first-child { padding-inline-start: 0; }
.lh-astory__item:last-child  { padding-inline-end: 0; }
.lh-astory__item + .lh-astory__item { border-inline-start: 1px solid var(--border); }

.lh-astory__icon {
  width: 48px; height: 48px; flex: none;
  display: grid; place-items: center; border-radius: 50%;
  border: 1px solid var(--border); background: var(--shade);
  color: var(--theme); font-size: 18px;
}
.lh-astory__item h4 {
  margin: 2px 0 6px;
  font-family: var(--font-heading); font-size: 18px; font-weight: 700; line-height: 1.25;
  color: var(--text);
}
.lh-astory__item p { margin: 0; font-size: 15px; line-height: 1.6; color: var(--muted); }

/* Tablet + mobile: one column, photo first at a fixed ratio */
@media (max-width: 1024px) {
  .lh-astory { --lh-o: 12px; }
  .lh-astory__split { grid-template-columns: minmax(0, 1fr); row-gap: clamp(36px, 6vw, 52px); }

  .lh-astory__media {
    width: min(100%, 480px);
    min-height: 0; aspect-ratio: 4 / 5;
    margin-inline: auto; margin-block-end: var(--lh-o);
  }
  .lh-astory__copy { width: 100%; max-width: 640px; margin-inline: auto; }

  .lh-astory__list { grid-template-columns: minmax(0, 1fr); max-width: 640px; margin-inline: auto; }
  .lh-astory__item,
  .lh-astory__item:first-child,
  .lh-astory__item:last-child { padding: 22px 0; }
  .lh-astory__item:first-child { padding-top: 0; }
  .lh-astory__item:last-child  { padding-bottom: 0; }
  .lh-astory__item + .lh-astory__item { border-inline-start: 0; border-block-start: 1px solid var(--border); }
  .lh-astory__believe-title { max-width: 640px; margin-inline: auto; }
}

@media (max-width: 767px) {
  .lh-astory.is-armed .lh-astory__outline,
  .lh-astory.is-armed.is-in .lh-astory__outline { inset-inline: 0; }
  .lh-astory__photo,
  .lh-astory__outline { inset-inline: 0; border-radius: 50% 50% 24px 24px / 32% 32% 24px 24px; }
  .lh-astory__badge { bottom: 10%; font-size: 12px; }
  .lh-astory__eyebrow { font-size: 12px; padding: 7px 13px; }
  .lh-astory__text { font-size: 15px; }
  .lh-astory__icon { width: 44px; height: 44px; font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-astory__outline { transition: none; }
}




/* ===== About: History (road timeline) ===== */
.lh-hist {
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(96px, 12vw, 170px);
  background: var(--band-bg); color: var(--band-text);
  font-family: var(--font-body);
}

/* background photo + veil */
.lh-hist__img {
  position: absolute; inset: 0; z-index: -2;
  width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 40%;
  filter: var(--voices-img-filter);
}
.lh-hist__veil {
  position: absolute; inset: 0; z-index: -1;
  background: var(--voices-overlay);
}

/* edges in the page color */
.lh-hist__wave {
  position: absolute; inset-inline: 0; z-index: 1;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}
.lh-hist__wave--top { top: -1px; }
.lh-hist__wave--bottom { bottom: -1px; transform: rotate(180deg); }

.lh-hist__inner {
  position: relative; z-index: 2;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-hist__head {
  display: grid; justify-items: center; gap: 16px;
  margin-bottom: clamp(36px, 5vw, 64px); text-align: center;
}
.lh-hist__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--band-line); border-radius: 999px;
  background: var(--band-blob); color: var(--band-text);
  font-size: 13px; font-weight: 700;
}
.lh-hist__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--band-text);
}
.lh-hist__title span { color: var(--band-accent); }
.lh-hist__lead {
  margin: 0 auto; max-width: 46ch;
  font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--band-soft);
}

/* ---- Desktop road ---- */
.lh-hist__track {
  --h: 480px; --low: 280px; --high: 200px;   /* match the path in the SVG */
  position: relative; height: var(--h);
}
.lh-hist__svg {
  position: absolute; inset: 0; width: 100%; height: 100%;
  overflow: visible; fill: none; pointer-events: none;
}
.lh-hist__base {
  stroke: var(--band-line); stroke-width: 4;
  stroke-dasharray: 2 14; stroke-linecap: round;
}
.lh-hist__draw {
  stroke: var(--band-accent); stroke-width: 5; stroke-linecap: butt;
  stroke-dasharray: 1; stroke-dashoffset: 1;
  transition: stroke-dashoffset .35s ease;
}

.lh-hist__list {
  position: absolute; inset: 0;
  display: grid; grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0; padding: 0; list-style: none;
}
.lh-hist__item { position: relative; outline: 0; }

/* pin sits on the path */
.lh-hist__pin {
  position: absolute; top: var(--low);
  inset-inline-start: 50%;
  margin-block-start: -28px; margin-inline-start: -28px;
  width: 56px; height: 56px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--band-bg); color: var(--band-soft);
  border: 3px solid var(--band-line); font-size: 20px;
  transition: background .35s ease, color .35s ease, border-color .35s ease,
              transform .35s ease, box-shadow .35s ease;
}
.lh-hist__item:nth-child(even) .lh-hist__pin { top: var(--high); }

/* text: below the low pins, above the high pins */
.lh-hist__body {
  position: absolute; inset-inline: 8px;
  top: calc(var(--low) + 48px);
  text-align: center;
}
.lh-hist__item:nth-child(even) .lh-hist__body {
  top: auto; bottom: calc(var(--h) - var(--high) + 48px);
}

.lh-hist__year {
  display: inline-block; margin-bottom: 10px; padding: 4px 12px;
  border: 1px solid var(--band-line); border-radius: 999px;
  color: var(--band-accent);
  font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  transition: background .35s ease, color .35s ease, border-color .35s ease;
}
.lh-hist__name {
  margin: 0 0 6px;
  font-family: var(--font-heading); font-size: 20px; font-weight: 700; line-height: 1.25;
  color: var(--band-text); transition: color .35s ease;
}
.lh-hist__text {
  margin: 0 auto; max-width: 26ch;
  font-size: 14.5px; line-height: 1.55; color: var(--band-soft);
}

/* lit (reached) */
.lh-hist__item.is-done .lh-hist__pin {
  background: var(--band-accent); color: var(--band-on-accent); border-color: var(--band-accent);
}
/* active (current, hovered or focused) */
.lh-hist__item.is-active .lh-hist__pin {
  transform: scale(1.12); box-shadow: 0 0 0 8px var(--band-blob);
}
.lh-hist__item.is-active .lh-hist__year {
  background: var(--band-accent); border-color: var(--band-accent); color: var(--band-on-accent);
}
.lh-hist__item.is-active .lh-hist__name { color: var(--band-accent); }

.lh-hist__item:focus-visible .lh-hist__pin { outline: 3px solid var(--band-text); outline-offset: 5px; }

/* ---- Tablet + mobile: vertical timeline, line on the inline-start side ---- */
@media (max-width: 1024px) {
  .lh-hist__track { height: auto; }
  .lh-hist__svg { display: none; }

  .lh-hist__list {
    position: relative; inset: auto;
    display: flex; flex-direction: column; gap: 36px;
    max-width: 640px; margin-inline: auto;
  }
  /* dotted line + progress fill (JS sets --hist-line-h and --hist-p) */
  .lh-hist__list::before,
  .lh-hist__list::after {
    content: ""; position: absolute; top: 24px; inset-inline-start: 22px;
    height: var(--hist-line-h, calc(100% - 48px));
  }
  .lh-hist__list::before { border-inline-start: 4px dotted var(--band-line); }
  .lh-hist__list::after {
    width: 4px; border-radius: 4px; background: var(--band-accent);
    transform-origin: top center; transform: scaleY(var(--hist-p, 0));
    transition: transform .35s ease;
  }

  .lh-hist__item { padding-inline-start: 72px; min-height: 48px; }

  .lh-hist__pin,
  .lh-hist__item:nth-child(even) .lh-hist__pin {
    top: 0; inset-inline-start: 0; margin: 0;
    width: 48px; height: 48px; font-size: 18px; z-index: 1;
  }
  .lh-hist__body,
  .lh-hist__item:nth-child(even) .lh-hist__body {
    position: static; inset: auto; text-align: start;
  }
  .lh-hist__text { margin-inline: 0; max-width: 46ch; }
}

@media (max-width: 767px) {
  .lh-hist__name { font-size: 19px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-hist__draw,
  .lh-hist__pin,
  .lh-hist__year,
  .lh-hist__name,
  .lh-hist__list::after { transition: none; }
}


/* ===== About: Team ===== */
.lh-crew {
  scroll-margin-top: 88px;               /* sticky header is 80px */
  position: relative;
  padding-block: clamp(56px, 8vw, 110px);
  background: var(--bg);
  font-family: var(--font-body);
}
.lh-crew__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-crew__head {
  display: grid; justify-items: center; gap: 16px;
  margin-bottom: clamp(32px, 5vw, 60px); text-align: center;
}
.lh-crew__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-crew__title {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.3rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-crew__title span { color: var(--theme); }
.lh-crew__lead {
  margin: 0 auto; max-width: 46ch;
  font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.65; color: var(--muted);
}

/* avatar / photo tints (soft theme tints, both modes) */
.lh-crew__feature,
.lh-crew__item { --crew-a: var(--wave-0); --crew-b: var(--wave-1); }
.lh-crew__item:nth-child(3n + 2) { --crew-a: var(--wave-2); --crew-b: var(--wave-1); }
.lh-crew__item:nth-child(3n)     { --crew-a: var(--blob);   --crew-b: var(--wave-0); }

/* ---- Leadership: two exactly equal halves ---- */
.lh-crew__feature {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(40px, 6vw, 88px);
}
.lh-crew__portrait {
  position: relative; margin: 0; min-height: 520px; overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 32px;
  border-start-end-radius: 140px;               /* the one soft organic corner */
  background: linear-gradient(150deg, var(--crew-a), var(--crew-b));
}
.lh-crew__portrait img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%;
  filter: var(--photo-filter);
}

.lh-crew__bio {
  display: flex; flex-direction: column; justify-content: center;
  align-items: flex-start; min-width: 0;
}
.lh-crew__role {
  margin: 0 0 10px;
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--theme);
}
.lh-crew__name {
  margin: 0 0 18px;
  font-family: var(--font-heading);
  font-size: clamp(1.9rem, 3.4vw, 2.8rem);
  font-weight: 600; line-height: 1.1; letter-spacing: -.02em; color: var(--text);
}
.lh-crew__text {
  margin: 0 0 26px; max-width: 54ch;
  font-size: clamp(1rem, 1.25vw, 1.08rem); line-height: 1.75; color: var(--muted);
}
.lh-crew__quote {
  margin: 0; padding: 4px 0 4px 22px; padding-inline: 22px 0;
  border-inline-start: 3px solid var(--theme);
  max-width: 54ch; quotes: none;
}
.lh-crew__quote-mark { display: block; margin-bottom: 10px; font-size: 20px; color: var(--theme); }
.lh-crew__quote p {
  margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1.8vw, 1.4rem);
  font-weight: 500; line-height: 1.45; color: var(--text);
}

/* ---- Filter bar ---- */
.lh-crew__bar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px;
  margin-top: clamp(56px, 8vw, 96px); padding-top: clamp(24px, 3vw, 32px);
  border-top: 1px solid var(--border);
}
.lh-crew__bar-title {
  flex: 1 1 240px; margin: 0;
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 2.2vw, 1.8rem);
  font-weight: 600; letter-spacing: -.02em; color: var(--text);
}
.lh-crew__filters { display: flex; flex-wrap: wrap; gap: 8px; }
.lh-crew__chip {
  height: 42px; padding-inline: 18px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--text);
  font: 700 14px/1 var(--font-body); cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.lh-crew__chip:hover { border-color: var(--theme); color: var(--theme); }
.lh-crew__chip[aria-pressed="true"] {
  background: var(--theme); border-color: var(--theme); color: var(--on-theme);
}
.lh-crew__chip:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }
.lh-crew__status { flex: 1 0 100%; margin: 0; font-size: 14px; color: var(--muted); }

/* ---- Grid: unboxed rows with dividers ---- */
.lh-crew__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: clamp(28px, 4vw, 56px);
  margin: clamp(8px, 2vw, 16px) 0 0; padding: 0; list-style: none;
}
.lh-crew__item {
  display: flex; align-items: flex-start; gap: 18px; min-width: 0;
  padding-block: 24px; border-block-start: 1px solid var(--border);
  transition: opacity .24s ease, transform .24s ease;
}
.lh-crew__item[hidden] { display: none; }
.lh-crew__item.is-out { opacity: 0; transform: translateY(10px); }

.lh-crew__photo {
  position: relative; flex: none; overflow: hidden;
  width: clamp(88px, 8vw, 112px); aspect-ratio: 5 / 6;
  border-radius: 20px;
  border-start-end-radius: 56px;                /* same soft corner on every photo */
  background: linear-gradient(150deg, var(--crew-a), var(--crew-b));
}
.lh-crew__photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 50% 25%; filter: var(--photo-filter);
}

.lh-crew__info { min-width: 0; }
.lh-crew__member {
  margin: 2px 0 2px;
  font-family: var(--font-heading); font-size: 18px; font-weight: 700; line-height: 1.25;
  color: var(--text);
}
.lh-crew__member-role { margin: 0 0 8px; font-size: 14px; font-weight: 700; color: var(--theme); }
.lh-crew__member-bio  { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--muted); }

/* Tablet: stacked leadership, 2-column grid */
@media (max-width: 1024px) {
  .lh-crew { scroll-margin-top: 76px; }       /* header is 68px here */

  .lh-crew__feature { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 48px); }
  .lh-crew__portrait {
    min-height: 0; aspect-ratio: 4 / 5;
    width: min(100%, 460px); margin-inline: auto;
  }
  .lh-crew__bio { width: 100%; max-width: 640px; margin-inline: auto; }

  .lh-crew__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Mobile: 1 column */
@media (max-width: 767px) {
  .lh-crew__portrait { border-start-end-radius: 100px; border-radius: 24px; border-start-end-radius: 100px; }
  .lh-crew__eyebrow { font-size: 12px; padding: 7px 13px; }
  .lh-crew__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
  .lh-crew__item, .lh-crew__chip { transition: none; }
}



/* ===== About: Closing CTA ===== */
.lh-acta {
  --acta-scene: clamp(220px, 26vw, 340px);      /* height of the hill illustration */
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(56px, 8vw, 110px) var(--acta-scene);
  background: var(--shade);
  font-family: var(--font-body);
}

/* illustration along the bottom (the footer's wave overlaps its lowest edge) */
.lh-acta__scene {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 0;
  height: var(--acta-scene); pointer-events: none;
}
.lh-acta__scene svg { display: block; width: 100%; height: 100%; }

.lh-acta__cloud { fill: var(--surface); opacity: .9; }
.lh-acta__rays { fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; }
.lh-acta__core { fill: var(--sun); stroke: var(--ink); stroke-width: 3; }
.lh-acta__hill-a { fill: var(--wave-1); }
.lh-acta__hill-b { fill: var(--wave-0); }
.lh-acta__hill-c { fill: var(--wave-2); }
.lh-acta__tree-a { fill: var(--tree-a); }
.lh-acta__tree-b { fill: var(--tree-b); }
.lh-acta__trunk  { fill: var(--ink); }

.lh-acta__inner {
  position: relative; z-index: 1;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* two exactly equal halves */
.lh-acta__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(40px, 6vw, 88px);
}

/* LEFT */
.lh-acta__copy {
  display: flex; flex-direction: column; justify-content: center;
  align-items: flex-start; min-width: 0;
}
.lh-acta__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-acta__title {
  margin: 0 0 18px;
  font-family: var(--font-heading);
  font-size: clamp(2.4rem, 5vw, 4rem);
  font-weight: 500; line-height: 1.05; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-acta__title span { color: var(--theme); }
.lh-acta__lead {
  margin: 0 0 30px; max-width: 46ch;
  font-size: clamp(1rem, 1.4vw, 1.15rem); line-height: 1.7; color: var(--muted);
}
.lh-acta__actions { display: flex; flex-wrap: wrap; gap: 12px; }

.lh-acta__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.lh-acta__btn i { font-size: 14px; transition: translate .2s ease; }
.lh-acta__btn--solid { background: var(--theme); color: var(--on-theme); box-shadow: 0 8px 20px var(--shade-strong); }
.lh-acta__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-acta__btn--ghost { background: transparent; color: var(--theme); }
.lh-acta__btn--ghost:hover { background: var(--shade-strong); transform: translateY(-2px); }
.lh-acta__btn--ghost:hover i { translate: 3px 0; }
.lh-acta__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* RIGHT: unboxed contact list with dividers */
.lh-acta__details {
  display: flex; flex-direction: column; justify-content: center; min-width: 0;
}
.lh-acta__details-title {
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--theme);
}
.lh-acta__list {
  margin: 0; padding: 0; list-style: none;
  border-block-end: 1px solid var(--border);
}
.lh-acta__row {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); align-items: center; gap: 18px;
  padding-block: 8px; border-block-start: 1px solid var(--border);
}
.lh-acta__icon {
  width: 48px; height: 48px;
  display: grid; place-items: center; border-radius: 50%;
  background: var(--surface); border: 1px solid var(--border);
  color: var(--theme); font-size: 18px;
}
.lh-acta__label { display: block; margin-bottom: 2px; font-size: 13px; font-weight: 700; color: var(--muted); }
.lh-acta__value {
  display: inline-block;
  font-family: var(--font-heading); font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  font-weight: 600; line-height: 1.4; color: var(--text);
  text-decoration: none; overflow-wrap: anywhere;
}
a.lh-acta__value { transition: color .2s ease; }
a.lh-acta__value:hover { color: var(--theme); text-decoration: underline; text-underline-offset: 4px; }
a.lh-acta__value:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

/* Tablet + mobile: single column */
@media (max-width: 1024px) {
  .lh-acta__split { grid-template-columns: minmax(0, 1fr); row-gap: clamp(36px, 6vw, 52px); }
  .lh-acta__row { padding-block: 20px; }
  .lh-acta__copy,
  .lh-acta__details { width: 100%; max-width: 640px; margin-inline: auto; }
}

/* Mobile: full-width buttons */
@media (max-width: 600px) {
  .lh-acta__actions { flex-direction: column; align-self: stretch; width: 100%; }
  .lh-acta__btn { width: 100%; height: 48px; font-size: 14px; }
  .lh-acta__eyebrow { font-size: 12px; padding: 7px 13px; }
  .lh-acta__row { grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
  .lh-acta__icon { width: 44px; height: 44px; font-size: 17px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-acta__btn, .lh-acta__btn i, a.lh-acta__value { transition: none; }
  .lh-acta__btn--solid:hover,
  .lh-acta__btn--ghost:hover { transform: none; }
  .lh-acta__btn--ghost:hover i { translate: 0 0; }
}


/* ===== Contact: Hero ===== */
.lh-chero {
  position: relative; isolation: isolate; overflow: hidden;
  min-height: min(72vh, 740px);
  display: grid; place-items: center;
  padding-block: clamp(56px, 7vw, 96px) clamp(110px, 12vw, 170px);
  background: var(--band-bg);
  font-family: var(--font-body);
}
.lh-chero__bg { position: absolute; inset: 0; z-index: -2; }
.lh-chero__bg img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: center 40%;
  filter: var(--photo-filter);
}
.lh-chero__veil { position: absolute; inset: 0; z-index: -1; background: var(--chero-veil); }

.lh-chero__inner {
  position: relative; z-index: 1; width: 100%;
  max-width: 820px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: flex; flex-direction: column; align-items: center; text-align: center;
}

/* breadcrumb */
.lh-chero__crumbs { margin-bottom: 22px; }
.lh-chero__crumbs ol {
  display: flex; flex-wrap: wrap; justify-content: center;
  margin: 0; padding: 0; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--vhero-ink);
}
.lh-chero__crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--vhero-glass-line); }
.lh-chero__crumbs a { color: var(--vhero-soft); text-decoration: none; }
.lh-chero__crumbs a:hover { color: var(--vhero-ink); text-decoration: underline; text-underline-offset: 3px; }
.lh-chero__crumbs a:focus-visible { outline: 3px solid var(--vhero-accent); outline-offset: 3px; border-radius: 4px; }

/* eyebrow pill */
.lh-chero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--vhero-glass-line); border-radius: 999px;
  background: var(--vhero-glass);
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
  color: var(--vhero-ink); font-size: 13px; font-weight: 700;
}
.lh-chero__eyebrow i { color: var(--vhero-accent); }

.lh-chero__title {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-size: clamp(2.3rem, 5.4vw, 4.2rem);
  font-weight: 500; line-height: 1.06; letter-spacing: -.035em;
  text-wrap: balance; color: var(--vhero-ink);
}
.lh-chero__title span { color: var(--vhero-accent); }

.lh-chero__lead {
  margin: 0 0 32px; max-width: 52ch;
  font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.7;
  color: var(--vhero-soft);
}

/* buttons */
.lh-chero__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; }
.lh-chero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.lh-chero__btn--main { background: var(--vhero-accent); color: var(--vhero-dark); border: 2px solid var(--vhero-accent); }
.lh-chero__btn--main:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, .35); }
.lh-chero__btn--ghost { background: transparent; color: var(--vhero-ink); border: 2px solid var(--vhero-glass-line); }
.lh-chero__btn--ghost:hover { border-color: var(--vhero-ink); background: var(--vhero-glass); transform: translateY(-2px); }
.lh-chero__btn--ghost i { transition: translate .25s ease; }
.lh-chero__btn--ghost:hover i { translate: 0 3px; }
.lh-chero__btn:focus-visible { outline: 3px solid var(--vhero-accent); outline-offset: 4px; }

/* small info line under the buttons */
.lh-chero__meta {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 0;
  margin: 36px 0 0; padding: 20px 0 0; list-style: none;
  border-top: 1px solid var(--vhero-glass-line);
  width: min(100%, 560px);
  font-size: 14px; font-weight: 600; color: var(--vhero-soft);
}
.lh-chero__meta li { display: inline-flex; align-items: center; gap: 8px; padding-inline: 20px; }
.lh-chero__meta li + li { border-inline-start: 1px solid var(--vhero-glass-line); }
.lh-chero__meta i { color: var(--vhero-accent); }

/* bottom wave */
.lh-chero__wave {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 2;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}

/* Mobile */
@media (max-width: 767px) {
  .lh-chero { min-height: 0; }
  .lh-chero__actions { flex-direction: column; align-self: stretch; max-width: 360px; margin-inline: auto; width: 100%; }
  .lh-chero__meta { flex-direction: column; align-items: center; }
  .lh-chero__meta li + li { border-inline-start: 0; }
}

@media (max-width: 380px) {
  .lh-chero__actions { max-width: 100%; gap: 10px; }
  .lh-chero__btn { width: 100%; height: 46px; padding-inline: 20px; }
  .lh-chero__meta { margin-top: 24px; padding-top: 16px; font-size: 13px; }
  .lh-chero__meta li {
    display: grid; grid-template-columns: 16px minmax(0, 1fr);
    align-items: start; gap: 8px; width: 100%; max-width: 290px;
    padding-inline: 8px; text-align: start;
  }
  .lh-chero__meta i { margin-top: 2px; }
}


/* ===== Contact: Ways to reach us ===== */
.lh-ways {
  background: var(--bg);
  padding-block: clamp(56px, 7vw, 96px);
  font-family: var(--font-body);
}
.lh-ways__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

/* heading */
.lh-ways__head { max-width: 640px; margin: 0 auto clamp(32px, 4vw, 52px); text-align: center; }
.lh-ways__eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--theme);
}
.lh-ways__eyebrow::before,
.lh-ways__eyebrow::after { content: ""; width: 28px; height: 0; border-top: 2px solid var(--theme); }
.lh-ways__title {
  margin: 0 0 12px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-ways__lead { margin: 0; font-size: 1.05rem; line-height: 1.7; color: var(--muted); }

/* row with dividers (no cards) */
.lh-ways__list {
  position: relative;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0; padding: 0; list-style: none;
  border-top: 1px solid var(--border);
}
/* line that draws across the top when the section scrolls into view */
.lh-ways__list::before {
  content: none;
}
.lh-ways.is-in .lh-ways__list::before { content: none; }

.lh-ways__item {
  position: relative;
  display: flex; flex-direction: column; align-items: flex-start;
  padding-block: clamp(28px, 3.4vw, 44px);
  padding-inline: clamp(20px, 2.4vw, 32px);
}
.lh-ways__item + .lh-ways__item { border-inline-start: 1px solid var(--border); }

.lh-ways__icon {
  display: grid; place-items: center;
  width: 56px; height: 56px; margin-bottom: 20px;
  border: 1px solid var(--border); border-radius: 50%;
  background: var(--shade); color: var(--theme); font-size: 20px;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.lh-ways__item:hover .lh-ways__icon,
.lh-ways__item:focus-within .lh-ways__icon {
  background: var(--theme); color: var(--on-theme); border-color: var(--theme);
}

.lh-ways__name {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 1.25rem; font-weight: 600;
  letter-spacing: -.01em; color: var(--text);
}
.lh-ways__text { margin: 0 0 18px; flex: 1 1 auto; font-size: .98rem; line-height: 1.6; color: var(--muted); }

.lh-ways__link {
  display: inline-flex; align-items: center; gap: 8px; min-width: 0;
  font-size: 15px; font-weight: 700; color: var(--theme);
  text-decoration: none; overflow-wrap: anywhere;
}
.lh-ways__link i { font-size: 12px; transition: translate .25s ease; }
.lh-ways__item:hover .lh-ways__link i { translate: 3px 0; }
.lh-ways__link:hover span { text-decoration: underline; text-underline-offset: 4px; }
/* whole column is clickable */
.lh-ways__link::after { content: ""; position: absolute; inset: 0; }
.lh-ways__link:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; border-radius: 4px; }
/* ===== Contact: Ways refinement (both modes) ===== */
.lh-ways {
  --ways-line: var(--border);
  --ways-ring: var(--border);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-ways {
    --ways-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --ways-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* framed row: project green lines with softly rounded outer corners */
.lh-ways__list {
  border: 1px solid var(--ways-line);
  border-radius: 18px;
}
.lh-ways__item + .lh-ways__item { border-inline-start-color: var(--ways-line); }

/* icon circle with more presence */
.lh-ways__icon {
  border: 1.5px solid var(--ways-ring);
  background: var(--shade-strong);
}

/* accent bar along the bottom of a column */
.lh-ways__item::after {
  content: none;
}
.lh-ways__item:hover::after,
.lh-ways__item:focus-within::after { content: none; }

/* keep the responsive dividers in the same stronger color */
@media (max-width: 1024px) {
  .lh-ways__item:nth-child(even) { border-inline-start-color: var(--ways-line); }
  .lh-ways__item:nth-child(n+3) { border-top-color: var(--ways-line); }
}
@media (max-width: 767px) {
  .lh-ways__item + .lh-ways__item { border-top-color: var(--ways-line); }
}

@media (prefers-reduced-motion: reduce) {
  .lh-ways__item::after { transition: none; }
}
/* Tablet: 2 columns */
@media (max-width: 1024px) {
  .lh-ways__list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lh-ways__item + .lh-ways__item { border-inline-start: 0; }
  .lh-ways__item:nth-child(even) { border-inline-start: 1px solid var(--border); }
  .lh-ways__item:nth-child(n+3) { border-top: 1px solid var(--border); }
}

/* Mobile: 1 column, horizontal dividers */
@media (max-width: 767px) {
  .lh-ways__list { grid-template-columns: minmax(0, 1fr); }
  .lh-ways__item:nth-child(even) { border-inline-start: 0; }
  .lh-ways__item + .lh-ways__item { border-top: 1px solid var(--border); }
}

@media (prefers-reduced-motion: reduce) {
  .lh-ways__list::before { width: 100%; transition: none; }
  .lh-ways__icon, .lh-ways__link i { transition: none; }
}


/* ===== Contact: Form ===== */
.lh-enq {
  --enq-line: var(--border);
  --enq-line-strong: var(--border);
  background: var(--bg);
  padding-block: clamp(56px, 7vw, 96px);
  scroll-margin-top: 88px;
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-enq {
    --enq-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --enq-line-strong: color-mix(in srgb, var(--theme) 75%, transparent); /* input borders: 3:1 */
  }
}

/* two exactly equal halves */
.lh-enq__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-areas: "form content";
  align-items: stretch;
  column-gap: clamp(32px, 5vw, 72px);
}
.lh-enq__side { grid-area: content; }
.lh-enq__panel { grid-area: form; }

/* LEFT */
.lh-enq__side { display: flex; flex-direction: column; min-width: 0; }
.lh-enq__eyebrow {
  display: inline-flex; align-items: center; gap: 12px; align-self: flex-start;
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--theme);
}
.lh-enq__eyebrow::before { content: ""; width: 28px; border-top: 2px solid var(--theme); }
.lh-enq__title {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-enq__lead { margin: 0; max-width: 46ch; font-size: 1.05rem; line-height: 1.7; color: var(--muted); }

/* photo stretches to the form's height; the shimmer shows until it loads */
.lh-enq__photo {
  position: relative; flex: 1 1 auto; min-height: 260px;
  margin: clamp(24px, 3vw, 32px) 0 clamp(18px, 2vw, 24px);
  overflow: hidden;
  border: 1px solid var(--enq-line);
  border-radius: 20px;
  border-start-start-radius: 120px;      /* the single soft corner */
  background: linear-gradient(100deg, var(--shade) 30%, var(--shade-strong) 50%, var(--shade) 70%) 0 0 / 220% 100%;
  animation: lhEnqShimmer 1.5s linear infinite;
}
.lh-enq__photo img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; object-position: center;
  filter: var(--photo-filter);
}
@keyframes lhEnqShimmer { to { background-position: -220% 0; } }

/* checklist with dividers */
.lh-enq__checks { margin: 0; padding: 0; list-style: none; border-bottom: 1px solid var(--enq-line); }
.lh-enq__checks li {
  display: flex; align-items: center; gap: 12px;
  padding-block: 14px; border-top: 1px solid var(--enq-line);
  font-size: 1rem; font-weight: 600; color: var(--text);
}
.lh-enq__checks i { color: var(--theme); font-size: 18px; }

/* RIGHT: the only boxed element on the page */
.lh-enq__panel {
  display: flex; flex-direction: column; justify-content: center; min-width: 0;
  padding: clamp(22px, 3vw, 40px);
  border: 1px solid var(--enq-line);
  border-radius: 28px;
  background: var(--shade);
}
.lh-enq__form[hidden], .lh-enq__done[hidden], .lh-enq__summary[hidden],
.lh-enq__error[hidden], .lh-enq__fail[hidden] { display: none !important; }

.lh-enq__note { margin: 0 0 18px; font-size: 13.5px; color: var(--muted); }
.lh-enq__note span[aria-hidden] { color: var(--err); font-weight: 700; }
.lh-enq__sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.lh-enq__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 18px; }
.lh-enq__field { min-width: 0; }
.lh-enq__field--full { grid-column: 1 / -1; }

.lh-enq__label { display: block; margin-bottom: 8px; font-size: 14px; font-weight: 700; color: var(--text); }
.lh-enq__req { margin-inline-start: 2px; color: var(--err); }
.lh-enq__opt { font-weight: 500; color: var(--muted); }
.lh-enq__hint { margin: -2px 0 8px; font-size: 13px; line-height: 1.5; color: var(--muted); }

.lh-enq__input {
  display: block; width: 100%; margin: 0;
  padding: 13px 16px;
  font: 500 16px/1.4 var(--font-body); color: var(--text);
  background: var(--bg);
  border: 1.5px solid var(--enq-line-strong); border-radius: 14px;
  -webkit-appearance: none; appearance: none;
  transition: border-color .2s ease;
}
.lh-enq__input::placeholder { color: var(--muted); opacity: 1; }
.lh-enq__input:hover { border-color: var(--theme); }
.lh-enq__input:focus-visible { outline: 3px solid var(--theme); outline-offset: 2px; border-color: var(--theme); }
.lh-enq__input[aria-invalid="true"] { border-color: var(--err); }
.lh-enq__input[aria-invalid="true"]:focus-visible { outline-color: var(--err); }
.lh-enq__textarea { min-height: 140px; resize: vertical; }

.lh-enq__select { position: relative; }
.lh-enq__select select { padding-inline-end: 44px; cursor: pointer; }
.lh-enq__select option { background: var(--bg); color: var(--text); }
.lh-enq__select i {
  position: absolute; inset-inline-end: 16px; inset-block-start: 50%;
  translate: 0 -50%; pointer-events: none;
  font-size: 13px; color: var(--theme);
}

/* error text, counter */
.lh-enq__error { margin: 6px 0 0; font-size: 13.5px; font-weight: 600; line-height: 1.4; color: var(--err); }
.lh-enq__under { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.lh-enq__under .lh-enq__error { flex: 1 1 auto; }
.lh-enq__count { margin: 6px 0 0; margin-inline-start: auto; flex: none; font-size: 13px; color: var(--muted); }
.lh-enq__count.is-near { color: var(--theme); font-weight: 700; }

/* consent */
.lh-enq__consent { display: flex; align-items: flex-start; gap: 12px; }
.lh-enq__consent input {
  flex: none; width: 22px; height: 22px; margin: 1px 0 0;
  accent-color: var(--theme); cursor: pointer;
}
.lh-enq__consent input:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }
.lh-enq__consent input[aria-invalid="true"] { outline: 2px solid var(--err); outline-offset: 2px; }
.lh-enq__consent label { font-size: 14.5px; line-height: 1.55; color: var(--text); cursor: pointer; }

/* error summary */
.lh-enq__summary {
  margin-bottom: 22px; padding: 16px 18px;
  border: 1.5px solid var(--err); border-inline-start-width: 5px; border-radius: 14px;
  background: var(--bg);
}
.lh-enq__summary:focus-visible { outline: 3px solid var(--err); outline-offset: 3px; }
.lh-enq__summary-title { margin: 0 0 8px; font-family: var(--font-heading); font-size: 1rem; font-weight: 700; color: var(--err); }
.lh-enq__summary-list { margin: 0; padding-inline-start: 18px; }
.lh-enq__summary-list li { margin-block: 3px; }
.lh-enq__summary-list a { font-size: 14.5px; font-weight: 600; color: var(--err); text-underline-offset: 3px; }
.lh-enq__summary-list a:focus-visible { outline: 3px solid var(--err); outline-offset: 3px; border-radius: 3px; }

/* spam trap */
.lh-enq__hp { position: absolute; inset-inline-start: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* buttons */
.lh-enq__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 16px 28px; border-radius: 999px;
  font: 700 15px/1.2 var(--font-body); text-decoration: none; cursor: pointer;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, opacity .2s ease;
}
.lh-enq__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }
.lh-enq__btn--main { width: 100%; margin-top: 24px; background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-enq__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-enq__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--enq-line-strong); }
.lh-enq__btn--ghost:hover { border-color: var(--theme); transform: translateY(-2px); }
.lh-enq__send { font-size: 14px; transition: translate .25s ease; }
.lh-enq__btn--main:hover .lh-enq__send { translate: 3px -2px; }

/* loading state */
.lh-enq__spin {
  display: none; width: 18px; height: 18px;
  border: 2.5px solid currentColor; border-block-start-color: transparent; border-radius: 50%;
  animation: lhEnqSpin .8s linear infinite;
}
.lh-enq__btn.is-loading { opacity: .85; cursor: progress; transform: none; box-shadow: none; }
.lh-enq__btn.is-loading .lh-enq__spin { display: inline-block; }
.lh-enq__btn.is-loading .lh-enq__send { display: none; }
@keyframes lhEnqSpin { to { rotate: 360deg; } }

.lh-enq__fail { margin: 14px 0 0; font-size: 14px; font-weight: 600; color: var(--err); }
.lh-enq__privacy { margin: 14px 0 0; font-size: 13px; line-height: 1.5; color: var(--muted); text-align: center; }

/* success state */
.lh-enq__done { display: flex; flex-direction: column; align-items: center; text-align: center; padding-block: 16px; }
.lh-enq__done:focus { outline: none; }
.lh-enq__done.is-pop { animation: lhEnqPop .5s cubic-bezier(.22, .61, .36, 1); }
@keyframes lhEnqPop { from { opacity: 0; transform: translateY(12px) scale(.97); } to { opacity: 1; transform: none; } }
.lh-enq__done-icon {
  display: grid; place-items: center; width: 68px; height: 68px; margin-bottom: 20px;
  border-radius: 50%; background: var(--theme); color: var(--on-theme); font-size: 28px;
}
.lh-enq__done-title { margin: 0 0 10px; font-family: var(--font-heading); font-size: clamp(1.6rem, 2.6vw, 2.1rem); font-weight: 600; letter-spacing: -.02em; color: var(--text); }
.lh-enq__done-text { margin: 0 0 24px; max-width: 40ch; font-size: 1.02rem; line-height: 1.7; color: var(--muted); }

/* Tablet + mobile: halves stack */
@media (max-width: 1024px) {
  .lh-enq__inner { grid-template-columns: minmax(0, 1fr); grid-template-areas: "form" "content"; row-gap: clamp(32px, 6vw, 48px); }
  .lh-enq__photo { flex: none; min-height: 0; aspect-ratio: 16 / 10; }
}
@media (max-width: 767px) {
  .lh-enq__row { grid-template-columns: minmax(0, 1fr); }
  .lh-enq__photo { aspect-ratio: 4 / 3; border-start-start-radius: 80px; }
  .lh-enq__panel { border-radius: 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-enq__photo { animation: none; }
  .lh-enq__spin { animation: none; }
  .lh-enq__done.is-pop { animation: none; }
  .lh-enq__btn, .lh-enq__send, .lh-enq__input { transition: none; }
}


/* ===== Contact: Map and address ===== */
.lh-visit {
  --vis-line: var(--border);
  --vis-ring: var(--border);
  background: var(--shade);              /* change to var(--bg) for a plain white section */
  padding-block: clamp(56px, 7vw, 96px);
  scroll-margin-top: 88px;
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-visit {
    --vis-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --vis-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* two exactly equal halves */
.lh-visit__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(32px, 5vw, 72px);
}

/* LEFT: map */
.lh-visit__mapcol { display: flex; flex-direction: column; min-width: 0; }
.lh-visit__map {
  position: relative; flex: 1 1 auto; min-height: 420px;
  overflow: hidden;
  border: 1px solid var(--vis-line);
  border-radius: 20px;
  border-end-start-radius: 120px;        /* the single soft corner */
  background: linear-gradient(100deg, var(--shade) 30%, var(--shade-strong) 50%, var(--shade) 70%) 0 0 / 220% 100%;
  animation: lhVisitShimmer 1.5s linear infinite;
}
.lh-visit__map.is-loaded { animation: none; }
.lh-visit__map iframe {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; border: 0;
  filter: var(--photo-filter);
}
@keyframes lhVisitShimmer { to { background-position: -220% 0; } }

/* skeleton pin (sits under the iframe, fades once the map has loaded) */
.lh-visit__skel {
  position: absolute; inset: 0; display: grid; place-items: center;
  font-size: 34px; color: var(--theme); opacity: .55;
  transition: opacity .3s ease;
}
.lh-visit__map.is-loaded .lh-visit__skel { opacity: 0; }

.lh-visit__fallback { margin: 14px 0 0; font-size: 14px; color: var(--muted); }
.lh-visit__fallback a { font-weight: 700; color: var(--theme); text-underline-offset: 3px; }
.lh-visit__fallback a:hover { text-decoration-thickness: 2px; }
.lh-visit__fallback a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 3px; }

/* RIGHT: unboxed details */
.lh-visit__info { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }
.lh-visit__eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--theme);
}
.lh-visit__eyebrow::before { content: ""; width: 28px; border-top: 2px solid var(--theme); }
.lh-visit__title {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.6vw, 3rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-visit__lead { margin: 0 0 clamp(22px, 3vw, 30px); max-width: 46ch; font-size: 1.05rem; line-height: 1.7; color: var(--muted); }

.lh-visit__blocks { align-self: stretch; border-bottom: 1px solid var(--vis-line); }
.lh-visit__block {
  display: grid; grid-template-columns: 48px minmax(0, 1fr); column-gap: 18px;
  padding-block: 22px;
  border-top: 1px solid var(--vis-line);
}
.lh-visit__icon {
  display: grid; place-items: center;
  width: 48px; height: 48px;
  border: 1.5px solid var(--vis-ring); border-radius: 50%;
  background: var(--shade-strong); color: var(--theme); font-size: 18px;
}
.lh-visit__h {
  margin: 0 0 8px;
  font-family: var(--font-heading); font-size: 1.1rem; font-weight: 600;
  letter-spacing: -.01em; color: var(--text);
}
.lh-visit__addr { margin: 0; font-style: normal; font-size: 1rem; line-height: 1.7; color: var(--muted); }

/* opening hours: rows with dashed dividers */
.lh-visit__hours { margin: 0; }
.lh-visit__row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  padding-block: 10px;
  border-top: 1px dashed var(--vis-line);
  font-size: 1rem; color: var(--muted);
}
.lh-visit__row:first-child { border-top: 0; padding-top: 0; }
.lh-visit__row dt { font-weight: 700; color: var(--text); }
.lh-visit__row dd { margin: 0; text-align: end; }
.lh-visit__row.is-today dt, .lh-visit__row.is-today dd { color: var(--theme); }
.lh-visit__today {
  display: inline-block; margin-inline-start: 10px; padding: 2px 10px;
  border: 1px solid var(--vis-ring); border-radius: 999px;
  font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: var(--theme);
}

.lh-visit__notes { margin: 0; padding: 0; list-style: none; }
.lh-visit__notes li { padding-block: 4px; font-size: 1rem; line-height: 1.6; color: var(--muted); }
.lh-visit__notes strong { color: var(--text); }

.lh-visit__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  margin-top: clamp(18px, 2.4vw, 24px); padding: 13px 26px;
  border-radius: 999px; border: 2px solid var(--theme);
  background: var(--theme); color: var(--on-theme);
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease;
}
.lh-visit__btn:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-visit__btn i { transition: translate .25s ease; }
.lh-visit__btn:hover i { translate: 3px 0; }
.lh-visit__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

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

/* Tablet + mobile: stack, details first */
@media (max-width: 1024px) {
  .lh-visit__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 48px); }
  .lh-visit__info { order: -1; }
  .lh-visit__map { flex: none; min-height: 0; aspect-ratio: 16 / 11; }
}
@media (max-width: 767px) {
  .lh-visit__map { aspect-ratio: 4 / 3.4; border-end-start-radius: 80px; }
  .lh-visit__block { grid-template-columns: 40px minmax(0, 1fr); column-gap: 14px; }
  .lh-visit__icon { width: 40px; height: 40px; font-size: 16px; }
  .lh-visit__row { flex-direction: column; align-items: flex-start; gap: 2px; }
  .lh-visit__row dd { text-align: start; }
  .lh-visit__btn { align-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-visit__map { animation: none; }
  .lh-visit__skel, .lh-visit__btn, .lh-visit__btn i { transition: none; }
}

/* ===== Contact: Map refinement (equal halves) ===== */
/* the map fills the left half; the right column alone sets the row height */
.lh-visit__mapcol { display: block; position: relative; flex: none; min-height: 440px; }
.lh-visit__map { position: absolute; inset: 0; flex: none; min-height: 0; aspect-ratio: auto; }

/* in dark mode, tone the light Google map down to match */
[data-theme="dark"] .lh-visit__map iframe {
  filter: invert(.92) hue-rotate(180deg) brightness(.92) contrast(.92);
}

/* tighter spacing keeps the map and details section compact */
.lh-visit { padding-block: clamp(40px, 5vw, 64px); }
.lh-visit__block { padding-block: 12px; }
.lh-visit__h { margin-bottom: 6px; }
.lh-visit__row { padding-block: 7px; }
.lh-visit__notes li { padding-block: 2px; }
.lh-visit__lead { margin-bottom: clamp(14px, 2vw, 20px); }

/* button + fallback link sit at the bottom, level with the map's bottom edge */
.lh-visit__actions { display: flex; flex-direction: column; align-items: flex-start; margin-top: auto; padding-top: clamp(16px, 2vw, 22px); }
.lh-visit__btn { margin-top: 0; padding: 13px 26px; }
.lh-visit__alt { margin: 14px 0 0; font-size: 14px; color: var(--muted); }
.lh-visit__alt a { font-weight: 700; color: var(--theme); text-underline-offset: 3px; }
.lh-visit__alt a:hover { text-decoration-thickness: 2px; }
.lh-visit__alt a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 3px; }

/* stacked layout: the map keeps a fixed shape */
@media (max-width: 1024px) {
  .lh-visit__mapcol { min-height: 0; aspect-ratio: 16 / 11; }
}
@media (max-width: 767px) {
  .lh-visit__mapcol { aspect-ratio: 4 / 3.4; }
  .lh-visit__btn { align-self: stretch; }
}


/* ===== Contact: Closing CTA ===== */
.lh-ccta {
  position: relative; isolation: isolate; overflow: hidden;
  display: flex; align-items: center;
  min-height: clamp(420px, 56vh, 560px);
  padding-block: clamp(96px, 10vw, 140px) clamp(64px, 8vw, 104px);
  background: var(--band-bg);
  font-family: var(--font-body);
}
.lh-ccta__bg { position: absolute; inset: 0; z-index: -2; }
.lh-ccta__bg img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: 70% center;   /* keeps the children on the visible side */
  filter: var(--photo-filter);
}
/* strongest at the inline-start side, fading toward the inline-end */
.lh-ccta__veil { position: absolute; inset: 0; z-index: -1; background: var(--ccta-veil); }

/* curve in the section-above color */
.lh-ccta__wave {
  position: absolute; inset-inline: 0; top: -1px; z-index: 1;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--shade); transform: scaleY(-1); pointer-events: none;
}

.lh-ccta__inner {
  position: relative; z-index: 2; width: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}
.lh-ccta__copy {
  max-width: 560px;
  display: flex; flex-direction: column; align-items: flex-start; text-align: start;
}

.lh-ccta__eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
  color: var(--vhero-accent);
}
.lh-ccta__eyebrow::before { content: ""; width: 28px; border-top: 2px solid var(--vhero-accent); }

.lh-ccta__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2.2rem, 4.6vw, 3.6rem);
  font-weight: 500; line-height: 1.08; letter-spacing: -.035em;
  text-wrap: balance; color: var(--vhero-ink);
}
.lh-ccta__title span { color: var(--vhero-accent); }

.lh-ccta__lead {
  margin: 0 0 30px; max-width: 46ch;
  font-size: clamp(1.02rem, 1.4vw, 1.15rem); line-height: 1.7;
  color: var(--vhero-soft);
}

.lh-ccta__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-ccta__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 15px 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.lh-ccta__btn i { transition: translate .25s ease; }
.lh-ccta__btn--main { background: var(--vhero-accent); color: var(--vhero-dark); border: 2px solid var(--vhero-accent); }
.lh-ccta__btn--main:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, .35); }
.lh-ccta__btn--main:hover i { translate: 3px 0; }
.lh-ccta__btn--ghost { background: transparent; color: var(--vhero-ink); border: 2px solid var(--vhero-glass-line); }
.lh-ccta__btn--ghost:hover { border-color: var(--vhero-ink); background: var(--vhero-glass); transform: translateY(-2px); }
.lh-ccta__btn:focus-visible { outline: 3px solid var(--vhero-accent); outline-offset: 4px; }

/* Tablet + mobile: the text can sit over most of the photo, so the veil is even */
@media (max-width: 1024px) {
  .lh-ccta__veil { background: var(--chero-veil); }
}
@media (max-width: 767px) {
  .lh-ccta { min-height: 0; }
  .lh-ccta__actions { flex-direction: column; align-self: stretch; max-width: 360px; width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-ccta__btn, .lh-ccta__btn i { transition: none; }
}


/* Contact page buttons match the home CTA sizing */
.lh-chero__btn,
.lh-visit__btn,
.lh-enq__btn {
  height: auto;
  padding: 16px 30px;
  font-size: 15.5px;
}



/* ===== Programs: Hero ===== */
.lh-phero {
  --ph-line: var(--border);
  --ph-ring: var(--border);
  position: relative; isolation: isolate; overflow: hidden;
  padding-block: clamp(36px, 5vw, 72px) clamp(120px, 13vw, 180px);
  background: var(--shade);
  font-family: var(--font-body);
}
.lh-phero__bg { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.lh-phero__bg img {
  display: block; width: 100%; height: 100%; object-fit: cover;
  object-position: center 42%; filter: var(--photo-filter);
}
.lh-phero__veil {
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, rgba(255,255,255,.92), rgba(255,255,255,.82) 52%, rgba(255,255,255,.88));
}
[data-theme="dark"] .lh-phero__veil {
  background: linear-gradient(90deg, rgba(13,27,20,.91), rgba(13,27,20,.82) 52%, rgba(13,27,20,.88));
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-phero {
    --ph-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --ph-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* two exactly equal halves */
.lh-phero__inner {
  position: relative; z-index: 1; width: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  column-gap: clamp(32px, 6vw, 88px);
}

/* START: copy */
.lh-phero__copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }

.lh-phero__crumbs { margin-bottom: 22px; }
.lh-phero__crumbs ol {
  display: flex; flex-wrap: wrap; align-items: center;
  margin: 0; padding: 0; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--muted);
}
.lh-phero__crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--ph-ring); }
.lh-phero__crumbs a { color: var(--theme); text-decoration: none; }
.lh-phero__crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lh-phero__crumbs a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

.lh-phero__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--ph-ring); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-phero__title {
  margin: 0 0 20px;
  font-family: var(--font-heading);
  font-size: clamp(2.4rem, 5vw, 4.2rem);
  font-weight: 500; line-height: 1.04; letter-spacing: -.035em;
  text-wrap: balance; color: var(--text);
}
.lh-phero__title span { color: var(--theme); }
.lh-phero__lead {
  margin: 0 0 32px; max-width: 46ch;
  font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.7; color: var(--muted);
}

.lh-phero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-phero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.lh-phero__btn i { transition: translate .25s ease; }
.lh-phero__btn--main { background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-phero__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-phero__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--ph-ring); }
.lh-phero__btn--ghost:hover { border-color: var(--theme); transform: translateY(-2px); }
.lh-phero__btn--ghost:hover i { translate: 3px 0; }
.lh-phero__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

.lh-phero__note {
  display: flex; align-items: flex-start; gap: 10px;
  margin: 24px 0 0; max-width: 44ch;
  font-size: 14.5px; line-height: 1.6; color: var(--muted);
}
.lh-phero__note i { margin-top: 3px; color: var(--theme); }

/* END: numbered index (unboxed, closed top and bottom) */
.lh-phero__index { min-width: 0; }
.lh-phero__index-title {
  margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--theme);
}
.lh-phero__list {
  margin: 0; padding: 0; list-style: none;
  border-block: 1px solid var(--ph-ring);
}
.lh-phero__item + .lh-phero__item { border-top: 1px solid var(--ph-line); }

.lh-phero__link {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center; column-gap: clamp(14px, 2vw, 24px);
  padding-block: 16px; padding-inline: 0 10px;
  color: var(--text); text-decoration: none;
  transition: padding-inline-start .25s ease, background-color .25s ease;
}
.lh-phero__link:hover { padding-inline-start: 14px; background: var(--shade-strong); }
.lh-phero__link:focus-visible { outline: 3px solid var(--theme); outline-offset: -3px; }

.lh-phero__num {
  min-width: 2.1ch;
  font-family: var(--font-heading); font-variant-numeric: tabular-nums;
  font-size: clamp(1.9rem, 3.2vw, 2.6rem); font-weight: 600; line-height: 1;
  letter-spacing: -.02em; color: var(--theme);       /* solid fallback */
  transition: color .25s ease;
}
@supports (-webkit-text-stroke: 1px #000) {
  .lh-phero__num { color: transparent; -webkit-text-stroke: 1.5px var(--theme); }
  .lh-phero__link:hover .lh-phero__num,
  .lh-phero__link:focus-visible .lh-phero__num { color: var(--theme); }
}

.lh-phero__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.lh-phero__name {
  font-family: var(--font-heading);
  font-size: clamp(1.05rem, 1.6vw, 1.25rem); font-weight: 600; line-height: 1.25; color: var(--text);
}
.lh-phero__desc { font-size: 14.5px; line-height: 1.5; color: var(--muted); }

.lh-phero__arrow {
  flex: none; width: 40px; height: 40px; display: grid; place-items: center;
  border: 1px solid var(--ph-ring); border-radius: 50%;
  color: var(--theme); font-size: 14px;
  transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.lh-phero__arrow i { transition: translate .25s ease; }
.lh-phero__link:hover .lh-phero__arrow,
.lh-phero__link:focus-visible .lh-phero__arrow { background: var(--theme); border-color: var(--theme); color: var(--on-theme); }
.lh-phero__link:hover .lh-phero__arrow i,
.lh-phero__link:focus-visible .lh-phero__arrow i { translate: 3px 0; }

/* hills (bottom edge) */
.lh-phero__hills {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 0;
  display: block; width: 100%; height: clamp(70px, 9vw, 130px);
  pointer-events: none;
}
.lh-phero__hill--0  { fill: var(--wave-0); }
.lh-phero__hill--2  { fill: var(--wave-2); }
.lh-phero__hill--1  { fill: var(--wave-1); }
.lh-phero__hill--bg { fill: var(--bg); }

/* Tablet: stacked */
@media (max-width: 1024px) {
  .lh-phero__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(36px, 6vw, 56px); }
  .lh-phero__copy { align-items: center; text-align: center; }
  .lh-phero__crumbs ol { justify-content: center; }
  .lh-phero__lead { margin-inline: auto; }
  .lh-phero__actions { justify-content: center; }
  .lh-phero__note { justify-content: center; text-align: start; }
  .lh-phero__index { width: 100%; max-width: 680px; margin-inline: auto; }
}

/* Mobile */
@media (max-width: 767px) {
  .lh-phero__actions { flex-direction: column; align-self: stretch; }
  .lh-phero__link { padding-block: 14px; }
  .lh-phero__arrow { width: 34px; height: 34px; font-size: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-phero__btn, .lh-phero__btn i,
  .lh-phero__link, .lh-phero__num,
  .lh-phero__arrow, .lh-phero__arrow i { transition: none; }
  .lh-phero__btn--main:hover, .lh-phero__btn--ghost:hover { transform: none; }
}

/* ===== Programs: Sticky program nav ===== */
:root {
  --pn-top: 80px;                      /* = sticky header height */
  --pn-h: 70px;                        /* = this bar's height */
  --pn-pad: clamp(16px, 3vw, 32px);
}
@media (max-width: 1024px) { :root { --pn-top: 68px; } }
@media (max-width: 767px)  { :root { --pn-h: 62px; } }

/* every anchor target clears the header + this bar */
#early-intervention, #speech-language, #behavior-support,
#sensory-motor, #academic-support, #life-skills,
#lhProgGlance, #lhProgTeam, #lhProgCta {
  scroll-margin-top: calc(var(--pn-top) + var(--pn-h) + 16px);
}

/* intro sentence (not sticky) */
.lh-pnav__intro {
  max-width: 1280px; margin-inline: auto;
  padding: clamp(20px, 3vw, 36px) var(--pn-pad) clamp(18px, 2.4vw, 28px);
  text-align: center; font-family: var(--font-body);
}
.lh-pnav__intro p {
  margin: 0 auto; max-width: 56ch;
  font-size: clamp(1rem, 1.3vw, 1.12rem); line-height: 1.7; color: var(--muted);
}

/* zero-height marker used to detect "stuck" */
.lh-pnav__sentinel { display: block; height: 1px; margin-bottom: -1px; pointer-events: none; }

/* the sticky bar: closed top and bottom lines */
.lh-pnav {
  --pn-line: var(--border);
  --pn-ring: var(--border);
  position: sticky; top: var(--pn-top); z-index: 900;
  box-sizing: border-box; height: var(--pn-h);
  background: var(--bg);
  border-block: 1px solid var(--pn-line);
  font-family: var(--font-body);
  transition: box-shadow .25s ease;
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-pnav {
    --pn-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --pn-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}
.lh-pnav.is-stuck { box-shadow: var(--shadow); }

.lh-pnav__wrap {
  position: relative; height: 100%;
  max-width: 1280px; margin-inline: auto; padding-inline: var(--pn-pad);
}

/* scrolls sideways when the pills don't fit; scrollbar hidden */
.lh-pnav__scroller {
  height: 100%; display: flex; align-items: center;
  padding-inline: 6px;
  overflow-x: auto; overflow-y: hidden;
  overscroll-behavior-x: contain;
  scrollbar-width: none; -ms-overflow-style: none;
  -webkit-overflow-scrolling: touch;
}
.lh-pnav__scroller::-webkit-scrollbar { display: none; }

/* margin-inline:auto centers the row when it fits, and never clips when it doesn't */
.lh-pnav__list {
  display: flex; gap: 10px; flex: none;
  width: max-content; margin: 0; margin-inline: auto; padding: 0; list-style: none;
}
.lh-pnav__list li { flex: none; }

.lh-pnav__pill {
  display: inline-flex; align-items: center; gap: 9px;
  height: 44px; padding-inline: 18px;
  border: 1px solid var(--pn-ring); border-radius: 999px;
  background: transparent; color: var(--theme);
  font-size: 14.5px; font-weight: 700; line-height: 1; white-space: nowrap;
  text-decoration: none;
  transition: background-color .25s ease, border-color .25s ease, color .25s ease;
}
.lh-pnav__n {
  font-family: var(--font-heading); font-variant-numeric: tabular-nums;
  font-size: 12.5px; font-weight: 600; color: var(--muted);
  transition: color .25s ease;
}
.lh-pnav__pill:hover { background: var(--shade-strong); border-color: var(--theme); }
.lh-pnav__pill:focus-visible { outline: 3px solid var(--theme); outline-offset: 2px; }

/* current section */
.lh-pnav__pill[aria-current="true"] {
  background: var(--theme); border-color: var(--theme); color: var(--on-theme);
}
.lh-pnav__pill[aria-current="true"] .lh-pnav__n { color: var(--on-theme); }

/* soft edge fades that appear only when there is more to scroll */
.lh-pnav__wrap::before,
.lh-pnav__wrap::after {
  content: ""; position: absolute; top: 0; bottom: 0; z-index: 1;
  width: 34px; opacity: 0; pointer-events: none; transition: opacity .2s ease;
}
.lh-pnav__wrap::before { inset-inline-start: var(--pn-pad); background: linear-gradient(to right, var(--bg) 25%, transparent); }
.lh-pnav__wrap::after  { inset-inline-end: var(--pn-pad);   background: linear-gradient(to left,  var(--bg) 25%, transparent); }
.lh-pnav__wrap.has-start::before,
.lh-pnav__wrap.has-end::after { opacity: 1; }

@media (max-width: 767px) {
  .lh-pnav__pill { height: 40px; padding-inline: 14px; font-size: 13.5px; }
  .lh-pnav__list { gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-pnav, .lh-pnav__pill, .lh-pnav__n,
  .lh-pnav__wrap::before, .lh-pnav__wrap::after { transition: none; }
}


/* ===== Programs: Chapters ===== */
.lh-pchap {
  --pc-line: var(--border);
  --pc-ring: var(--border);
  --pc-fill: var(--shade-strong);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-pchap {
    --pc-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --pc-ring: color-mix(in srgb, var(--theme) 50%, transparent);
    --pc-fill: color-mix(in srgb, var(--theme) 22%, transparent);
  }
}

/* each chapter: full width, thin line between chapters, gentle shade on every second one */
.lh-pchap__item { padding-block: clamp(48px, 6vw, 88px); border-top: 1px solid var(--pc-line); }
.lh-pchap__item:first-child { border-top: 0; }
.lh-pchap__item:last-child { border-bottom: 1px solid var(--pc-ring); }
.lh-pchap__item:nth-child(even) { background: var(--shade); }

/* two exactly equal halves; the photo column stretches to the copy */
.lh-pchap__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(32px, 6vw, 88px);
}

/* photo fills its whole half, one soft organic corner */
.lh-pchap__media {
  position: relative; min-height: 440px; margin: 0; overflow: hidden;
  border-radius: 28px; border-start-start-radius: 150px;
  box-shadow: var(--shadow);
}
.lh-pchap__media img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; filter: var(--photo-filter);
}
/* alternate sides: photo moves to the inline-end, the soft corner follows */
.lh-pchap__item--flip .lh-pchap__media {
  order: 2;
  border-start-start-radius: 28px; border-start-end-radius: 150px;
}

/* copy */
.lh-pchap__copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }

.lh-pchap__head { display: flex; align-items: center; gap: 18px; margin-bottom: 14px; }
.lh-pchap__num {
  font-family: var(--font-heading); font-variant-numeric: tabular-nums;
  font-size: clamp(4rem, 8vw, 6.5rem); font-weight: 700; line-height: .9; letter-spacing: -.04em;
  color: var(--theme);                                  /* solid fallback */
}
@supports (-webkit-text-stroke: 1px #000) {
  .lh-pchap__num { color: transparent; -webkit-text-stroke: 2px var(--theme); transition: color .6s ease .15s; }
  .lh-pchap__item.is-in .lh-pchap__num { color: var(--pc-fill); }   /* soft fill once in view */
}
.lh-pchap__icon {
  flex: none; width: 54px; height: 54px; display: grid; place-items: center;
  border: 1px solid var(--pc-ring); border-radius: 50%;
  background: var(--surface); color: var(--theme); font-size: 20px;
}

.lh-pchap__title {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: clamp(1.9rem, 3.4vw, 2.8rem); font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-pchap__lead { margin: 0; max-width: 52ch; font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.7; color: var(--muted); }

.lh-pchap__sub {
  margin: 28px 0 8px;
  font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
  color: var(--theme);
}

/* divided list, closed top and bottom */
.lh-pchap__list { align-self: stretch; margin: 0; padding: 0; list-style: none; border-block: 1px solid var(--pc-ring); }
.lh-pchap__list li {
  display: flex; align-items: flex-start; gap: 12px;
  padding-block: 12px; font-size: 15.5px; line-height: 1.5; color: var(--text);
}
.lh-pchap__list li + li { border-top: 1px solid var(--pc-line); }
.lh-pchap__list i { flex: none; margin-top: 5px; font-size: 13px; color: var(--theme); }

/* "Good to know": one row with thin vertical dividers */
.lh-pchap__facts {
  align-self: stretch; margin: 0;
  display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr);
  border-block: 1px solid var(--pc-ring);
}
.lh-pchap__fact { margin: 0; padding: 14px 16px; min-width: 0; }
.lh-pchap__fact:first-child { padding-inline-start: 0; }
.lh-pchap__fact + .lh-pchap__fact { border-inline-start: 1px solid var(--pc-line); }
.lh-pchap__fact dt { margin: 0 0 4px; font-size: 12.5px; font-weight: 700; color: var(--theme); }
.lh-pchap__fact dd { margin: 0; font-size: 14.5px; line-height: 1.45; color: var(--text); }

.lh-pchap__ask {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 26px;
  font-size: 15px; font-weight: 700; color: var(--theme);
  text-decoration: underline; text-decoration-color: var(--pc-ring); text-underline-offset: 5px;
  transition: text-decoration-color .25s ease;
}
.lh-pchap__ask i { transition: translate .25s ease; }
.lh-pchap__ask:hover { text-decoration-color: var(--theme); }
.lh-pchap__ask:hover i { translate: 4px 0; }
.lh-pchap__ask:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; border-radius: 4px; }

/* Tablet + mobile: stacked, photo first */
@media (max-width: 1024px) {
  .lh-pchap__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(28px, 5vw, 44px); }
  .lh-pchap__media,
  .lh-pchap__item--flip .lh-pchap__media { order: 0; min-height: 0; aspect-ratio: 16 / 10; }
  .lh-pchap__media { border-start-start-radius: 110px; }
  .lh-pchap__item--flip .lh-pchap__media { border-start-start-radius: 28px; border-start-end-radius: 110px; }
}
@media (max-width: 767px) {
  .lh-pchap__media { aspect-ratio: 4 / 3; border-start-start-radius: 80px; }
  .lh-pchap__item--flip .lh-pchap__media { border-start-start-radius: 28px; border-start-end-radius: 80px; }
  .lh-pchap__icon { width: 46px; height: 46px; font-size: 17px; }
  .lh-pchap__facts { grid-auto-flow: row; grid-auto-columns: auto; }
  .lh-pchap__fact,
  .lh-pchap__fact:first-child { padding-inline: 0; }
  .lh-pchap__fact + .lh-pchap__fact { border-inline-start: 0; border-top: 1px solid var(--pc-line); }
}

@media (prefers-reduced-motion: reduce) {
  .lh-pchap__num, .lh-pchap__ask, .lh-pchap__ask i { transition: none; }
}



/* ===== Programs: Who you'll work with ===== */
.lh-pwho {
  --pw-line: var(--border);
  --pw-ring: var(--border);
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--bg);
  border-bottom: 1px solid var(--pw-ring);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-pwho {
    --pw-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --pw-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}
.lh-pwho__inner { max-width: 1280px; margin-inline: auto; padding-inline: clamp(16px, 3vw, 32px); }

/* head: two equal columns */
.lh-pwho__head {
  display: grid; grid-template-columns: minmax(0, 760px);
  justify-content: center; justify-items: center; row-gap: 16px;
  margin-bottom: clamp(32px, 4.5vw, 52px);
  text-align: center;
}
.lh-pwho__headcopy, .lh-pwho__headside { min-width: 0; text-align: center; }
.lh-pwho__headcopy { display: flex; flex-direction: column; align-items: center; }
.lh-pwho__headside { display: flex; flex-direction: column; align-items: center; }
.lh-pwho__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 16px; padding: 8px 16px;
  border: 1px solid var(--pw-ring); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-pwho__title {
  margin: 0; font-family: var(--font-heading);
  font-size: clamp(1.9rem, 3.8vw, 3rem); font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  text-wrap: balance; color: var(--text);
}
.lh-pwho__lead { margin: 0 auto 16px; max-width: 56ch; font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.7; color: var(--muted); }
.lh-pwho__more {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 15px; font-weight: 700; color: var(--theme);
  text-decoration: underline; text-decoration-color: var(--pw-ring); text-underline-offset: 5px;
  transition: text-decoration-color .25s ease;
}
.lh-pwho__more i { transition: translate .25s ease; }
.lh-pwho__more:hover { text-decoration-color: var(--theme); }
.lh-pwho__more:hover i { translate: 4px 0; }
.lh-pwho__more:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; border-radius: 4px; }

/* the strip: four equal columns, equal gaps */
.lh-pwho__list {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 3vw, 40px);
  margin: 0; padding: 0; list-style: none;
}
.lh-pwho__item { min-width: 0; display: flex; flex-direction: column; }

/* matching portraits: same ratio, same radius, one soft corner each */
.lh-pwho__photo {
  margin: 0; aspect-ratio: 4 / 5; overflow: hidden;
  border: 1px solid var(--pw-line);
  border-radius: 24px; border-start-start-radius: 80px;
  background: var(--shade);
}
.lh-pwho__photo img {
  display: block; width: 100%; height: 100%;
  object-fit: cover; object-position: center top; filter: var(--photo-filter);
}

/* text under every photo, with a thin divider */
.lh-pwho__info {
  display: flex; flex: 1 1 auto; flex-direction: column; align-items: flex-start;
  margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--pw-line);
}
.lh-pwho__role { margin: 0 0 4px; font-size: 13px; font-weight: 700; line-height: 1.4; color: var(--theme); }
.lh-pwho__name {
  margin: 0 0 8px; font-family: var(--font-heading);
  font-size: clamp(1.1rem, 1.6vw, 1.3rem); font-weight: 600; line-height: 1.25; color: var(--text);
}
.lh-pwho__bio { margin: 0 0 12px; font-size: 14.5px; line-height: 1.6; color: var(--muted); }
.lh-pwho__prog {
  display: inline-flex; align-items: center; gap: 8px; margin-top: auto;
  font-size: 14px; font-weight: 700; line-height: 1.3; color: var(--theme);
  text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 4px;
  transition: text-decoration-color .25s ease;
}
.lh-pwho__prog:hover { text-decoration-color: var(--theme); }
.lh-pwho__prog:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

/* Tablet: two per row */
@media (max-width: 1024px) {
  .lh-pwho__head { grid-template-columns: minmax(0, 1fr); row-gap: 14px; align-items: center; }
  .lh-pwho__list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: clamp(28px, 5vw, 44px); }
  .lh-pwho__photo { border-start-start-radius: 100px; }
}
/* Small phones: one column */
@media (max-width: 479px) {
  .lh-pwho__list { grid-template-columns: minmax(0, 1fr); max-width: 360px; margin-inline: auto; }
  .lh-pwho__photo { border-start-start-radius: 90px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-pwho__more, .lh-pwho__more i, .lh-pwho__prog { transition: none; }
}



/* ===== Programs: Split CTA ===== */
.lh-pcta {
  --pcta-ring: var(--border);
  /* extra bottom space: the footer wave overlaps the last ~90px of this section */
  padding-block: clamp(56px, 7vw, 104px) clamp(110px, 12vw, 170px);
  background: var(--shade);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-pcta { --pcta-ring: color-mix(in srgb, var(--theme) 50%, transparent); }
}

/* two exactly equal halves */
.lh-pcta__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  column-gap: clamp(32px, 6vw, 88px);
}

/* text half */
.lh-pcta__copy { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; }
.lh-pcta__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--pcta-ring); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-pcta__title {
  margin: 0 0 18px; font-family: var(--font-heading);
  font-size: clamp(2rem, 4.2vw, 3.4rem); font-weight: 500; line-height: 1.08; letter-spacing: -.035em;
  text-wrap: balance; color: var(--text);
}
.lh-pcta__title span { color: var(--theme); }
.lh-pcta__lead { margin: 0 0 30px; max-width: 42ch; font-size: clamp(1.02rem, 1.4vw, 1.15rem); line-height: 1.7; color: var(--muted); }

.lh-pcta__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-pcta__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.lh-pcta__btn--main { background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-pcta__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-pcta__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--pcta-ring); }
.lh-pcta__btn--ghost:hover { border-color: var(--theme); background: var(--shade-strong); transform: translateY(-2px); }
.lh-pcta__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

/* photo half: fills its whole half to the same bottom edge, one soft organic corner */
.lh-pcta__media {
  position: relative; min-height: 460px; margin: 0; overflow: hidden;
  border-radius: 28px; border-start-end-radius: 150px;
  box-shadow: var(--shadow);
}
.lh-pcta__media img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; object-position: center 40%;
  filter: var(--photo-filter);
}

/* Tablet + mobile: stacked, photo first */
@media (max-width: 1024px) {
  .lh-pcta__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(28px, 5vw, 44px); }
  .lh-pcta__media { order: -1; min-height: 0; aspect-ratio: 16 / 10; border-start-end-radius: 110px; }
  .lh-pcta__copy { align-items: center; text-align: center; }
  .lh-pcta__lead { margin-inline: auto; }
  .lh-pcta__actions { justify-content: center; }
}
@media (max-width: 767px) {
  .lh-pcta__media { aspect-ratio: 4 / 3; border-start-end-radius: 80px; }
  .lh-pcta__actions { flex-direction: column; align-self: stretch; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-pcta__btn { transition: none; }
  .lh-pcta__btn--main:hover, .lh-pcta__btn--ghost:hover { transform: none; }
}


/* ===== Parent Resources: Hero ===== */
.lh-rhero {
  --rh-line: var(--border);
  --rh-ring: var(--border);
  position: relative; overflow: hidden;
  min-height: min(72vh, 720px);
  display: flex; align-items: center;
  padding-block: clamp(36px, 5vw, 72px) clamp(90px, 10vw, 140px);
  background: var(--shade);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-rhero {
    --rh-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --rh-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* two exactly equal halves */
.lh-rhero__inner {
  position: relative; z-index: 1; width: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center; column-gap: clamp(32px, 6vw, 88px);
}

/* START: copy */
.lh-rhero__copy { display: flex; flex-direction: column; align-items: flex-start; min-width: 0; }

.lh-rhero__crumbs { margin-bottom: 22px; }
.lh-rhero__crumbs ol {
  display: flex; flex-wrap: wrap; align-items: center;
  margin: 0; padding: 0; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--muted);
}
.lh-rhero__crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--rh-ring); }
.lh-rhero__crumbs a { color: var(--theme); text-decoration: none; }
.lh-rhero__crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lh-rhero__crumbs a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

.lh-rhero__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--rh-ring); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-rhero__title {
  margin: 0 0 20px; font-family: var(--font-heading);
  font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 500; line-height: 1.04; letter-spacing: -.035em;
  text-wrap: balance; color: var(--text);
}
.lh-rhero__title span { color: var(--theme); }
.lh-rhero__lead { margin: 0 0 30px; max-width: 46ch; font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.7; color: var(--muted); }

.lh-rhero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-rhero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.lh-rhero__btn--main { background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-rhero__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-rhero__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--rh-ring); }
.lh-rhero__btn--ghost:hover { border-color: var(--theme); background: var(--shade-strong); transform: translateY(-2px); }
.lh-rhero__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

/* jump links: text only, thin dividers */
.lh-rhero__jump { margin-top: 30px; }
.lh-rhero__jump-title {
  margin: 0 0 10px; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--theme);
}
.lh-rhero__jump-list { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.lh-rhero__jump-list li { padding-block: 4px; padding-inline: 0 16px; }
.lh-rhero__jump-list li + li { padding-inline-start: 16px; border-inline-start: 1px solid var(--rh-line); }
.lh-rhero__jump-list a {
  font-size: 14.5px; font-weight: 600; color: var(--text);
  text-decoration: underline; text-decoration-color: var(--rh-ring); text-underline-offset: 5px;
  transition: text-decoration-color .25s ease, color .25s ease;
}
.lh-rhero__jump-list a:hover { color: var(--theme); text-decoration-color: var(--theme); }
.lh-rhero__jump-list a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

/* END: illustration */
.lh-rhero__media { display: grid; place-items: center; min-width: 0; }
.lh-rhero__art { display: block; width: 100%; max-width: 520px; height: auto; overflow: visible; }

.lh-rhero__line {
  fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
.lh-rhero__f-a     { fill: var(--tree-a); }
.lh-rhero__f-b     { fill: var(--tree-b); }
.lh-rhero__f-heart { fill: var(--heart); }
.lh-rhero__f-sun   { fill: var(--sun); }
.lh-rhero__f-house { fill: var(--house); }

/* wave into the next section */
.lh-rhero__wave {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 2;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}

/* anchor targets for the next sections (sticky header is 80px) */
#lhResPrep, #lhResHome, #lhResWords, #lhResSupport, #lhResCta { scroll-margin-top: 88px; }

/* Tablet: stacked */
@media (max-width: 1024px) {
  .lh-rhero { min-height: 0; }
  .lh-rhero__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 56px); }
  .lh-rhero__copy { align-items: center; text-align: center; }
  .lh-rhero__lead { margin-inline: auto; }
  .lh-rhero__actions { justify-content: center; }
  .lh-rhero__jump { width: 100%; }
  .lh-rhero__jump-list { justify-content: center; }
  .lh-rhero__art { max-width: 440px; }
  #lhResPrep, #lhResHome, #lhResWords, #lhResSupport, #lhResCta { scroll-margin-top: 76px; }   /* header is 68px here */
}

/* Mobile */
@media (max-width: 767px) {
  .lh-rhero__actions { flex-direction: column; align-self: stretch; }
  .lh-rhero__jump-list { flex-direction: column; align-items: stretch; text-align: start; }
  .lh-rhero__jump-list li,
  .lh-rhero__jump-list li + li { padding-inline: 0; border-inline-start: 0; padding-block: 10px; }
  .lh-rhero__jump-list li + li { border-top: 1px solid var(--rh-line); }
  .lh-rhero__art { max-width: 340px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-rhero__btn, .lh-rhero__jump-list a { transition: none; }
  .lh-rhero__btn--main:hover, .lh-rhero__btn--ghost:hover { transform: none; }
}

/* ===== Parent Resources: Hero ===== */
.lh-rhero {
  --rh-line: var(--border);
  --rh-ring: var(--border);
  position: relative; overflow: hidden;
  min-height: min(72vh, 720px);
  display: flex; align-items: center;
  padding-block: clamp(36px, 5vw, 72px) clamp(90px, 10vw, 140px);
  background: var(--shade);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-rhero {
    --rh-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --rh-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* two exactly equal halves: photo on the inline-start side, content on the inline-end side */
.lh-rhero__inner {
  position: relative; z-index: 1; width: 100%;
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch; column-gap: clamp(32px, 6vw, 88px);
}

/* CONTENT */
.lh-rhero__copy {
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center;
  min-width: 0;
}

.lh-rhero__crumbs { margin-bottom: 22px; }
.lh-rhero__crumbs ol {
  display: flex; flex-wrap: wrap; align-items: center;
  margin: 0; padding: 0; list-style: none;
  font-size: 14px; font-weight: 600; color: var(--muted);
}
.lh-rhero__crumbs li + li::before { content: "/"; margin-inline: 10px; color: var(--rh-ring); }
.lh-rhero__crumbs a { color: var(--theme); text-decoration: none; }
.lh-rhero__crumbs a:hover { text-decoration: underline; text-underline-offset: 3px; }
.lh-rhero__crumbs a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

.lh-rhero__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0 0 18px; padding: 8px 16px;
  border: 1px solid var(--rh-ring); border-radius: 999px;
  background: var(--surface); color: var(--theme);
  font-size: 13px; font-weight: 700;
}
.lh-rhero__title {
  margin: 0 0 20px; font-family: var(--font-heading);
  font-size: clamp(2.4rem, 5vw, 4.2rem); font-weight: 500; line-height: 1.04; letter-spacing: -.035em;
  text-wrap: balance; color: var(--text);
}
.lh-rhero__title span { color: var(--theme); }
.lh-rhero__lead { margin: 0 0 30px; max-width: 46ch; font-size: clamp(1.02rem, 1.4vw, 1.18rem); line-height: 1.7; color: var(--muted); }

.lh-rhero__actions { display: flex; flex-wrap: wrap; gap: 14px; }
.lh-rhero__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding: 0 28px; border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none;
  transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease, background-color .25s ease;
}
.lh-rhero__btn--main { background: var(--theme); color: var(--on-theme); border: 2px solid var(--theme); }
.lh-rhero__btn--main:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.lh-rhero__btn--ghost { background: transparent; color: var(--theme); border: 2px solid var(--rh-ring); }
.lh-rhero__btn--ghost:hover { border-color: var(--theme); background: var(--shade-strong); transform: translateY(-2px); }
.lh-rhero__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 4px; }

/* jump links: text only, thin dividers */
.lh-rhero__jump { margin-top: 30px; }
.lh-rhero__jump-title {
  margin: 0 0 10px; font-size: 12.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--theme);
}
.lh-rhero__jump-list { display: flex; flex-wrap: wrap; margin: 0; padding: 0; list-style: none; }
.lh-rhero__jump-list li { padding-block: 4px; padding-inline: 0 16px; }
.lh-rhero__jump-list li + li { padding-inline-start: 16px; border-inline-start: 1px solid var(--rh-line); }
.lh-rhero__jump-list a {
  font-size: 14.5px; font-weight: 600; color: var(--text);
  text-decoration: underline; text-decoration-color: var(--rh-ring); text-underline-offset: 5px;
  transition: text-decoration-color .25s ease, color .25s ease;
}
.lh-rhero__jump-list a:hover { color: var(--theme); text-decoration-color: var(--theme); }
.lh-rhero__jump-list a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 4px; }

/* PHOTO: fills its whole half, one soft organic corner */
.lh-rhero__media {
  order: -1;                                    /* puts the photo on the inline-start side */
  position: relative; min-height: 480px; margin: 0; overflow: hidden;
  border: 1px solid var(--rh-line);
  border-radius: 28px; border-start-start-radius: 160px;
  background: var(--shade-strong);
  box-shadow: var(--shadow);
}
.lh-rhero__media img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%;
  filter: var(--photo-filter);
}

/* wave into the next section */
.lh-rhero__wave {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: 2;
  display: block; width: 100%; height: clamp(40px, 6vw, 90px);
  fill: var(--bg); pointer-events: none;
}

/* anchor targets for the next sections (sticky header is 80px) */
#lhResPrep, #lhResHome, #lhResWords, #lhResSupport, #lhResCta { scroll-margin-top: 88px; }

/* Tablet: stacked, content first, photo below at a fixed ratio */
@media (max-width: 1024px) {
  .lh-rhero { min-height: 0; }
  .lh-rhero__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 56px); }
  .lh-rhero__copy { align-items: center; text-align: center; }
  .lh-rhero__lead { margin-inline: auto; }
  .lh-rhero__actions { justify-content: center; }
  .lh-rhero__jump { width: 100%; }
  .lh-rhero__jump-list { justify-content: center; }
  .lh-rhero__media {
    order: 0; min-height: 0; aspect-ratio: 16 / 10;
    width: min(100%, 680px); margin-inline: auto;
    border-start-start-radius: 110px;
  }
  #lhResPrep, #lhResHome, #lhResWords, #lhResSupport, #lhResCta { scroll-margin-top: 76px; }   /* header is 68px here */
}

/* Mobile */
@media (max-width: 767px) {
  .lh-rhero__actions { flex-direction: column; align-self: stretch; }
  .lh-rhero__jump-list { flex-direction: column; align-items: stretch; text-align: start; }
  .lh-rhero__jump-list li,
  .lh-rhero__jump-list li + li { padding-inline: 0; border-inline-start: 0; padding-block: 10px; }
  .lh-rhero__jump-list li + li { border-top: 1px solid var(--rh-line); }
  .lh-rhero__media { aspect-ratio: 4 / 3; border-radius: 24px; border-start-start-radius: 80px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-rhero__btn, .lh-rhero__jump-list a { transition: none; }
  .lh-rhero__btn--main:hover, .lh-rhero__btn--ghost:hover { transform: none; }
}


/* ===== Parent Resources: Before your first visit ===== */
.lh-rprep {
  --rp-line: var(--border);
  --rp-ring: var(--border);
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--bg);
  font-family: var(--font-body);
}
@supports (color: color-mix(in srgb, red 50%, blue)) {
  .lh-rprep {
    --rp-line: color-mix(in srgb, var(--theme) 30%, transparent);
    --rp-ring: color-mix(in srgb, var(--theme) 50%, transparent);
  }
}

/* ===== Section 2: Before Your First Visit (Card Grid) ===== */
.lh-prep {
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--surface);
  font-family: var(--font-body);
}
.lh-prep__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

.lh-prep__header {
  display: flex; justify-content: space-between; align-items: flex-end; flex-wrap: wrap;
  gap: 24px; margin-bottom: clamp(32px, 5vw, 48px);
}
.lh-prep__eyebrow {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 12px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--theme);
}
.lh-prep__eyebrow::before { content: ""; width: 28px; border-top: 2px solid var(--theme); }

.lh-prep__title {
  margin: 0 0 14px; font-family: var(--font-heading);
  font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 500; line-height: 1.1; letter-spacing: -.03em; color: var(--text);
}
.lh-prep__title span { color: var(--theme); }
.lh-prep__lead { margin: 0; max-width: 58ch; font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.65; color: var(--muted); }

/* Control & Progress Bar */
.lh-prep__control { display: flex; flex-direction: column; gap: 12px; min-width: 280px; }
.lh-prep__status-box { display: flex; flex-direction: column; gap: 6px; }
.lh-prep__status { font-size: 14px; font-weight: 700; color: var(--text); }
.lh-prep__bar-track {
  width: 100%; height: 6px; background: var(--shade); border-radius: 999px; overflow: hidden; border: 1px solid var(--border);
}
.lh-prep__bar-fill { width: 0%; height: 100%; background: var(--theme); transition: width .3s ease; }

.lh-prep__actions { display: flex; gap: 10px; }
.lh-prep__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 8px 18px; border-radius: 999px; font: 700 13px/1 var(--font-body);
  cursor: pointer; transition: all .2s ease;
}
.lh-prep__btn--print { background: var(--theme); color: var(--on-theme); border: 1px solid var(--theme); }
.lh-prep__btn--print:hover { opacity: .9; }
.lh-prep__btn--clear { background: var(--shade); color: var(--text); border: 1px solid var(--border); }
.lh-prep__btn--clear:hover { border-color: var(--theme); color: var(--theme); }

/* Card Grid matching your image exactly */
.lh-prep__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  margin-bottom: 36px;
}

.lh-card-chk { cursor: pointer; display: block; position: relative; }
.lh-card-chk__input { position: absolute; opacity: 0; width: 0; height: 0; }

.lh-card-chk__body {
  padding: 28px 24px;
  border-radius: 20px;
  background: var(--shade);
  border: 1px solid var(--border);
  height: 100%;
  display: flex;
  flex-direction: column;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.lh-card-chk:hover .lh-card-chk__body {
  border-color: var(--theme);
  transform: translateY(-2px);
  box-shadow: var(--shadow-sm);
}

.lh-card-chk__header {
  display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px;
}
.lh-card-chk__step {
  font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muted);
}

/* Green Check Circle */
.lh-card-chk__icon {
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(var(--theme-rgb, 46, 125, 50), 0.15);
  border: 1px solid var(--theme);
  display: flex; align-items: center; justify-content: center;
  color: var(--theme); font-size: 13px;
  transition: all .2s ease;
}

/* Checked state */
.lh-card-chk__input:checked + .lh-card-chk__body {
  border-color: var(--theme);
  background: var(--surface);
}

.lh-card-chk__input:checked + .lh-card-chk__body .lh-card-chk__icon {
  background: var(--theme);
  color: var(--on-theme);
}

.lh-card-chk__title {
  margin: 0 0 12px;
  min-height: 2.7em;
  font-family: var(--font-heading);
  font-size: 1.2rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--text);
}

.lh-card-chk__desc {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
  flex-grow: 1;
}

/* Bottom support note */
.lh-prep__footer {
  display: flex; justify-content: center; align-items: center; gap: 8px; font-size: 14px; color: var(--muted);
}
.lh-prep__footer i { color: var(--theme); }
.lh-prep__footer a { color: var(--text); font-weight: 700; text-decoration: underline; }
.lh-prep__footer a:hover { color: var(--theme); }

/* Responsive adjustments */
@media (max-width: 1024px) {
  .lh-prep__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  .lh-prep__grid { grid-template-columns: 1fr; }
  .lh-prep__header { flex-direction: column; align-items: flex-start; }
}



/* ===== Parent Resources: Help at home ===== */
.lh-rhome {
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--shade);
  font-family: var(--font-body);
}
.lh-rhome__inner {
  max-width: 1280px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch; column-gap: clamp(32px, 6vw, 88px);
}
.lh-rhome__copy { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.lh-rhome__eyebrow {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--theme);
}
.lh-rhome__eyebrow::before { content: ""; width: 28px; border-top: 2px solid var(--theme); }
.lh-rhome__title {
  margin: 0 0 16px; font-family: var(--font-heading);
  font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 500; line-height: 1.1; letter-spacing: -.03em;
  color: var(--text);
}
.lh-rhome__title span { color: var(--theme); }
.lh-rhome__lead { margin: 0 0 24px; max-width: 46ch; font-size: clamp(1rem, 1.3vw, 1.1rem); line-height: 1.7; color: var(--muted); }

/* Tablist */
.lh-rhome__tablist {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px;
}
.lh-rhome__tab {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 999px; border: 1px solid var(--border);
  background: var(--surface); color: var(--text);
  font: 700 14px/1 var(--font-body); cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease, color .2s ease;
}
.lh-rhome__tab:hover { border-color: var(--theme); color: var(--theme); }
.lh-rhome__tab[aria-selected="true"] { background: var(--theme); border-color: var(--theme); color: var(--on-theme); }
.lh-rhome__tab:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* Panels & unboxed tips with thin dividers */
.lh-rhome__panel { display: none; }
.lh-rhome__panel.is-active { display: block; }
.lh-rhome__panel ul { margin: 0; padding: 0; list-style: none; border-block: 1px solid var(--border); }
.lh-rhome__panel li {
  display: flex; align-items: flex-start; gap: 12px;
  padding-block: 14px; font-size: 15px; line-height: 1.6; color: var(--text);
}
.lh-rhome__panel li + li { border-top: 1px solid var(--border); }
.lh-rhome__panel i { flex: none; margin-top: 4px; color: var(--theme); font-size: 13px; }

/* Media photo half with soft organic corner & crossfade */
.lh-rhome__media {
  position: relative; min-height: 480px; margin: 0; overflow: hidden;
  border-radius: 28px; border-start-start-radius: 160px;
  background: var(--shade-strong); box-shadow: var(--shadow);
}
.lh-rhome__img {
  position: absolute; inset: 0; display: block;
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%;
  filter: var(--photo-filter); opacity: 0; transition: opacity .4s ease;
}
.lh-rhome__img.is-active { opacity: 1; }

@media (max-width: 1024px) {
  .lh-rhome__inner { grid-template-columns: minmax(0, 1fr); row-gap: clamp(32px, 6vw, 48px); }
  .lh-rhome__media { min-height: 0; aspect-ratio: 16 / 10; border-start-start-radius: 110px; }
}
@media (prefers-reduced-motion: reduce) {
  .lh-rhome__img { transition: none !important; }
}

/* ===== Section 4: Words You May Hear (Unboxed Editorial List) ===== */
.lh-words {
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--surface);
  font-family: var(--font-body);
}
.lh-words__inner {
  max-width: 1240px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
}

.lh-words__header {
  text-align: center; max-width: 680px; margin-inline: auto; margin-bottom: 32px;
}
.lh-words__eyebrow {
  display: inline-flex; align-items: center; gap: 12px; margin: 0 0 14px;
  font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--theme);
}
.lh-words__eyebrow::before, .lh-words__eyebrow::after { content: ""; width: 20px; border-top: 2px solid var(--theme); }

.lh-words__title {
  margin: 0 0 16px; font-family: var(--font-heading);
  font-size: clamp(2rem, 3.8vw, 3rem); font-weight: 500; line-height: 1.1; letter-spacing: -.03em; color: var(--text);
}
.lh-words__title span { color: var(--theme); }
.lh-words__lead { margin: 0 0 28px; font-size: clamp(1rem, 1.2vw, 1.1rem); line-height: 1.65; color: var(--muted); }

/* Live Search Box */
.lh-words__search-box {
  position: relative; max-width: 520px; margin-inline: auto;
}
.lh-words__search-box i {
  position: absolute; inset-inline-start: 18px; top: 50%; transform: translateY(-50%);
  color: var(--muted); font-size: 15px; pointer-events: none;
}
.lh-words__search-box input {
  width: 100%; padding: 14px 20px 14px 48px;
  border-radius: 999px; border: 1px solid var(--border);
  background: var(--shade); color: var(--text);
  font: 400 15px/1.4 var(--font-body);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.lh-words__search-box input:focus {
  outline: none; border-color: var(--theme);
  box-shadow: 0 0 0 3px rgba(var(--theme-rgb, 46, 125, 50), 0.15);
}

/* Category Filter Pills */
.lh-words__filters {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 8px;
  margin-bottom: 40px; padding-bottom: 16px;
}
.lh-words__filter-btn {
  padding: 8px 16px; border-radius: 999px;
  border: 1px solid var(--border); background: var(--shade);
  color: var(--text); font: 600 13px/1 var(--font-body);
  cursor: pointer; transition: all .2s ease;
}
.lh-words__filter-btn:hover { border-color: var(--theme); color: var(--theme); }
.lh-words__filter-btn.is-active {
  background: var(--theme); border-color: var(--theme); color: var(--on-theme);
}

/* Card-Free Editorial List Rows */
.lh-words__list {
  display: flex; flex-direction: column;
  border-top: 1px solid var(--border);
}

.lh-word-item {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: clamp(24px, 4vw, 48px);
  padding-block: clamp(28px, 3.5vw, 40px);
  border-bottom: 1px solid var(--border);
  transition: background-color .2s ease;
}

.lh-word-item:hover {
  background: rgba(var(--theme-rgb, 46, 125, 50), 0.02);
}

.lh-word-item__meta { display: flex; flex-direction: column; gap: 8px; }

.lh-word-item__category {
  font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--theme);
}

.lh-word-item__term {
  margin: 0; font-family: var(--font-heading);
  font-size: clamp(1.15rem, 1.5vw, 1.35rem); font-weight: 600; line-height: 1.3; color: var(--text);
}

.lh-word-item__content { display: flex; flex-direction: column; gap: 12px; }

.lh-word-item__def {
  margin: 0; font-size: 15px; line-height: 1.7; color: var(--muted);
}

.lh-word-item__practice {
  display: inline-flex; align-items: flex-start; gap: 10px;
  font-size: 13px; line-height: 1.5; color: var(--text);
}
.lh-word-item__practice i { color: var(--theme); margin-top: 3px; flex: none; }

/* Empty Search State */
.lh-words__empty { text-align: center; padding: 48px 20px; color: var(--muted); }
.lh-words__empty i { font-size: 32px; color: var(--theme); margin-bottom: 12px; display: block; }

@media (max-width: 600px) {
  .lh-words__filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .lh-words__filter-btn {
    width: 100%;
    min-height: 40px;
    padding-inline: 8px;
    white-space: nowrap;
  }
}
/* Responsive layout */
@media (max-width: 840px) {
  .lh-word-item { grid-template-columns: 1fr; gap: 12px; }
}



/* ===== Parent Resources: FAQ Section (Top Header + Horizontal Grid) ===== */
.lh-faq {
  padding-block: clamp(56px, 7vw, 104px);
  background: var(--shade);
  font-family: var(--font-body);
}

.lh-faq__inner {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: flex;
  flex-direction: column;
  gap: 0;
}

/* Centered Top Header */
.lh-faq__header {
  text-align: center;
  align-self: start;
  max-width: 720px;
  margin-inline: auto;
  margin-bottom: clamp(36px, 5vw, 56px);
}

.lh-faq__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 14px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--theme);
}
.lh-faq__eyebrow::before,
.lh-faq__eyebrow::after {
  content: "";
  width: 20px;
  border-top: 2px solid var(--theme);
}

.lh-faq__title {
  margin: 0 0 16px;
  font-family: var(--font-heading);
  font-size: clamp(2rem, 3.8vw, 3rem);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -.03em;
  color: var(--text);
}
.lh-faq__title span { color: var(--theme); }

.lh-faq__lead {
  margin: 0 auto;
  font-size: clamp(1rem, 1.2vw, 1.1rem);
  line-height: 1.7;
  color: var(--muted);
}

/* Horizontal Grid for Accordion Items */
.lh-faq__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
  align-items: start;
}

.lh-faq__column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

/* Accordion Card Styling */
.lh-accordion {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: var(--shadow-sm);
  transition: border-color .2s ease, box-shadow .2s ease;
}

.lh-accordion:hover { border-color: var(--theme); }
.lh-accordion[open] { border-color: var(--theme); box-shadow: var(--shadow); }

/* Summary Header */
.lh-accordion__summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 24px;
  cursor: pointer;
  user-select: none;
  list-style: none;
}
.lh-accordion__summary::-webkit-details-marker { display: none; }
.lh-accordion__summary:focus-visible {
  outline: 3px solid var(--theme);
  outline-offset: -3px;
}

.lh-accordion__question {
  font-family: var(--font-heading);
  font-size: 1.1rem;
  font-weight: 600;
  line-height: 1.4;
  color: var(--text);
}

.lh-accordion__icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  flex: none;
  border-radius: 50%;
  background: var(--shade);
  color: var(--theme);
  font-size: 13px;
  transition: transform .3s ease, background-color .2s ease, color .2s ease;
}

.lh-accordion[open] .lh-accordion__icon {
  transform: rotate(45deg);
  background: var(--theme);
  color: var(--on-theme);
}

/* Expanded Content */
.lh-accordion__content {
  padding: 0 24px 24px;
  border-top: 1px solid var(--border);
}

.lh-accordion__content p {
  margin: 16px 0 14px;
  font-size: 14px;
  line-height: 1.65;
  color: var(--muted);
}

.lh-accordion__tips {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lh-accordion__tips li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  line-height: 1.5;
  color: var(--text);
}

.lh-accordion__tips i {
  color: var(--theme);
  flex: none;
  margin-top: 3px;
  font-size: 12px;
}

.lh-faq__column {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

/* Responsive view */
@media (max-width: 1024px) {
  .lh-faq__inner { padding-inline: 16px; }
  .lh-faq__grid { grid-template-columns: minmax(0, 1fr); width: 100%; }
  .lh-faq__column,
  .lh-faq__column > .lh-accordion { width: 100%; max-width: none; }
}


/* Home 1 FAQ: keep the desktop composition isolated from Parent Resources styles */
#lhHomeFaq.lh-home1-faq .lh-faq__inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: start;
  gap: clamp(32px, 5vw, 72px);
}
#lhHomeFaq.lh-home1-faq .lh-faq__side { position: sticky; top: 112px; }
#lhHomeFaq.lh-home1-faq .lh-faq__head { text-align: start; }
#lhHomeFaq.lh-home1-faq .lh-faq__lead { margin-inline: 0; text-align: start; }
#lhHomeFaq.lh-home1-faq .lh-faq__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}
/* Home 1 FAQ: unique tablet/mobile stacking */
@media (max-width: 1024px) {
  #lhHomeFaq.lh-home1-faq .lh-faq__inner {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 28px;
  }
  #lhHomeFaq.lh-home1-faq .lh-faq__side { display: contents; }
  #lhHomeFaq.lh-home1-faq .lh-faq__head { order: 1; }
  #lhHomeFaq.lh-home1-faq .lh-faq__list { order: 2; width: 100%; margin: 0; }
  #lhHomeFaq.lh-home1-faq .lh-faq__help { order: 3; width: 100%; margin: 0; }
}

/* ===== Parent Resources: Closing Call to Action ===== */
.lh-cta {
  padding-block: clamp(64px, 8vw, 120px);
  background: var(--surface);
  font-family: var(--font-body);
  text-align: center;
}
.lh-cta__inner {
  max-width: 820px; margin-inline: auto;
  padding-inline: clamp(16px, 3vw, 32px);
  display: flex; flex-direction: column; align-items: center;
}
.lh-cta__badge {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 16px; margin-bottom: 20px; border-radius: 999px;
  background: var(--shade); border: 1px solid var(--border);
  font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--theme);
}
.lh-cta__badge i { font-size: 14px; }

.lh-cta__title {
  margin: 0 0 18px; font-family: var(--font-heading);
  font-size: clamp(2rem, 3.8vw, 3.2rem); font-weight: 500; line-height: 1.15; letter-spacing: -.03em;
  color: var(--text);
}
.lh-cta__title span { color: var(--theme); }

.lh-cta__lead {
  margin: 0 0 32px; max-width: 58ch;
  font-size: clamp(1rem, 1.3vw, 1.15rem); line-height: 1.7; color: var(--muted);
}

/* Action Buttons Container */
.lh-cta__actions {
  display: flex; flex-wrap: wrap; justify-content: center; gap: 16px; margin-bottom: 24px;
}
.lh-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 28px; border-radius: 999px;
  font: 700 15px/1 var(--font-body); text-decoration: none;
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease, color .2s ease;
}
.lh-btn:hover { transform: translateY(-2px); }
.lh-btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

.lh-btn--primary {
  background: var(--theme); color: var(--on-theme); border: 1px solid var(--theme);
  box-shadow: var(--shadow-sm);
}
.lh-btn--primary:hover { opacity: .95; }

.lh-btn--secondary {
  background: var(--shade); color: var(--text); border: 1px solid var(--border);
}
.lh-btn--secondary:hover { border-color: var(--theme); color: var(--theme); }

.lh-cta__subnote {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 0; font-size: 13px; color: var(--muted);
}
.lh-cta__subnote i { color: var(--theme); }

@media (max-width: 480px) {
  .lh-cta__actions { flex-direction: column; width: 100%; }
  .lh-cta__actions .lh-btn { width: 100%; }
}


#lhCta .lh-cta__inner {
  max-width: 1340px;
  align-items: stretch;
}
#lhCta .lh-cta__card { width: 100%; }

/* ===== 404: Page not found ===== */
.lh-nf {
  --nf-scene: clamp(220px, 26vw, 340px);       /* height of the hill illustration */
  position: relative; isolation: isolate; overflow: hidden;
  min-height: calc(100vh - 80px);
  min-height: calc(100svh - 80px);
  display: flex; align-items: center; justify-content: center;
  padding: clamp(40px, 6vw, 80px) clamp(16px, 3vw, 32px) var(--nf-scene);
  background: var(--bg);
  font-family: var(--font-body); text-align: center;
}

/* soft shapes */
.lh-nf__bg { position: absolute; inset: 0; z-index: -2; pointer-events: none; }
.lh-nf__blob {
  position: absolute; background: var(--blob);
  border-radius: 58% 42% 55% 45% / 55% 50% 50% 45%;
}
.lh-nf__blob--a { top: -60px; inset-inline-start: -90px; width: min(40vw, 460px); aspect-ratio: 1.3 / 1; }
.lh-nf__blob--b { top: 18%; inset-inline-end: -100px; width: min(36vw, 420px); aspect-ratio: 1.5 / 1; opacity: .8; }

/* illustration along the bottom (the footer's wave overlaps its lowest edge) */
.lh-nf__scene {
  position: absolute; inset-inline: 0; bottom: -1px; z-index: -1;
  height: var(--nf-scene); pointer-events: none;
}
.lh-nf__scene svg { display: block; width: 100%; height: 100%; }
.lh-nf__cloud { fill: var(--surface); opacity: .9; }
.lh-nf__hill-a { fill: var(--wave-1); }
.lh-nf__hill-b { fill: var(--wave-0); }
.lh-nf__hill-c { fill: var(--wave-2); }
.lh-nf__tree-a { fill: var(--tree-a); }
.lh-nf__tree-b { fill: var(--tree-b); }
.lh-nf__trunk,
.lh-nf__post  { fill: var(--ink); }
.lh-nf__board { fill: var(--surface); stroke: var(--ink); stroke-width: 2; }

/* content */
.lh-nf__inner {
  position: relative; z-index: 1;
  width: 100%; max-width: 720px;
  display: flex; flex-direction: column; align-items: center;
}
.lh-nf__eyebrow {
  width: fit-content; display: flex; align-items: center; gap: 8px;
  margin: 0; padding: 8px 16px;
  border: 1px solid var(--border); border-radius: 999px;
  background: var(--shade); color: var(--theme);
  font-size: 13px; font-weight: 700;
}

/* big 4 (sun) 4 */
.lh-nf__code {
  display: flex; align-items: center; justify-content: center;
  margin: 10px 0 6px;
  font-family: var(--font-heading);
  font-size: clamp(6.5rem, 24vw, 13rem);
  font-weight: 500; line-height: .95; letter-spacing: -.04em;
  color: var(--theme);
}
.lh-nf__digit { display: block; }
.lh-nf__sun {
  flex: none; width: 1em; height: 1em; overflow: visible;
  fill: none; stroke: var(--ink); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
}
.lh-nf__core { fill: var(--sun); }

.lh-nf__title {
  margin: 0 0 14px;
  font-family: var(--font-heading);
  font-size: clamp(1.8rem, 3.8vw, 2.9rem);
  font-weight: 500; line-height: 1.1; letter-spacing: -.025em;
  text-wrap: balance; color: var(--text);
}
.lh-nf__title span { color: var(--theme); }
.lh-nf__lead {
  margin: 0 0 28px; max-width: 46ch;
  font-size: clamp(1rem, 1.4vw, 1.12rem); line-height: 1.7; color: var(--muted);
}

/* buttons */
.lh-nf__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }
.lh-nf__btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  height: 52px; padding-inline: 28px;
  border: 1.5px solid var(--theme); border-radius: 999px;
  font-size: 15px; font-weight: 700; text-decoration: none; white-space: nowrap;
  transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.lh-nf__btn i { font-size: 14px; transition: translate .2s ease; }
.lh-nf__btn--solid { background: var(--theme); color: var(--on-theme); box-shadow: 0 8px 20px var(--shade-strong); }
.lh-nf__btn--solid:hover { transform: translateY(-2px); box-shadow: 0 12px 26px var(--shade-strong); }
.lh-nf__btn--ghost { background: transparent; color: var(--theme); }
.lh-nf__btn--ghost:hover { background: var(--shade-strong); transform: translateY(-2px); }
.lh-nf__btn--ghost:hover i { translate: 3px 0; }
.lh-nf__btn:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; }

/* quick links: unboxed, with dividers */
.lh-nf__more { margin-top: 34px; }
.lh-nf__more-label { margin: 0 0 12px; font-size: 14px; font-weight: 600; color: var(--muted); }
.lh-nf__links {
  display: flex; flex-wrap: wrap; justify-content: center;
  margin: 0; padding: 0; list-style: none;
}
.lh-nf__links li + li { border-inline-start: 1px solid var(--border); }
.lh-nf__links a {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 6px 24px;
  color: var(--text); font-size: 15px; font-weight: 700; text-decoration: none;
  transition: color .2s ease;
}
.lh-nf__links a i { color: var(--theme); }
.lh-nf__links a:hover { color: var(--theme); text-decoration: underline; text-underline-offset: 4px; }
.lh-nf__links a:focus-visible { outline: 3px solid var(--theme); outline-offset: 3px; border-radius: 6px; }

/* Tablet + mobile */
@media (max-width: 1024px) {
  .lh-nf { min-height: calc(100vh - 68px); min-height: calc(100svh - 68px); }
}

@media (max-width: 600px) {
  .lh-nf__eyebrow { font-size: 12px; padding: 7px 13px; }
  .lh-nf__actions { flex-direction: column; align-self: stretch; width: 100%; }
  .lh-nf__btn { width: 100%; height: 48px; font-size: 14px; }

  .lh-nf__links { flex-direction: column; align-items: stretch; max-width: 320px; margin-inline: auto; }
  .lh-nf__links li + li { border-inline-start: 0; border-block-start: 1px solid var(--border); }
  .lh-nf__links a { justify-content: center; padding-block: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .lh-nf__btn, .lh-nf__btn i, .lh-nf__links a { transition: none; }
  .lh-nf__btn--solid:hover,
  .lh-nf__btn--ghost:hover { transform: none; }
  .lh-nf__btn--ghost:hover i { translate: 0 0; }
}



