/* Edition 2.0 layer (2026-10-22). Built from Village Branding Guidelines V2:
   four service lines with light / signal / deep tones, the Village kit (house, window, strokes,
   roofline), expressive type, expression modes, motion under a second, and a Calm view.
   Loads after the prototype's own styles and overrides them where the two disagree. */

:root{
 --teal:#057672;--deep-teal:#046360;--lagoon:#20C1BF;--linen:#FCF3E0;--ink:#2E3E61;--slate:#6A8189;--sun:#FEF999;--heart:#ED155D;
 --bh-l:#A8DDD9;--bh-s:#057672;--bh-d:#046360;
 --mh-l:#A7CAE3;--mh-s:#5AA2D8;--mh-d:#1F628E;
 --sp-l:#FBC84F;--sp-s:#F2B33D;--sp-d:#8A5A00;
 --ot-l:#8AC44F;--ot-s:#79B84A;--ot-d:#3E6913;
 --lilac:#D6A9D3;--deep-lilac:#953A90;--rose:#F7A1BE;--deep-rose:#C8124F;
 --muted:#E9E0CC;--ease-out:cubic-bezier(.16,1,.3,1);
 /* the prototype's per-service accents, re-pointed at Edition 2.0 tones */
 --accent-lilac:var(--bh-l);--accent-sky:var(--mh-l);--accent-speech:var(--sp-l);--accent-leaf:var(--ot-l);--accent-rose:var(--rose);
}
/* Service families. The old lilac (BH) and rose (ABA) themes both resolve to the Behavioral Health family. */
.theme-teal,.theme-lilac,.theme-rose{--svc-l:var(--bh-l);--svc-s:var(--bh-s);--svc-d:var(--bh-d);--service-accent:var(--bh-l)}
.theme-sky{--svc-l:var(--mh-l);--svc-s:var(--mh-s);--svc-d:var(--mh-d);--service-accent:var(--mh-l)}
.theme-marigold{--svc-l:var(--sp-l);--svc-s:var(--sp-s);--svc-d:var(--sp-d);--service-accent:var(--sp-l)}
.theme-leaf{--svc-l:var(--ot-l);--svc-s:var(--ot-s);--svc-d:var(--ot-d);--service-accent:var(--ot-l)}

/* ---------- Global polish ---------- */
.button{font-weight:600}
a:focus-visible,button:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--teal);outline-offset:3px}
.service-marker,.discipline-symbol{color:var(--ink)}
.service-marker .icon,.discipline-symbol .icon{stroke-width:1.6}

/* ---------- Kit primitives ---------- */
@keyframes k-stroke-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes k-pane-in{from{opacity:0}to{opacity:1}}
@keyframes k-roof-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes k-rise{from{transform:translateY(18px);opacity:0}to{transform:none;opacity:1}}

.svc-divider{display:flex;gap:8px;margin:0 0 var(--space-6)}
.svc-divider span{display:block;height:8px;width:56px;border-radius:999px;transform-origin:left}
.svc-divider:not(.in) span{transform:scaleX(0)}
.svc-divider span:nth-child(1){background:var(--bh-s)}.svc-divider span:nth-child(2){background:var(--mh-s)}
.svc-divider span:nth-child(3){background:var(--sp-s)}.svc-divider span:nth-child(4){background:var(--ot-s)}
.svc-divider.in span{animation:k-stroke-in 150ms var(--ease-out) both}
.svc-divider.in span:nth-child(2){animation-delay:150ms}.svc-divider.in span:nth-child(3){animation-delay:300ms}.svc-divider.in span:nth-child(4){animation-delay:450ms}
.svc-divider.on-teal span{opacity:.95}

/* Four-pane window. Pane order matches the Window Health mark: MH top-left, Speech top-right, OT bottom-left, BH bottom-right. */
.k-window{--w:48px;display:grid;grid-template-columns:1fr 1fr;gap:calc(var(--w)/12);width:var(--w);height:var(--w);flex:none}
.k-window span{display:block;background:var(--muted);transition:background 180ms,opacity 180ms}
.k-window .p-mh{background:var(--mh-s)}.k-window .p-sp{background:var(--sp-s)}.k-window .p-ot{background:var(--ot-s)}.k-window .p-bh{background:var(--bh-s)}
.k-window.light .p-mh{background:var(--mh-l)}.k-window.light .p-sp{background:var(--sp-l)}.k-window.light .p-ot{background:var(--ot-l)}.k-window.light .p-bh{background:var(--bh-l)}
.k-window.lit-in:not(.in) span{opacity:0}
.k-window.lit-in.in span{animation:k-pane-in 120ms var(--ease-out) both}
.k-window.lit-in.in .p-sp{animation-delay:120ms}.k-window.lit-in.in .p-ot{animation-delay:240ms}.k-window.lit-in.in .p-bh{animation-delay:360ms}

/* ---------- Expressive type ---------- */
.v2-underline{position:relative;white-space:nowrap;display:inline-block}
.v2-underline::after{content:"";position:absolute;left:.02em;right:.02em;bottom:.02em;height:.12em;border-radius:999px;background:var(--heart);transform-origin:left;animation:k-stroke-in 700ms var(--ease-out);opacity:.9}
.big-num{font-family:var(--font-display);font-weight:400;line-height:.95}
.warm{font-family:var(--font-display);font-style:italic;font-weight:400}

/* ---------- Hero: the house, the roofline, the people ---------- */
.signature-art.v2-art{min-height:0;align-self:center;padding:var(--space-6) 0 var(--space-12)}
.v2-house-wrap{position:relative;width:min(100%,540px);margin:0 auto;aspect-ratio:560/640}
.v2-field{position:absolute;left:24%;right:-7%;top:46%;bottom:-7%;background:var(--teal)}
.v2-house{position:absolute;inset:0}
.v2-room{position:absolute;inset:0;overflow:hidden;background:var(--linen);clip-path:polygon(50% 0,100% 38%,100% 100%,0 100%,0 38%)}
.v2-room img,.v2-people{position:absolute;left:-.6%;top:-9.7%;width:108%;height:auto;max-width:none;display:block;clip-path:none;object-fit:fill;object-position:0 0}
/* Hero layers animate in but never depend on the animation to be visible. */
.v2-room img{animation:k-pane-in 650ms var(--ease-out)}
/* The people layer is the same photo, masked to the people (top 55% of the frame; below that the room shows the identical pixels). */
.v2-people{z-index:3;pointer-events:none;animation:k-pane-in 650ms var(--ease-out);-webkit-mask-image:url("./assets/family-mask.png?v=2");mask-image:url("./assets/family-mask.png?v=2");-webkit-mask-size:100% auto;mask-size:100% auto;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:top left;mask-position:top left}
@supports not (mask-image:url("")){.v2-people{display:none}}
.v2-roofline{position:absolute;inset:0;width:100%;height:100%;z-index:2;overflow:visible;pointer-events:none}
.v2-roofline path{fill:none;stroke:var(--lagoon);stroke-width:3;stroke-linejoin:round;stroke-linecap:round;stroke-dasharray:1 1;stroke-dashoffset:0;animation:k-roof-draw 600ms var(--ease-out)}
.v2-caption{position:absolute;z-index:4;left:30%;right:-7%;bottom:-7%;display:flex;align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-6);background:var(--teal);color:var(--linen);animation:k-rise 500ms var(--ease-out)}
.v2-caption .k-window{--w:52px}
.v2-caption strong{display:block;font-family:var(--font-display);font-weight:400;font-size:var(--text-xl);line-height:1.05}
.v2-caption p{font-size:var(--text-xs);line-height:1.5;margin:4px 0 0;opacity:.92}
.v2-caption .k-window span{background:rgba(252,243,224,.28)}
.v2-caption .k-window.light .p-mh{background:var(--mh-l)}.v2-caption .k-window.light .p-sp{background:var(--sp-l)}.v2-caption .k-window.light .p-ot{background:var(--ot-l)}.v2-caption .k-window.light .p-bh{background:var(--bh-l)}
.signature-copy .hero-description{max-width:470px}
@media (max-width:1000px){.v2-caption{left:18%}}
@media (max-width:700px){
 .signature-art.v2-art{padding:var(--space-4) 0 var(--space-10);aspect-ratio:auto;max-width:none;width:100%}
 .v2-house-wrap{width:min(100%,420px);aspect-ratio:auto}
 .v2-house{position:relative;aspect-ratio:560/640}
 .v2-field{left:30%;right:-16px;top:40%;bottom:36px}
 .v2-caption{position:relative;left:auto;right:auto;bottom:auto;margin:-44px -16px 0 12%;padding:var(--space-4) var(--space-5)}
 .v2-caption .k-window{--w:40px}.v2-caption strong{font-size:var(--text-lg)}.v2-caption p{display:none}
}

