/* ============================================================
   LetsChat v7 — single stylesheet
   Order: fonts → tokens → reset/base → type → components →
          nav → sections (page order) → footer → print-ish utils
   ============================================================ */

/* ---------- 1 · FONTS (self-hosted, latin subsets) ---------- */
@font-face{font-family:'Nunito';font-style:normal;font-weight:900;font-display:swap;src:url('../fonts/nunito-900.woff2') format('woff2');}
@font-face{font-family:'Nunito Sans';font-style:normal;font-weight:200 1000;font-display:swap;src:url('../fonts/nunito-sans-var.woff2') format('woff2');}

/* ---------- 2 · TOKENS ---------- */
:root{
  /* brand */
  --blue:#2563EB; --blue-dark:#1D4ED8; --purple:#7C3AED; --green:#059669;
  --orange:#EA580C; --teal:#0D9488; --pink:#DB2777; --yellow:#D97706;
  /* neutrals */
  --text:#0F172A; --muted:#4B5563; --subtle:#6B7280;
  --surface:#FFFFFF; --bg:#FFFDF7; --border:rgba(37,99,235,.08);
  /* effects */
  --shadow-card:0 2px 14px rgba(15,23,42,.06);
  --shadow-card-hover:0 8px 28px rgba(15,23,42,.10);
  --shadow-phone:0 20px 60px rgba(37,99,235,.18);
  /* radii */
  --r-md:12px; --r-lg:16px; --r-2xl:22px; --r-full:999px;
  /* layout */
  --max-w:1200px; --max-w-text:640px;
  /* type */
  --font-display:'Nunito',-apple-system,BlinkMacSystemFont,sans-serif;
  --font-body:'Nunito Sans',-apple-system,BlinkMacSystemFont,sans-serif;
  --fs-hero:clamp(2.4rem,7.5vw,4.2rem);
  --fs-h2:clamp(1.8rem,5vw,2.8rem);
  --fs-h3:clamp(1.15rem,3vw,1.45rem);
  --fs-lead:clamp(1.05rem,2.5vw,1.3rem);
  /* rhythm */
  --sp-section:clamp(4rem,10vw,7.5rem);
}

/* ---------- 3 · RESET / BASE ---------- */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
body{
  background-color:var(--bg);
  background-image:radial-gradient(circle,rgba(0,0,0,.03) 1px,transparent 1px);
  background-size:20px 20px;
  font-family:var(--font-body);
  color:var(--text);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.menu-open{overflow:hidden;}
img{max-width:100%;height:auto;display:block;}
a{color:inherit;}
button{font:inherit;cursor:pointer;border:none;background:none;color:inherit;}
ul,ol{list-style:none;}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:4px;}

.skip-link{
  position:absolute;top:-48px;left:16px;z-index:200;
  background:var(--blue);color:#fff;font-weight:700;
  padding:10px 18px;border-radius:0 0 var(--r-md) var(--r-md);
  text-decoration:none;transition:top .15s;
}
.skip-link:focus{top:0;}

/* ---------- 4 · TYPE ---------- */
h1,h2,h3{font-family:var(--font-display);font-weight:900;line-height:1.12;letter-spacing:-.01em;}
.text-eyebrow{
  font-size:.8rem;font-weight:800;text-transform:uppercase;
  letter-spacing:.12em;color:var(--blue);margin-bottom:.4rem;
}
.lead{font-size:var(--fs-lead);color:var(--muted);max-width:var(--max-w-text);}
.section{padding:var(--sp-section) 1.25rem;}
.section__inner{max-width:var(--max-w);margin:0 auto;}
.section__head{max-width:var(--max-w-text);margin:0 auto 2.5rem;text-align:center;}
.section__head .lead{margin:0.75rem auto 0;}
.section__head h2{font-size:var(--fs-h2);}

