/* More Cleaning Services — site styles v6 ("vivid fresh")
   Source of truth: /workspace/tools/templates/assets/css/styles.css (copied into /site by build.py)
   Layout v6: sticky white header (centered logo + phone/email) with a swipeable all-caps TAB BAR,
   full-bleed video hero, big image cards, minimal numbered steps, bottom-border form.
   BLEND THEME BUILD (colors remapped by build.py BLEND_MAP; see themes/blend.css). Original palette v6:
     Ink navy  #0B2545  body/headings (14.2:1 on white)
     Aqua      #00A8B5  brand fills, used with navy text (4.9:1) — never white text on it
     Teal deep #0A66C2  links + white-text buttons (5.5:1 with white)
     Fresh green #00A8B5 accent / highlights (navy text 7.2:1)
     Sunshine  #FFC928  main CTA, navy text (9.2:1)
     Coral     #FF7A1A  sparing pop accent, navy text (5.1:1)
     Ice aqua  #5FE3EC  accent on dark backgrounds (9.3:1 on navy)
     Aqua wash #EFFBFC  section background · White #FFFFFF · Muted #3E5F6B (6.5:1 on wash) · Line #CDEFF2
   Fonts: Fraunces (headings) + Plus Jakarta Sans (body, letter-spaced caps for nav/labels) */
:root{
  --ink:#0B2545; --aqua:#00A8B5; --teal:#0A66C2; --green:#00A8B5; --sun:#FFC928; --sun-h:#FFD54F; --coral:#FF7A1A; --ice:#5FE3EC;
  --wash:#EFFBFC; --white:#FFFFFF; --muted:#3E5F6B; --line:#CDEFF2; --green-50:#E8F8FA; --sun-50:#FFF6D6;
  --serif:"Fraunces",Georgia,"Times New Roman",serif;
  --sans:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  --r:16px; --r-lg:24px; --shadow:0 1px 3px rgba(11,37,69,.05),0 16px 40px -20px rgba(11,37,69,.22);
  --wrap:1200px; --hdr:150px; --caps:.16em;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr) + 8px);-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--sans);font-size:1.0625rem;line-height:1.65;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--teal);text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:3px solid var(--coral);outline-offset:3px;border-radius:4px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.1;letter-spacing:-.015em;margin:0 0 .5em;color:var(--ink);font-variation-settings:"SOFT" 50,"opsz" 96}
h1{font-size:clamp(2.4rem,6.4vw,4.6rem)}
h2{font-size:clamp(1.9rem,4.2vw,3rem)}
h3{font-size:1.3rem}
p{margin:0 0 1em}
.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.narrow{max-width:820px}
.center{text-align:center}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:8px;z-index:100}
.skip:focus{left:12px}
.sr-only{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font:800 .76rem/1.2 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--teal);margin:0 0 1rem}
.eyebrow::before{content:"";width:22px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--aqua),var(--green))}
.center .eyebrow::after{content:"";width:22px;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--green),var(--aqua))}
.lede{font-size:clamp(1.06rem,1.5vw,1.2rem);color:var(--muted);max-width:62ch}
.center .lede{margin-inline:auto}
.section{padding:clamp(4rem,9vw,7rem) 0}
.section-head{max-width:780px;margin-bottom:clamp(2rem,4vw,3.25rem)}
.section-head.center{margin-inline:auto}
.bg-aqua{background:var(--wash)}
.note{font-size:.86rem;color:var(--muted)}

