:root{
  /* Layout: left-aligned 1200px column. White and pale-blue bands, one solid logo-blue block, one black band.
     Pictures are ink-outlined mascot illustrations on their own fixed light tiles, like photos. */
  --blue:#008BCC;
  --blue-strong:#0071A7;
  --blue-deep:#00557E;
  --on-blue:#FFFFFF;
  --wash:#EAF5FB;
  --wash-2:#D3EAF7;
  --night:#BCDCEE;
  --ink:#000000;
  --text:#1D2B35;
  --muted:#4C5E6A;
  --paper:#FFFFFF;
  --card:#FFFFFF;
  --line:#C8DFEC;
  --btn-bg:#0071A7;
  --btn-fg:#FFFFFF;
  --btn-hover:#00557E;
  --block-bg:#008BCC;
  --block-fg:#000000;
  --band-bg:#000000;
  --band-fg:#FFFFFF;
  --band-muted:#BFD0DA;
  --band-btn:#3FB4EC;
  --band-btn-fg:#00131C;
  --error:#B42318;
  --ok:#14804A;
  --avatar-bg:#FFFFFF;
  --ill-bg:#EEF7FC;
  --house:#EEF7FC;
  --logo-plate:transparent;
  --plate-pad:0px;
  --scrim:rgba(0,20,30,.45);
  --ping:rgba(0,139,204,.45);
  --shadow:0 1px 2px rgba(0,58,87,.06), 0 22px 44px -26px rgba(0,58,87,.38);
  --shadow-lg:0 2px 6px rgba(0,58,87,.08), 0 30px 60px -30px rgba(0,58,87,.5);
  --bar-shadow:0 -10px 30px -18px rgba(0,58,87,.45);

  --font-display:"Archivo","Arial Narrow",Arial,system-ui,sans-serif;
  --font-body:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;

  --r-lg:28px;
  --r-md:18px;
  --r-sm:12px;
  --gutter:clamp(16px,4vw,40px);
  --header-h:76px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --blue:#36ADE8; --blue-strong:#6CC4F0; --blue-deep:#A5DBF6; --on-blue:#00131C;
    --wash:#0A1C26; --wash-2:#123041; --night:#1A4157;
    --ink:#FFFFFF; --text:#D4E3EB; --muted:#9DB2BF;
    --paper:#050F15; --card:#0B1A23; --line:#1F3A4A;
    --btn-bg:#3FB4EC; --btn-fg:#00131C; --btn-hover:#7DCCF3;
    --block-bg:#0A88C6; --block-fg:#000000;
    --band-bg:#0D2230; --band-fg:#FFFFFF; --band-muted:#A9BDC9; --band-btn:#6CC4F0; --band-btn-fg:#00131C;
    --error:#FF8F87; --ok:#5FD39A;
    --logo-plate:#FFFFFF; --plate-pad:6px 10px;
    --scrim:rgba(0,0,0,.6);
    --ping:rgba(54,173,232,.5);
    --shadow:0 1px 2px rgba(0,0,0,.5), 0 24px 48px -28px rgba(0,0,0,.9);
    --shadow-lg:0 2px 6px rgba(0,0,0,.5), 0 30px 60px -30px rgba(0,0,0,.95);
    --bar-shadow:0 -10px 30px -18px rgba(0,0,0,.9);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --blue:#36ADE8; --blue-strong:#6CC4F0; --blue-deep:#A5DBF6; --on-blue:#00131C;
  --wash:#0A1C26; --wash-2:#123041; --night:#1A4157;
  --ink:#FFFFFF; --text:#D4E3EB; --muted:#9DB2BF;
  --paper:#050F15; --card:#0B1A23; --line:#1F3A4A;
  --btn-bg:#3FB4EC; --btn-fg:#00131C; --btn-hover:#7DCCF3;
  --block-bg:#0A88C6; --block-fg:#000000;
  --band-bg:#0D2230; --band-fg:#FFFFFF; --band-muted:#A9BDC9; --band-btn:#6CC4F0; --band-btn-fg:#00131C;
  --error:#FF8F87; --ok:#5FD39A;
  --logo-plate:#FFFFFF; --plate-pad:6px 10px;
  --scrim:rgba(0,0,0,.6);
  --ping:rgba(54,173,232,.5);
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 24px 48px -28px rgba(0,0,0,.9);
  --shadow-lg:0 2px 6px rgba(0,0,0,.5), 0 30px 60px -30px rgba(0,0,0,.95);
  --bar-shadow:0 -10px 30px -18px rgba(0,0,0,.9);
  color-scheme:dark;
}

/* ---------- base ---------- */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--text);font-family:var(--font-body);font-size:1.125rem;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto}
a{color:var(--blue-strong);text-decoration-thickness:.08em;text-underline-offset:.18em}
a:hover{color:var(--btn-hover)}
p{margin:0}
ul,ol{margin:0}
button{font:inherit}
:focus-visible{outline:3px solid var(--blue-strong);outline-offset:3px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
.skip{position:absolute;left:16px;top:-120px;z-index:100;background:var(--ink);color:var(--paper);padding:.6rem 1rem;border-radius:10px;font-weight:700}
.skip:focus{top:12px;color:var(--paper)}
.wrap{max-width:1200px;margin-inline:auto;padding-inline:var(--gutter)}
.ic{width:1.25em;height:1.25em;display:inline-block;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.22em}

h1,h2,h3,h4{margin:0;font-family:var(--font-display);color:var(--ink);font-weight:800;font-stretch:84%;letter-spacing:-.012em;line-height:1.04;text-wrap:balance}
h2{font-size:clamp(2.05rem,1.3rem + 2.7vw,3.4rem)}
h3{font-size:1.4rem;line-height:1.15;font-stretch:88%}
h4{font-family:var(--font-body);font-size:1rem;font-weight:700;letter-spacing:0;font-stretch:normal;line-height:1.3}
.lead{font-size:clamp(1.125rem,1.05rem + .3vw,1.27rem);color:var(--muted);max-width:62ch}
.h1-kicker{display:block;font-family:var(--font-body);font-weight:700;font-size:1.0625rem;letter-spacing:0;font-stretch:normal;line-height:1.4;color:var(--blue-strong);margin-bottom:1rem}
.h1-main{display:block;font-size:clamp(2.6rem,1.15rem + 5.2vw,5.4rem);line-height:.95;font-stretch:78%;letter-spacing:-.022em}

.section{padding-block:clamp(4rem,2.8rem + 4.2vw,7rem)}
.section.tint{background:var(--wash)}
.section.tight{padding-block:clamp(3rem,2.2rem + 3vw,5rem)}
.section-head{display:grid;gap:1rem;max-width:54rem;margin-bottom:clamp(2rem,1.4rem + 2vw,3.25rem)}
.section-head.split{max-width:none;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem 2rem}
.section-head.split .lead{grid-column:1}
section[id],[id].anchor{scroll-margin-top:calc(var(--header-h) + 12px)}
.more-link{font-weight:700;white-space:nowrap}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:3.25rem;padding:.8rem 1.45rem;border-radius:999px;border:2px solid transparent;font:700 1.0625rem/1.15 var(--font-body);text-decoration:none;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s,transform .15s;white-space:nowrap}
.btn:active{transform:translateY(1px)}
.btn-primary{background:var(--btn-bg);color:var(--btn-fg)}
.btn-primary:hover{background:var(--btn-hover);color:var(--btn-fg)}
.btn-ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}
.btn-sm{min-height:2.75rem;padding:.55rem 1.1rem;font-size:1rem}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.link-btn{appearance:none;background:none;border:0;padding:0;font:inherit;color:var(--blue-strong);text-decoration:underline;text-decoration-thickness:.08em;text-underline-offset:.18em;cursor:pointer}
.link-btn:hover{color:var(--btn-hover)}
.icon-btn{appearance:none;display:inline-grid;place-items:center;width:2.9rem;height:2.9rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;flex:none}
.icon-btn:hover{border-color:var(--ink)}
.icon-btn .ic{width:1.35rem;height:1.35rem}

