@font-face { font-family:Archivo; src:url('assets/archivo.woff2') format('woff2'); font-weight:100 900; font-display:swap; }
@font-face { font-family:ArchivoDisplay; src:url('assets/archivo-expanded.ttf') format('truetype'); font-weight:600; font-display:swap; }
:root { --black:#111213; --panel:#1c1d1f; --red:#c92131; --red-hover:#a91b28; --white:#fff; --fog:#f6f6f6; --ink:#1d1e20; --muted:#606165; --line:#d7d8da; --dark-line:#37383b; --dark-muted:#c2c3c6; --pad:clamp(1.5rem,5.5vw,5.5rem); --content-max:80rem; --edge:max(var(--pad),calc((100vw - var(--content-max))/2)); --section-space:clamp(4rem,6.7vw,6rem); --grid-gap:clamp(2rem,5.6vw,5rem); --section-title:clamp(1.875rem,2.7vw,2.5rem); --subheading:1.375rem; --text-caption:0.875rem; --text-small:0.9375rem; --text-body:1rem; --text-lead:1.125rem; --header:5rem; --ease:cubic-bezier(.16,1,.3,1); color-scheme:light; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:calc(var(--header) + 1.5rem); }
body { margin:0; background:var(--black); color:var(--white); font:400 1rem/1.65 Archivo,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
body.dialog-open { overflow:hidden; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:not-allowed; }
img { display:block; max-width:100%; }
svg { width:1.25rem; height:1.25rem; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; flex:none; }
h1,h2,h3,h4,p,figure { margin:0; }
h1,h2,h3 { text-wrap:balance; overflow-wrap:anywhere; }
p { text-wrap:pretty; }
[hidden] { display:none!important; }
::selection { background:var(--red); color:#fff; }
:focus-visible { outline:0.1875rem solid var(--red); outline-offset:0.25rem; }
.site-header :focus-visible,.hero :focus-visible,.theme-dark :focus-visible,.closing :focus-visible { outline-color:#fff; }
.shell { container-type:inline-size; width:min(calc(100% - 2 * var(--pad)),var(--content-max)); margin-inline:auto; }
.sr-only { position:absolute; width:0.0625rem; height:0.0625rem; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link { position:fixed; top:0.625rem; left:0.625rem; z-index:50; padding:0.75rem 1.25rem; background:#fff; color:var(--ink); transform:translateY(-160%); }
.skip-link:focus { transform:none; }
.btn { display:inline-flex; align-items:center; justify-content:space-between; gap:1.5rem; min-height:3.125rem; padding:0.8125rem 1.5rem; border:0.0625rem solid transparent; border-radius:6.25rem; background:var(--red); color:#fff; font-size:var(--text-body); font-weight:500; line-height:1.4; transition:background .18s,border-color .18s,transform .18s; }
.btn:hover { background:var(--red-hover); }
.btn:not(:disabled):active { transform:translateY(0.0625rem); }
.btn:disabled { background:#e8e8e9; color:#67686b; }
.btn.secondary { background:#fff; color:var(--ink); border-color:#a9aaae; }
.btn.secondary:hover { background:var(--fog); border-color:var(--ink); }
.arrow { display:inline-flex; width:1.25rem; height:1.25rem; flex:0 0 1.25rem; align-items:center; justify-content:center; line-height:0; vertical-align:middle; }
.arrow svg { width:1.25rem; height:1.25rem; stroke-width:1.65; overflow:visible; }
.text-link { display:inline-flex; max-width:100%; overflow-wrap:anywhere; align-items:center; justify-content:space-between; gap:1.75rem; padding-block:0.75rem; min-height:3rem; border-bottom:0.0625rem solid currentColor; font-size:var(--text-body); font-weight:500; }
.text-link:hover { opacity:.72; }
.site-header { container:site-header / inline-size; position:sticky; top:0; z-index:20; background:var(--black); border-bottom:0.0625rem solid #ffffff14; }
.header-inner { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:2rem; height:var(--header); }
.brand { display:flex; align-items:center; justify-self:start; }
.brand img { max-width:28vw; width:7rem; height:3.375rem; object-fit:contain; }
.header-actions { justify-self:end; display:flex; align-items:center; gap:1.75rem; }
.header-phone { font-size:var(--text-body); white-space:nowrap; }
.desktop-nav { display:flex; align-items:center; justify-content:center; gap:1.75rem; font-size:var(--text-body); }
.desktop-nav a { padding-block:0.75rem; }
.desktop-nav a:hover { color:var(--dark-muted); }
.header-actions .btn { white-space:nowrap; min-height:2.625rem; padding:0.625rem 1.375rem; background:transparent; border-color:#85868a; font-size:var(--text-body); font-weight:400; }
.header-actions .btn:hover { border-color:#fff; background:#ffffff12; }
.compact-label,.tiny-label { display:none; }
.menu-toggle { display:none; align-items:center; gap:0.75rem; width:max-content; min-height:2.75rem; padding:0.625rem min(0.75rem,3vw); margin-inline:calc(-1 * min(0.75rem,3vw)); border:0; background:none; font-size:var(--text-body); }
.menu-toggle:hover { color:#c4c4c8; }
.menu-close,.menu-toggle[aria-expanded=true] .menu-lines { display:none; }
.menu-toggle[aria-expanded=true] .menu-close { display:block; }
.mobile-nav { position:absolute; top:100%; left:0; width:min(27.5rem,100%); max-height:calc(100svh - var(--header)); overflow:auto; overscroll-behavior:contain; padding:1.25rem var(--pad) 2rem; background:var(--black); border-bottom:0.0625rem solid var(--dark-line); }
.mobile-nav a { display:block; padding:1rem 0; border-bottom:0.0625rem solid var(--dark-line); font-size:1.0625rem; }
.assurance-strip { border-bottom:0.0625rem solid var(--dark-line); }
.assurance-inner { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem; padding-block:1.75rem; }
.assurance strong { display:block; font-size:var(--text-body); font-weight:500; }
.assurance span { display:block; font-size:var(--text-small); line-height:1.6; margin-top:0.25rem; color:var(--dark-muted); }
.builder-heading { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-bottom:1.75rem; }
.builder-heading p { font-size:var(--text-body); color:var(--muted); margin-top:0.75rem; max-width:56ch; }
.step-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; border-bottom:0.0625rem solid var(--line); scroll-margin-top:0.75rem; }
.step-nav button { display:flex; align-items:center; gap:0.75rem; padding:0.75rem 0 1.125rem; border:0; background:none; color:var(--muted); position:relative; font-size:var(--text-body); text-align:left; }
.step-nav button span { font-size:var(--text-caption); }
.step-nav button[aria-current=step] { color:var(--ink); font-weight:550; }
.step-nav button[aria-current=step]::after { content:''; position:absolute; height:0.125rem; background:var(--red); bottom:-0.0625rem; left:0; right:0; }
.step-nav button.is-complete { color:var(--ink); }
.step-nav button:disabled { color:#75767a; }
.step-nav button:not(:disabled):hover { color:var(--red); }
.builder-form { container-type:inline-size; min-width:0; padding:2.25rem 0 2rem; }
.step-panel { margin:0; padding:0; border:0; min-width:0; }
.step-panel>p { font-size:var(--text-body); color:var(--muted); margin-top:0.375rem; }
.service-location { border:0; padding:0; margin:2rem 0 0; min-width:0; }
.service-location legend { font-size:var(--text-body); font-weight:500; margin-bottom:0.875rem; }
.location-options { display:flex; gap:0.75rem; }
.location-note { margin-top:0.625rem; font-size:var(--text-small); color:var(--muted); }
.shop-location { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; padding-top:1.5rem; margin-top:1.5rem; border-top:0.0625rem solid var(--line); }
.shop-location>div>span { font-size:var(--text-caption); color:var(--muted); }
.shop-location address { font-size:var(--text-body); font-style:normal; line-height:1.6; margin-top:0.375rem; }
.shop-location .text-link { font-size:var(--text-small); gap:1rem; white-space:nowrap; }
.travel-checker { margin-top:1.5rem; padding-top:1.5rem; border-top:0.0625rem solid var(--line); }
.travel-checker>label { display:block; font-size:1rem; font-weight:500; }
#postal-help { font-size:var(--text-body); color:var(--muted); margin-top:0.375rem; }
.postal-controls { display:flex; gap:0.75rem; margin-top:1rem; }
.postal-controls input { min-width:0; width:12.5rem; min-height:3.125rem; padding:0.75rem 1rem; font-size:1rem; letter-spacing:.08em; text-transform:uppercase; border:0.0625rem solid #909196; border-radius:0.1875rem; background:#fff; color:var(--ink); }
.postal-controls input::placeholder { color:#75767a; opacity:1; }
.postal-controls input[aria-invalid=true] { border-color:#a01625; }
.postal-controls .btn { min-width:9.25rem; padding-inline:1.375rem; }
.travel-result { margin-top:1rem; padding:1.125rem 1.25rem; background:var(--fog); border:0.0625rem solid var(--line); border-radius:0.1875rem; }
.travel-result strong { display:block; font-size:1rem; font-weight:500; }
.travel-result p { margin-top:0.375rem; font-size:var(--text-small); line-height:1.6; color:var(--muted); }
.travel-result[data-status=invalid],.travel-result[data-status=not_found],.travel-result[data-status=error] { border-color:#a01625; }
.travel-result>a { display:inline-block; font-size:var(--text-small); margin-top:0.5rem; padding-block:0.375rem; text-decoration:underline; text-underline-offset:0.25rem; }
.lookup-note { max-width:68ch; margin-top:0.875rem; font-size:var(--text-caption); line-height:1.65; color:var(--muted); }
.lookup-note a { text-decoration:underline; text-underline-offset:0.1875rem; }
.footer-address { font-size:var(--text-body); font-style:normal; line-height:1.7; margin-top:1rem; color:var(--dark-muted); }
.footer-brand .text-link { margin-top:0.5rem; font-size:var(--text-small); }
.build-context { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; margin-bottom:1.25rem; font-size:var(--text-small); color:var(--muted); }
.build-context button { border:0; background:none; padding:0.5rem 0; min-height:2.75rem; font-size:var(--text-small); color:var(--ink); text-decoration:underline; text-underline-offset:0.3125rem; }
.package-options { display:grid; gap:0.75rem; margin-top:1.5rem; }
.package-name { display:block; font-size:1.25rem; font-weight:500; line-height:1.3; }
.package-description { display:block; font-size:var(--text-body); color:var(--muted); margin-top:0.375rem; }
.package-price { font-size:1.75rem; line-height:1.2; font-weight:500; white-space:nowrap; font-variant-numeric:tabular-nums; }
.addon-options { margin-top:1.25rem; display:grid; grid-template-columns:1fr 1fr; gap:0 2rem; }
.addon-item { min-width:0; border-bottom:0.0625rem solid var(--line); padding:1rem 0; }
.addon-item label { display:flex; min-height:3rem; align-items:flex-start; gap:0.75rem; cursor:pointer; font-size:var(--text-body); line-height:1.5; }
.addon-item input { appearance:none; -webkit-appearance:none; width:1.25rem; height:1.25rem; flex:none; margin:0.125rem 0 0; border:0.0625rem solid #909095; border-radius:0.125rem; background:#fff; position:relative; }
.addon-item input:checked { border-color:var(--red); background:var(--red); }
.addon-item input:checked::after { content:''; position:absolute; width:0.5rem; height:0.25rem; border-left:0.09375rem solid #fff; border-bottom:0.09375rem solid #fff; transform:rotate(-45deg); top:0.3125rem; left:0.3125rem; }
.addon-item input:disabled { background:#68696e; border-color:#68696e; }
.addon-copy { display:flex; min-width:0; flex-wrap:wrap; justify-content:space-between; gap:1rem; flex:1; }
.addon-copy strong { font-weight:400; }
.addon-copy small { font-size:var(--text-body); color:var(--muted); white-space:normal; }
.addon-item.included .addon-copy small { white-space:normal; text-align:right; max-width:5.75rem; font-size:var(--text-caption); }
.addon-item select { width:100%; min-height:2.75rem; margin-top:0.625rem; border:0.0625rem solid #aaa; background:#fff; color:var(--ink); border-radius:0.1875rem; padding:0.5rem 0.75rem; font-size:var(--text-body); }
.addon-help { margin-top:1.25rem; font-size:var(--text-small); color:var(--muted); }
.builder-footer { border-top:0.0625rem solid var(--line); padding-top:1.75rem; display:grid; grid-template-columns:1fr auto; align-items:center; gap:1.25rem 3rem; }
.footer-estimate { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:1.5rem; }
.total-label { font-size:var(--text-small); color:var(--muted); }
.total-label strong { display:block; font-weight:400; color:var(--ink); font-size:var(--text-small); margin-top:0.25rem; }
.total-price { font-size:2rem; font-weight:500; letter-spacing:-.025em; line-height:1.1; white-space:nowrap; font-variant-numeric:tabular-nums; }
.total-price small { display:block; margin-top:0.5rem; font-size:var(--text-caption); font-weight:400; letter-spacing:0; color:var(--muted); }
.builder-buttons { display:flex; flex-wrap:wrap; gap:0.75rem; }
.builder-buttons .btn { min-width:14.25rem; }
.back-button { aspect-ratio:1; align-self:center; flex:none; width:3.125rem; background:#fff; border:0.0625rem solid #aaa; border-radius:50%; color:var(--ink); display:grid; place-items:center; }
.back-button:hover { border-color:var(--ink); }
.estimate-terms { grid-column:1/-1; font-size:var(--text-caption); color:var(--muted); line-height:1.5; }
.light { color:var(--ink); background:#fff; }
#build,.specific-services { border-top:0.0625rem solid var(--line); }
.care-breakdown { margin:0; padding:0; list-style:none; }
.care-breakdown li { padding:0.875rem 0; display:grid; grid-template-columns:5.625rem 1fr; gap:1.25rem; }
.care-breakdown strong { font-size:var(--text-body); font-weight:500; }
.care-breakdown p { font-size:var(--text-body); color:var(--muted); }
.service-table { margin-top:0; }
.service-table-heading { display:flex; justify-content:space-between; align-items:center; gap:2.5rem; border-bottom:0.0625rem solid #b7b7bc; padding-bottom:1.75rem; }
.service-table-heading p { font-size:var(--text-small); color:var(--muted); max-width:44ch; }
.service-row { display:grid; grid-template-columns:minmax(10rem,1fr) minmax(0,1.35fr) 8.5rem 5.875rem; gap:1.75rem; align-items:center; padding:1.875rem 0; min-height:6.625rem; border-bottom:0.0625rem solid var(--line); }
.service-row strong { font-size:1.25rem; font-weight:500; letter-spacing:-.01em; }
.service-row p { font-size:var(--text-body); color:var(--muted); }
.service-row>span { font-size:1.125rem; white-space:nowrap; }
.service-row .service-action { display:flex; align-items:center; justify-content:flex-end; gap:0.75rem; font-size:var(--text-body); }
.service-row:hover .service-action { color:var(--red); }
.travel-rate { margin-top:1.75rem; padding-top:1.5rem; border-top:0.0625rem solid #4a4b4e; }
.travel-rate p { margin-top:0.5rem; font-size:var(--text-body); color:var(--dark-muted); }
.transport-insurance { display:flex; gap:0.75rem; margin-top:1.25rem; font-size:var(--text-body); color:var(--dark-muted); }
.transport-insurance svg { margin-top:0.1875rem; }
.coating-prices { display:flex; flex-wrap:wrap; gap:2.25rem; margin:1.75rem 0; }
.coating-prices span { display:block; font-size:var(--text-small); color:var(--dark-muted); }
.coating-prices strong { display:block; font-size:1.5625rem; font-weight:500; margin-top:0.375rem; }
.program-section { background:var(--black); border-block:0.0625rem solid var(--dark-line); }
.program-section .shell { display:grid; grid-template-columns:.8fr 1.6fr; gap:3rem; padding-block:3rem; align-items:start; }
.program-section h2 { font-family:Archivo,Arial,sans-serif; font-size:var(--subheading); font-weight:500; line-height:1.35; letter-spacing:-.02em; }
.program-links { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }
.program-status { display:block; margin-top:0.875rem; color:var(--dark-muted); font-size:var(--text-small); }
.program-links a { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; padding:0; }
.program-links a:hover strong { text-decoration:underline; text-underline-offset:0.3125rem; }
.program-links a:first-child { padding-top:0; }
.program-links strong { font-size:1rem; font-weight:500; }
.program-links p { font-size:var(--text-small); color:var(--dark-muted); margin-top:0.375rem; }
.faq-layout { display:grid; grid-template-columns:1fr 1fr; gap:var(--grid-gap); }
.faq-intro p { color:var(--muted); font-size:var(--text-body); margin-top:1.5rem; max-width:32ch; }
.faq-intro .text-link { margin-top:1rem; }
.faq-list { border-top:0.0625rem solid #bdbdc2; }
.faq-list details { border-bottom:0.0625rem solid #bdbdc2; }
.faq-list summary { display:flex; justify-content:space-between; align-items:center; gap:1.5rem; list-style:none; cursor:pointer; padding:1.5rem 0; font-size:1rem; font-weight:500; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:'+'; font-size:1.5rem; font-weight:350; width:1.5rem; text-align:center; flex:none; }
.faq-list details[open] summary::after { content:'−'; }
.faq-list details p { font-size:var(--text-body); line-height:1.8; padding:0 1.5rem 1.5rem 0; color:var(--muted); }
.closing { background:var(--panel); }
.closing .shell { display:flex; justify-content:space-between; align-items:center; gap:2.5rem; padding-block:4rem; }
.closing .btn { max-width:100%; padding-inline:min(1.5rem,5vw); gap:min(2.5rem,5vw); }
.footer-main { display:grid; grid-template-columns:1.2fr 1fr .9fr; gap:3.5rem; padding-block:3.5rem; }
.footer-brand img { width:7.5rem; height:3.625rem; object-fit:contain; }
.footer-brand p { font-size:var(--text-small); color:var(--dark-muted); margin-top:1rem; }
.footer-col h3 { font-size:var(--text-body); font-weight:500; margin-bottom:0.75rem; }
.footer-col a,.footer-col p { display:block; font-size:var(--text-body); line-height:1.9; color:var(--dark-muted); }
.footer-col a { padding-block:0.5rem; min-height:2.75rem; }
.footer-col a:hover { color:#fff; }
.footer-col .footer-social,.footer-col .contact-link,.back-top { display:inline-flex; align-items:center; gap:0.625rem; }
.footer-col .contact-link { display:flex; width:fit-content; }
.footer-col .footer-proof { display:inline-flex; flex-wrap:wrap; align-items:center; gap:0.1875rem 0.75rem; max-width:100%; font-size:var(--text-small); line-height:1.6; }
.footer-proof-rating { display:inline-flex; flex-wrap:wrap; align-items:center; gap:0.375rem; } .footer-proof-rating strong { font-weight:550; }
.footer-proof-stars { font-size:var(--text-caption); letter-spacing:0.03125rem; line-height:1; } .footer-proof-count { font-size:var(--text-caption); text-decoration:underline; text-underline-offset:0.1875rem; }
.footer-bottom { border-top:0.0625rem solid var(--dark-line); display:flex; justify-content:space-between; align-items:center; gap:1.75rem; padding-block:1.5rem; font-size:var(--text-caption); color:var(--dark-muted); }
.footer-bottom a { padding-block:0.5rem; }
.footer-bottom .footer-team-link { display:block; width:fit-content; min-height:2.75rem; text-decoration:underline; text-underline-offset:0.1875rem; }
.mobile-build-bar { display:none; }
.review-dialog { width:min(48.75rem,calc(100% - 3rem)); max-height:calc(100svh - 4rem); background:#fff; border:0; border-radius:0.5rem; padding:0; color:var(--ink); }
.review-dialog::backdrop { background:#0b0c0ddd; }
.review-heading { display:flex; justify-content:space-between; align-items:center; gap:1.75rem; padding:1.75rem 2rem; border-bottom:0.0625rem solid var(--line); }
.review-heading h2 { font-family:ArchivoDisplay,Archivo,Arial,sans-serif; font-size:1.75rem; font-weight:600; }
.review-heading p { font-size:var(--text-body); color:var(--muted); margin-top:0.5rem; }
.close-review { display:grid; place-items:center; width:2.75rem; height:2.75rem; background:var(--fog); border:0.0625rem solid var(--line); border-radius:50%; color:var(--ink); flex:none; }
.close-review:hover { border-color:var(--ink); }
.review-body { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; padding:1.75rem 2rem; }
.review-body h3 { font-size:1.125rem; font-weight:500; margin-bottom:1rem; }
.review-details,.review-lines { margin:0; }
.review-details>div { padding:0.75rem 0; border-top:0.0625rem solid var(--line); }
.review-details dt { font-size:var(--text-caption); color:var(--muted); }
.review-details dd { margin:0.25rem 0 0; font-size:var(--text-body); font-weight:500; }
.review-lines>div { display:flex; justify-content:space-between; gap:1.5rem; font-size:var(--text-body); padding:0.75rem 0; border-bottom:0.0625rem solid var(--line); }
.review-lines dd { margin:0; }
.review-small { font-size:var(--text-caption); color:var(--muted); }
.review-next { margin:0 2rem 2rem; padding:1.5rem; background:var(--fog); }
.review-next h3 { font-size:1.1875rem; font-weight:500; }
.review-next p { font-size:var(--text-body); color:var(--muted); margin-top:0.75rem; }
.review-buttons { display:flex; flex-wrap:wrap; gap:0.75rem; margin-top:1.25rem; }
.copy-status { min-height:1.25rem; font-size:var(--text-small); margin-top:0.75rem; color:var(--muted); }
h2 { font-family:ArchivoDisplay,Archivo,Arial,sans-serif; font-size:var(--section-title); font-weight:600; line-height:1.22; letter-spacing:-.025em; }
.step-panel>h3,.service-table-heading h2,.travel-rate strong { font-family:Archivo,Arial,sans-serif; font-size:var(--subheading); font-weight:500; line-height:1.35; letter-spacing:-.02em; }
.section-pad { padding-block:var(--section-space); }
.builder { container-type:inline-size; color:var(--ink); background:#fff; padding:clamp(3.5rem,5vw,4.5rem) var(--edge); min-width:0; }
.builder-help { display:flex; flex-wrap:wrap; align-items:center; gap:0.5rem; padding-block:0.625rem; font-size:var(--text-body); color:var(--muted); white-space:normal; }
.contact-link { display:inline-flex; align-items:center; gap:0.625rem; }
.builder-help .contact-link { color:var(--ink); text-decoration:underline; text-underline-offset:0.3125rem; }
.feature { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); align-items:center; }
.feature-photo { position:relative; aspect-ratio:4/3; background:var(--panel); overflow:hidden; }
.feature-photo img { width:100%; height:100%; object-fit:cover; }
.transport-photo img { object-position:50% 20%; }
.work-gallery { background:var(--fog); }
.gallery-site-header .header-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
.gallery-site-header .brand { justify-self:center; }
.gallery-home { display:inline-flex; align-items:center; gap:0.625rem; justify-self:start; min-height:2.75rem; font-size:var(--text-body); }
.gallery-home:hover { color:var(--dark-muted); }
.gallery-page .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:2rem 1.5rem; }
.proof-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2rem; }
.proof-label { font-size:var(--text-small); font-weight:500; margin-bottom:0.75rem; }
.proof-heading>p { color:var(--muted); font-size:var(--text-body); max-width:38ch; }
.gallery-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1.125rem; }
.gallery-open { display:block; position:relative; width:100%; border:0; padding:0; background:none; text-align:left; } .gallery-open:disabled { cursor:default; } .gallery-open:disabled .gallery-enlarge { display:none; }
.gallery-frame { display:block; position:relative; aspect-ratio:4/3; overflow:hidden; background:var(--panel); }
.gallery-frame img { position:absolute; width:var(--photo-w); height:var(--photo-h); max-width:none; left:var(--photo-x); top:var(--photo-y); }
.gallery-enlarge { position:absolute; right:0.625rem; bottom:0.625rem; display:flex; align-items:center; gap:0.5rem; padding:0.4375rem 0.625rem; background:var(--black); color:#fff; font-size:var(--text-caption); }
.gallery-enlarge .arrow,.gallery-enlarge svg { width:0.875rem; height:0.875rem; flex-basis:0.875rem; }
.gallery-open:hover .gallery-enlarge { background:var(--red); }
.gallery-item figcaption { margin-top:0.75rem; font-size:var(--text-body); }
.gallery-source { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:0.5rem 1.5rem; margin-top:1.25rem; font-size:var(--text-caption); color:var(--muted); }
.gallery-source .text-link { font-size:var(--text-caption); color:var(--ink); gap:1rem; }
.customer-proof { display:grid; grid-template-columns:1fr 2fr; gap:var(--grid-gap); margin-top:3rem; padding-top:2.5rem; border-top:0.0625rem solid var(--line); scroll-margin-top:1.5rem; }
.google-score { display:flex; flex-wrap:wrap; gap:1rem; align-items:center; }
.google-score>strong { font-size:3.25rem; line-height:1; font-weight:500; letter-spacing:-.03em; }
.google-score>span>span { display:block; font-size:var(--text-caption); }
.google-score .review-stars { font-size:1.0625rem; letter-spacing:0.125rem; line-height:1.6; }
.review-checked { font-size:var(--text-caption); color:var(--muted); margin-top:1rem; }
.customer-quote blockquote { margin:0; font-size:clamp(1.25rem,1.8vw,1.625rem); line-height:1.55; letter-spacing:-.015em; }
.customer-quote figcaption { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:0.5rem 1.5rem; margin-top:1.25rem; font-size:var(--text-small); }
.customer-quote figcaption a { display:inline-flex; align-items:center; gap:0.5rem; color:var(--muted); padding-block:0.5rem; }
.customer-quote figcaption a:hover { color:var(--ink); text-decoration:underline; }
.gallery-dialog { width:min(56.25rem,calc(100% - 3rem)); max-height:calc(100svh - 3rem); margin:auto; padding:1.5rem; border:0.0625rem solid var(--dark-line); background:var(--black); color:#fff; overflow:auto; overscroll-behavior:contain; }
.gallery-dialog::backdrop { background:rgba(0,0,0,.86); }
.gallery-dialog-top,.gallery-dialog-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.gallery-dialog-top { margin-bottom:1rem; font-size:var(--text-small); color:var(--dark-muted); }
.gallery-dialog button { display:inline-flex; align-items:center; gap:0.625rem; background:transparent; border:0; padding:0.625rem 0; min-height:2.75rem; color:#fff; font-size:var(--text-small); }
.gallery-dialog button:hover { color:var(--dark-muted); }
.gallery-dialog .gallery-frame { width:min(100%,max(12rem,calc((100svh - 15.625rem)*4/3))); margin-inline:auto; }
.gallery-dialog figcaption { font-size:1rem; text-align:center; margin-top:1rem; }
.gallery-dialog-controls { flex-wrap:wrap; margin-top:0.5rem; }
@media(max-width:56.25rem) {
 .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 1.125rem; }
 .customer-proof { grid-template-columns:1fr 1.5fr; gap:2rem; }
}
@media(max-width:37.5rem) {
 .gallery-page .gallery-grid { gap:1.5rem; grid-template-columns:1fr; }
 .proof-heading { display:block; } .proof-heading>p { margin-top:1rem; }
 .gallery-grid { gap:1.25rem 0.75rem; } .gallery-enlarge { right:0.375rem; bottom:0.375rem; padding:0.375rem; font-size:0; gap:0; }
 .gallery-item figcaption { font-size:var(--text-small); margin-top:0.5rem; }
 .customer-proof { grid-template-columns:minmax(0,1fr); gap:1.75rem; margin-top:2rem; padding-top:2rem; }
 .gallery-dialog { width:calc(100% - 1.5rem); max-height:calc(100svh - 1.5rem); padding:1rem; }
 .gallery-dialog-controls button { font-size:var(--text-caption); gap:0.375rem; }
}
.feature-copy { min-width:0; }
.feature-copy h2 { max-width:20ch; }
.feature-copy>p { margin:1.5rem 0; font-size:1rem; line-height:1.75; color:var(--muted); max-width:46ch; }
.feature-copy .text-link { margin-top:1.5rem; }
.theme-dark { --muted:var(--dark-muted); background:var(--black); }
.transport { background:var(--panel); }
.feature-copy .price-note { font-size:var(--text-caption); margin:1.5rem 0 0.75rem; }
.coating-prices { margin-top:0; }
.choice-option { position:relative; cursor:pointer; min-width:0; display:block; }
.choice-option>input { position:absolute; opacity:0; inset:0; width:100%; height:100%; margin:0; cursor:pointer; }
.choice-surface { position:relative; height:100%; border:0.0625rem solid #bfc0c3; border-radius:0.1875rem; background:#fff; pointer-events:none; transition:border-color .18s; }
.choice-surface::after { content:''; position:absolute; right:1.25rem; top:calc(50% - 0.5rem); width:1rem; height:1rem; border:0.0625rem solid #8e8f94; border-radius:50%; background:#fff; }
.choice-option:hover>.choice-surface { border-color:var(--ink); }
.choice-option input:checked+.choice-surface { border-color:var(--red); }
.choice-option input:checked+.choice-surface::after { background:var(--red); border:0.25rem solid #fff; box-shadow:0 0 0 0.0625rem var(--red); }
.choice-option input:focus-visible+.choice-surface { outline:0.1875rem solid var(--red); outline-offset:0.25rem; }
.package-option .choice-surface { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:0 1.5rem; padding:1.375rem 3.5rem 1.375rem 1.375rem; }
.location-options .choice-option { flex:1; }
.location-options .choice-surface { display:flex; align-items:center; min-height:3.25rem; padding:0.75rem 3rem 0.75rem 1.25rem; font-size:var(--text-body); line-height:1.5; }
.package-copy { display:contents; }
.package-name { grid-column:1; grid-row:1; }
.package-description { grid-column:1; grid-row:2; }
.package-price { grid-column:2; grid-row:1/3; align-self:start; padding-top:0.1875rem; }
.package-option .choice-surface::after { top:1.9375rem; right:1.25rem; }
.package-features { grid-column:1/-1; margin:1rem 0 0; padding:0.875rem 0 0; border-top:0.0625rem solid var(--line); list-style:none; display:grid; grid-template-columns:1fr 1fr; gap:0.375rem 1.25rem; }
.package-features li { font-size:var(--text-body); line-height:1.6; color:var(--muted); }
.estimate-breakdown { margin:0; font-size:var(--text-small); }
.estimate-breakdown>div { display:flex; justify-content:space-between; gap:1rem; padding:0.5rem 0; }
.estimate-breakdown dt { color:var(--muted); }
.estimate-breakdown dd { margin:0; text-align:right; font-variant-numeric:tabular-nums; }
.builder-footer:has(.estimate-breakdown:not([hidden])) .estimate-breakdown { grid-column:1/-1; grid-row:2; border-block:0.0625rem solid var(--line); padding-block:0.625rem; }
.hero { background:var(--black); padding-block:2.5rem 3.5rem; }
.hero-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); align-items:center; }
.hero-copy { padding-block:1.5rem; }
.hero-location { font-size:var(--text-body); color:var(--dark-muted); margin-bottom:1.5rem; }
h1 { font-family:ArchivoDisplay,Archivo,Arial,sans-serif; font-size:clamp(2.25rem,3.6vw,3.5rem); font-weight:600; line-height:1.15; letter-spacing:-.03em; }
.hero-description { margin-top:1.5rem; max-width:40ch; font-size:var(--text-lead); line-height:1.7; color:var(--dark-muted); }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:1.25rem 1.75rem; margin-top:2rem; }
.hero-actions .btn { gap:1.5rem; }
.hero-starting-price { display:flex; flex-wrap:wrap; align-items:baseline; gap:0.375rem; margin-top:2.5rem; font-size:var(--text-body); color:var(--dark-muted); }
.hero-starting-price strong { color:#fff; font-size:1.25rem; font-weight:500; }
.hero-starting-price>span { flex-basis:100%; font-size:var(--text-caption); }
.hero-photo { aspect-ratio:1; overflow:hidden; background:var(--panel); }
.hero-photo img { width:100%; height:100%; object-fit:cover; object-position:50% 50%; }
#services { container-type:inline-size; }
.care-introduction { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:var(--grid-gap); align-items:start; }
.care-intro-copy>p { max-width:42ch; margin-top:1.5rem; color:var(--muted); }
.care-intro-copy .text-link { margin-top:1.5rem; }
.care-introduction .care-breakdown li { padding:1.125rem 0; border-top:0.0625rem solid var(--line); grid-template-columns:5.625rem 1fr; gap:1.5rem; }
.care-introduction .care-breakdown li:last-child { padding-bottom:0; }
.vehicle-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0.75rem; margin-top:1.5rem; }
.vehicle-option .choice-surface { display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; padding:0; overflow:hidden; }
.vehicle-visual { display:block; grid-column:1; grid-row:1; width:100%; aspect-ratio:1.75; background:#fff url('assets/vehicle-sizes.jpg') 0 50% / 300% auto no-repeat; }
.vehicle-medium { background-position:50% 50%; }
.vehicle-large { background-position:100% 50%; }
.vehicle-copy { display:block; grid-column:1; grid-row:2; padding:0.75rem 2.75rem 1.25rem 1.125rem; }
.vehicle-option .choice-surface::after { position:relative; grid-column:1; grid-row:2; align-self:center; justify-self:end; margin-right:1rem; top:auto; right:auto; bottom:auto; }
.vehicle-name { display:block; font-size:1.125rem; font-weight:500; line-height:1.3; }
.vehicle-desc { display:block; margin-top:0.375rem; color:var(--muted); font-size:var(--text-body); line-height:1.5; }
.vehicle-desc br { display:none; }
@media(max-width:79.9375rem) { .header-phone { display:none; } }
@media(max-width:62.5rem) {
 .header-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1.5rem; }
 .brand { justify-self:center; } .menu-toggle { display:inline-flex; } .desktop-nav { display:none; }
 .hero-layout { gap:2rem; } .hero-description { font-size:var(--text-lead); } .hero-photo { aspect-ratio:3/4; }
 .hero-actions { gap:1.25rem; } .hero-actions .btn { padding-inline:1.125rem; }
}

@media(min-width:68.8125rem) {
 .builder-layout { display:grid; grid-template-columns:minmax(0,1fr) 17.5rem; gap:2.5rem; align-items:start; }
 .builder-form { padding:1.75rem 0 0; }
 .builder-footer { display:block; position:sticky; top:calc(var(--header) + 1.5rem); margin-top:1.75rem; padding:1.5rem; border:0.0625rem solid var(--line); border-radius:0.1875rem; background:var(--fog); }
 .footer-estimate { display:flex; flex-wrap:wrap; flex-direction:column; align-items:flex-start; gap:1.25rem; }
 .total-label { font-size:var(--text-body); color:var(--ink); }
 .total-label strong { font-size:var(--text-small); color:var(--muted); margin-top:0.5rem; }
 .total-price { font-size:2.5rem; }
 .builder-buttons { margin-top:1.5rem; gap:0.5rem; }
 .builder-buttons .btn { min-width:0; flex:1; padding-inline:1rem; gap:0.75rem; font-size:var(--text-body); }
 .back-button { width:2.75rem; flex:none; }
 .estimate-terms { margin-top:1rem; }
 .estimate-breakdown { margin-top:1.5rem; }
 .location-options { gap:0.625rem; }
 .location-options .choice-surface { padding:0.75rem 2.125rem 0.75rem 0.75rem; font-size:var(--text-small); }
 .location-options .choice-surface::after { right:0.75rem; }
 .addon-options { gap:0 1.5rem; }
}

@media(max-width:68.75rem) {
 body.has-build-bar { padding-bottom:var(--build-bar-height,calc(5.625rem + env(safe-area-inset-bottom))); }
 .has-build-bar .mobile-nav { max-height:calc(100svh - var(--header) - var(--build-bar-height,calc(5.625rem + env(safe-area-inset-bottom)))); }
 .mobile-build-bar { display:flex; flex-wrap:wrap; position:fixed; bottom:0; left:0; right:0; align-items:center; gap:1rem; justify-content:space-between; background:var(--black); padding:0.875rem 1.25rem calc(0.875rem + env(safe-area-inset-bottom)); z-index:25; border-top:0.0625rem solid var(--dark-line); }
 .mobile-estimate span { display:block; font-size:var(--text-caption); color:var(--dark-muted); }
 .mobile-estimate strong { font-size:1.625rem; line-height:1.2; font-weight:500; }
 .mobile-build-bar .btn { max-width:100%; min-height:3rem; padding:0.75rem 1.125rem; font-size:var(--text-body); gap:1rem; flex:none; } .builder-footer { gap:1.25rem 1.75rem; } .builder-buttons .btn { min-width:13.125rem; padding-inline:1.25rem; } .care-breakdown li { grid-template-columns:1fr; gap:0.375rem; padding-block:0.625rem; }
 .service-row { grid-template-columns:minmax(8.125rem,.9fr) minmax(0,1.15fr) 7.25rem 5.125rem; gap:1.25rem; } .service-row strong { font-size:1.125rem; } .service-row>span { font-size:1rem; } .coating-prices { gap:1.5rem; } .coating-prices strong { font-size:1.4375rem; }
 .program-section .shell,.faq-layout { gap:2.5rem; } .footer-main { gap:2rem; }
}
@media(max-width:56.25rem) {
 .feature { grid-template-columns:minmax(0,1fr); gap:2rem; }
 .feature-photo { aspect-ratio:3/2; }
 .feature-reversed .feature-photo { grid-row:1; }
 .feature-copy h2 { max-width:22ch; }
 .feature-copy>p { max-width:58ch; }
 .care-breakdown li { grid-template-columns:6.25rem 1fr; gap:1.5rem; }
 .location-options .choice-surface { padding:0.75rem 2.375rem 0.75rem 0.75rem; font-size:var(--text-small); }
 .location-options .choice-surface::after { right:0.75rem; }
}
@media(max-width:45rem) {
 .hero { padding-block:0.5rem 2rem; } .hero-layout { grid-template-columns:1fr; gap:2rem; }
 .hero-copy { padding-top:1.5rem; padding-bottom:0; } .hero-photo { aspect-ratio:4/3; }
 .hero-location { margin-bottom:1.125rem; font-size:var(--text-small); }
 h1 { font-size:clamp(1.9375rem,7.8vw,2.875rem); }
 .hero-description { margin-top:1.25rem; font-size:var(--text-lead); max-width:42ch; }
 .hero-actions { gap:1rem; margin-top:1.5rem; }
 .hero-actions .btn { padding-inline:1.125rem; gap:1rem; }
 .hero-starting-price { margin-top:1.5rem; }
 .care-introduction { grid-template-columns:minmax(0,1fr); gap:2.25rem; }
 .care-intro-copy>p { max-width:48ch; }

 .builder-footer:has(.estimate-breakdown:not([hidden])) .estimate-breakdown { margin-bottom:1.5rem; }
 :root { --pad:min(1.5rem,6vw); --header:4.5rem; --subheading:1.25rem; }
 .header-inner { gap:1rem; } .brand img { width:6.5rem; height:3.125rem; } .menu-toggle span,.desktop-label { display:none; } .compact-label { display:inline; } .header-actions .btn { padding:0.625rem 0.875rem; font-size:var(--text-body); }
 .mobile-nav { max-height:calc(100svh - var(--header)); }
 .assurance-inner { gap:1.5rem; padding-block:1.75rem; } .assurance strong { font-size:var(--text-body); } .assurance span { font-size:var(--text-small); } .builder-heading { display:block; margin-bottom:1.75rem; } .builder-heading p { font-size:var(--text-body); margin-top:0.875rem; }
 .step-nav { gap:1rem; } .step-nav button { font-size:var(--text-body); gap:0.5rem; } .step-nav button span { font-size:var(--text-caption); } .builder-form { padding:1.75rem 0; }
 .service-location { margin-top:1.75rem; } .location-options { gap:0.5rem; } .location-note { font-size:var(--text-small); }
 .builder-footer { display:block; padding-top:1.5rem; } .footer-estimate { margin-bottom:1.375rem; } .builder-buttons .btn { flex:1; min-width:0; } .estimate-terms { margin-top:0.875rem; }
 .build-context { gap:1rem; font-size:var(--text-caption); } .build-context button { font-size:var(--text-caption); } .package-name { font-size:1.125rem; } .package-description { font-size:var(--text-body); } .package-price { font-size:1.625rem; } .addon-options { grid-template-columns:1fr; } .addon-item select { font-size:1rem; } .addon-help { font-size:var(--text-small); } .care-breakdown li { grid-template-columns:5.25rem 1fr; gap:1rem; padding-block:0.75rem; }
  .service-table-heading { display:block; padding-bottom:1.5rem; } .service-table-heading p { margin-top:0.75rem; font-size:var(--text-body); }
 .service-row { grid-template-columns:minmax(0,1fr) auto 1.5rem; gap:0.75rem 1rem; padding:1.5rem 0; min-height:0; } .service-row strong { font-size:1.125rem; } .service-row p { grid-column:1/-1; grid-row:2; } .service-action>span:first-child { position:absolute; width:0.0625rem; height:0.0625rem; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } .service-row .service-action { justify-content:center; width:1.5rem; } .service-row>span { font-size:1rem; } .coating-prices { gap:1.75rem; } .coating-prices strong { font-size:1.4375rem; }
 .program-section .shell { grid-template-columns:1fr; gap:1.75rem; padding-block:2.5rem; } .program-links p { max-width:33ch; }
 .faq-layout { grid-template-columns:1fr; gap:2.25rem; } .faq-intro p { max-width:36ch; margin-top:1.25rem; } .faq-list details p { padding-right:0; }
 .closing .shell { display:block; padding-block:3rem; } .closing .btn { margin-top:1.5rem; }
 .footer-main { grid-template-columns:1fr 1fr; gap:2rem 1.5rem; padding-block:2.5rem; } .footer-brand { grid-column:1/-1; } .footer-col a,.footer-col p { overflow-wrap:anywhere; } .footer-bottom { display:grid; grid-template-columns:1fr auto; gap:0.75rem 1.25rem; } .footer-bottom span:nth-child(2) { grid-column:1/-1; grid-row:2; } .footer-bottom a { grid-column:2; grid-row:1; }
 .review-dialog { width:100%; max-width:none; height:100%; max-height:100svh; margin:0; border:0; border-radius:0; } .review-heading { padding:1.5rem; position:sticky; top:0; z-index:2; background:#fff; } .review-heading h2 { font-size:1.625rem; } .review-body { grid-template-columns:1fr; padding:1.5rem; gap:1.75rem; } .review-details dt,.review-small { font-size:var(--text-body); } .review-next { margin:0 1.5rem 1.5rem; padding:1.25rem; } .review-buttons { flex-direction:column; } .review-buttons .btn { width:100%; }
}
@media(max-width:33.75rem) {
 .shop-location { align-items:flex-start; flex-direction:column; gap:0.625rem; }
 .postal-controls { flex-wrap:wrap; gap:0.625rem; }
 .postal-controls input { flex:1 1 8.125rem; width:8.125rem; }
 .postal-controls .btn { min-width:8.125rem; flex:1 1 8.125rem; padding-inline:1rem; font-size:var(--text-body); }
 .vehicle-options { grid-template-columns:1fr; gap:0.625rem; }
 .vehicle-option .choice-surface { grid-template-columns:7rem minmax(0,1fr); grid-template-rows:1fr; gap:0.75rem; min-height:6.25rem; align-items:center; }
 .vehicle-visual { aspect-ratio:1.2; }
 .vehicle-copy { grid-column:2; grid-row:1; padding:1rem 2.5rem 1rem 0; }
 .vehicle-option .choice-surface::after { grid-column:2; grid-row:1; margin-right:0.875rem; }
 .vehicle-name { font-size:1.0625rem; }
 .care-introduction .care-breakdown li { grid-template-columns:4.75rem 1fr; gap:1.25rem; }

 .program-links { grid-template-columns:1fr; gap:1.5rem; }
 .program-links a { border-top:0.0625rem solid var(--dark-line); padding-top:1.25rem; }
 .program-links a:first-child { padding-top:1.25rem; }
 .package-features { grid-template-columns:1fr; gap:0.25rem; }
 .package-option .choice-surface::after { top:1.5625rem; }
 .builder-footer:has(.estimate-breakdown:not([hidden])) .estimate-breakdown { margin-bottom:1.5rem; }
 .footer-main { grid-template-columns:1fr; }
 .feature-copy>p { font-size:var(--text-body); margin-block:1.25rem; }
 .builder-help { margin-top:0.5rem; }
 .location-options { flex-direction:column; gap:0.625rem; }
 .location-options .choice-surface { padding:0.875rem 2.75rem 0.875rem 1rem; font-size:var(--text-body); }
 .location-options .choice-surface::after { right:0.875rem; }
 .package-option .choice-surface { padding:1.25rem 2.75rem 1.25rem 1rem; gap:0 1rem; }
 .package-option .choice-surface::after { right:0.875rem; }
 .package-price { font-size:1.5rem; }
 .mobile-estimate strong { font-size:1.5rem; }

 .assurance-inner { grid-template-columns:1fr; gap:1.25rem; } .assurance strong { font-size:var(--text-body); } .assurance span { font-size:var(--text-body); }
}
@media(max-width:22.4375rem) {
 .vehicle-option .choice-surface { grid-template-columns:5.5rem minmax(0,1fr); gap:0.5rem; }

 :root { --pad:min(1.25rem,6vw); } .header-inner { gap:0.75rem; } .brand img { width:6rem; } .header-actions .btn { padding-inline:0.625rem; }
 .step-nav { gap:0.75rem; } .step-nav button { font-size:var(--text-small); gap:0.375rem; } .build-context { display:block; } .build-context button { display:block; } .addon-copy { gap:0.625rem; } .addon-item label { font-size:var(--text-body); }
 .care-breakdown li { grid-template-columns:1fr; gap:0.375rem; } .service-row { gap:0.75rem; } .service-row strong { font-size:1.0625rem; } .coating-prices { gap:1.25rem; } .coating-prices span { font-size:var(--text-caption); } .coating-prices strong { font-size:1.375rem; }
 .mobile-build-bar { padding-inline:1rem; gap:0.75rem; } .mobile-build-bar .btn { padding-inline:0.875rem; gap:0.75rem; font-size:var(--text-body); } .mobile-estimate span { max-width:15ch; line-height:1.3; }
}
@media(max-width:19.9375rem) {
 .care-introduction .care-breakdown li { grid-template-columns:1fr; gap:0.5rem; }
 .hero-actions { gap:0.75rem; } .hero-actions .btn { padding-inline:0.875rem; }

 .header-actions .compact-label { display:none; } .header-actions .tiny-label { display:inline; }
 .mobile-build-bar .btn { padding-inline:0.75rem; font-size:var(--text-body); gap:0; }
 .mobile-build-bar .btn .arrow { display:none; }
 .mobile-estimate strong { font-size:1.375rem; white-space:nowrap; }
}
@media(prefers-reduced-motion:no-preference) { .step-panel:not([hidden]) { animation:step-in .22s var(--ease); } @keyframes step-in { from { opacity:.8; transform:translateY(0.1875rem); } to { opacity:1; transform:translateY(0); } } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation:none!important; transition:none!important; } }
@container site-header (max-width:62.5rem) {
 .header-inner { grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:1.5rem; } .brand { justify-self:center; } .menu-toggle { display:inline-flex; } .desktop-nav,.header-phone { display:none; }
}
@container site-header (max-width:32rem) {
 .header-inner { gap:1rem; } .menu-toggle span,.header-actions .desktop-label { display:none; } .header-actions .compact-label { display:inline; } .header-actions .btn { padding-inline:0.875rem; font-size:var(--text-body); }
}
@container site-header (max-width:16rem) { .gallery-home>span:last-child { display:none; } .header-inner,.gallery-site-header .header-inner { gap:0.75rem; grid-template-columns:auto minmax(0,1fr) auto; } .brand { min-width:0; max-width:100%; } .brand img { max-width:100%; } .header-actions .compact-label { display:none; } .header-actions .tiny-label { display:inline; } .header-actions .btn { padding-inline:0.625rem; } }
@container(max-width:32rem) {
 .care-introduction,.footer-main,.builder-layout { grid-template-columns:minmax(0,1fr); } .builder-footer { position:static; }
 .vehicle-options,.addon-options { grid-template-columns:minmax(0,1fr); } .location-options { flex-direction:column; }
 .vehicle-option .choice-surface { grid-template-columns:7rem minmax(0,1fr); grid-template-rows:1fr; gap:0.75rem; align-items:center; }
 .vehicle-visual { aspect-ratio:1.2; } .vehicle-copy { grid-column:2; grid-row:1; padding:1rem 2.5rem 1rem 0; } .vehicle-option .choice-surface::after { grid-column:2; grid-row:1; }
 .service-row { grid-template-columns:minmax(0,1fr) auto 1.5rem; gap:0.75rem 1rem; } .service-row p { grid-column:1/-1; grid-row:2; }
 .service-action>span:first-child { position:absolute; width:0.0625rem; height:0.0625rem; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; } .service-row .service-action { justify-content:center; width:1.5rem; }
}
@container(max-width:12rem) {
 .care-introduction .care-breakdown li { grid-template-columns:minmax(0,1fr); gap:0.5rem; }
 .builder-buttons .btn { flex:1 1 100%; padding-inline:0.75rem; gap:0.75rem; }
 .step-nav { grid-template-columns:1fr; gap:0; } .step-nav button { padding-block:0.5rem; }
 .vehicle-option .choice-surface { grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr; gap:0; }
 .vehicle-visual { grid-column:1; grid-row:1; aspect-ratio:2.2; }
 .vehicle-copy { grid-column:1; grid-row:2; padding:0.75rem 2.5rem 1rem 0.875rem; }
 .vehicle-option .choice-surface::after { grid-column:1; grid-row:2; }
 .service-row { grid-template-columns:minmax(0,1fr) 1.5rem; }
 .service-row strong { grid-column:1; } .service-row>span:not(.service-action) { grid-column:1; grid-row:2; }
 .service-row .service-action { grid-column:2; grid-row:1/3; } .service-row p { grid-row:3; }
 .package-option .choice-surface { grid-template-columns:minmax(0,1fr); }
 .package-price { grid-column:1; grid-row:3; margin-top:0.5rem; }
 .package-features { grid-row:4; }
}
@media(max-height:28rem) {
 .mobile-build-bar { display:none; } body.has-build-bar { padding-bottom:0; }
}

/* Area popup: a small card for visitors within mobile range. Inserted by area-popup.js after the page settles; never blocks the page. */
.area-popup { position:fixed; right:1.5rem; bottom:1.5rem; z-index:30; width:min(22.5rem,calc(100% - 3rem)); padding:1.5rem 1.5rem 1.375rem; background:var(--white); color:var(--ink); border:0.0625rem solid var(--line); border-radius:1rem; box-shadow:0 1.25rem 3rem #0000002e,0 0.25rem 0.75rem #00000014; opacity:0; transform:translateY(1rem); transition:opacity 0.4s var(--ease),transform 0.5s var(--ease); }
.area-popup.is-visible { opacity:1; transform:none; }
.area-popup-close { position:absolute; top:0.75rem; right:0.75rem; display:inline-flex; align-items:center; justify-content:center; width:2.25rem; height:2.25rem; padding:0; border:0; border-radius:50%; background:none; color:var(--muted); cursor:pointer; }
.area-popup-close svg { width:1.125rem; height:1.125rem; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; }
.area-popup-close:hover { color:var(--ink); background:#0000000a; }
.area-popup-eyebrow { display:flex; align-items:center; gap:0.5rem; margin:0 2.5rem 0.75rem 0; color:var(--red); font-size:var(--text-caption); font-weight:600; letter-spacing:0.04em; text-transform:uppercase; }
.area-popup-eyebrow svg { width:1.125rem; height:1.125rem; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.area-popup h2 { margin:0 2rem 0.5rem 0; font-size:1.375rem; line-height:1.2; letter-spacing:-0.02em; text-wrap:balance; }
.area-popup p#area-popup-text { margin:0 0 1.25rem; color:var(--muted); font-size:var(--text-small); line-height:1.5; text-wrap:pretty; }
.area-popup-actions { display:flex; align-items:center; gap:0.5rem 1.25rem; flex-wrap:wrap; }
.area-popup-shop { display:inline-flex; align-items:center; gap:0.25rem; padding:0.5rem 0; color:var(--ink); font-size:var(--text-small); font-weight:600; text-decoration:underline; text-underline-offset:0.2em; }
.area-popup-shop .arrow { width:1rem; height:1rem; flex-basis:1rem; }
.area-popup-shop .arrow svg { width:1rem; height:1rem; fill:none; stroke:currentColor; stroke-width:1.75; stroke-linecap:round; stroke-linejoin:round; }
.area-popup-shop:hover { color:var(--red); }
.hero-location-link { color:inherit; text-decoration:underline; text-underline-offset:0.2em; text-decoration-color:#ffffff66; }
.hero-location-link:hover { text-decoration-color:currentColor; }
.area-popup :focus-visible { outline:0.125rem solid var(--red); outline-offset:0.125rem; }
@media (max-width:40rem) { .area-popup { right:0.75rem; bottom:max(0.75rem,env(safe-area-inset-bottom)); left:0.75rem; width:auto; padding:1.375rem 1.25rem 1.25rem; border-radius:0.875rem; } }
@media (prefers-reduced-motion:reduce) { .area-popup { transition:none; transform:none; } }

/* Agency credit in the footer strip. */
.footer-credit { color:inherit; text-decoration:underline; text-underline-offset:0.2em; text-decoration-color:#ffffff55; }
.footer-credit:hover { text-decoration-color:currentColor; }
