/* Continuous header backing covers the top edge, including safe-area insets. */
body[data-home-runtime] .site-header { inset:-1px 0 auto; padding-top:calc(1px + env(safe-area-inset-top,0px)); background:transparent; border:0; isolation:isolate; }
body[data-home-runtime] .site-header::before { content:""; position:absolute; inset:0 0 -80px; z-index:-1; pointer-events:none; background:linear-gradient(to bottom,#000 0%,#000 12%,rgb(0 0 0 / .97) 28%,rgb(0 0 0 / .83) 46%,rgb(0 0 0 / .56) 64%,rgb(0 0 0 / .25) 81%,rgb(0 0 0 / .07) 93%,transparent 100%); }
body[data-home-runtime] .home-service-grid { container-type:inline-size; display:grid; grid-template-columns:.8fr 1.12fr .98fr 1.24fr; gap:clamp(6px,1.6vw,24px); margin-block:32px; padding:28px 0; }
body[data-home-runtime] .home-service-grid .homepage-menu-link { display:flex; justify-content:center; min-width:0; width:100%; max-width:none; white-space:nowrap; overflow-wrap:normal; padding:12px 0; font-size:clamp(.625rem,3.1cqi,2.75rem); transform-origin:center; }
body[data-home-runtime] .home-service-grid .homepage-menu-link > span:first-child,
body[data-home-runtime] .home-service-grid .homepage-menu-link:is(:hover,:focus-visible,.is-hovered) > span:first-child { font-variation-settings:'wght' 500,'opsz' 32; white-space:nowrap; }
body[data-home-runtime] .home-service-grid .homepage-menu-link:is(:hover,:focus-visible,.is-hovered) { transform:scale(1.06); }
.home-footer .footer-primary { display:flex; align-items:center; flex-wrap:nowrap; gap:clamp(12px,2vw,32px); }
.home-footer .footer-primary p { margin:0; font-size:clamp(.625rem,1.05vw,.875rem); }
.home-footer .motion-control { margin-left:auto; flex:none; font-size:clamp(.625rem,1vw,.8125rem); white-space:nowrap; }
.home-footer .footer-links { display:flex; flex-wrap:nowrap; align-items:center; gap:clamp(12px,1.7vw,28px); overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; padding-bottom:8px; }
.home-footer .footer-links a { flex:none; white-space:nowrap; font-size:clamp(.6875rem,1.05vw,.875rem); letter-spacing:-.025em; }
.inner-page .section-navigation-inner { padding-block:8px; }
.inner-page .service-process { margin-top:clamp(72px,9vw,140px); }
.offer-details .rates-scroll { margin-bottom:clamp(40px,5vw,72px); }
.contact-response { margin-top:clamp(56px,6vw,96px); }
form[data-enquiry] .inset-field { position:relative; margin-bottom:20px; }
form[data-enquiry] .inset-field > label { position:absolute; top:13px; left:16px; z-index:1; margin:0; padding:0; max-width:calc(100% - 32px); pointer-events:none; font-size:.8125rem; line-height:1.5; color:#a9ada7; }
form[data-enquiry] .inset-field > :is(input,textarea,select) { width:100%; min-height:72px; padding:32px 16px 12px; margin:0; border:1px solid #53564f; border-radius:2px; background:rgb(17 17 17 / .6); color:#f0f0f0; font:inherit; box-sizing:border-box; }
form[data-enquiry] .inset-field > textarea { min-height:180px; resize:vertical; }
form[data-enquiry] .inset-field > :is(input,textarea,select):focus { outline:0; border-color:#ddd9cd; box-shadow:0 0 0 1px #ddd9cd; }
form[data-enquiry] .form-row { gap:20px; }
form[data-enquiry] .form-field-error:empty,form[data-enquiry] [data-turnstile-status]:empty { display:none; }
form[data-enquiry] [data-turnstile-status] { font-size:.8125rem; }
.approved-selection[hidden] { display:none!important; }
/* Newly decoded cards replace the snapshot in a single layout update. */
body[data-home-runtime] .portfolio .work-item { opacity:1; transform:none; animation:none; }
#portfolioDialog { inset:0; width:100vw; max-width:none; height:100dvh; max-height:100dvh; margin:0; border:0; border-radius:0; padding:clamp(16px,3vw,40px); background:rgb(10 10 10 / .97); overflow:hidden; grid-template-rows:auto minmax(0,1fr) auto auto auto; gap:12px; }
#portfolioDialog[open] { display:grid; }
#portfolioDialog::backdrop { background:rgb(0 0 0 / .92); }
#portfolioDialog .dialog-top h2 { font-size:clamp(.875rem,1.4vw,1.125rem); font-family:var(--font-text); font-weight:400; }
#portfolioDialog button { border:0; border-radius:50%; background:rgb(255 255 255 / .06); padding:10px 16px; transition:background 150ms; }
#portfolioDialog button:hover { background:rgb(255 255 255 / .14); }
#portfolioDialog .dialog-close { font-size:1.75rem; line-height:1; }
#portfolioDialog .portfolio-dialog-image { min-height:0; margin:0; overflow:hidden; }
#portfolioDialog .portfolio-dialog-image .portfolio-image { width:auto; height:auto; max-width:100%; max-height:100%; object-fit:contain; }
#portfolioDialogCaption { margin:0; text-align:center; font-size:.75rem; color:#a9ada7; }
#portfolioDialog .portfolio-dialog-status:empty { display:none; }
#portfolioDialog .dialog-controls { flex-wrap:nowrap; font-size:.75rem; }
@media(max-width:600px) { .home-footer .footer-primary { flex-wrap:wrap; gap:8px 16px; } .home-footer .footer-primary p { order:3; flex-basis:100%; } .home-footer .motion-control { order:2; } .home-footer .footer-links { gap:16px; } }
@media(prefers-reduced-motion:reduce) { body[data-home-runtime] .home-service-grid .homepage-menu-link:is(:hover,:focus-visible,.is-hovered) { transform:none; } }