/* Buttons */
.btn{--bg:var(--teal);--fg:#fff;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:52px;padding:.85rem 1.5rem;border-radius:999px;border:2px solid var(--bg);background:var(--bg);color:var(--fg);font:800 .86rem/1.1 var(--sans);letter-spacing:.12em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:transform .15s ease,background .2s,border-color .2s,box-shadow .2s,color .2s}
.btn:hover{transform:translateY(-1px);color:var(--fg);box-shadow:0 12px 26px -14px rgba(11,37,69,.5)}
.btn svg{width:18px;height:18px}
.btn-sun{--bg:var(--sun);--fg:var(--ink)}
.btn-sun:hover{--bg:var(--sun-h)}
.btn-aqua{--bg:var(--aqua);--fg:var(--ink)}
.btn-line{--bg:rgba(11,37,69,.18);--fg:#fff;border-color:rgba(255,255,255,.85);backdrop-filter:blur(2px)}
.btn-line:hover{--bg:#fff;--fg:var(--ink);border-color:#fff}
.btn-line-dark{--bg:#fff;--fg:var(--ink);border-color:var(--ink)}
.btn-block{width:100%}

/* ---------- Header + tab bar ---------- */
.site-header{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--line);transition:box-shadow .2s}
.site-header.scrolled{box-shadow:0 10px 30px -22px rgba(11,37,69,.45)}
.hdr-top{display:grid;grid-template-columns:1fr;justify-items:center;padding:.55rem 0 .45rem;gap:0}
.brand{order:-1;display:block;margin-bottom:.2rem}
.brand img{height:44px;width:auto}
.hdr-line{font-size:.84rem;line-height:1.45;font-weight:600;color:var(--ink);text-decoration:none;letter-spacing:.02em}
.hdr-line:hover{color:var(--teal)}
.hdr-line .k{display:none}
/* SHOW_PHONE=False header: [email | logo | quote button] on desktop; logo + email on phones (tab bar has the quote CTA) */
.hdr-quote{display:none}
.tabbar{position:relative;border-top:1px solid var(--line)}
.tabbar::before,.tabbar::after{content:"";position:absolute;top:0;bottom:0;width:28px;pointer-events:none;z-index:1;transition:opacity .2s}
.tabbar::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0));opacity:0}
.tabbar::after{right:0;background:linear-gradient(270deg,#fff 20%,rgba(255,255,255,0))}
.tabbar.not-start::before{opacity:1}
.tabbar.at-end::after{opacity:0}
.tabs-scroll{list-style:none;margin:0;padding:0 .9rem;display:flex;gap:.15rem;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scroll-padding-inline:.9rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.tabs-scroll::-webkit-scrollbar{display:none}
.tabs-scroll li{flex:0 0 auto;scroll-snap-align:start}
.tabs-scroll a{position:relative;display:flex;align-items:center;height:46px;padding:0 .8rem;font:700 .74rem/1 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap}
.tabs-scroll a::after{content:"";position:absolute;left:.8rem;right:.8rem;bottom:0;height:3px;border-radius:3px 3px 0 0;background:var(--aqua);transform:scaleX(0);transition:transform .25s ease}
.tabs-scroll a:hover{color:var(--teal)}
.tabs-scroll a:hover::after{transform:scaleX(.5)}
.tabs-scroll a[aria-current="page"],.tabs-scroll a.is-active{color:var(--teal)}
.tabs-scroll a[aria-current="page"]::after,.tabs-scroll a.is-active::after{transform:scaleX(1)}
.tabbar.spying a[aria-current="page"]:not(.is-active){color:var(--ink)}
.tabbar.spying a[aria-current="page"]:not(.is-active)::after{transform:scaleX(0)}
.tabs-scroll a.tab-cta{margin:7px 0 7px .35rem;height:32px;padding:0 1rem;border-radius:999px;background:var(--sun);color:var(--ink)}
.tabs-scroll a.tab-cta::after{display:none}
.tabs-scroll a.tab-cta:hover,.tabs-scroll a.tab-cta.is-active,.tabs-scroll a.tab-cta[aria-current="page"]{background:var(--ink);color:#fff}
@media (min-width:900px){
  .hdr-top{grid-template-columns:1fr auto 1fr;align-items:center;padding:.6rem 0}
  .brand{order:0;margin:0}
  .brand img{height:52px}
  .hdr-call{justify-self:start}.hdr-mail{justify-self:end}
  .hdr-left{justify-self:start}
  .hdr-quote{display:inline-flex;justify-self:end;min-height:40px;padding:.5rem 1.1rem;font-size:.78rem}
  .hdr-line{font-size:.9rem}
  .hdr-line .k{display:inline;font-size:.7rem;font-weight:800;letter-spacing:var(--caps);text-transform:uppercase;color:var(--teal);margin-right:.45rem}
  .tabbar::before,.tabbar::after{display:none}
  .tabs-scroll{justify-content:center;gap:.4rem;overflow:visible}
  .tabs-scroll a{font-size:.78rem;padding:0 .95rem;height:50px}
  .tabs-scroll a.tab-cta{height:36px;margin:7px 0 7px .5rem}
}

/* ---------- Hero ---------- */
.hero,.page-hero{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--ink)}
.hero-media{position:absolute;inset:0;z-index:-2}
.hero-media video,.hero-media img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover}
.hero-overlay{position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  linear-gradient(160deg,rgba(11,37,69,.82) 0%,rgba(11,37,69,.58) 45%,rgba(0,116,127,.62) 100%),
  radial-gradient(700px 400px at 100% 100%,rgba(0,168,181,.35),transparent 70%)}
.hero-in{padding:clamp(3rem,9vw,7rem) 0 clamp(3.25rem,8vw,6.5rem);text-align:center;max-width:960px}
.kicker{font:700 .8rem/1.5 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#fff;margin:0 0 1.1rem;display:inline-flex;align-items:center;gap:.6rem}
.kicker::before,.kicker::after{content:"";width:18px;height:2px;background:var(--ice);border-radius:2px}
.hero h1,.page-hero h1{color:#fff;margin-bottom:.35em;text-shadow:0 2px 24px rgba(11,37,69,.35)}
.hero h1 em{font-style:italic;color:var(--sun)}
.hero-sub{font-size:clamp(1.05rem,1.6vw,1.25rem);color:rgba(255,255,255,.92);max-width:58ch;margin:0 auto 2rem}
.hero-btns{display:grid;gap:.75rem;max-width:420px;margin:0 auto}
.hero-btns .btn{width:100%}
.hero-btns .btn-sun{margin-top:.5rem;box-shadow:0 14px 30px -14px rgba(255,201,40,.7)}
@media (min-width:760px){
  .hero-btns{display:flex;flex-wrap:wrap;justify-content:center;max-width:none}
  .hero-btns .btn{width:auto}
  .hero-btns .btn-sun{margin-top:0}
}
@media (min-width:900px){.hero-in{min-height:calc(88vh - var(--hdr));display:flex;flex-direction:column;justify-content:center;align-items:center}}

/* ---------- Intro ---------- */
.intro{padding:clamp(4.5rem,11vw,8rem) 0 clamp(3.5rem,8vw,6rem);background:linear-gradient(180deg,var(--wash),#fff)}
.statement{font-size:clamp(1.85rem,4.4vw,3.2rem);line-height:1.18;margin:0 auto .7em;max-width:24ch}
.statement .hl{font-style:italic;background:linear-gradient(transparent 62%,rgba(0,168,181,.45) 62%);padding:0 .08em}
.trio{list-style:none;padding:0;margin:clamp(2.5rem,6vw,4rem) 0 0;display:grid;gap:1.75rem;text-align:center}
@media (min-width:760px){.trio{grid-template-columns:repeat(3,1fr);gap:2rem}}
.trio h3{font-size:1.35rem;margin:.9rem 0 .35rem}
.trio h3 span,.pillar h3 span{font-style:italic;color:var(--teal)}
.trio p{color:var(--muted);margin:0 auto;max-width:30ch}
.dot{display:inline-grid;place-items:center;width:54px;height:54px;border-radius:50%;color:var(--ink)}
.dot svg{width:24px;height:24px}
.d1{background:var(--aqua)}.d2{background:var(--green)}.d3{background:var(--sun)}

/* ---------- Image cards ---------- */
.svc{padding-top:clamp(2rem,5vw,4rem)}
.img-cards{display:grid;gap:.9rem}
@media (min-width:900px){.img-cards{grid-template-columns:1.35fr 1fr;grid-template-rows:1fr 1fr;gap:1.1rem}.img-card--lg{grid-row:1/3}}
.img-card{position:relative;display:block;overflow:hidden;border-radius:var(--r-lg);aspect-ratio:5/4;min-width:0;background:var(--ink);color:#fff;text-decoration:none;isolation:isolate}
@media (min-width:900px){.img-card{aspect-ratio:auto;min-height:290px}.img-card--lg{min-height:600px}}
.img-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s ease;z-index:-2}
.img-card::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(11,37,69,.92) 0%,rgba(11,37,69,.55) 38%,rgba(0,116,127,.08) 70%,transparent 100%)}
.img-card:hover img{transform:scale(1.05)}
.ic-txt{position:absolute;left:0;right:0;bottom:0;padding:1.6rem 1.5rem;display:flex;flex-direction:column;align-items:center;text-align:center}
.ic-txt strong{font:800 clamp(1.15rem,2.4vw,1.55rem)/1.2 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:#fff}
.ic-txt .sub{font:700 .76rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--ice);margin-top:.45rem}
.ic-txt .go{display:inline-flex;align-items:center;gap:.4rem;margin-top:1rem;font:800 .74rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:#fff;padding:.6rem 1rem;border-radius:999px;transition:background .2s}
.ic-txt .go svg{width:16px;height:16px}
.img-card:hover .go{background:var(--sun)}
.tag{display:inline-block;margin-bottom:.75rem;padding:.35rem .75rem;border-radius:999px;background:var(--coral);color:var(--ink);font:800 .68rem/1 var(--sans);letter-spacing:.16em;text-transform:uppercase}

/* ---------- How it works ---------- */
.steps4{list-style:none;padding:0;margin:0 auto;display:grid;gap:2.5rem;max-width:1040px}
@media (min-width:720px){.steps4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:1040px){.steps4{grid-template-columns:repeat(4,1fr);gap:2rem}}
.steps4 li{text-align:center;position:relative}
.steps4 .n{display:block;font:600 clamp(2.6rem,5vw,3.4rem)/1 var(--serif);font-style:italic;color:#0A66C2;margin-bottom:.6rem}
.steps4 li:nth-child(2) .n{color:#00747F}
.steps4 li:nth-child(3) .n{color:#A15C00}
.steps4 li:nth-child(4) .n{color:#C2410C}
.steps4 h3{font:800 .95rem/1.3 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;margin-bottom:.5rem}
.steps4 h3::after{content:"";display:block;width:32px;height:3px;border-radius:3px;background:var(--line);margin:.7rem auto 0}
.steps4 p{color:var(--muted);margin:0 auto;max-width:26ch;font-size:.98rem}

/* ---------- Image break ---------- */
.break{position:relative;isolation:isolate;overflow:hidden;min-height:clamp(320px,52vw,560px);display:grid;place-items:center;text-align:center;color:#fff}
.break img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.break::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(0,116,127,.80),rgba(11,37,69,.62) 55%,rgba(0,168,181,.45))}
.break-in{padding:3rem 1.5rem}
.break p{font:600 clamp(1.7rem,4.6vw,3.3rem)/1.15 var(--serif);margin:0 auto;max-width:20ch;text-shadow:0 2px 24px rgba(11,37,69,.35)}
.break em{color:var(--sun)}

/* Ticks */
.ticks{list-style:none;padding:0;margin:0 0 1.25rem;display:grid;gap:.5rem}
.ticks li{position:relative;padding-left:1.8rem;font-size:.97rem}
.ticks li::before{content:"";position:absolute;left:0;top:.2em;width:1.2rem;height:1.2rem;border-radius:50%;background:var(--green) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2E3F' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4L18 8'/%3E%3C/svg%3E") center/70% no-repeat}

/* ---------- Checklist tabs ---------- */
.tabs{max-width:980px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.tablist{display:flex;gap:.25rem;padding:.6rem;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}
.tablist::-webkit-scrollbar{display:none}
.tablist button{flex:0 0 auto;border:0;background:transparent;padding:0 1rem;min-height:44px;border-radius:999px;font:800 .74rem/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.tablist button:hover{background:var(--wash)}
.tablist button[aria-selected="true"]{background:var(--aqua);color:var(--ink)}
.tabpanel{padding:1.75rem clamp(1.25rem,3vw,2.25rem) 1.9rem}
.tabpanel h3{font-size:1.3rem}
.tabpanel .ticks{margin:0}
@media (min-width:700px){.tabpanel .ticks{grid-template-columns:1fr 1fr;column-gap:2rem}}
.no-js .tabpanel[hidden]{display:block}

/* ---------- Service area ---------- */
.area{background:#fff}
.area-name span{display:block;font-size:.42em;margin-top:.25em;padding-bottom:.1em}
.area-list{list-style:none;padding:0;margin:0 auto 1.5rem;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;max-width:720px}
.area-list li{padding:.45rem .95rem;border-radius:999px;background:var(--wash);border:1.5px solid var(--aqua);font-weight:700;font-size:.92rem;color:var(--ink)}
.area-list li:first-child{background:var(--aqua)}
.area-name{font-size:clamp(2.6rem,8vw,5.2rem);margin:.1em 0 .35em;background:linear-gradient(90deg,var(--teal),#00747F);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- FAQ ---------- */
.faq{max-width:860px;margin-inline:auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.3rem 3rem 1.3rem 0;font-weight:700;font-size:1.05rem;color:var(--ink);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:0;top:50%;width:30px;height:30px;margin-top:-15px;border-radius:50%;background:var(--aqua) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2E3F' stroke-width='2.6' stroke-linecap='round'%3E%3Cpath d='M12 6v12M6 12h12'/%3E%3C/svg%3E") center/60% no-repeat;transition:transform .25s,background-color .2s}
.faq summary:hover{color:var(--teal)}
.faq details[open] summary::after{transform:rotate(45deg);background-color:var(--sun)}
.faq .a{padding:0 3rem 1.3rem 0;color:var(--muted)}
.faq .a p{margin:0}

/* ---------- Quote form ---------- */
.quote{background:#fff}
.quote-grid{display:grid;gap:2.5rem}
@media (min-width:960px){.quote-grid{grid-template-columns:.9fr 1.1fr;gap:5rem;align-items:start}}
.quote-side{text-align:center}
@media (min-width:960px){.quote-side{text-align:left;position:sticky;top:calc(var(--hdr) + 2rem)}}
.quote-side .lede{margin-inline:auto}
.direct{list-style:none;padding:0;margin:1.75rem 0 0;display:grid;gap:1rem}
.direct li{display:flex;flex-direction:column;font-weight:600}
.direct .k{font:800 .7rem/1.4 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--teal)}
.direct a{color:var(--ink);text-decoration:none;font-size:1.08rem}
.direct a:hover{color:var(--teal)}
.qform{background:var(--wash);border-radius:var(--r-lg);padding:clamp(1.5rem,4vw,2.75rem);border-top:6px solid var(--aqua)}
.qf{margin-bottom:1.5rem}
.qf-row{display:grid;gap:0 1.5rem}
@media (min-width:560px){.qf-row{grid-template-columns:1fr 1fr}}
.qform label{display:block;font:800 .72rem/1.3 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--ink);margin-bottom:.15rem}
.req{color:#C2410C}
.qform input,.qform select,.qform textarea{width:100%;min-height:46px;padding:.55rem 0;border:0;border-bottom:2px solid #9FCFD5;border-radius:0;background:transparent;font:500 1.02rem/1.4 var(--sans);color:var(--ink);transition:border-color .2s}
.qform select{-webkit-appearance:none;appearance:none;padding-right:1.75rem;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300747F' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right center/20px no-repeat}
.qform textarea{min-height:96px;resize:vertical}
.qform ::placeholder{color:#5A6B80;opacity:1}
.qform input:focus,.qform select:focus,.qform textarea:focus{outline:none;border-bottom-color:var(--teal);box-shadow:0 2px 0 0 var(--teal)}
.qform .btn{margin-top:.5rem;min-height:58px;font-size:.92rem}
.fine{font-size:.82rem;color:var(--muted);text-align:center;margin:.9rem 0 0}
.form-status{margin-top:1rem;padding:1rem 1.1rem;border-radius:12px;background:var(--green-50);border:1px solid #A9DDE3;display:none}
.form-status.show{display:block}

/* ---------- Service pages ---------- */
.page-hero .hero-overlay{background:linear-gradient(160deg,rgba(11,37,69,.86) 0%,rgba(11,37,69,.66) 50%,rgba(0,116,127,.66) 100%)}
.ph-in{padding:clamp(2rem,6vw,4.5rem) 0 clamp(3rem,7vw,5.5rem);text-align:center;max-width:900px}
.page-hero h1{font-size:clamp(2.2rem,5.6vw,4rem)}
@media (max-width:899px){.hero-btns--2{max-width:460px}}
.crumbs{font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin-bottom:1.5rem}
.crumbs ol{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:.5rem;padding:0;margin:0;color:rgba(255,255,255,.85)}
.crumbs li+li::before{content:"/";margin-right:.5rem;color:var(--ice)}
.crumbs a{color:#fff}
.badge-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;list-style:none;padding:0;margin:1.75rem 0 0}
.badge-row li{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border-radius:999px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.35);font-size:.85rem;font-weight:700;color:#fff}
.badge-row svg{width:16px;height:16px;color:var(--green)}
.page-hero--light{background:linear-gradient(160deg,var(--teal),#0A3D7A 60%,var(--ink));}
.page-hero--light::after{content:"";position:absolute;inset:auto -10% -40% auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(0,168,181,.45),transparent 65%);z-index:-1}
.grid-2{display:grid;gap:2rem}
@media (min-width:860px){.grid-2{grid-template-columns:1fr 1fr;gap:3rem;align-items:start}}
.grid-3{display:grid;gap:1.25rem}
@media (min-width:820px){.grid-3{grid-template-columns:repeat(3,1fr)}}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(1.5rem,3vw,2rem);box-shadow:var(--shadow)}
.panel h3{display:flex;align-items:center;gap:.7rem}
.panel h3 .ic{flex:0 0 42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--aqua);color:var(--ink)}
.grid-3 .panel:nth-child(2) h3 .ic{background:var(--green)}
.grid-3 .panel:nth-child(3) h3 .ic{background:var(--sun)}
.panel h3 .ic svg{width:20px;height:20px}
.price-panel{background:linear-gradient(150deg,var(--ink),#0A3D7A);color:#fff;border:0}
.price-panel .eyebrow{color:var(--ice)}
.price-panel h2{color:#fff;font-size:1.7rem;margin-bottom:.2rem}
.price-panel .amt{font:600 3.4rem/1 var(--serif);margin:.6rem 0 .3rem}
.price-panel .amt small{font:600 1.1rem var(--sans);color:rgba(255,255,255,.8)}
.price-panel .per{color:var(--ice);font-weight:700}
.price-panel p{color:rgba(255,255,255,.88)}
.price-panel .note{color:rgba(255,255,255,.75);margin:1rem 0 0}
.h-sm{font-size:1.65rem}
.addons{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}
.addons li{background:#fff;border:1.5px solid var(--aqua);padding:.45rem .9rem;border-radius:999px;font-weight:700;font-size:.88rem}
.pillars{display:grid;gap:2rem;text-align:center}
@media (min-width:820px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillar h3{margin:.9rem 0 .4rem}
.pillar p{color:var(--muted);margin:0 auto;max-width:32ch}
.nf{padding:clamp(5rem,12vw,9rem) 0}
.nf-btns{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center;margin-top:1.5rem}

/* ---------- Footer ---------- */
.foot-cta{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;padding-bottom:2.5rem;margin-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.14)}
.foot-cta-t{font:600 clamp(1.3rem,2.6vw,1.7rem)/1.25 var(--serif);color:#fff;margin:0}
.foot-btns{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;width:100%}
.foot-btns .btn-alt{--bg:transparent;--fg:#fff;border-color:rgba(255,255,255,.8)}
.foot-btns .btn-alt:hover{--bg:var(--sun);--fg:var(--ink);border-color:var(--sun)}
@media (max-width:559px){.foot-btns .btn{width:100%}}
.site-footer{background:var(--ink);color:rgba(255,255,255,.82);padding:clamp(3rem,7vw,4.5rem) 0 2rem;font-size:.95rem}
.foot-contact{display:grid;gap:1.75rem;text-align:center;padding-bottom:2.5rem;border-bottom:1px solid rgba(255,255,255,.14)}
@media (min-width:760px){.foot-contact{grid-template-columns:repeat(3,1fr)}}
@media (min-width:760px){.foot-contact--2{grid-template-columns:repeat(2,1fr)}}
.site-footer h2{font:800 .72rem/1.3 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ice);margin:0 0 .5rem}
.foot-contact a,.foot-contact span{font:600 clamp(1.15rem,2vw,1.35rem)/1.3 var(--serif);color:#fff;text-decoration:none;word-break:break-word}
.foot-contact a:hover{color:var(--sun)}
.foot-mid{display:grid;gap:2rem;justify-items:center;padding:2.5rem 0}
@media (min-width:860px){.foot-mid{grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:4rem}}
.foot-brand{display:flex;flex-direction:column;align-items:center;gap:.6rem;text-decoration:none;color:#fff;font:600 1.15rem var(--serif)}
.foot-brand img{width:110px}
.foot-links{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem 2rem;text-align:center}
@media (min-width:860px){.foot-links{grid-template-columns:repeat(4,auto);justify-content:end;text-align:left}}
.foot-links a{display:inline-block;padding:.4rem 0;color:#fff;text-decoration:none;font:700 .76rem/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.foot-links a:hover{color:var(--sun)}
.foot-bottom{padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:.5rem 2rem;justify-content:center;text-align:center;font-size:.82rem;color:rgba(255,255,255,.72)}
.foot-bottom p{margin:0}
@media (min-width:860px){.foot-bottom{justify-content:space-between;text-align:left}}

/* ---------- Mobile sticky quote/call bar (bottom; header tabs stay on top) ---------- */
.mobile-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;display:flex;gap:.5rem;padding:.55rem .75rem calc(.55rem + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -10px 26px -18px rgba(11,37,69,.45);transform:translateY(110%);transition:transform .3s ease}
.mobile-cta.show{transform:none}
.mobile-cta .btn{flex:1;min-height:48px;padding:.6rem .8rem}
@media (max-width:899px){.site-footer{padding-bottom:calc(2rem + 72px)}}
@media (min-width:900px){.mobile-cta{display:none}}

/* Reveal */
.js .rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.js .rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .rv{opacity:1;transform:none}}

/* ---------- v7: secondary CTAs (walk-through / consultation) ---------- */
.btn-alt{--bg:rgba(11,37,69,.35);--fg:#fff;border-color:rgba(255,255,255,.7);min-height:46px;padding:.65rem 1.1rem;font-size:.76rem;letter-spacing:.1em}
.btn-alt svg{width:16px;height:16px;color:var(--green)}
.btn-alt:hover{--bg:#fff;--fg:var(--ink);border-color:#fff}
.hero-alt{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;margin-top:1rem}
@media (max-width:559px){.hero-alt .btn{width:100%}}
.panel-alt .alt-row{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.panel-alt .btn-alt{--bg:transparent}
.price-panel .per{font-size:1.05rem;line-height:1.5;margin:.4rem 0 1rem}
.ways-cards{display:grid;gap:1.1rem}
@media (min-width:860px){.ways-cards{grid-template-columns:repeat(3,1fr)}}
.way{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem;padding:1.75rem 1.5rem;border-radius:var(--r-lg);background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);text-decoration:none;color:var(--ink);position:relative;overflow:hidden;transition:transform .2s,box-shadow .2s}
.way::before{content:"";position:absolute;left:0;right:0;top:0;height:6px;background:var(--aqua)}
.way-2::before{background:var(--green)}.way-3::before{background:var(--sun)}
.way:hover{transform:translateY(-3px);color:var(--ink)}
.way h3{margin:.6rem 0 .1rem;font-size:1.45rem}
.way p{color:var(--muted);margin:0 0 .8rem}
.way .go{margin-top:auto;display:inline-flex;align-items:center;gap:.4rem;font:800 .76rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--teal)}
.way .go svg{width:16px;height:16px}

/* ---------- v7: step-by-step quote flow ---------- */
.qflow{border:0;min-width:0}
.qflow fieldset{border:0;margin:0;padding:0;min-width:0}
.qstep{margin:0 0 2.25rem}
.q-title{display:block;padding:0;font:600 clamp(1.45rem,3.2vw,1.9rem)/1.2 var(--serif);color:var(--ink);margin:0 0 .4rem;outline:none}
.q-path{display:block;font:800 .7rem/1.3 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--teal);margin-bottom:.35rem}
.q-help{color:var(--muted);margin:0 0 1rem;font-size:.98rem}
.q-sub{font:800 .72rem/1.3 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;margin:1rem 0 .5rem}
.q-office-note{margin:0 0 1rem;padding:.8rem 1rem;border-radius:12px;background:var(--green-50);border:1px solid #A9DDE3;font-weight:700}
.opts{display:grid;gap:.7rem;margin-top:1rem}
.opts-sm{grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.opt{position:relative;display:block;cursor:pointer}
.opt input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.opt-in{display:flex;align-items:center;gap:.9rem;min-height:64px;padding:.85rem 3rem .85rem 1rem;background:#fff;border:2px solid #A9DDE3;border-radius:16px;box-shadow:0 1px 2px rgba(11,37,69,.05);transition:border-color .15s,box-shadow .15s,transform .15s,background .15s;position:relative}
.opts-sm .opt-in{justify-content:center;text-align:center;padding:.85rem 1.6rem}
.opt:hover .opt-in{border-color:var(--aqua);transform:translateY(-1px);box-shadow:0 10px 22px -16px rgba(11,37,69,.55)}
.opt-ic{flex:0 0 46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--wash);color:var(--teal);transition:background .15s,color .15s}
.opt-ic svg{width:22px;height:22px}
.opt-tx{display:flex;flex-direction:column;min-width:0}
.opt-t{font:800 1.04rem/1.25 var(--sans);color:var(--ink)}
.opt-s{font-size:.88rem;line-height:1.35;color:var(--muted);margin-top:.15rem}
.opt-ok{position:absolute;right:.9rem;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:var(--ink);opacity:0;transform:scale(.6);transition:opacity .15s,transform .15s}
.opts-sm .opt-ok{right:.45rem;width:22px;height:22px;margin-top:-11px}
.opt-ok svg{width:15px;height:15px}
.opt input:checked+.opt-in{border-color:var(--teal);background:#EFFBFC;box-shadow:0 0 0 2px var(--teal)}
.opt input:checked+.opt-in .opt-ok{opacity:1;transform:none}
.opt input:checked+.opt-in .opt-ic{background:var(--aqua);color:var(--ink)}
.opt input:focus-visible+.opt-in{outline:3px solid var(--coral);outline-offset:3px}
.q-nav{display:flex;justify-content:flex-end;margin-top:1.25rem}
.q-nav .btn[disabled]{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
.qf-top{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:.4rem 1rem;margin-bottom:1.5rem}
.qf-back{grid-row:1;display:inline-flex;align-items:center;gap:.35rem;min-height:44px;padding:0 1rem 0 .7rem;border:2px solid var(--ink);border-radius:999px;background:#fff;color:var(--ink);font:800 .74rem/1 var(--sans);letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.qf-back:hover{background:var(--ink);color:#fff}
.qf-back svg{width:16px;height:16px}
.qf-back[hidden]{display:inline-flex;visibility:hidden}
.qf-count{grid-row:1;grid-column:2;justify-self:end;margin:0;font:800 .74rem/1 var(--sans);letter-spacing:var(--caps);text-transform:uppercase;color:var(--teal)}
.qf-bar{grid-column:1/-1;height:10px;border-radius:999px;background:#CDEFF2;overflow:hidden}
.qf-bar span{display:block;height:100%;width:10%;border-radius:999px;background:linear-gradient(90deg,var(--aqua),var(--green));transition:width .35s ease}
.est-card{margin-top:1rem;padding:clamp(1.4rem,4vw,2rem);border-radius:20px;background:linear-gradient(150deg,var(--ink),#0A3D7A);color:#fff;text-align:center;box-shadow:var(--shadow)}
.est-lead{margin:0;font:700 1rem/1.3 var(--sans);color:var(--ice)}
.est-range{margin:.5rem 0;font:600 clamp(2.4rem,8vw,3.4rem)/1.05 var(--serif);color:var(--sun)}
.est-range small{display:block;font:700 1rem/1.3 var(--sans);color:#fff;margin-top:.3rem}
.est-note{margin:0 auto;max-width:34ch;color:rgba(255,255,255,.9)}
.est-tags{margin:.9rem 0 0;font-size:.86rem;color:rgba(255,255,255,.8)}
.qflow .qf-send{margin-top:.5rem}
.nojs-note{margin:0 0 1.5rem;font-weight:700}
/* Flow mode (main.js adds .is-flow): one step at a time. Without JS, the whole form shows as one page. */
.qflow:not(.is-flow) .js-only{display:none}
.qflow.is-flow .nojs-note,.qflow.is-flow .q-path{display:none}
.qflow.is-flow .qstep{display:none;margin:0}
.qflow.is-flow .qstep.is-on{display:block;animation:qin .3s ease}
.qflow.is-flow [data-only]{display:none}
.qflow.is-flow.svc-office [data-only="office"]{display:block}
@keyframes qin{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.form-status a{font-weight:700}
.qflow .opt{font:inherit;text-transform:none;letter-spacing:normal;margin:0;color:inherit}
.qflow .opt input{min-height:0;padding:0;border:0;width:1px;height:1px}
/* v7.1 Weekly Sunday Reset (residential) */
.sunday{background:linear-gradient(160deg,#FFF8E1 0%,#E8F7F4 100%)}
.sr-grid{align-items:center}
.sr-intro h2{margin:.25rem 0 .75rem}
.sr-facts{list-style:none;padding:0;margin:1.25rem 0 1.5rem;display:grid;gap:.6rem}
.sr-facts li{display:flex;align-items:center;gap:.6rem;font-weight:700;color:var(--ink)}
.sr-facts svg{width:22px;height:22px;flex:none;color:var(--teal)}
.sr-panel h3{display:flex;align-items:center;gap:.6rem}
.sr-note{margin:1rem 0 0;font-size:.92rem;color:var(--muted,#3d4a52)}

/* v10 audit: hero secondary link, 6-item "Why More" grid, 3-step How it works */
.hero-more{display:inline-block;margin-top:1.1rem;color:#fff;font:700 .78rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;border-bottom:2px solid rgba(255,255,255,.55);padding:.35rem 0 .2rem}
.hero-more:hover,.hero-more:focus-visible{border-color:var(--sun)}
.hero-btns .btn-line svg{width:16px;height:16px}
.why{background:linear-gradient(180deg,var(--wash),#fff)}
.trio--6{margin-top:clamp(1.5rem,4vw,2.5rem);row-gap:2.25rem}
.trio--6 h3{font-size:1.25rem}
@media (min-width:720px){.steps3{grid-template-columns:repeat(3,1fr);gap:2rem}}
@media (min-width:1040px){.steps3{grid-template-columns:repeat(3,1fr);max-width:960px}}

/* v11: quote form sent via /api/quote (honeypot + sent state) */
.hp-field{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.qform.is-sent .qstep,.qform.is-sent .qf-top{display:none!important}
.form-status.is-sent{font-size:1.05rem}
.form-status.is-sent strong{display:block;font-size:1.2rem;margin-bottom:.25rem}
.qf-send[disabled]{opacity:.7;cursor:progress}
/* v12: privacy page + footer/fine-print privacy links */
.foot-bottom a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.fine a{color:var(--teal);text-decoration:underline;text-underline-offset:2px;font-weight:600;white-space:nowrap}
.legal{padding-top:clamp(2.5rem,6vw,4rem)}
.prose{max-width:720px;font-size:1.02rem;line-height:1.7;color:var(--ink)}
.prose h2{font-size:clamp(1.2rem,2.4vw,1.45rem);margin:2.2rem 0 .6rem;line-height:1.3}
.prose p,.prose ul{margin:0 0 1rem}
.prose ul{padding-left:1.3rem}
.prose li{margin:.3rem 0}
.prose a{color:var(--teal);text-decoration:underline;text-underline-offset:2px;overflow-wrap:anywhere}
.legal-date{font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}


/* ===== BLEND THEME overrides (appended by build.py when THEME=blend) =====
   Aqua calm + blue trust + citrus action. WCAG AA (contrast vs white unless noted):
     Navy ink   #0B2545  text/headings 15.4:1 (14.6:1 on aqua wash)
     Brand blue #0A66C2  links + white-text buttons 5.7:1 (5.4:1 on wash)
     Aqua       #00A8B5  calm fills/checkmarks/icons with navy text 5.3:1; never white or aqua text on it
     Teal       #00747F  white text on teal 5.5:1; teal text on white 5.5:1 (5.2:1 on wash)
     Yellow     #FFC928  main CTA with navy text 10.0:1 (hover #FFD54F)
     Orange     #FF7A1A  sparing accent (swoosh, underline, small pills with navy text 5.9:1)
     Burnt orange #C2410C / amber #A15C00  step numbers + orange text 5.2:1 (4.9:1 on wash)
     Ice aqua   #5FE3EC  accents on navy 10.0:1 / on deep blue 7.0:1
     Wash #EFFBFC · Line #CDEFF2 · Muted #3E5F6B (6.5:1 on wash) · Placeholder #5A6B80 (5.2:1 on wash) */
:focus-visible,.opt input:focus-visible+.opt-in{outline-color:#0A66C2}
/* hero: blue -> teal tint */
.hero-overlay{background:linear-gradient(160deg,rgba(10,61,122,.84) 0%,rgba(11,37,69,.58) 45%,rgba(0,116,127,.62) 100%),radial-gradient(700px 400px at 100% 100%,rgba(0,168,181,.3),transparent 70%)}
.page-hero .hero-overlay{background:linear-gradient(160deg,rgba(10,61,122,.86) 0%,rgba(11,37,69,.66) 50%,rgba(0,116,127,.66) 100%)}
.break::after{background:linear-gradient(120deg,rgba(10,61,122,.82),rgba(11,37,69,.6) 55%,rgba(0,116,127,.55))}
.page-hero--light{background:linear-gradient(160deg,#0A66C2,#0A3D7A 60%,#0B2545)}
/* calm aqua: icon circles and service-area name in teal */
.area-name{background:linear-gradient(90deg,#0A66C2,#00747F);-webkit-background-clip:text;background-clip:text;color:transparent}
/* citrus energy: active tab underline, eyebrow rules, progress bar, highlights */
.tabs-scroll a::after{background:#FF7A1A}
.eyebrow::before{background:linear-gradient(90deg,#00A8B5,#FF7A1A)}
.center .eyebrow::after{background:linear-gradient(90deg,#FF7A1A,#00A8B5)}
.qf-bar span{background:linear-gradient(90deg,#00A8B5,#FFC928)}
.statement .hl{background:linear-gradient(transparent 62%,rgba(255,201,40,.55) 62%)}
/* ===== v8: plus-mark accents (Kenyon's plus as a SECONDARY mark; the M stays the logo in header/footer/icons) =====
   Markup comes from build.py PLUS_ACCENTS (blend only): <symbol id="pm"> = faithful trace, "pm-s" = simplified for ~1em.
   All plus SVGs are aria-hidden. Colors via --pm-plus / --pm-top / --pm-bot so dark panels can swap the blue for white. */
.pm{display:inline-block;width:1em;height:1em;flex:none;vertical-align:-.14em;overflow:visible}
.price-panel{--pm-plus:#fff;--pm-bot:#5FE3EC}
/* checklists: plus replaces the round checkmark */
.ticks--plus li{padding-left:1.85rem}
.ticks--plus li::before{content:none}
.ticks--plus .pm-tick{position:absolute;left:.05rem;top:.2em;width:1.2rem;height:1.2rem}
/* eyebrow ornament: small plus in place of the left rule */
.eyebrow--plus{gap:.5rem}
.eyebrow--plus::before,.center .eyebrow--plus::after{display:none}
.eyebrow--plus .pm-eb{width:1.6em;height:1.6em;vertical-align:middle}
/* one centered divider on the homepage (above How it works) */
.pm-rule{display:flex;align-items:center;justify-content:center;gap:1rem;max-width:300px;margin:0 auto 2.25rem}
.pm-rule::before,.pm-rule::after{content:"";flex:1;height:2px;border-radius:2px;background:linear-gradient(90deg,rgba(0,168,181,0),#00A8B5)}
.pm-rule::after{background:linear-gradient(90deg,#FF7A1A,rgba(255,122,26,0))}
.pm-rule-m{width:40px;height:40px}
/* one large faint watermark behind the homepage "What's included" wash (decorative, behind content) */
#included{position:relative;overflow:hidden}
#included>.wrap{position:relative;z-index:1}
.pm-wm{position:absolute;z-index:0;pointer-events:none;width:clamp(300px,46vw,620px);height:clamp(300px,46vw,620px);right:clamp(-150px,-6vw,-40px);top:clamp(1rem,4vw,3rem);opacity:.06}
/* quote flow: plus beside the step counter */
.qf-count{display:inline-flex;align-items:center;gap:.4rem}
.qf-count::before{content:"";width:1.45em;height:1.45em;flex:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='65 230 1008 943'%3E%3Cpath fill='%230A66C2' d='M577 240H735L357 1163H199Z'/%3E%3Cpath fill='%230A66C2' d='M172 637H1063Q1040 700 975 758H75Q100 680 172 637Z'/%3E%3Cpath fill='%23FF7A1A' d='M797 240H905Q925 245 912 290L776 600H650Z'/%3E%3Cpath fill='%2300A8B5' d='M570 796H690L548 1130Q535 1163 505 1163H420Z'/%3E%3C/svg%3E") center/contain no-repeat}
.pm-wm{--pm-top:#00A8B5;--pm-bot:#00A8B5}
.pm-rule+.section-head .eyebrow--plus .pm-eb{display:none}
