:root {
  --navy-950: #071821;
  --navy-900: #0b2d3b;
  --navy-850: #103746;
  --navy-800: #1e374b;
  --navy-700: #294b5b;
  --slate-300: #c7d2d8;
  --slate-200: #e1e7ea;
  --white: #fff;
  --ink: #101820;
  --line: rgba(255,255,255,.22);
  --shadow: 0 18px 45px rgba(1,12,18,.24);
  --container: 1120px;
}

* { box-sizing: border-box; }
html { width:100%; max-width:100%; overflow-x:hidden; overflow-x:clip; scroll-behavior:smooth; background:var(--navy-900); }
body {
  margin: 0;
  width:100%;
  max-width:100%;
  min-width:0;
  overflow-x:hidden;
  overflow-x:clip;
  color: var(--white);
  background: var(--navy-900);
  font-family: "Manrope", "Avenir Next", Avenir, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.menu-open { overflow: hidden; }
main, section, footer { max-width:100%; }
img, video { display:block; max-width:100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1,h2,h3,h4,p { margin-top: 0; }
h1,h2,h3,h4 { letter-spacing: -.035em; }
p { line-height: 1.65; }

.container { width:min(var(--container), calc(100% - 48px)); max-width:100%; margin-inline:auto; }
.section { padding: 82px 0; }
.section-tight { padding: 64px 0; }
.eyebrow { margin-bottom: 12px; color: var(--slate-300); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.section-heading { margin-bottom: 14px; font-size: clamp(1.75rem, 3vw, 2.35rem); line-height: 1.13; }
.section-copy { color: var(--slate-300); font-size: .96rem; }
.center { text-align: center; }
.center .section-copy { max-width: 670px; margin-inline: auto; }
.surface-light { color: var(--ink); background: #fff; }
.surface-soft { background: var(--navy-850); }

.site-header {
  position: absolute;
  inset: 0 0 auto;
  z-index: 30;
  height: 86px;
  color: #fff;
}
.site-header.is-solid { position: relative; background: var(--navy-900); }
.nav-shell { height: 100%; display: flex; align-items: center; }
.brand { display:inline-flex; align-items:center; width:148px; flex:0 0 auto; }
.brand img { width:100%; height:78px; object-fit:contain; }
.desktop-nav { margin-left: auto; display: flex; align-items: center; gap: 29px; }
.nav-link { position: relative; padding: 9px 0; font-size: .78rem; font-weight: 650; letter-spacing: .025em; }
.nav-link::after { content:""; position:absolute; right:0; bottom:3px; left:0; height:1px; background:currentColor; transform:scaleX(0); transition:transform .22s ease; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { transform:scaleX(1); }
.header-cta { margin-left: 42px; }
.btn {
  display: inline-flex;
  min-height: 42px;
  align-items: center;
  justify-content: center;
  border: 1px solid transparent;
  border-radius: 3px;
  padding: 10px 21px;
  cursor: pointer;
  font-size: .78rem;
  font-weight: 750;
  line-height: 1.2;
  transition: transform .2s ease, background .2s ease, border-color .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn-light { color: #07131a; background: #fff; }
.btn-light:hover { background: #edf1f3; }
.btn-dark { color: #fff; background: #08121b; }
.btn-dark:hover { background: #162430; }
.btn-outline { color:#fff; border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.08); backdrop-filter: blur(6px); }
.btn-outline:hover { background: rgba(255,255,255,.16); }
.menu-toggle { display:none; margin-left:auto; width:42px; height:42px; border:0; color:#fff; background:transparent; cursor:pointer; }
.menu-toggle svg { width:24px; height:24px; }
.mobile-menu { display:none; }
.menu-overlay { position:fixed; inset:0; z-index:190; opacity:0; visibility:hidden; pointer-events:none; background:rgba(0,9,14,.52); backdrop-filter:blur(5px); transition:opacity .42s cubic-bezier(.16,1,.3,1), visibility .42s; }
.menu-overlay.active { opacity:1; visibility:visible; pointer-events:auto; }

.sticky-secondary {
  position: fixed;
  top: 10px;
  left: 50%;
  z-index: 80;
  width: min(1120px, calc(100% - 40px));
  color: #111820;
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-50%, -115%, 0) scale(.985);
  transition: opacity .48s cubic-bezier(.16,1,.3,1), transform .72s cubic-bezier(.16,1,.3,1);
}
.sticky-secondary.visible { opacity:1; pointer-events:auto; transform:translate3d(-50%,0,0) scale(1); }
.sticky-secondary-inner { min-height:64px; display:flex; align-items:center; padding:5px 18px 5px 24px; border:1px solid rgba(255,255,255,.6); border-radius:7px; background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(232,239,242,.56)); box-shadow:0 16px 42px rgba(0,12,18,.2); backdrop-filter:blur(28px) saturate(140%); -webkit-backdrop-filter:blur(28px) saturate(140%); }
.sticky-brand { width:126px; height:52px; display:flex; align-items:center; }
.sticky-brand img { width:100%; height:100%; object-fit:contain; }
.sticky-links { display:flex; align-items:center; gap:27px; margin-left:auto; }
.sticky-links a { position:relative; padding:8px 0; font-size:.75rem; font-weight:700; }
.sticky-links a::after { content:""; position:absolute; right:0; bottom:2px; left:0; height:1px; background:#111820; transform:scaleX(0); transition:transform .35s cubic-bezier(.16,1,.3,1); }
.sticky-links a:hover::after, .sticky-links a[aria-current="page"]::after { transform:scaleX(1); }
.sticky-cta { margin-left:38px; }
.sticky-menu-toggle { display:none; color:#111820; }

.hero {
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  display: grid;
  place-items: center;
  overflow: hidden;
}
.hero video { position:absolute; inset:0; width:100%; height:100%; max-width:none; object-fit:cover; transform:scale(1.035); animation:none; }
.hero::after { content:""; position:absolute; inset:0; background:rgba(4,14,22,.42); }
.hero-content { position:relative; z-index:2; width:min(850px, calc(100% - 40px)); padding-top:70px; text-align:center; }
.hero h1 { margin-bottom: 20px; font-size: clamp(2.2rem, 4.8vw, 3.45rem); line-height:1.2; text-shadow:0 4px 14px rgba(0,0,0,.45); }
.hero p { max-width: 690px; margin: 0 auto 22px; color:#e5ebee; font-size:.92rem; }
.hero-actions { display:flex; justify-content:center; gap:12px; flex-wrap:wrap; }
@keyframes hero-drift { to { transform:scale(1.085) translate3d(0,-.7%,0); } }

.home-intro { padding-bottom:54px; }
.home-intro + .solutions { padding-top:58px; }
.intro-grid { display:grid; grid-template-columns: 1fr 1fr; gap:46px; align-items:start; }
.welcome-pill { display:inline-flex; margin-bottom:20px; padding:8px 16px; border:1px solid rgba(255,255,255,.33); border-radius:999px; background:rgba(255,255,255,.08); font-size:.72rem; font-weight:750; }
.intro-grid h2 { max-width:none; margin-bottom:18px; font-size:clamp(1.7rem,2.75vw,2.25rem); white-space:nowrap; }
.intro-grid p { color:var(--slate-300); font-size:.9rem; }
.service-checks { display:grid; grid-template-columns:1fr 1fr; gap:18px 28px; margin:25px 0 0; padding:0; list-style:none; }
.service-checks li, .benefit { display:flex; align-items:flex-start; gap:11px; font-size:.85rem; font-weight:700; }
.check { display:grid; flex:0 0 18px; width:18px; height:18px; place-items:center; color:inherit; }
.check svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.intro-image { position:relative; align-self:start; }
.intro-image img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:5px; box-shadow:var(--shadow); }
.quality-badge { position:absolute; left:-28px; bottom:-18px; display:flex; align-items:center; gap:12px; padding:13px 17px; color:#17212a; background:#fff; border-radius:5px; box-shadow:0 14px 28px rgba(0,0,0,.24); }
.quality-badge strong { display:block; font-size:.84rem; }
.quality-badge small { display:block; color:#7b838a; font-size:.64rem; }
.quality-icon { display:grid; width:35px; height:35px; place-items:center; border-radius:50%; background:#edf0f2; font-weight:900; }
.quality-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

.solutions { background:var(--navy-900); }
.cards-3 { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:45px; }
.service-card { min-height:255px; display:flex; flex-direction:column; padding:27px; color:#222a30; background:#fff; border:1px solid #dbe1e4; border-radius:4px; box-shadow:0 7px 18px rgba(2,12,18,.13); }
.card-icon { display:grid; width:38px; height:38px; margin-bottom:20px; place-items:center; border-radius:6px; background:#edf0f1; font-size:1.05rem; }
.card-icon svg, .contact-icon svg { width:21px; height:21px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.service-card h3 { margin-bottom:8px; font-size:1rem; }
.service-card p { color:#616970; font-size:.78rem; }
.learn { margin-top:auto; font-size:.78rem; font-weight:700; }

.choose-grid { display:grid; grid-template-columns: 1fr .88fr; gap:72px; align-items:center; }
.choose-list { display:grid; grid-template-columns:1fr 1fr; gap:24px 32px; margin:25px 0 0; padding:0; list-style:none; }
.choose-list li { display:flex; gap:12px; font-size:.82rem; font-weight:750; line-height:1.18; }
.cta-card { padding:48px 40px; border:1px solid rgba(255,255,255,.35); border-radius:5px; text-align:center; background:var(--navy-700); box-shadow:0 12px 25px rgba(0,0,0,.15); }
.cta-card h2 { margin-bottom:12px; font-size:clamp(1.7rem,3vw,2.15rem); line-height:1.13; }
.cta-card p { margin-bottom:20px; font-size:.84rem; }

.dealers { padding:54px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.dealers h2 { margin-bottom:20px; font-size:1.25rem; }
.dealer-mark { display:inline-flex; align-items:center; gap:11px; color:#dbe6eb; font-size:1.05rem; font-weight:800; letter-spacing:.02em; }
.dealer-symbol { width:24px; height:24px; background:linear-gradient(135deg,#78d8f6 0 48%,#174465 50%); clip-path:polygon(0 0,50% 25%,100% 0,100% 100%,50% 75%,0 100%); }

.reviews { padding:72px 0 94px; overflow:hidden; }
.reviews-viewport { position:relative; width:min(890px, calc(100% - 78px)); margin:38px auto 0; overflow:hidden; }
.reviews-track { display:flex; width:max-content; gap:12px; will-change:transform; animation:review-marquee 56s linear infinite; }
.reviews-track.is-enhanced { animation:none; }
.review-card { width:288px; min-height:176px; flex:0 0 auto; overflow:hidden; padding:16px 15px; color:#12181c; background:#fff; border:1px solid #dfe3e5; border-radius:6px; box-shadow:0 8px 22px rgba(0,8,13,.1); }
.review-top { display:grid; grid-template-columns:38px minmax(0,1fr) 18px; gap:11px; align-items:center; }
.review-person { display:block; min-width:0; overflow:hidden; }
.avatar { display:grid; width:38px; height:38px; place-items:center; border-radius:50%; color:#fff; background:#61727c; font-weight:800; }
.review-name { display:block; overflow:hidden; font-size:.69rem; font-weight:850; white-space:nowrap; text-overflow:ellipsis; }
.review-date { display:block; color:#8b9297; font-size:.58rem; }
.google-logo { display:block; width:16px; max-width:16px; height:16px; overflow:hidden; justify-self:end; }
.stars { margin:9px 0 7px; color:#f6b91f; font-size:1rem; letter-spacing:1px; }
.verified { display:inline-grid; width:13px; height:13px; margin-left:4px; place-items:center; border-radius:50%; color:#fff; background:#4285f4; font-size:.55rem; vertical-align:2px; }
.review-text { display:-webkit-box; overflow:hidden; margin-bottom:6px; color:#151a1e; font-size:.68rem; line-height:1.48; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.read-more { color:#9a9fa2; font-size:.68rem; }
.review-nav { position:absolute; top:50%; z-index:3; display:grid; width:31px; height:31px; place-items:center; border:1px solid #d8dde0; border-radius:50%; color:#34424a; background:#fff; box-shadow:0 4px 12px rgba(0,0,0,.16); cursor:pointer; transform:translateY(-50%); }
.review-prev { left:3px; }
.review-next { right:3px; }
@keyframes review-marquee { from { transform:translate3d(0,0,0); } to { transform:translate3d(var(--review-distance,-2400px),0,0); } }

.page-hero { padding:44px 0 55px; text-align:center; }
.page-hero h1 { margin-bottom:13px; font-size:clamp(2rem,4vw,2.75rem); }
.page-hero p { max-width:760px; margin:0 auto; color:var(--slate-300); font-size:.84rem; }
.service-list { padding:28px 0 86px; }
.service-row { display:grid; grid-template-columns:1fr 1fr; grid-template-areas:"title media" "details media"; grid-template-rows:auto 1fr; gap:0 62px; align-items:start; margin-bottom:84px; }
.service-row:nth-child(even) { grid-template-areas:"media title" "media details"; }
.service-title { grid-area:title; margin-bottom:16px; font-size:clamp(1.7rem,2.25vw,1.95rem); }
.service-details { grid-area:details; display:flex; min-height:280px; flex-direction:column; justify-content:center; }
.service-row p { margin-bottom:0; color:var(--slate-300); font-size:1rem; line-height:1.72; }
.service-media { grid-area:media; align-self:center; }
.benefits-title { margin:24px 0 14px; font-size:.9rem; }
.benefits-box { display:grid; grid-template-columns:1fr 1fr; min-height:150px; align-content:center; gap:21px 26px; padding:23px 24px; border:1px solid rgba(255,255,255,.27); background:rgba(0,0,0,.08); }
.benefit { align-items:center; font-size:.88rem; line-height:1.35; }
.service-media img { width:100%; min-height:340px; aspect-ratio:1.45/1; object-fit:cover; border-radius:4px; box-shadow:var(--shadow); }
.wide-cta { padding:50px 32px; color:#101820; background:#fff; border-radius:4px; text-align:center; }
.wide-cta h2 { margin-bottom:18px; font-size:1.65rem; }
.service-final-cta { color:#fff; border:1px solid rgba(255,255,255,.35); background:var(--navy-700); box-shadow:0 12px 25px rgba(0,0,0,.15); }

.filter-bar { display:grid; grid-template-columns:repeat(5,1fr); max-width:940px; margin:0 auto 28px; border:1px solid #d9e0e3; background:#fff; }
.filter-btn { min-height:48px; border:0; border-right:1px solid #d9e0e3; color:#56626a; background:#fff; cursor:pointer; font-size:.75rem; font-weight:700; }
.filter-btn:last-child { border-right:0; }
.filter-btn:hover, .filter-btn.active { color:var(--navy-900); background:#e9f2f4; box-shadow:inset 0 -3px 0 var(--navy-900); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:245px; gap:8px; }
.gallery-item { position:relative; overflow:hidden; border:0; padding:0; background:#173d4b; cursor:pointer; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease, filter .4s ease; }
.gallery-item:hover img { transform:scale(1.035); filter:brightness(.82); }
.gallery-item[hidden] { display:none; }
.gallery-label { position:absolute; right:15px; bottom:13px; left:15px; color:#fff; font-size:.78rem; font-weight:750; opacity:0; transform:translateY(6px); transition:.25s ease; text-align:left; text-shadow:0 2px 5px rgba(0,0,0,.6); }
.gallery-item:hover .gallery-label { opacity:1; transform:none; }
.lightbox { position:fixed; inset:0; z-index:100; display:none; place-items:center; padding:32px; background:rgba(2,10,14,.92); }
.lightbox.open { display:grid; }
.lightbox img { max-width:min(1200px,100%); max-height:86vh; box-shadow:0 22px 70px #000; }
.lightbox-close { position:absolute; top:18px; right:22px; border:0; color:#fff; background:transparent; font-size:2rem; cursor:pointer; }

.story-grid { display:grid; grid-template-columns:1fr .95fr; gap:60px; align-items:center; }
.story-copy p { margin-bottom:13px; color:var(--slate-300); font-size:.8rem; }
.story-copy strong { color:#fff; }
.story-image img { width:100%; aspect-ratio:1.38/1; object-fit:cover; border-radius:4px; box-shadow:var(--shadow); }
.value-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.value-card { min-height:170px; padding:25px; border:1px solid rgba(255,255,255,.35); border-radius:4px; background:rgba(11,30,39,.18); }
.value-card .card-icon { color:#172630; background:#fff; }
.value-card h3 { margin-bottom:7px; font-size:.96rem; }
.value-card p { margin:0; color:var(--slate-300); font-size:.75rem; }

.estimate-layout { display:grid; grid-template-columns:1.45fr .85fr; max-width:980px; margin:0 auto; overflow:hidden; color:#162029; background:#fff; border-radius:4px; box-shadow:var(--shadow); }
.estimate-form { padding:38px; }
.estimate-form h2, .contact-panel h2 { margin-bottom:8px; color:#111820; font-size:1.55rem; }
.estimate-form > p { margin-bottom:24px; color:#6b7379; font-size:.78rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px; }
.field-full { grid-column:1/-1; }
.field { width:100%; min-height:44px; border:1px solid #dfe4e7; border-radius:5px; outline:0; padding:11px 13px; color:#253039; background:#f5f7f8; font-size:.75rem; }
.field:focus { border-color:#78909b; background:#fff; box-shadow:0 0 0 3px rgba(30,55,75,.1); }
textarea.field { min-height:112px; resize:vertical; }
.referral-field[hidden] { display:none; }
.form-status { min-height:20px; margin-top:10px; color:#315d42; font-size:.73rem; }
.estimate-form.is-submitted { min-height:430px; display:grid; place-items:center; }
.estimate-form.is-submitted > h2,
.estimate-form.is-submitted > p:not(.form-status),
.estimate-form.is-submitted > .form-grid { display:none; }
.form-status.is-success { width:100%; min-height:320px; display:flex; flex-direction:column; align-items:center; justify-content:center; margin:0; padding:38px 28px; border:1px solid #b9d8c8; border-radius:8px; color:#183d2d; background:#eef8f3; text-align:center; box-shadow:0 14px 32px rgba(20,72,49,.1); }
.success-icon { display:grid; width:68px; height:68px; margin-bottom:22px; place-items:center; border-radius:50%; color:#fff; background:#2f7756; box-shadow:0 10px 24px rgba(47,119,86,.23); }
.success-icon svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.success-title { display:block; margin-bottom:10px; font-size:1.45rem; line-height:1.25; letter-spacing:-.025em; }
.success-copy { display:block; max-width:390px; color:#557064; font-size:.88rem; line-height:1.6; }
.success-link { display:inline-flex; min-height:40px; align-items:center; justify-content:center; margin-top:24px; border:1px solid #2f7756; border-radius:3px; padding:9px 18px; color:#2f7756; font-size:.76rem; font-weight:800; transition:color .2s ease, background .2s ease; }
.success-link:hover { color:#fff; background:#2f7756; }
.contact-panel { padding:38px; border-left:1px solid #e2e6e8; background:#f6f7f8; }
.contact-list { margin:25px 0 0; padding:0; list-style:none; }
.contact-list li { display:grid; grid-template-columns:33px 1fr; gap:12px; margin-bottom:22px; align-items:start; }
.contact-icon { display:grid; width:33px; height:33px; place-items:center; border-radius:50%; background:#e4e8ea; }
.contact-list strong { display:block; margin-bottom:2px; font-size:.76rem; }
.contact-list a, .contact-list span { color:#687178; font-size:.72rem; }
.socials { display:flex; gap:9px; margin-top:30px; }
.social { display:grid; width:34px; height:34px; place-items:center; border-radius:3px; color:#fff; font-size:.8rem; font-weight:900; }
.social svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.facebook { background:#4267b2; }
.instagram { background:#d93675; }

.site-footer { padding:55px 0 25px; border-top:1px solid rgba(255,255,255,.24); background:#092936; }
.footer-grid { display:grid; grid-template-columns:1.15fr .8fr 1fr 1fr; gap:55px; }
.footer-brand img { width:160px; height:96px; object-fit:contain; }
.footer-brand p { max-width:255px; color:#aebdc4; font-size:.72rem; }
.footer-title { margin:20px 0 15px; font-size:.82rem; }
.footer-links { margin:0; padding:0; list-style:none; }
.footer-links li { margin-bottom:10px; }
.footer-links a, .footer-links span { color:#b6c3c9; font-size:.73rem; }
.footer-links a:hover { color:#fff; }
.footer-socials { display:flex; gap:9px; padding-top:5px; }
.footer-socials .social { color:#fff; }
.footer-bottom { margin-top:34px; padding-top:19px; border-top:1px solid rgba(255,255,255,.13); color:#8ea1aa; font-size:.65rem; text-align:center; }

.floating-contact { position:fixed; right:max(18px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:180; display:flex; flex-direction:column; gap:10px; }
.floating-action { display:grid; width:52px; height:52px; min-width:52px; min-height:52px; aspect-ratio:1; flex:0 0 52px; place-items:center; overflow:hidden; border:1px solid rgba(255,255,255,.68); border-radius:999px !important; padding:0; color:#fff; box-shadow:0 10px 28px rgba(0,10,16,.28); transition:transform .35s cubic-bezier(.16,1,.3,1), box-shadow .35s ease; }
.floating-action:hover { transform:translateY(-3px) scale(1.04); box-shadow:0 14px 34px rgba(0,10,16,.36); }
.floating-action svg { width:24px; height:24px; }
.floating-call { background:#17465a; }
.floating-call svg { fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.floating-whatsapp { background:#25d366; }

.reveal { opacity:0; transform:translateY(24px); transition:opacity .8s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1); }
.reveal.visible { opacity:1; transform:none; }

.motion-page [data-motion] { opacity:0; filter:blur(7px); transform:translate3d(0,56px,0); transition:opacity .74s cubic-bezier(.16,1,.3,1), transform 1.05s cubic-bezier(.16,1,.3,1), filter .8s cubic-bezier(.16,1,.3,1); transition-delay:var(--motion-delay,0ms); will-change:transform,opacity,filter; }
.motion-page [data-motion="left"] { transform:translate3d(-112px,20px,0); }
.motion-page [data-motion="right"] { transform:translate3d(112px,20px,0); }
.motion-page [data-motion="up"] { transform:translate3d(0,66px,0); }
.motion-page [data-motion].motion-visible { opacity:1; filter:blur(0); transform:translate3d(0,0,0); }
.motion-page .site-header .brand, .motion-page .site-header .nav-link, .motion-page .site-header .header-cta, .home-page .hero-content > * { opacity:0; filter:blur(6px); transform:translate3d(0,26px,0); }
.motion-page.motion-ready .site-header .brand, .motion-page.motion-ready .site-header .nav-link, .motion-page.motion-ready .site-header .header-cta, .home-page.motion-ready .hero-content > * { opacity:1; filter:blur(0); transform:none; transition:opacity .7s cubic-bezier(.16,1,.3,1), transform .9s cubic-bezier(.16,1,.3,1), filter .7s cubic-bezier(.16,1,.3,1); }
.home-page.home-ready .site-header .brand { transition-delay:80ms; }
.home-page.home-ready .site-header .nav-link:nth-child(1) { transition-delay:130ms; }
.home-page.home-ready .site-header .nav-link:nth-child(2) { transition-delay:180ms; }
.home-page.home-ready .site-header .nav-link:nth-child(3) { transition-delay:230ms; }
.home-page.home-ready .site-header .nav-link:nth-child(4) { transition-delay:280ms; }
.home-page.home-ready .site-header .header-cta { transition-delay:330ms; }
.home-page.home-ready .hero-content h1 { transition-delay:260ms; }
.home-page.home-ready .hero-content p { transition-delay:390ms; }
.home-page.home-ready .hero-actions { transition-delay:500ms; }

@media (max-width: 900px) {
  .desktop-nav, .header-cta { display:none; }
  .menu-toggle { display:grid; place-items:center; }
  .site-header { z-index:210; }
  .menu-toggle { position:relative; z-index:230; }
  .mobile-menu { position:fixed; inset:0; z-index:200; display:flex; width:100%; max-width:100%; height:100vh; height:100dvh; flex-direction:column; align-items:center; justify-content:center; gap:7px; padding:110px 24px 42px; background:rgba(7,24,33,.965); opacity:0; visibility:hidden; pointer-events:none; transform:translate3d(0,-32px,0) scale(.985); transition:opacity .42s cubic-bezier(.16,1,.3,1), transform .64s cubic-bezier(.16,1,.3,1), visibility .42s; }
  .mobile-menu.open { opacity:1; visibility:visible; pointer-events:auto; transform:none; }
  .mobile-menu a { width:min(420px,100%); color:#fff; padding:16px 8px; border-bottom:1px solid rgba(255,255,255,.15); font-size:1.08rem; font-weight:700; text-align:center; }
  .mobile-menu a[aria-current="page"] { color:#8ed8ed; }
  .mobile-menu .btn { justify-content:center; margin-top:17px; border:0; color:#0b1a22; background:#fff; }
  .sticky-secondary { z-index:220; width:calc(100% - 20px); }
  .sticky-secondary-inner { min-height:58px; padding:3px 10px 3px 16px; }
  .sticky-brand { width:100px; height:48px; }
  .sticky-links, .sticky-cta { display:none; }
  .sticky-menu-toggle { display:grid; margin-left:auto; place-items:center; }
  .intro-grid, .choose-grid, .story-grid { grid-template-columns:1fr; gap:44px; }
  .intro-grid h2 { white-space:normal; }
  .cards-3 { gap:20px; }
  .service-row { gap:0 36px; }
  .footer-grid { grid-template-columns:1fr 1fr; }
  .gallery-grid { grid-auto-rows:205px; }
}

@media (max-width: 680px) {
  .container { width:min(100% - 32px, var(--container)); }
  .section { padding:62px 0; }
  .section-tight { padding:48px 0; }
  .site-header { height:76px; }
  .brand { width:122px; }
  .brand img { height:64px; }
  .hero { min-height:100vh; min-height:100svh; }
  .hero-content { padding-top:62px; }
  .hero h1 { font-size:2.25rem; line-height:1.16; }
  .hero p { font-size:.84rem; }
  .btn { min-height:41px; padding:10px 17px; }
  .service-checks, .choose-list, .value-grid, .form-grid { grid-template-columns:1fr; }
  .quality-badge { left:12px; bottom:-20px; }
  .cards-3 { grid-template-columns:1fr; margin-top:32px; }
  .service-card { min-height:225px; }
  .cta-card { padding:37px 22px; }
  .reviews-viewport { width:calc(100% - 40px); }
  .review-card { width:min(288px, calc(100dvw - 72px)); min-height:182px; }
  .page-hero { padding:28px 0 44px; }
  .page-hero h1 { font-size:2.15rem; }
  .service-row, .service-row:nth-child(even) { grid-template-columns:minmax(0,1fr); grid-template-areas:"title" "media" "details"; gap:0; margin-bottom:64px; }
  .service-title { margin-bottom:16px; }
  .service-media { margin-bottom:20px; }
  .service-media img { min-height:0; aspect-ratio:4/3; }
  .service-details { min-height:0; }
  .service-row p { font-size:.94rem; }
  .benefits-box { grid-template-columns:1fr; min-height:0; padding:20px; }
  .filter-bar { grid-template-columns:1fr 1fr; }
  .filter-btn { border-bottom:1px solid #d9e0e3; }
  .filter-btn:last-child { grid-column:1/-1; }
  .gallery-grid { grid-template-columns:1fr; grid-auto-rows:260px; gap:10px; }
  .gallery-label { opacity:1; transform:none; }
  .estimate-layout { grid-template-columns:1fr; }
  .estimate-form, .contact-panel { padding:27px 20px; }
  .estimate-form.is-submitted { min-height:350px; }
  .form-status.is-success { min-height:290px; padding:30px 18px; }
  .success-title { font-size:1.25rem; }
  .contact-panel { border-top:1px solid #e2e6e8; border-left:0; }
  .site-footer { padding:34px 0 18px; }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 18px; }
  .footer-brand { grid-column:1/-1; display:flex; flex-direction:column; align-items:center; text-align:center; }
  .footer-title { margin:4px 0 10px; font-size:.86rem; }
  .footer-links li { margin-bottom:7px; }
  .footer-links a, .footer-links span { font-size:.74rem; line-height:1.35; }
  .footer-links a { overflow-wrap:anywhere; }
  .footer-brand img { width:154px; height:84px; margin-inline:auto; }
  .footer-brand p { max-width:290px; margin:0 auto; font-size:.68rem; line-height:1.5; }
  .footer-bottom { margin-top:24px; padding-top:14px; }
  .floating-contact { right:12px; bottom:14px; gap:8px; }
  .floating-action { width:47px; height:47px; }
  .floating-action svg { width:22px; height:22px; }
  .motion-page [data-motion="left"] { transform:translate3d(-40px,16px,0); }
  .motion-page [data-motion="right"] { transform:translate3d(40px,16px,0); }
  .motion-page [data-motion="up"] { transform:translate3d(0,42px,0); }
}

@media (max-width: 410px) {
  .footer-grid { grid-template-columns:1fr; gap:18px; }
  .footer-brand { grid-column:auto; }
  .service-checks, .choose-list { gap:16px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero video { animation:none; }
  .motion-page [data-motion], .motion-page .site-header .brand, .motion-page .site-header .nav-link, .motion-page .site-header .header-cta, .home-page .hero-content > * { opacity:1; filter:none; transform:none; transition:none; }
}