/* ---------- 5 · COMPONENTS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 26px;border-radius:var(--r-full);
  font-family:var(--font-body);font-weight:700;font-size:1rem;
  text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s;
}
.btn--primary{background:var(--blue);color:#fff;box-shadow:0 4px 14px rgba(37,99,235,.3);}
.btn--primary:hover{background:var(--blue-dark);transform:translateY(-2px);box-shadow:0 6px 20px rgba(37,99,235,.35);}
.btn--soon{background:#E2E8F0;color:#475569;cursor:default;user-select:none;}
.chip{
  display:inline-flex;align-items:center;gap:8px;
  min-height:44px;padding:8px 18px;border-radius:var(--r-full);
  background:var(--surface);border:1.5px solid rgba(15,23,42,.1);
  font-weight:700;font-size:.95rem;
  transition:border-color .15s,transform .15s,box-shadow .15s;
}
button.chip:hover{border-color:var(--blue);transform:translateY(-1px);box-shadow:var(--shadow-card);}
button.chip[aria-pressed="true"]{border-color:var(--blue);background:#EFF6FF;color:var(--blue-dark);}

/* karaoke word tokens */
.kw{border-radius:4px;padding:0 2px;transition:background .12s,color .12s;}
.kw--on{background:#FDE68A;color:#78350F;}
.kw--done{color:var(--muted);}

/* ---------- 6 · NAV ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  background:rgba(255,253,247,.92);backdrop-filter:blur(10px);
  border-bottom:1px solid var(--border);
}
.nav__inner{
  max-width:var(--max-w);margin:0 auto;height:64px;
  display:flex;align-items:center;gap:24px;padding:0 1.25rem;
}
.nav__logo{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-display);font-weight:900;font-size:1.25rem;
  text-decoration:none;margin-right:auto;
}
.nav__logo-icon{border-radius:8px;}
.nav__links{display:flex;gap:22px;}
.nav__links a{
  text-decoration:none;font-weight:700;font-size:.95rem;color:var(--muted);
  transition:color .15s;
}
.nav__links a:hover{color:var(--blue);}
.nav__cta{
  display:inline-flex;align-items:center;min-height:40px;padding:8px 20px;
  background:var(--blue);color:#fff;font-weight:700;font-size:.95rem;
  border-radius:var(--r-full);text-decoration:none;transition:background .15s;
}
.nav__cta:hover{background:var(--blue-dark);}
.nav__hamburger{display:none;flex-direction:column;gap:5px;padding:10px;}
.nav__hamburger span{display:block;width:22px;height:2.5px;background:var(--text);border-radius:2px;transition:transform .2s,opacity .2s;}
.nav__hamburger[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.nav__hamburger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav__hamburger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}

.nav__overlay{
  display:none;position:fixed;inset:64px 0 0 0;z-index:99;
  background:var(--bg);padding:2rem 1.5rem;
  flex-direction:column;gap:1.5rem;
}
.nav__overlay.is-open{display:flex;}
.nav__overlay a{
  font-family:var(--font-display);font-weight:900;font-size:1.5rem;
  text-decoration:none;
}
.nav__overlay-cta{color:var(--blue);}

@media (max-width:860px){
  .nav__links,.nav__cta{display:none;}
  .nav__hamburger{display:flex;}
}

/* ---------- 7 · REVEAL (JS-gated; content always visible without JS) ---------- */
.reveal{opacity:1;transform:none;}
html.js .reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .55s ease;}
html.js .reveal.is-visible{opacity:1;transform:none;}
html.js .reveal-delay-1{transition-delay:.08s;}
html.js .reveal-delay-2{transition-delay:.16s;}
html.js .reveal-delay-3{transition-delay:.24s;}
@media (prefers-reduced-motion:reduce){
  html.js .reveal{opacity:1;transform:none;transition:none;}
}

/* ---------- 8 · HERO ---------- */
.hero{padding:clamp(2.5rem,7vw,5.5rem) 1.25rem;overflow:hidden;}
.hero__inner{
  max-width:var(--max-w);margin:0 auto;
  display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;
}
/* Wide screens: the full-length phone is much taller than the copy, so centering
   left a gap above the text. Top-align the copy and cap the phone so they balance. */
