/* Shared Hero geometry. Desktop and mobile adjustments live in their own scoped files. */
.journey{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.video-journey{height:100vh;height:100svh}
.video-journey .stage{position:relative;top:0;height:100%;overflow:hidden;isolation:isolate;background:var(--navy)}
.video-journey .canvas,.video-journey .shade{position:absolute;inset:0}
.video-journey .canvas{z-index:0;background-color:var(--navy);background-size:cover!important;background-position:center!important;background-repeat:no-repeat}
.video-journey .journey-frames,.video-journey .journey-video,.video-journey .journey-poster,.video-journey .journey-frame-hold{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 50%;transform:none;transition:none}
.video-journey .journey-video{display:block;opacity:0;background:var(--navy)}
.video-journey .journey-video.is-visible{opacity:1}
.video-journey .journey-poster{pointer-events:none;z-index:3}
.video-journey .journey-frame-hold{z-index:3;pointer-events:none;background:var(--navy)}
.video-journey .journey-frame-hold[hidden],.video-journey .journey-poster[hidden]{display:none}
.video-journey .shade{z-index:1;pointer-events:none;background:linear-gradient(90deg,#061b3d80,transparent 58%),linear-gradient(0deg,#061b3d40,transparent 35%)}
.video-journey .hero-copy{position:absolute;z-index:2;left:max(var(--gutter),calc((100vw - var(--container))/2 + var(--gutter)));width:min(62vw,1040px);isolation:isolate}
.video-journey .hero-copy h1{font-family:var(--font);color:#fff;font-weight:800;letter-spacing:-.025em;text-shadow:0 2px 5px #061b3dcc,0 0 16px #061b3d80}
.video-journey .hero-copy p{color:#fff;font-weight:500;text-shadow:0 1px 4px #061b3dcc,0 0 12px #061b3d66}
.video-journey .hero-copy .chapter,.video-journey .hero-copy .eyebrow{display:none}
.video-journey .hero-actions{display:flex;flex-wrap:wrap;gap:12px}
.video-journey .hero-actions .btn{font-weight:700;line-height:1.3;white-space:normal}
.video-journey .btn--ghost-light{color:#fff;background:#061b3d33;border-color:#ffffffb3;text-shadow:0 1px 3px #061b3d99}
.video-journey .btn--ghost-light:hover{background:#061b3d66;border-color:#fff}
.hero-bypass{display:inline-flex;align-items:center;min-height:36px;margin-top:12px;font-size:13px;font-weight:600;color:#fff;text-decoration:underline;text-underline-offset:4px;text-shadow:0 1px 4px #061b3dbb}
.hero-bypass:hover{color:#fff;text-decoration-thickness:2px}
.hero-bypass:focus-visible{outline:2px solid #fff;outline-offset:5px;border-radius:3px}
.video-journey[data-scene="0"] .hero-bypass{display:none}
.video-journey .journey-controls,.video-journey .model-note,.video-journey .scroll-cue,.video-journey .progress{display:none}
.journey.video-journey.scroll-scrub-journey{height:calc(100vh + var(--journey-scroll-distance,7000px));height:calc(100svh + var(--journey-scroll-distance,7000px));overflow:visible}
.video-journey.scroll-scrub-journey .stage{position:sticky;top:0;height:100vh;height:100svh}
.video-journey .scrub-opt-in{position:absolute;right:4vw;bottom:32px;z-index:5;padding:12px 18px;background:var(--brand);border:1px solid #ffffff80;border-radius:8px;color:#fff}
.video-journey .scrub-opt-in[hidden]{display:none}
.journey.video-journey.is-reduced-motion{height:100vh;height:100svh}
.video-journey.is-reduced-motion .stage{position:relative}
/* Contextual service marks share the exact colours of the service pages. */
.service-hotspots{position:absolute;inset:0;z-index:4;pointer-events:none;color:white}
.service-hotspots[hidden]{display:none}
.service-hotspot{position:absolute;inset:0;pointer-events:none;animation:hotspot-reveal .35s ease both}
.hotspot-connector{position:absolute;inset:0;width:100%;height:100%;overflow:hidden;pointer-events:none}
.hotspot-connector[hidden],.hotspot-dot[hidden]{display:none}
.hotspot-connector path{fill:none;stroke:var(--service-color);stroke-width:1.6;filter:drop-shadow(0 0 3px var(--service-color))}
.hotspot-dot{position:absolute;width:13px;height:13px;border:2px solid white;background:var(--service-color);border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 4px color-mix(in srgb,var(--service-color) 18%,transparent),0 0 12px var(--service-color)}
.hotspot-label{position:absolute;pointer-events:auto;display:block;width:max-content;max-width:250px;color:#fff;background:#061b3ded;border:1px solid var(--service-color);border-radius:7px;padding:7px 11px;font-size:12px;font-weight:600;line-height:1.35;box-shadow:0 2px 10px #0002}
.hotspot-label:hover,.hotspot-label:focus-visible{color:#fff;background:var(--service-color)}
@keyframes hotspot-reveal{from{opacity:0}to{opacity:1}}
@media(max-width:750px){.hotspot-label{font-size:11px;padding:6px 9px;max-width:min(205px,calc(100vw - 32px))}.hotspot-dot{width:11px;height:11px}.hotspot-connector path{stroke-width:1.2}}
@media(prefers-reduced-motion:reduce){.service-hotspot{animation:none}}

.service-hotspot[hidden]{display:none}


.service-hotspot[hidden]{display:none}
.hotspot-label{font-family:var(--font);font-size:13px;line-height:1.4;font-weight:600;background:var(--navy);padding:8px 12px}
.hotspot-label:hover,.hotspot-label:focus-visible{color:#fff;background:var(--navy-800);border-color:var(--service-color);box-shadow:0 0 0 1px var(--service-color)}
@media(min-width:751px){.video-journey[data-scene="5"] .hero-copy{left:max(20px,calc((100vw - var(--container))/2 + var(--gutter) - 40px))}}
.site-header--hero-overlay{position:fixed;left:50%;transform:translateX(-50%);margin:0}

.video-journey .journey-frames{display:block;pointer-events:none}
html.hero-scroll-active,html.hero-scroll-active body{overscroll-behavior-y:none}
