/* New Moon Cleaners — site.css */
:root{
  --navy:#0b3a74; --navy-d:#072650; --navy-l:#1a4f93;
  --moon:#1f7a37; --moon-d:#17622c; --green-l:#a8e0b5;
  --ink:#16202e; --muted:#536072; --line:#d8dfe7; --alt:#f2f5f8; --white:#fff;
  --wa:#0f7a40; --wa-d:#0b6534;
  --font:"Figtree",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --wrap:1160px; --r:3px;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
body{margin:0;font-family:var(--font);font-size:17px;line-height:1.6;color:var(--ink);background:var(--white)}
img{max-width:100%;height:auto;display:block}
a{color:var(--navy-l);text-underline-offset:2px}
a:hover{color:var(--navy)}
h1,h2,h3{line-height:1.2;margin:0 0 .5em;color:var(--navy);letter-spacing:-.01em}
h1{font-size:clamp(2rem,4.2vw,3rem);font-weight:800;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:750}
h3{font-size:1.14rem;font-weight:700}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
:focus-visible{outline:3px solid var(--moon-d);outline-offset:2px}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:0;background:var(--moon);color:#fff;padding:.6rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 20px}
.narrow{max-width:780px}
.center{text-align:center}
.lead{font-size:1.12rem;color:var(--muted)}
.small{font-size:.9rem;color:var(--muted)}
.mt{margin-top:1.6rem}
.section{padding:72px 0}
.section.tight{padding:40px 0 72px}
.section.alt{background:var(--alt)}
@media (max-width:700px){.section{padding:52px 0}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:48px;padding:.7rem 1.35rem;
  font:700 1rem/1.2 var(--font);text-decoration:none;border:2px solid transparent;border-radius:0;cursor:pointer;
  transition:background .15s,border-color .15s,color .15s}
.btn svg{flex:none}
.btn-primary{background:var(--moon);color:#fff;border-color:var(--moon)}
.btn-primary:hover{background:var(--moon-d);border-color:var(--moon-d);color:#fff}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn-outline:hover{background:var(--navy);color:#fff}
.btn-ghost{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-ghost:hover{border-color:var(--navy);color:var(--navy)}
.btn-onDark,.btn-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-onDark:hover,.btn-light:hover{border-color:#fff;color:#fff;background:rgba(255,255,255,.08)}
.btn-wa{background:var(--wa);color:#fff;border-color:var(--wa)}
.btn-wa:hover{background:var(--wa-d);border-color:var(--wa-d);color:#fff}
.btn-sm{white-space:nowrap;min-height:42px;padding:.5rem 1rem;font-size:.95rem}
.btn-lg{min-height:56px;padding:.9rem 2rem;font-size:1.08rem}
.btn-block{display:flex;width:100%}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px}
.btn-row.center{justify-content:center}

/* top bar + header */
.topbar{background:var(--navy-d);color:#c9d3e3;font-size:.86rem}
.topbar-in{display:flex;justify-content:space-between;gap:1rem;padding-top:7px;padding-bottom:7px}
.topbar a{color:#fff;text-decoration:none}
@media (max-width:900px){.topbar{display:none}}
.site-header{background:#fff;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:50}
.header-in{display:flex;align-items:center;gap:24px;min-height:74px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);flex:none}
.logo-mark{color:var(--navy);display:flex}
.logo-text{font-weight:800;font-size:1.22rem;line-height:1;letter-spacing:-.01em;display:flex;flex-direction:column}
.logo-text span{font-weight:600;font-size:.82rem;letter-spacing:.02em;color:var(--muted);margin-top:3px}
.logo-light,.logo-light .logo-mark{color:#fff}
.logo-light .logo-text span{color:#aebad0}
.nav{margin-left:auto}
.nav>ul{display:flex;list-style:none;gap:4px}
.nav a{display:block;padding:.55rem .8rem;text-decoration:none;color:var(--ink);font-weight:600}
.nav a:hover,.nav a[aria-current]{color:var(--navy);box-shadow:inset 0 -2px 0 var(--moon-d)}
.has-sub{position:relative}
.sub-toggle::after{content:"";display:inline-block;margin-left:6px;border:5px solid transparent;border-top-color:currentColor;border-bottom:0;vertical-align:middle}
.sub{display:none;position:absolute;left:0;top:100%;background:#fff;border:1px solid var(--line);min-width:280px;list-style:none;padding:6px 0;box-shadow:0 10px 24px rgba(12,26,51,.12)}
.sub a{font-weight:500;padding:.45rem 1rem}
.sub a:hover{background:var(--alt);box-shadow:none}
.sub-all a{font-weight:700;border-top:1px solid var(--line);margin-top:4px;padding-top:.6rem}
@media (min-width:1001px){.has-sub:hover .sub,.has-sub:focus-within .sub{display:block}}
.header-cta{display:flex;align-items:center;gap:14px}
.header-phone{display:flex;align-items:center;gap:6px;color:var(--navy);font-weight:800;text-decoration:none;font-size:1.05rem;white-space:nowrap}
.nav-btn{display:none;width:46px;height:46px;border:1px solid var(--line);background:#fff;cursor:pointer;position:relative}
.bars,.bars::before,.bars::after{position:absolute;left:12px;width:20px;height:2px;background:var(--navy);content:""}
.bars{top:22px}.bars::before{top:-6px;left:0}.bars::after{top:6px;left:0}
@media (max-width:1000px){
  .nav-btn{display:block}
  .nav{position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);display:none;max-height:calc(100vh - 74px);overflow:auto}
  .nav.open{display:block}
  .nav>ul{flex-direction:column;padding:8px 20px 16px}
  .nav a{padding:.75rem 0;border-bottom:1px solid var(--alt)}
  .nav a:hover,.nav a[aria-current]{box-shadow:none}
  .sub{display:block;position:static;border:0;box-shadow:none;padding:0 0 0 14px;min-width:0}
  .sub-toggle::after{display:none}
  .header-in{gap:12px}
}
@media (max-width:560px){.header-in{gap:8px}.header-cta{gap:8px}.logo{gap:6px}.logo-mark svg{width:24px;height:24px}.logo-text{font-size:1.02rem}.logo-text span{font-size:.72rem}.header-cta .btn-sm{font-size:.88rem;min-height:40px}.nav-btn{width:42px;height:42px}.bars{left:11px;top:20px}.header-phone span{display:none}.header-phone{width:42px;height:42px;justify-content:center;border:1px solid var(--line)}.header-cta .btn-sm{padding:.5rem .8rem}}

/* hero */
.hero{background:var(--navy);color:#fff;position:relative;overflow:hidden}
.hero.has-img{background:linear-gradient(90deg,rgba(12,26,51,.92) 0%,rgba(12,26,51,.82) 45%,rgba(12,26,51,.55) 100%),var(--hero-img) center/cover no-repeat}
.hero-in{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center;padding-top:64px;padding-bottom:64px}
.hero h1{color:#fff;max-width:14em}
.hero-sub{font-size:1.18rem;color:#d6deeb;max-width:34em}
.hero-hours{margin-top:18px;color:#aebad0;font-size:.95rem}
.hero .btn-row{margin-top:22px}
@media (max-width:960px){.hero-in{grid-template-columns:1fr;gap:32px;padding-top:44px;padding-bottom:44px}}

/* calculator */
.calc{background:#fff;color:var(--ink);padding:24px;border:1px solid var(--line);border-top:4px solid var(--moon)}
.hero .calc{border:0;border-top:4px solid var(--moon);box-shadow:0 20px 40px rgba(0,0,0,.25)}
.calc-h{font-size:1.3rem;margin-bottom:14px}
.seg{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--navy);padding:0;margin:0 0 14px}
.seg-opt{position:relative;margin:0}
.seg-opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.seg-opt span{display:block;text-align:center;padding:.6rem .5rem;font-weight:700;color:var(--navy)}
.seg-opt input:checked+span{background:var(--navy);color:#fff}
.seg-opt input:focus-visible+span{outline:3px solid var(--moon-d);outline-offset:-3px}
.calc label,.qform label{display:block;font-weight:600;font-size:.94rem;color:var(--ink)}
.calc select,.calc input[type=number],.qform input[type=text],.qform input[type=tel],.qform input[type=email],.qform input[type=date],.qform select,.qform textarea{
  display:block;width:100%;margin-top:5px;min-height:46px;padding:.55rem .7rem;font:500 1rem var(--font);color:var(--ink);
  background:#fff;border:1px solid #b9c4d1;border-radius:var(--r)}
.calc select:focus,.qform input:focus,.qform select:focus,.qform textarea:focus,.calc input:focus{border-color:var(--navy);outline:2px solid var(--moon);outline-offset:0}
.calc-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}
.calc-full{margin-bottom:12px}
.calc-extras{border:1px solid var(--line);margin-bottom:14px}
.calc-extras summary{cursor:pointer;padding:.6rem .8rem;font-weight:700;color:var(--navy);list-style:none;display:flex;justify-content:space-between}
.calc-extras summary::-webkit-details-marker{display:none}
.calc-extras summary::after{content:"+";font-size:1.2rem;line-height:1}
.calc-extras[open] summary::after{content:"–"}
.calc-addons{padding:4px 12px 10px}
.chk{display:flex!important;align-items:center;gap:10px;padding:6px 0;font-weight:500!important;cursor:pointer}
.chk input[type=checkbox]{width:20px;height:20px;accent-color:var(--navy);flex:none;margin:0}
.chk em{margin-left:auto;font-style:normal;color:var(--muted);font-size:.92rem;white-space:nowrap}
.chk-num{flex-wrap:wrap}
.chk-num input{width:74px!important;min-height:40px!important;margin:0 0 0 auto!important}
.chk-num em{margin-left:0}
.calc-out{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--alt);padding:14px 16px;margin:0 0 10px}
.calc-label{display:block;font-size:.88rem;color:var(--muted);font-weight:600}
.calc-price{font-size:2.1rem;font-weight:800;color:var(--navy);line-height:1.1}
.calc-note{font-size:.86rem;color:var(--muted);margin:0}
@media (max-width:420px){.calc{padding:18px}.calc-row{grid-template-columns:1fr}.calc-out .btn{width:100%}}

/* trust bar */
.trust{background:#fff;border-bottom:1px solid var(--line)}
.trust-in{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;list-style:none;padding-top:18px;padding-bottom:18px}
.trust li{display:flex;align-items:center;gap:8px;font-weight:700;color:var(--navy)}
.trust svg{color:var(--wa)}
@media (max-width:700px){.trust-in{justify-content:flex-start;display:grid;grid-template-columns:1fr 1fr}.trust li{font-size:.92rem;align-items:flex-start}}

/* headings row */
.split-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:28px}
.split-head .lead{margin:0}

/* cards */
.svc-group{margin-bottom:34px}
.svc-group:last-child{margin-bottom:0}
.group-h{font-size:1rem;color:var(--muted);font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.cards{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.card a{display:block;height:100%;padding:20px 20px 18px;border:1px solid var(--line);border-left:4px solid var(--navy);text-decoration:none;color:var(--ink);background:#fff}
.card a:hover{border-color:var(--navy);border-left-color:var(--moon-d)}
.card h3{margin-bottom:.35em}
.card p{margin:0;color:var(--muted);font-size:.96rem}
.note-box{margin-top:36px;padding:26px;background:var(--alt);border-left:4px solid var(--moon)}
.more{margin-top:18px;font-weight:700}

/* ticks */
.ticks{list-style:none;display:grid;gap:10px}
.ticks li{display:flex;gap:10px;align-items:flex-start}
.ticks svg{color:var(--wa);flex:none;margin-top:4px}
.plain{list-style:none;display:grid;gap:6px}

/* EOT */
.eot{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:start}
.eot .ticks{margin:22px 0 24px}
.eot-side img{margin-bottom:16px}
.price-card{background:var(--navy);color:#fff;padding:28px}
.price-card p{margin:0;color:#d6deeb}
.price-card strong{display:block;font-size:3.2rem;line-height:1.1;font-weight:800;color:#fff;margin:4px 0 10px}
.price-card .small{color:#aebad0}
.price-card a{color:#fff}
@media (max-width:900px){.eot{grid-template-columns:1fr;gap:28px}}

/* why */
.why{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:28px 36px;margin-top:24px}
.why li{border-top:3px solid var(--navy);padding-top:14px}
.why p{color:var(--muted);margin:0}
@media (max-width:900px){.why{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.why{grid-template-columns:1fr}}

/* steps */
.steps{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:24px}
.step-n{display:flex;align-items:center;justify-content:center;width:40px;height:40px;background:var(--moon);color:#fff;font-weight:800;margin-bottom:12px}
.steps p{color:var(--muted);margin:0}
@media (max-width:760px){.steps{grid-template-columns:1fr;gap:22px}}

/* before/after */
.ba-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(460px,1fr));gap:24px;margin-top:20px}
.ba{margin:0}
.ba-pair{display:grid;grid-template-columns:1fr 1fr;gap:4px}
.ba-pair div{position:relative}
.ba-pair img{aspect-ratio:4/3;object-fit:cover;width:100%}
.ba-pair span{position:absolute;left:8px;top:8px;background:var(--navy);color:#fff;font-size:.8rem;font-weight:700;padding:3px 8px}
.ba-pair div+div span{background:var(--moon);color:#fff}
.ba figcaption{font-size:.92rem;color:var(--muted);margin-top:8px}
@media (max-width:520px){.ba-grid{grid-template-columns:1fr}}

/* reviews */
.reviews{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.review{border:1px solid var(--line);padding:22px}
.review blockquote{margin:0}
.review-by{font-weight:700;color:var(--navy);margin:0}

/* areas */
.areas-home{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.area-list{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:4px 20px;margin-top:14px}
.area-list a{display:block;padding:.4rem 0;border-bottom:1px solid var(--line);text-decoration:none;font-weight:600;color:var(--navy)}
.area-list a:hover{border-bottom-color:var(--navy)}
.area-list.small{grid-template-columns:repeat(auto-fill,minmax(170px,1fr))}
.area-list.small a{font-size:.94rem}
.map{position:relative;width:100%;aspect-ratio:4/3;background:#e5eaf0;border:1px solid var(--line)}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
@media (max-width:900px){.areas-home{grid-template-columns:1fr}}

/* faq */
.faqs{border-top:1px solid var(--line);margin-top:18px}
.faq{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:18px 40px 18px 0;font-weight:700;color:var(--navy);position:relative;font-size:1.05rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:6px;top:14px;font-size:1.5rem;font-weight:500}
.faq[open] summary::after{content:"–"}
.faq p{margin:0 0 18px;color:var(--muted)}

/* cta band */
.cta-band{background:var(--navy);color:#fff;padding:56px 0}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:28px;flex-wrap:wrap}
.cta-band h2{color:#fff;margin-bottom:.3em}
.cta-band p{color:#d6deeb;margin:0}

/* page head + breadcrumbs */
.crumbs{font-size:.88rem;color:var(--muted);background:var(--alt);border-bottom:1px solid var(--line)}
.crumbs .wrap{padding-top:10px;padding-bottom:10px}
.crumbs a{color:var(--muted)}
.crumbs .sep{margin:0 8px;color:#a4afbd}
.page-head{padding:48px 0 44px;border-bottom:1px solid var(--line)}
.page-head.slim{padding:36px 0 28px}
.page-head .lead{max-width:44em}
.svc-top{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.svc-intro .lead{max-width:36em}
.from{font-size:1.08rem;margin:6px 0 10px}
.from strong{font-size:1.5rem;color:var(--navy)}
.from span{color:var(--muted);font-size:.92rem}
.for{color:var(--muted)}
.quote-card{border:1px solid var(--line);border-top:4px solid var(--moon);padding:24px;background:#fff;display:grid;gap:10px;align-content:start}
.quote-card h2{font-size:1.3rem;margin:0}
.quote-card p{margin:0}
.quote-card.plain{border-top-color:var(--navy)}
.quote-card .big{font-size:1.8rem;font-weight:800}
.quote-card .big a{text-decoration:none;color:var(--navy)}
.quote-card .mt{margin-top:14px}
.area-card{border:1px solid var(--line);padding:22px;background:#fff}
.area-card h2{font-size:1.2rem}
.places{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.places li{background:var(--alt);padding:4px 10px;font-weight:600;font-size:.92rem;color:var(--navy)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}
@media (max-width:900px){.svc-top,.two-col{grid-template-columns:1fr;gap:28px}}

/* tables */
.table-wrap{overflow-x:auto}
.ptable{width:100%;border-collapse:collapse;font-size:.98rem}
.ptable th,.ptable td{padding:10px 12px;border-bottom:1px solid var(--line);text-align:left}
.ptable thead th{background:var(--navy);color:#fff;font-weight:700}
.ptable tbody th{font-weight:600}
.ptable td{font-weight:700;color:var(--navy);white-space:nowrap}

/* quote form */
.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start}
.quote-aside{display:grid;gap:18px;position:sticky;top:96px}
@media (max-width:960px){.quote-layout{grid-template-columns:1fr}.quote-aside{position:static}}
.qform fieldset{border:1px solid var(--line);padding:22px 22px 8px;margin:0 0 20px;min-width:0}
.qform legend{font-weight:800;color:var(--navy);font-size:1.12rem;padding:0 8px;margin-left:-8px}
.qform fieldset.inner{border:0;padding:4px 0 0;margin:0 0 12px}
.qform fieldset.inner legend{font-size:.95rem;font-weight:600;color:var(--ink);padding:0;margin:0 0 4px}
.qform label{margin-bottom:14px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
.grid2>*{min-width:0}
@media (max-width:600px){.grid2{grid-template-columns:1fr}.qform fieldset{padding:18px 14px 4px}}
.chk-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}
@media (max-width:480px){.chk-grid{grid-template-columns:1fr}}
.req{color:#b3261e}
.hint{font-weight:400;color:var(--muted);font-size:.9rem}
.qform .consent{align-items:flex-start;margin-top:6px}
.qform .consent input{margin-top:3px}
.hp{position:absolute;left:-9999px}
.est-banner{background:var(--navy);color:#fff;padding:16px 18px;margin-bottom:20px;border-left:6px solid var(--moon)}
.est-banner strong{color:var(--green-l)}
.form-error{background:#fdecea;color:#8a1c14;border-left:4px solid #b3261e;padding:12px 14px;font-weight:600}
.qform .is-invalid{border-color:#b3261e!important;background:#fffafa}
.photos{margin-bottom:14px}
.photo-add{cursor:pointer}
.thumbs{list-style:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin-top:14px}
.thumbs li{position:relative;aspect-ratio:1;background:var(--alt);border:1px solid var(--line)}
.thumbs img{width:100%;height:100%;object-fit:cover}
.thumbs button{position:absolute;top:4px;right:4px;width:28px;height:28px;border:0;background:rgba(12,26,51,.85);color:#fff;font-size:1.1rem;line-height:1;cursor:pointer}
.photo-msg{font-size:.92rem;color:var(--muted);margin:10px 0 0}
.photo-msg.err{color:#8a1c14;font-weight:600}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px 16px}
.js .slots{display:none}
.js .slots.show{display:grid}
html:not(.js) .photos{display:none}
.slot{font-weight:600}
.slot input{display:block;margin-top:4px;font-size:.9rem;max-width:100%}

/* prose / contact */
.prose h2{font-size:1.3rem;margin-top:1.6em}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media (max-width:900px){.contact-grid{grid-template-columns:1fr}}

/* footer */
.site-footer{background:var(--navy-d);color:#c9d3e3;padding:56px 0 0;font-size:.95rem}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1.2fr;gap:40px}
.site-footer h2{color:#fff;font-size:1rem;margin-bottom:12px}
.site-footer h2.mt{margin-top:24px}
.site-footer ul{list-style:none;display:grid;gap:6px}
.site-footer ul.cols2{grid-template-columns:1fr 1fr;gap:6px 16px}
.site-footer a{color:#dfe6f1;text-decoration:none}
.site-footer a:hover{color:#fff;text-decoration:underline}
.foot-brand p{margin:16px 0}
.foot-contact{display:grid;gap:8px}
.foot-contact a,.foot-social a{display:inline-flex;align-items:center;gap:8px}
.foot-social{display:flex;flex-wrap:wrap;gap:10px 18px}
.hours span{display:inline-block;min-width:150px;color:#aebad0}
.foot-legal{border-top:1px solid rgba(255,255,255,.12);margin-top:40px;padding-top:18px;padding-bottom:22px;font-size:.84rem;color:#9eabc2;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.foot-legal p{margin:0}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr}}

/* mobile contact bar */
.mobile-bar{display:none}
@media (max-width:760px){
  body{padding-bottom:64px}
  .mobile-bar{display:grid;grid-template-columns:1fr 1fr 1.3fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:#fff;border-top:1px solid var(--line);box-shadow:0 -4px 14px rgba(12,26,51,.1)}
  .mobile-bar a{display:flex;align-items:center;justify-content:center;gap:6px;min-height:58px;font-weight:700;text-decoration:none;color:var(--navy);border-right:1px solid var(--line)}
  .mobile-bar a:nth-child(2){color:var(--wa)}
  .mobile-bar .mb-quote{background:var(--moon);color:#fff;border:0}
}
@media (max-width:360px){.header-phone{display:none}.logo-text span{display:none}.header-in{padding-left:14px;padding-right:14px}.header-cta .btn-sm{padding:.45rem .6rem;font-size:.84rem}}
.contact-grid>*,.quote-layout>*,.two-col>*,.svc-top>*{min-width:0}.prose a,.quote-card a,.foot-contact a{overflow-wrap:anywhere}

/* ---- polish pass ---- */
.section:not(.alt)+.section:not(.alt){padding-top:0}
.faq-wrap{max-width:820px}
.cards{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:900px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.cards{grid-template-columns:1fr}}
.trust svg,.ticks svg{flex:none}
@media (max-width:560px){
  .area-list,.area-list.small{grid-template-columns:1fr 1fr;gap:0 14px}
  .area-list a{font-size:.94rem}
  .btn-row .btn{flex:1 1 100%}
  .btn-row.quick .btn{flex:1 1 auto}
  .qform .btn-lg{width:100%}
  .chk-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:360px){.chk-grid{grid-template-columns:1fr}}
.btn-row.quick{margin:14px 0 6px}
.field-err{display:block;color:#b3261e;font-size:.88rem;font-weight:600;margin-top:5px}
.foot-grid{grid-template-columns:1.2fr 1fr 1.35fr}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr}}

/* ---- brand logo + real gallery ---- */
.logo img{height:54px;width:auto;display:block}
.logo-light img{height:48px}
@media (max-width:560px){.logo img{height:40px}}
@media (max-width:400px){.logo img{height:32px}}
.tagline{font-weight:700;color:#fff;letter-spacing:.02em;margin:14px 0 4px!important}
.ba-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
@media (max-width:1000px){.ba-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.ba-grid{grid-template-columns:1fr}}
.ba-pair img{aspect-ratio:3/4}
.ba figcaption{font-weight:600;color:var(--ink)}
.revu{margin-top:24px}
@media (max-width:420px){.header-phone{display:none}.logo img{height:34px}.header-in{padding-left:14px;padding-right:14px}}
@media (max-width:350px){.logo img{height:28px}.header-cta .btn-sm{padding:.45rem .6rem;font-size:.84rem}}
@media (max-width:760px){.mobile-bar{grid-template-columns:.8fr 1.15fr 1.15fr}.mobile-bar a{font-size:.95rem;gap:5px;padding:0 4px}}

/* ---- real photo hero ---- */
.hero.has-img{background:linear-gradient(100deg,rgba(7,38,80,.96) 0%,rgba(7,38,80,.88) 42%,rgba(7,38,80,.55) 72%,rgba(7,38,80,.35) 100%),var(--hero-img) center 60%/cover no-repeat}
.hero-in{padding-top:80px;padding-bottom:80px}
.hero-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;margin-top:22px}
.hero-meta .hero-hours{margin:0}
.rating-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--ink);padding:8px 14px;text-decoration:none;font-size:.95rem}
.rating-chip strong{font-size:1.05rem;color:var(--ink)}
.rating-chip span:last-child{color:var(--muted)}
.rating-chip:hover{color:var(--ink);box-shadow:0 0 0 2px var(--green-l)}
@media (max-width:960px){.hero.has-img{background:linear-gradient(180deg,rgba(7,38,80,.92),rgba(7,38,80,.94)),var(--hero-img) center/cover no-repeat}.hero-in{padding-top:48px;padding-bottom:48px}}

/* ---- stars ---- */
.stars{display:inline-flex;gap:1px;color:#d7dce3;vertical-align:middle}
.stars .st.on{color:#f4b400}
.stars svg{display:block}
.stars.sm svg{width:15px;height:15px}
.stars.lg svg{width:26px;height:26px}

/* ---- trust bar rating ---- */
.trust-chip{display:inline-flex;align-items:center;gap:7px;text-decoration:none;color:var(--navy);font-weight:700}
.trust-chip span:last-child{font-weight:600;color:var(--muted)}
.trust-chip:hover{color:var(--navy);text-decoration:underline}

/* ---- reviews ---- */
.rev-top{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:stretch;margin:24px 0 32px}
.rev-summary{border-top:4px solid var(--moon);padding-top:18px}
.rev-score{display:flex;align-items:baseline;gap:10px;margin:0 0 6px}
.rev-score strong{font-size:4.6rem;line-height:1;font-weight:800;color:var(--navy);letter-spacing:-.03em}
.rev-score span{color:var(--muted);font-weight:600}
.rev-count{color:var(--muted);margin:10px 0 14px}
.rev-feature{margin:0;background:var(--navy);color:#fff;padding:34px 36px;display:flex;flex-direction:column;justify-content:center}
.rev-feature blockquote{margin:14px 0 18px}
.rev-feature blockquote p{font-size:clamp(1.25rem,2vw,1.6rem);line-height:1.4;font-weight:600;margin:0}
.rev-feature figcaption{font-weight:700}
.rev-feature figcaption span{display:block;font-weight:500;color:#b9c7de;font-size:.92rem}
.reviews{grid-template-columns:repeat(3,minmax(0,1fr))}
.review{padding:0;border:1px solid var(--line);background:#fff}
.review figure{margin:0;padding:22px;height:100%;display:flex;flex-direction:column}
.review-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}
.review blockquote{margin:0 0 14px;flex:1}
.review blockquote p{margin:0}
.review figcaption{font-weight:700;color:var(--navy)}
.review figcaption span{display:block;font-weight:500;color:var(--muted);font-size:.88rem}
@media (max-width:900px){.rev-top{grid-template-columns:1fr}.reviews{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.reviews{grid-template-columns:1fr}.rev-feature{padding:26px 22px}}

/* ---- gallery lightbox ---- */
.ba-open{position:relative;display:block;padding:0;border:0;background:none;cursor:zoom-in;width:100%}
.ba-open img{transition:opacity .15s}
.ba-open:hover img{opacity:.9}
.ba-open span{position:absolute;left:8px;top:8px;background:var(--navy);color:#fff;font-size:.8rem;font-weight:700;padding:3px 8px}
.ba-open+.ba-open span{background:var(--moon)}
.lightbox{border:0;padding:0;max-width:min(92vw,900px);max-height:92vh;background:#000}
.lightbox::backdrop{background:rgba(5,15,30,.85)}
.lightbox figure{margin:0}
.lightbox img{max-height:84vh;width:auto;margin:0 auto}
.lightbox figcaption{color:#fff;padding:10px 14px;font-weight:600}
.lb-close{position:absolute;top:8px;right:8px;width:44px;height:44px;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:1.6rem;cursor:pointer}
@media (max-width:700px){.trust-in>li{min-width:0}.trust-rating{grid-column:1/-1}}
@media (max-width:360px){.trust-in{grid-template-columns:1fr}}
.trust .stars svg{color:inherit}
.rev-summary .btn-row .btn{flex:1 1 100%}
@media (min-width:961px){.hero.has-img{background:linear-gradient(100deg,rgba(7,38,80,.95) 0%,rgba(7,38,80,.86) 40%,rgba(7,38,80,.35) 68%,rgba(7,38,80,.12) 100%),var(--hero-img) 70% 45%/cover no-repeat}}

/* ---- de-box pass: whitespace and thin rules instead of outlined boxes ---- */
/* service + area cards -> open editorial list */
.cards{gap:0 40px}
.card a{border:0;border-top:1px solid var(--line);padding:18px 0 22px;background:none}
.card a:hover{border-top-color:var(--navy)}
.card a:hover h3{text-decoration:underline;text-underline-offset:3px}
.group-h{border-bottom:0;padding-bottom:0;margin-bottom:4px}
.note-box{background:none;border-left:0;border-top:1px solid var(--line);padding:24px 0 0}
/* why list */
.why li{border-top:1px solid var(--line);padding-top:16px}
/* steps: numbers, no squares */
.step-n{background:none;color:var(--moon);width:auto;height:auto;justify-content:flex-start;font-size:2.2rem;line-height:1;margin-bottom:10px}
/* EOT price: open figure, no panel */
.price-card{background:none;color:var(--ink);padding:18px 0 0;border-top:1px solid var(--line)}
.price-card p{color:var(--muted)}
.price-card strong{color:var(--navy);font-size:3.6rem}
.price-card .small{color:var(--muted)}
.price-card a{color:var(--navy-l)}
/* hero rating: inline, no white chip */
.rating-chip{background:none;padding:0;color:#fff}
.rating-chip strong{color:#fff}
.rating-chip span:last-child{color:#c9d3e3}
.rating-chip:hover{box-shadow:none;color:#fff;text-decoration:underline}
/* calculator: fewer inner boxes */
.calc{border:0;border-top:0;box-shadow:none}
.hero .calc{border:0;box-shadow:0 24px 48px rgba(0,0,0,.28)}
.svc-calc .calc,.two-col>.calc{background:var(--alt)}
.calc-extras{border:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.calc-extras summary{padding:.75rem 0}
.calc-addons{padding:0 0 10px}
.calc-out{background:none;padding:14px 0 6px;margin:0 0 8px}
/* reviews: open columns */
.review{border:0;border-top:1px solid var(--line);background:none}
.review figure{padding:20px 0 8px}
.reviews{gap:8px 40px}
.rev-summary{border-top:0;padding-top:0}
.rev-feature{background:none;color:var(--ink);padding:4px 0 4px 28px;border-left:4px solid var(--moon)}
.rev-feature blockquote p{color:var(--navy)}
.rev-feature figcaption span{color:var(--muted)}
/* side panels -> plain */
.quote-card,.quote-card.plain,.area-card{border:0;padding:0;background:none}
.quote-aside .quote-card+.quote-card{border-top:1px solid var(--line);padding-top:22px}
.contact-grid{gap:40px}
.map{border:0}
/* quote form: sections split by rules, not boxes */
.qform fieldset{border:0;border-top:1px solid var(--line);padding:26px 0 6px;margin:0 0 8px}
.qform legend{padding:0;margin:0;float:left;width:100%;margin-bottom:14px}
.qform legend+*{clear:both}
@media (max-width:600px){.qform fieldset{padding:22px 0 4px}}

/* ---- simplify pass ---- */
@media (max-width:1000px){.nav .sub{display:none}}      /* mobile menu: Services goes to the services page, no 13-item list */
@media (max-width:900px){.site-footer ul{grid-template-columns:1fr 1fr;gap:6px 16px}.site-footer ul.hours{grid-template-columns:1fr}}
.eot{align-items:center}
.trust-chip{min-height:44px}
.swipe-hint{display:none}
@media (max-width:600px){
  .swipe{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px!important;padding-bottom:6px;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
  .swipe>*{flex:0 0 86%;scroll-snap-align:start;min-width:0}
  .swipe:focus-visible{outline:3px solid var(--moon);outline-offset:4px}
  .swipe-hint{display:block;font-size:.88rem;color:var(--muted);margin:8px 0 0}
}
/* ---- short quote form ---- */
.qform>.grid2,.qform>label.full{margin-bottom:4px}
.photo-label{font-weight:600;font-size:.94rem;margin:6px 0 8px}
.qform .photos{margin:4px 0 18px}
.qform textarea{min-height:90px}
.qform{max-width:720px}
.qform #f-submit{margin-top:10px}
/* ---- final polish ---- */
.places{color:var(--ink);font-weight:600;line-height:1.7;margin:0 0 8px}
.section.fill{min-height:60vh;display:flex;align-items:center}
.section.fill>.wrap{width:100%}
.next-steps{list-style:none;counter-reset:s;display:grid;gap:12px;text-align:left;max-width:420px;margin:24px auto 24px;padding:0}
.next-steps li{counter-increment:s;display:flex;gap:14px;align-items:baseline}
.next-steps li::before{content:counter(s);font-weight:800;font-size:1.6rem;color:var(--moon);min-width:22px}
.next-steps strong{color:var(--navy)}
.wrap.prose>*{max-width:780px}
@media (max-width:760px){.page-quote .mobile-bar{grid-template-columns:1fr 1fr}.page-quote .mb-quote{display:none!important}}
