/* Room explorer (owner request 2026-11-11): animation-first home and service pages. Click/tap only. */
:root{
  --xp-ink:#12283f; --xp-gold:#ffd23f; --xp-gold-deep:#e0a800; --xp-gold-soft:#fff3c4; --xp-select:#2f6fca; --xp-visited:#e4eefa;
  --xp-res:#5b7da3; --xp-res-ink:#2c4a6b; --xp-rule:#d8e1ec; --xp-muted:#4a5f77;
}
.xp-home,.xp-service{padding:18px 0 34px;background:#f5f8fc}
.xp-h1{max-width:none;font-size:clamp(20px,2.4vw,28px);line-height:1.2;margin:0 0 14px;color:var(--xp-ink);text-wrap:balance}
.xp-icon{width:24px;height:24px;flex:none}
[data-xp] *{-webkit-tap-highlight-color:transparent}

/* Tabs: Commercial (wide, default) | Residential */
.xp-tabs{display:grid;grid-template-columns:7fr 3fr;gap:8px}
.xp-tab{display:flex;align-items:center;gap:10px;min-height:58px;padding:12px 18px;border:0;border-radius:16px 16px 0 0;cursor:pointer;font:inherit;font-weight:800;font-size:20px;text-align:left;
  background:#e2e9f2;color:var(--xp-ink);-webkit-tap-highlight-color:transparent}
.xp-tab small{font-size:14px;font-weight:600;opacity:.8}
.xp-tab-commercial[aria-selected=true]{background:var(--xp-ink);color:#fff}
.xp-tab-residential[aria-selected=true]{background:var(--xp-res);color:#fff}
.xp-tab[aria-selected=true] .xp-icon{color:var(--xp-gold)}
.xp-tab:focus:not(:focus-visible){outline:none}
.xp-panel{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-areas:"rooms visual" "copy visual";align-items:start;gap:16px 22px;
  padding:20px;background:#fff;border:3px solid var(--xp-ink);border-radius:0 22px 22px 22px;box-shadow:0 14px 34px rgba(18,40,63,.08)}
.xp-panel-residential{border-color:var(--xp-res);border-radius:22px 0 22px 22px}
.xp-panel[hidden]{display:none}
.xp-panel>.xp-rooms{grid-area:rooms}
.xp-rooms{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.xp-panel>.xp-visual{grid-area:visual}
.xp-visual{min-width:0}
.xp-panel>.xp-copy{grid-area:copy}
.xp-copy{min-width:0}
.xp-room{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:10px;min-height:104px;padding:14px;border-radius:16px;cursor:pointer;
  font:inherit;font-weight:800;font-size:18px;line-height:1.2;text-align:left;color:var(--xp-ink);background:#fff;border:3px solid var(--xp-rule);transition:background .2s,color .2s,border-color .2s}
.xp-room .xp-icon{width:36px;height:36px;padding:7px;border-radius:11px;background:var(--xp-gold-soft);color:var(--xp-ink)}
.xp-room.visited{background:var(--xp-visited);border-color:#bcd2ee}
.xp-room[aria-pressed=true]{background:var(--xp-select);border-color:var(--xp-select);color:#fff}
.xp-panel-residential .xp-room[aria-pressed=true]{background:var(--xp-res);border-color:var(--xp-res)}
.xp-room[aria-pressed=true] .xp-icon{background:rgba(255,255,255,.18);color:var(--xp-gold)}
.xp-room.next{animation:xp-blink 1.2s ease-in-out infinite}
.xp-room:focus:not(:focus-visible){outline:none}
@keyframes xp-blink{0%,100%{border-color:var(--xp-rule);box-shadow:none}50%{border-color:var(--xp-gold);box-shadow:0 0 0 4px rgba(255,210,63,.45)}}
.xp-title{font-size:21px;margin:4px 0 10px;color:var(--xp-ink)}
.xp-checks{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.xp-checks[hidden]{display:none}
.xp-checks li{display:flex;align-items:flex-start;gap:12px;font-size:17px;line-height:1.45;color:var(--xp-muted);transition:color .3s}
.xp-checks li::before{content:"";flex:none;width:24px;height:24px;margin-top:calc((1.45em - 24px)/2);border-radius:50%;border:2px solid #b6c4d4;box-sizing:border-box}
.xp-checks li.doing{color:var(--xp-ink);font-weight:700}
.xp-checks li.doing::before{border-color:var(--xp-gold-deep);animation:xp-ring 1s ease-in-out infinite}
.xp-checks li.done{color:var(--xp-ink)}
.xp-checks li.done::before{border:0;background:var(--xp-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 12.5l4 4 8-9' fill='none' stroke='%2312283f' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px no-repeat;animation:xp-pop .3s ease-out}
.xp-extra{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:999px;background:var(--xp-gold);color:var(--xp-ink);font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;vertical-align:2px}
@keyframes xp-ring{50%{box-shadow:0 0 0 5px rgba(255,210,63,.35)}}
@keyframes xp-pop{from{transform:scale(.4)}to{transform:scale(1)}}
.xp-more{display:inline-flex;margin-top:14px;padding:10px 16px;border-radius:12px;background:var(--xp-gold);color:var(--xp-ink);font-weight:800;text-decoration:none}

/* Animation card */
.xp-card{--xp-bg:#132640;--xp-room:#1a3150;--xp-furn:#24426c;--xp-line:#7fa8f5;--xp-rug:#203b62;--xp-box:#2d5185;
  border-radius:20px;overflow:hidden;background:var(--xp-bg);box-shadow:0 16px 36px rgba(18,40,63,.2)}
.xp-card.xp-res{--xp-bg:#34557a;--xp-room:#3f6189;--xp-furn:#4e729b;--xp-line:#d3e3f6;--xp-rug:#476a92;--xp-box:#5e83ab}
.xp-stage{position:relative}
.xp-stage svg{display:block;width:100%;height:auto}
.xp-stage .bg{fill:var(--xp-bg)}
.xp-stage .room{fill:var(--xp-room);stroke:var(--xp-line);stroke-width:3}
.xp-stage .f{fill:var(--xp-furn);stroke:var(--xp-line);stroke-width:2;stroke-linejoin:round}
.xp-stage .ln{fill:none;stroke:var(--xp-line);stroke-width:2;stroke-linecap:round}
.xp-stage .wall{fill:none;stroke:var(--xp-line);stroke-width:3;stroke-linecap:round}
.xp-stage .dash{fill:none;stroke:var(--xp-line);stroke-width:2;stroke-dasharray:6 6;opacity:.7}
.xp-stage .rail{fill:none;stroke:var(--xp-line);stroke-width:5;stroke-linecap:round}
.xp-stage .post,.xp-stage .lnfill{fill:var(--xp-line)}
.xp-stage .lnfill{opacity:.75}
.xp-stage .arrow{fill:none;stroke:var(--xp-line);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.xp-stage .glass{fill:var(--xp-line);fill-opacity:.22;stroke:var(--xp-line);stroke-width:2}
.xp-stage .hole{fill:var(--xp-room);stroke:var(--xp-line);stroke-width:2}
.xp-stage .gap{fill:var(--xp-room)}
.xp-stage .rug{fill:var(--xp-rug);stroke:var(--xp-line);stroke-width:2}
.xp-stage .box{fill:var(--xp-box);stroke:var(--xp-line);stroke-width:1.5}
.xp-stage .leaf{fill:var(--xp-line);opacity:.5}
.xp-stage .knob{fill:var(--xp-gold)}
.xp-stage .lane{fill:none;stroke:var(--xp-gold);stroke-width:2;stroke-dasharray:10 9;opacity:.55}
.xp-stage .seam{fill:none;stroke:var(--xp-line);stroke-width:1.5;opacity:.45}
.xp-stage .sticker{fill:#fff;opacity:.85;transition:opacity .4s}
.xp-stage .sticker.cleared{opacity:0}
.xp-stage .trail{fill:none;stroke:var(--xp-gold);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;opacity:.6}
.xp-stage .trail.thin{stroke-width:5;opacity:.75}
.xp-stage .stripes{fill:none;stroke:var(--xp-gold);stroke-width:3;stroke-linecap:round;opacity:.5}
.xp-stage .wet{fill:none;stroke:#bfe3ff;stroke-width:56;stroke-linecap:round;stroke-linejoin:round;opacity:.3;transition:opacity 1.2s}
.xp-stage .wet.dry{opacity:.12}
.xp-stage .speck{fill:#c9b48a;transition:opacity .35s,transform .35s}
.xp-stage .speck.gone{opacity:0}
.xp-stage .mist,.xp-stage .glow,.xp-stage .s-white{fill:#fff}
.xp-stage .band{fill:#fff;opacity:.95}
.xp-stage .bag{fill:#9fb4cf}
.xp-stage .liner{stroke:#fff;stroke-width:4;stroke-linecap:round}
.xp-stage .sheet{fill:#fff;opacity:.92}
.xp-stage .inside{fill:#eef6ff;stroke:#fff;stroke-width:3}
.xp-stage .inside-dark{fill:#22344d}
.xp-stage .shelf{stroke:#7fa8f5;stroke-width:3}
.xp-stage .food1{fill:#f08a5d}.xp-stage .food2{fill:#7cc4a4}.xp-stage .food3{fill:#ffd23f}
.xp-stage .door{fill:var(--xp-furn);stroke:var(--xp-line);stroke-width:3}
.xp-stage .grime{fill:#8a7350;transition:opacity .4s}
.xp-stage .s-gold{fill:var(--xp-gold)}
.xp-stage .s-fold{fill:none;stroke:#c99a00;stroke-width:2;stroke-linecap:round}
.xp-stage .s-blue{fill:#7fa8f5}
.xp-stage .s-dark{fill:#12283f}
.xp-stage .s-handle{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round}
.xp-stage .s-strings{fill:none;stroke:var(--xp-gold);stroke-width:2.5;stroke-linecap:round}
.xp-stage .s-squeegee{fill:#0f1d30;stroke:#fff;stroke-width:1.5}
.xp-stamp{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.6);opacity:0;pointer-events:none;white-space:nowrap;
  background:var(--xp-gold);color:var(--xp-ink);font-weight:800;font-size:clamp(15px,2.2vw,20px);padding:10px 18px;border-radius:999px;box-shadow:0 10px 30px rgba(0,0,0,.25);
  transition:opacity .25s,transform .35s cubic-bezier(.2,1.4,.4,1)}
.xp-stamp.on{opacity:1;transform:translate(-50%,-50%) scale(1)}

/* Credentials inside the animation card, counting up each loop */
.xp-creds{list-style:none;margin:0;padding:10px 12px 12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.xp-cred{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:64px;padding:8px 4px;border-radius:12px;text-align:center;
  background:var(--xp-gold-soft);color:var(--xp-ink);font-size:12.5px;font-weight:700;line-height:1.2}
.xp-cred strong{font-size:clamp(18px,2.2vw,24px);line-height:1;font-weight:800;font-variant-numeric:tabular-nums}
.xp-cred .xp-icon{width:24px;height:24px;color:var(--xp-ink)}
.xp-cred.pop{animation:xp-cred .6s cubic-bezier(.2,1.5,.4,1)}
@keyframes xp-cred{0%{transform:translateY(8px) scale(.85);background:var(--xp-gold)}60%{background:var(--xp-gold)}100%{transform:none}}

/* Service pages: floor plan + card, info below */
.xp-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:20px;align-items:start}
.xp-plan{background:#fff;border:1px solid var(--xp-rule);border-radius:20px;padding:12px}
.xp-plan svg{display:block;width:100%;height:auto}
.xp-side{display:grid;gap:16px;min-width:0}
.xp-side .xp-copy{background:#fff;border:1px solid var(--xp-rule);border-radius:18px;padding:16px 18px}
.xp-pg{cursor:pointer;outline:none;-webkit-tap-highlight-color:transparent}
.xp-pr{fill:#f8fafc;stroke:#7992aa;stroke-width:2;transition:fill .25s,stroke .25s}
.xp-pf{fill:none;stroke:#3a6ea8;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round;pointer-events:none}
.xp-pl{fill:var(--xp-ink);font-size:16px;font-weight:800;pointer-events:none}
.xp-pg.visited .xp-pr{fill:var(--xp-visited);stroke:#9bb8dc}
.xp-pg[aria-pressed=true] .xp-pr{fill:#cfe0f7;stroke:var(--xp-select);stroke-width:5}
.xp-pg.next .xp-pr{animation:xp-planblink 1.2s ease-in-out infinite}
.xp-pg:focus-visible .xp-pr{stroke:var(--xp-select);stroke-width:6}
@keyframes xp-planblink{0%,100%{fill:#f8fafc;stroke:#7992aa;stroke-width:2}50%{fill:var(--xp-gold-soft);stroke:var(--xp-gold-deep);stroke-width:8}}

/* Map: no blue tap box on phones */
.quality-map a,.quality-map [role=button],.quality-map g,.durham-map a{-webkit-tap-highlight-color:transparent}
.quality-map a:focus:not(:focus-visible),.quality-map g:focus:not(:focus-visible),.quality-map [tabindex]:focus:not(:focus-visible){outline:none}

@media (max-width:899px){
  .xp-home,.xp-service{padding:10px 0 24px}
  .xp-h1{font-size:18px;margin-bottom:8px}
  .xp-tabs{grid-template-columns:1fr 1fr;gap:6px}
  .xp-tab{font-size:17px;min-height:48px;padding:8px 12px}
  .xp-tab small{display:none}
  .xp-panel{grid-template-columns:minmax(0,1fr);grid-template-areas:"rooms" "visual" "copy";padding:10px;gap:10px;border-radius:0 0 18px 18px}
  .xp-rooms{gap:6px}
  .xp-room{flex-direction:row;align-items:center;justify-content:flex-start;min-height:50px;padding:6px 8px;font-size:15px;border-width:2px;border-radius:12px}
  .xp-room .xp-icon{width:30px;height:30px;padding:5px}
  .xp-grid{grid-template-columns:minmax(0,1fr);gap:10px}
  .xp-plan{padding:6px;border-radius:14px}
  .xp-creds{gap:5px;padding:8px}
  .xp-cred{font-size:11px;min-height:56px}
  .xp-checks li{font-size:16px}
}
@media (prefers-reduced-motion:reduce){
  .xp-room.next,.xp-pg.next .xp-pr,.xp-checks li.doing::before,.xp-cred.pop{animation:none}
  .xp-room.next{border-color:var(--xp-gold)}
  .xp-pg.next .xp-pr{fill:var(--xp-gold-soft);stroke:var(--xp-gold-deep);stroke-width:6}
}

/* ---- Owner request 2026-11-11 (round 2) ---- */
.xp-tagline{margin:14px auto 0;max-width:none;text-align:center;color:var(--xp-muted);font-weight:700;font-size:16px}
.xp-tabs-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.xp-tabs-4 .xp-tab{font-size:17px;justify-content:center;text-align:center}
.xp-tabs-4 .xp-tab-offices[aria-selected=true],.xp-tabs-4 .xp-tab[aria-selected=true]{background:var(--xp-ink);color:#fff}
.xp-industries .xp-panel{border-radius:0 0 22px 22px}
.xp-rooms-3 .xp-room:last-child{grid-column:1/-1}
.xp-stage .tag{fill:var(--xp-line);font:800 13px Manrope,sans-serif;letter-spacing:.12em;opacity:.65}
.xp-stage .mass{fill:var(--xp-bg);stroke:none}
.xp-stage .smudge{fill:#8a7350;opacity:.8;transition:opacity .4s}
.xp-stage .base{fill:none;stroke:var(--xp-line);stroke-width:4;opacity:.5}
.xp-stage .tile{fill:var(--xp-box);stroke:var(--xp-line);stroke-width:1.5}
.xp-stage .rack{fill:none;stroke:var(--xp-line);stroke-width:2}
.xp-stage .plate{fill:#f4f8fd;stroke:#9fb4cf;stroke-width:2}
.xp-stage .dirt{fill:#8a7350;transition:opacity .4s}
.xp-stage .pile{stroke:#fff;stroke-width:1.5}
.xp-stage .c1{fill:#f08a5d}.xp-stage .c2{fill:#7cc4a4}.xp-stage .c3{fill:#c9a7ef}.xp-stage .c4{fill:#ffd23f}
.xp-stage .folded{stroke:#fff;stroke-width:1.5;animation:xp-pop .3s ease-out}
.xp-stage .cleared{opacity:0}

/* Quote band and footer share one navy; readable text; yellow footer quote button */
.conversion-ending,.site-footer{background:#12283f!important}
.conversion-page .conversion-ending p,.conversion-ending p{color:#fff!important;opacity:.92}
.footer-quote{margin-top:16px;background:var(--xp-gold)!important;color:var(--xp-ink)!important;border-color:var(--xp-gold)!important;min-height:46px}
.conversion-page h1,.conversion-page h2,.conversion-page h3{letter-spacing:-.01em}

/* Map: one region blinks until a region is chosen, so visitors know they can tap */
@keyframes xp-map-blink{0%,100%{fill-opacity:1;stroke-width:inherit}50%{fill:var(--xp-gold);stroke:var(--xp-gold-deep);stroke-width:4px}}
.xp-map-hint{animation:xp-map-blink 1.3s ease-in-out infinite}

@media (max-width:899px){
  .xp-tabs-4{grid-template-columns:1fr 1fr}
  .xp-tabs-4 .xp-tab{font-size:14px;min-height:46px;border-radius:12px}
  .xp-industries .xp-tabs{margin-bottom:6px}
  .xp-industries .xp-panel{border-radius:18px}
  .xp-tagline{font-size:14px}
}
.interactive-map .map-hint{font-weight:700;color:#12283f}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---- Round 3 ---- */
.xp-stage .smear{fill:#8a7350;opacity:.75}
.xp-stage .print{fill:#c9d6e6;opacity:.85}
.xp-stage .stain{fill:#a08a5a;opacity:.7}
.xp-stage .paper{fill:#fff;stroke:#c9d6e6;stroke-width:1.5}
.xp-stage .frame{fill:var(--xp-box);stroke:var(--xp-line);stroke-width:2}
.xp-stage .binT{fill:#4b5d73;stroke:var(--xp-line);stroke-width:2}
.xp-stage .binR{fill:#2f6fca;stroke:var(--xp-line);stroke-width:2}
.xp-stage .binC{fill:#4f9a6b;stroke:var(--xp-line);stroke-width:2}
.xp-stage .debris{fill:#6b5a3c;stroke:var(--xp-line);stroke-width:2}
.xp-stage .car{fill:var(--xp-box);stroke:var(--xp-line);stroke-width:2}
.xp-stage .carglass{fill:var(--xp-line);fill-opacity:.3;stroke:var(--xp-line);stroke-width:1.5}

/* Headings: same family/weight as the room buttons (Manrope 800), no squeezed spacing */
.conversion-page h1,.conversion-page h2,.conversion-page h3,h1,h2{font-family:Manrope,"Segoe UI",Arial,sans-serif!important;font-weight:800;letter-spacing:-.005em!important}
.conversion-page h2{font-size:clamp(24px,2.4vw,32px)}

/* Header call button: navy with white number; mobile call icon stands out */
.site-header #site-nav .menu-phone{background:#12283f!important;border-color:#12283f!important;color:#fff!important}
.site-header #site-nav .menu-phone *{color:#fff!important}
.site-header .header-phone{background:#12283f;color:#fff;border-radius:12px;min-width:48px;min-height:44px}
.site-header .header-phone .phone-icon{color:#fff}

/* Quote band: yellow quote button + white phone; footer has no second quote button */
.conversion-ending{padding:44px 0!important}
.conversion-ending h2{font-size:clamp(24px,2.4vw,30px)!important}
.conversion-ending .button{background:var(--xp-gold)!important;color:var(--xp-ink)!important;border-color:var(--xp-gold)!important}
.conversion-ending .conversion-call{color:#fff!important;font-weight:800;font-size:20px}
.footer-quote{display:none!important}
.site-footer{padding-top:8px!important;border-top:1px solid rgba(255,255,255,.12)}
.site-footer .footer-grid{gap:24px 48px}
.site-footer h2,.site-footer summary{font-size:17px!important}
.site-footer p{color:#dce6f2}

/* Common questions: white cards, no cream */
.faq-list details{background:#fff!important;border:1px solid var(--xp-rule)!important;border-radius:12px;padding-inline:16px}
.faq-list details>summary{background:transparent!important}
.quality-factors{background:#fff!important;border:1px solid var(--xp-rule)!important;box-shadow:none!important}
.quality-section{background:transparent}

/* Animated journey + schedule */
.xp-journey-section{padding:44px 0;background:#fff}
.xp-schedule-section{background:#f5f8fc}
.xp-journey-section h2{text-align:center;margin:0 auto 22px;max-width:none}
.xp-journey,.xp-schedule{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;position:relative}
.xp-schedule{grid-template-columns:repeat(3,minmax(0,1fr))}
.xp-journey::before{content:"";position:absolute;left:12%;right:12%;top:38px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--xp-gold) 0 var(--p,0%),#dbe4ee var(--p,0%));animation:xp-progress 8s linear infinite}
@property --p{syntax:'<percentage>';inherits:false;initial-value:0%}
@keyframes xp-progress{0%{--p:0%}75%,100%{--p:100%}}
.xp-journey li,.xp-schedule li{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:0 6px}
.xp-schedule li{background:#fff;border:1px solid var(--xp-rule);border-radius:18px;padding:20px 16px}
.xp-journey strong,.xp-schedule strong{font-size:18px;color:var(--xp-ink)}
.xp-journey li>span:last-child,.xp-schedule li>span:last-child{color:var(--xp-muted);font-size:16px;line-height:1.45}
.xp-j-icon{display:grid;place-items:center;width:80px;height:80px;border-radius:24px;background:var(--xp-gold-soft);border:3px solid #fff;box-shadow:0 0 0 2px var(--xp-rule)}
.xp-journey .xp-j-icon{animation:xp-node 8s ease-in-out infinite;animation-delay:calc(var(--i)*2s)}
@keyframes xp-node{0%,22%,100%{transform:none;background:var(--xp-gold-soft)}6%,14%{transform:translateY(-6px) scale(1.08);background:var(--xp-gold)}}
.xp-j-icon svg{width:46px;height:46px}
.xp-j-icon .j-doc{fill:#fff;stroke:var(--xp-ink);stroke-width:2.5}
.xp-j-icon .j-lines{fill:none;stroke:var(--xp-ink);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:60;animation:xp-draw 4s ease-in-out infinite}
.xp-j-icon .j-tick{fill:none;stroke:#2f6fca;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:40;animation:xp-draw 4s ease-in-out infinite}
@keyframes xp-draw{0%{stroke-dashoffset:60}40%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:60}}
.xp-j-icon .j-dot{fill:#dbe4ee;animation:xp-dot 4s ease-in-out infinite}
.xp-j-icon .d2{animation-delay:.5s}.xp-j-icon .d3{animation-delay:1s}.xp-j-icon .d4{animation-delay:1.5s}
@keyframes xp-dot{0%,15%{fill:#dbe4ee}30%,85%{fill:#2f6fca}100%{fill:#dbe4ee}}
.xp-j-icon .j-star{fill:var(--xp-ink);transform-origin:24px 20px;animation:xp-twinkle 2.4s ease-in-out infinite}
.xp-j-icon .s2{transform-origin:38px 36px;animation-delay:.8s}
@keyframes xp-twinkle{0%,100%{transform:scale(.8);opacity:.7}50%{transform:scale(1.1);opacity:1}}
.xp-j-icon .j-hand,.xp-j-icon .j-hand2{stroke:var(--xp-ink);stroke-width:3;stroke-linecap:round;transform-origin:24px 24px}
.xp-j-icon .j-hand{animation:xp-spin 4s linear infinite}.xp-j-icon .j-hand2{animation:xp-spin 24s linear infinite}
@keyframes xp-spin{to{transform:rotate(360deg)}}

/* Region and city pages */
.xp-local-h1{font-size:clamp(20px,2.2vw,26px)!important;margin-bottom:12px}
.xp-places{padding:36px 0}
.xp-place-list{list-style:none;padding:0;margin:0 0 14px;display:flex;flex-wrap:wrap;gap:8px}
.xp-place-list li{padding:8px 14px;border-radius:999px;background:#fff;border:1px solid var(--xp-rule);font-weight:700;color:var(--xp-ink)}

/* Quote form: red asterisk for required */
.req{color:#d6342f;font-weight:800;margin-left:2px}

@media (max-width:899px){
  .xp-journey,.xp-schedule{grid-template-columns:1fr 1fr;gap:20px 12px}
  .xp-journey::before{display:none}
  .xp-schedule{grid-template-columns:1fr}
  .xp-schedule li{flex-direction:row;text-align:left;align-items:center;padding:14px}
  .xp-schedule li strong{display:block}
  .xp-j-icon{width:64px;height:64px;border-radius:18px;flex:none}
  .xp-j-icon svg{width:38px;height:38px}
  .xp-journey-section{padding:32px 0}
  .conversion-ending .conversion-call{font-size:18px}
  .site-header .header-phone{margin-left:auto}
}
@media (prefers-reduced-motion:reduce){.xp-journey::before,.xp-j-icon,.xp-j-icon *{animation:none!important}}
.conversion-page .xp-title,.xp-title{font-size:21px!important}
.conversion-page main>.section,.conversion-page main>section.quality-section,.conversion-page .faq-section{background:#f5f8fc!important}
.conversion-page main>section.quality-section:nth-of-type(even){background:#fff!important}
#quote-form button[type=submit],.quote-band button[type=submit]{background:#ffd23f!important;color:#12283f!important;border-color:#ffd23f!important}
.conversion-page main h1:not(.xp-h1):not(.sr-only){font-size:clamp(28px,3.4vw,44px)}

/* ---- Round 4 ---- */
/* Tabs keep their own colour when not selected (dimmed), so Commercial always reads navy */
.xp-tab-commercial{background:var(--xp-ink)!important;color:#fff!important}
.xp-tab-residential{background:var(--xp-res)!important;color:#fff!important}
.xp-tab-commercial[aria-selected=false],.xp-tab-residential[aria-selected=false]{opacity:.5}
.xp-tab-commercial .xp-icon,.xp-tab-residential .xp-icon{color:var(--xp-gold)}
.xp-deep{background:var(--xp-gold-soft);border:1.5px solid var(--xp-gold-deep)}

/* Fixed positions on desktop: rooms + button on top-left, checklist below never moves the button */
.xp-pick{grid-area:rooms;display:grid;gap:12px;align-content:start}
.xp-panel>.xp-pick{grid-area:rooms}
.xp-pick .xp-more{margin-top:0;justify-self:start}
@media (min-width:900px){
  .xp-industries .xp-rooms{grid-auto-rows:96px;min-height:316px;align-content:start}
  .xp-industries .xp-room{min-height:0}
  .xp-rooms-5 .xp-room:last-child{grid-column:1/-1}
}
.xp-rooms-5 .xp-room:last-child{grid-column:1/-1}

/* Journey: numbered steps on a moving dotted wave */
.xp-journey-wrap{position:relative}
.xp-wave{position:absolute;left:0;right:0;top:12px;width:100%;height:60px;pointer-events:none}
.xp-wave-base{fill:none;stroke:#cfdbe8;stroke-width:4;stroke-dasharray:2 12;stroke-linecap:round;vector-effect:non-scaling-stroke}
.xp-wave-run{fill:none;stroke:var(--xp-gold-deep);stroke-width:5;stroke-dasharray:2 12;stroke-linecap:round;vector-effect:non-scaling-stroke;animation:xp-wave-flow 1.2s linear infinite}
@keyframes xp-wave-flow{to{stroke-dashoffset:-28}}
.xp-journey::before{display:none!important}
.xp-journey{position:relative}
.xp-j-icon{position:relative}
.xp-j-num{position:absolute;top:-10px;right:-10px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--xp-ink);color:#fff;font-size:14px;font-weight:800}

/* Landing: workplaces strip */
.xp-strip{padding:36px 0;background:#f5f8fc}
.xp-strip h2{text-align:center;margin:0 auto 16px}
.xp-strip-list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.xp-strip-list a{display:flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#fff;border:1px solid var(--xp-rule);color:var(--xp-ink);font-weight:800;text-decoration:none}
.xp-strip-list svg{color:#2f6fca}

/* Closing call to action: bright card, separate from the navy footer */
.conversion-ending{display:none!important}
.xp-cta{padding:36px 0 44px;background:#f5f8fc}
.xp-cta-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;padding:26px 30px;border-radius:24px;background:var(--xp-gold);color:var(--xp-ink);box-shadow:0 16px 36px rgba(224,168,0,.25)}
.xp-cta-card h2{margin:0;color:var(--xp-ink);font-size:clamp(22px,2.4vw,30px)!important}
.xp-cta-card p{margin:6px 0 0;color:var(--xp-ink);max-width:52ch;font-weight:600}
.xp-cta-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch;min-width:230px}
.xp-cta-actions .button{background:var(--xp-ink)!important;color:#fff!important;border-color:var(--xp-ink)!important}
.xp-cta-call{display:flex;justify-content:center;align-items:center;min-height:48px;border-radius:12px;border:2px solid var(--xp-ink);color:var(--xp-ink);font-weight:800;text-decoration:none;background:rgba(255,255,255,.35)}
.xp-cta-art svg{width:84px;height:84px}
.xp-cta-art .cta-bucket{fill:#fff;stroke:var(--xp-ink);stroke-width:3}
.xp-cta-art .cta-handle{fill:none;stroke:var(--xp-ink);stroke-width:3;stroke-linecap:round}
.xp-cta-art .cta-star{fill:var(--xp-ink);transform-origin:46px 15px;animation:xp-twinkle 2.2s ease-in-out infinite}
.xp-cta-art .s2{transform-origin:14px 16px;animation-delay:.7s}
.site-footer{border-top:0!important}

/* Footer on phones: even rows */
@media (max-width:899px){
  .site-footer .footer-grid{gap:0!important}
  .site-footer .footer-grid>div:first-child{margin-bottom:12px}
  .site-footer .footer-group{margin:0!important;padding:0!important;border-top:1px solid rgba(255,255,255,.15)!important;border-bottom:0!important}
  .site-footer .footer-group:last-of-type{border-bottom:1px solid rgba(255,255,255,.15)!important}
  .site-footer .footer-group>summary{min-height:52px!important;padding:0 4px!important;margin:0!important;display:flex;align-items:center}
  .xp-cta-card{grid-template-columns:1fr;text-align:center;justify-items:center;padding:22px 18px;gap:12px}
  .xp-cta-actions{width:100%;min-width:0}
  .xp-cta-art svg{width:64px;height:64px}
  .xp-wave{display:none}
}

/* Areas blurb */
.xp-areas-blurb{max-width:60ch;margin:6px 0 20px;color:var(--xp-muted);font-size:18px;font-weight:600}

/* About story animation */
.xp-about{padding:28px 0 36px;background:#f5f8fc}
.xp-about-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:28px;align-items:center}
.xp-about h1{margin:0 0 10px}
.xp-about p{color:var(--xp-muted);font-size:18px;font-weight:600}
.xp-about-art{display:block;width:100%;height:auto;border-radius:24px;box-shadow:0 16px 36px rgba(18,40,63,.15)}
.ab-sky{fill:#dfeafa}
.ab-city rect{fill:#c3d5ee}
.ab-bldg{fill:#24426c}.ab-roof{fill:#12283f}
.ab-win rect{fill:#7a8aa0;animation:ab-win 12s ease-in-out infinite;animation-delay:calc(4.2s + var(--d) * .25s)}
.ab-dust{stroke:#5c6b80;stroke-width:3;stroke-linecap:round;animation:ab-dust 12s ease-in-out infinite;animation-delay:calc(4.2s + var(--d) * .25s)}
.ab-shine{stroke:#fff;stroke-width:3;stroke-linecap:round;opacity:0;animation:ab-shine 12s ease-in-out infinite;animation-delay:calc(4.2s + var(--d) * .25s)}
@keyframes ab-win{0%{fill:#7a8aa0}4%,62%{fill:#ffe9a3}70%,100%{fill:#7a8aa0}}
@keyframes ab-dust{0%{opacity:1}3%,62%{opacity:0}70%,100%{opacity:1}}
@keyframes ab-shine{0%{opacity:0}3%{opacity:1}8%,62%{opacity:.6}70%,100%{opacity:0}}
.ab-door{fill:#12283f}.ab-knob{fill:#ffd23f}
.ab-road{fill:#4b5d73}.ab-lane{stroke:#fff;stroke-width:4;stroke-dasharray:24 18}
.ab-van{animation:ab-van 12s cubic-bezier(.3,.1,.2,1) infinite}
@keyframes ab-van{0%{transform:translateX(-180px)}16%,80%{transform:translateX(250px)}96%,100%{transform:translateX(960px)}}
.ab-van-body{fill:#ffd23f}.ab-van-cab{fill:#ffd23f;stroke:#12283f;stroke-width:3}.ab-van-stripe{fill:#12283f}.ab-van-text{fill:#fff;font:800 11px Manrope,sans-serif;letter-spacing:.08em}.ab-wheel{fill:#12283f;stroke:#c3d5ee;stroke-width:4}
.ab-cleaner{opacity:0;animation:ab-walk 12s ease-in-out infinite}
@keyframes ab-walk{0%,17%{opacity:0;transform:translate(400px,360px)}19%{opacity:1;transform:translate(400px,360px)}32%{opacity:1;transform:translate(465px,360px)}35%,100%{opacity:0;transform:translate(465px,360px)}}
.ab-head{fill:#f2c6a0}.ab-body{fill:#2f6fca}.ab-legs{stroke:#12283f;stroke-width:4;stroke-linecap:round}.ab-bucket{fill:#ffd23f;stroke:#12283f;stroke-width:2}
.ab-stars path{fill:#ffd23f;transform-box:fill-box;transform-origin:center;animation:ab-star 12s ease-in-out infinite}
@keyframes ab-star{0%,55%{transform:scale(0)}62%{transform:scale(1.3)}70%,100%{transform:scale(0)}}
@media (max-width:899px){.xp-about-grid{grid-template-columns:1fr}.xp-about{padding:16px 0 24px}}
@media (prefers-reduced-motion:reduce){.xp-about-art *{animation:none!important}.ab-cleaner{opacity:0}.ab-van{transform:translateX(250px)}.ab-win rect{fill:#ffe9a3}.ab-dust{opacity:0}}
.xp-room span{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media (max-width:899px){.xp-room{font-size:14.5px}}

/* ---- Round 5 ---- */
:root{--xp-res:#3f86d4}
.xp-card.xp-res{--xp-bg:#2b5f9e;--xp-room:#3570b0;--xp-furn:#4583c4;--xp-line:#e1eeff;--xp-rug:#3a77ba;--xp-box:#5091d2}
.xp-panel-residential{border-color:var(--xp-res)!important}
.xp-panel-residential .xp-room[aria-pressed=true]{background:var(--xp-res)!important;border-color:var(--xp-res)!important}

/* Button below the checklist; the list area reserves room for the longest list so the button never jumps */
.xp-pick{display:contents}
.xp-panel>.xp-rooms{grid-area:rooms}
@media (min-width:900px){
  .xp-panel .xp-list-box{min-height:calc(var(--rows,4) * 34px)}
  .xp-industries .xp-rooms{grid-auto-rows:96px;min-height:204px}
}
.xp-copy .xp-more{margin-top:14px}

/* Tags: one tidy pill on the right, never broken across lines */
.xp-checks li{align-items:flex-start}
.xp-checks .xp-label{flex:1 1 auto;min-width:0}
.xp-tag{flex:none;display:inline-flex;align-items:center;margin-left:8px;margin-top:2px;padding:2px 9px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;line-height:1.5}
.xp-tag-extra{background:var(--xp-gold);color:var(--xp-ink)}
.xp-tag-deep{background:var(--xp-gold-soft);color:var(--xp-ink);box-shadow:inset 0 0 0 1.5px var(--xp-gold-deep)}
.xp-tag-move{background:#fde9c8;color:#7a4a00;box-shadow:inset 0 0 0 1.5px #e7a33b}
.xp-tag-airbnb{background:#ffe1e1;color:#a3262a;box-shadow:inset 0 0 0 1.5px #ff7b7f}
.xp-extra{display:none}

/* Journey wave: room above and below so the dots never get clipped */
.xp-wave{top:-8px;height:96px;overflow:visible}

/* Common questions: the open one is light blue */
.faq-list details[open]{background:#eaf2fd!important;border-color:#b9d0f0!important}

/* Closing card icon: two people talking */
.xp-cta-art svg{width:96px;height:78px}
.xp-cta-art .cta-person{fill:#fff;stroke:var(--xp-ink);stroke-width:3}
.xp-cta-art .cta-bubble path:first-child{fill:#fff;stroke:var(--xp-ink);stroke-width:2.5}
.xp-cta-art .cta-bubble circle{fill:var(--xp-ink)}
.xp-cta-art .cta-q{fill:none;stroke:var(--xp-ink);stroke-width:2.5;stroke-linecap:round}
.xp-cta-art .b1{animation:xp-bubble 3s ease-in-out infinite;transform-origin:18px 26px}
.xp-cta-art .b2{animation:xp-bubble 3s ease-in-out infinite 1.5s;transform-origin:64px 26px}
@keyframes xp-bubble{0%,100%{transform:scale(.85);opacity:.6}25%,60%{transform:scale(1);opacity:1}}

/* Footer: rounded, soft, same font as the rest of the site */
.site-footer{background:#12283f!important;padding:40px 0 24px!important;font-family:Manrope,"Segoe UI",Arial,sans-serif}
.site-footer *{font-family:inherit!important}
.site-footer .footer-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:20px!important;align-items:start}
.site-footer .footer-grid>div:first-child,.site-footer .footer-group{background:rgba(255,255,255,.06);border:0!important;border-radius:22px;padding:20px 22px!important;margin:0!important}
.site-footer .footer-grid>div:first-child{display:flex;flex-direction:column;gap:10px}
.site-footer .footer-grid>div:first-child p{margin:0;color:#c9d8ea}
.site-footer .footer-grid>div:first-child a[href^="tel"]{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:10px 16px;border-radius:999px;background:var(--xp-gold);color:var(--xp-ink)!important;font-weight:800;font-size:18px;text-decoration:none}
.site-footer .footer-grid>div:first-child a[href^="tel"] svg{color:var(--xp-ink)}
.site-footer .footer-grid>div:first-child a[href^="mailto"]{color:#fff;font-weight:700}
.site-footer summary{font-size:16px!important;font-weight:800;color:#fff;list-style:none;min-height:0!important;padding:0!important;margin-bottom:10px}
.site-footer summary::-webkit-details-marker{display:none}
.site-footer .footer-group>div{display:flex;flex-direction:column;gap:2px}
.site-footer .footer-group a{display:block;padding:6px 12px;margin:0 -12px;border-radius:12px;color:#dfe9f5;text-decoration:none;font-weight:600}
.site-footer .footer-group a[aria-current]{background:rgba(255,210,63,.16);color:#fff}
.site-footer .footer-bottom{border:0!important;margin-top:18px!important;padding:0!important;text-align:center;color:#9fb3cc;font-size:14px}
.site-footer .footer-bottom::before,.site-footer hr{display:none}
@media (max-width:899px){
  .site-footer{padding:24px 0 96px!important}
  .site-footer .footer-grid{grid-template-columns:1fr;gap:12px!important}
  .site-footer .footer-grid>div:first-child{align-items:center;text-align:center}
  .site-footer .footer-grid>div:first-child a[href^="tel"]{align-self:center}
  .site-footer .footer-group{padding:0!important;border:0!important}
  .site-footer .footer-group>summary{display:flex!important;justify-content:space-between;align-items:center;min-height:54px!important;padding:0 20px!important;margin:0!important}
  .site-footer .footer-group>div{padding:0 20px 14px}
  .site-footer .footer-group:last-of-type{border-bottom:0!important}
  .xp-strip{display:none}
}

/* Areas page */
.xp-areas-blurb{font-size:16px!important;margin:4px 0 16px!important}

/* Area pages */
.xp-area .button{margin-top:6px;background:var(--xp-gold);color:var(--xp-ink);border-color:var(--xp-gold)}
.xp-places-card{background:#fff;border:1px solid var(--xp-rule);border-radius:22px;padding:24px 26px}
.xp-places-card h2{margin:0 0 14px!important;font-size:22px!important}
.xp-places-card .xp-place-list{margin-bottom:24px}
.xp-place-list{gap:10px!important}
.xp-svc-list a{color:var(--xp-ink);text-decoration:none}
.xp-soft-btn{background:var(--xp-gold-soft)!important;color:var(--xp-ink)!important;border:2px solid var(--xp-gold)!important;min-height:46px}
.xp-sub{margin:-6px 0 14px;color:var(--xp-muted);font-weight:700}

/* Quote page art */
.xp-quote-art{display:flex;align-items:center;gap:14px;margin-top:22px;padding:16px 18px;border-radius:20px;background:var(--xp-gold);color:var(--xp-ink);max-width:420px}
.xp-quote-art svg{width:150px;flex:none}
.xp-quote-art p{margin:0;color:var(--xp-ink)!important;font-weight:600}
.qa-board{fill:#fff;stroke:var(--xp-ink);stroke-width:3}.qa-clip{fill:var(--xp-ink)}
.qa-line{fill:#dbe4ee}.qa-box{fill:#fff;stroke:var(--xp-ink);stroke-width:2.5}
.qa-tick{fill:none;stroke:#2f6fca;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:20;stroke-dashoffset:20;animation:qa-tick 4.5s ease-in-out infinite}
.qa-tick.t1{animation-delay:.6s}.qa-tick.t2{animation-delay:1.2s}
@keyframes qa-tick{0%,5%{stroke-dashoffset:20}20%,80%{stroke-dashoffset:0}95%,100%{stroke-dashoffset:20}}
.qa-star{fill:var(--xp-ink);transform-box:fill-box;transform-origin:center;animation:xp-twinkle 2.2s ease-in-out infinite}.qa-star.s2{animation-delay:.8s}

/* Airbnb section */
.xp-airbnb{padding:40px 0;background:#fff}
.xp-airbnb-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:24px;align-items:start}
.xp-airbnb-copy h2{margin:10px 0 8px}
.xp-airbnb-copy p{color:var(--xp-muted)}
.xp-airbnb-copy .xp-copy{margin-top:12px}
@media (max-width:899px){.xp-airbnb-grid{grid-template-columns:1fr}.xp-airbnb{padding:28px 0}.xp-quote-art{max-width:none}.xp-quote-art svg{width:110px}}
.xp-stage .suitcase{fill:#ff8a8e;stroke:var(--xp-line);stroke-width:2}
/* Area skylines */
.sk-far,.sk-far rect,.sk-house{fill:#c3d5ee}
.sk-cn{fill:#b4c9e6;stroke:#9fb6d6;stroke-width:2}
.sk-curvy ellipse{fill:#b4c9e6;stroke:#8fa9cc;stroke-width:1.5}
.sk-water{fill:#b9d8f5}
.sk-light path:first-child,.sk-light rect{fill:#fff;stroke:#9fb6d6;stroke-width:2}
.sk-beam{fill:#ffd23f;opacity:.35;transform-origin:133px 175px;animation:sk-beam 4s ease-in-out infinite}
@keyframes sk-beam{0%,100%{opacity:.1}50%{opacity:.45}}
.sk-tree circle{fill:#a6d1ad}
/* Quote form: contact options on their own tidy row */
.phone-contact-row{grid-template-columns:1fr!important}
.reply-choices{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:520px){.reply-choices{grid-template-columns:1fr 1fr}}
.section-action.btn-primary{background:var(--xp-gold)!important;color:var(--xp-ink)!important;border-color:var(--xp-gold)!important}

/* ---- Round 6 ---- */
.site-header .nav-quote,.conversion-page .site-header .nav-quote{background:#ffd23f!important;color:#12283f!important;border-color:#ffd23f!important}
.mobile-contact .button{background:#ffd23f!important;color:#12283f!important;border-color:#ffd23f!important}
.mobile-contact a[href^="tel"]{border:2px solid #12283f;border-radius:12px;background:#fff;color:#12283f!important;font-weight:800}
.sk-curvy rect{fill:#e9f1fb;stroke:#8fa9cc;stroke-width:1.6}
.xp-place-list a{color:var(--xp-ink);text-decoration:none}

/* Quote page: no underlines, phone in yellow, email bold, soft home-cleaning button under the form */
.dedicated-quote .quote-phone a{color:#ffd23f!important;text-decoration:none!important;font-weight:800}
.dedicated-quote .quote-phone .phone-icon{color:#ffd23f}
.dedicated-quote .quote-email a{color:#fff!important;text-decoration:none!important;font-weight:800}
.xp-home-switch{margin:18px 0 0}
.xp-home-switch a{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:999px;background:rgba(255,255,255,.08);color:#dfe9f5!important;text-decoration:none!important;font-weight:700}
.xp-quote-lead{color:#dce6f2!important}
@media (max-width:899px){
  .dedicated-quote .quote-heading h1{font-size:30px!important;line-height:1.15!important;max-width:none}
  .dedicated-quote .quote-heading h1 br{display:none}
  .xp-quote-lead{font-size:16px;margin-top:6px}
  .dedicated-quote .quote-details{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
}

/* Tighter spacing: explorer → closing card, area card → questions */
.xp-industries{padding-bottom:8px!important}
.xp-tagline{margin-top:12px!important}
.xp-industries+.xp-cta,.xp-home+.xp-cta{padding-top:16px}
.xp-places{padding:24px 0 8px!important}
.xp-places+.faq-section,.xp-places+section{padding-top:24px!important}
@media (max-width:899px){
  .xp-places-card{padding:18px}
  .xp-places-card .xp-place-list{margin-bottom:16px}
  .xp-cta{padding:12px 0 28px}
}

/* Phone menu: aligned items, equal Call and Quote buttons */
@media (max-width:899px){
  #site-nav .nav-dropdown>.nav-trigger,#site-nav>a.directory-link{padding-inline:12px!important;margin:0!important;justify-content:flex-start;text-align:left;width:100%}
  #site-nav>.menu-phone,#site-nav>.nav-quote{min-height:52px!important;height:52px;width:100%;margin-top:8px!important;border-radius:12px!important;box-sizing:border-box}
}
.sk-curvy .tw-body{fill:#b4c9e6;stroke:none}
.sk-curvy rect:not(.tw-body){fill:#f4f8fd;stroke:#7f9cc4;stroke-width:1.4}

/* ---- Round 7 ---- */
.nav-icon{display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:12px;background:var(--xp-gold-soft);color:var(--xp-ink)}
.xp-sub-chips{list-style:none;margin:-4px 0 14px;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.xp-sub-chips li{padding:5px 12px;border-radius:999px;background:#e4eefa;color:var(--xp-ink);font-weight:700;font-size:14px}
@media (max-width:899px){.xp-sub-chips{margin:-2px 0 10px}.xp-sub-chips li{font-size:12.5px;padding:4px 10px}}

/* Phone and email in the form bands: no underlines, phone in yellow, email bold */
.quote-band .quote-phone a{color:#ffd23f!important;text-decoration:none!important;font-weight:800}
.quote-band .quote-phone .phone-icon{color:#ffd23f}
.quote-band .quote-email a{color:#fff!important;text-decoration:none!important;font-weight:800}
.quote-band .fineprint,.contact-form-card .fineprint,.optional-details .fineprint{font-size:13px!important;font-style:italic;opacity:.85;font-weight:500!important}
.xp-home-switch{margin:10px 0 0!important}
.xp-home-switch a{min-height:34px!important;padding:0 12px!important;font-size:14px}
@media (max-width:899px){
  .quote-band .quote-details{display:flex!important;flex-direction:column;align-items:flex-start;gap:4px!important}
  .quote-band .quote-phone,.quote-band .quote-email{margin:0!important}
  .quote-band .quote-phone a{padding:0!important;gap:6px}
}

/* About message art: a paper plane flies to a phone */
.xp-msg-art{margin-top:18px;max-width:300px}
.xp-msg-art svg{width:100%;height:auto}
.mp-trail{fill:none;stroke:#ffd23f;stroke-width:3;stroke-dasharray:4 10;stroke-linecap:round;animation:xp-wave-flow 1.2s linear infinite}
.mp-plane path{fill:#fff}
.mp-plane{offset-path:path('M20 100 C80 100 90 40 150 50 S220 30 240 20');offset-rotate:auto;animation:mp-fly 4s ease-in-out infinite}
@keyframes mp-fly{0%{offset-distance:0%;opacity:0}10%{opacity:1}70%{offset-distance:85%;opacity:1}80%,100%{offset-distance:85%;opacity:0}}
.mp-phone{fill:#24426c;stroke:#7fa8f5;stroke-width:2}.mp-screen{fill:#e4eefa}
.mp-dot{fill:#12283f;opacity:.25;animation:xp-dot2 4s ease-in-out infinite}.mp-dot.d2{animation-delay:.2s}.mp-dot.d3{animation-delay:.4s}
@keyframes xp-dot2{0%,70%{opacity:.25}78%,95%{opacity:1}100%{opacity:.25}}

/* Careers */
.cr-head{fill:#f2c6a0}.cr-body.b1{fill:#2f6fca}.cr-body.b2{fill:#12283f}
.cr-person{animation:cr-wave 2.4s ease-in-out infinite;animation-delay:calc(var(--d) * .3s);transform-box:fill-box;transform-origin:50% 100%}
@keyframes cr-wave{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
.cr-sign rect{fill:#ffd23f;stroke:#12283f;stroke-width:3}.cr-sign text{fill:#12283f;font:800 28px Manrope,sans-serif;letter-spacing:.06em}
.cr-sign{animation:xp-twinkle 3s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
.xp-careers{padding:36px 0;background:#f5f8fc}
.xp-careers-card{background:#fff;border:1px solid var(--xp-rule);border-radius:22px;padding:24px 26px;max-width:860px;margin:0 auto}
.xp-careers-card h2{margin:0 0 14px}
.xp-careers-form{display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
.xp-careers-form label{display:grid;gap:6px;font-weight:700;color:var(--xp-ink)}
.xp-careers-form input,.xp-careers-form select,.xp-careers-form textarea{font:inherit;padding:12px 14px;border:1.5px solid #c9d6e6;border-radius:12px;background:#f8fafc}
.xp-careers-form .xp-wide{grid-column:1/-1}
.xp-careers-form button{justify-self:start;background:#ffd23f!important;color:#12283f!important;border-color:#ffd23f!important}
.xp-form-note{grid-column:1/-1;margin:0;font-weight:700;color:#12283f}
@media (max-width:899px){.xp-careers-form{grid-template-columns:1fr}.xp-careers-form button{justify-self:stretch}}
.xp-careers-form label{display:block!important}
.xp-careers-form label input,.xp-careers-form label select,.xp-careers-form label textarea{display:block;width:100%;margin-top:6px;box-sizing:border-box}

/* ---- Round 8 ---- */
.cr-hair{fill:#5a3a22}.cr-fringe{fill:none;stroke:#5a3a22;stroke-width:5;stroke-linecap:round}
.cr-dress.b1{fill:#2f6fca}.cr-dress.b2{fill:#12283f}
.cr-limb{fill:none;stroke:#f2c6a0;stroke-width:6;stroke-linecap:round}
.cr-arm{animation:cr-hand 1.2s ease-in-out infinite;transform-box:view-box}
@keyframes cr-hand{0%,100%{transform:rotate(-10deg)}50%{transform:rotate(18deg)}}
.cr-person{animation:none!important}
.xp-careers-lead{margin:-6px 0 16px;color:var(--xp-muted);font-weight:600}
.xp-about h1{text-indent:-.05em}
@media (min-width:900px){.xp-checks .xp-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
@media (max-width:899px){.xp-quote-art{display:none!important}}
.nav-service-grid a span.nav-icon,.nav-home-cleaning a span.nav-icon{grid-column:1!important;grid-row:1;color:var(--xp-ink)!important;font-weight:400}
.nav-service-grid .nav-service,.nav-home-cleaning .directory-link{grid-template-columns:40px minmax(0,1fr)!important;align-items:center}

/* Small phones (≤380px): nothing wraps mid-word or overflows */
@media (max-width:380px){
  .brand-wordmark{font-size:18px!important;white-space:nowrap}
  .site-header .brand img{width:44px;height:auto}
  .menu-toggle{padding-inline:10px!important;white-space:nowrap}
  .xp-tab{font-size:15px!important;padding:8px!important;gap:6px!important}
  .xp-tab .xp-icon{width:20px;height:20px}
  .xp-tabs-4 .xp-tab{font-size:13px!important}
  .xp-panel{padding:8px!important}
  .xp-room{font-size:13px!important;padding:6px!important;gap:6px!important}
  .xp-room .xp-icon{width:26px!important;height:26px!important;padding:4px!important}
  .xp-cred span{font-size:10px}
  .xp-cred strong{font-size:16px}
  .xp-checks li{font-size:15px}
  .mobile-contact a{font-size:14px!important}
}

/* ---- Round 9 ---- */
.cr-person{animation:cr-wave 2.4s ease-in-out infinite!important;animation-delay:calc(var(--d) * .3s)!important}
.cr-body.b1{fill:#2f6fca}.cr-body.b2{fill:#12283f}
/* Checklist groups instead of per-line pills */
.xp-checks li.xp-group{display:block;margin:8px 0 0;padding:3px 10px;border-radius:999px;align-self:flex-start;justify-self:start;width:max-content;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;line-height:1.5;color:var(--xp-ink);opacity:1}
.xp-checks li.xp-group::before{display:none}
.xp-group-deep{background:var(--xp-gold-soft);box-shadow:inset 0 0 0 1.5px var(--xp-gold-deep)}
.xp-group-move{background:#fde9c8;box-shadow:inset 0 0 0 1.5px #e7a33b;color:#7a4a00!important}
.xp-group-extra{background:var(--xp-gold)}
.xp-group-airbnb{background:#ffe1e1;box-shadow:inset 0 0 0 1.5px #ff7b7f;color:#a3262a!important}
/* Airbnb: light section, checklist in a white card; on phones the animation comes first */
.xp-airbnb{background:#f5f8fc!important}
.xp-airbnb .xp-copy{background:#fff;border:1px solid var(--xp-rule);border-radius:18px;padding:16px 18px}
@media (max-width:899px){
  .xp-airbnb-grid{display:flex!important;flex-direction:column;gap:12px}
  .xp-airbnb-copy{display:contents}
  .xp-airbnb-copy .xp-tag{order:0;align-self:flex-start}
  .xp-airbnb-copy h2{order:1;margin:0!important}
  .xp-airbnb-copy>p{display:none}
  .xp-airbnb .xp-visual{order:2}
  .xp-airbnb .xp-copy{order:3;margin:0!important}
}
@media (max-width:899px){.xp-airbnb .xp-copy,.xp-airbnb .xp-visual{align-self:stretch;width:100%;box-sizing:border-box}}

/* ---- Round 10: inline short tags; legend + letter badges on phones; navy quick-contact bar ---- */
.xp-checks li.xp-group:not(.xp-legend){display:none}
.xp-checks li.xp-legend{display:none}
.xp-checks .xp-tag{padding:1px 8px!important;font-size:10.5px!important;margin-left:auto!important;margin-top:3px!important}
.xp-checks .xp-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.xp-checks li{gap:10px}
.xp-tag b{display:none}
.xp-tag i{font-style:normal}
@media (max-width:360px){
  .xp-checks li.xp-legend{display:flex;flex-wrap:wrap;align-items:center;gap:4px 6px;margin:0 0 4px;font-size:12px;color:var(--xp-muted)}
  .xp-checks li.xp-legend::before{display:none}
  .xp-checks li.xp-legend em{font-style:normal;font-weight:700;margin-right:8px}
  .xp-checks .xp-tag{width:20px;height:20px;padding:0!important;justify-content:center;border-radius:50%!important;margin-top:1px!important}
  .xp-checks .xp-tag b{display:block;font-size:11px}
  .xp-checks .xp-tag i{display:none}
  .xp-legend .xp-tag{margin:0!important}
}
.mobile-contact{background:#12283f!important;border-top:0!important;box-shadow:0 -6px 20px rgba(18,40,63,.25)}
.mobile-contact a[href^="tel"]{background:transparent!important;border:2px solid #fff!important;color:#fff!important}
.xp-side{grid-template-columns:minmax(0,1fr)}
.xp-copy,.xp-checks,.xp-checks li{min-width:0;max-width:100%}
@media (max-width:360px){.xp-checks li.xp-legend{font-size:11px}.xp-checks li.xp-legend em{margin-right:4px}}
.xp-checks{grid-template-columns:minmax(0,1fr)}
@media (max-width:360px){.xp-checks li{font-size:14px!important;gap:8px}.xp-checks li::before{width:20px!important;height:20px!important}}
@media (max-width:360px){.xp-checks li.xp-legend{font-size:10.5px!important;gap:3px 4px}}

/* Owner logo */
.site-header .brand-logo img{width:auto!important;height:52px!important;max-width:none;border-radius:0!important;object-fit:contain}
.site-footer .brand-logo img{width:auto!important;height:58px!important;max-width:100%;object-fit:contain}
.site-footer .brand-logo{padding:0!important;background:none!important}
@media (max-width:899px){.site-header .brand-logo img{height:42px!important}.site-footer .brand-logo img{height:52px!important}}
@media (max-width:380px){.site-header .brand-logo img{height:34px!important}}
.brand.brand-logo{width:auto!important;max-width:none!important;flex:none!important;min-width:0;display:inline-flex!important;align-items:center;gap:0!important}
.brand.brand-logo img{max-width:none!important;max-height:none!important}
.site-header .brand.brand-logo img{width:163px!important;height:52px!important}
.site-footer .brand.brand-logo img{width:173px!important;height:58px!important}
@media (max-width:899px){.site-header .brand.brand-logo img{width:132px!important;height:42px!important}}
@media (max-width:380px){.site-header .brand.brand-logo img{width:106px!important;height:34px!important}}

/* ---- Round 11 ---- */
.site-footer .footer-grid>div:first-child p{font-family:Manrope,"Segoe UI",Arial,sans-serif!important;font-weight:700!important;font-size:16px!important;letter-spacing:0!important;color:#dfe9f5!important}
@media (min-width:900px){
  .site-footer .footer-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important;align-items:stretch!important}
  .site-footer .footer-grid>*{height:100%;box-sizing:border-box}
}
.cr-person{animation-duration:1.3s!important}
.xp-journey-section h2{margin-bottom:44px!important}
@media (max-width:899px){.xp-journey-section h2{margin-bottom:32px!important}}
.site-footer .footer-group>div>*{display:block;padding:6px 12px;margin:0 -12px;border-radius:12px;font-weight:600;line-height:1.5}
.site-footer .footer-group [aria-current]{background:rgba(255,210,63,.16);color:#fff}
.site-footer .footer-group [aria-current]{background:rgba(255,255,255,.08)!important;margin:0!important;padding:6px 0!important;background:none!important;color:#ffd23f!important}
/* Workplaces strip: more room under the title; light-blue highlight on desktop hover (owner request) */
.xp-strip h2{margin-bottom:28px!important}
.xp-strip-list a{transition:background .2s,border-color .2s,transform .2s}
@media (hover:hover) and (pointer:fine){.xp-strip-list a:hover{background:#e4eefa;border-color:#9bbde8;transform:translateY(-2px)}}
.xp-strip-list a:focus-visible{background:#e4eefa}

/* ---- Round 12: home hero rebuilt mobile-first (owner request 2026-11-11) ----
   One immersive dark card: room picker on top, animation as the centrepiece, caption bar that spells out each step on phones.
   Commercial = deep navy, Residential = deep teal. Segmented Commercial/Residential switch with a sliding thumb. */
:root{--xp-res:#0f766e;--xp-res-deep:#0a4f4a;--xp-com-deep:#0f2240}
body:has(.xp-hero)::before{display:none}
.xp-hero{padding:16px 0 28px!important;background:linear-gradient(180deg,#eef3f9 0,#f5f8fc 260px)!important}

/* Segmented switch */
.xp-hero .xp-tabs{position:relative;display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;max-width:620px;margin:0 auto 14px;padding:5px;border-radius:18px;background:#dfe7f1;box-shadow:inset 0 1px 2px rgba(18,40,63,.12)}
.xp-hero .xp-tabs::before{content:"";position:absolute;top:5px;bottom:5px;left:5px;width:calc(50% - 5px);border-radius:14px;background:var(--xp-com-deep);box-shadow:0 6px 16px rgba(15,34,64,.35);transition:transform .38s cubic-bezier(.3,1.25,.5,1),background .38s}
.xp-hero .xp-tabs[data-active="1"]::before{transform:translateX(100%);background:var(--xp-res);box-shadow:0 6px 16px rgba(15,118,110,.35)}
.xp-hero .xp-tabs .xp-tab{position:relative;z-index:1;justify-content:center;gap:10px!important;min-height:56px;padding:8px 12px!important;border-radius:14px!important;background:transparent!important;color:#4a5f77!important;opacity:1!important;font-size:18px!important;font-weight:800;text-align:center;transition:color .3s}
.xp-hero .xp-tabs .xp-tab .xp-icon{width:24px;height:24px;color:currentColor!important;flex:none}
.xp-hero .xp-tabs .xp-tab small{display:none!important}
.xp-hero .xp-tabs .xp-tab[aria-selected=true]{color:#fff!important}
.xp-hero .xp-tabs .xp-tab[aria-selected=true] .xp-icon{color:var(--xp-gold)!important}
@media (hover:hover){.xp-hero .xp-tabs .xp-tab[aria-selected=false]:hover{color:var(--xp-ink)!important}}

/* The dark card */
.xp-hero .xp-panel{--xp-panel-glow:#21487f;--xp-accent:#9cc2ff;display:grid!important;grid-template-columns:minmax(0,1fr)!important;grid-template-areas:"rooms" "visual" "copy"!important;gap:10px!important;padding:10px!important;border:0!important;border-radius:22px!important;
  background:radial-gradient(120% 70% at 50% 0%,var(--xp-panel-glow) 0%,var(--xp-com-deep) 62%,#0a172c 100%)!important;box-shadow:0 22px 50px rgba(10,23,44,.32)!important;color:#fff}
.xp-hero .xp-panel-residential{--xp-panel-glow:#14817a;--xp-accent:#a6f0de;background:radial-gradient(120% 70% at 50% 0%,var(--xp-panel-glow) 0%,var(--xp-res-deep) 62%,#06302d 100%)!important;box-shadow:0 22px 50px rgba(6,48,45,.32)!important}
.xp-hero .xp-panel[hidden]{display:none!important}
.xp-hero .xp-panel.xp-enter{animation:xp-enter .45s cubic-bezier(.2,.9,.3,1)}
@keyframes xp-enter{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}

/* Room picker: 4 across, icon over label, gold when chosen with a notch pointing at the animation */
.xp-hero .xp-rooms{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px!important}
.xp-hero .xp-room{position:relative;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;min-height:72px!important;padding:9px 3px 8px!important;border-radius:14px!important;border:1.5px solid rgba(255,255,255,.14)!important;
  background:rgba(255,255,255,.06)!important;color:#fff!important;font-size:12.5px!important;font-weight:800!important;line-height:1.15!important;text-align:center!important;letter-spacing:-.005em;transition:background .25s,border-color .25s,transform .2s,color .25s}
.xp-hero .xp-room span{display:block;max-width:100%}
.xp-hero .xp-room .xp-icon{width:30px!important;height:30px!important;padding:5px!important;border-radius:10px!important;background:rgba(255,255,255,.12)!important;color:var(--xp-gold)!important;flex:none}
.xp-hero .xp-room.visited{background:rgba(255,255,255,.1)!important;border-color:rgba(255,255,255,.26)!important}
.xp-hero .xp-room[aria-pressed=true]{background:var(--xp-gold)!important;border-color:var(--xp-gold)!important;color:var(--xp-ink)!important;box-shadow:0 8px 22px rgba(255,210,63,.28)}
.xp-hero .xp-room[aria-pressed=true] .xp-icon{background:rgba(18,40,63,.1)!important;color:var(--xp-ink)!important}
.xp-hero .xp-room[aria-pressed=true]::after{content:"";position:absolute;left:50%;bottom:-7px;width:14px;height:14px;margin-left:-7px;background:var(--xp-gold);transform:rotate(45deg);border-radius:0 0 3px 0}
.xp-hero .xp-room:active{transform:scale(.97)}
.xp-hero .xp-room.next{animation:xp-blink-dark 1.3s ease-in-out infinite!important}
@keyframes xp-blink-dark{0%,100%{border-color:rgba(255,255,255,.14);box-shadow:none}50%{border-color:var(--xp-gold);box-shadow:0 0 0 3px rgba(255,210,63,.35)}}
@media (hover:hover) and (pointer:fine){.xp-hero .xp-room[aria-pressed=false]:hover{background:rgba(255,255,255,.14)!important;transform:translateY(-2px)}}

/* Animation card */
.xp-hero .xp-card{border-radius:16px!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08),0 10px 28px rgba(0,0,0,.25)!important;background:var(--xp-bg)!important}
.xp-hero .xp-card.xp-com{--xp-bg:#132c50;--xp-room:#183662;--xp-furn:#1f437a;--xp-line:#a3c6ff;--xp-rug:#1c3d6e;--xp-box:#2b5595}
.xp-card.xp-res{--xp-bg:#0f4744;--xp-room:#135552;--xp-furn:#1a6966;--xp-line:#a6f0de;--xp-rug:#16605c;--xp-box:#1f7d78}
.xp-hero .xp-card.xp-swap .xp-stage svg{animation:xp-swap .38s ease-out}
@keyframes xp-swap{from{opacity:.25;transform:scale(.985)}to{opacity:1;transform:none}}
.xp-hero .xp-stage .speck{transform-box:fill-box;transform-origin:center;transform:scale(1.35)}
.xp-hero .xp-stamp{font-size:clamp(15px,4.2vw,22px)!important;padding:10px 20px!important;box-shadow:0 10px 30px rgba(0,0,0,.35),0 0 0 6px rgba(255,210,63,.25)!important}

/* Caption bar: the current step, word by word, plus a progress track; ends on a quote link */
.xp-caption{display:grid;grid-template-columns:minmax(0,1fr);gap:7px;padding:10px 12px 12px;border-top:1px solid rgba(255,255,255,.08);background:rgba(0,0,0,.18);min-height:66px;box-sizing:border-box}
.xp-cap-live{display:flex;align-items:center;gap:9px;min-height:28px;min-width:0}
.xp-cap-live[hidden],.xp-cap-cta[hidden]{display:none!important}
.xp-cap-num{flex:none;display:grid;place-items:center;min-width:38px;height:24px;padding:0 6px;border-radius:999px;background:var(--xp-gold);color:var(--xp-ink);font-size:12.5px;font-weight:800;font-variant-numeric:tabular-nums;box-sizing:border-box}
.xp-cap-text{min-width:0;color:#fff;font-size:16px;font-weight:800;line-height:1.25;text-wrap:balance}
.xp-cap-text span{display:inline-block;white-space:pre;opacity:0;transform:translateY(6px);animation:xp-word .32s ease-out forwards;animation-delay:calc(var(--w) * 85ms)}
@keyframes xp-word{to{opacity:1;transform:none}}
.xp-cap-bar{display:flex;gap:5px}
.xp-cap-bar i{position:relative;flex:1;height:5px;border-radius:5px;background:rgba(255,255,255,.16);overflow:hidden}
.xp-cap-bar i.done{background:var(--xp-gold)}
.xp-cap-bar i.doing::after{content:"";position:absolute;inset:0;width:100%;background:var(--xp-gold);transform-origin:left;animation:xp-fill 1.4s ease-out forwards}
@keyframes xp-fill{from{transform:scaleX(0)}to{transform:scaleX(.92)}}
.xp-cap-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:28px;color:#fff!important;text-decoration:none!important;font-weight:800;animation:xp-word .35s ease-out}
.xp-cap-done{font-size:16px;color:var(--xp-gold)}
.xp-cap-go{padding:5px 12px;border-radius:999px;background:var(--xp-gold);color:var(--xp-ink);font-size:13.5px;white-space:nowrap;box-shadow:0 0 0 0 rgba(255,210,63,.6);animation:xp-ping 1.4s ease-out infinite}
.xp-cap-go i{font-style:normal}
@keyframes xp-ping{0%{box-shadow:0 0 0 0 rgba(255,210,63,.55)}100%{box-shadow:0 0 0 12px rgba(255,210,63,0)}}

/* Copy column: on phones the caption carries the steps, so the list is kept for screen readers only */
.xp-hero .xp-copy{color:#fff}
.xp-hero .xp-copy .xp-title,.xp-hero .xp-copy .xp-list-box{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.xp-hero .xp-copy .xp-more{display:flex!important;justify-content:center;align-items:center;gap:6px;width:100%;min-height:46px;margin:0!important;padding:0 14px!important;box-sizing:border-box;border-radius:12px;background:rgba(255,255,255,.08)!important;border:1.5px solid rgba(255,255,255,.22);color:#fff!important;font-size:15px;font-weight:800}

/* Trust strip under the card: slim, one row */
.xp-trust{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;max-width:760px;margin:14px auto 0;padding:0}
.xp-trust li{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;text-align:center;color:#4a5f77;font-size:11.5px;font-weight:700;line-height:1.2}
.xp-trust li+li{border-left:1px solid #d5dfea}
.xp-trust strong{color:var(--xp-ink);font-size:18px;line-height:1.15;font-weight:800;font-variant-numeric:tabular-nums}
.xp-trust .xp-icon{width:21px;height:21px;color:var(--xp-ink)}
.xp-hero .xp-tagline{margin:10px auto 0!important;font-size:13.5px!important;font-weight:600!important}

/* Very narrow phones (iPhone SE/mini, small Android): rooms go 2 x 2 so no label is ever cut */
@media (max-width:379px){
  .xp-hero .xp-rooms{grid-template-columns:1fr 1fr!important}
  .xp-hero .xp-room{flex-direction:row!important;justify-content:flex-start!important;min-height:50px!important;padding:6px 8px!important;gap:8px!important;text-align:left!important;font-size:13px!important}
  .xp-hero .xp-room .xp-icon{width:28px!important;height:28px!important}
  .xp-hero .xp-room[aria-pressed=true]::after{display:none}
  .xp-hero .xp-tabs .xp-tab{font-size:16px!important;min-height:50px}
  .xp-cap-text,.xp-cap-done{font-size:14.5px}
  .xp-cap-go{font-size:12.5px;padding:5px 10px}
  .xp-trust li{font-size:10.5px}
  .xp-trust strong{font-size:16px}
}

/* Desktop / tablet landscape: rooms across the top, big animation left, live checklist right */
@media (min-width:900px){
  .xp-hero{padding:26px 0 40px!important}
  .xp-hero .xp-tabs{margin-bottom:18px}
  .xp-hero .xp-tabs .xp-tab{min-height:62px;font-size:19px!important}
  .xp-hero .xp-tabs .xp-tab{display:grid!important;grid-template-columns:auto auto;grid-template-areas:"i l" "i s";align-items:center;justify-content:center;column-gap:12px!important;row-gap:0!important;text-align:left}
  .xp-hero .xp-tabs .xp-tab .xp-icon{grid-area:i;width:26px;height:26px}
  .xp-hero .xp-tabs .xp-tab:not(:has(small)){grid-template-areas:"i l"}
  .xp-hero .xp-tabs .xp-tab span{grid-area:l;line-height:1.15}
  .xp-hero .xp-tabs .xp-tab small{grid-area:s;display:block!important;font-size:12.5px;font-weight:600;opacity:.75;line-height:1.3;white-space:nowrap}
  .xp-hero .xp-panel{grid-template-columns:minmax(0,7fr) minmax(0,4fr)!important;grid-template-areas:"rooms rooms" "visual copy"!important;gap:16px 26px!important;padding:16px 16px 18px!important;border-radius:28px!important}
  .xp-hero .xp-rooms{gap:10px!important}
  .xp-hero .xp-room{flex-direction:row!important;gap:12px!important;min-height:66px!important;padding:10px 14px!important;font-size:17px!important}
  .xp-hero .xp-room .xp-icon{width:36px!important;height:36px!important;padding:7px!important}
  .xp-hero .xp-room[aria-pressed=true]::after{bottom:-8px}
  .xp-hero .xp-caption{display:none}
  .xp-hero .xp-copy{align-self:center;padding:8px 10px 8px 0}
  .xp-hero .xp-copy .xp-title,.xp-hero .xp-copy .xp-list-box{position:static!important;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}
  .xp-hero .xp-copy .xp-title{margin:0 0 16px!important;color:#fff!important;font-size:28px!important}
  .xp-hero .xp-list-box{min-height:calc(var(--rows,4) * 42px)!important}
  .xp-hero .xp-checks{gap:14px!important}
  .xp-hero .xp-checks li{color:rgba(255,255,255,.55)!important;font-size:17px!important}
  .xp-hero .xp-checks li::before{border-color:rgba(255,255,255,.35)!important}
  .xp-hero .xp-checks li.doing,.xp-hero .xp-checks li.done{color:#fff!important}
  .xp-hero .xp-checks li.doing::before{border-color:var(--xp-gold)!important}
  .xp-hero .xp-checks .xp-label{white-space:normal!important;overflow:visible!important}
  .xp-hero .xp-copy .xp-more{width:auto;justify-content:center;margin-top:22px!important;background:var(--xp-gold)!important;border-color:var(--xp-gold);color:var(--xp-ink)!important;font-size:16px}
  .xp-trust{margin-top:22px}
  .xp-trust li{flex-direction:row;justify-content:center;gap:8px;font-size:14px}
  .xp-trust strong{font-size:22px}
  .xp-hero .xp-tagline{font-size:15px!important}
}
@media (prefers-reduced-motion:reduce){
  .xp-hero .xp-tabs::before,.xp-hero .xp-panel.xp-enter,.xp-hero .xp-card.xp-swap .xp-stage svg,.xp-cap-text span,.xp-cap-cta,.xp-cap-go,.xp-cap-bar i.doing::after{animation:none!important;transition:none!important}
  .xp-cap-text span{opacity:1;transform:none}
}
@media (max-width:379px){
  .xp-hero .xp-tabs .xp-tab{gap:6px!important;padding:6px!important;font-size:15.5px!important}
  .xp-hero .xp-tabs .xp-tab .xp-icon{width:20px;height:20px}
  .xp-hero .xp-panel{padding:8px!important;gap:8px!important}
  .xp-hero .xp-rooms{gap:5px!important}
  .xp-hero .xp-room{min-width:0;gap:6px!important;padding:6px 7px!important;font-size:12.5px!important}
  .xp-hero .xp-room .xp-icon{width:24px!important;height:24px!important;padding:4px!important;border-radius:8px!important}
}
/* 4-across room labels scale with the screen so "Construction" always fits (checked 380–899px) */
@media (min-width:380px) and (max-width:899px){
  .xp-hero .xp-panel{padding:8px!important;gap:9px!important}
  .xp-hero .xp-rooms{gap:4px!important}
  .xp-hero .xp-room{padding:9px 2px 8px!important;font-size:clamp(11px,calc((100vw - 90px) / 27),14px)!important}
}
.xp-cap-live,.xp-cap-cta{min-height:40px!important}
@media (min-width:900px){
  .xp-trust{display:flex;justify-content:center;gap:0;max-width:none}
  .xp-trust li{padding:0 26px}
}

/* ---- Round 13 (owner feedback 2026-11-11, 2pm) ---- */
/* One colour family: Residential uses the same navy as Commercial, everywhere */
:root{--xp-res:#2f6fca}
.xp-card.xp-res,.xp-hero .xp-card.xp-res{--xp-bg:#132c50;--xp-room:#183662;--xp-furn:#1f437a;--xp-line:#a3c6ff;--xp-rug:#1c3d6e;--xp-box:#2b5595}
.xp-hero .xp-panel-residential{--xp-panel-glow:#21487f;--xp-accent:#9cc2ff;background:radial-gradient(120% 70% at 50% 0%,var(--xp-panel-glow) 0%,var(--xp-com-deep) 62%,#0a172c 100%)!important;box-shadow:0 22px 50px rgba(10,23,44,.32)!important}
.xp-hero .xp-tabs[data-active="1"]::before{background:var(--xp-com-deep);box-shadow:0 6px 16px rgba(15,34,64,.35)}

/* Switch: gold frame so both choices read as options; the unselected side stays clearly visible */
.xp-hero .xp-tabs{background:#fff;border:2.5px solid var(--xp-gold);box-shadow:0 8px 22px rgba(224,168,0,.18)}
.xp-hero .xp-tabs .xp-tab[aria-selected=false]{color:var(--xp-ink)!important}
.xp-hero .xp-tabs .xp-tab[aria-selected=false] .xp-icon{color:var(--xp-gold-deep)!important}
@media (hover:hover){.xp-hero .xp-tabs .xp-tab[aria-selected=false]:hover{background:#fff7d6!important}}

/* Chosen room: gold outline + gold icon + gold bar, instead of a solid gold block */
.xp-hero .xp-room[aria-pressed=true]{background:rgba(255,255,255,.16)!important;border:2px solid var(--xp-gold)!important;color:#fff!important;box-shadow:0 0 0 3px rgba(255,210,63,.18),0 8px 22px rgba(0,0,0,.25)}
.xp-hero .xp-room[aria-pressed=true] .xp-icon{background:var(--xp-gold)!important;color:var(--xp-ink)!important}
.xp-hero .xp-room[aria-pressed=true]::after{width:12px;height:12px;margin-left:-6px;bottom:-8px;background:var(--xp-gold)}

/* Icon pinned left, words centred (desktop tiles + 2x2 on small phones) */
@media (min-width:900px){
  .xp-hero .xp-room{position:relative;justify-content:center!important;padding:10px 54px!important;font-size:clamp(15px,1.35vw,17px)!important;text-align:center!important}
  .xp-hero .xp-room .xp-icon{position:absolute;left:12px;top:50%;margin-top:-18px}
}
@media (max-width:379px){
  .xp-hero .xp-room{position:relative;justify-content:center!important;padding:6px 6px 6px 36px!important;text-align:center!important}
  .xp-hero .xp-room .xp-icon{position:absolute;left:7px;top:50%;margin-top:-12px}
}

/* Trust strip on desktop: its own gold bar */
@media (min-width:900px){
  .xp-hero .xp-trust{width:max-content;max-width:100%;margin:22px auto 0;padding:12px 6px;border-radius:16px;background:var(--xp-gold);box-shadow:0 10px 26px rgba(224,168,0,.22)}
  .xp-hero .xp-trust li{color:var(--xp-ink)}
  .xp-hero .xp-trust li+li{border-left-color:rgba(18,40,63,.22)}
}

/* New scene pieces + depth */
.xp-stage .screen{fill:#0a1730;stroke:var(--xp-line);stroke-width:1.5}
.xp-stage .pot{fill:#7a5a3c;stroke:var(--xp-line);stroke-width:1.5}
.xp-stage .plant{fill:#45b07a}
.xp-stage .wood{fill:#8a6a44;stroke:var(--xp-line);stroke-width:1.5}
.xp-stage .lift{fill:#050d1c;stroke:none;opacity:.6}
.xp-stage .gridln{fill:none;stroke:var(--xp-line);stroke-width:1;opacity:.07}
.xp-stage .floorgrid{pointer-events:none}
.xp-stage .cleared{transition:opacity .45s}
.xp-stage .junk.cleared{opacity:0}
.xp-hero .xp-stage .room{stroke-width:4}
.xp-hero .xp-stage .f,.xp-hero .xp-stage .box{stroke-width:2.2}
@media (max-width:600px){
  .xp-hero .xp-stage .room{stroke-width:5}
  .xp-hero .xp-stage .f,.xp-hero .xp-stage .ln,.xp-hero .xp-stage .glass,.xp-hero .xp-stage .hole,.xp-hero .xp-stage .rug,.xp-hero .xp-stage .wall{stroke-width:3}
  .xp-hero .xp-stage .box,.xp-hero .xp-stage .screen,.xp-hero .xp-stage .wood{stroke-width:2.2}
}

/* Short phones (SE, older Android): pull everything up so the animation and its caption sit above the call/quote bar */
@media (max-width:899px) and (max-height:700px){
  .xp-hero{padding-top:10px!important}
  .xp-hero .xp-tabs{margin-bottom:10px;padding:4px}
  .xp-hero .xp-tabs::before{top:4px;bottom:4px;left:4px;width:calc(50% - 4px)}
  .xp-hero .xp-tabs .xp-tab{min-height:44px!important}
  .xp-hero .xp-room{min-height:58px!important;padding-top:6px!important;padding-bottom:6px!important;gap:4px!important}
  .xp-hero .xp-room .xp-icon{width:26px!important;height:26px!important}
  .xp-caption{padding:8px 10px 10px;gap:5px}
  .xp-cap-live,.xp-cap-cta{min-height:36px!important}
}
@media (max-width:379px) and (max-height:700px){.xp-hero .xp-room{min-height:44px!important}}

@media (min-width:900px) and (max-width:1099px){.xp-hero .xp-room{padding:10px 8px 10px 50px!important;font-size:14.5px!important}}
/* Wipe and floor trails settle into a faint sheen once a step is done, so the room reads clean instead of covered in lines */
.xp-hero .xp-stage .trail,.xp-hero .xp-stage .stripes{transition:opacity .7s ease}
.xp-hero .xp-stage .trail.set{opacity:.16}
.xp-hero .xp-stage .stripes.set{opacity:.12}
.xp-hero .xp-stage .paper{fill:#dfe9f5;opacity:.85}

/* ---- Round 14 ---- */
/* Services menu: six equal tiles (4 commercial, residential, all industries) instead of 4 + one odd wide row */
@media (min-width:900px){.nav-service-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
.nav-service-grid .nav-service-all strong::after{content:" →"}
.nav-service-grid .nav-service-all{background:#fffaf0;border-color:#f3dc8e!important}
.nav-service-grid span.nav-service[aria-current],.nav-service-grid .nav-service[aria-current]{background:#eef4fc;border-color:#9bbde8!important}
/* Quote form: two reply choices on one row */
.reply-choices.reply-2{grid-template-columns:1fr 1fr!important}

/* ---- Round 15 ---- */
/* Trust strip: every item = icon + one bold line, same size and weight; clear separation */
:is(.xp-hero,.xp-service,.xp-about) .xp-trust{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;max-width:none;width:auto;margin:14px 0 0;padding:0;background:none!important;box-shadow:none!important}
:is(.xp-hero,.xp-service,.xp-about) .xp-trust li{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:9px 4px 8px;border:0!important;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1.5px #dbe4ef;text-align:center;color:var(--xp-ink)!important;font-size:11.5px;font-weight:800;line-height:1.2}
:is(.xp-hero,.xp-service,.xp-about) .xp-trust li span,:is(.xp-hero,.xp-service,.xp-about) .xp-trust li strong{font:inherit;color:inherit}
:is(.xp-hero,.xp-service,.xp-about) .xp-trust .xp-icon{width:22px;height:22px;padding:5px;border-radius:9px;background:var(--xp-gold);color:var(--xp-ink);box-sizing:content-box}
@media (max-width:379px){:is(.xp-hero,.xp-service,.xp-about) .xp-trust li{font-size:10.5px;padding:8px 3px}:is(.xp-hero,.xp-service,.xp-about) .xp-trust .xp-icon{width:18px;height:18px;padding:4px}}
@media (min-width:900px){
  :is(.xp-hero,.xp-service,.xp-about) .xp-trust{display:flex!important;justify-content:center;gap:14px;margin:22px auto 0}
  :is(.xp-hero,.xp-service,.xp-about) .xp-trust li{flex-direction:row;gap:10px;padding:10px 20px 10px 10px;border-radius:999px;background:var(--xp-gold);box-shadow:0 8px 20px rgba(224,168,0,.2);font-size:15px;white-space:nowrap}
  :is(.xp-hero,.xp-service,.xp-about) .xp-trust .xp-icon{background:#fff;width:20px;height:20px;padding:6px;border-radius:50%}
}
/* Same animation polish on every page (service pages, industries, residential) */
.xp-stage .trail,.xp-stage .stripes{transition:opacity .7s ease}
.xp-stage .trail.set{opacity:.16}
.xp-stage .stripes.set{opacity:.12}
.xp-stage .paper{fill:#dfe9f5;opacity:.85}
.xp-stage .room{stroke-width:4}
.xp-stage .speck{transform-box:fill-box;transform-origin:center;transform:scale(1.3)}
@media (max-width:600px){
  .xp-stage .room{stroke-width:5}
  .xp-stage .f,.xp-stage .ln,.xp-stage .glass,.xp-stage .hole,.xp-stage .rug,.xp-stage .wall{stroke-width:3}
  .xp-stage .box,.xp-stage .screen,.xp-stage .wood{stroke-width:2.2}
}

/* ---- Round 16 ---- */
/* Areas map: hover/focus highlight + matching card; hint blink stops once the visitor points at the map */
#areas-map .quality-map .map-region{cursor:pointer}
#areas-map .quality-map .map-region .gta-region{transition:fill .18s ease}
#areas-map .quality-map .map-region.is-hot .gta-region{fill:var(--xp-gold)!important}
#areas-map .quality-map .map-outline.on{visibility:visible;stroke:var(--xp-gold-deep);stroke-width:3.5px}
#areas-map .quality-map.xp-touched .xp-map-hint{animation:none}
.quality-regions.region-cards>.region-card{transition:box-shadow .2s,transform .2s,border-color .2s}
.quality-regions.region-cards>.region-card.is-hot{transform:translateX(4px);box-shadow:0 10px 26px rgba(224,168,0,.25);border-color:var(--xp-gold)}

/* Service pages + industries: caption bar on phones only (the checklist is beside the animation on desktop) */
@media (min-width:900px){.xp-caption{display:none}}
.xp-service .xp-trust{margin-top:18px}
/* Plan rooms light up on hover; the next unvisited room keeps blinking (owner request 2026-11-11) */
@media (hover:hover) and (pointer:fine){
  .xp-pg{cursor:pointer}
  .xp-pg:not([aria-pressed=true]):hover .xp-pr{fill:var(--xp-gold-soft);stroke:var(--xp-gold-deep);stroke-width:5}
}
/* Industries (4 tabs): same gold-framed switch, 4 across on desktop, 2 x 2 on phones; no sliding thumb */
.xp-hero .xp-tabs.xp-tabs-4{grid-template-columns:repeat(4,minmax(0,1fr))!important;max-width:980px;gap:4px!important}
.xp-hero .xp-tabs.xp-tabs-4::before{display:none}
.xp-hero .xp-tabs.xp-tabs-4 .xp-tab{font-size:16px!important;min-height:52px}
.xp-hero .xp-tabs.xp-tabs-4 .xp-tab[aria-selected=true]{background:var(--xp-com-deep)!important;color:#fff!important;box-shadow:0 6px 16px rgba(15,34,64,.3)}
.xp-hero .xp-rooms.xp-rooms-2{grid-template-columns:1fr 1fr!important}
@media (max-width:899px){
  .xp-hero .xp-tabs.xp-tabs-4{grid-template-columns:1fr 1fr!important}
  .xp-hero .xp-tabs.xp-tabs-4 .xp-tab{font-size:14.5px!important;min-height:46px;gap:6px!important}
}
.xp-hero.xp-industries .xp-rooms{grid-auto-rows:auto!important;min-height:0!important}
.xp-hero.xp-industries .xp-room{min-height:66px!important}
@media (max-width:899px){.xp-hero.xp-industries .xp-room{min-height:72px!important}}
.xp-schedule{min-width:0}.xp-schedule>li{min-width:0;box-sizing:border-box}
@media (max-width:899px){.xp-schedule{grid-template-columns:minmax(0,1fr)!important}}
.xp-schedule li>*{min-width:0;overflow-wrap:anywhere}

/* Ways to schedule — animated icons, even centred columns; icon-left rows on phones (owner request 2026-11-12) */
.xp-sched-list{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;max-width:980px}
.xp-sched-list li{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;min-width:0}
.xp-sched-list li>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.xp-sched-list .xp-j-icon{animation:xp-node 6s ease-in-out infinite;animation-delay:calc(var(--i)*2s)}
.xp-sched-list strong{font-size:18px;color:var(--xp-ink)}
.xp-sched-list li>div>span{color:var(--xp-muted);font-size:16px;line-height:1.5;max-width:30ch;margin:0 auto}
@media (max-width:899px){
  .xp-sched-list{grid-template-columns:minmax(0,1fr);gap:12px;max-width:520px}
  .xp-sched-list li{flex-direction:row;align-items:center;text-align:left;gap:16px;background:#fff;border:1px solid var(--xp-rule);border-radius:18px;padding:14px 16px}
  .xp-sched-list .xp-j-icon{flex:none;width:60px;height:60px;border-radius:18px}
  .xp-sched-list .xp-j-icon svg{width:36px;height:36px}
  .xp-sched-list li>div>span{margin:0;max-width:none}
}
@media (prefers-reduced-motion:reduce){.xp-sched-list .xp-j-icon{animation:none}}
/* Mobile polish 2026-11-12: no empty caption pill before the animation starts; breathing room under the Airbnb title */
.xp-cap-num:empty{display:none}
.xp-airbnb .xp-copy .xp-title{margin:0 0 14px!important}
/* End of each animation: just a short "Free quote" pill, centred, same height as the step line (owner request 2026-11-12) */
.xp-cap-cta{justify-content:center!important}
.xp-cap-cta .xp-cap-go{font-size:15px;padding:7px 18px}

/* About hero facts (owner request 2026-11-12: one combined intro) */
.xp-about-facts{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:10px}
.xp-about-facts li{background:#fff;border:1px solid var(--xp-rule);border-radius:999px;padding:7px 14px;font-size:15px;font-weight:600;color:var(--xp-muted)}
.xp-about-facts strong{color:var(--xp-ink)}

/* Owner request 2026-11-12 (round 2) */
.quality-section:has(.xp-center-block) .section-head{text-align:center;margin-inline:auto;max-width:none}
.xp-center-block{text-align:center;max-width:640px;margin:0 auto}
.xp-center-block p{margin:0 auto 18px}
.xp-center-block .section-action{margin:0 auto}
.xp-about .xp-trust{margin:22px auto 0!important}
@media (max-width:899px){
  .quote-band .quote-details{display:flex;flex-direction:column;align-items:center;text-align:center}
  .quote-band .quote-details .quote-phone a{justify-content:center}
  .quote-band .quote-details .xp-home-switch{text-align:center}
}

/* New logos 2026-11-12: widths follow the new artwork's proportions */
.site-header .brand.brand-logo img{width:161px!important;height:52px!important}
.site-footer .brand.brand-logo img{width:171px!important;height:58px!important}
@media (max-width:899px){.site-header .brand.brand-logo img{width:130px!important;height:42px!important}.site-footer .brand.brand-logo img{width:153px!important;height:52px!important}}
@media (max-width:380px){.site-header .brand.brand-logo img{width:105px!important;height:34px!important}}
