/* Zavvion — panoramic hero and viewport-fit correction, 10 October 2026.
   This file is loaded LAST. No content is deleted and no page-wide CSS zoom is used.
   Complete, readable content wins over a fixed screen height on small/zoomed views. */
html.zvp-ready { --vp-screen:100svh; --vp-header:142px; --vp-gutter:clamp(22px,4vw,72px); scroll-padding-top:calc(var(--site-header-height,100px) + 18px); }
html.zvp-ready body.theme-constellation #main {margin:0!important;max-width:none!important;width:100%!important;}
html.zvp-ready body.theme-constellation #main>.shared-hero,
html.zvp-ready body.theme-constellation #main>.hw-hero {width:100%!important;max-width:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;position:relative;isolation:isolate;min-height:var(--vp-screen)!important;height:auto!important;max-height:none!important;background:#082450!important;overflow:hidden!important;color:white;}
html.zvp-ready body.theme-constellation .shared-hero .hero-grid {display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;grid-template-areas:'intro note'!important;align-items:center!important;column-gap:clamp(28px,4vw,70px)!important;row-gap:20px!important;width:100%!important;max-width:1600px!important;min-height:var(--vp-screen)!important;height:auto!important;margin:0 auto!important;padding:calc(var(--vp-header) + 28px) var(--vp-gutter) 90px!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-intro {align-self:center!important;max-width:none!important;min-width:0;width:100%;margin:0!important;}
html.zvp-ready body.theme-constellation .shared-hero h1 {font-size:clamp(36px,5.8vh,58px)!important;line-height:1.1!important;letter-spacing:-.04em!important;max-width:100%!important;margin:0 0 22px!important;color:white!important;text-wrap:initial!important;}
html.zvp-ready body.theme-constellation .shared-hero h1 em {color:#c4e4ff!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-lead {font-size:clamp(16px,1.9vh,18px)!important;line-height:1.62!important;max-width:58ch!important;margin:0!important;color:#f5f8fc!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-kicker {font-size:11px!important;line-height:1.5!important;margin-bottom:18px!important;}
html.zvp-ready body.theme-constellation .shared-hero .breadcrumbs {font-size:12px!important;line-height:1.4!important;margin-bottom:20px!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-note {grid-area:note!important;align-self:center!important;width:100%!important;max-width:440px!important;justify-self:end!important;margin:0!important;padding:clamp(20px,2.5vh,32px)!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-note h3 {font-size:clamp(21px,2.9vh,28px)!important;line-height:1.25!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-note p {font-size:16px!important;line-height:1.6!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-gallery,
html.zvp-ready body.theme-constellation .shared-hero .hero-backdrop,
html.zvp-ready body.theme-constellation .shared-hero .hero-scrim,
html.zvp-ready body.theme-constellation .shared-hero .hw-cinema-media {position:absolute!important;inset:0!important;width:100%!important;height:100%!important;transform:none!important;border:0!important;border-radius:0!important;max-width:none!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-photo-layer {position:absolute!important;inset:0!important;display:block!important;visibility:visible!important;opacity:0!important;transition:opacity 1.3s ease!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-photo-layer.is-active {opacity:1!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-image {height:100%!important;width:100%!important;object-fit:cover!important;border-radius:0!important;max-width:none!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-scrim {background:linear-gradient(90deg,rgba(4,17,31,.70),rgba(4,17,31,.27) 53%,rgba(4,17,31,.16)),linear-gradient(0deg,rgba(4,17,31,.45),transparent 36%)!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-lower {display:flex!important;position:absolute!important;left:var(--vp-gutter)!important;right:var(--vp-gutter)!important;width:auto!important;max-width:none!important;bottom:14px!important;margin:0!important;padding:12px 310px 0 0!important;min-height:52px;gap:12px;}
html.zvp-ready body.theme-constellation .shared-hero .hero-signature {display:none!important;}
html.zvp-ready:not(.zmt-active) body>.experience-tools {position:absolute!important;top:calc(var(--vp-hero-total,var(--vp-screen)) - 58px)!important;bottom:auto!important;right:var(--vp-gutter)!important;z-index:25!important;}
/* The photographic map keeps its original nodes and glass; only geometry changes. */
html.zvp-ready body.theme-constellation .shared-hero.hero-with-map .hero-grid {grid-template-columns:minmax(0,.95fr) minmax(0,1.25fr)!important;grid-template-areas:'intro map' 'detail map'!important;grid-template-rows:auto auto!important;row-gap:16px!important;align-content:center!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-intro {align-self:end!important;}
html.zvp-ready body.theme-constellation .hero-with-map h1 {font-size:clamp(34px,5.25vh,51px)!important;line-height:1.08!important;margin-bottom:16px!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-kicker {margin-bottom:12px!important;}
html.zvp-ready body.theme-constellation .hero-with-map .breadcrumbs {margin-bottom:12px!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-lead {font-size:16px!important;line-height:1.55!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-detail {display:block!important;grid-area:detail!important;align-self:start!important;max-width:100%!important;width:100%!important;padding:16px 20px!important;margin:0!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-detail h3 {font-size:19px!important;line-height:1.25!important;margin:10px 0 8px!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-detail p {font-size:14px!important;line-height:1.48!important;margin:0 0 6px!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-detail .focus-top {font-size:10px!important;line-height:1.4!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-detail a {font-size:13px!important;line-height:1.4!important;min-height:36px!important;padding:8px 0!important;margin:0!important;}
html.zvp-ready body.theme-constellation .hero-with-map .hero-network {display:block!important;grid-area:map!important;width:100%!important;max-width:none!important;min-width:0!important;align-self:center!important;justify-self:stretch!important;margin:0!important;}
html.zvp-ready body.theme-constellation .hero-map-eyebrow {display:flex!important;font-size:10px!important;line-height:1.4!important;padding-bottom:10px!important;margin:0 0 8px!important;}
html.zvp-ready body.theme-constellation .zvp-map {position:relative!important;display:block!important;width:100%!important;height:var(--vp-map-h)!important;min-height:0!important;max-height:none!important;padding:0!important;margin:0 auto!important;background:none!important;}
html.zvp-ready body.theme-constellation .zvp-map .map-nodes {display:block!important;position:absolute!important;inset:0!important;padding:0!important;margin:0!important;}
html.zvp-ready body.theme-constellation .zvp-map .map-nodes:before,
html.zvp-ready body.theme-constellation .zvp-map .map-node:before {display:none!important;content:none!important;}
html.zvp-ready body.theme-constellation .zvp-map .map-node,
html.zvp-ready body.theme-constellation .network--expanded.zvp-map .map-node:last-child {position:absolute!important;inset:auto!important;left:var(--vp-x)!important;top:var(--vp-y)!important;transform:translate(-50%,-50%)!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;width:var(--vp-node)!important;height:var(--vp-node)!important;min-height:0!important;min-width:0!important;padding:6px 7px!important;gap:0!important;border:0!important;border-radius:50%!important;grid-column:auto!important;margin:0!important;}
html.zvp-ready body.theme-constellation .zvp-map .node-glass {display:block!important;position:absolute!important;inset:0!important;border-radius:50%!important;mask-image:none!important;-webkit-mask-image:none!important;background:linear-gradient(150deg,#ffffff13,#ffffff04),rgba(5,22,39,.12)!important;backdrop-filter:blur(4px)!important;-webkit-backdrop-filter:blur(4px)!important;border:1px solid #d8edff55!important;box-shadow:0 5px 18px #00152c16!important;}
html.zvp-ready body.theme-constellation .zvp-map .node-photo {width:var(--vp-photo)!important;height:var(--vp-photo)!important;flex:none!important;padding:2px!important;margin:0 auto 5px!important;}
html.zvp-ready body.theme-constellation .zvp-map .node-photo:after {inset:-3px!important;}
html.zvp-ready body.theme-constellation .zvp-map .node-name {display:block!important;font-size:var(--vp-node-type)!important;line-height:1.14!important;font-weight:600!important;max-width:100%!important;text-align:center!important;margin:0!important;transform:none!important;overflow-wrap:normal!important;word-break:normal!important;color:white!important;text-shadow:0 1px 5px #000b!important;}
html.zvp-ready body.theme-constellation .zvp-map .node-number {display:block!important;font-size:8px!important;line-height:1.2!important;margin:4px 0 0!important;}
html.zvp-ready body.theme-constellation .zvp-map .network-centre {position:absolute!important;inset:auto!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:var(--vp-hub)!important;height:var(--vp-hub)!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;padding:5px!important;}
html.zvp-ready body.theme-constellation .zvp-map .network-centre strong {font-size:var(--vp-hub-type)!important;line-height:1.05!important;margin:8px 0!important;}
html.zvp-ready body.theme-constellation .zvp-map .network-centre small,
html.zvp-ready body.theme-constellation .zvp-map .network-centre>span {font-size:8px!important;line-height:1.3!important;}
html.zvp-ready body.theme-constellation .zvp-map .network-rings {display:block!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;width:67%!important;height:65%!important;}
html.zvp-ready body.theme-constellation .zvp-map .network-links {display:block!important;position:absolute!important;inset:0!important;width:100%!important;height:100%!important;}
html.zvp-ready body.theme-constellation .hero-network .network-caption {display:block!important;margin:8px 0 0!important;font-size:11px!important;line-height:1.4!important;max-width:none!important;}
/* Preserve the actual homepage orbit. Its whole stage is sized to the available space. */
html.zvp-ready body.theme-constellation .hero-cinematic .hero-grid {grid-template-areas:'intro stage'!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-stage {display:block!important;grid-area:stage!important;max-width:700px!important;width:100%!important;margin:0 auto!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-viewport {height:var(--vp-orbit-h,440px)!important;min-height:0!important;max-height:none!important;margin-top:0!important;overflow:visible!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card.is-front {width:300px!important;min-height:0!important;padding:17px 20px!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card .lens-name {font-size:18px!important;line-height:1.2!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card .lens-headline {font-size:14px!important;line-height:1.3!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card .lens-copy {font-size:13.5px!important;line-height:1.45!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-controls {padding-top:8px!important;gap:8px!important;}
html.zvp-ready body.theme-constellation .hero-cinematic .orbit-hint {margin-top:6px!important;line-height:1.35!important;font-size:11px!important;}
/* How We Work uses the same viewport policy, without choosing a tagline animation. */
html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-hero-layout {min-height:var(--vp-screen)!important;height:auto!important;width:calc(100% - var(--vp-gutter)*2)!important;max-width:1456px!important;margin:0 auto!important;padding-top:calc(var(--vp-header) + 40px)!important;padding-bottom:110px!important;}
html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-cinema-bottom {bottom:18px!important;}
html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-hero #hw-title {font-size:clamp(36px,5.8vh,58px)!important;}
html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-lead {font-size:17px!important;line-height:1.6!important;}
@media(min-width:1100px) and (max-height:820px){
 html.zvp-ready:not(.zmt-active) body .site-nav.z-glass-header .nav-inner {min-height:78px!important;padding-block:10px!important;}
 html.zvp-ready:not(.zmt-active) body .site-nav .brand-slot {width:220px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-grid {padding-top:calc(var(--vp-header) + 20px)!important;padding-bottom:76px!important;}
 html.zvp-ready body.theme-constellation .shared-hero h1 {font-size:40px!important;margin-bottom:18px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map h1 {font-size:36px!important;margin-bottom:12px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail {padding:12px 16px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail h3 {font-size:18px!important;margin-top:7px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail p {font-size:13.5px!important;}
 html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-hero #hw-title {font-size:44px!important;}
}
/* Phones, tablets and unusually shallow windows use normal reading flow.
   Never shrink the whole page or hide copy just to claim one-screen compliance. */
@media(max-width:1099px), (max-height:599px){
 html.zvp-ready body.theme-constellation .shared-hero .hero-grid,
 html.zvp-ready body.theme-constellation .shared-hero.hero-with-map .hero-grid,
 html.zvp-ready body.theme-constellation .shared-hero.hero-cinematic .hero-grid {display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:center!important;gap:28px!important;min-height:var(--vp-screen)!important;padding:calc(var(--vp-header) + 28px) 22px 100px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-intro {align-self:stretch!important;max-width:720px!important;}
 html.zvp-ready body.theme-constellation .shared-hero h1 {font-size:clamp(30px,7.4vw,44px)!important;line-height:1.12!important;max-width:100%!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-lead {font-size:16px!important;line-height:1.6!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-note {justify-self:auto!important;align-self:stretch!important;max-width:680px!important;margin:2px 0 0!important;padding:22px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-network {margin:0 auto!important;max-width:760px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail {margin:0 auto!important;max-width:680px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-lower {padding:9px 0 0!important;bottom:16px!important;left:22px!important;right:22px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .photo-controls {display:flex!important;flex-wrap:wrap!important;gap:10px!important;width:100%!important;}
 html.zvp-ready body.theme-constellation .shared-hero .photo-scene {min-width:0!important;flex:1;}
 html.zvp-ready body.theme-constellation .shared-hero .scene-label {display:none!important;}
 html.zvp-ready body.theme-constellation .shared-hero .photo-selectors {margin-left:auto!important;}
 html.zvp-ready body.theme-constellation .shared-hero .photo-arrows {gap:5px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .photo-arrows button {min-width:36px!important;width:36px!important;min-height:36px!important;height:36px!important;}
 html.zvp-ready body.theme-constellation .hero-cinematic .orbit-stage {margin:0 auto!important;}
 html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card.is-front {width:280px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-scrim {background:linear-gradient(90deg,rgba(4,17,31,.65),rgba(4,17,31,.24)),linear-gradient(0deg,rgba(4,17,31,.50),transparent 55%)!important;}
 html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-hero-layout {padding-top:calc(var(--vp-header) + 48px)!important;padding-bottom:138px!important;min-height:var(--vp-screen)!important;}
 html.zvp-ready body.theme-constellation #main.hw-page[data-hw-hero-option] .hw-hero #hw-title {font-size:clamp(30px,7.8vw,44px)!important;}
}
@media (min-width:700px) and (max-width:1099px){
 html.zvp-ready body.theme-constellation .shared-hero .hero-grid,
 html.zvp-ready body.theme-constellation .shared-hero.hero-with-map .hero-grid,
 html.zvp-ready body.theme-constellation .shared-hero.hero-cinematic .hero-grid {padding-inline:36px!important;}
 html.zvp-ready body.theme-constellation .shared-hero .hero-network {max-width:760px!important;}
}
@media(prefers-reduced-motion:reduce){
 html.zvp-ready body.theme-constellation .hero-photo-layer {transition:none!important;}
}
/* Readable fitting at the smallest tested widths, without dropping labels. */
html.zvp-ready body.theme-constellation .zvp-map .network-centre>span {white-space:nowrap!important;max-width:none!important;letter-spacing:0!important;}
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .map-node,
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .map-node:last-child {padding:3px 5px!important;}
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .node-photo {margin-bottom:2px!important;}
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .node-name {line-height:1.08!important;}
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .node-number {font-size:7px!important;margin-top:2px!important;}
html.zvp-ready body.theme-constellation .shared-hero .hero-detail {min-height:0!important;}
@media(min-width:1100px) and (max-height:700px){
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail h3 {font-size:17px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail p {font-size:13px!important;line-height:1.4!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-detail {padding:11px 16px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .breadcrumbs {margin-bottom:8px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map .hero-kicker {margin-bottom:8px!important;}
 html.zvp-ready body.theme-constellation .hero-with-map h1 {font-size:34px!important;}
 html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card.is-front {width:322px!important;padding:14px 18px!important;}
 html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card .lens-name {font-size:17px!important;}
 html.zvp-ready body.theme-constellation .hero-cinematic .orbit-card .lens-copy {font-size:13px!important;line-height:1.4!important;}
}
html.zvp-ready body.theme-constellation .zvp-map.zvp-small-nodes .node-number {margin-top:0!important;}
@media(min-width:1100px) and (max-height:820px){
 html.zvp-ready:not(.zmt-active) .z-contact-inner {display:flex!important;justify-content:flex-end!important;align-items:center!important;min-height:32px!important;gap:18px!important;padding-block:6px!important;}
 html.zvp-ready:not(.zmt-active) .z-contact-links {display:flex!important;flex-wrap:nowrap!important;gap:20px!important;}
 html.zvp-ready:not(.zmt-active) .z-contact-links a,
 html.zvp-ready:not(.zmt-active) .z-contact-caption {font-size:12px!important;line-height:1.5!important;white-space:nowrap!important;}
}
@media(min-width:1100px) and (max-height:820px){
 html.zvp-ready:not(.zmt-active) .z-contact-inner {flex-direction:row!important;}
 html.zvp-ready:not(.zmt-active) .z-contact-links {width:auto!important;flex:0 1 auto!important;}
 html.zvp-ready:not(.zmt-active) .z-contact-links>a {min-height:22px!important;padding-block:1px!important;}
}