/* Facts band: big numerals, only for facts we can verify */
.hero-facts .fact strong{font-family:var(--font-display);font-weight:400;font-size:clamp(1.6rem,2.4vw,2.25rem);line-height:1;display:block;margin-bottom:6px}

/* ---------- The window navigator (replaces the five-house explorer) ---------- */
.v2-nav .village-heading{margin-bottom:var(--space-12)}
.v2-nav-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:var(--space-16);align-items:center}
.v2-nav-house{position:relative;width:min(100%,400px);aspect-ratio:1/1.1;margin:0 auto;clip-path:polygon(50% 0,100% 39.5%,100% 100%,0 100%,0 39.5%);background:var(--teal);transition:background 260ms}
.v2-nav-house .nh-window{position:absolute;left:50%;top:41%;transform:translate(-50%,-50%);--w:34%;width:var(--w);aspect-ratio:1;display:grid;grid-template-columns:1fr 1fr;gap:8.3%}
.v2-nav-house .nh-window span{display:block;background:rgba(252,243,224,.22);transition:background 260ms var(--ease-out),transform 260ms var(--ease-out)}
.v2-nav-house .nh-door{position:absolute;left:50%;bottom:0;width:15%;height:14%;transform:translateX(-50%);background:var(--linen);opacity:.9}
.v2-nav-house[data-lit=mental-health] .p-mh{background:var(--mh-l)}
.v2-nav-house[data-lit=speech-therapy] .p-sp{background:var(--sp-l)}
.v2-nav-house[data-lit=occupational-therapy] .p-ot{background:var(--ot-l)}
.v2-nav-house[data-lit=behavioral-health] .p-bh{background:var(--bh-l)}
.v2-nav-house[data-lit=aba-therapy] .p-bh{background:var(--bh-l)}
.v2-nav-house .nh-label{position:absolute;left:0;right:0;top:61%;text-align:center;color:var(--linen);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;padding-inline:12%}
.v2-nav-house .nh-label b{display:block;font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);letter-spacing:0;text-transform:none;margin-top:4px}
.v2-nav-house .nh-label span{display:none}
.v2-nav-house[data-lit=mental-health] .nh-label span[data-for=mental-health],.v2-nav-house[data-lit=speech-therapy] .nh-label span[data-for=speech-therapy],
.v2-nav-house[data-lit=occupational-therapy] .nh-label span[data-for=occupational-therapy],.v2-nav-house[data-lit=behavioral-health] .nh-label span[data-for=behavioral-health]{display:block}

.v2-nav .village-rooms{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0;border-top:1px solid var(--color-line)}
.v2-nav .village-room{min-height:0;display:grid;grid-template-columns:40px 1fr auto;align-items:center;gap:var(--space-5);padding:var(--space-5) var(--space-4);border:0;border-bottom:1px solid var(--color-line);background:transparent;text-align:left;cursor:pointer;position:relative;isolation:auto;color:var(--ink)}
.v2-nav .village-room::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:6px;border-radius:999px;background:var(--svc-s);transform:scaleY(0);transition:transform 220ms var(--ease-out)}
.v2-nav .village-room[aria-selected=true]::before{transform:scaleY(1)}
.v2-nav .village-room:hover{background:rgba(5,118,114,.04)}
.v2-nav .village-room .k-window{--w:34px}
.v2-nav .village-room .k-window span{background:var(--muted)}
.v2-nav .village-room.theme-sky .k-window .p-mh,.v2-nav .village-room.theme-marigold .k-window .p-sp,.v2-nav .village-room.theme-leaf .k-window .p-ot,.v2-nav .village-room.theme-teal .k-window .p-bh{background:var(--svc-s)}
.v2-nav .room-name{display:block;margin:0;min-height:0;font-size:var(--text-lg);font-family:var(--font-display);font-weight:400;line-height:1.15;color:var(--ink)}
.v2-nav .room-name small{display:block;font-family:var(--font-body);font-size:var(--text-xs);color:var(--slate);margin-top:4px;font-weight:400}
.v2-nav .village-room[aria-selected=true] .room-name{color:var(--svc-d)}
.v2-nav .room-word{margin:0;padding:0;font-size:var(--text-xs);color:var(--slate);display:flex;align-items:center;gap:6px}
.v2-nav .room-word .icon{width:16px;height:16px;transition:transform 180ms}
.v2-nav .village-room[aria-selected=true] .room-word{color:var(--svc-d)}
.v2-nav .village-room[aria-selected=true] .room-word .icon{transform:translateX(3px)}
.v2-nav .village-panels{margin-top:var(--space-10)}
.v2-nav .village-panel{grid-template-columns:1.1fr .9fr;gap:var(--space-10);padding:var(--space-8) var(--space-10);border-top:0;border-left:8px solid var(--svc-s);background:var(--linen)}
.v2-nav .village-panel figure{margin:0;overflow:hidden;position:relative}
.v2-nav .village-panel figure img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.v2-nav .village-panel h3{color:var(--svc-d)}
.v2-nav .village-index{color:var(--svc-d)}
.v2-nav .village-panel .text-link{color:var(--svc-d)}
.v2-nav .village-panel-copy{margin-top:var(--space-5)}
.v2-nav .nh-aba{display:inline-flex;align-items:center;gap:8px;margin-top:var(--space-4);padding:8px 14px;background:var(--bh-l);color:var(--ink);font-size:var(--text-xs);font-weight:500}
@media (max-width:1000px){.v2-nav-grid{grid-template-columns:1fr;gap:var(--space-10)}.v2-nav-house{width:min(100%,320px)}.v2-nav .village-panel{grid-template-columns:1fr}}
@media (max-width:700px){.v2-nav .village-panel{padding:var(--space-6)}.v2-nav .village-room{grid-template-columns:34px 1fr;gap:var(--space-4)}.v2-nav .room-word{display:none}.v2-nav-house{width:min(100%,260px)}}