/* plan toggle */
.plan-toggle{appearance:none;display:inline-flex;align-items:center;gap:.4rem;min-height:2.6rem;padding:.4rem .95rem;border-radius:999px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;transition:background-color .2s,color .2s}
.plan-toggle .ic{width:1.05rem;height:1.05rem;stroke-width:2.4}
.plan-toggle:hover{background:var(--wash)}
.plan-toggle[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.plan-toggle .on{display:none}
.plan-toggle[aria-pressed="true"] .on{display:inline}
.plan-toggle[aria-pressed="true"] .off{display:none}

/* ---------- utility bar + header ---------- */
.utility{background:var(--wash);border-bottom:1px solid var(--line);font-size:.95rem}
.utility-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:42px}
.utility p{color:var(--muted)}
.utility-actions{display:flex;align-items:center;gap:1.25rem}
.utility-phone{display:inline-flex;align-items:center;gap:.4rem;color:var(--ink);font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums}
.utility-phone .ic{color:var(--blue)}
.ts-wrap{display:flex;align-items:center;gap:.5rem;color:var(--muted)}
.textsize{display:inline-flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:999px;padding:2px;background:var(--card)}
.textsize button{appearance:none;border:0;background:transparent;color:var(--ink);font-family:var(--font-display);font-weight:800;font-stretch:90%;width:2rem;height:2rem;border-radius:999px;cursor:pointer;line-height:1;display:grid;place-items:center}
.textsize button[data-ts="0"]{font-size:.82rem}
.textsize button[data-ts="1"]{font-size:1rem}
.textsize button[data-ts="2"]{font-size:1.2rem}
.textsize button:hover{background:var(--wash)}
.textsize button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}

.site-header{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:var(--paper);background:color-mix(in srgb,var(--paper) 94%,transparent);-webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header.is-scrolled{border-bottom-color:var(--line)}
.header-inner{display:flex;align-items:center;gap:1rem;min-height:var(--header-h);position:relative}
.brand{display:inline-flex;flex:none;border-radius:12px}
.brand-plate{display:inline-flex;background:var(--logo-plate);padding:var(--plate-pad);border-radius:12px}
.brand img{display:block;height:40px;width:auto}
.main-nav{margin-left:auto}
.nav-list{display:flex;align-items:center;gap:.1rem;list-style:none;padding:0}
.nav-list > li{position:relative}
.nav-list a,.nav-trigger{display:inline-flex;align-items:center;gap:.3rem;padding:.55rem .85rem;border-radius:999px;color:var(--ink);text-decoration:none;font-weight:700;font-size:1rem;background:none;border:0;cursor:pointer;line-height:1.2}
.nav-list a:hover,.nav-trigger:hover,.nav-trigger[aria-expanded="true"]{background:var(--wash);color:var(--ink)}
.nav-list a[aria-current="page"],.nav-trigger.is-current{position:relative}
.nav-list a[aria-current="page"]::after,.nav-trigger.is-current::after{content:"";position:absolute;left:.85rem;right:.85rem;bottom:.15rem;height:3px;border-radius:2px;background:var(--blue)}
.nav-trigger .ic{width:1rem;height:1rem;stroke-width:2.4;transition:transform .2s}
.nav-trigger[aria-expanded="true"] .ic{transform:rotate(180deg)}
.mega{position:absolute;top:calc(100% + 10px);left:50%;transform:translateX(-50%);width:min(760px,90vw);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);padding:1rem;z-index:50}
.mega.small{width:min(420px,90vw)}
.mega-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem}
.mega.small .mega-grid{grid-template-columns:minmax(0,1fr)}
.mega-item{display:grid !important;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.8rem !important;padding:.6rem .7rem !important;border-radius:var(--r-md) !important;text-decoration:none}
.mega-item:hover{background:var(--wash)}
.mega-ico{width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;background:var(--wash);color:var(--blue-strong)}
.mega-ico .ic{width:1.3rem;height:1.3rem}
.mega-thumb{width:4.2rem;height:3.15rem;border-radius:10px;background:var(--ill-bg);border:1px solid var(--line);object-fit:cover}
.mega-item strong{display:block;color:var(--ink);font-size:1rem;line-height:1.2}
.mega-item span span{display:block;color:var(--muted);font-weight:400;font-size:.9rem;line-height:1.3;margin-top:.1rem}
.mega-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;padding:.85rem .7rem .2rem;border-top:1px solid var(--line)}
.mega-foot a{padding:0 !important;color:var(--blue-strong) !important;text-decoration:underline !important}
.mega-foot p{color:var(--muted);font-size:.95rem}
.header-actions{display:flex;align-items:center;gap:.6rem}
.plan-btn{position:relative}
.plan-count{position:absolute;top:-4px;right:-4px;min-width:1.35rem;height:1.35rem;padding:0 .3rem;border-radius:999px;background:var(--blue);color:var(--on-blue);font-size:.78rem;font-weight:700;display:grid;place-items:center;line-height:1;font-variant-numeric:tabular-nums}
.plan-count[data-n="0"]{display:none}
.plan-btn.bump{animation:bump .4s ease}
.header-call{display:none}
.menu-btn{display:none}
.mobile-menu{position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow);max-height:calc(100dvh - var(--header-h));overflow:auto;padding:.5rem var(--gutter) 1.5rem}
.mobile-menu ul{list-style:none;padding:0;display:grid}
.mm-link,.mobile-menu summary{display:flex;justify-content:space-between;align-items:center;padding:.8rem 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-family:var(--font-display);font-weight:800;font-stretch:86%;font-size:1.55rem;line-height:1.1;cursor:pointer;list-style:none}
.mobile-menu summary::-webkit-details-marker{display:none}
.mobile-menu summary .ic{width:1.2rem;height:1.2rem;transition:transform .2s}
.mobile-menu details[open] summary .ic{transform:rotate(180deg)}
.mm-sub{display:grid;padding:.4rem 0 .8rem .2rem;border-bottom:1px solid var(--line)}
.mm-sub a{padding:.45rem 0;color:var(--text);text-decoration:none;font-size:1.05rem}
.mm-sub a:hover{color:var(--blue-strong)}
.mm-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-block:1rem;font-weight:700;color:var(--ink)}
.mm-actions{display:grid;gap:.6rem}
@media (max-width:1099px){
  .main-nav,.header-cta{display:none}
  .menu-btn{display:inline-grid}
  .header-actions{margin-left:auto}
}
@media (max-width:759px){
  :root{--header-h:64px}
  .utility{display:none}
  .brand img{height:32px}
  .header-call{display:inline-grid}
  .header-actions{gap:.45rem}
}

/* ---------- plan drawer + toast ---------- */
.scrim{position:fixed;inset:0;background:var(--scrim);z-index:60}
.plan-drawer{position:fixed;top:0;right:0;bottom:0;z-index:61;width:min(420px,100%);background:var(--paper);border-left:1px solid var(--line);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;padding:calc(1.25rem + env(safe-area-inset-top,0px)) 1.4rem calc(1.25rem + env(safe-area-inset-bottom,0px))}
.plan-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.plan-head h2{font-size:1.9rem}
.plan-intro{margin-top:.6rem;color:var(--muted)}
.plan-list{list-style:none;padding:0;margin-top:1.25rem;display:grid;gap:.6rem;overflow:auto}
.plan-list li{display:grid;grid-template-columns:4.4rem minmax(0,1fr) auto;align-items:center;gap:.8rem;padding:.55rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--card)}
.plan-list img{width:4.4rem;height:3.3rem;border-radius:10px;background:var(--ill-bg);display:block}
.plan-list a{color:var(--ink);font-weight:700;text-decoration:none;line-height:1.25}
.plan-list a:hover{color:var(--blue-strong);text-decoration:underline}
.plan-empty{margin-top:1.25rem;padding:1.25rem;border:1.5px dashed var(--line);border-radius:var(--r-md);color:var(--muted)}
.plan-foot{margin-top:auto;padding-top:1.25rem;display:grid;gap:.75rem;justify-items:start}
.plan-foot .btn{width:100%}
.toast{position:fixed;left:50%;bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));transform:translate(-50%,140%);z-index:70;background:var(--ink);color:var(--paper);padding:.75rem 1.1rem;border-radius:999px;font-weight:700;box-shadow:var(--shadow-lg);transition:transform .3s ease;max-width:calc(100% - 32px);text-align:center}
.toast.show{transform:translate(-50%,0)}
@media (max-width:759px){ .toast{bottom:calc(5.6rem + env(safe-area-inset-bottom,0px))} }

