/* ==========================================================================
   PURE Cleaning MTL — light design system (single source of truth)
   Loaded last on every page. Role-based tokens first, then components.
   ========================================================================== */

/* ---------- 1. TOKENS ---------- */
:root{
  /* surfaces */
  --c-bg:#FDDAE4;            /* hero + large background areas */
  --c-surface:#FFFAF7;       /* cards, menus, modals, fields */
  --c-alt:#FFF4F6;           /* alternating sections */
  --c-soft:#FCE7ED;          /* hover, icon backing, small highlights */
  --c-selected:#F8D5E0;      /* selected / active items */
  /* text + lines */
  --c-text:#172342;
  --c-text-2:#615D6E;
  --c-border:#E8D5D1;
  /* accents */
  --c-accent:#F4567A;        /* decorative / large accent words */
  --c-accent-text:#EE4A70;   /* same hue, tuned to keep 3:1 on cream for large text */
  --c-accent-dark:#AD3656;   /* links, small accent text, icons, focus ring */
  --c-cta:#F7B900;
  --c-cta-hover:#E5AA00;
  /* decor */
  --c-lav:#AC8DE5;
  --c-lav-deep:#7063A4;      /* nav pill — same purple family, darkened for white-text contrast (5.2:1) */
  --c-sky:#DDF0F9;
  --c-blush:#FBE8E5;
  --c-peach:#FBE5D6;
  /* status (tuned for light theme) */
  --c-ok:#1F7A4D;   --c-ok-bg:#E8F5EC;
  --c-err:#B42335;  --c-err-bg:#FDECEE;  --c-err-line:#F1B6BD;
  --c-warn:#8A5A00; --c-warn-bg:#FFF3D6;
  /* shape + depth */
  --r-btn:12px; --r-card:20px; --r-menu:16px;
  --shadow-card:0 6px 20px rgba(70,40,55,.06);
  --shadow-menu:0 12px 32px rgba(70,40,55,.12);
  --t-fast:.18s ease;

  /* legacy names still used by page CSS — remapped to roles, never to dark surfaces */
  --navy:#172342;   --navy-2:#FFFAF7; --navy-3:#FCE7ED;
  --gold:#F7B900;   --gold-dark:#AD3656; --gold-light:#FCE7ED;
  --white:#FFFAF7;
  --gray:#615D6E;   --gray-light:#FFF4F6;
  --dark:#172342;   --dark-2:#172342;
  --green:#1F7A4D;
  --radius:12px;    --radius-lg:20px;
  --shadow:0 6px 20px rgba(70,40,55,.06);
  --shadow-lg:0 12px 32px rgba(70,40,55,.12);
  --transition:.18s ease;
  --tr:.18s ease;
  /* estimator pages */
  --blue:#AD3656; --blue-dark:#AD3656; --blue-light:#F8D5E0;
  --orange:#F7B900; --cta:#F7B900; --cta-d:#E5AA00;
}

