/* Assistant (answers + link cards) and the back-to-top button. */
.chat-panel{width:min(24rem,calc(100vw - 2rem));max-height:min(36rem,76vh)}
.chat-head b{font-family:var(--f-display,inherit)}
.chat-log{scroll-behavior:smooth;padding-bottom:var(--s-3)}
.msg.bot{max-width:100%;display:grid;gap:.55rem}.msg.bot p{margin:0}
.msg.bot a:not(.kb-card){color:var(--c-teal-700);text-decoration:underline;text-underline-offset:2px}
.kb-typing{display:flex!important;gap:5px;width:max-content;padding:.8rem 1rem}
.kb-typing span{width:7px;height:7px;border-radius:50%;background:var(--c-teal-700);opacity:.35;animation:kbDot 1s infinite ease-in-out}
.kb-typing span:nth-child(2){animation-delay:.15s}.kb-typing span:nth-child(3){animation-delay:.3s}
@keyframes kbDot{0%,80%,100%{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}
.kb-card{display:flex;align-items:center;gap:.7rem;padding:.45rem .7rem .45rem .45rem;border-radius:18px;background:#fff;border:1px solid var(--c-line);text-decoration:none!important;color:var(--c-ink)!important;transition:transform .25s var(--ease-spring,ease),box-shadow .25s,border-color .25s}
.kb-card:hover,.kb-card:focus-visible{border-color:var(--c-teal-700);box-shadow:0 8px 22px rgba(10,60,140,.14);transform:translateY(-1px)}
.kb-card img{flex:none;width:56px;height:56px;border-radius:14px 14px 14px 4px;object-fit:cover;background:var(--c-teal-100)}
.kb-card-t{display:grid;gap:2px;min-width:0;flex:1}.kb-card-t b{font-size:.88rem;line-height:1.25;font-weight:700}
.kb-card-t small{font-size:.7rem;color:var(--c-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-card-go{flex:none;width:28px;height:28px;border-radius:50%;background:var(--c-teal-700);color:#fff;display:grid;place-items:center;font-size:.95rem;transition:transform .25s}
.kb-card:hover .kb-card-go{transform:translateX(3px)}
.kb-card--noimg{padding-left:.8rem;border-left:4px solid var(--c-sun-500)}
.kb-card--sm img{width:40px;height:40px;border-radius:12px 12px 12px 3px}.kb-card--sm .kb-card-t b{font-size:.8rem;font-weight:600}
.kb-more{font-size:.7rem!important;letter-spacing:.08em;text-transform:uppercase;color:var(--c-ink-3);font-weight:700;margin-top:.2rem!important}
.kb-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:.15rem}
.kb-chip{min-height:38px;padding:0 .8rem;border-radius:999px;border:1px solid var(--c-teal-200);background:var(--c-teal-100);color:var(--c-teal-800);font:inherit;font-size:.8rem;font-weight:600;cursor:pointer;text-align:left;transition:background .2s,color .2s,transform .2s}
.kb-chip:hover{background:var(--c-teal-700);color:#fff;transform:translateY(-1px)}
.kb-chips.is-old{opacity:.55}
.chat-note{padding-top:0}
.kb-flash{animation:kbFlash 3s ease-out}
@keyframes kbFlash{0%,35%{box-shadow:0 0 0 6px rgba(124,194,66,.55),0 0 0 14px rgba(124,194,66,.18);border-radius:14px;background-color:rgba(233,246,217,.7)}100%{box-shadow:0 0 0 0 rgba(124,194,66,0);background-color:transparent}}
main [id]{scroll-margin-top:6.5rem}

/* back to top */
.totop{position:fixed;z-index:58;right:max(1rem,env(safe-area-inset-right));bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 66px);width:56px;height:56px;padding:0;border:0;background:none;cursor:pointer;color:#fff;opacity:0;transform:translateY(18px) scale(.6) rotate(-14deg);pointer-events:none;transition:opacity .35s,transform .5s cubic-bezier(.34,1.56,.64,1);-webkit-tap-highlight-color:transparent;filter:drop-shadow(0 10px 18px rgba(10,60,140,.28))}
.totop.is-on{opacity:1;transform:none;pointer-events:auto}
.totop-svg{width:100%;height:100%;display:block;overflow:visible}
.totop-track{fill:none;stroke:rgba(10,108,194,.16);stroke-width:3.5}
.totop-ring{fill:none;stroke:var(--c-sun-500);stroke-width:3.5;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);transform-origin:32px 32px}
.totop-disc rect{fill:var(--c-teal-700);transition:fill .25s}
.totop-disc{transform-origin:32px 32px;animation:ttMorph 9s ease-in-out infinite}
@keyframes ttMorph{0%,100%{transform:rotate(0)}50%{transform:rotate(14deg)}}
.totop-arrow{fill:none;stroke:#fff;stroke-width:3.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.totop:hover .totop-disc rect{fill:var(--c-teal-900)}.totop:hover .totop-arrow{transform:translateY(-3px)}
.totop:active{transform:scale(.92)}
.totop:focus-visible{outline:3px solid var(--c-teal-900);outline-offset:4px;border-radius:50%}
.totop.is-go .totop-arrow{animation:ttGo .7s ease-in}
@keyframes ttGo{0%{transform:none;opacity:1}45%{transform:translateY(-26px);opacity:0}46%{transform:translateY(26px);opacity:0}100%{transform:none;opacity:1}}
.totop-tip{position:absolute;right:calc(100% + 10px);top:50%;transform:translate(8px,-50%);background:var(--c-teal-900);color:#fff;font:700 .78rem/1 var(--f-body,inherit);padding:.55rem .8rem;border-radius:999px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s}
@media (hover:hover){.totop:hover .totop-tip,.totop:focus-visible .totop-tip{opacity:1;transform:translate(0,-50%)}}
@media (max-width:820px){.totop{width:46px;height:46px;bottom:calc(max(12px,env(safe-area-inset-bottom)) + 78px + 46px + 10px);right:max(14px,env(safe-area-inset-right))}.totop-tip{display:none}}
body.sheet-open .totop{opacity:0!important;pointer-events:none!important}
@media (prefers-reduced-motion:reduce){.totop,.totop-disc,.totop.is-go .totop-arrow,.kb-flash,.kb-typing span{animation:none!important;transition:none!important}}
:root[data-calm="on"] .totop,:root[data-calm="on"] .totop-disc,:root[data-calm="on"] .kb-flash{animation:none!important;transition:none!important}

/* ---- icon set (duotone) ---- */
.icon .sf{fill:currentColor;fill-opacity:.15;stroke:none}
.icon .ac{fill:var(--c-sun-500);stroke:var(--c-sun-500);stroke-width:.6}
.icon .acs{stroke:var(--c-sun-500);fill:none}
.icon .sf+.ac,.icon .ac{paint-order:stroke}
/* icon tiles: soft organic blobs, each slightly different */
.card-icon{border-radius:58% 42% 54% 46% / 46% 56% 44% 54%;position:relative;transition:border-radius .6s var(--ease-spring,ease),transform .4s var(--ease-spring,ease)}
.card:hover .card-icon,.reason:hover .card-icon{border-radius:44% 56% 42% 58% / 56% 44% 56% 44%;transform:rotate(-5deg) scale(1.05)}
.grid>*:nth-child(2n) .card-icon{border-radius:46% 54% 60% 40% / 52% 42% 58% 48%}
.grid>*:nth-child(3n) .card-icon{border-radius:54% 46% 44% 56% / 42% 58% 42% 58%}
.card-icon .icon{width:1.75em;height:1.75em;stroke-width:1.6}
.card-icon--sun .icon{color:#2d5a12}.card-icon--sun .icon .ac,.card-icon--sun .icon .acs{stroke:#0a6cc2;fill:#0a6cc2}.card-icon--sun .icon .acs{fill:none}
/* dark cards become photo cards: dark blue veil over a photo so the words are always readable */
.card.card--dark{position:relative;overflow:hidden;isolation:isolate;border:0;outline:0;color:#fff;
  background:linear-gradient(100deg,rgba(10,27,79,.95) 0%,rgba(10,50,120,.86) 62%,rgba(10,74,158,.38) 100%),var(--bg,none) center/cover,var(--c-teal-800)}
.card.card--dark::after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--c-sun-500),var(--c-teal-500));z-index:-1}
.card--p1{--bg:url(../img/family-couch.jpg)}.card--p2{--bg:url(../img/kids-grass.jpg)}.card--p3{--bg:url(../img/community.jpg)}
.card.card--dark{min-height:15rem}
.card.card--dark h3{color:#fff}.card.card--dark p{color:#eaf4fd;font-size:1.02rem}
.card.card--dark .card-icon{background:rgba(255,255,255,.16);color:#fff}
.card.card--dark .card-icon .icon .ac,.card.card--dark .card-icon .icon .acs{stroke:var(--c-sun-500)}

/* ---- stickers on the "What ABA builds" photo (same family as the home hero) ---- */
.bs{overflow:visible}
.bs-blob{position:absolute;inset:6% -4% -6% 8%;border-radius:46% 54% 42% 58%/52% 44% 56% 48%;background:var(--c-teal-100);z-index:0}
.bs .ph{z-index:1}
.bs-badge{position:absolute;z-index:4;right:-3%;top:-7%;width:23%;min-width:92px;filter:drop-shadow(0 12px 18px rgba(10,27,79,.25));animation:h4spin 22s linear infinite}
.bs-photo{position:absolute;z-index:4;left:-4%;bottom:-6%;width:26%;aspect-ratio:1;border-radius:50%;border:5px solid #fff;overflow:hidden;box-shadow:0 18px 34px -12px rgba(10,27,79,.45);transform:rotate(-6deg)}
.bs-photo img{width:100%;height:100%;object-fit:cover;display:block}
.bs .bs-card{position:absolute;z-index:4;right:4%;bottom:-6%;left:auto;top:auto;display:flex;align-items:center;gap:.65rem;padding:.7rem 1rem .7rem .7rem;background:#fff;border-radius:20px;box-shadow:0 20px 40px -14px rgba(10,27,79,.35);font-weight:800;font-size:.9rem;color:var(--c-ink)}
.bs .bs-card .card-icon{margin:0;width:2.6rem;height:2.6rem}
.bs-star{position:absolute;z-index:4;left:20%;top:-5%;width:3.1rem;height:3.1rem;display:grid;place-items:center;border-radius:50%;background:var(--c-sun-500);color:var(--c-teal-900);box-shadow:0 10px 20px -8px rgba(10,27,79,.4);transform:rotate(10deg)}
.bs-star .icon{width:1.7rem;height:1.7rem}.bs-star .icon .ac{fill:#fff;stroke:#fff}
.bs-photo,.bs-star{animation:bsBob 6s ease-in-out infinite alternate}.bs-star{animation-delay:-2.4s}
@keyframes bsBob{to{translate:0 -8px}}
@media (max-width:820px){.bs .bs-card{right:2%;bottom:-5%;font-size:.8rem}.bs-photo{left:-2%;width:28%}.bs-badge{right:-1%;top:-6%;width:26%}.bs-star{left:14%}.bs-blob{inset:4% -2% -4% 4%}}
@media (prefers-reduced-motion:reduce){.bs-badge,.bs-photo,.bs-star{animation:none!important}}
:root[data-calm="on"] .bs-badge,:root[data-calm="on"] .bs-photo,:root[data-calm="on"] .bs-star{animation:none!important}
.bs-star{left:-3%;top:40%}
.bs .stage-hint{display:none}
@media (max-width:820px){.bs-star{left:-2%;top:42%}}