/* ---------- breadcrumbs + page hero ---------- */
.crumbs{padding-top:1.25rem}
.crumbs ol{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:.35rem;font-size:.95rem;color:var(--muted)}
.crumbs li{display:inline-flex;align-items:center;gap:.35rem}
.crumbs li + li::before{content:"/";color:var(--line)}
.crumbs a{color:var(--muted)}
.crumbs [aria-current]{color:var(--ink);font-weight:700}
.page-hero{padding-block:clamp(1.75rem,1rem + 3vw,3.75rem) clamp(3rem,2rem + 3.5vw,5.5rem)}
.page-hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:center}
.page-hero .h1-main{font-size:clamp(2.5rem,1.25rem + 4.4vw,4.6rem)}
.page-hero .lead{margin-top:1.4rem;color:var(--text)}
.hero-ctas{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:2rem}
@media (max-width:899px){ .page-hero-grid{grid-template-columns:minmax(0,1fr)} }

/* ---------- illustrations ---------- */
.ill{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:var(--r-lg);background:var(--ill-bg);border:1px solid var(--line)}
.ill-frame{position:relative}
.ill-frame .ill{box-shadow:var(--shadow)}

/* ---------- home hero ---------- */
.hero{padding-block:clamp(2.5rem,1.4rem + 4vw,5rem) clamp(4.5rem,3rem + 5vw,8rem);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(2.5rem,1rem + 5vw,5rem);align-items:center}
.hero-lead{margin-top:1.6rem;font-size:clamp(1.125rem,1.05rem + .35vw,1.3rem);max-width:54ch}
.proof{list-style:none;padding:0;margin-top:2.25rem;display:grid;gap:.8rem;max-width:34rem}
.proof li{display:flex;gap:.75rem;align-items:flex-start;line-height:1.4}
.proof .ic{color:var(--blue);width:1.5rem;height:1.5rem;margin-top:-.05rem}
.proof strong{color:var(--ink)}
.hero-visual{display:flex;justify-content:center}
.halo-house{position:relative;width:min(100%,500px)}
.halo{display:block;width:30%;margin-inline:auto;overflow:visible;animation:bob 5.5s ease-in-out infinite}
.halo path,.pin-halo path{fill:none;stroke:var(--blue);stroke-width:12;stroke-linecap:round}
.roof{display:block;width:108%;margin:8px 0 -1px -4%;aspect-ratio:100/30;height:auto;overflow:visible}
.roof-fill{fill:var(--house)}
.roof-line{fill:none;stroke:var(--blue);stroke-width:10;stroke-linecap:round;stroke-linejoin:round}
.house-body{background:var(--house);border-radius:0 0 var(--r-lg) var(--r-lg);overflow:hidden}
.house-body img{display:block;width:100%;height:auto;aspect-ratio:4/3}
.visit{background:var(--card);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-lg);padding:.95rem 1.05rem .9rem;--p:3}
.visit-float{position:absolute;left:-14%;bottom:-16%;width:66%;z-index:2}
.visit-head{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .7rem;padding-bottom:.75rem;border-bottom:1px solid var(--line)}
.visit-avatar{width:40px;height:40px;border-radius:50%;background:var(--avatar-bg);border:2px solid var(--blue);flex:none}
.visit-who{min-width:0;flex:1 1 8rem}
.visit-title{font-weight:700;color:var(--ink);line-height:1.2;font-size:1rem}
.visit-sub{font-size:.82rem;color:var(--muted);line-height:1.3}
.visit-status{margin-left:auto;display:inline-flex;align-items:center;gap:.45rem;font-size:.8rem;font-weight:700;color:var(--blue-strong);background:var(--wash);border-radius:999px;padding:.28rem .65rem;white-space:nowrap}
.ping{width:.55rem;height:.55rem;border-radius:50%;background:var(--blue);animation:ping 1.8s ease-out infinite}
.visit-log{list-style:none;padding:0;margin-top:.3rem}
.visit-log li{display:grid;grid-template-columns:1.5rem 4.2rem minmax(0,1fr);gap:.6rem;align-items:start;padding:.42rem 0;position:relative;font-size:.95rem;line-height:1.3}
.visit-log li::before{content:"";position:absolute;left:.75rem;top:1.9rem;bottom:-.42rem;width:2px;margin-left:-1px;background:var(--line)}
.visit-log li:last-child::before{display:none}
.vi{width:1.5rem;height:1.5rem;border-radius:50%;display:grid;place-items:center;border:2px solid var(--line);background:var(--card);color:var(--on-blue);transition:background-color .3s,border-color .3s;position:relative;z-index:1}
.vi .ic{width:.9rem;height:.9rem;stroke-width:2.8;opacity:0;transform:scale(.4);transition:opacity .25s,transform .3s cubic-bezier(.3,1.6,.5,1)}
.visit-log li[data-state="done"] .vi{background:var(--blue);border-color:var(--blue)}
.visit-log li[data-state="done"] .vi .ic{opacity:1;transform:none}
.visit-log li[data-state="now"] .vi{border-color:var(--blue)}
.visit-log li[data-state="now"] .vi::after{content:"";width:.55rem;height:.55rem;border-radius:50%;background:var(--blue);animation:ping 1.8s ease-out infinite;position:absolute}
.visit-log time{font-variant-numeric:tabular-nums;color:var(--muted);font-size:.85rem;padding-top:.1rem;white-space:nowrap}
.vt{color:var(--ink);font-weight:600}
.visit-log li[data-state="next"] .vt{color:var(--muted);font-weight:400}
.vd{display:block;font-size:.8rem;color:var(--muted);font-weight:400;margin-top:.1rem}
.visit-foot{margin-top:.4rem;padding-top:.7rem;border-top:1px solid var(--line);display:grid;gap:.45rem;font-size:.85rem;color:var(--muted);line-height:1.4}
.visit-foot strong{color:var(--ink);font-variant-numeric:tabular-nums}
.visit-bar{height:7px;border-radius:99px;background:var(--wash-2);overflow:hidden}
.visit-bar span{display:block;height:100%;width:calc(var(--p) / var(--n,5) * 100%);background:var(--blue);border-radius:inherit;transition:width .45s ease}
@media (max-width:959px){
  .hero-grid{grid-template-columns:minmax(0,1fr)}
  .halo-house{width:min(100%,460px)}
  .visit-float{position:relative;left:auto;bottom:auto;width:auto;margin:-2.25rem 5% 0}
  .hero{padding-bottom:clamp(3.5rem,2.5rem + 4vw,5rem)}
}