@media (min-width:901px){
  .hero__inner{align-items:start;}
  .hero__text{padding-top:clamp(1rem,4vw,3rem);}
  .hero__phone{width:min(42vw,360px);}
}
.hero__headline{font-size:var(--fs-hero);margin-bottom:1.1rem;}
.hero__headline em{
  font-style:normal;color:var(--blue);
  text-decoration:underline;text-decoration-color:#93C5FD;
  text-decoration-thickness:6px;text-underline-offset:6px;
}
.hero__subline{margin-bottom:1.75rem;}
.hero__ctas{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:1.75rem;}
.hero__therapist-link{
  font-weight:700;font-size:.95rem;color:var(--muted);text-decoration:none;
  transition:color .15s;
}
.hero__therapist-link:hover{color:var(--blue);}
.hero__trust{display:flex;align-items:center;gap:12px;color:var(--subtle);font-size:.9rem;max-width:420px;}
.hero__trust-avatars{display:flex;flex-shrink:0;}
.hero__trust-avatars img{border-radius:50%;background:#EDE9FE;border:2px solid var(--bg);}
.hero__trust-avatars img+img{margin-left:-10px;}

.hero__phone-area{position:relative;justify-self:center;}
.hero__phone{
  width:min(78vw,380px);
  border-radius:44px;overflow:hidden;
  border:6px solid #0F172A;box-shadow:var(--shadow-phone);
  background:#0F172A;
}
.hero__phone img{border-radius:38px;}

.sticker{
  position:absolute;z-index:2;
  display:grid;place-items:center;
  width:56px;height:56px;font-size:28px;
  background:var(--surface);border-radius:18px;
  box-shadow:0 4px 16px rgba(15,23,42,.10);
  transform:rotate(var(--rot,0deg));
}
.sticker--sm{width:44px;height:44px;font-size:22px;}
html.js .sticker{animation:sticker-float 6s ease-in-out infinite alternate;}
@keyframes sticker-float{
  from{transform:rotate(var(--rot,0deg)) translateY(0);}
  to{transform:rotate(var(--rot,0deg)) translateY(-10px);}
}
@media (prefers-reduced-motion:reduce){
  html.js .sticker{animation:none;}
}

@media (max-width:900px){
  .hero__inner{grid-template-columns:1fr;gap:2.5rem;}
  .hero__phone-area{justify-self:center;}
  .hero__phone{width:min(78vw,300px);}
}

/* ---------- 9 · PARTNER (why AI — big type, no boxes) ---------- */
.partner__inner{text-align:center;}
.partner__title{font-size:var(--fs-h2);margin-bottom:1rem;}
.partner__lead{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(1.5rem,4.5vw,2.4rem);line-height:1.25;
  margin:0 auto 3rem;max-width:22ch;
}
.partner__values{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:2.25rem 3rem;max-width:820px;margin:0 auto 3rem;
}
.value{display:flex;flex-direction:column;gap:.35rem;}
.value strong{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(1.4rem,3.5vw,2rem);line-height:1.15;
}
.value span{color:var(--muted);font-size:1rem;}
.partner__carryover{
  font-size:var(--fs-lead);color:var(--muted);
  max-width:var(--max-w-text);margin:0 auto;
}
.partner__carryover em{font-style:normal;font-weight:800;color:var(--blue);}
@media (max-width:640px){
  .partner__values{grid-template-columns:1fr;gap:1.75rem;}
}

/* ---------- 10 · ACCESS (selection-style illustrations) ---------- */
.access{background:linear-gradient(180deg,transparent,rgba(13,148,136,.035),transparent);}
.access__feature{max-width:980px;margin:0 auto 2.75rem;text-align:center;}
.access__feature-title{font-size:var(--fs-h3);margin-bottom:.4rem;}
.access__feature-sub{color:var(--muted);max-width:var(--max-w-text);margin:0 auto 2rem;}
.sel-styles{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1.25rem;
}
.sel-style{
  background:var(--surface);border:1px solid rgba(15,23,42,.07);
  border-radius:var(--r-2xl);padding:1.75rem 1.25rem 1.5rem;text-align:center;
  box-shadow:var(--shadow-card);
}
.sel-demo{
  display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:72px;margin-bottom:1.1rem;
}
/* realistic reply chip + send button, matching the app */
.sel-reply{
  display:inline-flex;align-items:center;gap:9px;
  background:#F1F5F9;border:1px solid rgba(15,23,42,.08);
  border-radius:14px;padding:9px 14px 9px 9px;
  font-weight:700;font-size:.88rem;color:var(--text);
}
.sel-reply__spk{
  display:grid;place-items:center;width:28px;height:28px;flex-shrink:0;
  border-radius:9px;background:#fff;border:1px solid rgba(15,23,42,.08);font-size:.8rem;
}
.sel-reply__seq{
  margin-left:2px;font-size:.68rem;font-weight:800;letter-spacing:.02em;
  color:var(--blue-dark);background:#EFF6FF;border:1px solid rgba(37,99,235,.25);
  border-radius:var(--r-full);padding:2px 8px;
}
.sel-send{
  display:grid;place-items:center;flex-shrink:0;
  width:46px;height:46px;border-radius:14px;
  background:var(--blue);color:#fff;font-size:1.35rem;line-height:1;
}
.sel-style__label{font-family:var(--font-display);font-weight:900;font-size:1.05rem;}
.sel-style__sub{color:var(--subtle);font-size:.85rem;}
/* capability list — informational, never looks tappable */
.access__list{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px 26px;
  max-width:760px;margin:0 auto;
}
.access__list li{
  display:flex;align-items:center;gap:9px;
  color:var(--muted);font-size:.95rem;font-weight:600;
}
.access__list li::before{
  content:"✓";
  display:grid;place-items:center;width:20px;height:20px;flex-shrink:0;
  border-radius:50%;background:#D1FAE5;color:#047857;font-size:.72rem;font-weight:900;
}
@media (max-width:760px){
  .sel-styles{grid-template-columns:1fr;max-width:340px;margin:0 auto;}
}

/* ---------- 11 · REPLY DEMO ---------- */
.demo-phone{
  max-width:360px;margin:0 auto;
  background:var(--surface);
  border:6px solid #0F172A;border-radius:40px;
  box-shadow:var(--shadow-phone);
  overflow:hidden;
  display:flex;flex-direction:column;
}
.demo-phone__header{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px;border-bottom:1px solid rgba(15,23,42,.07);
}
.demo-phone__avatar{border-radius:50%;background:#EDE9FE;}
.demo-phone__who{display:flex;flex-direction:column;line-height:1.2;}
.demo-phone__name{font-weight:800;font-size:.95rem;}
.demo-phone__topic{color:var(--subtle);font-size:.75rem;}
.demo-phone__ai{
  margin-left:auto;font-size:.65rem;font-weight:800;letter-spacing:.08em;
  background:#EDE9FE;color:var(--purple);
  padding:3px 8px;border-radius:var(--r-full);
}
.demo-chat{
  padding:16px;display:flex;flex-direction:column;gap:8px;
  min-height:180px;max-height:220px;overflow-y:auto;
  background:linear-gradient(180deg,#FAFBFF,#FFF);
}
.bubble{max-width:84%;font-size:.9rem;line-height:1.45;}
.bubble--ai{align-self:flex-start;display:flex;align-items:flex-end;gap:6px;}
.bubble__avatar{border-radius:50%;background:#EDE9FE;flex-shrink:0;}
.bubble--ai span{
  background:#fff;border:1px solid rgba(15,23,42,.06);color:var(--text);
  padding:9px 13px;border-radius:16px;border-bottom-left-radius:5px;
  box-shadow:0 1px 2px rgba(15,23,42,.05);
}
.bubble--me{
  align-self:flex-end;background:var(--blue);color:#fff;
  padding:9px 13px;border-radius:16px;border-bottom-right-radius:5px;
}
.demo-hint{text-align:center;color:var(--subtle);font-size:.78rem;padding:6px 16px 0;}
/* segmented tabs, like the app */
.demo-tabs{
  display:flex;gap:3px;margin:12px 12px 0;padding:4px;
  background:#EEF2F7;border-radius:14px;
}
.demo-tabs [role="tab"]{
  flex:1;min-height:40px;padding:8px 2px;
  font-weight:700;font-size:.78rem;color:var(--subtle);
  border-radius:10px;transition:color .15s,background .15s;
}
.demo-tabs [role="tab"][aria-selected="true"]{color:var(--blue-dark);background:#DCE9FD;}
.demo-panels{border-top:1px solid rgba(15,23,42,.07);margin-top:12px;}
.demo-panel{padding:14px 16px 18px;display:flex;flex-direction:column;gap:8px;}
.demo-panel[hidden]{display:none;}

/* Replies — light card + speaker + blue send, matching the app */
.demo-reply{
  display:flex;align-items:center;gap:10px;
  min-height:54px;padding:8px 10px;text-align:left;
  background:#fff;border:1px solid rgba(15,23,42,.1);border-radius:14px;
  transition:border-color .15s,box-shadow .15s;
}
.demo-reply:hover{border-color:var(--blue);box-shadow:0 2px 8px rgba(37,99,235,.12);}
.demo-reply__spk{
  display:grid;place-items:center;width:32px;height:32px;flex-shrink:0;
  border-radius:9px;background:#EEF2F7;font-size:.82rem;
}
.demo-reply__txt{flex:1;font-weight:700;font-size:.9rem;color:var(--text);}
.demo-reply__go{
  display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;
  border-radius:10px;background:var(--blue);color:#fff;font-size:1.05rem;font-weight:700;
}

/* Yes / No — colored cards */
.demo-panel--yesno{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
.demo-yn{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  min-height:90px;padding:12px;border-radius:16px;
  border:1.5px solid transparent;font-weight:800;font-size:.95rem;
  transition:transform .15s;
}
.demo-yn:hover{transform:translateY(-1px);}
.demo-yn__e{font-size:1.7rem;line-height:1;}
.demo-yn--yes{background:#DCFCE7;border-color:#86EFAC;color:#166534;}
.demo-yn--no{background:#FEE2E2;border-color:#FCA5A5;color:#991B1B;}
.demo-yn--maybe{background:#FFEDD5;border-color:#FDBA74;color:#9A3412;grid-column:1 / -1;}

/* Emojis — labeled cards */
.demo-panel--emoji{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;}
.demo-emoji{
  display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 4px;
  background:#fff;border:1px solid rgba(15,23,42,.1);border-radius:12px;
  transition:border-color .15s,transform .15s;
}
.demo-emoji:hover{border-color:var(--blue);transform:translateY(-1px);}
.demo-emoji__e{font-size:1.5rem;line-height:1;}
.demo-emoji__l{font-size:.68rem;font-weight:700;color:var(--muted);}

/* Symbols — AAC word board */
.demo-panel--symbols{gap:10px;}
.aac-bar{display:flex;align-items:center;gap:8px;}
.aac-bar__msg{
  flex:1;min-height:44px;display:flex;align-items:center;flex-wrap:wrap;
  padding:8px 12px;border-radius:12px;
  background:#F8FAFC;border:1.5px solid rgba(15,23,42,.12);
  font-weight:700;font-size:.9rem;color:var(--text);
}
.aac-bar__ph{color:var(--subtle);font-weight:400;font-size:.82rem;}
.aac-bar__btn{
  display:grid;place-items:center;width:42px;height:42px;flex-shrink:0;
  border-radius:12px;font-size:1.15rem;font-weight:700;
}
.aac-bar__clear{background:#EEF2F7;color:var(--subtle);}
.aac-bar__send{background:var(--blue);color:#fff;}
.aac-cats{display:flex;gap:5px;overflow-x:auto;padding-bottom:2px;-webkit-overflow-scrolling:touch;}
.aac-cat{
  flex:0 0 auto;min-height:36px;padding:6px 12px;white-space:nowrap;
  border-radius:var(--r-full);background:#F1F5F9;color:var(--muted);
  font-weight:700;font-size:.76rem;transition:background .15s,color .15s;
}
.aac-cat.is-active{background:#DCE9FD;color:var(--blue-dark);}
.aac-words{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;}
.aac-words[hidden]{display:none;}
.aac-word{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  min-height:64px;padding:8px 4px;
  background:#FFF7ED;border:1px solid #FED7AA;border-radius:12px;
  transition:transform .15s,border-color .15s;
}
.aac-word:hover{transform:translateY(-1px);border-color:#FB923C;}
.aac-word__e{font-size:1.35rem;line-height:1;}
.aac-word span:last-child{font-size:.72rem;font-weight:700;color:#9A3412;}
html:not(.js) .demo-hint{display:none;}

/* ---------- 12 · KARAOKE (read aloud) ---------- */
.karaoke{background:linear-gradient(180deg,transparent,rgba(124,58,237,.035),transparent);}
.karaoke-stage{
  max-width:720px;margin:0 auto;text-align:center;
  background:var(--surface);border:1px solid rgba(15,23,42,.07);
  border-radius:var(--r-2xl);box-shadow:var(--shadow-card);
  padding:clamp(1.5rem,4vw,2.5rem);
}
.karaoke-chips{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-bottom:1.75rem;
}
.chip--char img{border-radius:50%;background:#EDE9FE;}
.karaoke-line{
  font-family:var(--font-display);font-weight:900;
  font-size:clamp(1.15rem,3vw,1.6rem);line-height:1.5;
  margin-bottom:1.75rem;min-height:4.5em;text-align:center;
}
.karaoke-line .kw{padding:0 3px;border-radius:6px;}
.karaoke-play{min-width:200px;margin-bottom:1rem;}
.karaoke-caption{color:var(--subtle);font-size:.85rem;}

/* ---------- shared app-screenshot phone frame ---------- */
.phone-shot{
  width:min(78vw,300px);justify-self:center;align-self:center;
  border-radius:40px;overflow:hidden;
  border:6px solid #0F172A;box-shadow:var(--shadow-phone);background:#0F172A;
}
.phone-shot img{border-radius:34px;display:block;width:100%;}
.phone-shot--sm{width:min(70vw,260px);}

/* ---------- 13 · MAKE IT YOURS ---------- */
.yours-layout{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  gap:clamp(2rem,5vw,3.5rem);align-items:center;
  max-width:980px;margin:0 auto;
}
.yours-cards{display:flex;flex-direction:column;gap:1.25rem;}
.yours-card{
  background:var(--surface);border:1px solid rgba(15,23,42,.07);
  border-radius:var(--r-2xl);box-shadow:var(--shadow-card);
  padding:2rem 1.5rem;text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:1rem;
}
.yours-card__title{font-size:var(--fs-h3);}
.yours-avatar-btn{
  border-radius:50%;padding:6px;
  background:linear-gradient(135deg,#EDE9FE,#DBEAFE);
  transition:transform .15s;
}
.yours-avatar-btn:hover{transform:scale(1.05);}
.yours-avatar-btn img{border-radius:50%;}
.yours-dots{display:flex;gap:6px;}
.yours-dot{
  width:8px;height:8px;border-radius:50%;
  background:rgba(15,23,42,.15);transition:background .15s;
}
.yours-dot.is-active{background:var(--blue);}
.yours-card__hint{color:var(--subtle);font-size:.85rem;}
.yours-voices{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;}
@media (max-width:820px){
  .yours-layout{grid-template-columns:1fr;justify-items:center;}
  .yours-cards{width:100%;max-width:420px;}
}

/* ---------- 14 · RIBBON ---------- */
.ribbon-wrap{padding:2.5rem 0 2rem;overflow:hidden;}
.ribbon{
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.ribbon-track{
  display:flex;gap:28px;width:max-content;
}
html.js .ribbon-track{animation:ribbon-scroll 30s linear infinite;}
.ribbon-avatar{
  width:64px;height:64px;border-radius:50%;
  background:#EDE9FE;border:3px solid var(--surface);
  box-shadow:var(--shadow-card);flex-shrink:0;
}
@keyframes ribbon-scroll{
  from{transform:translateX(0);}
  to{transform:translateX(calc(-50% - 14px));}
}
@media (prefers-reduced-motion:reduce){
  html.js .ribbon-track{animation:none;}
  .ribbon{overflow-x:auto;mask-image:none;-webkit-mask-image:none;}
}
.ribbon-caption{
  text-align:center;color:var(--subtle);font-size:.85rem;
  margin-top:1rem;font-weight:700;
}

/* ---------- 15 · WORLDS ---------- */
.worlds-layout{
  display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:clamp(2rem,5vw,3.5rem);align-items:start;
  max-width:980px;margin:0 auto 2rem;
}
.worlds-cards{display:flex;flex-direction:column;gap:1rem;}
@media (max-width:820px){
  .worlds-layout{grid-template-columns:1fr;justify-items:center;}
  .worlds-cards{width:100%;}
}
.world-card{
  background:var(--surface);border:1px solid rgba(15,23,42,.1);
  border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  transition:box-shadow .15s,transform .15s,border-color .15s;
}
.world-card:hover{box-shadow:var(--shadow-card-hover);transform:translateY(-2px);border-color:rgba(15,23,42,.16);}
.world-card summary{
  display:flex;align-items:center;gap:14px;
  padding:1rem 1.1rem;cursor:pointer;list-style:none;min-height:44px;
}
.world-card summary::-webkit-details-marker{display:none;}
/* accent lives on the round avatar ring — not a single-sided card border */
.world-card summary img{
  border-radius:50%;flex-shrink:0;background:#F1F5F9;
  border:2px solid var(--surface);box-shadow:0 0 0 2px var(--accent,var(--blue));
}
.world-card__text{display:flex;flex-direction:column;line-height:1.3;min-width:0;}
.world-card__title{font-family:var(--font-display);font-weight:900;font-size:1.05rem;}
.world-card__who{color:var(--subtle);font-size:.8rem;}
.world-card__chevron{
  margin-left:auto;color:var(--subtle);
  transition:transform .2s,color .2s;flex-shrink:0;
}
.world-card[open] .world-card__chevron{transform:rotate(180deg);color:var(--accent,var(--subtle));}
.world-card__greeting{
  padding:0 1.1rem 1.1rem;color:var(--muted);
  font-size:.95rem;line-height:1.5;
}

/* ---------- 16 · THERAPIST TEASER ---------- */
.teaser__panel{
  position:relative;overflow:hidden;
  max-width:var(--max-w);margin:0 auto;
  background:linear-gradient(135deg,#1E293B,#312E81);
  border-radius:var(--r-2xl);
  padding:clamp(2.5rem,6vw,4.5rem) clamp(1.5rem,5vw,4rem);
  text-align:center;color:#E2E8F0;
}
.teaser__blob{position:absolute;border-radius:50%;filter:blur(60px);}
.teaser__inner{position:relative;}
.teaser__eyebrow{color:#A5B4FC;}
.teaser__headline{
  font-size:var(--fs-h2);color:#fff;margin-bottom:1rem;
}
.teaser__body{
  max-width:520px;margin:0 auto 1.75rem;color:#CBD5E1;
  font-size:var(--fs-lead);
}
.teaser__tags{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-bottom:2rem;
}
.teaser__tag{
  padding:8px 16px;border-radius:var(--r-full);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.15);
  font-size:.85rem;font-weight:700;color:#E2E8F0;
}
.teaser__cta{background:#fff;color:#1E293B;}
.teaser__cta:hover{transform:translateY(-2px);box-shadow:0 6px 20px rgba(0,0,0,.25);}

/* ---------- 17 · MAKERS ---------- */
.makers{position:relative;overflow:hidden;text-align:center;}
.makers__bloom{
  position:absolute;inset:auto -20% -60% -20%;height:120%;
  background:radial-gradient(ellipse at bottom,rgba(251,146,60,.18),transparent 65%);
  pointer-events:none;
}
.makers__inner{position:relative;max-width:var(--max-w-text);margin:0 auto;}
.makers__title{font-size:var(--fs-h2);margin-bottom:2rem;}
.makers__avatars{
  display:flex;justify-content:center;align-items:flex-end;gap:20px;
  margin-bottom:2rem;
}
.makers__avatar{display:flex;flex-direction:column;align-items:center;gap:8px;}
.makers__avatar img{
  border-radius:50%;background:#FEF3C7;
  border:3px solid var(--surface);box-shadow:var(--shadow-card);
}
.makers__avatar-label{font-weight:800;font-size:.85rem;color:var(--subtle);}
.makers__story{color:var(--muted);font-size:1.05rem;line-height:1.75;text-align:left;}

/* ---------- 18 · THERAPISTS PAGE ---------- */
.t-hero{padding-top:2rem;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.t-values__grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:1.25rem;max-width:980px;margin:0 auto;
}
.t-card{
  background:var(--surface);border:1px solid rgba(15,23,42,.07);
  border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:1.5rem;
}
.t-card__title{font-size:1.15rem;margin-bottom:.5rem;}
.t-card__desc{color:var(--muted);font-size:.95rem;}
.t-dash{background:linear-gradient(180deg,transparent,rgba(37,99,235,.03),transparent);padding-top:2rem;}
.t-dash__tags{
  display:flex;flex-wrap:wrap;justify-content:center;gap:10px;
  margin-bottom:1.5rem;
}
.t-dash__tags .chip{color:var(--muted);}
.t-dash__note{text-align:center;color:var(--subtle);font-size:.95rem;}
.t-signup{padding-top:0;}
.t-signup__card{
  max-width:520px;margin:0 auto;text-align:center;
  background:var(--surface);border:1px solid rgba(15,23,42,.07);
  border-radius:var(--r-2xl);box-shadow:var(--shadow-card);
  padding:2.5rem 2rem;
}
.t-signup__title{font-size:var(--fs-h3);margin-bottom:.75rem;}
.t-signup__body{color:var(--muted);margin-bottom:1.5rem;}
.t-signup__note{color:var(--subtle);font-size:.85rem;margin-top:1rem;}

/* ---------- 19 · LEGAL PAGES ---------- */
.legal{max-width:720px;margin:0 auto;padding:3rem 1.25rem 5rem;}
.legal h1{font-size:2rem;margin-bottom:.25rem;}
.legal__date{color:var(--subtle);font-size:.85rem;margin-bottom:2rem;}
.legal h2{font-size:1.15rem;color:var(--blue);margin:2rem 0 .5rem;}
.legal p,.legal li{color:var(--text);line-height:1.65;font-size:1rem;}
.legal ul{padding-left:1.25rem;margin:.5rem 0;list-style:disc;}
.legal li{margin-bottom:.4rem;}
.legal a{color:var(--blue);text-decoration:underline;}

/* ---------- FOOTER ---------- */
.footer{
  border-top:1px solid var(--border);
  padding:3rem 1.25rem 2.5rem;text-align:center;
}
.footer__tagline{font-family:var(--font-display);font-weight:900;font-size:1.3rem;margin-bottom:1rem;}
.footer__contact{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;
  margin-bottom:1rem;
}
.footer__contact a{color:var(--muted);font-size:.9rem;font-weight:600;text-decoration:none;}
.footer__contact a:hover{color:var(--blue);}
.footer__sep{color:var(--subtle);}
.footer__legal{display:flex;justify-content:center;gap:12px;margin-bottom:.75rem;}
.footer__legal a{color:var(--muted);font-size:.9rem;}
.footer__legal-sep{color:var(--subtle);}
.footer__copyright{color:var(--subtle);font-size:.85rem;}
