
:root{
  --navy:#02305d; --mid:#005798; --deep:#014a83; --sky:#47a9df; --light:#8bb5e0; --pale:#bed6ef;
  --wash:#eef5fc; --tint:#f6fafd; --ink:#0b2440; --body:#3d4f63; --line:#d3e2f2; --white:#fff;
  --sans:"Helvetica Neue",Helvetica,Arial,sans-serif; --r:68px;
  --display:"Source Serif 4","Iowan Old Style",Georgia,serif;
  /* Two shadow tokens, reused. Seven bespoke navy glows read as generated. */
  --sh-rest:0 1px 2px rgba(11,36,64,.06), 0 4px 14px rgba(11,36,64,.05);
  --sh-lift:0 10px 30px rgba(11,36,64,.13);
  --brand-grad:linear-gradient(148deg,var(--navy) 0%,var(--mid) 100%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:hidden;background:#02305d}
body{margin:0;background:#fff;color:var(--body);font:18px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}a{color:inherit}
.wrap{width:min(100% - 40px,1220px);margin-inline:auto}
h1,h2,h3{margin:0;color:var(--ink);font-weight:800;line-height:1.14;letter-spacing:-.022em}
.skip{position:absolute;left:-9999px;z-index:200;padding:14px 20px;background:var(--navy);color:#fff;font-weight:800}
.skip:focus{left:12px;top:12px}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--mid);outline-offset:3px}

/* ---------- reveal on scroll ---------- */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.22,.8,.3,1),transform .7s cubic-bezier(.22,.8,.3,1)}
.js .rv.in{opacity:1;transform:none}
.js .rv.d1{transition-delay:.08s}.js .rv.d2{transition-delay:.16s}.js .rv.d3{transition-delay:.24s}
.js .rv.d4{transition-delay:.32s}.js .rv.d5{transition-delay:.4s}