/* ---------- situation picker ---------- */
.sit{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(1.5rem,1rem + 3vw,3.5rem);align-items:start}
.sit-chips{display:grid;gap:.45rem}
.sit-chip{position:relative;display:block}
.sit-chip input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.sit-chip span{display:flex;align-items:center;gap:.7rem;min-height:3.3rem;padding:.65rem 1rem;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--ink);font-weight:700;line-height:1.25;transition:background-color .15s,border-color .15s,color .15s}
.sit-chip span::before{content:"";flex:none;width:.85rem;height:.85rem;border-radius:50%;border:2px solid var(--blue)}
.sit-chip:hover span{border-color:var(--ink)}
.sit-chip input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sit-chip input:checked + span::before{background:var(--blue);border-color:var(--blue)}
.sit-chip input:focus-visible + span{outline:3px solid var(--blue-strong);outline-offset:2px}
.sit-panel{scroll-margin-top:calc(var(--header-h) + 12px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,1rem + 1.5vw,2.25rem);box-shadow:var(--shadow)}
.sit-panel h3{font-size:clamp(1.6rem,1.3rem + 1vw,2.2rem)}
.sit-panel > p{margin-top:.7rem;font-size:1.15rem;max-width:56ch}
.recs{list-style:none;padding:0;margin-top:1.5rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.recs.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.rec{display:grid;align-content:start;gap:.6rem}
.rec img{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:var(--r-md);background:var(--ill-bg);border:1px solid var(--line)}
.rec a{color:var(--ink);font-weight:700;font-size:1.05rem;text-decoration:none;line-height:1.25}
.rec a:hover{color:var(--blue-strong);text-decoration:underline}
.rec p{color:var(--muted);font-size:.95rem;line-height:1.4}
@media (max-width:959px){ .sit{grid-template-columns:minmax(0,1fr)} .sit-chips{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .sit-chips{grid-template-columns:minmax(0,1fr)} .recs,.recs.two{grid-template-columns:repeat(2,minmax(0,1fr))} .recs .rec:nth-child(3){grid-column:1 / -1} }

/* ---------- service cards ---------- */
.svc-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.25rem 1rem}
.svc-card{display:grid;align-content:start;gap:.7rem;position:relative}
.svc-card-link{display:grid;gap:.75rem;text-decoration:none;color:inherit;border-radius:var(--r-md)}
.svc-card-link img{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:var(--r-md);background:var(--ill-bg);border:1px solid var(--line);transition:transform .3s ease,box-shadow .3s ease}
.svc-card-link:hover img{transform:translateY(-4px);box-shadow:var(--shadow)}
.svc-card-name{display:block;font-family:var(--font-display);font-weight:800;font-stretch:88%;font-size:1.2rem;line-height:1.15;color:var(--ink)}
.svc-card-link:hover .svc-card-name{color:var(--blue-strong)}
.svc-card-hint{display:block;color:var(--muted);font-size:.95rem;line-height:1.35;margin-top:.2rem}
.svc-card .plan-toggle{justify-self:start}
@media (max-width:1099px){ .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem 1rem} }
@media (max-width:420px){ .svc-card-name{font-size:1.05rem} .svc-card-hint{font-size:.88rem} }

/* ---------- service explorer (tabs) ---------- */
.svc{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(1.5rem,1rem + 2vw,3rem);align-items:start}
.svc-tabs{display:grid;gap:.3rem}
.svc-tab{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:.9rem;align-items:center;text-align:left;width:100%;padding:.65rem .9rem;border:1.5px solid transparent;border-radius:var(--r-md);background:transparent;color:var(--ink);cursor:pointer;transition:background-color .2s,color .2s}
.svc-ico{grid-row:1 / span 2;width:2.75rem;height:2.75rem;border-radius:50%;display:grid;place-items:center;background:var(--wash);color:var(--blue-strong)}
.svc-ico .ic{width:1.4rem;height:1.4rem}
.svc-name{font-weight:700;line-height:1.25}
.svc-hint{font-size:.95rem;color:var(--muted);line-height:1.3}
.svc-tab:hover{background:var(--wash)}
.svc-tab[aria-selected="true"]{background:var(--ink);color:var(--paper)}
.svc-tab[aria-selected="true"] .svc-hint{color:var(--paper);opacity:.78}
.svc-tab[aria-selected="true"] .svc-ico{background:var(--blue);color:var(--on-blue)}
.svc-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,1rem + 2vw,2.5rem);box-shadow:var(--shadow);min-width:0}
.svc-panel-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,15rem);gap:1.5rem;align-items:start}
.svc-panel-top img{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:var(--r-md);background:var(--ill-bg);border:1px solid var(--line)}
.svc-panel h3{font-size:clamp(1.75rem,1.35rem + 1.3vw,2.4rem)}
.svc-lead{margin-top:.9rem;font-size:clamp(1.07rem,1.03rem + .2vw,1.17rem);max-width:60ch}
.svc-cols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:2rem;margin-top:1.75rem}
.checks,.fits{list-style:none;padding:0;margin-top:.8rem;display:grid;gap:.6rem}
.checks li,.fits li{display:flex;gap:.65rem;line-height:1.45}
.checks li::before{content:"";flex:none;width:1.2rem;height:1.2rem;margin-top:.15rem;background:var(--blue);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E") center/contain no-repeat}
.fits li::before{content:"";flex:none;width:.55rem;height:.55rem;margin:.55rem .3rem 0 .3rem;border-radius:50%;border:2px solid var(--blue)}
.svc-foot{margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.8rem 1rem;align-items:center}
.svc-foot .spacer{flex:1}
@media (max-width:859px){
  .svc{grid-template-columns:minmax(0,1fr)}
  .svc-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}
  .svc-tab{grid-template-columns:minmax(0,1fr);align-content:start;gap:.5rem;padding:.75rem;border-color:var(--line);background:var(--card)}
  .svc-ico{grid-row:auto;width:2.3rem;height:2.3rem}
  .svc-ico .ic{width:1.2rem;height:1.2rem}
  .svc-hint{display:none}
  .svc-name{font-size:1rem}
  .svc-tab[aria-selected="true"]{border-color:var(--ink)}
  .svc-cols{grid-template-columns:minmax(0,1fr);gap:1.5rem}
  .svc-panel-top{grid-template-columns:minmax(0,1fr)}
  .svc-panel-top img{max-width:22rem}
  .svc-foot .btn{white-space:normal;text-align:center}
}

/* ---------- forms: shared ---------- */
fieldset{border:0;padding:0;margin:0;min-width:0}
legend{padding:0}
.chips{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative;display:inline-flex}
.chip input,.choice input,.mode input,.check-row input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;border:1.5px solid var(--line);border-radius:999px;background:var(--card);color:var(--ink);font-weight:600;font-size:1rem;line-height:1.2;transition:background-color .15s,border-color .15s,color .15s}
.chip:hover span{border-color:var(--ink)}
.chip input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chip input:focus-visible + span,.choice input:focus-visible + span,.mode input:focus-visible + span,.check-row input:focus-visible + span{outline:3px solid var(--blue-strong);outline-offset:2px}
.field{display:grid;gap:.4rem;min-width:0;align-content:start}
.field > label,.sub > legend{font-weight:700;color:var(--ink);font-size:1rem;line-height:1.3}
.sub > legend{margin-bottom:.55rem}
.opt{font-weight:400;color:var(--muted)}
.field input,.field textarea,.select select{font:inherit;font-size:1.0625rem;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.7rem .85rem;min-height:3.1rem;width:100%;transition:border-color .15s}
.field textarea{min-height:6.5rem;resize:vertical;line-height:1.5}
.field input:hover,.field textarea:hover,.select select:hover{border-color:var(--muted)}
.field input:focus-visible,.field textarea:focus-visible,.select select:focus-visible{outline:3px solid var(--blue-strong);outline-offset:1px;border-color:var(--blue-strong)}
.field [aria-invalid="true"]{border-color:var(--error)}
.field-error{color:var(--error);font-size:.95rem;font-weight:700;line-height:1.35}
.select{position:relative;display:block}
.select select{appearance:none;-webkit-appearance:none;padding-right:2.6rem;cursor:pointer}
.select::after{content:"";position:absolute;right:.95rem;top:50%;width:1rem;height:1rem;margin-top:-.5rem;background:var(--ink);pointer-events:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/contain no-repeat}
.check-row{position:relative;display:block}
.check-row span{display:flex;align-items:flex-start;gap:.8rem;padding:.8rem .95rem;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--card);color:var(--ink);line-height:1.4;cursor:pointer;transition:background-color .15s,border-color .15s}
.check-row span::before{content:"";flex:none;width:1.35rem;height:1.35rem;margin-top:.05rem;border-radius:6px;border:2px solid var(--muted);background:var(--card) center/0.95rem no-repeat}
.check-row:hover span{border-color:var(--ink)}
.check-row input:checked + span{border-color:var(--blue);background:var(--wash)}
.check-row input:checked + span::before{border-color:var(--blue);background-color:var(--blue);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5L19.5 7'/%3E%3C/svg%3E")}

/* ---------- scheduler ---------- */
.sched{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(1.5rem,1rem + 2.5vw,3.5rem);align-items:start}
.sched-controls{display:grid;gap:1.75rem}
.sched-controls > fieldset > legend,.sched-times > p{font-weight:700;color:var(--ink);margin-bottom:.65rem;font-size:1rem}
.days .chips{display:grid;grid-template-columns:repeat(auto-fit,minmax(2.6rem,1fr));gap:.4rem}
.days .chip{display:flex}
.days .chip span{width:100%;justify-content:center;padding-inline:.2rem}
.sched-times .row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}
.sched-view{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,.9rem + 1.8vw,2.25rem);box-shadow:var(--shadow);min-width:0}
.sched-sum{display:grid;gap:.35rem}
.hours{font-family:var(--font-display);font-weight:800;font-stretch:80%;color:var(--ink);font-size:clamp(1.45rem,1.15rem + 1.2vw,2rem);line-height:1;display:flex;align-items:baseline;gap:.2em;flex-wrap:wrap}
.hours .num{font-size:clamp(3.6rem,2.4rem + 4.6vw,5.75rem);color:var(--blue);font-variant-numeric:tabular-nums;letter-spacing:-.035em;line-height:.9}
.pattern{font-size:1.15rem;color:var(--ink);font-weight:700;margin-top:.5rem}
.fit{color:var(--muted)}
.fit strong{color:var(--ink)}
.week{margin-top:1.6rem;display:grid;grid-template-columns:2.7rem repeat(24,minmax(0,1fr));gap:3px;align-items:center}
.week .hr{grid-column:span 6;font-size:.75rem;color:var(--muted);line-height:1;padding-bottom:.25rem;white-space:nowrap}
.week .day{font-size:.85rem;font-weight:700;color:var(--muted);line-height:1}
.week .cell{height:1.5rem;border-radius:4px;background:var(--wash-2);transition:background-color .3s ease;transition-delay:calc(var(--h) * 14ms)}
.week .cell.n{background:var(--night)}
.week .cell.on{background:var(--blue)}
.week-key{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;margin-top:.9rem;font-size:.9rem;color:var(--muted)}
.week-key span{display:inline-flex;align-items:center;gap:.45rem}
.week-key i{width:.9rem;height:.9rem;border-radius:3px;display:inline-block}
.key-on{background:var(--blue)}
.key-day{background:var(--wash-2)}
.key-night{background:var(--night)}
.sched-note{margin-top:1.4rem;padding-top:1.25rem;border-top:1px solid var(--line)}
.sched-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin-top:1.25rem}
.sched-added{color:var(--blue-strong);font-weight:700}
@media (max-width:959px){ .sched{grid-template-columns:minmax(0,1fr)} }
@media (max-width:559px){
  .week{grid-template-columns:2.1rem repeat(24,minmax(0,1fr));gap:2px}
  .week .cell{height:1.15rem;border-radius:3px}
  .week .day{font-size:.75rem}
  .week .hr{font-size:.68rem}
  .sched-cta .btn{white-space:normal;text-align:center}
}

