/* Shared finishing layer. Original page artwork and layouts remain intact. */
:root { --gw-red:#d71920; --gw-line:rgba(255,255,255,.16); }
html { scroll-padding-top:90px; }
body { -webkit-font-smoothing:antialiased; }
*, *::before, *::after { box-sizing:border-box; }
:focus-visible { outline:2px solid #fff; outline-offset:5px; }
button, a, input, select, textarea { -webkit-tap-highlight-color:transparent; }
button { touch-action:manipulation; }
body.gw-home .brand-track { padding-left:0; }
.brand-bar:hover .brand-track, .brand-bar:focus-within .brand-track { animation-play-state:paused; }
.skip-link { position:fixed; top:10px; left:16px; z-index:100000; padding:14px 20px; background:#fff; color:#050505; border-radius:4px; transform:translateY(-180%); font-weight:700; }
.skip-link:focus { transform:translateY(0); }
header.nav { height:76px; padding:0 max(24px,5vw); border-bottom:1px solid transparent; }
header.nav.scrolled { height:76px; background:rgba(5,5,5,.94); border-color:var(--gw-line); backdrop-filter:blur(18px); }
header.nav .nav-links, header.nav .nav-menu { gap:clamp(14px,2vw,28px); font-size:11px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
header.nav nav > a { min-height:44px; display:inline-flex; align-items:center; color:rgba(255,255,255,.8); white-space:nowrap; }
header.nav nav > a:hover, header.nav nav > a[aria-current="page"] { color:#fff; }
header.nav nav > a[aria-current="page"] { text-decoration:underline; text-decoration-color:var(--gw-red); text-decoration-thickness:2px; text-underline-offset:8px; }
header.nav .nav-estimate, header.nav .nav-cta { background:var(--gw-red); padding:12px 18px; color:#fff; border-radius:4px; }
header.nav .nav-estimate:hover, header.nav .nav-cta:hover { background:#ec222a; }
header.nav .nav-logo, header.nav .nav-brand { width:112px; flex-shrink:0; }
body.gw-home header.nav .nav-logo { visibility:hidden; pointer-events:none; }
header.nav .menu-button { width:44px; height:44px; flex-shrink:0; }
.form-field input:not([type="file"]), .form-field select, .form-field textarea { font-size:16px; }
.form-field input:focus, .form-field select:focus, .form-field textarea:focus { border-color:#e74a50; }
.gw-form-status { margin:0 0 24px; padding:16px 18px; border:1px solid var(--gw-line); border-left:3px solid var(--gw-red); background:rgba(255,255,255,.035); color:#ddd; font-size:14px; line-height:1.65; }
.gw-form-status a { color:white; text-decoration:underline; text-underline-offset:3px; }
.gw-motion-toggle { display:block; margin:18px auto; padding:10px 16px; min-height:44px; border:1px solid var(--gw-line); border-radius:30px; background:#111; color:#ddd; cursor:pointer; font:700 11px Arial,sans-serif; letter-spacing:.06em; }
@media(min-width:901px) {
 header.nav .menu-button { display:none; }
 header.nav .nav-links, header.nav .nav-menu { display:flex; position:static; flex-direction:row; background:none; padding:0; border:0; width:auto; }
 .mobile-menu { display:none !important; }
}
@media(max-width:900px) {
 header.nav, header.nav.scrolled { height:64px; padding:0 max(18px,env(safe-area-inset-left)); }
 header.nav .nav-brand, header.nav .nav-logo { width:90px; }
 header.nav .menu-button { display:flex; align-items:center; justify-content:center; margin-left:auto; }
 header.nav .nav-links, header.nav .nav-menu, .mobile-menu { position:fixed; top:64px; left:12px; right:12px; width:auto; bottom:auto; display:none; flex-direction:column; align-items:stretch; gap:3px; margin:0; padding:14px; max-height:calc(100dvh - 80px); overflow-y:auto; background:rgba(8,8,8,.98); border:1px solid var(--gw-line); border-radius:12px; box-shadow:0 20px 60px #0009; backdrop-filter:blur(20px); z-index:10000; }
 header.nav .nav-links.open, header.nav .nav-menu.open, .mobile-menu.open { display:flex; }
 body.gw-home header.nav .nav-links { display:none; }
 header.nav nav > a, .mobile-menu > a { display:flex; align-items:center; min-height:48px; padding:12px 14px; font-size:12px; font-weight:800; letter-spacing:.1em; border-radius:5px; }
 header.nav nav > a:hover, .mobile-menu > a:hover { background:#ffffff0a; }
 header.nav nav > .nav-estimate, header.nav nav > .nav-cta, .mobile-menu > .mobile-request { background:var(--gw-red); margin-top:6px; justify-content:center; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto !important; }
 *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
}
@media(max-height:600px) and (max-width:900px) {
 body.gw-home, html:has(body.gw-home) { height:auto; overflow-y:auto; }
 body.gw-home .landing { min-height:650px; height:650px; }
}
