/* Full-bleed opening video. Text keeps a dark, readable backdrop throughout the footage. */
.home-snap .video-hero{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;max-width:none;min-height:calc(100svh - var(--home-chrome,175px));min-height:calc(100dvh - var(--home-chrome,175px));padding:70px clamp(24px,6vw,110px) 95px;background:#193327;overflow:hidden;color:#fff}
.home-snap .video-hero .hero-media{position:absolute;inset:0;width:100%;height:100%;max-height:none;min-height:0;margin:0;border-radius:0;aspect-ratio:auto;z-index:-2;background:#193327}
.video-hero .hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(11,29,20,.87) 0%,rgba(11,29,20,.76) 43%,rgba(11,29,20,.25) 78%,rgba(11,29,20,.12));pointer-events:none}
.home-snap .video-hero .hero-media video,.video-hero .hero-still{position:absolute;inset:0;display:block;width:100%;height:100%;min-height:0;object-fit:cover;object-position:center}
.video-hero .hero-media video{opacity:0;transition:opacity .3s ease}
.video-hero.video-ready .hero-media video{opacity:1}
.home-snap .video-hero .intro{width:min(720px,58%);padding:0;align-self:center}
.home-snap .video-hero h1{font-size:clamp(46px,5.2vw,84px);line-height:1.07;margin:22px 0;color:#fff;text-wrap:balance}
.video-hero .intro .eyebrow{color:#e1ebd8}
.home-snap .video-hero .intro p{color:#f3f5ee;max-width:500px;font-size:18px;line-height:1.6}
.video-hero .actions{gap:22px}
.video-hero .actions .button{background:#f2f4e9;color:#21442e;min-height:48px;padding:15px 24px}
.video-hero .actions .button:hover{background:#fff}
.video-hero .actions .textlink{color:#fff;min-height:48px;display:inline-flex;align-items:center;font-weight:600}
.video-hero .hero-video-toggle{position:absolute;right:clamp(24px,6vw,110px);bottom:26px;z-index:2;min-height:44px;padding:10px 16px;border:1px solid #ffffff90;border-radius:5px;background:#10261fdb;color:#fff;font:600 13px/1.4 Arial,sans-serif;cursor:pointer}
.video-hero a:focus-visible,.video-hero button:focus-visible{outline:3px solid #fff;outline-offset:5px}
.video-hero .hero-motion-hint{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
/* Gentle native settling at section edges, including on phones. Short targets
   avoid the free-scroll snap area of an oversized clinic/services section.
   Higher root specificity wins over the later shared no-snap refinement. */
@media(prefers-reduced-motion:no-preference){
 html.home-snap:root{scroll-snap-type:y proximity!important;scroll-behavior:auto!important;scroll-padding-block-start:calc(var(--mobile-header-height,100px) + var(--wp-admin--admin-bar--height,0px))!important}
 html.home-snap:root main>section:not(.video-hero){position:relative;scroll-snap-align:none;scroll-snap-stop:normal!important}
 html.home-snap:root main>section:not(.video-hero)::before{content:"";position:absolute;inset-block-start:0;inset-inline-start:0;display:block;width:1px;height:1px;pointer-events:none;scroll-snap-align:start;scroll-snap-stop:normal!important}
 html.home-snap:root .video-hero,html.home-snap:root .draft-bar,html.home-snap:root .home-ending,html.home-snap:root .full-footer{scroll-snap-align:none!important;scroll-snap-stop:normal!important}
}
@media(prefers-reduced-motion:reduce){html.home-snap:root{scroll-snap-type:none!important;scroll-behavior:auto!important}}
/* Fill the available screen on mobile/tablet, without fixing or clipping long
   content. The measured header follows wrapping, resizing and orientation. */
@media(max-width:1000px){
 html.home-snap:root main>section.video-hero,
 html.home-snap:root main>section.locations,
 html.home-snap:root main>section.services,
 html.home-snap:root .home-ending,
 html.home-snap:root body>.full-footer{height:auto;min-height:calc(100svh - var(--mobile-header-height,76px) - var(--wp-admin--admin-bar--height,0px));min-height:calc(100dvh - var(--mobile-header-height,76px) - var(--wp-admin--admin-bar--height,0px))}
 /* The opening screen also accounts for any initial staging/admin chrome. */
 html.home-snap:root main>section.video-hero{min-height:calc(100svh - var(--home-chrome,var(--mobile-header-height,76px)));min-height:calc(100dvh - var(--home-chrome,var(--mobile-header-height,76px)))}
}
@media(max-width:700px){
 .home-snap .video-hero{display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:0;padding:44px 24px 60px;min-height:calc(100svh - var(--home-chrome,120px));min-height:calc(100dvh - var(--home-chrome,120px));background:#193327;color:#fff;overflow:hidden}
 .home-snap .video-hero .hero-media{position:absolute;inset:0;z-index:-2;width:100%;height:100%;aspect-ratio:auto;margin:0;overflow:hidden}
 .video-hero .hero-media::after{background:linear-gradient(180deg,rgba(11,29,20,.45),rgba(11,29,20,.78) 40%,rgba(11,29,20,.87))}
 .home-snap .video-hero .hero-media video,.video-hero .hero-still{object-position:55% center}
 .home-snap .video-hero .intro{width:100%;max-width:550px;padding:0;align-self:center}
 .home-snap .video-hero h1{font-size:clamp(38px,10vw,50px);color:#fff;margin:15px 0 20px}
 .video-hero .intro .eyebrow{color:#e1ebd8}
 .home-snap .video-hero .intro p{font-size:17px;color:#f3f5ee}
 .video-hero .actions{gap:12px 18px}
 .video-hero .actions .button{background:#f2f4e9;color:#21442e;padding:13px 18px}
 .video-hero .actions .button:hover{background:#fff}
 .video-hero .actions .textlink{color:#fff}
 .video-hero .hero-video-toggle{right:14px;bottom:12px;min-height:44px;padding:10px 13px;font-size:12px}
 .video-hero a:focus-visible{outline-color:#fff}
}
@media(prefers-reduced-motion:reduce){.video-hero .hero-media video{transition:none}.video-hero:not(.video-user-play) .hero-media video{display:none}}