/* ---------- logo-blue block ---------- */
.block{background:var(--block-bg);color:var(--block-fg)}
.block h2,.block h3,.block strong,.block a{color:var(--block-fg)}
.block :focus-visible{outline-color:var(--block-fg)}
.why-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:clamp(2.5rem,1rem + 5vw,5.5rem);align-items:start}
.why-main > p{font-size:clamp(1.125rem,1.07rem + .3vw,1.27rem);max-width:50ch;margin-top:1.25rem}
.rule{margin:2.25rem 0 0;max-width:34rem}
.rule-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;height:3.4rem}
.share{border-radius:10px}
.share.care{background:var(--block-fg)}
.share.agency{border:3px solid var(--block-fg)}
.rule-legend{display:grid;grid-template-columns:2fr 1fr;gap:6px;margin-top:.7rem;font-size:1rem;line-height:1.3}
.rule-legend strong{display:block;font-family:var(--font-display);font-size:1.8rem;font-stretch:78%;line-height:1;margin-bottom:.2rem}
.why-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2.25rem 2rem}
.why-list .ic{width:2.4rem;height:2.4rem;stroke-width:1.6}
.why-list h3{margin-top:.8rem;font-size:1.4rem}
.why-list p{margin-top:.45rem;font-size:1.0625rem;line-height:1.55}
.block .btn-ghost{border-color:var(--block-fg);color:var(--block-fg)}
.block .btn-ghost:hover{background:var(--block-fg);color:var(--block-bg)}
@media (max-width:959px){ .why-grid{grid-template-columns:minmax(0,1fr)} }
@media (max-width:559px){ .why-list{grid-template-columns:minmax(0,1fr);gap:1.75rem} }