/* ---------- Your first month: service strokes as progress ---------- */
.first-month{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-6)}
.first-month li{display:grid;grid-template-columns:1fr;gap:var(--space-3);padding:var(--space-5) 0 var(--space-6);border-bottom:1px solid var(--color-line)}
.first-month li:last-child{border-bottom:0}
.first-month .fm-top{display:flex;align-items:center;gap:var(--space-4)}
.first-month .fm-stroke{display:block;height:10px;width:96px;border-radius:999px;transform-origin:left;flex:none}
.first-month:not(.in) .fm-stroke{transform:scaleX(0)}
.first-month .fm-bh .fm-stroke{background:var(--bh-s)}.first-month .fm-mh .fm-stroke{background:var(--mh-s)}.first-month .fm-sp .fm-stroke{background:var(--sp-s)}.first-month .fm-ot .fm-stroke{background:var(--ot-s)}
.first-month.in .fm-stroke{animation:k-stroke-in 150ms var(--ease-out) both}
.first-month.in li:nth-child(2) .fm-stroke{animation-delay:150ms}.first-month.in li:nth-child(3) .fm-stroke{animation-delay:300ms}.first-month.in li:nth-child(4) .fm-stroke{animation-delay:450ms}
.first-month .fm-when{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:500}
.first-month h3{font-size:var(--text-lg);font-family:var(--font-display);font-weight:400;margin:0}
.first-month p{font-size:var(--text-sm);margin:0;max-width:52ch}
.first-month .fm-tag{display:inline-block;font-size:var(--text-xs);padding:4px 10px;background:var(--linen);border:1px solid var(--color-line);border-radius:999px;margin-left:auto}

/* ---------- Who we help: one kit, four looks ---------- */
.audience-tabs button{position:relative}
.audience-tabs button[aria-selected=true]{border-color:transparent}
.audience-tabs button[aria-selected=true]::after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:4px;border-radius:999px;background:var(--lagoon);animation:k-stroke-in 300ms var(--ease-out) both;transform-origin:left}
.audience-panel{transition:none}
.audience-panel img{transition:clip-path 260ms var(--ease-out)}
.audience-panel .inline-tags span{transition:background 200ms,color 200ms}
/* One kit, one voice: the four audience panels share the same type, layout and tag style.
   (Per-audience type variations were tried on 2026-10-22 and read as inconsistency; removed.) */
.audience-panel .audience-copy h3{font-size:var(--text-xl);line-height:1.15;font-style:normal;letter-spacing:0}
.audience-panel .audience-copy>p{font-weight:400;line-height:1.6}
.audience-panel .inline-tags span{background:var(--linen);border-color:var(--color-line);color:var(--ink)}
.audience-panel img{clip-path:none}

