/* Full-bleed photographic scenes with continuous camera movement. */
.hero{min-height:690px;isolation:isolate;--scene-duration:8500ms;--fade-duration:1600ms}
.hero-slides,.hero-slide{position:absolute;inset:0;overflow:hidden}
.hero-slide{opacity:0;transition:opacity var(--fade-duration) cubic-bezier(.4,0,.2,1);z-index:0;pointer-events:none}
.hero-slide.is-leaving{opacity:0;z-index:1}
.hero-slide.is-active{opacity:1;z-index:2}
.hero-slide img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:63% 53%;transform:scale(1.06);will-change:transform}
.hero-slide.is-active img,.hero-slide.is-leaving img{animation:cinematic-drift 12s linear both}
.hero-slide:nth-child(2n).is-active img,.hero-slide:nth-child(2n).is-leaving img{animation-name:cinematic-pullback}
.hero-slide:nth-child(3).is-active img,.hero-slide:nth-child(3).is-leaving img{animation-name:cinematic-lateral}
.hero-slide:nth-child(4) img{object-position:66% center}
.hero-shade{z-index:3;pointer-events:none;background:linear-gradient(90deg,#031c30d9 0%,#031c307a 41%,#031c3008 80%),linear-gradient(0deg,#031c30b8,transparent 44%)}
.hero-content{z-index:4;padding-bottom:155px}
.hero-content .eyebrow{animation:cinema-copy-in .9s .1s both}
.hero-content h1{animation:cinema-copy-in 1.15s .25s both}
.hero-content>p{animation:cinema-copy-in 1.15s .4s both}
.hero-buttons{animation:cinema-copy-in 1.15s .55s both}
.hero-bottom{z-index:4}
.cinema-controls{position:absolute;z-index:5;right:5%;bottom:91px;width:365px;color:#fff;animation:cinema-copy-in 1s .7s both}
.scene-caption{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}
.scene-kicker{font-size:7px;font-weight:550;letter-spacing:1.7px;color:#d1dfe6}
#scene-title{font-size:10px;font-weight:450;letter-spacing:.2px}
.scene-navigation{display:flex;align-items:center;gap:18px;border-top:1px solid #ffffff38;padding-top:15px}
.scene-dots{display:flex;flex:1;gap:6px;align-items:center;min-width:0}
.scene-dot{height:30px;min-width:12px;flex:1;background:none;position:relative;padding:0;overflow:hidden;border-radius:0}
.scene-dot:before,.scene-progress{content:'';position:absolute;top:14px;left:0;right:0;height:2px;background:#ffffff42}
.scene-progress{background:var(--yellow);transform:scaleX(0);transform-origin:left}
.scene-dot.is-current .scene-progress{animation:scene-fill var(--scene-duration) linear forwards}
.scene-dot:hover:before{background:#ffffff90}
.scene-tools{display:flex;align-items:center;gap:7px}
.scene-counter{display:flex;gap:5px;align-items:center;white-space:nowrap;font-size:9px;font-variant-numeric:tabular-nums;margin-right:7px}
.scene-counter b{font-weight:500;color:var(--yellow)}
.scene-counter>span{color:#c1cdd6;font-size:8px}
.scene-control{width:30px;height:30px;border:1px solid #ffffff45;background:#0b304a15;border-radius:50%;font-size:16px;display:flex;align-items:center;justify-content:center;color:#fff;padding:0;transition:background .25s,border-color .25s,transform .25s}
.scene-control:hover{background:#ffffff20;border-color:#ffffffa0;transform:translateY(-2px)}
.pause-control{margin-left:2px}
.pause-control svg{width:15px;height:15px;stroke-width:1.6}
.hero.has-play-icon #pause-icon{fill:currentColor;stroke-width:.7}
.hero.is-paused .hero-slide img,.hero.is-paused .scene-progress{animation-play-state:paused}
.service-card:hover .card-shade{opacity:.86}
.card-shade{transition:opacity .8s}
.office-tabs button{transition:background .3s,transform .3s}
.office-tabs button:hover{transform:translateX(4px)}
.route-list button{transition:background .3s,color .3s,border-color .3s,transform .3s}
.route-list button:hover{transform:translateY(-2px)}
.hero-secondary span{transition:transform .3s}
.hero-secondary:hover span{transform:translateY(4px)}
.services-grid .reveal:nth-child(2),.steps .reveal:nth-child(2){transition-delay:100ms}
.steps .reveal:nth-child(3){transition-delay:180ms}
.image-label{transition:transform .5s}
.about-image:hover .image-label{transform:translateY(-4px)}
@keyframes cinematic-drift{from{transform:scale(1.015) translate3d(0,0,0)}to{transform:scale(1.135) translate3d(-1.1%,-.6%,0)}}
@keyframes cinematic-pullback{from{transform:scale(1.14) translate3d(-1%,0,0)}to{transform:scale(1.025) translate3d(.4%,0,0)}}
@keyframes cinematic-lateral{from{transform:scale(1.1) translate3d(1.6%,.5%,0)}to{transform:scale(1.15) translate3d(-1.6%,-.5%,0)}}
@keyframes scene-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes cinema-copy-in{from{opacity:0;transform:translate3d(0,20px,0);filter:blur(3px)}to{opacity:1;transform:translate3d(0,0,0);filter:blur(0)}}
@media(max-width:1150px){.hero{min-height:680px}.cinema-controls{width:315px;bottom:88px}.scene-caption{gap:8px}.scene-kicker{font-size:6px;letter-spacing:1px}#scene-title{font-size:9px}.scene-navigation{gap:12px}.scene-tools{gap:5px}.scene-control{width:28px;height:28px}.hero-content>p{max-width:350px}}
@media(max-width:760px){.hero{height:740px;min-height:740px}.hero-content{padding:44px 24px 160px}.hero-slide img{object-position:63% center}.hero-slide:nth-child(4) img{object-position:70% center}.hero-shade{background:linear-gradient(90deg,#031c30bf,#031c302e),linear-gradient(0deg,#031c30e0,transparent 60%)}.hero-content>p{max-width:300px}.hero-buttons{gap:22px}.cinema-controls{left:24px;right:24px;bottom:81px;width:auto;max-width:420px}.scene-caption{margin-bottom:12px}.scene-kicker{font-size:6px;letter-spacing:1.5px}#scene-title{font-size:9px}.scene-navigation{padding-top:11px;gap:18px}.scene-dots{gap:7px}.scene-control{width:31px;height:31px}.scene-tools{gap:7px}.scene-counter{font-size:9px;margin-right:3px}.hero-bottom{bottom:27px}.hero-bottom>a{font-size:0}.hero-bottom>a span{font-size:18px}}
@media(max-width:370px){.hero-content{padding-left:20px;padding-right:20px}.cinema-controls{left:20px;right:20px}.scene-caption{gap:5px}.scene-kicker{font-size:5px}.scene-tools{gap:4px}.scene-navigation{gap:12px}.scene-control{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.hero-slide{transition:none}.hero-slide img,.hero-content .eyebrow,.hero-content h1,.hero-content>p,.hero-buttons,.cinema-controls,.scene-progress{animation:none!important;transform:none;filter:none}.scene-dot.is-current .scene-progress{transform:scaleX(1)}.hero-slide img{will-change:auto}}