/* ---------- app demo ---------- */
.app-demo{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,22rem);gap:clamp(2rem,1rem + 5vw,6rem);align-items:center}
.app-tabs{display:grid;gap:.5rem;margin-top:2rem;max-width:30rem}
.app-tab{appearance:none;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.2rem .9rem;align-items:center;text-align:left;padding:.85rem 1rem;border-radius:var(--r-md);border:1.5px solid var(--line);background:var(--card);color:var(--ink);cursor:pointer;position:relative;overflow:hidden}
.app-tab .ic{grid-row:1 / span 2;width:1.6rem;height:1.6rem;color:var(--blue)}
.app-tab strong{font-size:1.05rem;line-height:1.2}
.app-tab span{color:var(--muted);font-size:.95rem;line-height:1.35}
.app-tab:hover{border-color:var(--ink)}
.app-tab[aria-selected="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.app-tab::after{content:"";position:absolute;left:0;bottom:0;height:3px;width:0;background:var(--blue)}
.app-tab[aria-selected="true"].timing::after{animation:fill var(--dur,5s) linear forwards}
.app-note{margin-top:1rem;font-size:.95rem;color:var(--muted)}
.phone{justify-self:center;width:min(100%,19.5rem);aspect-ratio:9/18.5;border-radius:2.6rem;background:#0B1720;padding:.7rem;box-shadow:var(--shadow-lg)}
.phone-screen{height:100%;border-radius:2rem;background:var(--paper);overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--line)}
.app-bar{display:flex;align-items:center;gap:.6rem;padding:1.15rem .9rem .75rem;border-bottom:1px solid var(--line);background:var(--wash)}
.app-bar img{width:34px;height:34px;border-radius:50%;background:var(--avatar-bg);border:2px solid var(--blue)}
.app-bar strong{display:block;font-size:.95rem;color:var(--ink);line-height:1.2}
.app-bar span{display:block;font-size:.78rem;color:var(--muted)}
.app-pane{padding:.9rem;display:grid;gap:.7rem;align-content:start;overflow:hidden;flex:1}
.app-pane h3{font-size:1.15rem}
.app-map{border-radius:14px;border:1px solid var(--line);overflow:hidden;background:var(--wash)}
.app-map svg{display:block;width:100%;height:auto}
.app-row{display:flex;align-items:center;gap:.6rem;padding:.55rem .65rem;border:1px solid var(--line);border-radius:12px;font-size:.88rem;line-height:1.3;color:var(--ink);background:var(--card)}
.app-row .ic{width:1.1rem;height:1.1rem;color:var(--blue);stroke-width:2.2}
.app-row.done .ic{color:var(--ok)}
.app-row small{display:block;color:var(--muted);font-size:.78rem}
.app-photos{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.app-photos figure{margin:0;display:grid;gap:.3rem;font-size:.75rem;color:var(--muted);line-height:1.3}
.app-photos img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:var(--ill-bg);border:1px solid var(--line)}
.chat{display:grid;gap:.5rem}
.msg{max-width:85%;padding:.55rem .75rem;border-radius:14px;font-size:.88rem;line-height:1.35}
.msg.them{background:var(--wash);color:var(--ink);border-bottom-left-radius:4px}
.msg.me{justify-self:end;background:var(--blue);color:var(--on-blue);border-bottom-right-radius:4px}
.msg small{display:block;font-size:.72rem;opacity:.8;margin-top:.15rem}
@media (max-width:859px){ .app-demo{grid-template-columns:minmax(0,1fr)} .app-tabs{grid-template-columns:repeat(2,minmax(0,1fr));max-width:none} .app-tab{grid-template-columns:minmax(0,1fr)} .app-tab .ic{grid-row:auto} .app-tab span{display:none} }

/* ---------- how it works ---------- */
.steps-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1.5rem,1rem + 1.6vw,2.5rem);counter-reset:step}
.steps-list li{counter-increment:step;display:grid;gap:.7rem;align-content:start;padding-top:1.1rem;border-top:3px solid var(--ink)}
.steps-list li::before{content:counter(step);font-family:var(--font-display);font-weight:800;font-stretch:78%;font-size:3.6rem;line-height:.85;color:var(--blue)}
.steps-list p{color:var(--muted)}
@media (max-width:959px){ .steps-list{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:559px){ .steps-list{grid-template-columns:minmax(0,1fr)} }

/* ---------- areas ---------- */
.areas{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,1rem + 3.5vw,4.5rem);align-items:center}
.map-wrap{position:relative;width:100%;max-width:560px}
.tx-map{display:block;width:100%;height:auto;overflow:visible}
.tx-map .tx{fill:var(--card);stroke:var(--blue);stroke-width:2;stroke-linejoin:round}
.tx-map .i35{fill:none;stroke:var(--ink);stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.i35-tag rect{fill:var(--ink)}
.i35-tag text{fill:var(--paper);font:800 13px var(--font-display);letter-spacing:.02em}
.pin{position:absolute;width:0;height:0;padding:0;border:0;background:none;cursor:pointer;color:var(--ink);text-decoration:none}
.pin-dot{position:absolute;left:0;top:0;width:18px;height:18px;transform:translate(-50%,-50%);border-radius:50%;background:var(--blue);border:3px solid var(--card);box-shadow:0 0 0 2px var(--blue);transition:transform .2s,background-color .2s}
.pin-dot::before{content:"";position:absolute;inset:-14px;border-radius:50%}
.pin-label{position:absolute;top:0;left:15px;transform:translateY(-50%);white-space:nowrap;font-family:var(--font-display);font-weight:800;font-stretch:88%;font-size:1rem;line-height:1;color:var(--ink);background:var(--card);padding:.28rem .5rem;border-radius:8px;border:1px solid var(--line)}
.pin.left .pin-label{left:auto;right:15px}
.pin-halo{position:absolute;left:0;top:-32px;width:34px;transform:translateX(-50%);overflow:visible;opacity:0;transition:opacity .25s}
.pin-halo path{stroke-width:18}
.pin.is-active .pin-dot{background:var(--ink);box-shadow:0 0 0 2px var(--ink);transform:translate(-50%,-50%) scale(1.15)}
.pin.is-active .pin-halo{opacity:1;animation:bob 3.6s ease-in-out infinite}
.pin.is-active .pin-label{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.city-cards{display:grid;gap:.75rem}
.city-card{display:grid;grid-template-columns:7.5rem minmax(0,1fr) auto;align-items:center;gap:1rem;padding:.65rem;border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--card);color:inherit;text-decoration:none;transition:border-color .2s,transform .2s}
.city-card img{display:block;width:100%;height:auto;aspect-ratio:4/3;border-radius:12px;background:var(--ill-bg)}
.city-card strong{display:block;font-family:var(--font-display);font-weight:800;font-stretch:88%;font-size:1.35rem;color:var(--ink);line-height:1.1}
.city-card span span{display:block;color:var(--muted);font-size:.95rem;line-height:1.35;margin-top:.25rem}
.city-card .ic{color:var(--ink);width:1.3rem;height:1.3rem;margin-right:.4rem}
.city-card:hover,.city-card.is-active{border-color:var(--ink)}
.city-card:hover strong{color:var(--blue-strong)}
.zip{margin-top:1.5rem;padding:1.25rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}
.zip label{display:block;font-weight:700;color:var(--ink);margin-bottom:.55rem}
.zip-row{display:flex;gap:.6rem}
.zip-row input{flex:1;min-width:0;font:inherit;font-size:1.15rem;letter-spacing:.06em;font-variant-numeric:tabular-nums;color:var(--ink);background:var(--paper);border:1.5px solid var(--line);border-radius:var(--r-sm);padding:.7rem .9rem;min-height:3.25rem}
.zip-row input:focus-visible{outline:3px solid var(--blue-strong);outline-offset:1px}
.zip-result{margin-top:.8rem;line-height:1.45}
.zip-result:empty{display:none}
.zip-result[data-state="yes"]{color:var(--ink)}
.zip-result[data-state="near"],.zip-result[data-state="no"]{color:var(--text)}
.zip-result strong{color:var(--ink)}
.zip-result .tag{display:inline-block;font-size:.85rem;font-weight:700;padding:.15rem .6rem;border-radius:999px;margin-right:.4rem;background:var(--wash);color:var(--blue-strong)}
.zip-result[data-state="yes"] .tag{background:var(--blue);color:var(--on-blue)}
.communities{list-style:none;padding:0;margin-top:1.25rem;display:flex;flex-wrap:wrap;gap:.4rem}
.communities li{padding:.28rem .75rem;border-radius:999px;background:var(--card);border:1px solid var(--line);font-size:.95rem;color:var(--ink)}
.lines{margin:1.6rem 0 0}
.lines div{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.25rem 1rem;padding-block:.75rem;border-top:1px solid var(--line)}
.lines dt{color:var(--text)}
.lines dd{margin:0}
.lines a{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}
@media (max-width:959px){ .areas{grid-template-columns:minmax(0,1fr)} .map-wrap{margin-inline:auto;max-width:480px} }
@media (max-width:559px){
  .pin-halo{top:-25px;width:26px}
  .pin-dot{width:15px;height:15px}
  .city-card{grid-template-columns:5.5rem minmax(0,1fr)}
  .city-card > .ic{display:none}
}
@media (max-width:420px){ .pin-label{font-size:.85rem;padding:.22rem .4rem} }

/* ---------- resource cards ---------- */
.res-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.res-card{display:grid;gap:.6rem;align-content:start;height:100%;padding:1.4rem;border-radius:var(--r-lg);border:1.5px solid var(--line);background:var(--card);color:inherit;text-decoration:none;transition:border-color .2s}
.res-card:hover{border-color:var(--ink)}
.res-card .ic{width:2.2rem;height:2.2rem;color:var(--blue);stroke-width:1.6}
.res-card strong{font-family:var(--font-display);font-weight:800;font-stretch:88%;font-size:1.35rem;line-height:1.15;color:var(--ink)}
.res-card span{color:var(--muted)}
.res-card em{font-style:normal;font-weight:700;color:var(--blue-strong)}
@media (max-width:859px){ .res-grid{grid-template-columns:minmax(0,1fr)} }

/* ---------- compare ---------- */
.cmp{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.cmp-col{border-radius:var(--r-lg);padding:clamp(1.4rem,1rem + 1.6vw,2.25rem);border:1.5px solid var(--line);background:var(--card)}
.cmp-col.ours{border:3px solid var(--blue)}
.cmp-tag{display:inline-block;font-size:.9rem;font-weight:700;padding:.25rem .75rem;border-radius:999px;background:var(--wash);color:var(--blue-strong)}
.cmp-tag.plain{color:var(--muted)}
.cmp-col h3{margin-top:.9rem;font-size:clamp(1.5rem,1.3rem + .7vw,1.85rem)}
.cmp-col dl{margin:1.25rem 0 0;display:grid;gap:1rem}
.cmp-col dt{font-weight:700;color:var(--ink);font-size:1rem}
.cmp-col dd{margin:.15rem 0 0}
.cmp-note{margin-top:1.5rem;color:var(--muted);max-width:62ch}
@media (max-width:759px){ .cmp{grid-template-columns:minmax(0,1fr)} }

/* ---------- careers band + CTA band ---------- */
.band{background:var(--band-bg);color:var(--band-fg);padding-block:clamp(3.5rem,2.4rem + 3.4vw,5.75rem)}
.band h2{color:var(--band-fg)}
.band p{color:var(--band-muted);margin-top:1rem;max-width:58ch;font-size:clamp(1.125rem,1.07rem + .3vw,1.25rem)}
.band :focus-visible{outline-color:var(--band-btn)}
.band-grid{display:grid;grid-template-columns:minmax(0,1.6fr) auto;gap:2rem 3rem;align-items:center}
.btn-band{background:var(--band-btn);color:var(--band-btn-fg)}
.btn-band:hover{background:var(--band-fg);color:var(--band-bg)}
@media (max-width:759px){ .band-grid{grid-template-columns:minmax(0,1fr)} }
.cta{padding-block:clamp(3.5rem,2.5rem + 3vw,5.5rem);background:var(--wash)}
.cta-grid{display:grid;grid-template-columns:minmax(0,22rem) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:center}
.cta-grid p{margin-top:1rem;max-width:52ch;font-size:1.15rem}
.cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
@media (max-width:759px){ .cta-grid{grid-template-columns:minmax(0,1fr)} .cta-grid .ill{max-width:22rem} }

/* ---------- faq ---------- */
.faq-grid{display:grid;grid-template-columns:minmax(0,20rem) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,5rem);align-items:start}
.faq-aside{display:grid;gap:1rem}
.faq-aside p{color:var(--muted)}
.faq-list{border-top:1px solid var(--line)}
.faq-item{border-bottom:1px solid var(--line)}
.faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1.25rem;padding-block:1.2rem;border-radius:6px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-q{font-size:clamp(1.2rem,1.1rem + .4vw,1.4rem);font-stretch:90%;line-height:1.25}
.pm{flex:none;width:2.4rem;height:2.4rem;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;color:var(--ink);transition:transform .25s,background-color .2s,color .2s,border-color .2s}
.pm .ic{width:1.15rem;height:1.15rem}
.faq-item summary:hover .pm{border-color:var(--ink)}
.faq-item[open] .pm{transform:rotate(45deg);background:var(--ink);color:var(--paper);border-color:var(--ink)}
.faq-a{padding-bottom:1.4rem;max-width:64ch}
.faq-group{margin-top:2.5rem}
.faq-group:first-of-type{margin-top:0}
.faq-group > h2{font-size:clamp(1.5rem,1.3rem + .8vw,2rem);margin-bottom:1rem}
.faq-tools{display:grid;gap:1rem;margin-top:1.75rem}
.search{position:relative}
.search input{width:100%;font:inherit;font-size:1.125rem;color:var(--ink);background:var(--card);border:1.5px solid var(--line);border-radius:999px;padding:.8rem 1rem .8rem 3rem;min-height:3.3rem}
.search input:focus-visible{outline:3px solid var(--blue-strong);outline-offset:1px}
.search .ic{position:absolute;left:1.1rem;top:50%;transform:translateY(-50%);color:var(--muted);width:1.25rem;height:1.25rem}
.faq-empty{padding:1.5rem;border:1.5px dashed var(--line);border-radius:var(--r-md);color:var(--muted)}
@media (max-width:859px){ .faq-grid{grid-template-columns:minmax(0,1fr)} }

/* ---------- service page ---------- */
.included{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
.included .checks{gap:.8rem;font-size:1.1rem}
.fit-card{padding:clamp(1.25rem,1rem + 1.5vw,2rem);border-radius:var(--r-lg);background:var(--wash);border:1px solid var(--line)}
.fit-card h3{font-size:1.5rem}
.sample{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,26rem);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:center}
.sample .visit{box-shadow:var(--shadow)}
.related{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem}
.area-links{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.25rem}
.area-links a{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem 1rem;border-radius:999px;border:1.5px solid var(--line);background:var(--card);color:var(--ink);font-weight:700;text-decoration:none}
.area-links a:hover{border-color:var(--ink)}
.area-links .ic{color:var(--blue);width:1.1rem;height:1.1rem}
@media (max-width:859px){ .included,.sample{grid-template-columns:minmax(0,1fr)} }
@media (max-width:559px){ .related{grid-template-columns:minmax(0,1fr)} }

/* ---------- about / careers ---------- */
.values{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.25rem}
.values li{padding:1.4rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);display:grid;gap:.6rem;align-content:start}
.values .ic{width:2rem;height:2rem;color:var(--blue);stroke-width:1.7}
.values p{color:var(--muted)}
.story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
.story p + p{margin-top:1rem}
.milestones{list-style:none;padding:0;display:grid;gap:1rem}
.milestones li{display:grid;grid-template-columns:5.5rem minmax(0,1fr);gap:1rem;padding:1.1rem 1.2rem;border-radius:var(--r-md);background:var(--card);border:1px solid var(--line)}
.milestones strong{font-family:var(--font-display);font-weight:800;font-stretch:80%;font-size:2rem;line-height:1;color:var(--blue)}
.roles{list-style:none;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.roles li{padding:1.3rem;border-radius:var(--r-lg);border:1.5px solid var(--line);background:var(--card);display:grid;gap:.5rem;align-content:start}
.roles p{color:var(--muted);font-size:1.05rem}
.expect{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 2rem}
.expect li{display:flex;gap:.8rem;align-items:flex-start}
.expect .ic{width:1.6rem;height:1.6rem;color:var(--blue);margin-top:.1rem}
.expect strong{color:var(--ink);display:block}
.apply{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
@media (max-width:1099px){ .values,.roles{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:859px){ .story,.apply{grid-template-columns:minmax(0,1fr)} .expect{grid-template-columns:minmax(0,1fr)} }
@media (max-width:519px){ .values,.roles{grid-template-columns:minmax(0,1fr)} }

/* ---------- resources tools ---------- */
.assess{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(1.5rem,1rem + 3vw,3.5rem);align-items:start}
.assess-groups{display:grid;gap:1.75rem}
.assess-groups fieldset > legend{font-family:var(--font-display);font-weight:800;font-stretch:88%;font-size:1.3rem;color:var(--ink);margin-bottom:.7rem}
.assess-groups .rows{display:grid;gap:.5rem}
.assess-result{position:sticky;top:calc(var(--header-h) + 16px);background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,1rem + 1.5vw,2rem);box-shadow:var(--shadow)}
.meter{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:3px;margin:.25rem 0 1rem}
.meter i{height:.7rem;border-radius:3px;background:var(--wash-2);transition:background-color .25s}
.meter i.on{background:var(--blue)}
.assess-result h3{font-size:1.6rem}
.assess-result > p{margin-top:.6rem}
.assess-result .recs{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1.1rem}
.assess-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.25rem}
.fine{margin-top:1rem;font-size:.95rem;color:var(--muted)}
.safety-top{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;padding:1.1rem 1.25rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);margin-bottom:1.25rem;position:sticky;top:calc(var(--header-h) + 10px);z-index:5}
.ring{width:3.6rem;height:3.6rem;flex:none}
.ring circle{fill:none;stroke-width:6}
.ring .track{stroke:var(--wash-2)}
.ring .val{stroke:var(--blue);stroke-linecap:round;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .4s ease}
.safety-top p{color:var(--muted)}
.safety-top strong{display:block;font-family:var(--font-display);font-weight:800;font-stretch:84%;font-size:1.5rem;color:var(--ink);line-height:1.1}
.safety-top .link-btn{margin-left:auto}
.rooms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.room{padding:1.2rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line)}
.room-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:.8rem}
.room-head h3{font-size:1.3rem}
.room-count{font-weight:700;color:var(--muted);font-variant-numeric:tabular-nums;font-size:.95rem}
.room-count.full{color:var(--ok)}
.room .rows{display:grid;gap:.45rem}
.room .check-row span{padding:.65rem .8rem;font-size:1rem}
.room-tip{background:var(--wash);display:grid;gap:.8rem;align-content:start}
.room-tip p{color:var(--text)}
.room-tip .btn{justify-self:start}
.pay-grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.pay-grid li{padding:1.4rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);display:grid;gap:.55rem;align-content:start}
.pay-grid li:first-child{border:3px solid var(--blue)}
.qa{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}
.qa details{border:1.5px solid var(--line);border-radius:var(--r-md);background:var(--card);padding:0 1.1rem}
.qa summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 0;font-weight:700;color:var(--ink);line-height:1.35}
.qa summary::-webkit-details-marker{display:none}
.qa summary .reveal{flex:none;font-size:.85rem;font-weight:700;color:var(--blue-strong);white-space:nowrap}
.qa details[open]{border-color:var(--blue)}
.qa details[open] .reveal{display:none}
.qa .ans{padding:0 0 1rem;display:flex;gap:.6rem;align-items:flex-start}
.qa .ans img{width:28px;height:28px;border-radius:50%;background:var(--avatar-bg);border:2px solid var(--blue);flex:none}
@media (max-width:959px){ .assess{grid-template-columns:minmax(0,1fr)} .assess-result{position:static} .rooms,.pay-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .qa{grid-template-columns:minmax(0,1fr)} }
@media (max-width:599px){ .rooms,.pay-grid{grid-template-columns:minmax(0,1fr)} .assess-result .recs{grid-template-columns:repeat(2,minmax(0,1fr))} .safety-top{top:calc(var(--header-h) + 6px)} }

