/* Scoped first-view variants. All existing site styles remain unchanged. */
.fv-hero{position:relative;isolation:isolate;width:calc(100% - 64px);max-width:1600px;margin:20px auto 0;height:calc(100svh - 170px);min-height:560px;max-height:780px;background:#17324d;border-radius:28px;overflow:hidden;color:#fff}
.fv-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 18%;z-index:-2}
.fv-video .fv-media{object-position:50% 50%}
.fv-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,20,31,.58),rgba(7,20,31,.05) 78%),linear-gradient(0deg,rgba(7,20,31,.62),transparent 65%);z-index:-1}
.fv-copy{position:absolute;left:clamp(28px,4.5vw,72px);bottom:clamp(42px,5vw,76px);max-width:850px;padding-right:28px}
.fv-hero h1{font-family:var(--body);font-weight:700;font-size:clamp(40px,4.5vw,68px);line-height:1.06;letter-spacing:-.035em;text-transform:none;color:#fff;margin:0;text-shadow:0 2px 18px #0003}
.fv-hero p.fv-lead{font-family:var(--body);font-size:clamp(21px,2vw,30px);line-height:1.3;color:white;margin:20px 0 27px}
.fv-hero .button{background:#2265a0;color:white;border-color:transparent;min-height:54px;padding:16px 27px;gap:24px}
.fv-hero .button:hover{background:#174b79}
.fv-controls{position:absolute;right:28px;bottom:28px;display:flex;gap:12px;align-items:center;font-size:12px;color:#fff}
.fv-toggle{display:flex;align-items:center;justify-content:center;width:46px;height:46px;border:1px solid #ffffff80;border-radius:50%;color:#fff;background:#102636a6;cursor:pointer}
.fv-toggle svg{width:20px;height:20px;fill:currentColor}
.fv-toggle:hover{background:#17324d}.fv-toggle:focus-visible{outline:3px solid #fff;outline-offset:4px}
@media(max-width:800px){.fv-hero{width:calc(100% - 28px);margin-top:14px;border-radius:20px;height:calc(100svh - 200px);min-height:560px;max-height:740px}.fv-copy{left:24px;bottom:38px;padding-right:22px}.fv-hero h1{font-size:clamp(34px,7vw,52px);line-height:1.1}.fv-hero p.fv-lead{font-size:22px;margin:17px 0 24px}.fv-photo .fv-media{object-position:15% top}.fv-video .fv-media{object-position:52% center}.fv-shade{background:linear-gradient(0deg,rgba(7,20,31,.82),rgba(7,20,31,.07) 80%)}.fv-controls{right:18px;bottom:18px}.fv-controls span{display:none}.fv-video .fv-copy{bottom:88px}.fv-hero .button{font-size:14px;min-height:50px;padding:14px 20px}}
@media(prefers-reduced-motion:reduce){.fv-hero *{transition:none!important}}

/* Photo slideshow: the copy stays fixed; photos crossfade every four seconds. */
.fv-photo .fv-slide{opacity:0;transition:opacity 1s ease-in-out;pointer-events:none}
.fv-photo .fv-slide.is-active{opacity:1}
.fv-photo .fv-kids{object-position:center 12%}
.fv-photo .fv-group{object-position:center 42%}
.fv-dots{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:30px;background:#102636a6}
.fv-dot{position:relative;display:block;border:0;background:transparent;width:28px;height:28px;padding:0;cursor:pointer}
.fv-dot::after{content:"";position:absolute;inset:9px;border:1px solid #fff;border-radius:50%;background:transparent}
.fv-dot.is-active::after{background:#fff}
.fv-dot:focus-visible{outline:2px solid #fff;outline-offset:1px;border-radius:50%}
.fv-photo .fv-copy{bottom:90px}
@media(max-width:800px){.fv-photo .fv-copy{bottom:88px}.fv-photo .fv-kids,.fv-photo .fv-group{object-fit:contain;object-position:center top}.fv-photo .fv-kids{mask-image:linear-gradient(#000 65vw,transparent calc(100vw - 28px))}.fv-photo .fv-group{mask-image:linear-gradient(#000 40vw,transparent calc((100vw - 28px)*.715))}.fv-photo-controls{gap:8px}}
/* Compact photo hero: keep image dimensions below the source image width. */
.fv-hero.fv-photo{max-width:1040px;height:560px;min-height:0;max-height:none;margin-top:24px}
.fv-photo .fv-copy{left:44px;bottom:70px;padding-right:28px}
.fv-photo h1{font-size:48px;line-height:1.08}
.fv-photo p.fv-lead{font-size:24px;margin:18px 0 24px}
.fv-photo .fv-controls{right:24px;bottom:20px}
@media(max-width:800px){.fv-hero.fv-photo{height:520px;margin-top:14px}.fv-photo .fv-copy{left:24px;bottom:76px;padding-right:22px}.fv-photo h1{font-size:clamp(30px,6vw,40px)}.fv-photo p.fv-lead{font-size:20px;margin:15px 0 20px}.fv-photo .fv-controls{right:18px;bottom:16px}}