/* ---------- 2. BASE ---------- */
/* Page-wide pastel circles: ONE static SVG tile repeated down the page — no JS, no blur, no extra DOM, cached and GPU-composited. */
html{background:var(--c-bg)}
body{background-color:var(--c-bg);background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%221440%22 height=%222400%22 viewBox=%220 0 1440 2400%22%3E%3Ccircle cx=%221449%22 cy=%22178%22 r=%2281%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%22-10%22 cy=%22453%22 r=%22122%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%221428%22 cy=%22735%22 r=%2271%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%2221%22 cy=%221037%22 r=%22130%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%221453%22 cy=%221446%22 r=%2296%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%225%22 cy=%221550%22 r=%22112%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%221450%22 cy=%221917%22 r=%2299%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%227%22 cy=%222194%22 r=%2272%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%221035%22 cy=%22171%22 r=%2289%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%221192%22 cy=%22324%22 r=%2220%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22450%22 cy=%22507%22 r=%2253%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%221164%22 cy=%22743%22 r=%2217%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%22322%22 cy=%22820%22 r=%2222%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%221117%22 cy=%221066%22 r=%2227%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22405%22 cy=%221371%22 r=%2283%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%221058%22 cy=%221514%22 r=%2263%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22513%22 cy=%221731%22 r=%2218%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%221188%22 cy=%221972%22 r=%2217%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22634%22 cy=%222080%22 r=%2273%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22852%22 cy=%222311%22 r=%2277%22 fill=%22%23DDF0F9%22/%3E%3C/svg%3E");background-repeat:repeat-y;background-position:center top;background-size:100% auto;color:var(--c-text)}
@media(max-width:700px){body{background-image:url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%22390%22 height=%221900%22 viewBox=%220 0 390 1900%22%3E%3Ccircle cx=%22397%22 cy=%2265%22 r=%2236%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22-11%22 cy=%22388%22 r=%2251%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22391%22 cy=%22754%22 r=%2240%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22-3%22 cy=%22954%22 r=%2249%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22398%22 cy=%221145%22 r=%2249%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22-10%22 cy=%221442%22 r=%2211%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22394%22 cy=%221785%22 r=%2219%22 fill=%22%23DDF0F9%22/%3E%3Ccircle cx=%2288%22 cy=%22167%22 r=%2230%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22230%22 cy=%22239%22 r=%228%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22262%22 cy=%22470%22 r=%2236%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22341%22 cy=%22665%22 r=%2221%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22319%22 cy=%22900%22 r=%2239%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%2248%22 cy=%221146%22 r=%2219%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22265%22 cy=%221431%22 r=%227%22 fill=%22%23FBE5D6%22/%3E%3Ccircle cx=%22105%22 cy=%221643%22 r=%2218%22 fill=%22%23FBE8E5%22/%3E%3Ccircle cx=%22195%22 cy=%221807%22 r=%2210%22 fill=%22%23FBE8E5%22/%3E%3C/svg%3E")}}
::selection{background:var(--c-selected);color:var(--c-text)}
h1,h2,h3,h4{color:var(--c-text)}
.section-body a,.section-subtitle a,.faq-a a,.faq-answer a,.testi-body a,.about-split-text a:not(.btn),.breadcrumb a,p a:not(.btn):not([class]){
  color:var(--c-accent-dark);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
.section-body a:not(.btn):hover,.faq-a a:hover,.faq-answer a:hover,.breadcrumb a:hover,p a:not(.btn):not([class]):hover{background:var(--c-soft)}
a:focus-visible,button:focus-visible,[role="button"]:focus-visible,summary:focus-visible{
  outline:2px solid var(--c-accent-dark)!important;outline-offset:3px!important}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--c-accent-dark)!important;outline-offset:2px!important}
input[type="checkbox"],input[type="radio"]{accent-color:var(--c-accent-dark)}

/* ---------- 3. HEADER / NAVIGATION ---------- */
/* Floating layout (MTL Advertising style): logo floats free top-left, the nav
   links live in one centered rounded pill (not a full-width bar) — in our own
   purple instead of their blue — and the language toggle + CTA sit apart from
   the pill, pinned to the right, the same way their outline CTA sits apart
   from the pill of Home/Portfolio/Pricing/About. Mobile is untouched: this is
   desktop-only, the nav is still swapped for the drawer at ≤920px. */
.header{background:transparent;transition:background var(--t-fast),box-shadow var(--t-fast),top var(--t-fast)}
.header.scrolled{top:-200px;background:transparent;box-shadow:none;visibility:hidden;transition:top var(--t-fast),visibility 0s var(--t-fast)}
.header .header-inner{position:relative}
.nav-link{color:var(--c-text);border-radius:var(--r-btn);transition:background var(--t-fast),color var(--t-fast)}
.nav-link:hover{color:var(--c-accent-dark);background:var(--c-soft)}
.nav-item:hover>.nav-link,.nav-item:focus-within>.nav-link,.nav-item.dd-open>.nav-link{background:var(--c-soft);color:var(--c-accent-dark)}
.nav-link--active,.nav-link[aria-current]:not(.nav-link--cta){color:var(--c-accent-dark)!important;font-weight:700;
  text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
.nav-link--cta{background:var(--c-cta);color:var(--c-text)!important;border-radius:var(--r-btn);text-decoration:none!important}
.nav-link--cta:hover{background:var(--c-cta-hover)!important;color:var(--c-text)!important;transform:none}
.nav-link--has-dropdown::after{opacity:.75}

/* the pill ("menu") — MTL Advertising's .nh-links/.nh-link CSS copied 1:1
   (same display/gap/radius/padding/font/transition/hover numbers), only the
   two blue values (#0055FF background, its shadow tint) swapped for our purple */
.header .nav-list{display:flex;align-items:center;gap:0;background:rgba(137,76,249,.59);border-radius:140px;padding:15px 57px;
  box-shadow:0 4px 20px rgba(112,99,164,.30);flex-wrap:nowrap}
.header .nav-list li{flex-shrink:0}
.header .nav-list .nav-link{font-size:18px;font-weight:700;color:#fff;text-decoration:none;padding:5px 20px;border-radius:100px;
  transition:color .2s,background .2s,transform .18s,box-shadow .2s;letter-spacing:-.02em;white-space:nowrap}
.header .nav-list .nav-link:hover{color:var(--c-lav-deep);background:#fff;transform:scale(1.08);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.header .nav-list .nav-item:hover>.nav-link,.header .nav-list .nav-item:focus-within>.nav-link,
.header .nav-list .nav-item.dd-open>.nav-link{background:#fff;color:var(--c-lav-deep);transform:scale(1.08);box-shadow:0 4px 16px rgba(0,0,0,.18)}
.header .nav-list .nav-link--active,.header .nav-list .nav-link[aria-current]:not(.nav-link--cta){
  color:#fff!important;text-decoration-color:rgba(255,255,255,.85)}
.header .nav-list .nav-item:hover>.nav-link--active,.header .nav-list .nav-item:focus-within>.nav-link--active{
  color:var(--c-lav-deep)!important;text-decoration-color:var(--c-lav-deep)}

/* actions ("Get a Free Quote" + EN/FR) — pinned to the right, off the pill,
   sitting straight on the page background like the rest of the header. The CTA
   is sized 1:1 from .nh-cta-nav (font/padding/radius/border — colour stays our
   gold, only height/shape is copied); the EN/FR toggle is padded to land on
   the same height so the two line up, since the reference has no such toggle. */
.header .nav-actions{display:flex;align-items:center;gap:10px}
.header .nav-actions .nav-link--cta{font-size:20px;font-weight:700;border-radius:12px;
  border:1.5px solid transparent;letter-spacing:.01em}

.lang-switch{background:var(--c-soft);border:1px solid var(--c-border)}
.lang-btn{color:var(--c-text);transition:background var(--t-fast),color var(--t-fast)}
.lang-btn:hover{background:var(--c-selected)}
.lang-btn.active{background:var(--c-surface);color:var(--c-text);font-weight:800;box-shadow:0 1px 3px rgba(70,40,55,.18)}
.header .nav-actions .lang-switch{padding:7px;border-radius:100px}
.header .nav-actions .lang-btn{font-size:14px;padding:9px 16px;border-radius:100px}

.burger,.mobile-burger{background:var(--c-surface);border:1px solid var(--c-border)}
.burger span,.mobile-burger span{background:var(--c-text)}

/* dropdown (Services and any similar menu) */
.nav-dropdown-inner{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-menu);box-shadow:var(--shadow-menu)}
.nav-dropdown-inner::before{background:var(--c-surface);border-left:1px solid var(--c-border);border-top:1px solid var(--c-border)}
.nav-item:focus-within .nav-dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0);pointer-events:all}
.nav-dropdown a{color:var(--c-text);border-radius:12px}
.nav-dropdown a:hover,.nav-dropdown a:focus-visible{background:var(--c-soft);color:var(--c-text)}
.nav-dropdown a[aria-current="page"]{background:var(--c-selected);color:var(--c-text);font-weight:700}
.dd-icon{background:var(--c-soft);color:var(--c-accent-dark)}
.nav-dropdown a:hover .dd-icon,.nav-dropdown a:focus-visible .dd-icon,.nav-dropdown a[aria-current="page"] .dd-icon{background:var(--c-selected);color:var(--c-accent-dark)}
.nav-dropdown-divider{background:var(--c-border)}

/* logo — no backdrop shape; a soft drop-shadow keeps the mark (and its faint
   sub-wordmark) readable on any background instead of sitting on a circle */
.header .logo{position:relative}
.header .logo-img{position:relative}

/* desktop only — copied 1:1 from .nh-nav: logo and actions are position:absolute
   (out of flow, exactly like .nh-logo/.nh-cta-nav), so they never stretch the
   header's own height/padding — only the pill (the one in-flow child) does,
   same as in the reference. left:0/right:0 there becomes left/right:24px here
   only because our container reaches the inset via padding instead of their
   width:calc(100% - 48px) — same visual edge, different mechanism. */
@media(min-width:1101px){
  .header .header-inner{display:flex;align-items:flex-start;justify-content:center;
    padding-top:38px;padding-bottom:24px}
  .header .logo{position:absolute;left:-20px;top:20px}
  .header .logo-img{height:90px}
  .header .nav-actions{position:absolute;right:24px;top:50%;transform:translateY(-50%)}
}

/* ---------- 4. BUTTONS ---------- */
.btn,.btn-call-hero,.btn-book-hero,.service-link{border-radius:var(--r-btn);transition:background var(--t-fast),border-color var(--t-fast),color var(--t-fast)}
.btn:hover,.btn-call-hero:hover,.btn-book-hero:hover,.service-link:hover{transform:none;box-shadow:none}
/* primary */
.btn-primary,.btn-call-hero,.service-link{background:var(--c-cta);color:var(--c-text);border:2px solid var(--c-cta)}
.btn-primary:hover,.btn-call-hero:hover,.service-link:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover);color:var(--c-text)}
.btn-call-hero i,.btn-primary i{color:var(--c-text)}
/* secondary (phone buttons etc.) */
.btn-outline-white,.btn-outline-navy,.btn-navy,.btn-book-hero,
.btn[style*="background:var(--navy);color:#fff"],.btn[style*="background:transparent;color:var(--navy)"],.btn[style*="background:#2563eb"]{
  background:var(--c-surface)!important;color:var(--c-text)!important;border:1px solid var(--c-border)!important}
.btn-outline-white:hover,.btn-outline-navy:hover,.btn-navy:hover,.btn-book-hero:hover,
.btn[style*="background:var(--navy);color:#fff"]:hover,.btn[style*="background:transparent;color:var(--navy)"]:hover{background:var(--c-soft)!important;border-color:var(--c-border)!important}
.btn-book-hero{font-weight:800}
.btn[style*="color:#fff"] i,.btn-outline-white i,.btn-outline-navy i,.btn-book-hero i{color:var(--c-accent-dark)}
.btn:disabled,.btn[disabled]{background:#F0E6E3!important;color:#7A7585!important;border:1px solid var(--c-border)!important;cursor:not-allowed}

/* ---------- 5. HERO (all pages) ---------- */
.hero{background:transparent;color:var(--c-text)}
.hero-slides,.hero-overlay{display:none}
.hero::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(circle at 97% 4%,var(--c-sky) 0 130px,transparent 131px),
    radial-gradient(circle at 1% 64%,var(--c-blush) 0 105px,transparent 106px)}
.hero:has(>.hero-blob)::before{display:none}
.hero::after{display:none}
.hero-title{color:var(--c-text)}
.hero-title span{color:var(--c-accent-text)}
.hero-subtitle{color:var(--c-text-2)}
.hero-badges{color:var(--c-text-2)}
.hero-badges i{color:var(--c-accent-dark)}
.badge-live{background:var(--c-soft);border:1px solid var(--c-border);color:var(--c-accent-dark)}
.badge-live .dot{background:var(--c-accent);box-shadow:0 0 0 0 rgba(244,86,122,.5)}
.hero-photo{border-radius:var(--r-card);box-shadow:var(--shadow-menu);border:6px solid var(--c-surface)}
.hero-photo-mobile{border:4px solid var(--c-surface)}
.hero-bullet{color:var(--c-text)}
.hero-bullet i{color:var(--c-accent-dark)}
.hero-dot{border-color:rgba(23,35,66,.4)}
.hero-dot.active{background:var(--c-accent-dark);border-color:var(--c-accent-dark)}
.hero-scroll a{color:var(--c-text-2)}
.hero-blob--purple{display:none}
.hero-blob--blue-lg,.hero-blob--blue-sm{background:var(--c-sky)}
.hero-blob--yellow-lg,.hero-blob--beige-xl{background:var(--c-blush)}
.hero-blob--peach-lg,.hero-blob--pink-md,.hero-blob--orange-sm{background:var(--c-peach)}
.hero-blob--dot{background:var(--c-surface)}
/* keep the bottom blobs fully inside the hero so they are never sliced by its edge */
.hero-blob--peach-lg{bottom:5%}
.hero-blob--pink-md{bottom:4%}

/* ---------- 6. SECTIONS ---------- */
.section-bg-light,.section-pad{background:transparent}
.section-bg-navy,.who-section,.guarantee-section{background:transparent}
.section-eyebrow{display:flex;width:fit-content;align-items:center;gap:11px;font-family:'Montserrat',sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;background:none;padding:0;border-radius:0;box-shadow:none;margin:0 auto 18px}
.section-eyebrow,.about-eyebrow,.page-hero-eyebrow{color:var(--c-accent-dark)}
span.section-eyebrow[data-lang]{background:none}
.section-eyebrow::before{background:var(--c-accent)}
.section-bg-light .section-eyebrow,.who-section .section-eyebrow{color:var(--c-accent-dark)}
.section-title,.section-title--light,.who-section .section-title,.about-split-text h2{color:var(--c-text)}
.section-subtitle,.section-body{color:var(--c-text-2)}
.section-body{color:var(--c-text)}
.section-pad.blob-y::before,.section-pad.blob-b::before,.who-section::before{display:none}
/* hairline between stacked sections — marks where one block ends and the next begins
   without boxing anything in or hiding the background circles. Not after the
   hero: that gap is short enough now that the line just adds clutter. */
section+section{position:relative}
section+section::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:min(880px,88%);height:1px;
  background:linear-gradient(90deg,transparent,rgba(23,35,66,.16) 12%,rgba(23,35,66,.16) 88%,transparent)}
