/* Brand palette lives here only. Navy is reserved for the header bar, the
   trust band, the closing call to action and the footer. Everything between
   them alternates white and pale. Aqua is decoration: teal carries text. */
:root{
  --navy:#0f2a44; --slate:#1c3e5a; --navy-mid:#1c3e5a; --navy-deep:#0a1e33;
  --blue:#11738a; --sky:#19b5d9; --foam:#d7ebf4;
  --white:#ffffff; --off:#e9f3f8; --gray:#4a6478; --text:#0f2a44;
  --accent:#6cc24a; --accent-dark:#58a83a; --border:#c3dbe8;
  --radius:16px; --shadow:0 18px 40px rgba(15,42,68,.14);
  /* San Francisco on Apple devices; each platform's system UI font elsewhere */
  --display:-apple-system,BlinkMacSystemFont,"SF Pro Display","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
section[id],main[id]{scroll-margin-top:96px}
html{scroll-behavior:smooth;scroll-padding-top:96px}
/* Backstop for widows: browsers that support it avoid a lone last word. */
p,li,h1,h2,h3,h4,figcaption,blockquote,summary,legend{text-wrap:pretty}
body{font-family:var(--body);color:var(--text);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.tbd{background:#fff3b0;color:#5c4700;border-radius:4px;padding:0 4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--body);font-weight:600;font-size:15px;text-decoration:none;border:0;border-radius:8px;padding:12px 20px;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s;white-space:nowrap}
.btn:hover{transform:translateY(-1px)}
.btn-green{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgba(108,194,74,.3)}
.btn-green:hover{background:var(--accent-dark)}
.btn-outline{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.35)}
.btn-outline-light{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.5)}
.btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-outline:hover{border-color:#fff}
.btn-lg{font-size:16px;padding:16px 26px}
.btn svg{width:18px;height:18px;flex:none}

/* ---------- Nav ---------- */
nav.top{position:sticky;top:0;z-index:50;background:var(--navy);border-bottom:1px solid rgba(255,255,255,.06)}
nav.top .wrap{display:flex;align-items:center;justify-content:space-between;height:104px;gap:24px;transition:height .18s ease}
/* Past 40px of scroll the bar tightens up and picks up a shadow and aqua rule. */
nav.top.is-compact{box-shadow:0 8px 24px rgba(15,42,68,.22);border-bottom:1px solid var(--sky)}
nav.top.is-compact .wrap{height:84px}
nav.top.is-compact .logo img{height:74px}
.skip-link{position:absolute;left:12px;top:-60px;z-index:100;background:#fff;color:var(--navy);font-weight:700;padding:10px 16px;border-radius:0 0 8px 8px;text-decoration:none;transition:top .15s ease}
.skip-link:focus{top:0;outline:3px solid var(--sky);outline-offset:2px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:#fff}
.logo img{height:92px;width:auto;transition:height .18s ease}
.logo-area{font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;color:var(--sky);padding-left:12px;border-left:1px solid rgba(255,255,255,.18);line-height:1.45;white-space:nowrap}
/* Footer logo: the header logo file, a touch smaller. */
.foot-logo img{height:80px}
.nav-links{display:flex;gap:26px;list-style:none;white-space:nowrap}
.nav-links a{color:rgba(255,255,255,.85);text-decoration:none;font-size:15px;font-weight:500;white-space:nowrap}
.nav-links a:hover{color:#fff}
.nav-cta{display:flex;gap:8px}
.nav-cta .btn{padding:10px 15px;font-size:14px;white-space:nowrap}
.menu-btn{display:none;background:none;border:0;color:#fff;cursor:pointer;padding:8px;min-width:46px;min-height:46px;align-items:center;justify-content:center}
.menu-btn svg{width:28px;height:28px}

/* ---------- Hero: faded Reno skyline behind the copy and the quote card ---------- */
.hero{position:relative;background:var(--off);color:var(--text);padding:60px 0 72px;overflow:hidden;isolation:isolate}
/* Background layer: the Reno skyline, fitted to the hero and never wider than
   the page. A one-time slow settle from 1.04 to 1.0 on load, compositor only,
   and none at all for reduced motion. */
.hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.hero-media{position:absolute;inset:0;background:var(--off)}
.hero-poster{position:absolute;inset:0;display:block}
.hero-poster img{width:100%;height:100%;object-fit:cover;object-position:55% 40%;display:block;animation:hero-settle 18s cubic-bezier(.22,.61,.36,1) both}
@keyframes hero-settle{from{transform:scale(1.04)}to{transform:scale(1)}}
@media (max-width:640px){.hero-poster img{object-position:50% 45%!important}}
/* The veil knocks the photo back to a ghosted texture so the copy stays AA. */
.hero-veil{position:absolute;inset:0;background:rgba(233,243,248,.88)}
.hero-foot{position:absolute;left:0;right:0;bottom:0;height:140px;background:linear-gradient(to bottom,rgba(15,42,68,0) 0%,rgba(15,42,68,.22) 100%)}

.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1fr 45%;gap:48px;align-items:center}
.pill{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--blue);background:rgba(255,255,255,.92);border:1px solid var(--border);border-radius:999px;padding:7px 14px}
.pill::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sky);box-shadow:0 0 0 3px rgba(25,181,217,.22)}
.hero h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,4.2vw,52px);line-height:1.04;letter-spacing:-.03em;text-transform:uppercase;margin:18px 0 18px;color:var(--text)}
.hero h1 span{color:var(--blue);display:block}
.hero-lede{font-size:18px;color:var(--slate);max-width:520px;margin-bottom:26px}