/* ---------- Service pages wear their family's three tones ---------- */
.service-page .service-hero h1{color:var(--svc-d)}
.service-page .service-hero h1::after{content:"";display:block;width:96px;height:10px;border-radius:999px;background:var(--svc-s);margin-top:var(--space-5);transform-origin:left;animation:k-stroke-in 600ms var(--ease-out)}
.service-page .service-label{display:inline-flex;align-items:center;gap:var(--space-3);padding:6px 14px 6px 6px;background:var(--svc-l);color:var(--ink)}
.service-page .service-label .discipline-symbol{background:#fff;color:var(--svc-d);width:36px;height:36px}
.edition-behavioral-health .service-label{background:#fff}
.edition-behavioral-health .service-label .discipline-symbol{background:var(--bh-l)}
.service-page .service-label .discipline-symbol .icon{width:22px;height:22px}
.service-page .service-kicker,.service-page .glance-heading,.service-page .context-identity{color:var(--svc-d)}
.service-page .button{background:var(--svc-d);border-color:var(--svc-d)}
.service-page .button:hover{background:var(--ink);border-color:var(--ink)}
.service-page .text-link{color:var(--svc-d)}
.service-page .edition-path li span{color:var(--svc-d)}
.service-page .section-navigation a[aria-current],.service-page .section-navigation a:hover{color:var(--svc-d)}
.edition-aba-therapy .edition-hero,.edition-behavioral-health .edition-hero{background:var(--bh-l)}
.edition-aba-therapy .aba-color-field{background:var(--sp-l)}
.service-page .parent-line{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--svc-d);margin-bottom:var(--space-4)}
.service-page .parent-line::before{content:"";width:28px;height:6px;border-radius:999px;background:var(--svc-s)}

/* Our care overview */
.service-entry.sub{margin-left:var(--space-8);padding-left:var(--space-6);border-left:6px solid var(--bh-s);border-top:0}
.service-entry.sub h2{font-size:var(--text-lg)}
.service-entry .sub-note{display:inline-block;font-family:var(--font-body);font-size:var(--text-xs);font-weight:500;letter-spacing:0;color:var(--ink);background:var(--bh-l);padding:6px 12px;margin-left:12px;vertical-align:middle}
@media (max-width:700px){.service-entry.sub{margin-left:0}}

/* Header care menu */
.care-menu a.sub{padding-left:52px;font-size:var(--text-xs)}
.care-menu a.sub .menu-service-name::before{content:"";width:22px;height:6px;border-radius:999px;background:var(--bh-s);margin-right:10px;flex:none}
.care-menu a.sub .menu-service-name{display:inline-flex;align-items:center}
.care-menu small,.mobile-care small{display:block;font-size:11px;color:var(--slate);font-weight:400;letter-spacing:0}
.mobile-care a.sub{padding-left:60px;font-size:var(--text-sm)}

/* ---------- Calm view (Designing for every mind) ---------- */
.calm-toggle{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:0 12px;border:1px solid rgba(252,243,224,.55);border-radius:999px;background:transparent;color:inherit;font:inherit;font-size:var(--text-xs);cursor:pointer;letter-spacing:.02em}
.calm-toggle::before{content:"";width:10px;height:10px;border-radius:50%;border:1.5px solid currentColor}
.calm-toggle[aria-pressed=true]{background:var(--linen);color:var(--teal);border-color:var(--linen)}
.calm-toggle[aria-pressed=true]::before{background:var(--teal);border-color:var(--teal)}
.mobile-panel .calm-toggle{margin:var(--space-6) 0 0;color:var(--teal);border-color:var(--teal)}
.mobile-panel .calm-toggle[aria-pressed=true]{background:var(--teal);color:#fff}
html.calm *,html.calm *::before,html.calm *::after{animation-duration:0s!important;animation-delay:0s!important;transition-duration:0s!important}
html.calm .svc-divider span,html.calm .first-month .fm-stroke,html.calm .v2-underline::after,html.calm .k-window.lit-in span{transform:none;opacity:1}
html.calm .paper-accent::after{display:none}
html.calm .v2-field{background:var(--bh-l)}
html.calm .audience-panel[data-mode=play]>div:first-child::after,html.calm .audience-panel[data-mode=bright]>div:first-child::before,html.calm .audience-panel[data-mode=bright]>div:first-child::after{display:none}
html.calm .audience-panel .inline-tags span{background:transparent!important;border-color:var(--color-line)!important}
html.calm .closing-landscape .foothills{filter:saturate(.7)}
@media (prefers-reduced-motion:reduce){
 .svc-divider span,.first-month .fm-stroke,.v2-underline::after,.k-window.lit-in span,.v2-room img,.v2-people,.v2-caption,.service-page .service-hero h1::after,.audience-tabs button[aria-selected=true]::after{animation:none!important;transform:none;opacity:1}
 .v2-roofline path{animation:none!important;stroke-dashoffset:0}
}

/* ---------- Leadership page and the under-the-roof roster (no clinician galleries, per Calvin 2026-10-22) ---------- */
.lead-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--space-6)}
.lead-card{margin:0;display:flex;flex-direction:column}
.lead-card .lead-photo{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--linen)}
.lead-card img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block}
.lead-card .ph-badge{position:absolute;top:10px;left:10px}
.lead-card .lead-stroke{display:block;height:8px;width:64px;border-radius:999px;margin:var(--space-5) 0 var(--space-3);background:var(--svc-s,var(--lagoon))}
.lead-card h3{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);line-height:1.15;margin:0}
.lead-card .lead-role{font-size:var(--text-sm);color:var(--svc-d,var(--teal));font-weight:500;margin:4px 0 0}
.lead-card .lead-creds{font-size:var(--text-xs);color:var(--slate);margin:4px 0 var(--space-3)}
.lead-card p.lead-bio{font-size:var(--text-sm);line-height:1.6;margin:0}
.roster{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--space-16);align-items:start}
.data-strokes{display:flex;gap:6px;height:14px;margin-bottom:var(--space-8)}
.data-strokes span{display:block;border-radius:999px;transform-origin:left}
.data-strokes:not(.in) span{transform:scaleX(0)}
.data-strokes.in span{animation:k-stroke-in 150ms var(--ease-out) both}
.data-strokes.in span:nth-child(2){animation-delay:150ms}.data-strokes.in span:nth-child(3){animation-delay:300ms}.data-strokes.in span:nth-child(4){animation-delay:450ms}
.data-strokes .bh{background:var(--bh-s)}.data-strokes .mh{background:var(--mh-s)}.data-strokes .sp{background:var(--sp-s)}.data-strokes .ot{background:var(--ot-s)}
.roster-lines{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-line)}
.roster-lines li{display:grid;grid-template-columns:14px 1fr auto;gap:var(--space-4);align-items:center;padding:var(--space-4) 0;border-bottom:1px solid var(--color-line)}
.roster-lines li::before{content:"";width:14px;height:14px;border-radius:50%;background:var(--svc-s)}
.roster-lines b{display:block;font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);line-height:1.15}
.roster-lines span{display:block;font-size:var(--text-sm);color:var(--slate)}
.roster-lines em{font-style:normal;font-size:var(--text-sm);color:var(--svc-d);white-space:nowrap;display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.roster-facts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5)}
.roster-facts div{padding:var(--space-6);background:var(--linen)}
.roster-facts b{display:block;font-family:var(--font-display);font-weight:400;font-size:clamp(1.8rem,2.6vw,2.4rem);line-height:1;color:var(--teal)}
.roster-facts span{display:block;font-size:var(--text-sm);margin-top:6px}
.roster-privacy{display:flex;gap:var(--space-4);align-items:flex-start;padding:var(--space-5) var(--space-6);background:#fff;border:1px solid var(--color-line);margin-top:var(--space-6);font-size:var(--text-sm);line-height:1.55}
.roster-privacy .k-window{--w:36px;margin-top:2px}
.vx-roof-strip{background:var(--linen)}
.vx-roof-strip .roster{align-items:center}
@media (max-width:1000px){.lead-grid{grid-template-columns:repeat(3,1fr)}.roster{grid-template-columns:1fr;gap:var(--space-10)}}
@media (max-width:700px){.lead-grid{grid-template-columns:1fr 1fr;gap:var(--space-5)}.roster-facts{grid-template-columns:1fr 1fr}.roster-lines li{grid-template-columns:14px 1fr}.roster-lines em{grid-column:2;align-items:flex-start}}

/* ---------- Careers: pay on the page, voices by role, Main Street at the edge ---------- */
.pay-strip{list-style:none;margin:var(--space-8) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-3)}
.pay-strip li{display:flex;flex-direction:column;gap:2px;padding:10px 14px;background:#fff;border:1px solid var(--color-line);min-width:132px}
.pay-strip b{font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--slate);font-weight:600}
.pay-strip span{font-family:var(--font-display);font-size:var(--text-base);color:var(--teal)}
.pay-strip li.note{justify-content:center;background:transparent;border:0;min-width:0;padding-left:0}
.vx-voice.no-photo figcaption{display:flex;flex-direction:column;gap:2px;font-size:var(--text-sm)}
.vx-voice.no-photo figcaption b{font-weight:500}
.vx-voice.no-photo figcaption span{color:var(--slate);font-size:var(--text-xs)}
.vx-voice.no-photo .voice-stroke{display:block;width:40px;height:6px;border-radius:999px;background:var(--svc-s,var(--lagoon))}
.main-street{display:block;width:100%;height:auto;margin:0;line-height:0}
.main-street svg{display:block;width:100%;height:auto}
.main-street g.h{transform-box:fill-box;transform-origin:bottom center}
.main-street:not(.in) g.h{transform:translateY(100%)}
.main-street.in g.h{animation:k-house-rise 300ms var(--ease-out) both}
@keyframes k-house-rise{from{transform:translateY(100%)}to{transform:none}}
html.calm .main-street g.h,.main-street.in g.h{transform:none}
@media (prefers-reduced-motion:reduce){.main-street g.h{animation:none!important;transform:none!important}.data-strokes span{animation:none!important;transform:none!important}}

/* ---------- Insurer logo band (real marks, normalized to one cap height; list still to confirm) ---------- */
.payer-band{background:#fff;border-block:1px solid var(--color-line)}
.payer-band .wrap{display:flex;align-items:center;gap:var(--space-10);padding-block:var(--space-6);flex-wrap:wrap}
.payer-band .payer-lede{flex:0 0 auto;display:flex;flex-direction:column;gap:6px}
.payer-band .payer-lede strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);line-height:1.1}
.payer-band .payer-lede a{font-size:var(--text-sm)}
.payer-logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-5) var(--space-10);flex:1 1 520px}
.payer-logos li{display:flex;align-items:center;height:40px}
.payer-logos img{height:var(--lh,30px);width:auto;max-width:170px;display:block;object-fit:contain;filter:grayscale(1) contrast(1.05);opacity:.8;transition:filter 200ms,opacity 200ms}
.payer-logos li:hover img,.payer-band:focus-within .payer-logos img{filter:none;opacity:1}
.payer-logos li.text{flex-direction:column;align-items:flex-start;justify-content:center;height:auto;font-family:var(--font-display);font-size:var(--text-lg);line-height:1;color:var(--ink);opacity:.8;letter-spacing:.01em}
.payer-logos li.text small{display:block;font-family:var(--font-body);font-size:var(--text-xs);color:var(--slate);letter-spacing:.06em;text-transform:uppercase}
.payer-band.color .payer-logos img{filter:none;opacity:1}
.payer-page .payer-logos{gap:var(--space-6) var(--space-12)}
.payer-page .payer-logos img{--lh:34px;max-width:200px}
html.calm .payer-logos img{filter:grayscale(1);opacity:.75}
@media (max-width:700px){.payer-band .wrap{gap:var(--space-5)}.payer-logos{gap:var(--space-4) var(--space-6)}.payer-logos img{--lh:24px;max-width:120px}.payer-logos li{height:32px}}
/* Leadership cards: names and roles reserve two lines so the rows align across the grid. */
.lead-card h3{min-height:2.3em}
.lead-card .lead-role{min-height:2.7em}
@media (max-width:700px){.lead-card h3,.lead-card .lead-role{min-height:0}}

