html,body{overflow-x:clip}
@media(max-width:900px){.brand img{width:150px;height:64px}}
.visual.photo{width:100%;height:480px;object-fit:cover;display:block;background:#dbeafb}
.hero .visual.photo{object-position:right center}
.visual.photo:before,.visual.photo:after{display:none}
.service-image{display:block;width:100%;height:220px;object-fit:cover;border-radius:16px;margin:1rem 0 1.25rem;background:#dbeafb}
.service-image-pair{display:grid;grid-template-columns:1fr 1fr;gap:.65rem;margin-top:1rem}
.service-image-pair .service-image{height:160px;margin:0}
img.project-art{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;background:#dbeafb}
.modal-project-image{display:block;width:100%;max-height:360px;object-fit:cover;border-radius:14px;margin:1rem 0}
@media(max-width:900px){.visual.photo{height:350px}}
@media(max-width:600px){.service-image{height:190px}.service-image-pair{grid-template-columns:1fr}.service-image-pair .service-image{height:180px}.visual.photo{height:300px;min-height:300px}}

/* Production mobile navigation and floating contact controls. */
.menu-toggle{width:48px;height:48px;padding:0;place-items:center;font-size:1.55rem;line-height:1;cursor:pointer}
.float-actions .wa svg{width:27px;height:27px;display:block;fill:currentColor}
@media(max-width:900px){
  .site-header{backdrop-filter:none;-webkit-backdrop-filter:none}
  .menu-toggle{display:grid;position:relative;z-index:103}
  .nav{top:72px;right:0;bottom:0;left:auto;width:min(86vw,380px);padding:2rem 1.5rem 6rem;gap:.35rem;overflow-y:auto;overscroll-behavior:contain;visibility:hidden;pointer-events:none;transform:translateX(105%);transition:transform .25s ease,visibility .25s ease;z-index:102}
  .nav.open{visibility:visible;pointer-events:auto;transform:translateX(0)}
  .nav a{display:block;padding:.85rem .25rem;border-bottom:1px solid var(--line);font-size:1rem}
  .nav .button{margin-top:1rem;padding:.9rem 1.1rem;border-bottom:0}
  body.menu-open:after{content:"";position:fixed;inset:72px 0 0;background:rgba(4,20,47,.58);z-index:99}
}
@media(max-width:600px){.nav{width:min(90vw,360px);left:auto}}

/* Homepage hero slider. */
.hero-slider{position:relative;background:var(--navy);color:#fff;overflow:hidden}
.hero-slide{display:none;min-height:680px;position:relative;isolation:isolate}
.hero-slide.is-active{display:grid;align-items:center}
.hero-slide:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,20,47,.96) 0%,rgba(7,31,74,.88) 43%,rgba(7,31,74,.28) 72%,rgba(7,31,74,.08) 100%);z-index:-1}
.hero-slide-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-slide-content{width:min(calc(100% - 40px),var(--max));margin:auto;padding:7rem 0 9rem}
.hero-slide-copy{max-width:690px}
.hero-slide h1{color:#fff;font-size:clamp(2.8rem,5.8vw,5.2rem)}
.hero-slide p{max-width:650px;color:#dce8f8;font-size:1.08rem}
.hero-controls{position:absolute;left:50%;bottom:2.2rem;translate:-50% 0;width:min(calc(100% - 40px),var(--max));display:flex;align-items:center;justify-content:space-between;z-index:4}
.hero-arrows{display:flex;gap:.6rem}
.hero-arrow{width:48px;height:48px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:rgba(4,20,47,.65);color:#fff;font-size:1.35rem;cursor:pointer}
.hero-arrow:hover{background:var(--amber);color:#111;border-color:var(--amber)}
.hero-dots{display:flex;gap:.55rem}
.hero-dot{width:11px;height:11px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.48);cursor:pointer}
.hero-dot.is-active{width:34px;border-radius:999px;background:var(--amber)}
@media(max-width:900px){.hero-slide{min-height:640px}.hero-slide:before{background:linear-gradient(90deg,rgba(4,20,47,.95),rgba(7,31,74,.64))}.hero-slide-content{padding:6rem 0 8rem}}
@media(max-width:600px){.hero-slide{min-height:620px}.hero-slide:before{background:linear-gradient(180deg,rgba(4,20,47,.9),rgba(4,20,47,.76))}.hero-slide-content{width:min(calc(100% - 28px),var(--max));padding:4.5rem 0 7.5rem}.hero-slide h1{font-size:2.75rem}.hero-slide p{font-size:1rem}.hero-controls{width:calc(100% - 28px);bottom:1.4rem}.hero-arrow{width:44px;height:44px}}