/* ---------- request ---------- */
.req-grid{display:grid;grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);grid-template-areas:"intro form" "side form";gap:2rem clamp(2rem,1rem + 4vw,4.5rem);align-items:start}
.req-intro{grid-area:intro;display:grid;gap:1rem}
.req-side{grid-area:side;display:grid;gap:1.25rem}
.req-form-wrap{grid-area:form;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.25rem,.9rem + 2vw,2.5rem);box-shadow:var(--shadow);min-width:0}
.mode{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;border-radius:999px;background:var(--wash);margin-bottom:1.75rem}
.mode label{position:relative;display:block}
.mode span{display:flex;justify-content:center;align-items:center;text-align:center;min-height:3rem;padding:.4rem .8rem;border-radius:999px;font-weight:700;font-size:1rem;color:var(--ink);line-height:1.2;transition:background-color .2s,color .2s}
.mode input:checked + span{background:var(--ink);color:var(--paper)}
.step-head{display:grid;gap:.55rem;margin-bottom:1.5rem}
.step-head p{font-size:.95rem;font-weight:700;color:var(--muted)}
.progress{height:6px;background:var(--wash-2);border-radius:99px;overflow:hidden}
.progress span{display:block;height:100%;width:calc(var(--step,1) / 4 * 100%);background:var(--blue);border-radius:inherit;transition:width .3s ease}
.step > legend{font-family:var(--font-display);font-weight:800;font-stretch:84%;font-size:clamp(1.55rem,1.3rem + 1vw,2.05rem);line-height:1.1;color:var(--ink);margin-bottom:1rem;letter-spacing:-.01em}
.hint{color:var(--muted);margin:-.4rem 0 1rem}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.choice{position:relative;display:block}
.choice span{display:flex;align-items:center;min-height:3.9rem;padding:.8rem 1rem;border:1.5px solid var(--line);border-radius:var(--r-md);font-weight:700;color:var(--ink);line-height:1.25;background:var(--card);transition:background-color .15s,border-color .15s,color .15s}
.choice:hover span{border-color:var(--ink)}
.choice input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem 1rem}
.form-grid .full{grid-column:1 / -1}
.sched-line{background:var(--wash);border-radius:var(--r-md);padding:.85rem 1rem;line-height:1.45}
.sched-line strong{color:var(--ink)}
.step-nav{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:2rem}
.step-nav .btn-primary{margin-left:auto}
.form-result{margin-top:1.5rem;padding:1.15rem 1.25rem;border-radius:var(--r-md);background:var(--wash);border:1.5px solid var(--line)}
.form-result[data-state="sent"]{border-color:var(--blue)}
.form-result[data-state="error"]{border-color:var(--error)}
.form-result h3{font-size:1.3rem}
.form-result p{margin-top:.35rem}
.summary{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.4rem 1.5rem}
.summary h3{font-size:1.3rem}
.summary > div > p{margin-top:.6rem}
.sum-list{margin:.9rem 0 0;display:grid}
.sum-list div{display:grid;grid-template-columns:7.5rem minmax(0,1fr);gap:.75rem;padding-block:.6rem;border-top:1px solid var(--line)}
.sum-list dt{font-weight:700;color:var(--ink);font-size:.95rem}
.sum-list dd{margin:0;font-size:1rem;min-width:0}
.sum-list dd.is-empty{color:var(--muted)}
.sum-chips{display:flex;flex-wrap:wrap;gap:.3rem}
.sum-chips span{background:var(--wash);border-radius:999px;padding:.12rem .6rem;font-size:.9rem;color:var(--ink)}
.contact-card{display:grid;gap:.75rem}
.contact-card h3{font-size:1.3rem}
.cc-phone{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem}
.cc-phone a{font-family:var(--font-display);font-weight:800;font-stretch:84%;font-size:clamp(1.9rem,1.6rem + 1vw,2.4rem);color:var(--ink);text-decoration:none;font-variant-numeric:tabular-nums;line-height:1}
.cc-phone a:hover{color:var(--blue-strong)}
.copy-btn{appearance:none;border:1.5px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:.35rem .9rem;font-weight:700;font-size:.9rem;cursor:pointer;min-height:2.25rem}
.copy-btn:hover{border-color:var(--ink)}
.cc-list{list-style:none;padding:0;display:grid;gap:.5rem}
.cc-list li{display:flex;gap:.6rem;align-items:flex-start;line-height:1.4;min-width:0;overflow-wrap:anywhere}
.cc-list .ic{color:var(--blue);margin-top:.05rem}
.locations{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.locations li{padding:1.3rem;border-radius:var(--r-lg);background:var(--card);border:1px solid var(--line);display:grid;gap:.5rem;align-content:start}
.locations li > a:last-child{font-weight:700}
@media (max-width:959px){ .req-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"intro" "form" "side"} .locations{grid-template-columns:minmax(0,1fr)} }
@media (max-width:519px){ .choice-grid,.form-grid{grid-template-columns:minmax(0,1fr)} .mode span{font-size:.95rem;min-height:3.25rem} .sum-list div{grid-template-columns:minmax(0,1fr);gap:.2rem} }