/* ---------- Payer band: a heading row, then one calm row of marks ---------- */
.payer-band .wrap{display:block;padding-block:var(--space-6) var(--space-8)}
.payer-head{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6);flex-wrap:wrap}
.payer-head strong{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);line-height:1.1}
.payer-head .text-link{margin-left:auto;font-size:var(--text-sm)}
.payer-logos{flex:none;justify-content:space-between;gap:var(--space-4) var(--space-6)}
.payer-logos:not(.in) li{opacity:0;transform:translateY(8px)}
.payer-logos.in li{animation:k-rise-sm 420ms var(--ease-out) both}
.payer-logos.in li:nth-child(2){animation-delay:60ms}.payer-logos.in li:nth-child(3){animation-delay:120ms}.payer-logos.in li:nth-child(4){animation-delay:180ms}
.payer-logos.in li:nth-child(5){animation-delay:240ms}.payer-logos.in li:nth-child(6){animation-delay:300ms}.payer-logos.in li:nth-child(7){animation-delay:360ms}.payer-logos.in li:nth-child(8){animation-delay:420ms}
@keyframes k-rise-sm{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (max-width:700px){.payer-logos{justify-content:flex-start}.payer-head .text-link{margin-left:0;flex-basis:100%}}

/* ---------- Small delights (all once per view, under a second, off in Calm view) ---------- */
.button .icon,.text-link .icon{transition:transform 180ms var(--ease-out)}
.button:hover .icon,.text-link:hover .icon{transform:translateX(4px)}
/* Hovering a service row previews its pane in the house */
.v2-nav-grid:has(.village-room.theme-sky:hover) .v2-nav-house:not([data-lit=mental-health]) .nh-window .p-mh,
.v2-nav-grid:has(.village-room.theme-marigold:hover) .v2-nav-house:not([data-lit=speech-therapy]) .nh-window .p-sp,
.v2-nav-grid:has(.village-room.theme-leaf:hover) .v2-nav-house:not([data-lit=occupational-therapy]) .nh-window .p-ot,
.v2-nav-grid:has(.village-room.theme-teal:hover) .v2-nav-house:not([data-lit=behavioral-health]) .nh-window .p-bh{background:rgba(252,243,224,.5)}
.v2-nav-house .nh-window span.lit-now{animation:k-pane-pulse 420ms var(--ease-out)}
@keyframes k-pane-pulse{0%{transform:scale(.92);filter:brightness(1.25)}60%{transform:scale(1.04)}100%{transform:none;filter:none}}
/* Leadership strokes draw in sequence */
.lead-card .lead-stroke{transform-origin:left}
.lead-grid:not(.in) .lead-stroke{transform:scaleX(0)}
.lead-grid.in .lead-stroke{animation:k-stroke-in 300ms var(--ease-out) both}
.lead-grid.in .lead-card:nth-child(2) .lead-stroke{animation-delay:120ms}.lead-grid.in .lead-card:nth-child(3) .lead-stroke{animation-delay:240ms}
.lead-grid.in .lead-card:nth-child(4) .lead-stroke{animation-delay:360ms}.lead-grid.in .lead-card:nth-child(5) .lead-stroke{animation-delay:480ms}
/* Daybreak: the footer sun rises into place and the birds arrive */
.closing-landscape .ft-sun-g{transform-box:fill-box;transform-origin:center}
.closing-landscape:not(.in) .ft-sun-g{transform:translateY(26px);opacity:0}
.closing-landscape.in .ft-sun-g{animation:k-sunrise 900ms var(--ease-out) both}
.closing-landscape:not(.in) .ft-birds{opacity:0}
.closing-landscape.in .ft-birds{animation:k-pane-in 600ms var(--ease-out) 500ms both}
@keyframes k-sunrise{from{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}
html.calm .payer-logos li,html.calm .lead-stroke,html.calm .ft-sun-g,html.calm .ft-birds{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.payer-logos li,.lead-stroke,.ft-sun-g,.ft-birds,.nh-window span{animation:none!important;transform:none!important;opacity:1!important}}

/* ---------- Resources: topics wear their service family; the active filter takes its stroke ---------- */
.vx-article[data-fam=bh],.vx-filters button[data-fam=bh]{--fam-s:var(--bh-s);--fam-d:var(--bh-d)}
.vx-article[data-fam=mh],.vx-filters button[data-fam=mh]{--fam-s:var(--mh-s);--fam-d:var(--mh-d)}
.vx-article[data-fam=sp],.vx-filters button[data-fam=sp]{--fam-s:var(--sp-s);--fam-d:var(--sp-d)}
.vx-article[data-fam=ot],.vx-filters button[data-fam=ot]{--fam-s:var(--ot-s);--fam-d:var(--ot-d)}
.vx-article .vx-stroke{display:block;width:44px;height:6px;border-radius:999px;background:var(--fam-s,var(--lagoon));margin-bottom:10px}
.vx-featured .vx-stroke{width:64px;height:8px}
.vx-article .vx-cat{color:var(--fam-d,var(--teal))}
.vx-filters button{position:relative}
.vx-filters button[aria-pressed=true]{background:var(--fam-d,var(--teal));border-color:var(--fam-d,var(--teal));color:#fff}
.vx-filters button[aria-pressed=true]::after{content:"";position:absolute;left:16px;right:16px;bottom:-9px;height:4px;border-radius:999px;background:var(--fam-s,var(--lagoon))}
.vx-filters{row-gap:var(--space-4)}
.vx-article-hero h1::after{content:"";display:block;width:96px;height:10px;border-radius:999px;background:var(--lagoon);margin-top:var(--space-5);transform-origin:left;animation:k-stroke-in 600ms var(--ease-out)}
.vx-article-hero.fam-bh h1::after{background:var(--bh-s)}
.glance-strokes{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-5);margin:0 0 var(--space-10);padding:var(--space-6);background:#fff;border:1px solid var(--color-line)}
.glance-strokes a{display:flex;flex-direction:column;gap:8px;font-size:var(--text-sm);line-height:1.35;text-decoration:none;color:var(--ink)}
.glance-strokes a:hover{color:var(--teal)}
.glance-strokes small{font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--slate)}
.glance-strokes .gs-stroke{display:block;height:8px;border-radius:999px;transform-origin:left;margin-bottom:2px}
.glance-strokes a:nth-child(1) .gs-stroke{background:var(--bh-s)}.glance-strokes a:nth-child(2) .gs-stroke{background:var(--mh-s)}
.glance-strokes a:nth-child(3) .gs-stroke{background:var(--sp-s)}.glance-strokes a:nth-child(4) .gs-stroke{background:var(--ot-s)}
.glance-strokes:not(.in) .gs-stroke{transform:scaleX(0)}
.glance-strokes.in .gs-stroke{animation:k-stroke-in 150ms var(--ease-out) both}
.glance-strokes.in a:nth-child(2) .gs-stroke{animation-delay:150ms}.glance-strokes.in a:nth-child(3) .gs-stroke{animation-delay:300ms}.glance-strokes.in a:nth-child(4) .gs-stroke{animation-delay:450ms}
@media (max-width:700px){.glance-strokes{grid-template-columns:1fr 1fr;padding:var(--space-5)}}

/* ---------- Forms: strokes as progress, color plus words ---------- */
.form-progress{list-style:none;margin:0 0 var(--space-10);padding:0 0 var(--space-6);display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3);border-bottom:1px solid var(--color-line)}
.form-progress.two{grid-template-columns:repeat(2,1fr)}
.form-progress li{display:flex;flex-direction:column;gap:8px;font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--slate);font-weight:500;transition:color 200ms}
.form-progress .fp-stroke{display:block;height:8px;border-radius:999px;background:var(--muted);position:relative;overflow:hidden}
.form-progress .fp-stroke::after{content:"";position:absolute;inset:0;border-radius:999px;background:var(--fp,var(--teal));transform:scaleX(0);transform-origin:left;transition:transform 450ms var(--ease-out)}
.form-progress li.done .fp-stroke::after{transform:scaleX(1)}
.form-progress li.done,.form-progress li.current{color:var(--ink)}
.form-progress li.current .fp-stroke{background:color-mix(in srgb,var(--fp,var(--teal)) 28%,var(--muted))}
.fp-bh{--fp:var(--bh-s)}.fp-mh{--fp:var(--mh-s)}.fp-sp{--fp:var(--sp-s)}.fp-ot{--fp:var(--ot-s)}
.choice-swatch{width:14px;height:14px;border-radius:3px;background:var(--sw,transparent);border:1px solid var(--color-line);flex:none}
.vx-choices label.fam-bh{--sw:var(--bh-l)}.vx-choices label.fam-mh{--sw:var(--mh-l)}.vx-choices label.fam-sp{--sw:var(--sp-l)}.vx-choices label.fam-ot{--sw:var(--ot-l)}
.first-month.compact{gap:0}
.first-month.compact li{padding:var(--space-4) 0;grid-template-columns:1fr}
.first-month.compact .fm-stroke{width:56px;height:8px}
.first-month.compact h3{font-size:var(--text-base)}
.first-month.compact p{font-size:var(--text-xs)}
.first-month.compact .fm-top{gap:var(--space-3)}
.role-pay-live{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--linen);margin:-8px 0 var(--space-6);animation:k-rise-sm 320ms var(--ease-out)}
.role-pay-live .rp-stroke{width:40px;height:8px;border-radius:999px;background:var(--fp,var(--teal));flex:none}
.role-pay-live b{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);display:block;line-height:1.1}
.role-pay-live small{font-size:var(--text-xs);color:var(--slate)}
.vx-success .k-window{--w:52px;margin-bottom:var(--space-4)}
html.calm .form-progress .fp-stroke::after,html.calm .role-pay-live{transition:none;animation:none}
@media (prefers-reduced-motion:reduce){.glance-strokes .gs-stroke{animation:none!important;transform:none!important}.form-progress .fp-stroke::after{transition:none}}
/* Deliberate line breaks hold at every width; the type scales to fit (see fitHeads in v2.js). */
html.heads-fit h1 .nb,html.heads-fit h2 .nb,html.heads-fit h3 .nb{white-space:nowrap}
html.heads-fit .fit-wrap .nb{white-space:normal}
/* Headings on teal fields are always Linen-white, whatever the global heading color says. */
.vx-newsletter h2,.vx-feature-quote blockquote,.v2-caption strong,.vx-help a{color:#fff}

/* ---------- Review notes stay off the page (Calvin, 2026-10-23). ?review=1 shows them for the team. ---------- */
html:not(.review) :is(.ph-badge,.confirm-chip,.ph-note,.ph-inline,.vx-review,.pay-strip li.note,.fm-tag){display:none!important}
html.review .ph-badge,html.review .confirm-chip,html.review .fm-tag{display:inline-flex}
html.review .ph-note,html.review .ph-inline{display:inline;font-size:var(--text-xs);color:#8a5a00;background:var(--sun);padding:2px 6px;border-radius:4px}
html.review p.ph-note,html.review small.ph-note{display:block;width:fit-content;margin-top:var(--space-4)}
html.review .vx-review{display:flex}
html.review .pay-strip li.note{display:flex}
html.review::after{content:"Review notes on · add ?review=0 to hide";position:fixed;left:12px;bottom:12px;z-index:200;font:600 11px/1 var(--font-body);letter-spacing:.06em;text-transform:uppercase;background:var(--sun);color:var(--ink);padding:8px 10px;border-radius:999px;box-shadow:0 1px 0 rgba(46,62,97,.2)}

/* ===================== ABA: Play mode (Brand Guidelines 2.0, p. 62 and 67) ===================== */
.play-page{--eave:38.3%}
.play-page .breadcrumb{padding-top:var(--space-6)}
.aba-hero{position:relative;background:var(--linen);overflow:hidden}
.aba-hero-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:var(--space-12);align-items:center;padding:var(--space-10) 0 var(--space-20)}
.aba-copy .eyebrow{margin-bottom:var(--space-5)}
.play-h1{font-family:var(--font-display);font-weight:400;font-size:clamp(3.2rem,7vw,6.5rem);line-height:.92;letter-spacing:-.03em;margin:0 0 var(--space-6);color:var(--teal)}
.play-h1 .nb:nth-child(3){color:var(--deep-rose)}
.aba-copy .lead{font-size:var(--text-lg);line-height:1.5;max-width:46ch;margin:0 0 var(--space-8)}
.play-facts{list-style:none;margin:var(--space-10) 0 0;padding:0;display:flex;gap:var(--space-8);flex-wrap:wrap}
.play-facts li{display:flex;flex-direction:column;gap:4px;min-width:120px}
.play-facts b{font-family:var(--font-display);font-weight:400;font-size:clamp(2.4rem,4vw,3.6rem);line-height:.9;color:var(--teal)}
.play-facts li:nth-child(2) b{color:var(--sp-d)}.play-facts li:nth-child(3) b{color:var(--deep-lilac)}
.play-facts span{font-size:var(--text-sm);line-height:1.35;max-width:14ch}
.play-facts:not(.in) li{opacity:0;transform:translateY(10px)}
.play-facts.in li{animation:k-rise-sm 420ms var(--ease-out) both}
.play-facts.in li:nth-child(2){animation-delay:120ms}.play-facts.in li:nth-child(3){animation-delay:240ms}
/* House tiles: a photo in the house, a bold colored house just behind it */
.htile{position:relative;margin:0;aspect-ratio:22/25}
.htile-shadow,.htile-photo{position:absolute;inset:0;clip-path:polygon(50% 0,100% var(--eave),100% 100%,0 100%,0 var(--eave))}
.htile-shadow{transform:translate(14px,14px);background:var(--roof,var(--lagoon))}
.htile-photo{overflow:hidden;background:var(--linen)}
.htile-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 0;display:block}
.roof-sky{--roof:var(--mh-l)}.roof-marigold{--roof:var(--sp-l)}.roof-leaf{--roof:var(--ot-l)}.roof-rose{--roof:var(--rose)}.roof-lilac{--roof:var(--lilac)}.roof-sunlight{--roof:var(--sun)}.roof-teal{--roof:var(--teal)}.roof-lagoon{--roof:var(--lagoon)}
.aba-village{position:relative;height:600px}
.aba-village .t1{position:absolute;left:0;top:0;width:50%}
.aba-village .t2{position:absolute;right:0;top:0;width:38%}
.aba-village .t3{position:absolute;left:50%;bottom:0;width:40%}
.aba-village::after{content:"";position:absolute;left:29%;bottom:0;width:18%;aspect-ratio:22/25;background:var(--sun);clip-path:polygon(50% 0,100% var(--eave),100% 100%,0 100%,0 var(--eave))}
.aba-village .sticker.mark{position:absolute;left:2%;bottom:8%;width:19%;max-width:118px;height:auto;transform:rotate(-7deg);background:none;z-index:2}
.aba-village .sticker.sun{position:absolute;left:53%;top:2%;width:48px;height:48px;border-radius:50%;background:var(--sun)}
.aba-village:not(.in) .htile,.aba-village:not(.in) .sticker{opacity:0;transform:translateY(24px)}
.aba-village.in .htile,.aba-village.in .sticker{animation:k-rise 520ms var(--ease-out) both}
.aba-village.in .t2{animation-delay:80ms}.aba-village.in .t3{animation-delay:160ms}.aba-village.in .sticker.sun{animation-delay:260ms}.aba-village.in .sticker.mark{animation-delay:340ms;animation-name:k-pop}
@keyframes k-pop{from{opacity:0;transform:rotate(-7deg) scale(.6)}70%{transform:rotate(-7deg) scale(1.06)}to{opacity:1;transform:rotate(-7deg) scale(1)}}
/* The street sizes itself from its width, so roof peaks are never clipped; phones crop the sides instead. */
.aba-hero .main-street.play svg{height:auto}
.main-street.play g.h{transform-box:fill-box;transform-origin:bottom center}
/* How */
.play-how .vx-head h2,.play-skills .vx-head h2,.play-milestones .vx-head h2,.play-parents h2,.play-bh h2{font-family:var(--font-display);font-weight:400;font-size:var(--text-2xl);line-height:1.05;margin:0}
.play-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8)}
.play-steps li{display:flex;flex-direction:column;gap:var(--space-4)}
.play-steps .step-house{display:grid;place-items:center;width:112px;height:120px;clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%);background:var(--sh,var(--bh-l))}
.play-steps .step-house i{font-style:normal;font-family:var(--font-display);font-size:2.2rem;color:var(--ink);margin-top:28px}
.play-steps .st-sp{--sh:var(--sp-l)}.play-steps .st-ot{--sh:var(--ot-l)}.play-steps .st-mh{--sh:var(--mh-l)}
.play-steps b{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem,3.4vw,3rem);line-height:1;color:var(--teal)}
.play-steps p{margin:0;font-size:var(--text-base);line-height:1.6;max-width:36ch}
.play-steps:not(.in) li{opacity:0;transform:translateY(16px)}
.play-steps.in li{animation:k-rise 480ms var(--ease-out) both}
.play-steps.in li:nth-child(2){animation-delay:120ms}.play-steps.in li:nth-child(3){animation-delay:240ms}
/* Skills: six colored houses */
.play-skills{background:var(--linen)}
.skill-tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-8) var(--space-6)}
.skill{display:flex;flex-direction:column;gap:var(--space-3)}
.skill-house{position:relative;display:block;width:100%;aspect-ratio:1/.92;clip-path:polygon(50% 0,100% 40%,100% 100%,0 100%,0 40%);background:var(--sc)}
.skill-house .icon{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%);width:56px;height:56px;color:var(--ink);stroke-width:1.4}
.skill-house .k-window{position:absolute;right:12%;bottom:10%;--w:30px}
.skill-house .k-window span{background:rgba(255,255,255,.55)}
.c-spl{--sc:var(--sp-l)}.c-otl{--sc:var(--ot-l)}.c-rose{--sc:var(--rose)}.c-mhl{--sc:var(--mh-l)}.c-lilac{--sc:var(--lilac)}.c-bhl{--sc:var(--bh-l)}
.skill b{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);line-height:1.15;margin-top:var(--space-2)}
.skill p{margin:0;font-size:var(--text-sm);line-height:1.55}
.skill-tiles:not(.in) .skill{opacity:0;transform:translateY(18px)}
.skill-tiles.in .skill{animation:k-rise 450ms var(--ease-out) both}
.skill-tiles.in .skill:nth-child(2){animation-delay:70ms}.skill-tiles.in .skill:nth-child(3){animation-delay:140ms}.skill-tiles.in .skill:nth-child(4){animation-delay:210ms}.skill-tiles.in .skill:nth-child(5){animation-delay:280ms}.skill-tiles.in .skill:nth-child(6){animation-delay:350ms}
/* Parents */
.parents-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:center}
.parents-copy p{max-width:52ch}
.week{margin-top:var(--space-10);padding:var(--space-6) var(--space-8);background:var(--linen)}
.week-title{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;font-weight:600;color:var(--teal);margin:0 0 var(--space-4)}
.week ol{list-style:none;margin:0;padding:0}
.week li{display:grid;grid-template-columns:40px 44px 56px 1fr;gap:var(--space-3);align-items:center;padding:8px 0;border-top:1px solid var(--color-line);font-size:var(--text-sm)}
.week li:first-child{border-top:0}
.week .wk-stroke{display:block;height:8px;border-radius:999px;background:var(--ws);transform-origin:left}
.week .wk-day{font-weight:600;color:var(--slate);font-size:var(--text-xs);letter-spacing:.06em;text-transform:uppercase}
.week .wk-time{font-family:var(--font-display);font-size:var(--text-base)}
.wk-bh{--ws:var(--bh-s)}.wk-sp{--ws:var(--sp-s)}.wk-mh{--ws:var(--mh-s)}.wk-ot{--ws:var(--ot-s)}
.week:not(.in) .wk-stroke{transform:scaleX(0)}
.week.in .wk-stroke{animation:k-stroke-in 200ms var(--ease-out) both}
.week.in li:nth-child(2) .wk-stroke{animation-delay:100ms}.week.in li:nth-child(3) .wk-stroke{animation-delay:200ms}.week.in li:nth-child(4) .wk-stroke{animation-delay:300ms}.week.in li:nth-child(5) .wk-stroke{animation-delay:400ms}
.parents-tiles{position:relative;height:620px}
.parents-tiles .p1{position:absolute;left:0;top:0;width:50%}
.parents-tiles .p2{position:absolute;right:0;top:4%;width:40%}
.parents-tiles .p3{position:absolute;left:28%;bottom:0;width:42%}
.parents-tiles:not(.in) .htile{opacity:0;transform:translateY(20px)}
.parents-tiles.in .htile{animation:k-rise 520ms var(--ease-out) both}
.parents-tiles.in .p2{animation-delay:100ms}.parents-tiles.in .p3{animation-delay:200ms}
/* Milestones */
.play-milestones{background:var(--linen)}
.visit-card{max-width:900px;margin:0 auto var(--space-10)}
.visit-card svg{display:block;width:100%;height:auto;overflow:visible}
.visit-card .vh rect:nth-child(n+3){opacity:.18;transition:opacity 200ms}
.visit-card.in .vh rect:nth-child(n+3){animation:k-light 300ms var(--ease-out) both;animation-delay:calc(var(--i) * 120ms)}
@keyframes k-light{from{opacity:.18}to{opacity:1}}
.stickers{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center}
.stickers li{font-family:var(--font-display);font-size:var(--text-lg);padding:14px 22px;border-radius:999px;background:var(--sun);color:var(--ink);transform:rotate(var(--r));box-shadow:0 2px 0 rgba(46,62,97,.12)}
.stickers li:nth-child(2){background:var(--rose)}.stickers li:nth-child(3){background:var(--mh-l)}.stickers li:nth-child(4){background:var(--ot-l)}.stickers li:nth-child(5){background:var(--lilac)}
.stickers:not(.in) li{opacity:0;transform:rotate(var(--r)) scale(.7)}
.stickers.in li{animation:k-sticker 380ms var(--ease-out) both}
.stickers.in li:nth-child(2){animation-delay:90ms}.stickers.in li:nth-child(3){animation-delay:180ms}.stickers.in li:nth-child(4){animation-delay:270ms}.stickers.in li:nth-child(5){animation-delay:360ms}
@keyframes k-sticker{from{opacity:0;transform:rotate(var(--r)) scale(.7)}70%{transform:rotate(var(--r)) scale(1.05)}to{opacity:1;transform:rotate(var(--r)) scale(1)}}
/* Behavioral Health, beyond ABA (calmer) */
.bh-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--space-16);align-items:center}
.bh-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-5);margin:var(--space-8) 0}
.bh-cards article{padding:var(--space-6);background:var(--linen)}
.bh-cards .k-stroke{display:block;width:40px;height:8px;border-radius:999px;margin-bottom:var(--space-4);background:var(--bh-s)}
.bh-cards article:nth-child(2) .k-stroke{background:var(--mh-s)}.bh-cards article:nth-child(3) .k-stroke{background:var(--ot-s)}
.bh-cards h3{font-family:var(--font-display);font-weight:400;font-size:var(--text-lg);margin:0 0 var(--space-2)}
.bh-cards p{margin:0;font-size:var(--text-sm);line-height:1.55}
.bh-links{display:flex;gap:var(--space-8);flex-wrap:wrap}
.bh-photo{margin:0}
.bh-photo img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.bh-photo figcaption{font-size:var(--text-xs);color:var(--slate);margin-top:var(--space-3)}
/* Coverage and FAQ */
.play-coverage .payer-note{font-size:var(--text-sm);color:var(--slate);max-width:70ch;margin:var(--space-6) 0 0}
.play-faq .faq summary{font-family:var(--font-display);font-size:var(--text-lg)}
.play-close h2{font-size:clamp(2.6rem,5vw,4.5rem);line-height:1}
/* Calm view + reduced motion for the play pieces */
html.calm .aba-village .htile,html.calm .aba-village .sticker,html.calm .play-steps li,html.calm .skill-tiles .skill,html.calm .parents-tiles .htile,html.calm .stickers li,html.calm .play-facts li{opacity:1;transform:none}
html.calm .stickers li{transform:rotate(var(--r))}
html.calm .visit-card .vh rect:nth-child(n+3){opacity:1}
html.calm .htile-shadow{background:var(--bh-l)}
@media (prefers-reduced-motion:reduce){.aba-village .htile,.aba-village .sticker,.play-steps li,.skill-tiles .skill,.parents-tiles .htile,.stickers li,.play-facts li,.week .wk-stroke,.visit-card .vh rect{animation:none!important;opacity:1!important;transform:none!important}.stickers li{transform:rotate(var(--r))!important}}
@media (max-width:1000px){
 .aba-hero-grid,.parents-grid,.bh-grid{grid-template-columns:1fr;gap:var(--space-10)}
 .aba-village{height:520px;max-width:560px;margin:0 auto;width:100%}
 .parents-tiles{height:520px;max-width:560px;margin:0 auto;width:100%}
 .skill-tiles{grid-template-columns:1fr 1fr}
 .play-steps{grid-template-columns:1fr}
 .bh-cards{grid-template-columns:1fr}
}
@media (max-width:700px){
 .aba-hero-grid{padding:var(--space-6) 0 var(--space-12)}
 .aba-village{height:380px}
 .aba-village .sticker.mark{width:20%;left:1%;bottom:6%}
 .aba-village .sticker.sun{width:44px;height:44px}
 .parents-tiles{height:400px}
 .skill-tiles{grid-template-columns:1fr 1fr;gap:var(--space-6) var(--space-4)}
 .skill-house .icon{width:40px;height:40px}
 .play-facts{gap:var(--space-6)}
 .week li{grid-template-columns:32px 40px 48px 1fr;font-size:var(--text-xs)}
 .aba-hero .main-street.play svg{height:96px;width:100%}
 .stickers li{font-size:var(--text-base);padding:10px 16px}
}