.hero+section::before{display:none}
.breadcrumb a{color:var(--c-accent-dark)}
.trust-bar{background:transparent;border-top:1px solid var(--c-border);border-bottom:1px solid var(--c-border)}
.trust-item{border-right-color:var(--c-border)}
.trust-number{color:var(--c-accent-dark)}
.trust-label{color:var(--c-text);opacity:1}
.guarantee-title{color:var(--c-text)}
.guarantee-subtitle{color:var(--c-text-2)}
.guarantee-point{color:var(--c-text)}
.guarantee-point i,.guarantee-icon{color:var(--c-accent-dark)}
.guarantee-icon{background:var(--c-soft);border-color:var(--c-accent)}
.img-placeholder{background:var(--c-soft);color:var(--c-text-2)}
section[style*="background:#f9f9f9"],section[style*="background:#fff"]{background:transparent!important}
[style*="background:#f9f9f9"]{background:var(--c-alt)!important}
[style*="background:#fff"]{background:var(--c-surface)!important}
[style*="color:#111827"]{color:var(--c-text)!important}

/* ---------- 7. CARDS ---------- */
.checklist-card,.plan-card,.testi-card,.service-card,.who-card,.team-card,.review-card,.how-step,.trust-badge-card,
.pricing-card,.contact-form,.compare-card,.checklist-category,.faq-item{
  background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.faq-item{border-radius:var(--r-menu)}
.area-chip,.area-item{background:var(--c-surface);border:1px solid var(--c-border);border-radius:14px;box-shadow:none;color:var(--c-text)}
/* non-interactive cards: no hover promise */
.checklist-card:hover,.plan-card:hover,.plan-card:not(.plan-card--featured):hover,.testi-card:hover,.service-card:hover,.who-card:hover,
.team-card:hover,.review-card:hover,.how-step:hover,.trust-badge-card:hover,.pricing-card:hover,.compare-card:hover{
  transform:none;background:var(--c-surface);border-color:var(--c-border);box-shadow:var(--shadow-card)}
.who-card::before{display:none}
.checklist-card h3,.compare-card h3{color:var(--c-text);border-bottom-color:var(--c-border)}
.checklist-card h3::before{color:var(--c-accent-dark)}
.checklist-card li{border-top-color:var(--c-border);color:var(--c-text)}
.checklist-card li i{color:var(--c-accent-dark)}
.compare-card h3 i{background:var(--c-soft);color:var(--c-accent-dark)}
.compare-row:hover{background:var(--c-soft)}
.compare-head{color:var(--c-text-2)}
.cmp-mark i.cmp-yes,.compare-legend i.cmp-yes{background:var(--c-accent-dark)}
.cmp-mark i.cmp-no,.compare-legend i.cmp-no{background:#7D6C86}
.compare-legend span{color:var(--c-text)}
.move-compare-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-card)}
.move-compare-card h3{color:var(--c-text)}
.move-compare-card h3 i{background:var(--c-soft);color:var(--c-accent-dark)}
.move-compare-row{color:var(--c-text)}
.move-compare-row:hover{background:transparent}
.move-compare-row .scope-yes{background:var(--c-accent-dark)}
.move-compare-row .scope-no{background:#7D6C86}
.move-limit-alert{background:var(--c-err-bg);border:2px solid var(--c-err);color:var(--c-text);box-shadow:none;border-radius:var(--r-menu)}
.move-limit-alert>i{background:var(--c-err)}
.move-limit-alert strong{color:var(--c-err)}
.move-scope-note{color:var(--c-text-2)}
.plan-card--featured{background:var(--c-soft);border:2px solid var(--c-accent);box-shadow:var(--shadow-card)}
.plan-card--featured .plan-name,.plan-card--featured .plan-desc{color:var(--c-text)}
.plan-card--featured .plan-freq,.plan-freq{color:var(--c-accent-dark)}
.plan-badge,.pricing-badge,.pricing-card-badge{background:var(--c-accent-dark);color:#fff;box-shadow:none}
.plan-name,.service-name,.who-title,.team-name,.testi-name,.testi-header-info .testi-name,.trust-badge-title,.area-chip-name,
.how-step-title,.about-stat-num,.pricing-name{color:var(--c-text)}
.plan-desc,.service-desc,.who-desc,.team-role,.testi-loc,.how-step-desc,.trust-badge-desc,.area-chip-sub,.about-stat-label,
.process-card p,.badge-text small,.pricing-note,.pricing-from,.team-details-inner li,.form-note,.not-included{color:var(--c-text-2)}
.testi-quote,.faq-a,.faq-answer,.pricing-features li,.checklist-item{color:var(--c-text)}
.testi-stars,.review-stars,.review-stars i{color:#B77800}
.review-time,.review-source{color:var(--c-text-2)}
.testi-author{border-top-color:var(--c-border)}
.testi-toggle,.review-toggle,.faq-q,.faq-question{color:var(--c-text)}
.testi-avatar{background:var(--c-soft);color:var(--c-accent-dark);border:1px solid var(--c-border)}
.faq-item:hover,.faq-item.open{transform:none;box-shadow:var(--shadow-card)}
.faq-item:hover{background:var(--c-soft)}
.faq-item.open{border-color:var(--c-accent-dark)}
.faq-item:hover .faq-q,.faq-item:hover .faq-question{color:var(--c-accent-dark)}
.faq-q i,.faq-question i,.faq-hl{color:var(--c-accent-dark)}
.faq-note{background:var(--c-soft);border-left-color:var(--c-accent-dark)}
.who-icon,.trust-badge-icon,.badge-icon{background:var(--c-soft);color:var(--c-accent-dark);border:1px solid var(--c-border);box-shadow:none}
.badges-strip{background:transparent;border-bottom:1px solid var(--c-border)}
.badge-text{color:var(--c-text)}
.trust-badge-card{border-bottom:1px solid var(--c-border)}
.team-badge{background:var(--c-soft);color:var(--c-text)}
.team-toggle{border-top-color:var(--c-border);color:var(--c-text)}
.team-toggle:hover{color:var(--c-accent-dark)}
.area-item:hover{background:var(--c-soft);border-color:var(--c-accent-dark);color:var(--c-text)}
.area-item .fa-map-marker-alt,.area-item:hover .fa-map-marker-alt,.how-step-icon,.checklist-cat-title i{color:var(--c-accent-dark)}
.area-chip:hover{border-color:var(--c-border);transform:none}
.how-step-num,.process-num{background:var(--c-selected);color:var(--c-text);box-shadow:none}
.process-num{border-color:var(--c-surface)}
.process-grid>.process-card:not(:last-child)::after{color:var(--c-accent-dark)}
.checklist-tab{border:1px solid var(--c-border);color:var(--c-text);background:var(--c-surface);border-radius:var(--r-btn)}
.checklist-tab:hover{background:var(--c-soft)}
.checklist-tab.active{background:var(--c-selected);color:var(--c-text);border-color:var(--c-accent-dark);box-shadow:inset 0 -3px 0 var(--c-accent-dark)}
.checklist-cat-title{color:var(--c-text)}
.ba-label,.ba-footer{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border)}
.ba-footer i{color:var(--c-accent-dark)}
.switch-col-bad{background:var(--c-alt);border:1px solid var(--c-border)}
.switch-row.bad{color:var(--c-text-2)}
.switch-row.good{color:var(--c-text)}
.gallery-cap,.gallery-caption,.work-caption{background:linear-gradient(to top,rgba(23,35,66,.78),transparent);color:#fff}
.gallery-cap i{color:#fff}
.lightbox{background:rgba(23,35,66,.86)}

/* CTA banner */
.cta-banner{background:var(--c-bg);border:1px solid var(--c-border);border-radius:var(--r-card)}
.cta-banner::before{background:var(--c-sky);opacity:.85}
.cta-banner::after{background:var(--c-blush)}
.cta-banner h2{color:var(--c-text)}
.cta-banner p{color:var(--c-text-2);opacity:1}
.cta-banner .btn[style*="background:var(--navy);color:#fff"]{background:var(--c-cta)!important;color:var(--c-text)!important;border:2px solid var(--c-cta)!important}
.cta-banner .btn[style*="background:var(--navy);color:#fff"]:hover{background:var(--c-cta-hover)!important;border-color:var(--c-cta-hover)!important}
.cta-banner .btn[style*="background:var(--navy);color:#fff"] i{color:var(--c-text)}

/* pricing carousel: each card gets its own soft, translucent border — same
   hue carries into that card's price number (deepened for legibility, since
   the border itself stays light). Border grows inward (box-sizing:border-box
   on every element), so cards don't change size or shift position. */
.pricing-card-c,.pricing-card-c[data-card]{background:var(--c-surface);border-color:var(--c-border)}
.pricing-card-c[data-card] .pricing-price,.pricing-card-c .pricing-price{border-bottom-color:var(--c-border)}
.pricing-card-c[data-card] .btn,.pricing-card-c .btn{background:var(--c-cta);border-color:var(--c-cta);color:var(--c-text)}
.pricing-card-c[data-card] .btn:hover,.pricing-card-c .btn:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.pricing-card-c:nth-child(n) .btn{background:var(--c-cta);border-color:var(--c-cta);color:var(--c-text)}
.pricing-card-c:nth-child(n) .btn:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.pricing-card-c.active:hover{box-shadow:none}

/* scoped to the pricing carousel specifically — .pricing-card-c is a shared
   carousel component also reused by the photo gallery below, which must NOT
   inherit these per-plan colors (that was leaking a random-looking rainbow
   border onto the gallery photos before this scoping was added) */
#landingPricingCarousel .pricing-card-c:nth-child(1),#mainPricingCarousel .pricing-card-c:nth-child(1),
#landingPricingCarousel .pricing-card-c:nth-child(1)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(1)[data-card]{border-color:rgba(244,86,122,.32);outline:1px solid #AD3656}
#landingPricingCarousel .pricing-card-c:nth-child(1) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(1) .pricing-price{color:#AD3656}
#landingPricingCarousel .pricing-card-c:nth-child(2),#mainPricingCarousel .pricing-card-c:nth-child(2),
#landingPricingCarousel .pricing-card-c:nth-child(2)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(2)[data-card]{border-color:rgba(242,166,122,.4);outline:1px solid #C1703B}
#landingPricingCarousel .pricing-card-c:nth-child(2) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(2) .pricing-price{color:#C1703B}
#landingPricingCarousel .pricing-card-c:nth-child(3),#mainPricingCarousel .pricing-card-c:nth-child(3),
#landingPricingCarousel .pricing-card-c:nth-child(3)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(3)[data-card]{border-color:rgba(126,194,227,.4);outline:1px solid #2E6FA0}
#landingPricingCarousel .pricing-card-c:nth-child(3) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(3) .pricing-price{color:#2E6FA0}
#landingPricingCarousel .pricing-card-c:nth-child(4),#mainPricingCarousel .pricing-card-c:nth-child(4),
#landingPricingCarousel .pricing-card-c:nth-child(4)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(4)[data-card]{border-color:rgba(172,141,229,.36);outline:1px solid #7063A4}
#landingPricingCarousel .pricing-card-c:nth-child(4) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(4) .pricing-price{color:#7063A4}
/* was gold — too close to card 2's peach, moved to a muted sage so all six read as distinct */
#landingPricingCarousel .pricing-card-c:nth-child(5),#mainPricingCarousel .pricing-card-c:nth-child(5),
#landingPricingCarousel .pricing-card-c:nth-child(5)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(5)[data-card]{border-color:rgba(140,190,150,.4);outline:1px solid #3A7A52}
#landingPricingCarousel .pricing-card-c:nth-child(5) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(5) .pricing-price{color:#3A7A52}
#landingPricingCarousel .pricing-card-c:nth-child(6),#mainPricingCarousel .pricing-card-c:nth-child(6),
#landingPricingCarousel .pricing-card-c:nth-child(6)[data-card],#mainPricingCarousel .pricing-card-c:nth-child(6)[data-card]{border-color:rgba(90,180,170,.4);outline:1px solid #2E7F73}
#landingPricingCarousel .pricing-card-c:nth-child(6) .pricing-price,#mainPricingCarousel .pricing-card-c:nth-child(6) .pricing-price{color:#2E7F73}

/* photo gallery carousel (shares .pricing-card-c/.pricing-price base styles,
   but is a different thing — clean edge instead of a colored border, soft
   lift shadow on the featured photo, pill-style caption instead of a heavy
   black gradient scrim) */
.gallery-card-c,.gallery-card-c[data-card],.gallery-card-c.active{border-color:transparent!important;outline:none;box-shadow:none!important}
.faq-item:nth-child(n){background:var(--c-surface);border-color:var(--c-border);box-shadow:var(--shadow-card)}
.faq-item:nth-child(n):hover{background:var(--c-soft)}
.faq-item.open:nth-child(n){border-color:var(--c-accent-dark);background:var(--c-surface)}
@media(min-width:769px){
  #landingPricingCarousel .pricing-card-c.active:hover,#mainPricingCarousel .pricing-card-c.active:hover{transform:translate(-50%,-50%) scale(1.12)}
}
.pricing-features li i{color:var(--c-accent-dark);background:var(--c-soft)}
.pricing-arrow,.pricing-arrow:disabled,#mainGalleryCarousel .pricing-arrow{color:var(--c-text)}
.pricing-arrow:hover{color:var(--c-accent-dark)}
.pricing-dot{background:#9A8C92}
.pricing-dot.active{background:var(--c-accent-dark)}
.plans-arrow{color:var(--c-text)}
.gallery-card-c{background:var(--c-surface)}

/* ---------- 8. FORMS ---------- */
.form-label,.form-group label,.contact-form label{color:var(--c-text)}
.form-input,.form-select,.form-textarea,.contact-form input,.contact-form select,.contact-form textarea,.phone-input-wrap{
  background:var(--c-surface);color:var(--c-text);border:1.5px solid var(--c-border);border-radius:var(--r-btn)}
.phone-input-wrap input{background:transparent}
.phone-flag{background:var(--c-soft);color:var(--c-text);border-right-color:var(--c-border)}
.form-input:focus,.form-select:focus,.form-textarea:focus,.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{
  border-color:var(--c-accent-dark)}
.form-input::placeholder,.form-textarea::placeholder,.contact-form input::placeholder,.contact-form textarea::placeholder{color:#7C7789}
.form-input:disabled,.form-select:disabled,.form-textarea:disabled,.contact-form input:disabled,.contact-form select:disabled{
  background:#F0E6E3;color:#7A7585;cursor:not-allowed;border-style:dashed}

/* ---------- 9. FOOTER (light lavender, own tokens — global pink link rules must not reach it) ---------- */
:root{
  --footer-bg:#d09befd9;
  --footer-title:#17213D;
  --footer-text:#241a3d;
  --footer-muted:#5c4f6e;
  --footer-hover:#AD3656;
  --footer-icon:#7A5FA0;
  --footer-line:rgba(23,35,66,.15);
  --footer-focus:#F7B900;
}
footer.footer{background:var(--footer-bg);color:var(--footer-text);border:0;padding:52px 0 0}
footer.footer .footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.25fr;gap:40px;align-items:start;margin-bottom:48px}
body.lang-en footer.footer [data-lang="fr"],body.lang-fr footer.footer [data-lang="en"]{display:none!important}
footer.footer .footer-grid>*{min-width:0;text-align:left}
footer.footer .footer-brand{grid-column:auto}
footer.footer .footer-brand .logo{display:inline-block;background:none;padding:0;border-radius:0;margin:0}
footer.footer .footer-brand .logo img{width:260px;max-width:100%;height:auto!important;display:block}
footer.footer .footer-brand p{color:var(--footer-muted);font-size:15px;line-height:1.6;margin-top:14px}
footer.footer .footer-col-title,footer.footer .footer-services-title{color:var(--footer-title);font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;line-height:1.3;letter-spacing:.08em;text-transform:uppercase;text-align:left;margin:0 0 16px}
footer.footer .footer-links,footer.footer .footer-services-grid{display:flex;flex-direction:column;align-items:flex-start;gap:10px}
footer.footer .footer-services-block{grid-column:auto}
footer.footer a.footer-link,footer.footer span.footer-link{display:flex;align-items:flex-start;justify-content:flex-start;gap:8px;font-family:'Open Sans',sans-serif;font-size:15px;font-weight:400;line-height:1.6;color:var(--footer-text);text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;text-decoration-thickness:1.5px;overflow-wrap:anywhere;word-break:break-word;transition:color var(--t-fast),text-decoration-color var(--t-fast);background:none}
footer.footer a.footer-link:visited{color:var(--footer-text)}
footer.footer a.footer-link:hover,footer.footer a.footer-link:active{color:var(--footer-hover);text-decoration-color:var(--footer-hover);background:none}
footer.footer a.footer-link:focus-visible,footer.footer .footer-bottom a:focus-visible{outline:3px solid var(--footer-focus)!important;outline-offset:3px!important;border-radius:4px;color:var(--footer-hover)}
footer.footer .footer-link i{color:var(--footer-icon);flex:none;width:18px;margin-top:.32em;text-align:center;font-size:14px}
footer.footer .footer-bottom{border-top:1px solid var(--footer-line);padding:22px 0;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;font-size:13.5px;line-height:1.6;color:var(--footer-muted);text-align:left}
footer.footer .footer-bottom>span{color:var(--footer-muted)}
footer.footer .footer-bottom a{color:var(--footer-text);font-size:13.5px;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:3px;transition:color var(--t-fast),text-decoration-color var(--t-fast);background:none}
footer.footer .footer-bottom a:visited{color:var(--footer-text)}
footer.footer .footer-bottom a:hover{color:var(--footer-hover);text-decoration-color:var(--footer-hover);background:none}
@media(max-width:920px){
  footer.footer .footer-grid{grid-template-columns:1fr 1fr;gap:36px 32px;margin-bottom:40px}
  footer.footer .footer-brand{grid-column:1/-1}
  footer.footer .footer-brand .logo img{width:240px}
  footer.footer .footer-services-block{grid-column:auto}
  footer.footer .footer-grid>div:last-child{grid-column:1/-1}
  footer.footer .footer-links,footer.footer .footer-services-grid{align-items:flex-start}
  footer.footer a.footer-link,footer.footer span.footer-link{justify-content:flex-start}
  footer.footer .footer-brand p{display:block}
}
@media(max-width:600px){
  footer.footer{padding:44px 0 0!important}
  footer.footer>.container{padding:0 24px}
  footer.footer .footer-grid{grid-template-columns:1fr;gap:32px;margin-bottom:36px!important}
  footer.footer .footer-brand .logo img{width:220px}
  footer.footer .footer-grid>div:last-child{grid-column:auto}
  footer.footer .footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}
}
.funnel-footer{background:var(--footer-bg);border-top:0;color:var(--footer-muted);font-size:13.5px}
.funnel-footer a{color:var(--footer-text);text-decoration:underline;text-underline-offset:3px}
.funnel-footer a:hover{color:var(--footer-hover);background:none}

/* ---------- 10. QUOTE MODAL (#quoteModal) ---------- */
#quoteModal{--blue:var(--c-accent-dark);--blue-dark:var(--c-accent-dark);--blue-light:var(--c-selected);
  --cta:var(--c-cta);--cta-d:var(--c-cta-hover);--dark:var(--c-text);--dark-2:var(--c-text);--gray:var(--c-text-2);--tr:.18s ease;
  background:rgba(23,35,66,.55)}
#quoteModal .qm-inner{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:0 20px 54px -20px rgba(70,40,55,.35)}
#quoteModal .qm-inner.fm-final{background:transparent;border:none;box-shadow:none}
#quoteModal .fm-stepper .fms-ic{background:var(--c-surface);border-color:var(--c-border);color:var(--c-text-2)}
#quoteModal .fm-stepper .fms-lbl{color:var(--c-text-2)}
#quoteModal .fm-stepper .fms-line{background:var(--c-border)}
#quoteModal .fm-stepper .fms.is-active .fms-ic{background:var(--c-accent-dark);border-color:var(--c-accent-dark);color:#fff;box-shadow:none}
#quoteModal .fm-stepper .fms.is-active .fms-lbl{color:var(--c-accent-dark);font-weight:800}
#quoteModal .fm-stepper .fms.is-done .fms-ic{background:var(--c-selected);border-color:var(--c-accent-dark);color:var(--c-accent-dark)}
#quoteModal .fm-stepper .fms.is-done .fms-lbl{color:var(--c-text)}
#quoteModal .fm-stepper .fms-line.is-done{background:var(--c-accent-dark)}
#quoteModal .fm-q{color:var(--c-text)}
#quoteModal .fm-helper,#quoteModal .fm-consent,#quoteModal .fm-opt-sub,#quoteModal .fm-fg label .fm-optional{color:var(--c-text-2)}
#quoteModal .fm-opt{background:var(--c-surface);border:1.5px solid var(--c-border);color:var(--c-text);box-shadow:none}
#quoteModal .fm-opt:hover{background:var(--c-soft);border-color:var(--c-accent-dark);box-shadow:none}
#quoteModal .fm-opt.selected{background:var(--c-selected);border-color:var(--c-accent-dark);box-shadow:0 0 0 1px var(--c-accent-dark)}
#quoteModal .fm-opt:focus-visible{outline:2px solid var(--c-accent-dark);outline-offset:2px;box-shadow:none;border-color:var(--c-accent-dark)}
#quoteModal .fm-opt.selected::after{background:var(--c-accent-dark);color:#fff}
#quoteModal .fm-opt-lbl,#quoteModal .fm-opt.selected .fm-opt-lbl,#quoteModal .fm-opt.selected .fm-opt-sub{color:var(--c-text)}
#quoteModal .fm-opt-thumb{color:var(--c-accent-dark)}
#quoteModal .fm-opt-plus,#quoteModal .fm-chk-plus{color:var(--c-accent-dark)}
#quoteModal .fm-opt-plus--free,#quoteModal .fm-chk-plus--free{color:var(--c-accent-dark)}
#quoteModal .fm-info{border-color:var(--c-accent-dark);background:var(--c-soft);color:var(--c-accent-dark);box-shadow:none}
#quoteModal .fm-info:hover,#quoteModal .fm-info:focus{background:var(--c-accent-dark);color:#fff;box-shadow:none}
#quoteModal .fm-info-card{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text);box-shadow:var(--shadow-menu)}
#quoteModal .fm-info-card strong{color:var(--c-text)}
#quoteModal .fm-info-card a{color:var(--c-accent-dark)}
#quoteModal .fm-simple{background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-btn)}
#quoteModal .fm-simple:hover{background:var(--c-soft);border-color:var(--c-accent-dark)}
#quoteModal .fm-simple.selected{background:var(--c-selected);border-color:var(--c-accent-dark);box-shadow:0 0 0 1px var(--c-accent-dark)}
#quoteModal .fm-simple-lbl,#quoteModal .fm-simple-ic,#quoteModal .fm-simple.selected .fm-simple-lbl,#quoteModal .fm-simple.selected .fm-simple-ic{color:var(--c-text)}
#quoteModal .fm-call{background:var(--c-cta);border-color:var(--c-cta)}
#quoteModal .fm-call:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
#quoteModal .fm-call .fm-simple-lbl,#quoteModal .fm-call .fm-simple-ic{color:var(--c-text)}
#quoteModal .fm-chk-title,#quoteModal .fm-chk-txt{color:var(--c-text)}
#quoteModal .fm-chk-row{background:var(--c-surface);border:1.5px solid var(--c-border);border-radius:var(--r-btn)}
#quoteModal .fm-chk-row:hover{background:var(--c-soft);border-color:var(--c-accent-dark)}
#quoteModal .fm-chk-row:has(input:checked){background:var(--c-selected);border-color:var(--c-accent-dark)}
#quoteModal .fm-chk-box{background:var(--c-surface);border-color:var(--c-text-2)}
#quoteModal .fm-chk-row input:checked ~ .fm-chk-box{background:var(--c-accent-dark);border-color:var(--c-accent-dark)}
#quoteModal .fm-chk-row input:checked ~ .fm-chk-txt{color:var(--c-text)}
#quoteModal .fm-chk-row input:focus-visible ~ .fm-chk-box{outline:2px solid var(--c-accent-dark);outline-offset:2px}
#quoteModal .fm-fg label{color:var(--c-text)}
#quoteModal .fm-fg input{background:var(--c-surface);border:1.5px solid var(--c-border);color:var(--c-text);border-radius:var(--r-btn);box-shadow:none}
#quoteModal .fm-fg input::placeholder{color:#7C7789}
#quoteModal .fm-fg input:hover{background:var(--c-soft);border-color:var(--c-border)}
#quoteModal .fm-fg input:focus{background:var(--c-surface);border-color:var(--c-accent-dark);box-shadow:none}
#quoteModal .fm-fg input.error{border-color:var(--c-err)}
#quoteModal .fm-fg label .req,#quoteModal .fm-fe{color:var(--c-err)}
#quoteModal .fm-formerr{background:var(--c-err-bg);border-color:var(--c-err-line);color:var(--c-err)}
#quoteModal #fmStep6 .fm-fg label i,#quoteModal .fm-field-hint i{color:var(--c-accent-dark)}
#quoteModal #fmStep6 .fm-fg label{color:var(--c-text)}
#quoteModal #fmStep6 .fm-fg input{background:var(--c-surface);border-color:var(--c-border);box-shadow:none}
#quoteModal #fmStep6 .fm-fg input:hover{background:var(--c-soft)}
#quoteModal #fmStep6 .fm-fg input:focus{background:var(--c-surface);border-color:var(--c-accent-dark);box-shadow:none}
#quoteModal .fm-field-hint{background:var(--c-alt);color:var(--c-text-2);border:1px solid var(--c-border)}
#quoteModal .fm-back{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-btn);color:var(--c-text)}
#quoteModal .fm-back:hover{background:var(--c-soft);border-color:var(--c-border);color:var(--c-text)}
#quoteModal .fm-next{background:var(--c-cta);color:var(--c-text);border-radius:var(--r-btn);box-shadow:none}
#quoteModal .fm-next:hover{background:var(--c-cta-hover);box-shadow:none}
#quoteModal .fm-next:disabled{background:#F0E6E3;color:#7A7585;border:1px solid var(--c-border);cursor:not-allowed}
#quoteModal .fm-fortune-card{background:var(--c-surface);box-shadow:0 0 0 1px var(--c-border),0 24px 60px -22px rgba(70,40,55,.35)}
#quoteModal .fm-fortune-divider{background:linear-gradient(90deg,var(--c-accent),var(--c-lav))}
#quoteModal .fm-res-eye,#quoteModal .fm-res-cad{color:var(--c-text-2)}
#quoteModal .fm-res-range{color:var(--c-accent-dark);text-shadow:none}
#quoteModal .qm-close:focus-visible{outline-color:var(--c-surface)!important}
#quoteModal .fm-phone-prefix{background:var(--c-soft);border-right-color:var(--c-border);color:var(--c-text)}
#quoteModal .fm-phone-wrap:focus-within .fm-phone-prefix{background:var(--c-selected);color:var(--c-accent-dark);border-right-color:var(--c-accent-dark)}
#quoteModal .fm-canada-flag{box-shadow:0 0 0 1px var(--c-border)}

/* ---------- 11. MOBILE NAVIGATION ---------- */
/* Desktop nav stays as is. Below 1101px the legacy off-canvas .nav is replaced by the drawer built in js/mobile-menu.js */
.mobile-burger{display:none}
.mm-dialog{display:none}
@media(max-width:1100px){
  .header .nav{display:none!important}
  .mobile-burger{display:flex!important;position:fixed;top:14px;right:16px;z-index:600;width:44px;height:44px;padding:0;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer;background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;box-shadow:none}
  .mobile-burger span{display:block;width:22px;height:2px;border-radius:2px;background:var(--c-text)}
  .mobile-burger.is-hidden{visibility:hidden}
  .hero{padding-top:150px}
  /* plans on phones: keep the light system instead of the old navy cards */
  .plan-card:not(.plan-card--featured){border:1px solid var(--c-border)!important;background:var(--c-surface)!important}
  .plan-card:not(.plan-card--featured) .plan-name,.plan-card:not(.plan-card--featured) .plan-desc{color:var(--c-text)!important}
  .plan-card:not(.plan-card--featured) .plan-freq{color:var(--c-accent-dark)!important}
  .plan-card:not(.plan-card--featured) .btn{background:var(--c-cta)!important;color:var(--c-text)!important;border-color:var(--c-cta)!important}
  .hero::before{background:
    radial-gradient(circle at 100% 2%,var(--c-sky) 0 70px,transparent 71px),
    radial-gradient(circle at 0% 70%,var(--c-blush) 0 60px,transparent 61px)}

  /* drawer: native <dialog>, right panel = head / scrolling nav / actions */
  .mm-dialog{display:block;position:fixed;inset:0;width:100vw;height:100vh;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:var(--c-text);overflow:hidden}
  .mm-dialog:not([open]){display:none}
  .mm-dialog::backdrop{background:rgba(23,35,66,.32)}
  .mm-dialog.mm-fallback-open{z-index:10000}
  .mm-panel{position:absolute;top:0;right:0;bottom:0;width:min(252px,100vw);display:flex;flex-direction:column;background:#FFF1F6;border-left:1px solid var(--c-border);transform:translateX(100%);transition:transform .2s ease;font-family:'Open Sans',sans-serif}
  .mm-panel.is-open{transform:none}
  .mm-head{position:relative;flex:none;display:flex;align-items:center;justify-content:center;gap:12px;padding:calc(12px + env(safe-area-inset-top)) 24px 12px;border-bottom:1px solid var(--c-border)}
  .mm-brand{display:flex;flex-direction:column;align-items:center;line-height:1;text-decoration:none;color:var(--c-text);padding:6px 0}
  .mm-brand-logo{height:36px;width:auto;display:block}
  .mm-close{position:absolute;right:16px;top:50%;transform:translateY(-50%);flex:none;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:none;border:0;border-radius:12px;color:var(--c-text);cursor:pointer;padding:0}
  .mm-close:hover{background:var(--c-soft)}
  .mm-close svg{width:22px;height:22px;display:block}
  .mm-nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding:12px 0}
  .mm-list,.mm-sublist{list-style:none;margin:0;padding:0}
  .mm-link,.mm-trigger{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:48px;padding:6px 24px;margin:0;border:0;background:none;text-align:left;font-family:'Montserrat',sans-serif;font-size:17px;font-weight:600;line-height:1.3;color:var(--c-text);text-decoration:none;cursor:pointer;transition:background .15s ease,color .15s ease}
  .mm-link:hover,.mm-trigger:hover{background:var(--c-soft)}
  .mm-link:focus-visible,.mm-trigger:focus-visible,.mm-sublink:focus-visible,.mm-lang button:focus-visible,.mm-cta:focus-visible,.mm-brand:focus-visible,.mm-close:focus-visible{outline:2px solid var(--c-accent-dark)!important;outline-offset:-3px!important}
  .mm-close:focus-visible{outline-offset:0!important}
  .mm-link[aria-current="page"],.mm-trigger.is-current,.mm-sublink[aria-current="page"]{color:var(--c-accent-dark);font-weight:700}
  .mm-link[aria-current="page"]::before,.mm-trigger.is-current::before,.mm-sublink[aria-current="page"]::before{content:'';position:absolute;left:0;top:10px;bottom:10px;width:4px;border-radius:0 4px 4px 0;background:var(--c-accent-dark)}
  .mm-trigger[aria-expanded="true"]{background:var(--c-soft)}
  .mm-chev{flex:none;width:18px;height:18px;transition:transform .2s ease}
  .mm-trigger[aria-expanded="true"] .mm-chev{transform:rotate(180deg)}
  .mm-sub{padding:4px 0 8px}
  .mm-sub[hidden]{display:none}
  .mm-sublist{margin-left:24px;border-left:1px solid var(--c-border)}
  .mm-sublink{position:relative;display:flex;align-items:center;min-height:44px;padding:6px 24px 6px 16px;font-size:15.5px;font-weight:500;line-height:1.35;color:var(--c-text);text-decoration:none;font-family:'Open Sans',sans-serif;transition:background .15s ease}
  .mm-sublink:hover{background:var(--c-soft)}
  .mm-sublink[aria-current="page"]::before{left:-1px;top:8px;bottom:8px}
  .mm-foot{flex:none;display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 24px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--c-border);background:#FFF1F6}
  .mm-lang{display:inline-flex;align-items:center;gap:2px;padding:3px;background:#fff;border:1px solid var(--c-border);border-radius:12px;box-shadow:0 1px 3px rgba(70,40,55,.08)}
  .mm-lang button{min-width:44px;min-height:38px;padding:0 10px;border:1px solid transparent;border-radius:9px;background:transparent;font-family:'Montserrat',sans-serif;font-size:13px;font-weight:700;color:var(--c-text);cursor:pointer}
  .mm-lang button[aria-pressed="true"]{background:var(--c-accent-dark);color:#fff;border-color:var(--c-accent-dark)}
  .mm-cta{flex:1 1 150px;display:flex;align-items:center;justify-content:center;min-height:48px;padding:0 16px;border-radius:12px;background:var(--c-cta);color:var(--c-text);font-family:'Montserrat',sans-serif;font-size:15px;font-weight:700;text-decoration:none;text-align:center;transition:background .15s ease}
  .mm-cta:hover{background:var(--c-cta-hover)}
  .mm-l-en,.mm-l-fr{display:none}
  body:not(.lang-fr) .mm-l-en,body.lang-fr .mm-l-fr{display:inline}
  html.mm-lock{overflow:hidden}
}
@media(max-width:359px){.mm-cta{flex:1 1 100%}}
@media(max-width:1100px) and (prefers-reduced-motion:reduce){
  .mm-panel,.mm-chev,.mm-link,.mm-trigger,.mm-sublink,.mm-cta{transition:none!important}
}
@media(max-width:768px){
  .checklist-card h3::after{color:var(--c-accent-dark)}
  .plans-arrow{color:var(--c-text)}
}

/* ---------- 11b. ESTIMATOR / FUNNEL PAGES (cleaning-estimate, cleaning-quote-estimator) ---------- */
.funnel-logo{position:relative;display:inline-block}
.funnel-logo::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150px;height:150px;border-radius:50%;background:var(--c-lav)}
.hero-split{padding-top:120px}
.funnel-logo img{position:relative;filter:none}
.funnel-need-help{color:var(--c-text-2)}
.funnel-phone{background:var(--c-cta);color:var(--c-text);border-radius:var(--r-btn)}
.funnel-phone:hover{background:var(--c-cta-hover);transform:none;box-shadow:none}
.hero-split{background:transparent}
.hero-split::before{background:
  radial-gradient(circle at 96% 6%,var(--c-sky) 0 120px,transparent 121px),
  radial-gradient(circle at 2% 70%,var(--c-blush) 0 100px,transparent 101px)!important;background-image:none}
.hero-eyebrow{color:var(--c-accent-dark);background:var(--c-soft);border:1px solid var(--c-border)}
.hero-eyebrow::before{background:var(--c-accent);box-shadow:none}
.hero-h1{color:var(--c-text)}
.hero-support{color:var(--c-text-2)}
.hero-trust-item{color:var(--c-text)}
.hero-trust-item i{color:var(--c-accent-dark)}
.calc-card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card);box-shadow:var(--shadow-menu)}
.calc-badge{background:var(--c-cta);color:var(--c-text)}
.calc-stepper .cstep-ic{background:var(--c-surface);border-color:var(--c-border);color:var(--c-text-2)}
.calc-stepper .cstep-lbl{color:var(--c-text-2)}
.calc-stepper .cstep-line{background:var(--c-border)}
.calc-stepper .cstep.is-active .cstep-ic{background:var(--c-accent-dark);border-color:var(--c-accent-dark);color:#fff;box-shadow:none}
.calc-stepper .cstep.is-active .cstep-lbl{color:var(--c-accent-dark);font-weight:800}
.calc-stepper .cstep.is-done .cstep-ic{background:var(--c-selected);border-color:var(--c-accent-dark);color:var(--c-accent-dark)}
.calc-stepper .cstep.is-done .cstep-lbl{color:var(--c-text)}
.calc-stepper .cstep-line.is-done{background:var(--c-accent-dark)}
.calc-question,.calc-summary-value,.res-range,.res-eyebrow,.calc-optional-title,.calc-check-text,.option-label,.option-thumb i{color:var(--c-text)}
.calc-helper,.calc-summary-label,.res-support,.res-disc,.res-cta-note,.step4-price-label,.btn-edit-inline{color:var(--c-text-2)}
.calc-option{background:var(--c-surface);border:1.5px solid var(--c-border);color:var(--c-text)}
.calc-option:hover{background:var(--c-soft);border-color:var(--c-accent-dark);box-shadow:none}
.calc-option.selected{background:var(--c-selected);border-color:var(--c-accent-dark);box-shadow:0 0 0 1px var(--c-accent-dark);color:var(--c-text)}
.calc-option.selected::after{background:var(--c-accent-dark);color:#fff}
.calc-option.selected .option-label{color:var(--c-text)}
.calc-option:focus-visible{border-color:var(--c-accent-dark);box-shadow:none}
.calc-option.calc-option-simple{background:var(--c-surface);border:1.5px solid var(--c-border)}
.calc-option.calc-option-simple:hover{background:var(--c-soft);border-color:var(--c-accent-dark)}
.calc-option.calc-option-simple.selected{background:var(--c-selected);border-color:var(--c-accent-dark)}
.calc-option.calc-option-simple .option-thumb-icon{color:var(--c-text)}
.calc-option.calc-option-call{background:var(--c-cta);border-color:var(--c-cta)}
.calc-option.calc-option-call:hover{background:var(--c-cta-hover);border-color:var(--c-cta-hover)}
.calc-option.calc-option-call .option-label,.calc-option.calc-option-call .option-thumb-icon{color:var(--c-text)}
.calc-check-row{background:var(--c-surface);border:1.5px solid var(--c-border)}
.calc-check-row:hover{background:var(--c-soft);border-color:var(--c-accent-dark)}
.calc-check-row:has(input:checked){background:var(--c-selected);border-color:var(--c-accent-dark)}
.calc-check-box{border-color:var(--c-text-2);background:var(--c-surface)}
.calc-check-row input:checked ~ .calc-check-box{background:var(--c-accent-dark);border-color:var(--c-accent-dark)}
.calc-check-row input:checked ~ .calc-check-text{color:var(--c-text)}
.calc-summary{background:var(--c-alt);border-color:var(--c-border)}
.calc-summary::before{background:var(--c-accent)}
.calc-summary-row+.calc-summary-row{border-top-color:var(--c-border)}
.calc-progress-fill{background:var(--c-accent-dark)}
.calc-progress-bar{background:var(--c-border)}
.btn-back{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-btn);color:var(--c-text)}
.btn-back:hover{background:var(--c-soft);border-color:var(--c-border);color:var(--c-text)}
.btn-next{background:var(--c-cta);color:var(--c-text);border-radius:var(--r-btn);box-shadow:none}
.btn-next:hover{background:var(--c-cta-hover);box-shadow:none}
.btn-next:disabled{background:#F0E6E3;color:#7A7585;border:1px solid var(--c-border);cursor:not-allowed}
.calc-formerr{background:var(--c-err-bg);border-color:var(--c-err-line);color:var(--c-err)}
.fg label{color:var(--c-text)}
.fg label .req,.fe{color:var(--c-err)}
.fg input,.fg select{background:var(--c-surface);border:1.5px solid var(--c-border);color:var(--c-text);border-radius:var(--r-btn)}
.fg input:focus,.fg select:focus{background:var(--c-surface);border-color:var(--c-accent-dark);box-shadow:none}
.fg input.error,.fg select.error{border-color:var(--c-err)}
.fg input::placeholder{color:#7C7789}
.step4-price::after{background:var(--c-accent)}
.step4-price-value{background:none;color:var(--c-accent-dark);-webkit-background-clip:border-box;background-clip:border-box}
.rsi{background:var(--c-soft);border-color:var(--c-border)}
.rsi-v{color:var(--c-text)}
.success-section{background:var(--c-bg)}
.success-card{background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--shadow-menu)}
.success-card:before{background:var(--c-accent)}
.success-icon{background:var(--c-ok-bg);border-color:var(--c-ok);color:var(--c-ok);box-shadow:none}
.success-title,.sdv{color:var(--c-text)}
.success-text,.sdl{color:var(--c-text-2)}
.success-details{background:var(--c-alt);border-color:var(--c-border)}
.sdi{border-bottom-color:var(--c-border)}
.btn-success-call,.btn-call-now{background:var(--c-cta);color:var(--c-text);border-radius:var(--r-btn)}
.btn-success-call:hover,.btn-call-now:hover{background:var(--c-cta-hover)}
.btn-new-est{background:var(--c-surface);border:1px solid var(--c-border);color:var(--c-text);border-radius:var(--r-btn)}
.btn-new-est:hover{background:var(--c-soft);color:var(--c-text);border-color:var(--c-border)}
.reviews-section{background:transparent}
.service-area{background:transparent}
.service-area-desc,.review-author span{color:var(--c-text-2)}
.review-text,.review-author strong{color:var(--c-text)}
.review-stars{color:#B77800}
.author-avatar{background:var(--c-soft);color:var(--c-accent-dark);border:1px solid var(--c-border)}
.perk{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--r-card)}
.perk:hover{border-color:var(--c-border);transform:none}
/* multicolour emoji -> single-colour brand icons */
.perk-emoji{font-size:0;line-height:1;width:44px;height:44px;border-radius:50%;background:var(--c-soft);display:flex;align-items:center;justify-content:center}
.perk-emoji::before{font-family:"Font Awesome 6 Free";font-weight:900;font-size:1.1rem;color:var(--c-accent-dark)}
.perk:nth-child(1) .perk-emoji::before{content:"\f0e7"}
.perk:nth-child(2) .perk-emoji::before{content:"\f4c0"}
.perk:nth-child(3) .perk-emoji::before{content:"\f3ed"}
.perk:nth-child(4) .perk-emoji::before{content:"\f058"}
/* closing CTA band: light instead of navy */
.final-cta{background:var(--c-selected);border-top:1px solid var(--c-border)}
.final-cta-title{color:var(--c-text)}
.final-cta-text{color:var(--c-text-2)}
.btn-cta-p{background:var(--c-accent-dark);color:#fff;border-radius:var(--r-btn)}
.btn-cta-p:hover{background:#8F2C47}
.btn-cta-o{color:var(--c-text);border-color:var(--c-text);border-radius:var(--r-btn)}
.btn-cta-o:hover{background:var(--c-surface);border-color:var(--c-text);color:var(--c-text)}

/* ---------- 12. MOTION ---------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* No decorative separators between page sections. */
section+section::before{content:none!important;display:none!important}
@media(max-width:600px){#hero .hero-blob--peach-lg{display:none!important}}
/* Decoration stays behind content, including overlapping section boundaries. */
body{isolation:isolate}
body .hero-blob{z-index:-1!important;pointer-events:none!important}
body .hero::before{z-index:-1!important;pointer-events:none!important}
body section > .container,body .hero-content{position:relative;z-index:2}
@media(max-width:768px){
 body .hero:has(.hero-left){height:auto!important;min-height:0!important;padding-top:150px!important;padding-bottom:72px!important}
 body .hero:has(.hero-left) .hero-left{padding-top:0!important}
 body .hero:has(.hero-left) + #pricing{margin-top:0!important;padding-top:0!important}
}
/* The tablet hero must grow with its content before the pricing section. */
@media(min-width:769px) and (max-width:1100px){
body .hero:has(.hero-left){height:auto!important;min-height:0!important;padding-bottom:72px!important}
body .hero:has(.hero-left) + #pricing{margin-top:0!important;padding-top:0!important}
}
@media(max-width:768px){
body .hero-scroll{display:none!important}
body .hero:has(.hero-left){padding-bottom:48px!important}
body .hero-actions.has-mobile-laska{margin-bottom:78px!important}
}
/* Review photos reused from the full Reviews page. */
#reviews .review-photo-btn{display:block;width:100%;padding:0;margin:16px 0 0;border:0;background:none;cursor:zoom-in}
#reviews .review-photo{display:block;width:100%;height:auto;border-radius:12px}
#reviews .review-body.open{max-height:none}
/* Contain the service-area panel on phones and small tablets. */
@media(max-width:768px){
#areas .areas-layout{grid-template-columns:minmax(0,1fr);padding:26px 18px;gap:0;box-sizing:border-box;width:100%;min-width:0}
#areas .areas-map{display:none}
#areas .areas-right,#areas .areas-card{width:100%;max-width:100%;min-width:0;margin:0;box-sizing:border-box}
#areas .section-title{font-size:clamp(23px,6vw,28px);line-height:1.18;overflow-wrap:normal}
#areas .areas-card>p{font-size:14px!important;line-height:1.6!important;margin-bottom:20px!important}
#areas .areas-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;min-width:0}
#areas .area-item{min-width:0;width:100%;box-sizing:border-box;gap:5px;padding:9px 5px;font-size:12px;line-height:1.3;justify-content:center}
#areas .area-item span{min-width:0;white-space:normal;overflow:visible;text-overflow:clip}
#areas .area-item i{flex-shrink:0;font-size:15px}
#areas .areas-card>.btn{display:flex;width:100%!important;max-width:100%;min-width:0;box-sizing:border-box;padding:13px 10px!important;font-size:clamp(13px,3.6vw,17px)!important;line-height:1.4;gap:7px;white-space:normal;margin-top:20px!important}
#areas .areas-card>.btn span{min-width:0}
/* The service map replaces the introductory paragraph. */
#areas .areas-map{display:block;width:100%;height:240px;box-sizing:border-box;margin:18px 0 20px;border:1px solid rgba(69,37,92,.18);box-shadow:none;border-radius:14px}
#areas .areas-map iframe{display:block;width:100%;height:100%}
}
/* Service cards wrap only when a comfortable reading width is available. */
.services-grid:has(>.service-card){display:flex;flex-wrap:wrap;justify-content:center;gap:22px;max-width:1154px;margin-left:auto;margin-right:auto}
.services-grid>.service-card{box-sizing:border-box;flex:1 1 300px;min-width:min(300px,100%);max-width:370px;width:100%}
/* Hide the six cleaning-icon tiles on phones. */
@media(max-width:600px){
body .scb-section .scb-grid{display:none!important}
}
/* Phone order: introduction, photos, then actions. */
@media(max-width:600px){
body .scb-section .scb-content{display:contents}
body .scb-section .scb-copy{grid-row:1}
body .scb-section .scb-media{grid-row:2}
body .scb-section .scb-actions{grid-row:3;margin-top:0}
body .scb-section .scb-wrap{row-gap:28px}
}
/* Give the phone experience panel room and a defined edge. */
@media(max-width:600px){
body .scb-section{margin-top:64px!important}
body .scb-section .scb-wrap::before{border:2px solid #E8C7AC;box-sizing:border-box}
body .scb-section .scb-copy{padding:8px 16px 0;box-sizing:border-box}
}
/* Comparison markers use clear inclusion/exclusion colors. */
body .cmp-mark i.cmp-yes,body .compare-legend i.cmp-yes{background:#21834D!important;color:#fff!important}
body .cmp-mark i.cmp-no,body .compare-legend i.cmp-no{background:#D83B45!important;color:#fff!important}
body .move-compare-row .scope-yes{background:#21834D!important;color:#fff!important}
body .move-compare-row .scope-no{background:#D83B45!important;color:#fff!important}
/* Desktop pricing is a separate section, with its title close to the cards. */
@media(min-width:1101px){
body #hero:has(.hero-left){height:auto!important;min-height:0!important;padding-top:240px!important;padding-bottom:96px!important}
body #hero .hero-left{padding-top:0!important}
body #hero + #pricing{margin-top:0!important;padding-top:0!important}
body #pricing>.container>.section-header{margin:0 0 20px!important}
body #mainPricingCarousel .pricing-viewport{height:560px!important}
}
