/* A modest radius and a consistent contour for the site's interactive controls. */
.button,
.nav-contact,
.core-toggle,
.motion-control,
.close-image,
.gallery-controls button,
.gallery-stage-controls button,
.gallery-rail-controls button,
.application-detail-nav button{
 border-radius:12px;
 border:1px solid transparent;
 min-height:48px;
 font-family:inherit;
 transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.button{padding:17px 23px;gap:24px;line-height:1.4;font-weight:500;box-shadow:0 2px 0 #00000009}
.nav-contact{border-color:#ffffff66;background:#ffffff05}
.button::after{content:'↗';font-size:20px;line-height:1;flex-shrink:0;font-weight:400}
.button:has(>span)::after{content:none}
.button.dark{background:#192a35;border-color:#192a35;color:#fff}
.button.dark:hover{background:#2b4655;border-color:#526d79;box-shadow:0 5px 16px #10212e1a}
.button:focus-visible{outline:3px solid #8bb6c9;outline-offset:4px}
.hero-copy .actions .button{
 background:#f4f5f0;color:#182a35;border:1px solid #ffffffc4;border-radius:12px;
 padding:16px 22px;min-height:54px;font-size:15px;gap:28px;
 box-shadow:0 4px 20px #00000014;
}
.hero-copy .actions .button:hover{background:#fff;border-color:#fff;box-shadow:0 5px 24px #00000026}
.hero-copy .actions .button>span{border:0;border-radius:0;background:none;width:auto;height:auto;flex:0 0 auto;font-size:20px;transform:none}
.hero-copy .actions .button:hover>span{background:none;transform:none}
.core-toggle{border-color:#ffffff85;box-shadow:0 2px 8px #00000016}
.gallery-controls button,.gallery-stage-controls button,.gallery-rail-controls button,.application-detail-nav button{border-color:#8498a4;border-radius:11px}
.request-options span{border-radius:10px}
.brief-panel textarea,.brief-panel input[type=text]{border-radius:10px}
/* The opening images are composited as layers; neither geometry nor layout animates. */
html .hero.scroll-sequence .full-frame{will-change:opacity;contain:paint;backface-visibility:hidden}
html .hero.scroll-sequence .full-frame>img{display:block;animation:none!important;transition:none!important;transform:none!important}
@media(max-width:800px){
 html .hero-copy .actions{gap:14px!important;align-items:flex-start}
 html .hero-copy .actions .button{padding:14px 19px!important;min-height:52px!important;gap:22px;border:1px solid #ffffffc4;font-size:14px!important}
 .service-page header .menu-toggle:not([hidden]){display:flex;justify-content:center;align-items:center;flex:0 0 48px;width:48px;min-width:48px;height:48px;padding:0;border:1px solid #ffffff4a;border-radius:12px;background:#ffffff06;color:#fff}
 .service-page header .menu-icon{display:block;position:relative;width:22px;height:16px}
 .service-page header .menu-icon::before,.service-page header .menu-icon::after{content:'';position:absolute;left:0;width:22px;height:1.5px;background:currentColor;transition:transform .2s ease,top .2s ease}
 .service-page header .menu-icon::before{top:4px}
 .service-page header .menu-icon::after{top:12px}
 .service-page header .menu-toggle[aria-expanded=true] .menu-icon::before{top:8px;transform:rotate(45deg)}
 .service-page header .menu-toggle[aria-expanded=true] .menu-icon::after{top:8px;transform:rotate(-45deg)}
}
@media(prefers-reduced-motion:reduce){
 .button,.nav-contact,.core-toggle,.motion-control,.close-image,.gallery-controls button,.gallery-stage-controls button,.gallery-rail-controls button,.application-detail-nav button{transition:none}
 html .hero.scroll-sequence .full-frame{will-change:auto}
}