/* Leadership 2026-10-23: two co-founders with real photos, four department heads named without photos. */
.lead-grid.founders{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-8);max-width:980px}
.lead-grid.heads{grid-template-columns:repeat(4,1fr)}
.lead-card .lead-house{aspect-ratio:5/3;background:var(--svc-l,var(--linen));clip-path:polygon(50% 0,100% 34%,100% 100%,0 100%,0 34%);display:grid;place-items:center;padding-top:12%}
.lead-card .lead-house .k-window{--w:56px}
.lead-card .lead-house .k-window span{background:#fff;opacity:.9}
.lead-card.theme-teal .lead-house .p-bh,.lead-card.theme-sky .lead-house .p-mh,.lead-card.theme-marigold .lead-house .p-sp,.lead-card.theme-leaf .lead-house .p-ot{background:var(--svc-s);opacity:1}
.lead-grid.founders .lead-photo{aspect-ratio:4/5}
.lead-grid.founders .lead-photo img{object-position:50% 15%}
.lead-grid.founders .lead-card h3{font-size:var(--text-xl)}
.vx-byline .k-window{--w:40px}
@media (max-width:980px){.lead-grid.heads{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.lead-grid.founders{grid-template-columns:1fr}}

/* Partner review 2026-10-26 */
.soon-chip{display:inline-block;font:600 .72rem/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase;color:var(--teal);background:var(--bh-l);border-radius:999px;padding:.45em .8em}
.vx-article.soon{cursor:default}
.pay-strip-note{font-size:var(--text-sm);color:var(--slate);margin:var(--space-3) 0 0;max-width:62ch}
.first-month.compact.one{grid-template-columns:1fr}
.fm-after{font-size:var(--text-sm);color:var(--slate);margin:var(--space-4) 0 0;line-height:1.6}
.week-note{font-size:var(--text-sm);color:var(--slate);margin:-6px 0 var(--space-4)}
.play-where .bh-cards{margin-top:var(--space-6)}

/* Guides gated as articles keep the featured layout */
a.vx-article:hover,article.vx-featured:hover{border-color:var(--color-primary)}
article.vx-featured{display:grid;grid-template-columns:1.2fr 1fr;flex-direction:row}
@media (max-width:900px){article.vx-featured{grid-template-columns:1fr}}
/* Services page: all four entries share one layout (Amy, 10/23 review) */
.service-index .service-entry:first-child{grid-column:auto;display:block}
.service-index .service-entry h2{font-size:clamp(1.4rem,3vw,2.1rem)}
@media (min-width:701px){.service-index .service-entry h2{white-space:nowrap}}
/* HighLevel form embeds (request-appointment, referrals) */
.vx-embed{padding:14px 14px 22px}.vx-embed iframe{display:block;min-height:900px}.vx-embed .vx-privacy{margin:14px 6px 0}@media(max-width:700px){.vx-embed{padding:6px 6px 16px}}