@media (max-width:599px){
  .rec .plan-toggle,.svc-card .plan-toggle{width:100%;justify-content:center;font-size:.9rem;padding:.4rem .6rem;gap:.3rem;white-space:nowrap}
}

/* ---------- footer ---------- */
.site-footer{background:var(--paper);border-top:1px solid var(--line);padding-block:clamp(3rem,2rem + 3vw,4.5rem) 2rem}
.foot-grid{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(3,minmax(0,1fr));gap:2.25rem 2rem}
.foot-brand img{display:block;height:36px;width:auto}
.foot-brand p{margin-top:1rem;color:var(--muted);max-width:36ch;font-size:1rem}
.foot-col h2{font-family:var(--font-body);font-size:1rem;font-weight:700;letter-spacing:0;font-stretch:normal;line-height:1.3;color:var(--ink);margin-bottom:.8rem}
.foot-col h2 + ul + h2{margin-top:1.5rem}
.foot-col ul{list-style:none;padding:0;display:grid;gap:.45rem}
.foot-col a{color:var(--text);text-decoration:none;font-size:1rem}
.foot-col a:hover{color:var(--blue-strong);text-decoration:underline}
.foot-col address{font-style:normal;font-size:1rem;display:grid;gap:.45rem;line-height:1.45}
.foot-legal{margin-top:2.75rem;padding-top:1.5rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.6rem 2rem;color:var(--muted);font-size:.95rem}
@media (max-width:959px){ .foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .foot-brand{grid-column:1 / -1} }
@media (max-width:519px){ .foot-grid{grid-template-columns:minmax(0,1fr)} }

/* ---------- mobile call bar ---------- */
.callbar{display:none}
@media (max-width:759px){
  .callbar{position:fixed;left:0;right:0;bottom:0;z-index:45;display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;padding:.65rem 16px calc(.65rem + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--line);box-shadow:var(--bar-shadow);transition:transform .25s ease,visibility 0s}
  .callbar.is-hidden{transform:translateY(115%);visibility:hidden;transition:transform .25s ease,visibility 0s .25s}
  .callbar .btn{min-height:3rem}
  .site-footer{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom,0px))}
}

/* ---------- motion ---------- */
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes ping{0%{box-shadow:0 0 0 0 var(--ping)}75%,100%{box-shadow:0 0 0 9px transparent}}
@keyframes bump{40%{transform:scale(1.18)}}
@keyframes fill{to{width:100%}}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
}