/* Quote card */
.quote-card{background:#fff;color:var(--text);border-radius:20px;padding:32px;box-shadow:0 34px 72px rgba(15,42,68,.26),0 2px 8px rgba(15,42,68,.08)}
.quote-card h2{font-family:var(--display);font-weight:800;font-size:30px;line-height:1.05;letter-spacing:-.025em;text-transform:uppercase;margin:14px 0 8px}
.quote-card h2 span{color:var(--blue)}
.quote-card > p{font-size:14px;color:var(--gray);margin-bottom:20px}
.quote-card .btn{width:100%;margin-top:18px;font-size:17px;padding:15px}
.hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg{display:none;margin-top:14px;padding:12px 14px;border-radius:10px;font-size:14px;background:var(--foam);color:var(--navy)}
.form-msg.is-ok{background:#E9F3F8;color:#1E6B52;display:flex;align-items:flex-start;gap:10px}
.form-msg .msg-icon{flex:none;display:grid;place-items:center;width:22px;height:22px;margin-top:1px;border-radius:50%;background:var(--accent);color:var(--navy)}
.form-msg .msg-icon svg{width:14px;height:14px}
.form-foot{text-align:center;font-size:13px;color:var(--gray);margin-top:14px}
.form-foot a{color:var(--blue);font-weight:700}

/* ---------- Wildfire card ---------- */
.promo{--fire:#ef3b2d;position:relative;display:flex;align-items:flex-start;gap:20px;max-width:560px;padding:22px 24px;border-radius:12px;color:#fff;text-decoration:none;
  background:linear-gradient(135deg,#143a5e 0%,#0f2a44 100%);border:1px solid rgba(255,255,255,.14);border-left:5px solid var(--fire);
  box-shadow:0 16px 36px rgba(15,42,68,.26)}
.promo-hero{max-width:560px}
.promo-icon{flex:none;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;color:var(--fire);background:#fff;box-shadow:0 4px 12px rgba(0,0,0,.25)}
.promo-icon svg{width:28px;height:28px}
.promo-body{display:flex;flex-direction:column;gap:4px}
.promo-eyebrow{font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#c6f24e}
.promo-title{font-family:var(--display);font-size:22px;font-weight:800;letter-spacing:-.01em;line-height:1.2}
.promo-text{font-size:14px;line-height:1.5;color:rgba(255,255,255,.84)}
.promo-actions{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:14px}
.promo-link{color:var(--sky);font-weight:600;font-size:15px;text-decoration:underline}
.promo-link:hover{color:#fff}

/* ---------- Trust strip ---------- */
/* Trust strip: one compact row on desktop (14px + 30px line + 14px = 58px),
   aqua dividers between items, 2x2 below 1024px. */
.trust{background:var(--navy);color:#fff}
.trust-row{display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;padding-top:14px;padding-bottom:14px}
.trust-item{display:inline-flex;align-items:center;gap:9px;font-weight:600;font-size:15px;line-height:30px;color:#fff;white-space:nowrap}
.trust .wrap{max-width:1320px}
.trust .trust-item{padding:0 18px}
.trust .trust-item + .trust-item{border-left:1px solid var(--sky)}
.net-stars{color:#f5b301;letter-spacing:1px;font-size:15px;line-height:1}
.section-head .net-stars{font-size:22px;color:#a86d00}
.trust-item svg{width:18px;height:18px;color:var(--sky);flex:none}


/* ---------- Free quote modal ---------- */
.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1.5px;color:#0d6478;background:var(--foam);border-radius:999px;padding:5px 12px;text-transform:uppercase}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:6px}
.field.full{grid-column:1/-1}
.field label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gray)}
.field input,.field select,.field textarea{font:inherit;font-size:15px;color:var(--text);background:var(--off);border:1.5px solid var(--border);border-radius:10px;padding:11px 13px;width:100%}
.field textarea{min-height:76px;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sky);background:#fff;box-shadow:0 0 0 3px rgba(25,181,217,.18)}

/* ---------- Sections ---------- */
section{padding:96px 0}
.eyebrow{font-size:13px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--blue)}
.section-head{text-align:center;max-width:720px;margin:0 auto 56px}
.section-head h2{font-family:var(--display);font-weight:800;font-size:clamp(32px,3.8vw,46px);line-height:1.05;letter-spacing:-.03em;text-transform:uppercase;margin:10px 0 16px}
.section-head h2 span{color:var(--blue)}
.section-head p{color:var(--gray);font-size:17px}
.bg-off{background:var(--off)}

/* Services */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:22px}
.svc{background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}
.svc:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.svc-icon{width:52px;height:52px;border-radius:12px;background:var(--foam);color:var(--blue);display:grid;place-items:center;margin-bottom:18px}
.svc-icon svg{width:28px;height:28px}
.svc h3{font-size:20px;font-weight:700;margin-bottom:8px}
.svc p{color:var(--gray);font-size:15px;flex:1}
.svc a{margin-top:18px;color:var(--blue);font-weight:700;text-decoration:none;font-size:15px}
.svc a:hover{color:var(--navy)}

/* Why us */
/* Shorter than the sections around it, and the mountains stay faint. */
#why-us{--skyline:var(--blue);--skyline-opacity:.05;position:relative;overflow:hidden;padding:64px 0 72px}
#why-us::before{content:"";position:absolute;left:50%;top:10px;transform:translateX(-50%);width:max(100%,860px);aspect-ratio:2000/741;background:var(--skyline);opacity:var(--skyline-opacity);-webkit-mask:url("/images/reno-skyline-fade.png") center top/100% auto no-repeat;mask:url("/images/reno-skyline-fade.png") center top/100% auto no-repeat;pointer-events:none}
#why-us .wrap{position:relative;z-index:1}
#why-us .section-head{margin-bottom:34px}
#why-us .section-head h2{margin-bottom:12px}

.why-grid{display:grid;grid-template-columns:1fr;gap:28px;align-items:start}
.why-grid.has-photo{grid-template-columns:60% 1fr;gap:32px}
.why-tiles{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tile{background:var(--off);border:1px solid var(--border);border-radius:var(--radius);padding:22px 22px 20px}
.tile .svc-icon{width:44px;height:44px;margin-bottom:12px}
.tile .svc-icon svg{width:24px;height:24px}
.tile h3{font-size:17px;margin-bottom:6px}
.tile p{font-size:14px;color:var(--gray);line-height:1.5}
.why-grid .shot{margin:0;height:100%}
.why-grid .shot img{height:100%;object-fit:cover}

/* How it works: one row of four, joined by a thin line */
.howto{position:relative;list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;margin-top:40px}
.howto::before{content:"";position:absolute;top:21px;left:12.5%;right:12.5%;height:2px;background:var(--border)}
.howto li{position:relative;text-align:center}
.howto-num{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;margin:0 auto 12px;border-radius:50%;background:var(--navy);color:#fff;font-family:var(--display);font-weight:800;font-size:20px}
.howto h3{font-size:16px;margin-bottom:4px}
.howto p{font-size:14px;color:var(--gray);line-height:1.5}

/* Gallery */
.review-cta{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:20px 26px;margin-bottom:28px}
.review-cta strong{display:block;font-size:17px}
.review-cta span{color:var(--gray);font-size:14px}
#reviews .review-cta{margin:40px 0 0;background:var(--off)}
.g-filters{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:24px}
.g-filter{font:inherit;font-size:14px;font-weight:600;color:var(--navy);background:#fff;border:1.5px solid var(--border);border-radius:999px;padding:8px 18px;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.g-filter:hover{border-color:var(--blue)}
.g-filter[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#fff}
.g-filter span{opacity:.6;margin-left:4px;font-weight:500}

/* Top row: featured video beside the stacked comparison cards, equal heights */
.gallery-top{display:grid;grid-template-columns:55% 1fr;gap:16px;align-items:stretch;margin-bottom:16px}
.gallery-top.no-pairs{grid-template-columns:1fr}
.gallery-top[hidden]{display:none}
.g-feature{position:relative;height:100%;min-height:260px;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--navy)}
.gallery-top.no-pairs .g-feature{aspect-ratio:16/9;height:auto;min-height:0}
.g-feature img{width:100%;height:100%;object-fit:cover;object-position:50% 45%;display:block;transition:transform .35s}
.g-feature:hover img{transform:scale(1.04)}
.g-feature::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,18,25,.82) 0%,rgba(5,18,25,0) 52%)}
.g-feature-cap{position:absolute;left:18px;right:18px;bottom:16px;z-index:1;color:#fff;font-size:18px;font-weight:700;line-height:1.3}
.g-feature:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.gallery-pairs{display:flex;flex-direction:column;gap:16px}

/* Comparison card */
.g-compare{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px;box-shadow:0 10px 26px rgba(15,42,68,.10);margin:0}
.g-compare[hidden]{display:none}
.compare-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px;aspect-ratio:3/2;border-radius:8px;overflow:hidden}
.compare-half{position:relative;overflow:hidden;background:var(--navy)}
.compare-half picture{display:block;width:100%;height:100%}
.compare-half img{width:100%;height:100%;object-fit:cover;display:block}
.compare-label{position:absolute;left:10px;top:10px;background:rgba(0,0,0,.85);color:#fff;font-size:11px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;padding:5px 11px;border-radius:999px}
.g-compare figcaption{text-align:center;font-size:14px;font-weight:600;color:var(--navy);padding:10px 6px 2px}

/* Thumbnails */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.g-item{position:relative;display:block;aspect-ratio:4/3;border-radius:12px;overflow:hidden;cursor:pointer;background:var(--navy-mid);border:0;padding:0}
.g-item[hidden]{display:none}
.g-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s}
.g-item:hover img{transform:scale(1.05)}
.g-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(5,18,25,.78),rgba(5,18,25,0) 50%);pointer-events:none}
.g-item:focus-visible{outline:3px solid var(--sky);outline-offset:3px}
.g-tag{position:absolute;left:10px;top:10px;z-index:1;background:rgba(10,34,51,.85);color:#fff;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;border-radius:6px;padding:4px 8px}
.g-cap{position:absolute;left:12px;right:12px;bottom:10px;z-index:1;color:#fff;font-size:14px;font-weight:600;line-height:1.3;text-align:left}
.g-play{position:absolute;inset:0;margin:auto;z-index:1;width:58px;height:58px;border-radius:50%;background:rgba(255,255,255,.92);box-shadow:0 6px 20px rgba(0,0,0,.35);transition:transform .2s}
.g-play::before{content:"";position:absolute;left:23px;top:18px;border-style:solid;border-width:11px 0 11px 18px;border-color:transparent transparent transparent var(--navy)}
.g-feature .g-play{width:72px;height:72px}
.g-feature .g-play::before{left:28px;top:22px;border-width:14px 0 14px 22px}
.g-item:hover .g-play,.g-feature:hover .g-play{transform:scale(1.08)}
.gallery-more{display:block;margin:22px auto 0;min-width:180px}
.gallery-more[hidden]{display:none}
.gallery-note{text-align:center;color:var(--gray);font-size:14px;margin-top:20px}
/* Pop-up viewer */
.lightbox{position:fixed;inset:0;z-index:100;width:100%;max-width:none;height:100%;max-height:none;margin:0;border:0;background:rgba(5,18,25,.95);color:#fff;display:none;flex-direction:column;align-items:center;justify-content:center;padding:60px 76px 24px}
.lightbox[open]{display:flex}
.lightbox::backdrop{background:rgba(5,18,25,.6)}
.lb-media{display:flex;align-items:center;justify-content:center;max-width:100%}
.lb-media img{max-width:min(1200px,100%);max-height:calc(100vh - 150px);border-radius:12px}
.lb-video{width:min(1100px,calc(100vw - 152px));aspect-ratio:16/9;max-height:calc(100vh - 150px)}
.lb-video.short{width:auto;height:min(calc(100vh - 150px),780px);aspect-ratio:9/16}
.lb-video iframe{width:100%;height:100%;border:0;border-radius:12px;background:#000}
.lb-cap{color:#fff;margin-top:14px;font-size:15px;font-weight:600;text-align:center}
.lb-cap small{display:block;font-weight:400;color:rgba(255,255,255,.6);font-size:13px;margin-top:2px}
.lb-cap a{color:var(--sky)}
.lb-btn{position:absolute;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;border:0;background:rgba(255,255,255,.12);color:#fff;font-size:30px;line-height:1;cursor:pointer}
.lb-btn:hover{background:rgba(255,255,255,.24)}
.lb-close{top:14px;right:16px}
.lb-prev{left:16px;top:50%;margin-top:-24px}
.lb-next{right:16px;top:50%;margin-top:-24px}

/* Service area */
.area-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;align-items:stretch}
.towns{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:28px}
.towns span{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--border);border-radius:10px;padding:11px 14px;font-weight:600;font-size:15px}
.towns span::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sky);flex:none}
.zips h3{font-size:14px;letter-spacing:1.5px;text-transform:uppercase;color:var(--gray);margin-bottom:12px}
.zip-list{display:flex;flex-wrap:wrap;gap:8px}
.zip-list span{font-size:13px;font-weight:600;background:var(--foam);color:var(--navy);border-radius:6px;padding:5px 10px}
.map{border-radius:var(--radius);overflow:hidden;border:1px solid var(--border);min-height:420px;background:var(--foam)}
.map iframe{width:100%;height:100%;min-height:420px;border:0;display:block}

/* Reviews */
.rating{display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px}
/* Google logo + stars (embedded; source file images/google-rating.png) */

.section-head .rating{justify-content:center}

.rev-carousel{position:relative}
.rev-track{display:flex;gap:22px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:6px 2px 10px;scrollbar-width:none}
.rev-track::-webkit-scrollbar{display:none}
.rev-track:focus-visible{outline:3px solid var(--sky);outline-offset:4px;border-radius:var(--radius)}
.rev{flex:0 0 calc((100% - 44px) / 3);scroll-snap-align:start;background:var(--off);border:1px solid var(--border);border-radius:var(--radius);padding:28px;display:flex;flex-direction:column}
.rev .stars{font-size:18px;color:#fbbc04}
.rev blockquote{font-size:16px;margin:14px 0 22px;flex:1}
.rev-who{display:flex;align-items:center;gap:12px}
.avatar{width:44px;height:44px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-weight:700}
.rev-who strong{display:block;font-size:15px}
.rev-who span{font-size:13px;color:var(--gray)}
.rev-nav{position:absolute;top:50%;z-index:2;width:44px;height:44px;margin-top:-22px;border-radius:50%;border:1.5px solid var(--border);background:#fff;color:var(--navy);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 6px 16px rgba(10,34,51,.12)}
.rev-nav:hover{border-color:var(--blue);color:var(--blue)}
.rev-prev{left:-22px}
.rev-next{right:-22px}
.rev-dots{display:flex;justify-content:center;gap:0;margin-top:14px}
.rev-dots button{width:9px;height:9px;padding:8px;border:0;box-sizing:content-box;border-radius:50%;background:var(--border);background-clip:content-box;cursor:pointer;transition:width .2s}
.rev-dots button[aria-current="true"]{background:var(--blue);background-clip:content-box;width:24px;border-radius:13px}

/* CTA */
.cta{background:var(--navy);color:#fff;text-align:center;position:relative;overflow:hidden}
.cta::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 30%,rgba(0,180,204,.18),transparent 40%),radial-gradient(circle at 80% 70%,rgba(108,194,74,.14),transparent 40%)}
.cta .wrap{position:relative}
.cta h2{font-family:var(--display);font-weight:800;font-size:clamp(32px,4.5vw,50px);line-height:1.05;letter-spacing:-.03em;text-transform:uppercase}
.cta p{color:rgba(255,255,255,.8);font-size:18px;margin:14px 0 30px}
/* Button rows: side by side, equal heights, wrapping on narrow screens. */
.hero-ctas{display:flex;flex-wrap:wrap;align-items:stretch;gap:12px}
.cta .hero-ctas{justify-content:center}
.cta small{display:block;margin-top:22px;color:rgba(255,255,255,.65);font-size:14px}
.cta small a{color:var(--sky)}

/* Footer */
footer{background:var(--navy-deep);color:rgba(255,255,255,.7);padding:64px 0 28px;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
.foot-grid p{max-width:360px;margin-top:16px}
footer h3{color:#fff;font-size:13px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:16px}
footer ul{list-style:none;display:grid;gap:4px}
footer ul a{display:inline-block;padding:7px 0}
footer a{text-decoration:none}
footer a:hover{color:#fff}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px 24px;margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.08);font-size:13px}
.foot-bottom a{color:var(--sky);text-decoration:underline}
.foot-note{margin-top:10px;font-size:12px;color:rgba(255,255,255,.78)}

/* Mobile sticky bar */
.mobile-bar{display:none}

/* ---------- Responsive ---------- */
@media (max-width:1250px){.nav-links{gap:18px}.nav-links a{font-size:14px}}
@media (max-width:1100px){
  .nav-links{display:none}
  .menu-btn{display:flex}
  nav.top.open .nav-links{display:flex;flex-direction:column;gap:0;position:absolute;top:100%;left:0;right:0;background:var(--navy);padding:8px 24px 20px;box-shadow:0 14px 30px rgba(15,42,68,.3)}
  nav.top.open .nav-links a{display:block;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}
  .hero-grid{grid-template-columns:1fr;gap:28px;min-height:0}
      .why-grid.has-photo{grid-template-columns:1fr}
  .area-grid{grid-template-columns:1fr}
  .howto{gap:16px}
  .rev{flex-basis:calc((100% - 22px) / 2)}
  .rev-prev{left:-8px}
  .rev-next{right:-8px}
  .gallery-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-top{grid-template-columns:1fr}
  .g-feature{aspect-ratio:16/9;height:auto;min-height:0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-grid > div:first-child{grid-column:1/-1}
}
@media (max-width:400px){.logo-area{display:none}}
@media (max-width:640px){
  .wrap{padding:0 16px}
  .nav-cta{display:none}
  .logo img{height:74px}
  .hero{padding:32px 0 44px}
  .quote-bar{grid-template-columns:1fr;margin:28px 0 -36px}
  .modal{right:0;left:0;bottom:0;top:auto;transform:none;width:100%;max-width:none;max-height:88vh;border-radius:20px 20px 0 0;animation:sheet-up .26s ease}
  .modal-inner{padding:24px 20px calc(20px + env(safe-area-inset-bottom))}
  @keyframes sheet-up{from{transform:translateY(100%)}to{transform:translateY(0)}}
  .hero-photo{margin:0 calc(50% - 50vw);border-radius:0;min-height:0}
  .hero-skyline img{object-position:58% 38%}
  .hero::after{background:linear-gradient(180deg,rgba(233,243,248,.9) 0%,rgba(233,243,248,.86) 45%,rgba(233,243,248,.84) 100%)}
  section{padding:68px 0}
  .quote-card{padding:24px 20px}
  .form-grid{grid-template-columns:1fr}
  .gallery-grid{grid-template-columns:repeat(2,1fr);gap:10px}
  .gallery-top{gap:12px}
  .gallery-pairs{gap:12px}
  #why-us{padding:48px 0 52px}
  .why-tiles{grid-template-columns:1fr}
  .howto{grid-template-columns:1fr;gap:16px;margin-top:30px}
  .howto::before{top:12px;bottom:12px;left:21px;right:auto;width:2px;height:auto}
  .howto li{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:14px;text-align:left}
  .howto-num{grid-row:span 2;margin:0}
  .rev{flex-basis:88%;padding:24px}
  .field label,.eyebrow,.g-tag,.tag{font-size:12px}
  .hero-proof .dot{display:none}
  .promo{gap:14px;padding:18px 18px 18px 16px}
  .promo-icon{width:48px;height:48px}
  .promo-icon svg{width:24px;height:24px}
  .promo-title{font-size:19px}
  .rev-nav{display:none}
  .g-cap{font-size:13px;left:10px;bottom:8px}
  .g-filter{padding:7px 14px;font-size:13px}
  .lightbox{padding:60px 12px 88px}
  .lb-video{width:calc(100vw - 24px)}
  .lb-video.short{height:min(calc(100vh - 190px),640px)}
  .lb-media img{max-height:calc(100vh - 190px)}
  .lb-prev,.lb-next{top:auto;bottom:20px;margin-top:0}
  .lb-prev{left:calc(50% - 64px)}
  .lb-next{right:calc(50% - 64px)}
  .foot-grid{grid-template-columns:1fr}
  body{padding-bottom:72px}
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr 1fr;position:fixed;inset:auto 0 0 0;z-index:60;background:var(--navy);border-top:1px solid rgba(255,255,255,.1)}
  .mobile-bar a{color:#fff;text-decoration:none;text-align:center;padding:0 4px;min-height:52px;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:15px}
  .mobile-bar a:last-child{background:var(--accent)}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  nav.top .wrap,nav.top .logo img{transition:none}}

/* ---------- Inner pages ---------- */
.breadcrumbs{background:var(--navy-deep);color:rgba(255,255,255,.6);font-size:13px;padding:12px 0}
.breadcrumbs a{color:var(--sky);text-decoration:underline}
.breadcrumbs a:hover{text-decoration:underline}
.crumb-sep{margin:0 9px;opacity:.45}
.page-hero{position:relative;background:var(--navy);color:#fff;padding:56px 0 60px;overflow:hidden}
.page-hero::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 15% 20%,rgba(0,180,204,.16),transparent 45%)}
.page-hero .wrap{position:relative;z-index:1}
.page-hero h1{font-family:var(--display);font-weight:800;font-size:clamp(30px,3.6vw,44px);line-height:1.06;letter-spacing:-.03em;text-transform:uppercase;margin:12px 0 16px}
.page-hero p{font-size:18px;color:rgba(255,255,255,.85);max-width:720px}
.page-hero .hero-ctas{margin-top:26px}
.page-body{padding:72px 0}
.two-col{display:grid;grid-template-columns:1.7fr 1fr;gap:48px;align-items:start}
.prose h2{font-family:var(--display);font-weight:800;font-size:clamp(24px,2.6vw,32px);line-height:1.1;letter-spacing:-.02em;text-transform:uppercase;margin:36px 0 12px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:19px;margin:26px 0 8px}
.prose p{color:#33505b;margin-bottom:14px}
.prose ul{margin:0 0 18px;padding-left:20px;color:#33505b;display:grid;gap:8px}
.prose a{color:var(--blue);font-weight:600}
.prose strong{color:var(--text)}
.prose.privacy{max-width:780px}
.side-card{background:var(--off);border:1px solid var(--border);border-radius:var(--radius);padding:26px;position:sticky;top:100px}
.side-card h2{font-family:var(--display);font-size:24px;font-weight:800;text-transform:uppercase;letter-spacing:-.02em;margin-bottom:10px}
.side-card p{font-size:15px;color:var(--gray);margin-bottom:16px}
.side-card .btn{width:100%;margin-bottom:10px}
.side-list{list-style:none;display:grid;gap:8px;font-size:15px}
.side-list a{color:var(--blue);font-weight:600;text-decoration:none}
.side-list a:hover{color:var(--navy)}
.faq{margin-top:40px}
.faq details{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:10px}
.faq summary{display:flex;justify-content:space-between;gap:16px;font-weight:700;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--blue);font-weight:800;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:10px 0 0;color:#33505b}
.offer-box{display:flex;flex-wrap:wrap;align-items:center;gap:14px 20px;background:linear-gradient(135deg,#0b3d78 0%,#08305f 100%);border-left:5px solid #ef3b2d;border-radius:12px;padding:22px 24px;margin:8px 0 28px;color:#fff}
.offer-box .offer-tag{font-size:12px;font-weight:800;letter-spacing:1.6px;text-transform:uppercase;color:#c6f24e;width:100%}
.offer-box p{color:rgba(255,255,255,.85);margin:0;flex:1 1 260px;font-size:15px}
.offer-box .offer-deal{border:1.5px solid #fff;border-radius:8px;padding:8px 14px;font-weight:800;font-size:15px;letter-spacing:.6px;text-transform:uppercase}
.offer-box .offer-until{width:100%;font-size:13px;color:rgba(255,255,255,.75)}
.shot{margin:22px 0 28px;border-radius:12px;overflow:hidden}
.shot img{width:100%;height:auto;display:block}
.shot figcaption{font-size:13px;color:var(--gray);padding-top:8px}
.shot-empty{display:grid;place-items:center;width:100%;background:linear-gradient(135deg,#0f2a44 0%,#0a2233 100%);border:1px solid rgba(25,181,217,.35);position:relative}
.shot-empty::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:#19b5d9}
.shot-empty-label{font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:rgba(25,181,217,.9)}
.shot-wide{max-width:none}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:36px 0 8px;padding-top:24px;border-top:1px solid var(--border)}
.post-nav a{display:block;background:var(--off);border:1px solid var(--border);border-radius:12px;padding:16px 18px;text-decoration:none;color:var(--navy);font-weight:700;font-size:15px;line-height:1.35}
.post-nav a:hover{border-color:var(--blue);color:var(--blue)}
.post-nav a span{display:block;font-size:12px;letter-spacing:1.4px;text-transform:uppercase;color:var(--gray);font-weight:700;margin-bottom:6px}
.post-nav a:last-child{text-align:right}
@media (max-width:640px){.post-nav{grid-template-columns:1fr}.post-nav a:last-child{text-align:left}}
.link-cloud{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}
.link-cloud a{background:var(--off);border:1px solid var(--border);border-radius:999px;padding:9px 16px;font-size:14px;font-weight:600;color:var(--navy);text-decoration:none}
.link-cloud a:hover{border-color:var(--blue);color:var(--blue)}
.foot-links{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px;padding-top:32px;border-top:1px solid rgba(255,255,255,.08)}
.foot-links h3{margin-bottom:14px}
.svc a.svc-link{margin-top:18px;color:var(--blue);font-weight:700;text-decoration:none;font-size:15px}
.error-page{text-align:center;padding:80px 0 90px}
.error-page h1{font-family:var(--display);font-weight:800;font-size:clamp(34px,5vw,56px);text-transform:uppercase;letter-spacing:-.03em;margin-bottom:14px}
.error-page p{color:var(--gray);font-size:18px;max-width:560px;margin:0 auto 26px}
@media (max-width:900px){
  .two-col{grid-template-columns:1fr;gap:32px}
  .side-card{position:static}
  .foot-links{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){
  .breadcrumbs{font-size:12px}
  .page-body{padding:48px 0}
  .foot-links{grid-template-columns:1fr}
}

/* ---------- Driveway Makeover Contest (/driveway) ----------
   Postcard landing page. Bright sections like the rest of the site, navy only
   for the header, the slim trust row and the footer. Lime buttons carry navy
   text here: white on lime does not reach AA. */
.contest-page [hidden]{display:none!important}
.contest-page main .btn-green,.contest-page main .btn-green:hover{color:var(--navy)}
.contest-page main a:focus-visible,.contest-page main button:focus-visible,.contest-page main summary:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.btn-light{background:#fff;color:var(--navy);border:1.5px solid var(--border)}
.btn-light:hover{border-color:var(--blue)}
.contest-page main > section{padding:56px 0}
.contest-h2{font-family:var(--display);font-weight:800;font-size:clamp(26px,3vw,36px);line-height:1.08;letter-spacing:-.025em;text-transform:uppercase;text-align:center;margin-bottom:32px}

.contest-page main > .contest-hero{position:relative;overflow:hidden;isolation:isolate;background:linear-gradient(180deg,#f5fafd 0%,#fff 62%,var(--off) 100%);padding:72px 0 88px;min-height:560px}
.contest-hero-grid{position:relative;z-index:2}
.contest-copy{max-width:min(540px,46%)}
/* Ridgelines: full width, low behind the copy, faded out toward the sky. */
.contest-ridges{position:absolute;left:0;right:0;bottom:0;width:100%;height:62%;z-index:0;pointer-events:none;-webkit-mask-image:linear-gradient(to top,#000 35%,transparent 92%);mask-image:linear-gradient(to top,#000 35%,transparent 92%)}
.contest-copy .pill{border-radius:14px;line-height:1.35}
.contest-copy h1{font-family:var(--display);font-weight:800;font-size:clamp(32px,4vw,50px);line-height:1.05;letter-spacing:-.03em;text-transform:uppercase;margin:18px 0 16px;text-wrap:balance}
.contest-copy h1 span{text-wrap:balance}
.contest-copy h1 span{display:block;color:var(--blue)}
/* Second part of the hero H1: teal, sentence case, about half size, normal weight. */
.contest-copy h1 .h1-sub{font-size:max(.5em,17px);font-weight:400;line-height:1.4;letter-spacing:0;text-transform:none;margin-top:14px}
.contest-copy h1:has(.h1-sub){margin-bottom:26px}
.contest-card > h2:has(+ p){margin-bottom:6px}
.contest-lede{font-size:18px;color:#33505b;max-width:560px;margin-bottom:20px}
.hero-deadline{margin:14px 0 4px;font-size:16px;font-weight:800;color:var(--navy)}
.hero-fine{font-size:13px;color:var(--gray)}
.hero-fine a{color:var(--blue);font-weight:600;text-decoration:underline}
/* Inline SVG badge text, in badge units (viewBox 200). */
.badge-arc{font:800 12.5px var(--display);letter-spacing:1.6px;fill:#fff;stroke:#000e32;stroke-width:.9px;stroke-linejoin:round;paint-order:stroke}
.badge-free{font:900 40px var(--display);letter-spacing:1px;fill:#fff}
.badge-sub{font:italic 800 14px var(--display);fill:#00b9d1}
.badge-ribbon{font:800 10.5px var(--display);letter-spacing:.6px;fill:#fff}
/* Photo: right half, full hero height, left edge melted into the page. */
/* Wide scene behind the whole hero: the mascot sits about two thirds across,
   and the left of the photo fades out so the headline sits on the page. */
.contest-art{position:absolute;inset:0;z-index:1}
.contest-photo{position:absolute;inset:0;display:block;
  -webkit-mask-image:linear-gradient(to right,transparent 0,transparent 36%,#000 60%),linear-gradient(to top,transparent 0,#000 14%);-webkit-mask-composite:source-in;
  mask-image:linear-gradient(to right,transparent 0,transparent 36%,#000 60%),linear-gradient(to top,transparent 0,#000 14%);mask-composite:intersect}
.contest-photo img{width:100%;height:100%;object-fit:cover;object-position:60% 70%}
.contest-photo-empty{display:grid;place-items:center;background:linear-gradient(135deg,#d7ebf4,#b9d9e8)}
.contest-photo-empty .shot-empty-label{color:var(--blue)}
.contest-badge{position:absolute;top:28px;left:calc(47% + 8px);width:180px;height:180px;border-radius:50%;z-index:2;filter:drop-shadow(0 10px 18px rgba(15,42,68,.25))}

.contest-howto{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:24px;counter-reset:none}
.contest-howto li{text-align:center}
.contest-num{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 14px;border-radius:50%;background:var(--sky);color:var(--navy);font-family:var(--display);font-weight:800;font-size:21px}
.contest-howto p{font-size:16px;line-height:1.5;color:var(--text)}

.perk-grid{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.perk{display:flex;flex-direction:column;gap:14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius);padding:24px}
.perk-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--foam);color:var(--blue);flex:none}
.perk-icon svg{width:24px;height:24px}
.perk p{font-weight:600;font-size:16px;line-height:1.45}

.contest-card{max-width:760px;margin:0 auto;box-shadow:0 18px 40px rgba(15,42,68,.12),0 1px 3px rgba(15,42,68,.06)}
.contest-card > h2{margin:0 0 22px}
.contest-card .field label{font-size:13px}
.contest-card .field input,.contest-card .field textarea{font-size:16px;min-height:48px}
.contest-card .field input[aria-invalid="true"]{border-color:#b42318;background:#fff}
.field-err{margin:2px 0 0;font-size:14px;font-weight:600;color:#b42318}
.field-err a{color:inherit}
.check-row{display:flex;align-items:center;gap:12px;min-height:44px}
.check-row input{width:24px;height:24px;flex:none;accent-color:var(--navy);cursor:pointer}
.contest-card .check-row label{font-size:16px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--text);cursor:pointer}
.contest-card .btn-lg{margin-top:22px}
.contest-card .hp-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-msg.is-error{background:#fdecea;color:#7a1c12}
.contest-card .form-msg a{color:inherit;font-weight:700}
.consent{margin-top:14px;font-size:13px;line-height:1.55;color:var(--gray)}
.consent a{color:var(--blue);font-weight:600}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.contest-success{text-align:center;padding:8px 0}
.contest-success:focus{outline:none}
.success-icon{display:grid;place-items:center;width:64px;height:64px;margin:0 auto 14px;border-radius:50%;background:var(--accent);color:var(--navy)}
.success-icon svg{width:34px;height:34px}
.contest-success h2{font-family:var(--display);font-weight:800;font-size:30px;text-transform:uppercase;letter-spacing:-.025em;margin-bottom:8px}
.contest-success p{font-size:17px}
.contest-ended{text-align:center}
.contest-ended .hero-ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:20px}
.contest-ended .btn{width:auto}

.contest-page main > .contest-rules{padding:0 0 56px}
.contest-page main > .contest-form-section{padding-bottom:56px}
.contest-page main > .contest-form-section + .contest-rules{padding-top:56px}
.rules-box{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--border);border-radius:12px;padding:6px 20px}
.rules-box summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:52px;cursor:pointer;list-style:none}
.rules-box summary::-webkit-details-marker{display:none}
.rules-box summary::after{content:"+";color:var(--blue);font-weight:800;font-size:24px;line-height:1}
.rules-box[open] summary::after{content:"\2013"}
.rules-box summary h2{font-family:var(--display);font-weight:800;font-size:20px;text-transform:uppercase;letter-spacing:-.01em}
.rules-box ul{margin:6px 0 16px 20px;display:grid;gap:8px;color:#33505b}

.trust-slim{background:var(--navy);color:#fff}
.trust-slim-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;padding-top:18px;padding-bottom:18px}
.trust-slim .trust-item{padding:0 28px;line-height:1.4;font-size:15px}
.trust-slim .trust-item + .trust-item{border-left:1px solid var(--sky)}
.contest-more-inner{text-align:center}
.contest-more .contest-h2{margin-bottom:22px}
.contest-more .hero-ctas{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}

@media (max-width:1100px){
  .contest-badge{width:140px;height:140px}
  /* The copy column reaches further across here; start the photo later. */
  .contest-photo{-webkit-mask-image:linear-gradient(to right,transparent 0,transparent 44%,#000 64%),linear-gradient(to top,transparent 0,#000 14%);mask-image:linear-gradient(to right,transparent 0,transparent 44%,#000 64%),linear-gradient(to top,transparent 0,#000 14%)}
  .perk-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:900px){
  .contest-howto{grid-template-columns:1fr 1fr;gap:28px 24px}
}
@media (max-width:720px){
  /* Phones: the photo becomes a short faded strip under the button. */
  .contest-page main > .contest-hero{min-height:0;padding-bottom:0}
  .contest-copy{max-width:none}
  .contest-art{position:relative;width:auto;height:240px;margin-top:20px}
  .contest-photo{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 22%,#000 78%,transparent 100%);-webkit-mask-composite:add;mask-composite:add}
  .contest-photo img{object-position:68% 62%;transform:scale(1.75);transform-origin:68% 62%}
  .contest-badge{width:120px;height:120px;top:10px;left:12px}
  .contest-ridges{height:46%}
}
@media (max-width:640px){
  .contest-page main > section{padding:32px 0}
  .contest-page main > .contest-hero{padding:20px 0 0}
  .contest-page main > .contest-form-section + .contest-rules{padding-top:32px}
  .contest-page main > .contest-rules{padding-bottom:32px}
  .contest-art{height:230px;margin-top:12px}
  .contest-badge{width:112px;height:112px;top:8px;left:10px}
  .contest-copy h1{font-size:30px;margin:14px 0 12px}
  .contest-lede{font-size:16px;margin-bottom:16px}
  .contest-copy .btn{width:100%}
  .contest-h2{font-size:24px;margin-bottom:16px}
  .contest-howto{grid-template-columns:1fr;gap:14px}
  .contest-howto li{display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:center;text-align:left}
  .contest-num{width:40px;height:40px;margin:0;font-size:18px}
  .contest-howto p{font-size:15px}
  .perk-grid{grid-template-columns:1fr;gap:10px}
  .perk{flex-direction:row;align-items:center;padding:12px 14px;gap:12px}
  .perk-icon{width:36px;height:36px}
  .perk-icon svg{width:20px;height:20px}
  .perk p{font-size:15px}
  .trust-slim-row{padding-top:10px;padding-bottom:10px;gap:4px 0}
  .trust-slim .trust-item{font-size:13px;padding:0 10px}
  .trust-slim .trust-item svg{width:15px;height:15px}
  .contest-more .btn{width:100%}
}

/* Driveway glow-ups row (contest page) */
.contest-drives{padding-top:56px}
/* Square tiles, three across on desktop and tablet, two on phones; an
   incomplete last row centres. */
.drive-grid{display:flex;flex-wrap:wrap;justify-content:center;gap:18px;--tile:calc((100% - 36px) / 3)}
.drive-grid > *{flex:0 0 var(--tile)}
.drive-tile{position:relative;margin:0;aspect-ratio:1/1;border-radius:14px;overflow:hidden;box-shadow:0 10px 26px rgba(15,42,68,.12);background:var(--off)}
.drive-tile img{width:100%;height:100%;object-fit:cover;display:block}
.drive-tile .compare-label{left:10px;top:10px}
button.drive-tile{display:block;border:0;padding:0;cursor:pointer;font:inherit}
.drive-video:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.drive-video:hover .g-play{transform:scale(1.06)}
/* margin:auto puts back the centring the global reset removes. */
.drive-dialog{margin:auto;border:0;padding:56px 0 0;background:transparent;max-width:none;max-height:none;overflow:visible}
.drive-dialog::backdrop{background:rgba(10,30,51,.82)}
.drive-dialog-frame{width:min(calc((100vh - 140px) * 9 / 16),calc(100vw - 32px),420px);aspect-ratio:9/16;border-radius:14px;overflow:hidden;background:#000}
.drive-dialog-frame iframe{width:100%;height:100%;border:0;display:block}
.drive-dialog-frame.is-photo{width:auto;aspect-ratio:auto;background:transparent}
.drive-dialog-frame.is-photo img{display:block;max-width:min(1100px,calc(100vw - 32px));max-height:calc(100vh - 120px);width:auto;height:auto;border-radius:14px}
.drive-photo:focus-visible{outline:3px solid var(--navy);outline-offset:3px}
.drive-photo img{transition:transform .25s}
.drive-photo:hover img{transform:scale(1.03)}
.drive-dialog-close{position:absolute;top:0;right:0;width:44px;height:44px;border-radius:50%;border:0;background:#fff;color:var(--navy);font-size:26px;line-height:1;cursor:pointer}
.drive-dialog-close:focus-visible{outline:3px solid var(--sky);outline-offset:2px}
.drive-dialog-yt{display:block;margin-top:10px;text-align:center;color:#fff;font-size:14px;font-weight:600}
.drive-more{display:none}
@media (max-width:640px){.drive-grid{gap:10px;--tile:calc((100% - 10px) / 2)}
  .drive-grid.is-collapsible:not(.is-open) > :nth-child(n+5){display:none}
  .drive-more{display:flex;margin:16px auto 0;min-height:44px}.drive-tile .compare-label{font-size:10px;padding:4px 9px;left:8px;top:8px}}

/* Preferred method of contact (all lead forms) */
.contact-pref{border:0;padding:0;margin:18px 0 0;min-width:0}
.contact-pref legend{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gray);margin-bottom:8px}
.contest-card .contact-pref legend{font-size:13px}
.contact-hint{font-weight:600;letter-spacing:0;text-transform:none;margin-left:4px}
.contact-options{display:flex;flex-wrap:wrap;gap:8px}
.contact-opt{display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:8px 14px;border:1.5px solid var(--border);border-radius:10px;background:var(--off);font-size:15px;font-weight:600;color:var(--text);cursor:pointer;letter-spacing:0;text-transform:none}
.contact-opt input{width:20px;height:20px;flex:none;accent-color:var(--navy);cursor:pointer}
.contact-opt:has(input:checked){border-color:var(--blue);background:#fff}
.contact-opt:focus-within{outline:3px solid var(--navy);outline-offset:2px}
.contact-pref.is-invalid .contact-opt{border-color:#b42318}
.sms-consent{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--gray)}
.contact-pref .field-err{margin-top:6px}

/* Wildfire offer (WILDFIRE_OFFER in site.config.js) */
.offer-pill{align-self:flex-start;display:inline-block;background:#e0912f;color:var(--navy);font-size:11px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;line-height:1.35;padding:2px 9px;border-radius:999px}
@media (max-width:640px){.offer-pill{font-size:12px;letter-spacing:0;text-transform:none}}
.offer-terms{max-width:560px;margin-top:4px;font-size:13px;color:var(--gray)}
.offer-terms summary{display:inline-flex;align-items:center;min-height:24px;cursor:pointer;color:var(--blue);font-weight:600;text-decoration:underline;list-style:none}
.offer-terms summary::-webkit-details-marker{display:none}
.offer-terms summary:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.offer-terms p{margin:2px 0 0}
.offer-applied[hidden]{display:none}
.offer-applied{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;font-weight:700;color:#7a4a0c}
.offer-applied svg{width:16px;height:16px;color:#b86e14;flex:none}
.offer-box a.offer-deal{text-decoration:none;color:#fff}
.offer-box a.offer-deal:hover{background:rgba(255,255,255,.1)}

/* Trust strip, narrower screens. The four items only fit one row at 14px
   between 1024 and 1279px with one star and no item icons. Below 1024: 2x2. */
@media (max-width:1319px){.trust .trust-item{padding:0 14px;font-size:14px}}
@media (min-width:1024px) and (max-width:1279px){
  .trust .trust-item{padding:0 10px;gap:6px}
  .trust .trust-item svg{display:none}
  .trust .net-stars{display:inline-block;width:1em;overflow:hidden;white-space:nowrap;letter-spacing:0;font-size:14px}
}
@media (max-width:1023px){
  .trust-row{display:grid;grid-template-columns:auto auto;justify-content:center;row-gap:10px}
  .trust .trust-item:nth-child(odd){border-left:0}
}
@media (max-width:640px){
  .trust-row{grid-template-columns:1.2fr 1fr;justify-content:stretch;align-items:start;padding:12px 0;row-gap:10px}
  .trust .trust-rating{flex-direction:column;gap:2px}
  .trust .trust-item{font-size:13px;line-height:1.35;white-space:normal;padding:0 10px;align-items:flex-start}
  .trust .trust-item .net-stars{font-size:12px;margin-top:2px}
  .trust-item svg{width:15px;height:15px;margin-top:1px}
}