#motion-toggle{display:none!important}
#motion-toggle[hidden]{display:none}
.ybc-call{display:block;padding:12px 18px;min-height:44px;color:var(--mid);background:white;font-weight:700;border-bottom:1px solid var(--line)}
/* ---------- header ---------- */
.top{background:var(--navy);color:var(--pale);font-size:16px;padding-top:env(safe-area-inset-top,0px);padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.top .wrap{display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:11px 0}
.top b{color:#fff}
.hdr{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .3s;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.hdr.stuck{box-shadow:var(--sh-rest)}
.hdr .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:92px}
.logo{height:54px;width:auto}
.nav{display:flex;gap:26px;align-items:center}
.nav a{font-size:17px;font-weight:700;color:var(--ink);text-decoration:none;padding:5px 0;border-bottom:3px solid transparent;white-space:nowrap;transition:color .2s,border-color .2s}
.nav a:hover,.nav a[aria-current=page]{color:var(--mid);border-bottom-color:var(--sky)}
.call{display:inline-flex;align-items:center;gap:.35em;min-height:56px;padding:0 26px;border-radius:999px;background:var(--mid);color:#fff;font-weight:800;font-size:19px;text-decoration:none;white-space:nowrap;box-shadow:0 6px 18px rgba(0,87,152,.28);transition:transform .2s,box-shadow .2s}
.call:hover{transform:translateY(-2px);box-shadow:0 12px 26px rgba(0,87,152,.36)}
.burger{display:none;width:54px;height:54px;border:2px solid var(--navy);border-radius:12px;background:#fff;align-items:center;justify-content:center;cursor:pointer}
.burger span{display:block;width:23px;height:3px;background:var(--navy);border-radius:2px;box-shadow:0 -8px 0 var(--navy),0 8px 0 var(--navy)}
.mnav{display:none;background:#fff;border-bottom:1px solid var(--line)}
.mnav.open{display:block}
.mnav a{display:block;padding:18px 20px;font-size:19px;font-weight:700;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--line)}

/* ---------- hero ---------- */
.hero{position:relative;color:#fff;padding:calc(var(--r) + 16px) 0;overflow:hidden;
  background:linear-gradient(120deg,var(--navy) 0%,var(--deep) 50%,var(--mid) 100%)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
/* Optional hero video. Hidden until it actually plays. */
.hero-media video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  object-position:center 30%;opacity:0;transition:opacity .9s ease}
.hero-media video.on{opacity:1}
/* Scrim was .94/.86 and buried the photograph completely, so the hero read as a flat
   navy box. Lightened 2026-08-25. Worst case (pure white photo behind) the darkest
   stop still gives white text ~7.3:1 contrast, so this stays past WCAG AA. */
.hero-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg,rgba(2,48,93,.80) 0%,rgba(2,48,93,.72) 42%,rgba(1,74,131,.76) 100%)}
@media (prefers-reduced-motion:reduce){.hero-media video{display:none}}
.hero .wrap{position:relative;z-index:2}
.hero.split .wrap{display:grid;gap:48px;align-items:center}
.openbadge{display:flex;width:fit-content;align-items:center;gap:9px;margin:0 0 14px;padding:9px 16px;border-radius:999px;background:#013f70;font-size:16px;font-weight:700;color:#fff}
.openbadge .dot{width:10px;height:10px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 4px rgba(74,222,128,.22)}
.openbadge.shut .dot{background:#f0a92e;box-shadow:0 0 0 4px rgba(240,169,46,.22)}
.eyebrow{display:inline-block;margin:0 0 20px;padding:9px 18px;border-radius:999px;background:#013f70;font-size:17px;font-weight:700;color:#fff}
.hero h1{color:#fff;font-family:var(--display);font-weight:600;letter-spacing:-.015em;font-size:60px;max-width:min(19em,100%);text-wrap:balance;overflow-wrap:anywhere}
.hero .sub{margin:18px 0 0;font-size:19px;color:#fff;max-width:36em}
.cta{display:flex;flex-wrap:wrap;gap:24px 28px;margin-top:36px;align-items:stretch}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:68px;padding:0 32px;border-radius:999px;font:800 22px/1 var(--sans);text-decoration:none;transition:transform .2s,box-shadow .2s}
.btn-w{background:#fff;color:var(--navy);box-shadow:var(--sh-rest)}
.btn-w:hover{transform:translateY(-3px);box-shadow:var(--sh-lift)}
.btn-g{border:2px solid rgba(255,255,255,.7);color:#fff}
.btn-g:hover{background:rgba(255,255,255,.12);transform:translateY(-3px)}
.btn-n{background:var(--mid);color:#fff;box-shadow:0 10px 26px rgba(0,87,152,.3)}
.btn-n:hover{transform:translateY(-3px);box-shadow:0 18px 38px rgba(0,87,152,.4)}
.shot{border-radius:20px;overflow:hidden;background:#fff;box-shadow:var(--sh-lift)}
.shot img{width:100%;height:340px;object-fit:cover;object-position:center 42%}
.shot img,.mosaic img,.band-photo img,.home-cluster img{transform:none!important;animation:none!important}
.js .shot,.js .mosaic,.js .band-photo,.js .home-cluster{opacity:1!important;transform:none!important;transition:none!important}
.shot p{margin:0;padding:16px 20px;font-size:17px;font-weight:700;color:var(--mid)}
.shot p:empty{display:none}
.page-art{align-self:center;max-width:420px;width:100%;justify-self:end;margin:0}
.page-art img{height:240px;object-position:center 42%}
.page-art figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:767px){.page-art{max-width:none}.page-art img{height:210px}}
.home-cluster{margin:0;padding:28px 0 10px}
.home-cluster .wrap{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:start}
.home-cluster figure{margin:0;border-radius:16px;overflow:hidden;background:#fff;box-shadow:var(--sh-rest)}
.home-cluster img{width:100%;height:248px;object-fit:cover;object-position:center 28%;display:block}
.home-cluster figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.home-cluster .cluster-note{grid-column:1/-1;margin:2px 0 0;font-size:15px;color:var(--body)}
@media (max-width:767px){
  .home-cluster .wrap{grid-template-columns:1fr;gap:10px}
  .home-cluster img{height:180px}
}
.yb-lockup{grid-column:1/-1;margin:22px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:center}
.yb-lockup a{display:inline-flex;align-items:center;gap:10px;color:white;font:750 18px/1 var(--sans);letter-spacing:.06em;text-decoration:none;opacity:.92}
.yb-lockup svg{display:block;flex:none;width:18px;height:18px}
.yb-lockup .yb-gold{color:#e7c77f}
.yb-lockup a:hover{opacity:1}

/* ---------- hero panel (designed, not a photo) ---------- */
.panel{background:#fff;border-radius:20px;padding:28px;box-shadow:var(--sh-lift)}
.panel-kicker{margin:0 0 18px;font:800 13px/1 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--mid)}
.panel-sub{margin:8px 0 0;font-size:16px;color:var(--body)}
.panel-list{list-style:none;margin:22px 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:grid;gap:16px}
.panel-list li{display:grid;grid-template-columns:auto 1fr;gap:13px;align-items:center}
.panel-list b{display:block;color:var(--ink);font-size:17px}
.panel-list span{font-size:16px;color:var(--body);line-height:1.45}
.panel-list .ic{width:38px;height:38px;border-radius:11px}
.panel-list .ic svg{width:20px;height:20px}

/* ---------- ticker ---------- */
.tick{background:var(--navy);color:var(--pale);overflow:hidden;padding:14px 0;border-top:1px solid rgba(255,255,255,.12)}
.tick .run{display:flex;gap:44px;width:max-content;animation:run 34s linear infinite;font-size:17px;font-weight:700;letter-spacing:.02em}
.tick .run span{white-space:nowrap}
@keyframes run{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- counters / facts ---------- */
.facts{background:var(--wash);padding:34px 0;border-bottom:1px solid var(--line)}
.facts .wrap{display:grid;gap:20px}
.facts .f{padding-top:18px;border-top:4px solid var(--pale)}
.facts b{display:block;color:var(--navy);font-size:20px;margin-bottom:4px}
.facts .f > span{font-size:18px;display:block;max-width:22em}
.mosaic{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:36px}
.mosaic figure{margin:0;border-radius:18px;overflow:hidden;background:var(--navy);position:relative}
.mosaic img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}
.mosaic figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:700px){.mosaic{grid-template-columns:1fr}}

section.b{padding:var(--r) 0}
.b.tint{background:var(--tint)}
.b.navy{background:var(--navy);color:#d7e8f7}
.b.navy h2{color:#fff}
h2.s{font-family:var(--display);font-weight:600;letter-spacing:-.01em;font-size:40px;max-width:22em;text-wrap:balance}
.lead{margin:14px 0 0;font-size:18px;max-width:46em}

/* ---------- icons ---------- */
.ic{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--wash);color:var(--mid);flex:0 0 auto}
.ic svg{width:23px;height:23px}
.b.navy .ic{background:#013f70;color:#9fd0f2}
.card .n .ic-in{width:23px;height:23px}

/* ---------- full-bleed photo band ---------- */
.b.tight{padding:40px 0}
.b.wide{padding:112px 0}
.wrap-narrow{width:min(100% - 40px,760px);margin-inline:auto}
/* 2026-08-25 RHYTHM PASS. .tight/.wide/.wrap-narrow/.two-up/.big were added in the token pass
   and never put on a single section, so the home page ran heading+lead+card-grid-in-a-1220-wrap
   eight times. They are applied now. These five rules are the ONLY new CSS: they are the glue
   that lets the existing grids sit inside the existing narrow/asymmetric containers. No new
   section shapes, no new tokens. */
.two .steps,.two .svbox{margin-top:0}
.two .steps{grid-template-columns:1fr}
.two .cta{margin-top:0;align-self:start}
.wrap-narrow .revs,.wrap-narrow .feat{grid-template-columns:1fr}
.wrap-narrow .lead{max-width:none}
.band-photo.bleed{width:100%;max-width:none;border-radius:0}
.band-photo{position:relative;overflow:hidden;background:var(--navy);
  width:min(100% - 40px,1220px);margin:0 auto;border-radius:22px}
/* A 1900x400 frame is 4.75:1 and crops ~60% off a normal 16:9 photo, which is what was
   cutting people's heads off. 21:9 crops about a quarter instead. */
.band-photo img{width:100%;aspect-ratio:16/9;max-height:620px;height:auto;object-fit:cover;object-position:center 50%;display:block}
.band-cap{position:absolute;left:0;right:0;bottom:0;margin:0;padding:44px 24px 16px;
  background:linear-gradient(to top,rgba(2,48,93,.92),rgba(2,48,93,0));
  color:#e2eef9;font-size:16px;font-weight:600;text-align:center}
@media (max-width:1023px){.band-photo{border-radius:16px}.band-photo img{aspect-ratio:4/3;max-height:none}}

/* ---------- feature rows ---------- */
.feat{display:grid;gap:18px;margin:34px 0 0}
.feat .it{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;padding:20px;border-radius:14px;background:#fff;border:1px solid var(--line)}
.b.tint .feat .it{background:#fff}
.b.navy .feat .it{background:#013f70;border-color:#0a4d86}
.feat b{display:block;color:var(--ink);font-size:18px;margin-bottom:4px}
.b.navy .feat b{color:#fff}
.feat p{margin:0;font-size:16px;line-height:1.5}

/* ---------- interactive tools ---------- */
.tool{background:#fff;border:1px solid var(--line);border-radius:18px;padding:28px;box-shadow:var(--sh-rest)}
.tool h3{font-size:20px;margin-bottom:8px}
.tool p.t{margin:0 0 16px;font-size:17px}
.picker{display:flex;flex-wrap:wrap;gap:10px}
.pk{display:inline-flex;align-items:center;min-height:52px;padding:0 20px;border-radius:999px;border:2px solid var(--line);background:#fff;color:var(--navy);font:700 17px/1 var(--sans);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}
.pk:hover{border-color:var(--sky);background:var(--wash);transform:translateY(-2px)}
.pk.sm{min-height:44px;padding:0 15px;font-size:16px}
.pk.sm.alt{border-style:dashed}
.pk[aria-pressed=true]{border-color:var(--mid);background:var(--mid);color:#fff}
.pkout{margin:18px 0 0;padding:18px 20px;border-radius:14px;background:var(--wash);border-left:5px solid var(--sky);font-size:17px;min-height:20px}
.pkout a{color:var(--mid);font-weight:800}
.selwrap{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.selwrap select{min-height:54px;padding:0 16px;border-radius:12px;border:2px solid var(--line);background:#fff;color:var(--ink);font:700 17px/1 var(--sans);min-width:260px}
.toolgrid{display:grid;gap:20px;margin:32px 0 0}
.toolgrid>*{min-width:0}
@media (min-width:1024px){.toolgrid{grid-template-columns:1fr 1fr}}

/* ---------- street view ---------- */
.svbox{margin:28px 0 0;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-lift)}
.svbox iframe{display:block;width:100%;height:460px;border:0}
@media (max-width:1023px){.svbox iframe{height:300px}}

/* ---------- hard info block ---------- */
.infogrid{display:grid;gap:20px;margin:32px 0 0}
.ibox{background:#fff;border:1px solid var(--line);border-radius:16px;padding:26px}
.ibox h3{font-size:18px;color:var(--navy);margin-bottom:12px}
.hours{display:grid;gap:0}
.hr-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:17px}
.hr-row:last-child{border-bottom:0}
.hr-row b{color:var(--ink)}
.hr-row.closed b{color:#67717c;font-weight:600}
.ilarge{margin:0;font-size:19px;font-weight:700;color:var(--ink);line-height:1.45}
.ilarge a{color:var(--mid);text-decoration:none}
.fine2{margin:10px 0 0;font-size:16px;color:var(--body);line-height:1.5}
.fine2 a{color:var(--mid)}
.ilist{margin:0;padding-left:19px;font-size:17px}
.ilist li{margin-bottom:6px}
.pchips{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:10px;margin-top:18px}
/* Carrier row reads as a plate of named plans rather than a scatter of pills.
   Real carrier wordmarks need each insurer brand kit; favicons look worse than this. */
.pchip{display:flex;align-items:center;justify-content:center;text-align:center;min-height:62px;
  padding:10px 12px;border-radius:12px;background:#fff;border:1px solid var(--line);
  color:var(--navy);font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.25;
  box-shadow:var(--sh-rest)}

/* ---------- insurance chips ---------- */
.groups{display:grid;gap:30px;margin:30px 0 0}
.gh{font-size:20px;color:var(--ink);margin-bottom:5px}
.gd{margin:0 0 14px;font-size:16px}
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--navy);font-size:16px;font-weight:700;text-decoration:none;transition:background .2s,border-color .2s,transform .2s}
.chip:hover{background:var(--wash);border-color:var(--sky);transform:translateY(-2px)}
.b.tint .chip{background:#fff}

/* ---------- split text columns ---------- */
.cols{display:grid;gap:26px;margin:30px 0 0}
.cols h3{font-size:20px;margin-bottom:8px}
.cols p{margin:0 0 10px;font-size:17px}
.cols ul{margin:10px 0 0;padding-left:20px;font-size:17px}
.cols li{margin-bottom:7px}

/* ---------- cards ---------- */
.grid{display:grid;gap:18px;margin:34px 0 0}
.card{display:block;padding:24px;border-radius:20px;background:#fff;border:1px solid var(--line);text-decoration:none;box-shadow:var(--sh-rest);transition:transform .25s,box-shadow .25s,border-color .25s}
.card:hover{transform:translateY(-6px);box-shadow:var(--sh-lift);border-color:var(--sky)}
.card .n{border-radius:0;background:none;width:34px;height:34px;display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:var(--wash);color:var(--mid);margin-bottom:14px;transition:background .25s,color .25s}
.card:hover .n{background:var(--mid);color:#fff}
.card h3{font-family:var(--display);font-weight:600;font-size:23px}
.card h3{font-size:20px;margin-bottom:7px}
.card p{margin:0;font-size:16px;color:var(--body);line-height:1.5}
.card .go{display:inline-block;margin-top:12px;font-weight:800;color:var(--mid);font-size:16px}
/* Declared AFTER .card so it actually wins the cascade. Icon class is `n`, not `ic`. */
.feat-card{background:var(--brand-grad);border-color:transparent;color:#fff}
.feat-card h3{color:#fff;font-size:29px}
.feat-card p{color:var(--pale)}
.feat-card .go{color:#fff}
.feat-card .n{background:rgba(255,255,255,.16);color:#fff}
@media (min-width:768px){.feat-card{grid-column:span 2}}

/* ---------- reviews ---------- */
.revs{display:grid;gap:18px;margin:30px 0 0}
.rev{padding:26px;border-radius:20px;background:#fff;border:1px solid var(--line)}
.b.navy .rev{background:#013f70;border-color:#0a4d86}
.rev q{display:block;font-size:19px;line-height:1.5;color:var(--ink);font-weight:600;quotes:none}
.b.navy .rev q{color:#fff}
.rev cite{display:block;margin-top:16px;font-style:normal;font-weight:800;font-size:17px;color:var(--mid)}
.b.navy .rev cite{color:var(--light)}

/* ---------- faq accordion ---------- */
.faq{margin:30px 0 0}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:2px solid var(--navy)}
.faq summary{list-style:none;cursor:pointer;padding:19px 46px 19px 0;position:relative;font-size:19px;font-weight:800;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:34px;width:13px;height:13px;border-right:3px solid var(--mid);border-bottom:3px solid var(--mid);transform:rotate(45deg);transition:transform .25s}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq .a{padding:0 0 20px;font-size:17px;max-width:48em}

/* ---------- steps ---------- */
.steps{display:grid;gap:20px;margin:32px 0 0;counter-reset:st}
.step{counter-increment:st;position:relative;padding-left:62px;font-size:17px}
.step::before{content:counter(st);position:absolute;left:0;top:-2px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--wash);color:var(--mid);font-weight:800;font-size:18px}
.b.navy .step::before{background:#013f70;color:#fff}
.step b{display:block;color:var(--ink);font-size:19px;margin-bottom:4px}
.b.navy .step b{color:#fff}

/* ---------- contact / map ---------- */
.two{display:grid;gap:46px;align-items:start}
.addr{font-size:24px;font-weight:800;color:var(--ink);line-height:1.4}
.addr span{display:block;font-weight:400;font-size:19px;color:var(--body);margin-top:12px}
.num{display:inline-block;margin:12px 0 0;font-size:46px;font-weight:800;color:var(--mid);text-decoration:none;letter-spacing:-.03em}
.note{margin:30px 0 0;padding:24px 26px;border-radius:16px;background:var(--wash);border-left:6px solid var(--sky);font-size:18px}
.map{display:inline-flex;align-items:center;min-height:56px;margin-top:22px;font-weight:800;color:var(--mid);border-bottom:3px solid var(--sky);text-decoration:none}
.mapbox{border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--sh-lift)}
.mapbox iframe{display:block;width:100%;height:420px;border:0}
.arrive{margin:0 0 28px;padding:22px 22px 18px;border:1px solid var(--line);border-radius:18px;background:var(--tint);box-shadow:var(--sh-rest)}
.arrive p{margin:0 0 12px;font:800 13px/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--mid)}
.arrive ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.arrive li{font-size:17px;line-height:1.45;color:var(--ink)}
@media(min-width:800px){.arrive ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}}

/* ---------- end / footer ---------- */
.end{background:var(--brand-grad);color:#fff;padding:var(--r) 0;text-align:center}
.endnum{display:inline-block;margin-top:26px;color:#fff;font:800 30px/1 var(--sans);letter-spacing:-.02em;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.45);padding-bottom:6px}
.end h2{color:#fff;font-size:34px;margin-inline:auto;max-width:22em;text-wrap:balance}
.end p{margin:14px auto 0;max-width:38em;font-size:19px;color:#e4f1fb}
.end .btn{margin-top:34px}
footer{background:var(--navy);color:var(--light);padding:64px env(safe-area-inset-right,0px) calc(48px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px);font-size:17px}
footer .wrap{display:grid;gap:28px}
footer b{display:block;color:#fff;font-size:18px;margin-bottom:12px;letter-spacing:.01em}
footer a{color:#fff;font-weight:650;text-decoration:none}
footer nav a{display:block;padding:6px 0;font-weight:550;color:#d7e8f7}
footer nav a:hover{color:#fff}
.fine{margin-top:28px;padding-top:22px;border-top:1px solid rgba(255,255,255,.16);font-size:15px;color:var(--light);text-align:center}
.yb-lockup{grid-column:1/-1;margin:8px 0 0;padding-top:18px;border-top:1px solid rgba(255,255,255,.16);display:flex;justify-content:center}
.yb-lockup a{display:inline-flex;align-items:center;gap:10px;color:white;font:750 18px/1 var(--sans);letter-spacing:.06em;text-decoration:none;opacity:.92}
.yb-lockup svg{display:block;flex:none;width:18px;height:18px}
.yb-lockup .yb-gold{color:#e7c77f}
.yb-lockup a:hover{opacity:1}


@media (max-width:1023px){
  .nav{display:none}.burger{display:flex;flex-shrink:0;width:44px;height:44px}
  .hdr .wrap{gap:10px;min-height:76px;min-width:0;width:100%}
  .hdr .logo{max-width:150px;height:auto;max-height:48px}
  .hdr .call{display:inline-flex;min-height:44px;padding:0 14px;font-size:16px;flex-shrink:0;margin-left:auto}
  .hdr .call span{display:none}
  .top .wrap span{min-width:0;overflow-wrap:anywhere}
  /* Must clear the fixed call bar INCLUDING the home-indicator inset, or the last
     footer row sits under it and the service links cannot be tapped. */
  body{padding-bottom:env(safe-area-inset-bottom,0px)}
  /* The fixed call bar is already on screen at all times on a phone, so the
     in-page duplicates of the same button are pure repetition. */
  .hide-mob{display:none}
  .mnav{max-height:calc(100dvh - 92px);overflow-y:auto}
  .hero h1{font-size:33px;line-height:1.12;max-width:100%}h2.s,.end h2{font-size:28px}
  /* Two stacked pills ate a third of the first screen and pushed the buttons
     below the fold. Sit them on one line and shrink them. */
  .hero{padding:26px 0 34px}
  .openbadge{display:flex;width:fit-content;margin:0 0 12px;padding:7px 13px;font-size:14px}
  .eyebrow{display:block;margin:0 0 12px;padding:7px 13px;font-size:14px}
  .openbadge .dot{width:8px;height:8px;box-shadow:0 0 0 3px rgba(74,222,128,.22)}
  .hero .sub{font-size:17px;margin-top:14px}
  .hero .cta{margin-top:22px;flex-direction:column;align-items:stretch;gap:18px}
  .hero .cta .btn{min-height:52px;font-size:17px;padding:0 18px;width:100%}
  .cta{gap:18px}
  #motion-toggle{display:none!important}
  /* The launcher is fixed, so it will always sit over something. Make it small
     enough that it reads as a control and not as a block over the copy. */
  #ybchat-open{padding:10px 15px;font-size:14px;box-shadow:var(--sh-lift)}
  .facts .f b{font-size:20px}
  :root{--r:64px}
}
@media (min-width:1024px){
  .hero.split .wrap{grid-template-columns:1.04fr .96fr}
  .facts .wrap{grid-template-columns:repeat(3,1fr)}
  .grid{grid-template-columns:repeat(3,1fr)}
  .feat{grid-template-columns:repeat(2,1fr)}
  .cols{grid-template-columns:repeat(2,1fr);gap:44px}
  .infogrid{grid-template-columns:repeat(3,1fr)}
  .grid.two-up{grid-template-columns:repeat(2,1fr)}
  .revs{grid-template-columns:repeat(2,1fr)}
  .two{grid-template-columns:1.05fr .95fr}
  .steps{grid-template-columns:repeat(3,1fr)}
  footer .wrap{grid-template-columns:1.6fr 1fr 1fr 1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rv{opacity:1;transform:none;transition:none}
  .tick .run{animation:none}
  .shot img{transform:none}
  .card,.btn,.call{transition:none}
}

/* In-flow chat access remains available whenever the floating button is suppressed. */
.mnav [data-chat-entry]{display:block;width:100%;padding:18px 20px;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);font:700 19px var(--sans);color:var(--ink);cursor:pointer}
.foot-chat{grid-column:1/-1;justify-self:start;background:transparent;color:#fff;border:1px solid #9fc8e7;border-radius:999px;padding:12px 18px;min-height:48px;font:700 16px var(--sans);cursor:pointer}
#ybchat-open.chat-clearance-hide{visibility:hidden;pointer-events:none;opacity:0}
@media(max-width:1023px){#ybchat-open{width:48px;height:48px;min-height:48px;padding:0;gap:0;border-radius:50%;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));justify-content:center}
#ybchat-open span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}
/* ---- ask widget ---- */
#ybchat{font:16px/1.5 var(--sans)}
#ybchat-open{position:fixed;right:18px;bottom:18px;z-index:80;display:inline-flex;align-items:center;gap:10px;
  min-height:54px;padding:0 17px 0 12px;border:1px solid rgba(126,224,255,.52);border-radius:16px;
  background:linear-gradient(135deg,rgba(5,28,54,.96),rgba(5,92,132,.94));color:#fff;
  font:800 15px/1 var(--sans);letter-spacing:.02em;cursor:pointer;
  box-shadow:0 0 0 1px rgba(231,199,127,.12),0 12px 30px rgba(1,30,60,.30);
  transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
#ybchat-open::before{content:'✦';display:grid;place-items:center;width:30px;height:30px;border-radius:10px;
  background:linear-gradient(145deg,#e7c77f,#fff1b8);color:#063653;font-size:16px;line-height:1;box-shadow:0 0 18px rgba(231,199,127,.28)}
#ybchat-open::after{content:'↗';font-size:17px;color:#bfe7ff;margin-left:2px;transition:transform .2s ease}
#ybchat-open:hover{filter:brightness(1.12);transform:translateY(-2px);box-shadow:0 0 0 1px rgba(126,224,255,.35),0 16px 34px rgba(1,30,60,.36)}
#ybchat-open:hover::after{transform:translate(2px,-2px)}
#ybchat-open:focus-visible{outline:3px solid #e7c77f;outline-offset:3px}
@media (prefers-reduced-motion:reduce){#ybchat-open{transition:none}#ybchat-open::after{transition:none}}
#ybchat-panel{position:fixed;right:18px;bottom:84px;z-index:90;display:flex;flex-direction:column;
  width:min(400px,calc(100vw - 24px));height:min(560px,72vh);background:#fff;
  border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:var(--sh-lift)}
#ybchat-panel[hidden]{display:none}
#ybchat.openx #ybchat-open{display:none}
.ybc-hd{display:flex;align-items:flex-start;gap:12px;padding:16px 18px;background:var(--navy);color:#fff}
.ybc-hd b{font-size:18px}
.ybc-hd p{margin:4px 0 0;font-size:16px;line-height:1.4;color:var(--pale)}
.ybc-x{margin-left:auto;border:0;background:transparent;color:#fff;font:800 22px/1 var(--sans);cursor:pointer;min-width:44px;min-height:44px}
#ybchat-msgs{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--tint)}
.ybc-m{max-width:85%;padding:10px 14px;border-radius:14px;font-size:16px;line-height:1.5;white-space:pre-wrap;overflow-wrap:break-word}
.ybc-m.me{align-self:flex-end;background:var(--pale);color:var(--ink);border-bottom-right-radius:4px}
.ybc-m.us{align-self:flex-start;background:#fff;border:1px solid var(--line);color:var(--body);border-bottom-left-radius:4px}
.ybc-m.us a{color:var(--mid);font-weight:700}
.ybc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 16px 10px;background:var(--tint)}
.ybc-chip{border:1px solid var(--line);background:#fff;color:var(--mid);border-radius:999px;
  padding:12px 16px;min-height:44px;font:700 16px/1.2 var(--sans);cursor:pointer}
.ybc-chip:hover{background:var(--wash)}
.ybc-in{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.ybc-in input{flex:1;min-width:0;border:1px solid var(--line);border-radius:12px;padding:12px 14px;
  font:16px/1.4 var(--sans);color:var(--ink)}
.ybc-in input:focus{outline:2px solid var(--mid);outline-offset:1px}
.ybc-in button{border:0;border-radius:12px;background:var(--mid);color:#fff;font:800 16px/1 var(--sans);
  padding:12px 18px;cursor:pointer}
.ybc-in button[disabled]{opacity:.5;cursor:default}
/* Suggestion chips are a cold-start affordance. Once a real conversation exists they
   are noise, and they used to sit on top of the reply and clip it mid-sentence. */
#ybchat.started .ybc-chips{display:none}
.ybc-wait{color:var(--mid);font-weight:800;letter-spacing:.14em;animation:ybpulse 1.1s ease-in-out infinite}
@keyframes ybpulse{0%,100%{opacity:.35}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ybc-wait{animation:none}}
@media (max-width:1023px){
  /* iOS Safari overlays a ~50px toolbar at the bottom. At 14px the launcher sat
     behind it and was invisible on an iPhone. Sit clear of the toolbar. */
  #ybchat-open{bottom:calc(18px + env(safe-area-inset-bottom,0px));right:14px;padding:12px 18px;font-size:16px}
  /* Full-screen sheet on phones. 100dvh tracks the keyboard, so the input never gets
     buried the way the old fixed 62vh panel did. */
  #ybchat-panel{inset:0;width:100%;height:100dvh;max-height:none;border:0;border-radius:0}
  .ybc-hd{padding-top:calc(14px + env(safe-area-inset-top,0px))}
  .ybc-in{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .ybc-m{max-width:92%;font-size:17px}
  #ybchat-msgs{padding:18px 16px}
}

/* Photography leads; the practice logo supplies the blues. */
:root{--r:96px}
.js .rv{opacity:1;transform:none;transition:none}
.wrap{width:min(100% - 64px,1240px)}
.hdr .wrap{min-height:96px}.logo{height:56px}
.call,.btn{box-shadow:none;border-radius:10px}
.call:hover,.btn:hover{transform:none;box-shadow:none}
/* Full-bleed hero: left-aligned copy on the left, portrait facing it from the right. */
.home-hero{min-height:min(92vh,780px);display:flex;align-items:center;background:var(--navy);padding:96px 0}
.home-hero .hero-media{inset:0;left:0;width:100%;height:100%}
.home-hero .hero-media img,.home-hero .hero-media video{object-position:26% 36%;transform:scaleX(-1)}
.home-hero .hero-scrim{background:linear-gradient(90deg,rgba(2,48,93,.94) 0%,rgba(2,48,93,.84) 30%,rgba(2,48,93,.42) 54%,rgba(2,48,93,.1) 78%,rgba(2,48,93,.04) 100%)}
.home-hero .wrap{display:flex;justify-content:flex-start;align-items:center;width:min(100% - 64px,1240px);max-width:100%;box-sizing:border-box;margin-inline:auto}
.home-hero h1{font:600 clamp(44px,5.2vw,70px)/1.05 var(--display);letter-spacing:-.025em;max-width:10.5em;text-wrap:balance}
.home-hero .hero-copy{max-width:540px;width:100%;margin-left:0;margin-right:auto;text-align:left;min-width:0;align-self:center}
.home-hero .sub{max-width:28em;line-height:1.65;font-size:20px;margin-top:22px;color:#f2f7fc;overflow-wrap:anywhere}
.home-hero .eyebrow{padding:0;background:none;border-radius:0;color:#d7e8f7;font-weight:600;font-size:17px;margin-bottom:18px;letter-spacing:.02em}
.home-hero .openbadge{display:flex;background:rgba(1,63,112,.92)}
.home-hero .cta{margin-top:28px;gap:14px;width:100%}.home-hero .btn{font-size:17px;min-height:56px;padding:0 18px;border-radius:999px;flex:1 1 0;min-width:0}
.home-hero .btn-g{border-color:rgba(255,255,255,.55);color:#fff;background:rgba(255,255,255,.08);backdrop-filter:blur(6px)}
.home-hero #motion-toggle{display:none!important}
.facts{background:var(--wash);border:0}.facts .wrap{padding-block:28px}.facts .f b{font-size:19px}.facts .f span{font-size:16px}
.smile-intro{padding:92px 0 82px}.smile-heading{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;margin-bottom:46px}
.smile-heading h2{font-size:50px;font-weight:650;line-height:1.08;letter-spacing:-.035em;max-width:12em}
.smile-heading p{font-size:20px;line-height:1.7;margin:0;max-width:29em}
.smile-gallery{display:grid;grid-template-columns:1fr 1.38fr .88fr;gap:20px;align-items:start}
.smile-gallery img{width:100%;height:330px;object-fit:cover;border-radius:8px}
.smile-gallery img:first-child{margin-top:38px;object-position:center 35%}.smile-gallery img:nth-child(2){height:395px;object-position:center}.smile-gallery img:last-child{margin-top:64px;object-position:50% 24%}
.services-section{background:var(--tint)}
.services-section .section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}
.services-section h2{font-size:46px}.services-section .text-link{white-space:nowrap;color:var(--mid);font-weight:700;text-underline-offset:6px}
.services-section .grid{grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.services-section .card{background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;box-shadow:none;padding:30px 26px 30px 0;transform:none}
.services-section .card:hover{background:#e7f1fb;box-shadow:none;transform:none}
.services-section .card h3{font-size:23px}.services-section .card p{font-size:17px}.services-section .card .n{width:38px;height:38px}

.section-video{position:relative;overflow:hidden;border-radius:14px;background:#dfeaf5;box-shadow:0 18px 46px rgba(2,48,93,.13);aspect-ratio:16/9}
.section-video img,.section-video video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.section-video video{opacity:0;transition:opacity .55s ease}.section-video video.on{opacity:1}
.video-split{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.88fr);gap:clamp(36px,6vw,84px);align-items:center}
.video-split.reverse{grid-template-columns:minmax(360px,.88fr) minmax(0,1fr)}
.video-split.reverse .section-video{order:-1}
.services-video-intro{margin-bottom:52px}.services-video-intro .section-video{max-height:430px}
.first-visit-video{margin-top:54px}.first-visit-video .section-video img,.first-visit-video .section-video video{object-position:50% 42%}
.services-video-intro .section-video img,.services-video-intro .section-video video{object-position:50% 42%}
@media(max-width:800px){.video-split,.video-split.reverse{grid-template-columns:1fr;gap:28px}.video-split.reverse .section-video{order:0}.services-video-intro{margin-bottom:36px}.first-visit-video{margin-top:40px}.section-video{border-radius:10px}}
@media(prefers-reduced-motion:reduce){.section-video video{display:none}}
.care-band{display:grid;grid-template-columns:1fr 1fr;background:var(--navy);color:white}
.care-band .care-photo{min-height:540px;width:100%;height:100%;object-fit:cover;object-position:center}
.care-band .care-copy{padding:72px min(7vw,100px);align-self:center}
.care-band h2{color:white;font-size:46px;line-height:1.12;max-width:12em;letter-spacing:-.035em}
.care-band p{font-size:20px;color:#deebf9;line-height:1.7}.care-band .btn{font-size:18px;min-height:58px}
.b h2.s{font-size:42px;font-weight:650;letter-spacing:-.03em}
.infogrid .ibox{box-shadow:none;border-radius:10px;background:var(--tint)}
.end{background:var(--navy)}.end h2{font-size:44px}.end .btn{font-size:20px}
@media(max-width:1023px){
 .wrap{width:calc(100% - 40px)}.hdr .wrap{min-height:80px}.logo{height:48px}
 .home-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.42) 0%,rgba(2,48,93,.68) 38%,rgba(2,48,93,.9) 100%)}
 .home-hero h1{font-size:clamp(36px,8vw,52px);max-width:11em}.home-hero .sub{max-width:28em;font-size:18px;margin-top:16px}
 .home-hero .cta{flex-direction:column;align-items:stretch;gap:18px}.home-hero .btn{width:100%;min-height:52px;padding-inline:20px;font-size:17px}
 .home-hero #motion-toggle{display:none!important}
 .smile-heading{grid-template-columns:1fr;gap:20px}.smile-heading h2{font-size:40px}.smile-heading p{font-size:18px;max-width:36em}
 .smile-gallery{gap:12px}.smile-gallery img{height:250px}.smile-gallery img:nth-child(2){height:290px}
 .care-band .care-copy{padding:42px 32px}.care-band h2{font-size:36px}.care-band p{font-size:18px}
 .services-section .grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:600px){
 :root{--r:56px}.top .wrap{font-size:13px;padding-block:8px}
 .home-hero h1{font-size:clamp(34px,9vw,42px);max-width:9.5em}.home-hero .eyebrow{font-size:15px;margin-bottom:14px}
 .home-hero .sub{max-width:24em;font-size:17px}.home-hero .cta{gap:18px;margin-top:24px;flex-direction:column}
 .home-hero .btn{font-size:16px;padding:0 18px;min-height:52px;width:100%}
 .home-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.45) 0%,rgba(2,48,93,.7) 40%,rgba(2,48,93,.92) 100%)}
 .facts .wrap{gap:18px;padding-block:26px}.facts .f{border-left:0;padding-left:0}.facts .f b{font-size:18px}
 .smile-intro{padding:56px 0}.smile-heading{margin-bottom:30px}.smile-heading h2{font-size:36px}
 .smile-gallery{grid-template-columns:1fr 1fr;gap:12px}.smile-gallery img{height:220px}.smile-gallery img:nth-child(2){height:250px}.smile-gallery img:last-child{display:none}.smile-gallery img:first-child{margin-top:30px}
 .services-section .section-heading{display:block}.services-section h2,.b h2.s{font-size:34px}.services-section .text-link{display:inline-block;margin-top:18px}
 .services-section .grid{grid-template-columns:1fr}.services-section .card{padding:24px 0}
 .care-band{grid-template-columns:1fr}.care-band .care-photo{height:320px;min-height:0}.care-band .care-copy{padding:40px 24px 48px}.care-band h2{font-size:35px}
 .end h2{font-size:35px}.endnum{font-size:26px}
}

.hero-call-short{display:none}
.dir-short{display:none}
@media(max-width:1023px){.hdr .wrap{width:calc(100% - 40px)}}
@media(max-width:600px){
 .home-hero h1{font-size:clamp(32px,8.5vw,40px);max-width:9.2em}
 .home-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.42) 0%,rgba(2,48,93,.68) 38%,rgba(2,48,93,.92) 100%)}
 .home-hero .cta{flex-direction:column;gap:18px}
 .home-hero .cta .btn{width:100%;font-size:16px;padding-inline:18px}
 .hero-call-number,.dir-long{display:none}.hero-call-short,.dir-short{display:inline}
 .home-hero #motion-toggle{display:none!important}
 .top .wrap{flex-direction:column;align-items:flex-start;gap:2px;font-size:12px;line-height:1.35}
}

.visit-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px;margin-top:42px}
.visit-hours h3,.visit-address h3{font-size:26px;margin-bottom:26px}
.visit-hours{padding:34px;background:var(--wash);border-radius:10px}
.visit-address{padding:30px 0}.visit-address .addr{margin:0 0 26px;font-size:27px}
.visit-address p{max-width:33em}.visit-address .btn{font-size:18px;min-height:58px;margin-top:12px}
@media(max-width:700px){.visit-grid{grid-template-columns:1fr;gap:24px;margin-top:28px}.visit-hours{padding:24px}.visit-address{padding:12px 0}.visit-address .addr{font-size:24px}}

/* Full-bleed heroes on every section and leaf page. Homepage remains unchanged. */
.hero.page-hero{min-height:clamp(500px,58vw,680px);display:flex;align-items:center;padding:72px 0;background:var(--navy)}
.hero.page-hero .hero-media{position:absolute;inset:0;width:100%;height:100%}
.hero.page-hero .hero-media img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}
.hero.page-hero .hero-scrim{background:linear-gradient(90deg,rgba(2,48,93,.96) 0%,rgba(2,48,93,.88) 38%,rgba(2,48,93,.48) 70%,rgba(2,48,93,.22) 100%)}
.hero.page-hero .hero-copy{max-width:720px}.hero.page-hero h1{font:700 clamp(46px,5vw,70px)/1.04 var(--sans);letter-spacing:-.045em;max-width:11em;text-wrap:balance}
.hero.page-hero .eyebrow{padding:0;background:none;color:#bed6ef;font-weight:600}
@media(max-width:1023px){
 .hero.page-hero{min-height:590px;padding:52px 0}
 .hero.page-hero .hero-media img{object-position:50% 45%}
 .hero.page-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.96) 0%,rgba(2,48,93,.87) 58%,rgba(2,48,93,.52) 100%)}
}
@media(max-width:600px){
 .hero.page-hero{min-height:610px;padding:42px 0}
 .hero.page-hero h1{font-size:42px;max-width:9em}.hero.page-hero .sub{font-size:17px;max-width:22em}
 .hero.page-hero .hero-media img{object-position:50% 50%}
}
html,body{width:100%;max-width:100%;overflow-x:clip}
img,video{display:block;max-width:100%}
main,header,footer,section{max-width:100%}
@media(max-width:1023px){#motion-toggle{display:none!important}}

/* ---- calm responsive rhythm ---- */
@media (max-width:600px){
  :root{--r:48px}
  body{font-size:17px;line-height:1.55}
  .wrap,.hdr .wrap{width:calc(100% - 32px)}
  section.b{padding:56px 0}
  .b.tight{padding:48px 0}
  h2.s,.b h2.s,.services-section h2{font-size:30px;line-height:1.12;letter-spacing:-.03em}
  h3{line-height:1.18}
  .lead{font-size:17px;line-height:1.55;margin-top:14px}
  .cta{margin-top:26px;gap:18px;flex-direction:column;align-items:stretch}
  .btn{min-height:52px;padding-inline:18px;font-size:17px;width:100%;box-sizing:border-box}

  .home-hero h1{font-size:clamp(32px,8.8vw,38px);line-height:1.05;letter-spacing:-.02em;max-width:9.2em;font-family:var(--display);font-weight:600}
  .home-hero .eyebrow{font-size:14px;margin-bottom:12px}
  .home-hero .sub{font-size:16px;line-height:1.5;margin-top:14px;max-width:100%}
  .home-hero .cta{gap:18px;margin-top:22px;flex-direction:column}
  .home-hero .cta .btn{min-height:52px;font-size:16px;padding-inline:18px;border-radius:999px;width:100%}
  .home-hero .wrap{width:calc(100% - 32px)!important;max-width:100%;padding:0;box-sizing:border-box}
  .home-hero .hero-copy{max-width:100%;min-width:0}
  .home-hero #motion-toggle{display:none!important}

  /* Facts and photography remain complete, stacked calmly on phones. */
  .facts{overflow:hidden}
  .facts .wrap{display:grid;grid-template-columns:1fr;gap:10px;padding:18px 0;width:100%;overflow:visible}
  .facts .f{min-height:0;padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}
  .facts .f b{font-size:17px}.facts .f span{font-size:14px;line-height:1.4;margin-top:5px}
  .home-cluster{padding:28px 0 34px;overflow:hidden}
  .home-cluster .wrap{display:grid;grid-template-columns:1fr;gap:12px;width:100%;padding:0;overflow:visible}
  .home-cluster figure,.home-cluster figure:first-child,.home-cluster figure:nth-child(2),.home-cluster figure:last-child{display:block;margin:0;width:100%}
  .home-cluster img{height:220px!important;margin:0!important;object-fit:cover;border-radius:14px;width:100%}
  .home-cluster figcaption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

  /* Dense option sets wrap instead of forcing a page-wide scroller. */
  .toolgrid{gap:16px;margin-top:24px}
  .tool{padding:20px;border-radius:12px;overflow:hidden}
  .tool h3{font-size:21px}.tool .t{font-size:15px;margin:7px 0 14px}
  .picker{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;overflow:visible}
  .pk,.pk.sm{flex:0 0 auto;min-height:44px;padding:0 15px;font-size:15px}
  .pkout{min-height:0;padding:12px 14px;margin-top:8px;font-size:15px}
  .b.wide{padding:48px 0}
  .grid{gap:10px;margin-top:24px}
  .card,.feat-card{display:grid;grid-template-columns:42px 1fr;column-gap:12px;align-items:start;padding:18px;border-radius:12px;box-shadow:none;background:#fff;border:1px solid var(--line);min-height:0}
  .card .n,.services-section .card .n{grid-row:1 / span 3;width:42px;height:42px;margin:0;border-radius:10px}
  .card h3{font-size:20px;margin:0}
  .card p{grid-column:2;font-size:15px;line-height:1.45;margin:7px 0 0}
  .card .go{grid-column:2;font-size:15px;margin-top:9px}
  .feat-card{background:#fff;color:var(--body)}
  .card.feat-card .n{background:var(--wash)!important;color:var(--mid)!important}
  .feat-card h3{color:var(--ink)}.feat-card p{color:var(--body)}.feat-card .go{color:var(--mid)}

  /* Long reference blocks stay available without turning into visual walls. */
  .infogrid{gap:12px;margin-top:24px}
  .ibox{padding:20px}.ibox h3{font-size:21px}
  .hr-row{font-size:15px;padding:8px 0}
  .ilist{columns:2;column-gap:24px;font-size:15px}.ilist li{break-inside:avoid;margin-bottom:5px}
  .gh{font-size:21px!important;margin-top:28px!important}
  .pchips{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;padding:2px 2px 9px}
  .pchip{flex:0 0 auto;scroll-snap-align:start}
  .feat{gap:12px;margin-top:22px}.it{padding:18px;gap:13px}.it b{font-size:18px}.it p{font-size:15px;line-height:1.48;margin-top:5px}
  .revs{gap:12px;margin-top:22px}.rev{padding:20px}.rev q{font-size:17px}
  .faq{margin-top:22px}.faq details{padding:0}.faq summary{padding:18px 38px 18px 0;font-size:17px}.faq .a{padding:0 0 18px;font-size:16px}
  .svbox iframe{height:260px}
  .two{gap:24px}.two .lead{font-size:16px}
  .end{padding:48px 0}.end h2{font-size:30px}.end p{font-size:17px}.end .btn{margin-top:24px}
  footer{padding:42px env(safe-area-inset-right,0px) calc(28px + env(safe-area-inset-bottom,0px)) env(safe-area-inset-left,0px);font-size:16px}

  /* Premium mobile launcher: keep the Ask our AI label visible. */
  #ybchat-open{right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));min-height:52px;padding:0 16px 0 10px;gap:10px;border-radius:999px;font-size:14px;letter-spacing:0;box-shadow:0 8px 24px rgba(1,30,60,.28);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);max-width:calc(100vw - 24px)}
  #ybchat-open span{display:inline}
  #ybchat-open::before{width:32px;height:32px;border-radius:50%;font-size:14px;box-shadow:none}
  #ybchat-open::after{display:none}
  #ybchat-panel{inset:auto 8px 8px;width:calc(100% - 16px);height:min(720px,calc(100dvh - 16px));max-height:none;border:1px solid rgba(211,226,242,.9);border-radius:22px;box-shadow:0 24px 70px rgba(1,30,60,.28)}
  .ybc-hd{padding:16px 16px 14px;border-radius:21px 21px 0 0}
  .ybc-hd b{font-size:17px}.ybc-hd p{font-size:14px}
  #ybchat-msgs{padding:15px 13px}.ybc-m{max-width:88%;font-size:16px}
  .ybc-chips{flex-wrap:wrap;padding:0 13px 10px}.ybc-chip{font-size:15px}
  .ybc-in{padding:10px 10px calc(10px + env(safe-area-inset-bottom,0px))}.ybc-in button{padding-inline:15px}
}
@media (min-width:601px) and (max-width:1023px){
  section.b{padding:72px 0}
  .toolgrid{gap:18px}.tool{padding:24px}
  .cta{gap:20px}
  .home-hero .cta{gap:20px;flex-direction:column}
  .home-hero .cta .btn{width:100%}
  .home-hero .wrap{width:calc(100% - 40px)!important;max-width:100%}
}
@media (prefers-reduced-motion:reduce){
  .facts .wrap,.home-cluster .wrap,.picker,.pchips{scroll-behavior:auto;scroll-snap-type:none}
  #ybchat-open,#ybchat-open::before,#ybchat-panel,.ybc-chip{animation:none!important;transition:none!important}
}

h2.s,.b h2.s,.services-section h2,.end h2{font-family:var(--display);font-weight:600;letter-spacing:-.02em}
.home-cluster{padding:40px 0 12px;background:linear-gradient(180deg,#fff 0%,var(--tint) 100%)}
.home-cluster .wrap{gap:16px}
.home-cluster figure{border-radius:18px;box-shadow:var(--sh-rest);overflow:hidden}
.home-cluster img{height:280px;object-position:center 32%}
.foot-brand p{margin:8px 0 14px;line-height:1.5;color:var(--pale)}
.foot-phone{display:inline-block;font-size:22px;font-weight:800;letter-spacing:-.02em;color:#fff!important}
.foot-privacy{margin-top:10px;padding-top:0;border:0;font-size:14px}
@media (min-width:1024px){
  footer .wrap{grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px 28px;align-items:start}
  footer .fine,footer .yb-lockup,footer .foot-privacy{grid-column:1/-1;justify-self:center;text-align:center}
}
@media (max-width:1023px){
  footer .wrap{text-align:center;justify-items:center}
  footer nav{width:100%}
  footer nav a{padding:8px 0}
  .foot-brand p{margin-inline:auto}
}
#ybchat-open{min-height:56px;padding:0 18px 0 12px;border-radius:999px;gap:11px;
  background:linear-gradient(135deg,#02305d 0%,#005798 58%,#0470a8 100%);
  border:1px solid rgba(190,214,239,.45);
  box-shadow:0 10px 28px rgba(2,48,93,.28), inset 0 1px 0 rgba(255,255,255,.12);
  font:750 15px/1 var(--sans)}
#ybchat-open::before{content:'✦';width:32px;height:32px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#fff6d0,#e7c77f 70%);color:#02305d;font-size:15px;
  box-shadow:0 0 0 3px rgba(231,199,127,.18)}
#ybchat-open::after{display:none}
.ybc-hd{background:linear-gradient(135deg,#02305d,#014a83);color:#fff;padding:18px 18px 16px}
.ybc-hd b{display:block;font-size:18px;letter-spacing:-.01em}
.ybc-hd p{margin:6px 0 0;color:#d7e8f7;font-size:14px;line-height:1.45}
.ybc-call{background:var(--wash);color:var(--navy);font-weight:750;border-bottom:1px solid var(--line)}
.ybc-chips{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px 4px;background:var(--tint)}
.ybc-chip{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:999px;
  padding:10px 14px;min-height:40px;font:650 14px/1.2 var(--sans);cursor:pointer}
.ybc-chip:hover,.ybc-chip:focus-visible{border-color:var(--sky);background:#fff;color:var(--mid)}
.ybc-in{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:#fff}
.ybc-in input{flex:1;min-height:48px;border:1.5px solid var(--line);border-radius:12px;padding:0 14px;font:16px/1.4 var(--sans)}
.ybc-in button{min-height:48px;padding:0 18px;border:0;border-radius:12px;background:var(--mid);color:#fff;font:750 15px/1 var(--sans);cursor:pointer}
/* Contain intentional horizontal rails so they never widen the document. */
.facts,.home-cluster,.tool,.tick{max-width:100%;overflow-x:clip}
.facts .wrap,.home-cluster .wrap,.picker,.pchips{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch}
@media (max-width:600px){
  html,body{overflow-x:clip}
  .tick{display:none} /* ticker is decorative and historically caused page-wide overflow */
  .home-hero{isolation:isolate}
  .home-hero .hero-media{z-index:0}
  .home-hero .hero-scrim{z-index:1}
  .home-hero .wrap{z-index:2}
}

.cta{gap:28px 32px}
.home-hero .cta{gap:32px}
.btn,.home-hero .btn,.hero .btn,.end .btn{border-radius:999px}
@media (max-width:1023px){
  .cta,.home-hero .cta,.hero .cta{gap:22px!important;flex-direction:column}
  .cta .btn,.home-hero .cta .btn,.hero .cta .btn{width:100%;border-radius:999px}
  .home-hero .wrap{width:calc(100% - 40px)!important;max-width:100%;box-sizing:border-box;padding-bottom:8px}
  .home-hero .hero-copy,.home-hero .sub,.home-hero h1{max-width:100%;overflow-wrap:anywhere}
  .home-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.28) 0%,rgba(2,48,93,.55) 42%,rgba(2,48,93,.92) 100%)!important}
}
@media (max-width:600px){
  .home-hero .wrap{width:calc(100% - 32px)!important}
  .cta,.home-hero .cta{gap:22px!important}
}
@media (min-width:1024px){
  .home-hero .hero-copy{max-width:540px;margin-left:0;margin-right:auto;text-align:left}
  .home-hero .cta{display:flex;width:100%;gap:14px;justify-content:stretch}
  .home-hero .cta .btn{flex:1 1 0;margin:0}
  .home-hero .cta .btn + .btn{margin-left:0}
  .home-hero .wrap{align-items:center;justify-content:flex-start}
  section.b.wide > .wrap > .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
  section.b.wide > .wrap > .grid .card{height:100%}
  section.b.wide > .wrap > .cta{margin-top:20px}
}
/* The featured card used to span two columns, which left Emergency alone on the last row. */
section.b.wide > .wrap > .grid .feat-card{grid-column:auto}
@media (min-width:700px) and (max-width:1023px){
  section.b.wide > .wrap > .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
}

#ybchat-panel{display:flex;flex-direction:column;overflow:hidden}
#ybchat-msgs{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}
.ybc-hd,.ybc-chips,.ybc-in,.ybc-call{flex:none}
.ybc-call{display:block;margin:0;padding:8px 16px 12px;text-align:center;font-size:14px;font-weight:650;line-height:1.4;background:#fff;color:var(--mid);border:0;text-decoration:underline;text-underline-offset:3px}
.ybc-chips{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain}
.ybc-chip{flex:0 0 auto}
.ybc-in{align-items:stretch;gap:8px}
.ybc-in input{flex:1;min-width:0;width:100%;min-height:52px;font-size:16px;padding:0 14px}
.ybc-in button{min-height:52px;min-width:76px;padding:0 16px}
@media (max-width:1023px){
  #ybchat-panel{position:fixed;inset:0!important;right:0!important;bottom:0!important;width:100%!important;height:100dvh!important;max-height:100dvh!important;border:0!important;border-radius:0!important}
  .ybc-hd{padding-top:calc(14px + env(safe-area-inset-top,0px))}
  .ybc-in{padding:10px 12px 8px}
  .ybc-call{padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}
}
/* Hero copy sits under the header. A tall box with the text at the bottom
   left the top of the phone looking blank and pushed the buttons off screen. */
.home-hero,.hero.page-hero{align-items:flex-start}
.home-hero{min-height:0;padding:28px 0 32px}
.home-hero .wrap,.home-hero .hero-copy{align-items:flex-start;align-self:flex-start}
.hero.page-hero{min-height:420px;padding:40px 0 36px}
@media (min-width:1024px){
  .home-hero{min-height:min(70vh,640px);padding:36px 0 40px}
  .home-hero .wrap{align-items:flex-start}
}
@media (max-width:1023px){
  .home-hero{min-height:0;padding:18px 0 24px}
  .home-hero .hero-scrim{background:linear-gradient(180deg,rgba(2,48,93,.9) 0%,rgba(2,48,93,.78) 42%,rgba(2,48,93,.55) 100%)!important}
  .home-hero .openbadge{margin-bottom:8px}
  .home-hero .eyebrow{margin-bottom:8px}
  .home-hero .sub{margin-top:10px}
  .home-hero .cta{margin-top:14px;gap:10px!important}
  .hero.page-hero{min-height:0;padding:22px 0 26px}
}
@media (max-width:600px) and (max-height:740px){
  .top .wrap{padding-block:4px;font-size:12px}
  .hdr .wrap{min-height:60px}
  .logo{height:40px}
  .home-hero{padding:12px 0 16px}
  .home-hero h1{font-size:28px}
  .home-hero .sub{font-size:15px;line-height:1.35;margin-top:8px}
  .home-hero .cta{margin-top:10px;gap:8px!important}
  .home-hero .cta .btn{min-height:44px;font-size:15px}
  .hero.page-hero{padding:12px 0 16px;min-height:0}
  .hero.page-hero h1{font-size:30px;line-height:1.08}
  .hero.page-hero .sub{font-size:15px;margin-top:8px}
  .hero.page-hero .cta{margin-top:10px;gap:8px!important}
  .hero.page-hero .cta .btn{min-height:44px}
}
/* iPad landscape is just wide enough for the desktop menu, and the two-word
   items were wrapping and making the header taller. */
@media (min-width:1024px) and (max-width:1119px){
  .nav{gap:12px}
  .nav a{font-size:15px}
  .hdr .wrap{gap:12px}
  .call{padding:0 16px;font-size:16px;min-height:48px}
}
/* A short laptop (13-inch at 800px tall) left the hero buttons under Ask our AI. */
@media (min-width:1024px) and (max-height:860px){
  .home-hero{min-height:0;padding:20px 0 24px}
  .home-hero .eyebrow{margin-bottom:10px}
  .home-hero .sub{margin-top:12px;font-size:17px}
  .home-hero .cta{margin-top:16px}
}
/* Phone held sideways. The address bar and stacked buttons were taller than the screen. */
@media (max-height:500px){
  .top{display:none}
  .hdr .wrap{min-height:52px}
  .logo{height:34px}
  .home-hero,.hero.page-hero{padding:8px 0 10px;min-height:0}
  .home-hero h1,.hero.page-hero h1{font-size:26px;line-height:1.08}
  .home-hero .eyebrow,.hero.page-hero .eyebrow{margin-bottom:4px;font-size:13px}
  .home-hero .sub,.hero.page-hero .sub{font-size:14px;line-height:1.3;margin-top:6px}
  .home-hero .openbadge{margin-bottom:4px}
  .home-hero .cta,.hero.page-hero .cta,.hero .cta{margin-top:8px;flex-direction:row!important;gap:8px!important}
  .home-hero .cta .btn,.hero.page-hero .cta .btn,.hero .cta .btn{min-height:40px;font-size:14px;width:auto;flex:1 1 0}
}
/* Smallest phone, sideways: the chat button was sitting on Directions. */
@media (max-height:340px){
  .home-hero,.hero.page-hero{padding:4px 0 6px}
  .home-hero h1,.hero.page-hero h1{font-size:22px}
  .home-hero .eyebrow,.hero.page-hero .eyebrow{font-size:12px;margin-bottom:2px}
  .home-hero .sub,.hero.page-hero .sub{font-size:13px;line-height:1.25;margin-top:4px}
  .home-hero .openbadge{margin-bottom:2px;padding:3px 10px}
  .home-hero .cta .btn,.hero.page-hero .cta .btn,.hero .cta .btn{min-height:36px;font-size:13px}
  .hero.page-hero h1{font-size:18px;line-height:1.05}
  .hero.page-hero .sub{margin-top:2px}
  .hero.page-hero .cta{margin-top:0}
}
/* The wide Ask pill was covering the facts, the chips, and the review cards.
   A round button fits in the side margin on a laptop. */
@media (max-width:1599px){
  #ybchat-open{width:56px;height:56px;min-height:56px;padding:0;gap:0;border-radius:50%;
    justify-content:center;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  #ybchat-open span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
    clip:rect(0,0,0,0);white-space:nowrap;border:0}
}
@media (min-width:1024px) and (max-width:1599px){
  #ybchat-open:hover,#ybchat-open:focus-visible{width:auto;border-radius:999px;padding:0 16px 0 10px;gap:8px}
  #ybchat-open:hover span,#ybchat-open:focus-visible span{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}
}
@media (max-width:600px){
  .facts .f span{padding-right:40px}
}
/* The homepage was saying the hours, the address, and the phone twice
   before the first real section. What remains is larger. */
@media (min-width:1024px){
  .facts .wrap{padding-block:56px;gap:40px}
  .facts b,.facts .f b{font-size:22px}
  .facts .f span,.facts .f > span{font-size:18px;line-height:1.5}
  h2.s,.b h2.s{font-size:48px}
  .lead{font-size:20px;line-height:1.6}
  section.b{padding:112px 0}
  .home-cluster{padding:64px 0 16px}
  .home-cluster .wrap{gap:20px}
  .home-cluster img{height:320px}
  .card{padding:32px}
  .feat{gap:28px;margin-top:36px}
  .it b{font-size:22px}
  .it p{font-size:18px;line-height:1.5}
}
@media (min-width:1024px) and (min-height:861px){
  .home-hero h1{font-size:clamp(56px,5.6vw,80px)}
  .home-hero .cta{margin-top:32px}
  .home-hero .cta .btn{min-height:60px;font-size:18px}
}
@media (max-width:1023px) and (min-height:741px){
  .home-hero h1{font-size:clamp(38px,10vw,48px)}
  .facts .f b{font-size:22px}
  .facts .f span{font-size:17px;line-height:1.45}
  section.b{padding:80px 0}
  h2.s,.b h2.s{font-size:36px}
}
/* The first screen is one frame. The video fills it. The three facts sit on
   the video, fully inside the window, with no pale gap and no clipped line. */
.home-open{position:relative;display:flex;flex-direction:column;min-height:calc(100dvh - 148px)}
.home-open .home-hero{flex:1 1 auto;min-height:0;height:auto;padding:32px 0 24px;align-items:flex-start}
.home-open .facts{position:relative;z-index:4;margin:0;background:rgba(2,32,64,.82);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:0;padding:0}
.home-open .facts .wrap{padding-block:16px 18px}
.home-open .facts .f{border:0;border-radius:0;background:transparent!important;box-shadow:none;color:#fff;padding:8px 0}
.home-open .facts .f b,.home-open .facts b{color:#fff}
.home-open .facts .f span,.home-open .facts .f > span{color:#e7f2fb}
@media (min-width:1024px){
  .home-open .facts .wrap{grid-template-columns:repeat(3,1fr);gap:28px;padding-block:18px 20px}
  .home-open .facts .f{border-left:1px solid rgba(255,255,255,.28);padding:2px 10px 2px 22px}
  .home-open .facts .f:first-child{border-left:0;padding-left:0}
  .home-open .facts b,.home-open .facts .f b{font-size:20px}
  .home-open .facts .f span,.home-open .facts .f > span{font-size:16px;line-height:1.4}
  .home-open .facts .f{padding-right:72px}
}
@media (min-width:1024px){
  .home-open .home-hero{align-items:center}
  .home-open .home-hero .wrap,.home-open .home-hero .hero-copy{align-self:center}
  .home-open .home-hero .hero-copy{max-width:620px}
  .home-open .home-hero h1{font-size:clamp(56px,5vw,72px);line-height:1.05;max-width:13em}
  .home-open .home-hero .cta{margin-top:22px}
  .home-open .home-hero .cta .btn{min-height:56px;font-size:17px;padding-inline:22px}
  .home-open .home-hero .hero-scrim{background:linear-gradient(90deg,rgba(2,48,93,.88) 0%,rgba(2,48,93,.5) 34%,rgba(2,48,93,.12) 56%,rgba(2,48,93,0) 74%)}
  .home-open .facts b,.home-open .facts .f b{font-size:20px}
  .home-open .facts .f span,.home-open .facts .f > span{font-size:16px}
}
@media (min-width:1024px){
  .home-open.tight-type .home-hero h1{font-size:clamp(48px,4.2vw,60px)}
  .home-open.tight-type .home-hero .cta .btn{min-height:52px}
}
@media (max-width:1023px){
  body:has(.home-open) section.b{padding:40px 0}
  body:has(.home-open) h2.s,body:has(.home-open) .b h2.s{font-size:30px}
}
@media (max-width:359px){
  .top{display:none}
}
@media (max-height:500px){
  .home-open .home-hero{align-items:flex-start;padding:6px 0 76px}
  .home-open .home-hero h1{font-size:22px;line-height:1.05}
  .home-open .home-hero .cta{margin-top:8px}
  .home-open .home-hero .cta .btn{min-height:36px}
}
@media (min-width:1024px){
  body:has(.home-open) section.b{padding:72px 0}
  body:has(.home-open) .home-cluster{padding:32px 0 8px}
  body:has(.home-open) .home-cluster img{height:240px}
}

@media (min-width:1024px){
.home-hero .hero-media{overflow:hidden}
.home-open .home-hero .hero-media img,
.home-open .home-hero .hero-media video,
.home-hero .hero-media img,
.home-hero .hero-media video{
  position:absolute !important;
  inset:0 !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:cover !important;
  object-position:18% 38% !important;
  transform:scaleX(-1) !important;
}
}
.home-hero .cta,
.home-open .home-hero .cta{
  display:flex;
  flex-flow:row wrap;
  align-items:stretch;
  justify-content:flex-start;
  gap:10px !important;
  width:100%;
  margin-top:16px;
}
.home-hero .cta .btn,
.home-open .home-hero .cta .btn{
  flex:1 1 0;
  width:auto;
  min-width:0;
  min-height:46px;
  padding:0 16px !important;
  border-radius:8px !important;
  font:650 15px/1.15 var(--sans) !important;
  letter-spacing:0;
  box-shadow:none !important;
  text-align:center;
  white-space:nowrap;
}
.home-hero .cta .btn-w,
.home-open .home-hero .cta .btn-w{
  background:#fff !important;
  color:#02305d !important;
  border:1.5px solid #fff !important;
}
.home-hero .cta .btn-g,
.home-open .home-hero .cta .btn-g{
  background:rgba(1,28,52,.5) !important;
  color:#fff !important;
  border:1.5px solid #fff !important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
@media (min-width:1024px){
  .home-open .home-hero .cta{width:auto;flex-wrap:nowrap;gap:12px !important;margin-top:22px}
  .home-open .home-hero .cta .btn{
    flex:0 0 auto;width:auto;min-width:168px;min-height:48px;
    padding:0 22px !important;font-size:16px !important}
}
@media (max-width:1023px){
  .home-open .home-hero .openbadge{
    display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;
    margin:0 0 10px;padding:6px 12px 6px 10px;border-radius:999px;
    background:rgba(1,24,48,.82);border:1px solid rgba(255,255,255,.55);
    color:#fff;font-size:13px;font-weight:650;line-height:1.2;letter-spacing:0}
  .home-open .home-hero .openbadge .dot{width:8px;height:8px;flex:none}
}
/* Phone header. The address strip keeps both lines but loses its padding, and the
   logo is sized by width so the pale "Lefferts" wordmark reads (about 47px tall at
   375px and up) while the header stays no taller than before. Call and menu are
   full 44px targets. */
@media (max-width:600px){
  .top{display:block}
  .top .wrap{
    flex-direction:column;align-items:flex-start;justify-content:center;gap:0;
    width:calc(100% - 24px) !important;padding:4px 0;font-size:12px;line-height:1.25}
  .top .wrap span{min-width:0;overflow-wrap:anywhere}
  .hdr .wrap{min-height:58px;gap:8px;width:calc(100% - 24px) !important}
  .hdr .logo{width:172px;max-width:48vw;height:auto !important;max-height:none}
  .hdr .call{
    min-height:44px;padding:0 12px;font-size:14px;font-weight:700;
    border-radius:8px;box-shadow:none;flex:none}
  .burger{width:44px;height:44px;border-radius:8px;flex:none}
}
.home-hero{align-items:flex-start}

body:has(.home-open) .read > section.b{padding:32px 0 16px;background:transparent}
body:has(.home-open) .read > section.b.nest{padding:36px 0 28px}
body:has(.home-open) .read > section.b.chapter{padding:44px 0 12px}
body:has(.home-open) .read > .home-cluster{padding:14px 0 28px}
@media (min-width:1024px){
  body:has(.home-open) .read-open > section.b.nest:first-child{padding-top:48px}
}
body:has(.home-open) .read > .home-cluster img{height:188px}
body:has(.home-open) .read-open{background:var(--tint)}
body:has(.home-open) .read-hours,
body:has(.home-open) .read-services,
body:has(.home-open) .read-here,
body:has(.home-open) .read-faq{background:#fff}
body:has(.home-open) .read-ins,
body:has(.home-open) .read-reviews{background:var(--tint)}
body:has(.home-open) .read + .read{box-shadow:inset 0 1px 0 var(--line)}
body:has(.home-open) .read-here .mapbox iframe{height:300px}
body:has(.home-open) .read-here .svbox{margin-top:0}
body:has(.home-open) .read-here .svbox iframe{height:300px}
body:has(.home-open) .read .feat{margin-top:18px}
body:has(.home-open) .read .services-video-intro{margin-bottom:28px}
@media (max-width:1023px){
  body:has(.home-open) .read > section.b,
  body:has(.home-open) .read > section.b.chapter{padding:28px 0 8px}
  body:has(.home-open) .read > section.b.nest{padding:0 0 16px}
  body:has(.home-open) .read > .home-cluster{padding:0 0 12px}
  body:has(.home-open) .read > .home-cluster img{height:148px}
  body:has(.home-open) .read-here .mapbox iframe,
  body:has(.home-open) .read-here .svbox iframe{height:220px}
}

@media (max-width:1023px){
  #ybchat-open{right:calc(16px + env(safe-area-inset-right,0px));
    bottom:calc(16px + env(safe-area-inset-bottom,0px))}
  body.home-scrolled #ybchat-open{opacity:0;visibility:hidden;pointer-events:none}
}
@media (prefers-reduced-motion:reduce){
  .home-open .home-hero .hero-media video{display:none}
}

@media(max-width:1023px){
  #ybchat-open{width:48px;height:48px;min-height:48px;padding:0;gap:0;border-radius:50%;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(12px + env(safe-area-inset-bottom,0px));justify-content:center}
  #ybchat-open span{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
}
#ybchat-open.chat-clearance-hide{visibility:hidden!important;pointer-events:none!important;opacity:0!important}

body:not(:has(.home-open)){padding-bottom:0}
@media (max-width:1023px){
  body:has(.home-open){padding-bottom:0}
  body:has(.home-open) .read > section.b,
  body:has(.home-open) .read > section.b.chapter{padding:36px 0 24px}
  body:has(.home-open) .read > section.b.nest{padding:28px 0 28px}
  body:has(.home-open) .read-open > section.b.nest{padding-top:32px}
  .mnav{max-height:calc(100svh - 80px);overflow-y:auto;overscroll-behavior:contain}
  .hero.page-hero{min-height:0;padding:32px 0 36px}
  .hero.page-hero h1{font-family:var(--display);font-weight:600;font-size:clamp(34px,5vw,46px);line-height:1.1;letter-spacing:-.025em;max-width:18em;text-wrap:balance}
  .hero.page-hero .eyebrow{margin:0 0 12px;line-height:1.4}
  .hero.page-hero .openbadge{margin:0 0 16px}
  .hero.page-hero .sub{margin-top:16px;line-height:1.5;max-width:36em}
  .hero.page-hero .cta{display:flex;flex-direction:row!important;gap:12px!important;margin-top:24px;max-width:540px}
  .hero.page-hero .cta .btn{flex:1 1 0;min-width:0;width:auto;min-height:48px;padding:12px!important;font-size:16px;line-height:1.25}
  .hero.page-hero .cta .btn{border-radius:10px}
  .hero.page-hero .cta .btn-g{background:rgba(2,32,64,.8);border-color:rgba(255,255,255,.8)}
  .hero.page-hero .hero-call-number,.hero.page-hero .dir-long{display:none}
  .hero.page-hero .hero-call-short,.hero.page-hero .dir-short{display:inline}
  footer .wrap{grid-template-columns:repeat(3,minmax(0,1fr));text-align:left;justify-items:stretch;gap:24px}
  footer .foot-brand,footer .fine,footer .yb-lockup,footer .foot-privacy{grid-column:1/-1;text-align:center}
  footer nav a{min-height:44px;display:flex;align-items:center;padding:8px 0;line-height:1.4}
}
@media (min-width:700px) and (max-width:1023px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .grid .feat-card{grid-column:auto}
}
@media (max-width:600px){
  section.b{padding:48px 0}
  h2.s,.b h2.s{font-size:32px;line-height:1.15}
  .hero.page-hero{padding:28px 0 32px}
  .hero.page-hero h1{font-size:clamp(30px,8.5vw,36px);max-width:17em}
  .hero.page-hero .sub{font-size:17px;max-width:none}
  .hero.page-hero .cta{gap:10px!important}
  .hero.page-hero .cta .btn{font-size:15px}
  main > section.b .lead[style*="font-size"]{font-size:18px!important;line-height:1.6}
  main > section.b > .wrap > .lead:first-child{margin-top:0}
  body:has(.home-open) .read > .home-cluster{padding:0 16px 28px}
  body:has(.home-open) .read > .home-cluster .wrap{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  body:has(.home-open) .read > .home-cluster figure:first-child{grid-column:1/-1}
  body:has(.home-open) .read > .home-cluster img{height:160px!important;border-radius:0}
  body:has(.home-open) .read > .home-cluster figure:first-child img{height:auto!important;aspect-ratio:16/9}
  body:has(.home-open) .read > .home-cluster figure{border-radius:12px}
  .num{font-size:clamp(28px,9vw,40px);line-height:1.2;max-width:100%}
  .end{padding:48px 0}
  .end h2{font-size:32px;line-height:1.15}
  .end p{font-size:17px;line-height:1.6}
  footer{padding:36px 0 calc(32px + env(safe-area-inset-bottom,0px))}
  footer .wrap{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px;font-size:16px}
  footer .foot-brand{margin-bottom:8px}
  footer nav:nth-of-type(1){grid-column:1;grid-row:2 / span 2}
  footer nav:nth-of-type(2){grid-column:2;grid-row:2}
  footer nav:nth-of-type(3){grid-column:2;grid-row:3}
  footer .fine{margin:0;padding-top:20px}
  .mnav{max-height:calc(100svh - 58px)}
}
/* Preserve the narrow-phone adjustment already present on the live site. */
@media (max-width:359px){
  .hdr .wrap{min-height:52px}
  .hero.page-hero .openbadge{font-size:13px}
}

/* Final reading pass: use tablet width deliberately and close excess gaps. */
@media (min-width:700px) and (max-width:1023px){
  body:has(.home-open) .read-open .feat{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  body:has(.home-open) #info .ilist{columns:2;column-gap:32px}
  body:has(.home-open) #info .ilist li{break-inside:avoid}
  .b .cta{flex-direction:row;align-items:center;gap:12px!important}
  .b .cta .btn{width:auto;flex:0 1 auto;min-height:52px;padding-inline:24px;font-size:17px;line-height:1.3}
  .end{padding-bottom:40px}
  footer{padding-top:40px}
}
@media (max-width:1023px){
  .hero.page-hero + section.b > .wrap > .cols:first-child{margin-top:0}
}
@media (max-width:600px){
  .end{padding-bottom:32px}
  .end p{text-align:left}
  footer{padding-top:24px}
}


footer{padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);background:#102f55;border-top:3px solid #8bb5e0}
footer .wrap{gap:0 34px;align-items:start;padding-top:52px}
footer b{font:700 14px/1.3 var(--sans);letter-spacing:.1em;text-transform:uppercase;margin:0 0 16px;color:#d9eaf8}
footer .foot-brand b{font:600 28px/1.15 var(--display);letter-spacing:-.02em;text-transform:none;color:#fff;margin:0 0 15px}
footer .foot-brand p{margin:0 0 12px;font-size:16px;line-height:1.55}
footer .foot-phone{font-size:21px;line-height:1.3}
footer nav a{font-size:15px;line-height:1.45;padding:6px 0;color:#deebf6}
footer nav a:hover,footer nav a:focus-visible{text-decoration:underline;text-underline-offset:4px}
footer .foot-chat{display:block;grid-column:auto;justify-self:auto;width:max-content;margin:20px 0 0;padding:10px 16px;min-height:44px;border:1px solid rgba(190,214,239,.65);border-radius:10px;font-size:14px}
footer .foot-chat:hover,footer .foot-chat:focus-visible{background:rgba(255,255,255,.12)}
footer .foot-bottom{grid-column:1/-1;display:flex;align-items:center;gap:18px;margin-top:36px;padding:18px 0 22px;border-top:1px solid rgba(255,255,255,.2)}
footer .foot-bottom .fine,footer .foot-bottom .yb-lockup{grid-column:auto;justify-self:auto;margin:0;padding:0;border:0;text-align:left}
footer .foot-bottom .fine{font-size:13px;line-height:1.5;color:#b9cee1}
footer .foot-bottom .yb-lockup{margin-left:auto;white-space:nowrap}
footer .foot-bottom .yb-lockup a{font-size:13px;gap:6px;letter-spacing:.04em}
footer .foot-bottom .yb-lockup svg{width:13px;height:13px}
footer .foot-bottom .foot-privacy{white-space:nowrap}
footer .foot-bottom .foot-privacy a{font-size:13px;color:#deebf6}
@media (min-width:1024px){
  footer .wrap{grid-template-columns:minmax(240px,1.45fr) repeat(3,minmax(130px,1fr))}
}
@media (min-width:601px) and (max-width:1023px){
  footer .wrap{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 24px;text-align:left;justify-items:stretch}
  footer .foot-brand{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;column-gap:24px;padding-bottom:26px;border-bottom:1px solid rgba(255,255,255,.2);text-align:left}
  footer .foot-brand b,footer .foot-brand p,footer .foot-phone{grid-column:1}
  footer .foot-brand .foot-chat{grid-column:2;grid-row:1 / span 3;align-self:center;margin:0}
  footer .foot-bottom{margin-top:8px}
}
@media (max-width:600px){
  footer .wrap{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px;padding-top:30px;text-align:left;justify-items:stretch}
  footer .foot-brand{grid-column:1/-1;margin:0 0 26px;padding-bottom:24px;border-bottom:1px solid rgba(255,255,255,.2);text-align:left}
  footer .foot-brand b{font-size:26px}
  footer nav:nth-of-type(1){grid-column:1;grid-row:2 / span 2}
  footer nav:nth-of-type(2){grid-column:2;grid-row:2}
  footer nav:nth-of-type(3){grid-column:2;grid-row:3;margin-top:16px}
  footer nav b{margin-bottom:8px}
  footer nav a{min-height:42px;display:flex;align-items:center;padding:7px 0;font-size:14px}
  footer .foot-bottom{display:grid;grid-template-columns:1fr auto;gap:14px;margin-top:24px;padding:18px 0 calc(20px + env(safe-area-inset-bottom,0px))}
  footer .foot-bottom .fine{grid-column:1/-1;text-align:left;font-size:12px}
  footer .foot-bottom .yb-lockup{grid-column:1;grid-row:2;margin:0}
footer .foot-bottom .foot-privacy{grid-column:2;grid-row:2;align-self:center}
}

/* Homepage visit details replace the former long inventory of services and plans. */
.home-visit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:64px;margin-top:32px}
.home-visit-item{border-top:2px solid #96bbd9;padding:24px 0 0}
.home-visit-label{display:block;margin-bottom:20px;color:#28638e;font:700 13px/1.2 var(--sans);letter-spacing:.11em;text-transform:uppercase}
.home-visit-item p{display:flex;justify-content:space-between;gap:12px;margin:0;padding:10px 0;border-bottom:1px solid #dce8f0;font-size:16px;line-height:1.45}
.home-visit-item p b{white-space:nowrap;color:#102f55}
.home-visit-item .home-visit-address{display:block;font:600 22px/1.35 var(--display);color:#102f55}
.home-visit-item a{display:inline-block;margin-top:16px;color:#07598f;font-weight:700;text-underline-offset:4px}
.home-tools-disclosure>summary{display:none}
@media(max-width:699px){
  body:has(.home-open) .read-open > section.b.nest:first-child{padding:44px 0 28px}
  body:has(.home-open) .read-open .feat{display:block;margin-top:20px}
  body:has(.home-open) .read-open .feat .it{display:grid;grid-template-columns:42px 1fr;gap:14px;min-height:0;margin:0;padding:18px 0;border:0;border-bottom:1px solid #ccdee9;border-radius:0;box-shadow:none;background:transparent}
  body:has(.home-open) .read-open .feat .it:last-child{border-bottom:0}
  body:has(.home-open) .read-open .feat .it b{font-size:17px;line-height:1.35}
  body:has(.home-open) .read-open .feat .it p{margin-top:5px;font-size:14px;line-height:1.45}
  .home-visit-grid{grid-template-columns:1fr;gap:28px;margin-top:22px}
  .home-visit-item{padding-top:18px}
  .home-visit-label{margin-bottom:12px}
  .home-visit-item p{font-size:15px}
  .home-visit-item .home-visit-address{font-size:21px}
  body:has(.home-open) .home-cluster{padding:20px 0 12px}
  body:has(.home-open) .home-cluster .wrap{display:block}
  body:has(.home-open) .home-cluster figure:nth-child(n+2){display:none}
  body:has(.home-open) .home-cluster figure{box-shadow:none;border-radius:12px}
  body:has(.home-open) .home-cluster img{height:220px;object-fit:cover;object-position:center 42%}
  body:has(.home-open) .read-services .grid{display:block;margin-top:24px}
  body:has(.home-open) .read-services .grid .card{display:flex;align-items:center;gap:13px;min-height:64px;padding:12px 0;margin:0;border:0;border-bottom:1px solid #d6e4ed;border-radius:0;box-shadow:none;background:transparent}
  body:has(.home-open) .read-services .grid .card .n{flex:none;width:38px;height:38px;margin:0}
  body:has(.home-open) .read-services .grid .card h3{flex:1;margin:0;font-size:17px;line-height:1.3}
  body:has(.home-open) .read-services .grid .card p,
  body:has(.home-open) .read-services .grid .card .go{display:none}
  body:has(.home-open) .read-services .grid .card::after{content:"›";flex:none;color:#2b6793;font-size:27px;line-height:1}
  body:has(.home-open) .read-ins .steps,
  body:has(.home-open) .read-ins .lead.d2{display:none}
  .home-tools-disclosure{display:block;margin:0;background:var(--tint)}
  .home-tools-disclosure>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:18px 20px;color:#102f55;font:700 17px/1.3 var(--sans);list-style:none;cursor:pointer;border-top:1px solid #c9dce9;border-bottom:1px solid #c9dce9}
  .home-tools-disclosure>summary::-webkit-details-marker{display:none}
  .home-tools-disclosure>summary span{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:#e1eef7;color:#07598f;font-size:23px;font-weight:400}
  .home-tools-disclosure[open]>summary span{transform:rotate(45deg)}
  .home-tools-disclosure #tools{padding-top:28px}
}
/* Phone video stays wide enough to show her face. The opening is one frame:
   header, film, headline, both actions and the three facts fill the visible
   window and stop there. 100svh is only the no-JavaScript fallback. site.js
   pins visualViewport once per width, so a browser toolbar showing or hiding
   never resizes it. The film covers the frame; the words sit on the lower
   scrim under her chin, and the facts are only as tall as their text. */
@media (max-width:699px) and (min-height:501px){
  .home-open{
    display:flex;flex-direction:column;box-sizing:border-box;
    height:calc(100svh - var(--opening-top,59px));min-height:0;max-height:none;
    overflow:hidden;background:#02305d;
  }
  .home-open .home-hero{
    position:relative;display:flex;flex:1 1 auto;flex-direction:column;justify-content:flex-end;
    align-items:stretch;min-height:0;height:auto;padding:0;overflow:hidden;background:#02305d;isolation:isolate;
  }
  .home-open .home-hero .hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%!important;max-height:none;overflow:hidden}
  .home-open .home-hero .hero-media img,
  .home-open .home-hero .hero-media video{
    position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;
    object-fit:cover;object-position:16% 50%!important;transform:none!important;
  }
  .home-open .home-hero .hero-media::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(2,48,93,.1) 0%,rgba(2,48,93,0) 18%,rgba(2,48,93,0) 50%,rgba(2,48,93,.62) 66%,rgba(2,48,93,.94) 84%,#02305d 100%);
  }
  .home-open .home-hero .hero-scrim{display:none}
  .home-open .home-hero .wrap{
    position:relative;z-index:2;display:block;width:100%!important;max-width:none;box-sizing:border-box;
    margin:0;padding:0 calc(20px + env(safe-area-inset-right,0px)) 16px calc(20px + env(safe-area-inset-left,0px));border-radius:0;background:transparent;box-shadow:none;
  }
  .home-open .home-hero .hero-copy{align-self:auto;width:100%;max-width:100%}
  .home-open .home-hero .openbadge{margin:0 0 10px}
  .home-open .home-hero h1{margin:0;max-width:12em;font-size:clamp(30px,8vw,36px);line-height:1.08;letter-spacing:-.025em;color:#fff}
  .home-open.tight-type .home-hero h1{font-size:clamp(26px,6.4vw,32px);line-height:1.06}
  .home-open .home-hero .cta{display:flex;flex-direction:row!important;gap:10px!important;margin-top:14px}
  .home-open .home-hero .cta .btn{flex:1 1 0;min-width:0;width:auto;min-height:48px;padding:0 10px!important;font-size:15px!important}
  .home-open .facts{flex:none;position:relative;z-index:3;height:auto;margin:0;background:#01243f;border-top:1px solid rgba(255,255,255,.14)}
  .home-open .facts .wrap{display:block;width:100%!important;margin:0;padding:4px calc(16px + env(safe-area-inset-right,0px)) calc(8px + env(safe-area-inset-bottom,0px)) calc(16px + env(safe-area-inset-left,0px));overflow:visible}
  .home-open .facts .f,
  .home-open .facts .f + .f,
  .home-open .facts .f:last-child{
    display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin:0;
    padding:6px 0;border:0;border-bottom:1px solid rgba(255,255,255,.18);border-radius:0;background:transparent!important;box-shadow:none;
  }
  .home-open .facts .f:last-child{border-bottom:0}
  .home-open .facts .f b{flex:none;font-size:13px;line-height:1.3;white-space:nowrap;color:#fff}
  .home-open .facts .f span,
  .home-open .facts .f > span{margin:0;padding:0;font-size:13px;line-height:1.3;text-align:right;color:#d7e8f7}
  #ybchat-open{top:calc(var(--opening-top,59px) + 12px);bottom:auto;right:calc(12px + env(safe-area-inset-right,0px))}
}
@media (min-width:601px) and (max-width:699px) and (min-height:501px){
  .home-open{height:calc(100svh - var(--opening-top,125px))}
  #ybchat-open{top:calc(var(--opening-top,125px) + 12px)}
}
@media (max-width:699px) and (min-height:501px) and (max-height:700px){
  .home-open .home-hero .openbadge{margin-bottom:8px}
  .home-open .home-hero h1{font-size:clamp(26px,7.4vw,30px);line-height:1.06}
  .home-open .home-hero .cta{margin-top:12px}
  .home-open .home-hero .wrap{padding-bottom:12px}
}
@media (max-width:359px) and (min-height:501px){
  .home-open{height:calc(100svh - var(--opening-top,59px))}
  .home-open .home-hero .wrap{padding:0 14px 10px}
  .home-open .home-hero .openbadge{margin-bottom:6px;padding-block:4px}
  .home-open .home-hero h1,
  .home-open.tight-type .home-hero h1{font-size:24px;line-height:1.05}
  .home-open .home-hero .cta{margin-top:10px;gap:8px!important}
  .home-open .home-hero .cta .btn{min-height:44px;font-size:14px!important}
  .home-open .facts .wrap{padding:2px 14px 6px}
  .home-open .facts .f,
  .home-open .facts .f + .f,
  .home-open .facts .f:last-child{gap:8px;padding:4px 0}
  .home-open .facts .f b,
  .home-open .facts .f span,
  .home-open .facts .f > span{font-size:12px}
  #ybchat-open{top:calc(var(--opening-top,59px) + 10px)}
}
/* Tablet: its own frame. The film is wider than on a phone and is not the
   desktop's mirrored crop. Larger type on the lower scrim, facts in one row.
   The address bar is 48px and the header is 77px, so the opening starts at 125. */
@media (min-width:601px) and (max-width:1023px) and (min-height:501px){
  .top{box-sizing:border-box;height:48px;overflow:hidden}
  .hdr{box-sizing:border-box;height:77px}
  .hdr .wrap{min-height:0;height:100%}
}
@media (min-width:700px) and (max-width:1023px) and (min-height:501px){
  .home-open{
    display:flex;flex-direction:column;box-sizing:border-box;
    height:calc(100svh - var(--opening-top,125px));min-height:0;max-height:none;
    overflow:hidden;background:#02305d;
  }
  .home-open .home-hero{
    position:relative;display:flex;flex:1 1 auto;flex-direction:column;justify-content:flex-end;
    align-items:stretch;min-height:0;height:auto;padding:0;overflow:hidden;background:#02305d;isolation:isolate;
  }
  .home-open .home-hero .hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%!important;max-height:none;overflow:hidden}
  .home-open .home-hero .hero-media img,
  .home-open .home-hero .hero-media video{
    position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;
    object-fit:cover;object-position:6% 50%!important;transform:none!important;
  }
  .home-open .home-hero .hero-media::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(2,48,93,.08) 0%,rgba(2,48,93,0) 20%,rgba(2,48,93,0) 52%,rgba(2,48,93,.58) 68%,rgba(2,48,93,.92) 86%,#02305d 100%);
  }
  .home-open .home-hero .hero-scrim{display:none}
  .home-open .home-hero .wrap{
    position:relative;z-index:2;display:block;width:100%!important;max-width:none;box-sizing:border-box;
    margin:0;padding:0 40px 28px;border-radius:0;background:transparent;box-shadow:none;
  }
  .home-open .home-hero .hero-copy{align-self:auto;width:100%;max-width:640px}
  .home-open .home-hero .openbadge{margin:0 0 14px}
  .home-open .home-hero h1{margin:0;max-width:13em;font-size:clamp(40px,5.6vw,54px);line-height:1.06;letter-spacing:-.025em;color:#fff}
  .home-open.tight-type .home-hero h1{font-size:clamp(34px,4.6vw,44px)}
  .home-open .home-hero .cta{display:flex;flex-direction:row!important;gap:12px!important;margin-top:20px;max-width:560px}
  .home-open .home-hero .cta .btn{flex:1 1 0;min-width:0;width:auto;min-height:52px;padding:0 16px!important;font-size:16px!important}
  .home-open .facts{flex:none;position:relative;z-index:3;height:auto;margin:0;background:#01243f;border-top:1px solid rgba(255,255,255,.14)}
  .home-open .facts .wrap{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;
    width:100%!important;margin:0;padding:14px 40px 16px;overflow:visible;
  }
  .home-open .facts .f,
  .home-open .facts .f + .f,
  .home-open .facts .f:last-child{
    display:block;margin:0;padding:0 16px;border:0;border-left:1px solid rgba(255,255,255,.22);
    border-radius:0;background:transparent!important;box-shadow:none;
  }
  .home-open .facts .f:first-child{border-left:0;padding-left:0}
  .home-open .facts .f:last-child{padding-right:0}
  .home-open .facts .f b{display:block;font-size:17px;line-height:1.25;color:#fff}
  .home-open .facts .f span,
  .home-open .facts .f > span{display:block;margin:4px 0 0;padding:0;font-size:15px;line-height:1.35;color:#d7e8f7}
  #ybchat-open{top:calc(var(--opening-top,125px) + 16px);bottom:auto;right:calc(16px + env(safe-area-inset-right,0px))}
}
@media (min-width:700px) and (max-width:799px) and (min-height:501px){
  .home-open .facts .wrap{padding-inline:28px}
  .home-open .facts .f,
  .home-open .facts .f + .f,
  .home-open .facts .f:last-child{padding:0 12px}
  .home-open .facts .f:first-child{padding-left:0}
  .home-open .facts .f:last-child{padding-right:0}
  .home-open .facts .f span,
  .home-open .facts .f > span{font-size:14px}
}
/* Phone and small-tablet landscape. A full-width 16:9 film is taller than the
   window, so the film sits beside the headline and both actions. The frame
   stays 16:9. Facts stay one short row under that pair. */
@media (max-width:1023px) and (max-height:500px){
  .top{display:none}
  .hdr{box-sizing:border-box;height:calc(52px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
  .hdr .wrap{min-height:0;height:100%}
  .home-open{
    display:flex;flex-direction:column;box-sizing:border-box;
    height:calc(100svh - var(--opening-top,52px));min-height:0;max-height:none;overflow:hidden;
  }
  .home-open .home-hero{
    display:grid;grid-template-columns:minmax(0,420px) minmax(220px,1fr);flex:1 1 auto;
    align-items:stretch;min-height:0;height:auto;padding:0;background:#02305d;
  }
  .home-open .home-hero .hero-media{
    position:relative;inset:auto;width:100%;height:auto!important;aspect-ratio:16/9;max-height:none;flex:none;overflow:hidden;
  }
  .home-open .home-hero .hero-media img,
  .home-open .home-hero .hero-media video{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:center 28%!important;transform:none!important;
  }
  .home-open .home-hero .hero-scrim{display:none}
  .home-open .home-hero .wrap{
    width:100%!important;margin:0;padding:12px 16px;display:flex;align-items:center;background:transparent;
  }
  .home-open .home-hero h1{font-size:clamp(22px,3.4vw,30px);line-height:1.08}
  .home-open .home-hero .cta{display:flex;flex-direction:row!important;margin-top:10px}
  .home-open .home-hero .cta .btn{min-height:48px}
  .home-open .facts{flex:none;display:block;height:auto;background:#01243f}
  .home-open .facts .wrap{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;
    width:100%;padding:8px 76px 10px 16px;
  }
  .home-open .facts .f,.home-open .facts .f:last-child{display:block;padding:0 12px 0 0;border:0}
  .home-open .facts .f + .f{padding-left:12px;border-left:1px solid rgba(255,255,255,.28)}
}
@media (max-width:800px) and (max-height:500px){
  .home-open .home-hero{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center}
  .home-open .home-hero .hero-media{align-self:center;width:100%;height:calc(50vw * 9 / 16)!important;aspect-ratio:auto}
  .home-open .hero-call-number,.home-open .dir-long{display:none}
  .home-open .hero-call-short,.home-open .dir-short{display:inline}
  .home-open .home-hero .cta{flex-direction:column!important;align-items:stretch}
  .home-open .home-hero .cta .btn{width:100%;min-width:0;font-size:15px!important;padding:0 12px!important}
}
@media (max-width:600px) and (min-height:501px){
  .top{display:none}
  .hdr{box-sizing:border-box;height:calc(59px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
  .hdr .wrap{min-height:0;height:100%}
}
@media (max-width:359px){
  .hdr{box-sizing:border-box;height:calc(59px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px)}
  .hdr .wrap{min-height:0;height:100%}
}
/* Phone inner pages: the photo is its own short band under the header, with
   the words on solid navy below it, instead of disappearing under a wash. */
@media (max-width:699px) and (min-height:501px){
  .hero.page-hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:0 0 28px}
  .hero.page-hero .hero-media{position:relative;inset:auto;z-index:0;flex:none;width:100%;height:clamp(150px,40vw,190px);overflow:hidden}
  .hero.page-hero .hero-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%;transform:none}
  .hero.page-hero .hero-scrim{display:none}
  .hero.page-hero .wrap{padding-top:20px}
}
/* iPhone Safari floats its toolbar and keeps painting the page underneath.
   The opening stops at the visual window, so the next section shows in that
   strip. This block is the next thing in the page, so the strip is navy. */
.ios-bleed{display:none;height:0;margin:0;background:#01243f}
@media (max-width:1023px){
  .ios-bleed{display:block;height:max(120px, env(safe-area-inset-bottom, 0px))}
}
