/* Fresh Sweep Expert — token system + landing page styles. Mobile first. */
:root{
  --primary:#1B1464;--secondary:#1B1464;--accent:#FF0000;
  --accent-ink:color-mix(in srgb,var(--accent) 82%,#000);
  --primary-25:color-mix(in srgb,var(--primary) 25%,transparent);--line-soft:#e9eeec;--success:#1e8e5a;
  --display:var(--font-display);--body:var(--font-ui);
  --tint:color-mix(in srgb,var(--primary) 9%,#fff);
  --ink:#16221f;--muted:#5d6b68;--line:#dde4e1;--bg:#f5f8f6;--card:#fff;
  --radius:16px;--radius-sm:10px;--shadow:0 8px 30px rgba(15,42,46,.08);
  --font-display:"Fraunces",Georgia,serif;--font-ui:"Nunito Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --form-w:620px;--danger:#c0392b;--ok:#1e8e5a;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--font-ui);font-size:16px;line-height:1.5;color:var(--ink);background:var(--bg)}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);font-weight:700;line-height:1.15;letter-spacing:-.01em}
a{color:var(--primary)}
img,svg{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
[hidden]{display:none!important}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4em;min-height:48px;padding:0 22px;border-radius:12px;border:1px solid transparent;font-weight:700;text-decoration:none;cursor:pointer;transition:transform .12s,box-shadow .12s,background .12s}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 6px 18px color-mix(in srgb,var(--primary) 35%,transparent)}
.btn-primary:hover{transform:translateY(-1px)}
.btn-primary:disabled{opacity:.65;cursor:progress;transform:none}
.btn-ghost{background:transparent;border-color:var(--line);color:var(--ink)}
.btn-ghost:hover{background:var(--tint)}
.btn-pin{min-height:46px;padding:0 12px}

/* site (home + legal) */
.site-head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);-webkit-backdrop-filter:saturate(1.4) blur(10px);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.nav-row{display:flex;align-items:center;gap:10px;max-width:1080px;margin:0 auto;padding:10px 16px;min-height:64px}
.nav-actions{display:flex;align-items:center;gap:8px;margin-left:auto}
.nav-contact{min-height:42px;padding:0 14px;font-size:14px;white-space:nowrap}
.nav-contact-full{display:none}
.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border-radius:12px;border:1px solid var(--line);background:#fff;cursor:pointer;color:var(--ink)}
.nav-toggle svg{width:22px;height:22px}
.nav-toggle .ico-close{display:none}
body.nav-open .nav-toggle .ico-open{display:none}body.nav-open .nav-toggle .ico-close{display:block}
.site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);box-shadow:var(--shadow);padding:4px 16px 16px;max-height:calc(100vh - 64px);overflow:auto}
body.nav-open .site-nav{display:block}
.nav-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.nav-item>a{display:block;padding:13px 4px;font-weight:700;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line-soft)}
.nav-item>a[aria-current="page"],.nav-sub a[aria-current="page"]{color:var(--primary)}
.nav-sub{list-style:none;margin:0;padding:0 0 6px 14px;border-bottom:1px solid var(--line-soft)}
.nav-sub a{display:block;padding:10px 4px;text-decoration:none;color:var(--muted);font-weight:600}
.nav-sub a:hover{color:var(--primary)}
.nav-panel-actions{display:flex;flex-direction:column;gap:10px;margin-top:14px}
.nav-panel-actions .btn{width:100%}
/* Google rating badge: Google's own rating + count from the Business Profile, linking to it */
.gbadge{display:inline-flex;align-items:center;gap:6px;min-height:42px;padding:0 12px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:14px;white-space:nowrap;box-shadow:0 1px 2px rgba(15,42,46,.05);transition:background .12s,border-color .12s}
a.gbadge:hover{background:var(--tint);border-color:color-mix(in srgb,var(--primary) 30%,var(--line))}
.gbadge .g-logo{width:18px;height:18px;flex:none}.gbadge .g-logo svg{width:18px;height:18px}
.gbadge-rating{font-size:15px;line-height:1}
.gbadge-stars{position:relative;display:inline-block;color:#d9dfdc;letter-spacing:1px;font-size:13px;line-height:1}
.gbadge-stars::before{content:"★★★★★";position:absolute;left:0;top:0;width:var(--fill,100%);overflow:hidden;white-space:nowrap;letter-spacing:1px;color:#f5a623}
.gbadge-count{color:var(--muted)}
.gbadge-plain{font-weight:600}
@media(max-width:760px){.gbadge-count{display:none}.gbadge{padding:0 10px}}
@media(max-width:400px){.gbadge-stars{display:none}.nav-contact-short{padding:0 10px}.nav-row{gap:8px}.nav-actions{gap:6px}}
@media(max-width:340px){.nav-row{padding:8px 12px}.brand-mark{width:38px;height:38px}.gbadge{padding:0 8px;font-size:13px}.nav-contact-short{font-size:13px;padding:0 8px}.nav-toggle{width:40px}}
@media(min-width:761px){
  .nav-row{gap:18px}
  .nav-toggle{display:none}
  .nav-contact-full{display:inline-flex}.nav-contact-short{display:none}
  .site-nav{display:block;position:static;background:none;border:0;box-shadow:none;padding:0;max-height:none;overflow:visible;flex:1}
  .nav-list{flex-direction:row;align-items:center;justify-content:center;gap:2px}
  .nav-item{position:relative}
  .nav-item>a{padding:8px 12px;border:0;border-radius:10px;font-size:15px;white-space:nowrap}
  .nav-item>a:hover{background:var(--tint);color:var(--primary)}
  .has-sub>a::after{content:"";display:inline-block;width:6px;height:6px;margin-left:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-3px) rotate(45deg)}
  .nav-sub{display:none;position:absolute;top:100%;left:0;min-width:230px;margin:0;padding:8px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);z-index:60}
  .nav-item.has-sub:hover .nav-sub,.nav-item.has-sub:focus-within .nav-sub{display:block}
  .nav-sub a{padding:9px 10px;border-radius:8px;color:var(--ink)}
  .nav-sub a:hover{background:var(--tint)}
  .nav-panel-actions{display:none}
}
@media(min-width:761px) and (max-width:900px){.gbadge-count{display:none}}
html{scroll-padding-top:80px}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
.site-main{max-width:1080px;margin:0 auto;padding:16px}
.hero{padding:36px 0 28px;max-width:720px}.hero h1{font-size:clamp(32px,6vw,52px);color:var(--secondary)}.lede{font-size:18px;color:var(--muted);margin:10px 0 0}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.section-head{margin:0 0 16px}.section-head h2{font-size:26px;color:var(--secondary)}.section-head p{margin:6px 0 0}
.services{padding:16px 0 8px}
.service-grid{display:grid;grid-template-columns:1fr;gap:14px}
.service-card{display:flex;flex-direction:column;gap:10px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.service-top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.service-top h3{font-size:21px}
.service-price{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--primary);white-space:nowrap}.service-price small{font-family:var(--font-ui);font-size:12px;font-weight:600;color:var(--muted);margin-right:2px}
.service-desc{margin:0;color:var(--muted)}
.service-inc{list-style:none;padding:0;margin:0;font-size:13px;color:var(--ok);display:flex;flex-wrap:wrap;gap:6px 14px}
.service-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto;padding-top:6px}.service-actions .btn{min-height:44px;padding:0 16px;font-size:14px}
.included-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:18px 0;padding:14px 16px;border-radius:12px;background:var(--tint)}
.areas{padding:24px 0 8px}.area{margin-bottom:12px}.area strong{display:block;margin-bottom:8px}.area-list{display:flex;flex-wrap:wrap;gap:6px}
.options{padding:24px 0 8px}
.option-grid{display:grid;grid-template-columns:1fr;gap:14px}
.option-card{position:relative;padding:22px 20px 20px;background:#fff;border:1px solid var(--line);border-radius:var(--radius)}
.option-card h3{font-size:18px;margin:0 0 6px}.option-card p{margin:0 0 10px;color:var(--muted);font-size:14px}
.option-n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;font-weight:700;font-size:14px;margin-bottom:10px}
.option-link{font-weight:700;text-decoration:none;display:inline-block;padding:10px 0}
.faq{padding:24px 0 8px;max-width:760px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:var(--radius-sm);margin-bottom:10px}
.faq-item summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;cursor:pointer;list-style:none}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-size:22px;line-height:1;color:var(--primary);flex:none}
.faq-item[open] summary::after{content:"−"}
.faq-item summary:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:var(--radius-sm)}
.faq-item h3{font-size:17px;margin:0}
.faq-item p{margin:0;padding:0 18px 16px;color:var(--muted)}
@media (min-width:761px){.service-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.option-grid{grid-template-columns:repeat(3,1fr)}}
.prose{max-width:720px}.prose h1{font-size:34px;margin-bottom:6px}.muted{color:var(--muted)}
.prose table{width:100%;border-collapse:collapse;margin:16px 0;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--line);padding:8px 10px;text-align:left;vertical-align:top}.prose th{background:var(--line-soft)}
/* error pages (404 / 403 / 400). 500.html is standalone and inlines its own CSS. */
.error-page{padding:40px 0 24px}
.error-code{margin:0 0 6px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.error-page h1{font-size:clamp(28px,5vw,40px);color:var(--secondary);margin-bottom:8px}
.error-page .muted{font-size:14px;margin-top:20px}
.site-foot,.lp-foot{display:flex;flex-direction:column;align-items:center;gap:14px;padding:28px 16px 40px;font-size:13px;color:var(--muted);max-width:1080px;margin:0 auto}
.foot-legal{display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center}
.foot-legal a{color:var(--muted);display:inline-block;padding:10px 4px}
.foot-reviews{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px 16px}
.rating-badge{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--line);color:var(--ink);text-decoration:none;font-size:14px}
.rating-badge strong{font-size:15px}.rating-badge span:last-child{color:var(--muted)}
.rating-stars{color:#f5a623;letter-spacing:1px;font-size:13px}
.btn-review{min-height:42px;padding:0 16px;font-size:14px}
.foot-embed{width:100%;max-width:760px;display:flex;justify-content:center}
.foot-embed iframe{max-width:100%}
.chip-rating a{color:inherit;text-decoration:none}
.greviews{width:100%;max-width:1080px;text-align:left;color:var(--ink)}
.greviews-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.g-logo svg{width:32px;height:32px}
.greviews-rating{font-size:18px;display:flex;align-items:center;gap:8px}.greviews-rating strong{font-family:var(--font-display);font-size:22px}
.greviews-count{font-size:13px;color:var(--muted)}
.greviews-all{margin-left:auto;font-weight:700;text-decoration:none}
.greviews-list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr;gap:10px}
.greview{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px}
.greview-top{display:flex;align-items:center;gap:10px}
.greview-photo{width:36px;height:36px;border-radius:50%;object-fit:cover;flex:none}
.greview-initial{display:grid;place-items:center;background:var(--tint);color:var(--primary);font-weight:700}
.greview-meta{display:flex;flex-direction:column;min-width:0}.greview-meta a,.greview-meta span{font-weight:700;color:var(--ink);text-decoration:none;font-size:14px}.greview-meta small{color:var(--muted);font-size:12px}
.greview-stars{margin-left:auto;color:#f5a623;letter-spacing:1px;font-size:14px}
.greview-text{margin:10px 0 0;font-size:14px;line-height:1.5;color:var(--ink);display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.greviews-attr{margin:10px 0 0;font-size:12px;color:var(--muted)}
@media(min-width:761px){.greviews-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
.lp-foot .greviews-list{grid-template-columns:1fr}
@media(min-width:761px){.lp-foot .greviews-list{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}

/* brand logos: mark on phones, web logo on desktop */
.brand{display:inline-flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}
.brand-mark{width:44px;height:44px;object-fit:contain}
.brand picture{display:contents}
.brand-web{display:none;height:56px;width:auto}
.brand-name{display:none;font-family:var(--font-display);font-size:22px;font-weight:700}
.lp-brand{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-6px 0 18px}
.lp-brand-center{justify-content:center}
.lp-call{font-weight:700;text-decoration:none;color:var(--primary);font-size:14px;white-space:nowrap;padding:12px 4px;display:inline-block}
@media (min-width:761px){.brand picture .brand-mark{width:auto;height:56px}.brand-name{display:inline}}

/* landing page */
.lp-main{max-width:1080px;margin:0 auto;padding:22px 16px 32px}
.lp-main-narrow{max-width:640px}
.lp-copy{max-width:760px;margin:0 auto 20px}
.align-center .lp-copy{text-align:center}
/* landing page content below the form */
.lp-body{margin:40px auto 0;text-align:left;line-height:1.65}
.lp-body h2{font-size:clamp(21px,3vw,26px);color:var(--secondary);margin:32px 0 10px}
.lp-body h3{font-size:17px;margin:20px 0 6px}
.lp-body ul{padding-left:20px}.lp-body li{margin:4px 0}
.lp-body table{width:100%;border-collapse:collapse;font-size:15px;margin:12px 0}
.lp-body th,.lp-body td{padding:9px 10px;border-bottom:1px solid var(--line);text-align:left}
.lp-body td:last-child,.lp-body th:last-child{text-align:right;white-space:nowrap}
.lp-body .lp-note{font-size:13px;color:var(--muted)}
.align-center .lp-chips{justify-content:center}
.lp-eyebrow{margin:0 0 8px;font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
.lp-h1{font-size:clamp(28px,6.2vw,46px);color:var(--secondary)}
.lp-sub{margin:10px 0 0;font-size:17px;color:var(--muted)}
.lp-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:16px 0 0}
.chip{display:inline-flex;align-items:center;gap:.35em;padding:6px 12px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink)}
.chip-offer{background:var(--accent-ink);border-color:var(--accent-ink);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--accent) 30%,transparent)}
.chip-count{background:var(--secondary);border-color:var(--secondary);color:#fff;font-variant-numeric:tabular-nums}
.chip-rating{color:#8a5a00}
.chip-mini{padding:2px 8px;font-size:11px;margin-top:4px}

.lp-layout{display:grid;grid-template-columns:1fr;gap:20px;align-items:start}

/* ---- form card ---- */
.fn-card{position:relative;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:0 16px 18px;width:100%;max-width:var(--form-w);margin:0 auto;overflow:hidden}
.fn-hp{position:absolute;left:-9999px;top:-9999px;width:1px;height:1px;opacity:0}
.fn-head{margin:0 -16px 18px;padding:20px 16px 16px;background:linear-gradient(180deg,var(--tint),#fff);border-bottom:1px solid var(--line)}
.fn-title{font-size:24px;color:var(--secondary)}
.fn-title-sub{margin:6px 0 0;color:var(--muted)}
.fn-lede{margin:4px 0 0;font-size:13px;color:var(--muted)}
.fn-live{color:var(--muted)}
.fn-steps{display:flex;gap:0;list-style:none;padding:0;margin:16px 0 0;position:relative}
.fn-steps li{flex:1;position:relative}
.fn-steps li+li::before{content:"";position:absolute;left:-50%;right:50%;top:15px;height:2px;background:var(--line);z-index:0}
.fn-steps li.is-done-line+li::before{background:var(--primary)}
.fn-steps button{position:relative;z-index:1;width:100%;display:flex;flex-direction:column;align-items:center;gap:6px;background:transparent;border:0;padding:0;font-size:12px;font-weight:600;color:var(--muted);cursor:default}
.fn-steps button .n{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;border:2px solid var(--line);color:var(--muted);font-size:13px;font-weight:700;transition:all .2s}
.fn-steps button.is-done{cursor:pointer;color:var(--ink)}
.fn-steps button.is-done .n{background:var(--primary);border-color:var(--primary);color:#fff}
.fn-steps button.is-done .n::before{content:"✓";font-size:14px}
.fn-steps button.is-done .n span{display:none}
.fn-steps button.is-active{color:var(--primary)}
.fn-steps button.is-active .n{border-color:var(--primary);color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 15%,transparent)}
.fn-steps button span.t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.fn-live{margin:10px 0 0;font-size:12px;color:var(--muted);text-align:center}
.fn-bar{height:6px;border-radius:999px;background:var(--line);margin-top:14px;overflow:hidden}
.fn-bar span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--primary),color-mix(in srgb,var(--primary) 70%,var(--accent)));transition:width .35s}

.fn-pane.fn-enter{animation:paneIn .28s ease-out both}
@keyframes paneIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
.fn-h{font-size:22px;margin:4px 0 4px;outline:none;color:var(--secondary)}
.fn-h4{font-family:var(--font-ui);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px}
.fn-req-note{margin:0 0 14px;font-size:12px;color:var(--muted)}
.fn-group{margin:18px 0 0;padding:14px 0 0;border-top:1px dashed var(--line)}
.fn-group-h{display:flex;align-items:center;gap:8px;font-family:var(--font-ui);font-size:15px;font-weight:700;margin:0 0 10px;color:var(--ink)}
.fn-group-h svg{width:20px;height:20px;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fn-field{margin:0 0 14px}
.fn-field label,.fn-label{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px;margin-bottom:6px}
.fn-label svg{width:18px;height:18px;fill:none;stroke:var(--primary);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.fn-hint{display:block;color:var(--muted);font-size:13px;margin-top:5px}
.fn-opt{font-weight:500;color:var(--muted);font-size:13px}
.req{color:var(--accent-ink)}

/* inputs: soft filled, icon slot, valid/invalid states */
.fn-input{position:relative;display:flex;align-items:center;border:1.5px solid var(--line);border-radius:12px;background:#f7f9f8;transition:border-color .15s,box-shadow .15s,background .15s}
.fn-input>svg{position:absolute;left:14px;width:20px;height:20px;fill:none;stroke:var(--muted);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:stroke .15s}
.fn-input input,.fn-input select,.fn-input textarea{width:100%;min-height:50px;padding:12px 14px;border:0;border-radius:12px;background:transparent;font-size:16px}
.fn-input>svg+input{padding-left:44px}
.fn-input textarea{min-height:92px;resize:vertical}
.fn-input:focus-within{background:#fff;border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)}
.fn-input:focus-within>svg{stroke:var(--primary)}
.fn-input input:focus,.fn-input select:focus,.fn-input textarea:focus{outline:none;box-shadow:none}
.fn-input input::placeholder,.fn-input textarea::placeholder{color:#9aa6a3}
.fn-ok{position:absolute;right:14px;width:22px;height:22px;border-radius:50%;background:var(--ok);color:#fff;font-size:13px;font-weight:900;display:none;place-items:center}
.is-valid .fn-input{border-color:color-mix(in srgb,var(--ok) 60%,var(--line));background:#fff}
.is-valid .fn-ok{display:grid}
.is-valid .fn-input input{padding-right:44px}
.is-invalid .fn-input{border-color:var(--danger);background:#fff8f7}
.is-invalid .seg,.is-invalid .days{outline:2px solid var(--danger);outline-offset:3px;border-radius:12px}
.fn-select{padding-right:0}
.fn-select::after{content:"";position:absolute;right:16px;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-3px);pointer-events:none}
.fn-select select{appearance:none;-webkit-appearance:none;padding-right:40px;cursor:pointer}
.fn-err{display:flex;align-items:center;gap:6px;margin:6px 0 0;font-size:13px;color:var(--danger);font-weight:600}
.fn-err::before{content:"!";display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--danger);color:#fff;font-size:11px;flex:none}
.fn-err-form{margin-top:12px;justify-content:center}
.fn-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fn-field-sm{max-width:150px}
.fn-input-row{display:flex;gap:8px}.fn-input-row .fn-input{flex:1}
.btn-pin{min-height:50px;padding:0 14px;border-radius:12px}
.btn-pin svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.fn-locked-label{margin:0;padding:12px 14px;border-radius:12px;background:var(--tint);font-weight:700;color:var(--primary);display:flex;align-items:center;gap:8px}
.fn-locked-label::before{content:"✓";display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--primary);color:#fff;font-size:12px}
.fn-privacy{display:flex;justify-content:center;align-items:center;gap:6px;flex-wrap:wrap;margin:12px 0 0;text-align:center;font-size:13px;color:var(--muted)}
.fn-privacy svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.fn-condition-note{margin:10px 0 0;padding-top:10px;border-top:1px solid var(--line);text-align:center;font-size:12px;line-height:1.5;color:var(--muted)}

/* stepper */
.fn-rooms-row{gap:14px}
.stepper{display:inline-flex;align-items:stretch;border:1.5px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;width:100%;max-width:200px}
.stepper input{border:0;border-radius:0;text-align:center;width:auto;flex:1;min-width:0;padding:10px 4px;font-weight:700;font-size:18px;-moz-appearance:textfield;background:#fff}
.stepper input::-webkit-outer-spin-button,.stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stepper input:focus{outline:none;box-shadow:none}
.stepper:focus-within{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb,var(--primary) 14%,transparent)}
.stepper-btn{width:50px;border:0;background:var(--tint);font-size:22px;font-weight:700;color:var(--primary);cursor:pointer;transition:background .12s}
.stepper-btn:hover{background:color-mix(in srgb,var(--primary) 16%,#fff)}
.stepper-btn:active{background:var(--primary);color:#fff}
.stepper-mini{max-width:150px;margin-top:8px}.stepper-mini .stepper-btn{width:40px;font-size:18px}.stepper-mini input{min-height:38px;padding:6px 2px;font-size:15px}

/* segmented */
.seg{display:flex;flex-wrap:wrap;gap:8px}
.seg-btn{flex:1 1 auto;min-height:48px;padding:8px 16px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-weight:600;cursor:pointer;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}
.seg-btn:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line));background:var(--tint)}
.seg-btn em{font-style:normal;color:var(--muted);font-weight:600;font-size:13px}
.seg-btn.on{background:var(--primary);border-color:var(--primary);color:#fff;box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 30%,transparent)}
.seg-btn.on::before{content:"✓";font-size:13px}
.seg-btn.on em{color:#e6e4f5}
.checks{display:grid;gap:8px}
.fn-check{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-weight:500;transition:all .15s}
.fn-check:has(input:checked){border-color:var(--primary);background:var(--tint)}
.fn-check input{width:20px;height:20px;margin:2px 0 0;flex:none;accent-color:var(--primary)}
.fn-check em{font-style:normal;color:var(--muted);font-size:13px}
.fn-consent{border:0;padding:12px 14px;font-size:14px;background:#f7f9f8;border-radius:12px}
.fn-consent:has(input:checked){background:var(--tint)}

/* tiles */
.fn-included{padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--ok) 6%,#fff);font-size:14px;margin-bottom:18px;border:1.5px solid color-mix(in srgb,var(--ok) 55%,var(--line))}
.fn-included-head{display:flex;align-items:center;gap:8px;font-size:15px}
.fn-included-tick{width:20px;height:20px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:900;flex:none}
.fn-included-list{display:flex;flex-wrap:wrap;gap:4px 16px;margin:8px 0 6px;padding-left:28px}
.fn-included .inc{font-weight:700;white-space:nowrap}
.fn-included-note{margin:0;padding-left:28px;color:var(--muted);font-size:13px}
.fn-extras-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-top:6px}
.fn-h4-lg{font-size:17px;letter-spacing:0;text-transform:none;color:var(--ink);margin:0}
.fn-optional{font-size:13px;color:var(--muted)}
.fn-extras-hint{margin:2px 0 4px;color:var(--muted);font-size:14px}
.tiles{display:grid;grid-template-columns:1fr;gap:8px}
.tile{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:12px;align-items:center;padding:12px 14px;border:1.5px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;transition:border-color .15s,box-shadow .15s,background .15s;min-height:66px}
.tile:hover{border-color:color-mix(in srgb,var(--primary) 45%,var(--line));box-shadow:0 4px 14px rgba(15,42,46,.06)}
.tile-check{position:absolute;opacity:0;width:1px;height:1px}
.tile-icon{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#fff;border:1.5px solid var(--line);color:var(--ink);transition:all .15s}.tile-icon svg{width:22px;height:22px}
.tile-body{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-width:0}
.tile-body .chip-mini{margin-top:4px}
.tile-name{font-weight:700;font-size:16px;display:flex;flex-wrap:wrap;align-items:center;gap:6px;line-height:1.25}
.tile-desc{font-size:13px;color:var(--muted);line-height:1.4}
.tile-price{font-weight:700;color:var(--primary);white-space:nowrap}
.tile-free .tile-price{color:var(--ok)}
.badge{font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--accent-ink);color:#fff}
.tile-tick{width:26px;height:26px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:transparent;font-weight:900;flex:none;transition:all .15s}
.tile.on{border-color:var(--primary);background:var(--tint);box-shadow:0 0 0 3px color-mix(in srgb,var(--primary) 12%,transparent)}
.tile.on .tile-icon{background:var(--primary);border-color:var(--primary);color:#fff}
.tile.on .tile-tick{background:var(--primary);border-color:var(--primary);color:#fff;animation:pop .25s}
@keyframes pop{50%{transform:scale(1.25)}}
.tile .stepper-mini{margin:0;max-width:none;width:auto;border-radius:10px;opacity:.55;transition:opacity .15s}
.tile .stepper-mini .stepper-btn{width:32px;font-size:16px;background:#fff}
.tile .stepper-mini .stepper-btn:hover{background:var(--tint)}
.tile .stepper-mini input{width:38px;flex:none;min-height:34px;padding:4px 0;font-size:14px}
.tile.on .stepper-mini,.tile:hover .stepper-mini{opacity:1}
.tile.tile-included{opacity:.65;cursor:default}
.tile.tile-included .stepper-mini{display:none}
.fn-offer{border:2px dashed var(--accent);border-radius:14px;padding:12px;margin-bottom:14px;background:color-mix(in srgb,var(--accent) 5%,#fff)}
.fn-offer-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;align-items:center;margin-bottom:10px}
.fn-offer-tag{color:var(--muted);font-size:14px}
.fn-pets{margin-top:16px}

/* schedule */
.days{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin}
.day{flex:0 0 72px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;gap:1px;padding:10px 6px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:12px;color:var(--muted);transition:all .15s}
.day b{font-size:20px;font-family:var(--font-display);color:var(--ink)}
.day:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}
.day.off{opacity:.4;cursor:not-allowed;text-decoration:line-through}
.day.on{border-color:var(--primary);background:var(--primary);color:#dcd9f0;box-shadow:0 4px 12px color-mix(in srgb,var(--primary) 30%,transparent)}
.day.on b{color:#fff}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:6px}
.slot{padding:10px 8px;border:1.5px solid var(--line);border-radius:12px;background:#fff;cursor:pointer;font-size:14px;font-weight:700;text-align:center;transition:all .15s}
.slot small{display:block;font-weight:400;color:var(--muted);font-size:12px}
.slot:hover{border-color:color-mix(in srgb,var(--primary) 50%,var(--line))}
.slot.off{opacity:.4;cursor:not-allowed}.slot.on{background:var(--primary);border-color:var(--primary);color:#fff}.slot.on small{color:#dcd9f0}

/* nav */
.fn-final{margin-top:10px}
.qstep-nav{display:flex;gap:10px;margin-top:16px}
.qstep-nav .btn-primary{flex:1}
.btn-cta{background:linear-gradient(135deg,var(--primary),color-mix(in srgb,var(--primary) 78%,#000));font-size:17px;min-height:54px}
.btn-cta .btn-arrow{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .15s}
.btn-cta:hover .btn-arrow{transform:translateX(3px)}
.btn-cta.is-final,.bdock-cta.is-final{background:linear-gradient(135deg,var(--accent-ink),color-mix(in srgb,var(--accent) 65%,#000));box-shadow:0 8px 22px color-mix(in srgb,var(--accent) 35%,transparent)}
.btn.busy{opacity:.7;cursor:progress}
.spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* summary box (in-card + aside share this) */
.qc-price{margin:18px 0 0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:#fff}
.qc-sum__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.qc-sum__title{font-family:var(--display);font-size:17px;font-weight:700;color:var(--secondary)}
.qc-sum__close{display:none}
.qc-lines{list-style:none;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--line-soft)}
.qc-lines:empty{display:none}
.qc-rows{display:flex;flex-direction:column;gap:7px;margin:0}
.qc-row{display:grid;grid-template-columns:minmax(84px,auto) auto minmax(0,1fr);column-gap:10px;align-items:start;font-size:13.5px;line-height:1.4}
.qc-row dt{font-weight:500;color:var(--muted);white-space:nowrap}
.qc-row__c{color:var(--muted)}
.qc-row dd{display:flex;flex-direction:column;gap:5px;margin:0;font-weight:700;min-width:0}
.qc-row dd.is-muted{font-weight:500;color:var(--muted)}
.qc-row__item{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.qc-row__price{flex:none;font-weight:600;font-variant-numeric:tabular-nums;color:var(--primary)}
.qc-row.is-offer dt,.qc-row.is-offer dd{color:var(--success)}
.qc-tax{display:flex;flex-direction:column;gap:5px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--line-soft);font-size:13.5px}
.qc-tax[hidden]{display:none}
.qc-tax div{display:flex;justify-content:space-between;gap:12px}
.qc-tax dt{color:var(--muted);font-weight:500}
.qc-tax dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.qc-total{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.qc-total .lab{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.qc-total__note{font-size:12px;color:var(--muted);margin-top:2px}
.qc-total .amt{font-family:var(--display);font-size:26px;font-weight:700;color:var(--secondary);white-space:nowrap}
.qc-total .amt small{font-family:var(--body);font-size:12px;font-weight:700;color:var(--muted)}
.qc-total .amt.bump{animation:bump .35s}
@keyframes bump{40%{transform:scale(1.06)}}
.qc-was{display:inline-block;margin-right:8px;font-size:16px;font-weight:600;color:var(--muted);text-decoration:line-through}
.qc-was[hidden]{display:none}
.fn-wait{color:var(--muted);font-size:13px;padding:10px 12px;background:#f7f9f8;border-radius:10px}
.fn-wait[hidden]{display:none}
.qc-scrim{display:none}
.fn-aside{display:none}

/* ---- the booking dock (phones only) ---- */
.bdock{display:none;position:fixed;bottom:0;left:0;right:0;z-index:70;align-items:center;gap:12px;
  padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(180%) blur(16px);backdrop-filter:saturate(180%) blur(16px);
  border-top:1px solid var(--line);box-shadow:0 -8px 28px rgba(0,0,0,.10);
  transform:translate3d(0,105%,0);backface-visibility:hidden;visibility:hidden;
  transition:transform .34s cubic-bezier(.32,.72,.28,1),visibility .34s}
.bdock.show{transform:translate3d(0,0,0);visibility:visible}
.bdock-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;text-decoration:none}
.bdock-lab{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bdock-amt{font-family:var(--display);font-weight:800;font-size:21px;line-height:1.15;color:var(--primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bdock-amt small{font-family:var(--body);font-size:12px;font-weight:700;color:var(--muted)}
.bdock-was{font-size:13px;font-weight:600;color:var(--muted);text-decoration:line-through;margin-right:5px}
.bdock-gst{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bdock-cta{flex:none;min-height:50px;padding:14px 24px;font-size:16px}
.bdock-cta:active{transform:scale(.96)}
.bdock-sum{display:none}
@media(max-width:760px){ body.dock-on .bdock{display:flex} }
@media(max-width:360px){ .bdock{gap:10px;padding-left:12px;padding-right:12px} .bdock-amt{font-size:19px} .bdock-cta{padding:13px 18px;font-size:15px} }

/* ---- breakpoints ---- */
@media(max-width:900px){
  .fn-grid{grid-template-columns:minmax(0,1fr);gap:22px}
  .fn-aside{display:none}
}
@media(min-width:901px){
  .fn-has-aside .fn-main .qc-price{display:none}
  .fn-has-aside .fn-main .qc-scrim{display:none}
}
@media(max-width:760px){
  .lp-foot{padding-bottom:110px}
  /* the dock's button is the one Continue; the card keeps only Back */
  .fn .qstep-nav [data-fn-next]{display:none}
  .fn .qstep-nav .qc-back{flex:1;padding:13px 20px}
  .fn .qstep-nav:has(.qc-back[hidden]){display:none}

  /* the in-card summary becomes a sheet parked behind the dock */
  .fn #quote .qc-price{position:fixed;left:0;right:0;bottom:var(--dock-h,84px);z-index:74;margin:0;border:0;
    border-radius:24px 24px 0 0;background:#fff;box-shadow:0 -14px 44px rgba(0,0,0,.2);
    padding:18px 20px 18px;max-height:68vh;overflow-y:auto;overscroll-behavior:contain;
    transform:translate3d(0,100%,0);backface-visibility:hidden;visibility:hidden;
    transition:transform .3s cubic-bezier(.32,.72,.28,1),visibility .3s}
  .fn #quote .qc-price::before{content:"";position:absolute;top:7px;left:50%;width:40px;height:4px;margin-left:-20px;border-radius:2px;background:var(--line)}
  html.fn-sum-open .fn #quote .qc-price{transform:translate3d(0,0,0);visibility:visible}

  .fn #quote .qc-sum__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:6px 0 14px;padding-bottom:12px;border-bottom:1px solid var(--line)}
  .fn #quote .qc-sum__title{font-size:20px}
  .fn #quote .qc-sum__close{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;margin:-8px -12px -8px 0;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer}
  .fn #quote .qc-sum__close svg{width:22px;height:22px}
  .fn #quote .qc-lines{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--line)}
  .fn #quote .qc-row{grid-template-columns:104px auto minmax(0,1fr);column-gap:12px;font-size:16px}
  .fn #quote .qc-tax{margin:0 0 14px;padding:0 0 14px;border-bottom:1px solid var(--line);font-size:15px}
  .fn #quote .qc-total{align-items:center;padding:2px 0}
  .fn #quote .qc-total .lab{font-size:15px;font-weight:700;text-transform:none;color:var(--ink)}
  .fn #quote .qc-total__note{display:block;font-size:12.5px;line-height:1.3;max-width:170px;margin-top:2px}
  .fn #quote .qc-price .amt{font-size:30px;white-space:nowrap}

  /* the scrim stops at the dock, so the dock stays tappable to close */
  .fn .qc-scrim{display:block;position:fixed;left:0;right:0;top:0;bottom:var(--dock-h,84px);z-index:73;background:rgba(0,0,0,.42);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
  html.fn-sum-open .fn .qc-scrim{opacity:1;visibility:visible}
  @media (prefers-reduced-motion:reduce){ .fn #quote .qc-price,.fn .qc-scrim{transition:none} }

  /* the dock on a funnel page sits above the sheet and grows a toggle pill */
  .bdock.fn-dock{z-index:76}
  .bdock.fn-dock .bdock-info[data-has-sum]{cursor:pointer;gap:3px}
  .bdock.fn-dock .bdock-info[data-has-sum] .bdock-gst{display:none}
  .bdock.fn-dock .bdock-info[data-has-sum] .bdock-sum{display:inline-flex;align-self:flex-start;align-items:center;gap:5px;margin-top:2px;padding:5px 10px 5px 8px;border-radius:999px;background:var(--tint);border:1.5px solid var(--primary-25);color:var(--primary);font-size:12px;font-weight:800;line-height:1;white-space:nowrap}
  .bdock.fn-dock .bdock-info[data-has-sum] .bdock-sum svg{width:14px;height:14px;transition:transform .25s}
  html.fn-sum-open .bdock.fn-dock .bdock-info[data-has-sum] .bdock-sum{background:var(--primary);border-color:var(--primary);color:#fff}
  html.fn-sum-open .bdock.fn-dock .bdock-info[data-has-sum] .bdock-sum svg{transform:rotate(180deg)}
  .bdock.fn-dock .bdock-cta{min-width:44%}

  /* rhythm and tap targets */
  .fn.lp-main{padding-top:18px;padding-bottom:40px}
  .lp-h1{font-size:clamp(28px,7.4vw,36px)}
  .fn-h{font-size:18px}
  .seg-btn,.btn{min-height:46px}
  .tile,.stepper-btn,.day,.slot{min-height:44px}
  .tile .stepper-btn{min-height:0;width:38px}.tile .stepper-mini input{min-height:40px;width:40px}
}
@media(max-width:520px){
  .tiles{grid-template-columns:minmax(0,1fr);gap:8px}
  .tile{grid-template-columns:auto minmax(0,1fr) auto;min-height:58px;padding:10px 12px;border-radius:12px}
  .tile .stepper-mini{grid-column:2;grid-row:2;justify-self:start;margin-top:2px}
  .tile-tick{grid-column:3;grid-row:1}
}

/* thanks */
.ty-card{text-align:center;padding:32px 20px}
.ty-tick{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;background:var(--ok);color:#fff;display:grid;place-items:center}.ty-tick svg{width:38px}
.ty-h1{font-size:30px}.ty-sub{color:var(--muted);margin:8px 0 0}
.ty-facts{display:grid;gap:6px;margin:18px auto;max-width:360px;text-align:left}
.ty-facts div{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;background:var(--tint);border-radius:var(--radius-sm)}
.ty-facts dt{color:var(--muted)}.ty-facts dd{margin:0;font-weight:700}
.ty-points{list-style:none;padding:0;margin:16px 0;text-align:left;display:inline-block}
.ty-email{color:var(--muted)}
.ty-body{text-align:left;margin:16px 0}
.ty-call{width:100%;margin-top:8px}
.lp-thanks .lp-main{padding-bottom:calc(32px + env(safe-area-inset-bottom))}

/* desktop */
@media (min-width:761px){
  .lp-main{padding:36px 24px 48px}
  .fn-card{padding:0 30px 26px;margin:0 auto}
  .fn-head{margin:0 -30px 20px;padding:24px 30px 18px}
  .qstep-nav .btn-primary{flex:0 1 auto;min-width:240px;margin-left:auto}
}
@media (min-width:901px){
  .lp-layout{grid-template-columns:minmax(0,var(--form-w)) minmax(260px,320px);justify-content:center;gap:28px}
  .no-summary .lp-layout{grid-template-columns:minmax(0,var(--form-w))}
  .fn-card{margin:0}
  .fn-aside{display:block;position:sticky;top:84px}
  .fn-aside .qc-price{margin:0;padding:0 22px 20px;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}
  .fn-aside .qc-sum__head{margin:0 -22px 12px;padding:16px 22px;background:var(--tint);border-bottom:1px solid var(--line)}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* recurring & commercial funnel */
.seg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.seg-wrap .seg-btn{flex:1 1 40%;flex-direction:column;gap:2px;padding:10px 8px;line-height:1.15}
.seg-btn-tall{flex-direction:column;align-items:flex-start;gap:4px;padding:12px 14px;min-height:60px;text-align:left}
.seg-btn-tall .seg-t{font-weight:700}
.seg-badge{display:inline-block;padding:2px 8px;border-radius:999px;background:var(--tint);color:var(--primary);font-size:11.5px;font-weight:700;letter-spacing:.02em}
.seg-btn.on .seg-badge{background:rgba(255,255,255,.18);color:#fff}
.seg-btn-tall.on::before{position:absolute;right:12px;top:12px}
.seg-btn-tall{position:relative}
.fn-days .seg-btn{flex:1 1 0;min-width:44px;padding:8px 4px;font-size:14px}
.fn-input-unit input{padding-right:52px}
.fn-input-unit .fn-unit{position:absolute;right:14px;font-weight:700;color:var(--muted);pointer-events:none}
.fn-input>svg+input[type=number]{padding-left:44px}
.fn-model-note{margin:0 0 6px;font-size:14px;color:var(--muted);line-height:1.5}
.qc-plan{display:flex;flex-direction:column;gap:6px;margin:12px 0 0;padding:12px 0 0;border-top:1px dashed var(--line);font-size:14px}
.qc-plan div{display:flex;justify-content:space-between;gap:12px}
.qc-plan dt{color:var(--muted)}.qc-plan dd{margin:0;font-weight:700;white-space:nowrap}
.qc-plan__was{color:var(--muted);font-weight:500;margin-right:4px}
@media(max-width:400px){.seg-grid{grid-template-columns:1fr}}
/* service highlights (funnel) */
.fn-incl{margin:-4px 0 14px;padding:10px 14px;border:1px solid var(--line);border-radius:12px;background:#f7f9f8}
.fn-incl__list{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:4px 16px;font-size:13.5px}
.fn-incl__list li{padding-left:18px;position:relative}
.fn-incl__list li::before{content:"✓";position:absolute;left:0;color:var(--ok);font-weight:900}
.fn-incl__more{display:inline-block;margin-top:6px;font-size:13px;font-weight:700;color:var(--primary)}
/* service page */
.svc{max-width:820px;margin:0 auto}
.svc-hero{margin:8px 0 28px}.svc-hero h1{font-size:clamp(30px,5vw,44px);margin:0 0 10px}
.svc-highlights{font-size:15px;margin:14px 0 18px}
.svc-price{margin-left:auto}
.svc-body{max-width:none}
.svc-included{margin:28px 0}.svc-included h2{font-size:22px;margin-bottom:8px}
.svc-cta{margin:36px 0 20px;padding:24px;border-radius:var(--radius);background:var(--tint);text-align:center}.svc-cta h2{font-size:24px;margin:0 0 6px}.svc-cta .btn{margin-top:12px}
/* WhatsApp contact button */
.wa-ico{width:18px;height:18px;flex:none;vertical-align:-3px;margin-right:2px}
.lp-call{display:inline-flex;align-items:center;gap:5px}
.option-link .wa-ico,.fn-privacy__link .wa-ico{width:16px;height:16px}
.fn-privacy__link{display:inline-flex;align-items:center;gap:4px;font-weight:700;color:var(--primary);white-space:nowrap}
a[data-whatsapp].btn-ghost{color:#128C7E;border-color:#25D36680}
a[data-whatsapp].btn-ghost:hover{background:#25D36614}
/* Floating WhatsApp button: every public page, bottom right */
.wa-fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:60;width:56px;height:56px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;background:#25D366;color:#fff;text-decoration:none;
  box-shadow:0 6px 18px rgba(0,0,0,.22);transition:bottom .25s ease,opacity .2s ease,transform .15s ease}
.wa-fab svg{width:30px;height:30px;display:block}
.wa-fab:hover{transform:scale(1.05)}
.wa-fab:focus-visible{outline:3px solid #128C7E;outline-offset:3px}
body.is-typing .wa-fab,body.nav-open .wa-fab,html.fn-sum-open .wa-fab{opacity:0;pointer-events:none}
body:has(.wa-fab) .site-foot{padding-bottom:96px}
@media(max-width:760px){
  /* phones: sit above the estimator's sticky dock (and the summary sheet that opens from it), never on top of it */
  .bdock.show ~ .wa-fab{bottom:calc(var(--dock-h,84px) + 12px)}
}
@media(prefers-reduced-motion:reduce){.wa-fab{transition:none}}
.foot-phone{color:var(--muted);display:inline-block;padding:10px 4px;white-space:nowrap}
/* "or message us on Facebook": the quieter second option under the estimate form */
.fn-privacy__alt{font-size:12px;color:var(--muted);text-decoration:underline;white-space:nowrap}
/* Landing page ad picture beside the headline */
/* phones: kept small so the estimate form still starts on the first screen */
.lp-hero-img{display:block;margin:16px auto 0;max-width:min(240px,68%)}
.lp-hero-img img{display:block;width:100%;height:auto;border-radius:16px;box-shadow:0 8px 24px rgba(0,0,0,.12)}
@media(min-width:761px){
  .lp-copy--img{max-width:980px;display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:32px;align-items:center}
  .lp-copy--img .lp-hero-img{margin:0;max-width:none}
}
