/*
Theme Name: Appliance Solutions
Theme URI: https://www.appliancerepairnearme.us/
Author: Abu Bakar Akhtar
Description: Custom theme for Appliance Solutions Inc., Woodbridge VA. Builds the full site on activation: services, brands, service areas, blog, booking system, reviews and SEO.
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 7.4
License: GPL-2.0-or-later
Text Domain: appliance-solutions
*/

@font-face{font-family:"Bricolage Grotesque";src:url(assets/fonts/bricolage.woff2) format("woff2");font-weight:200 800;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(assets/fonts/jakarta.woff2) format("woff2");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Plus Jakarta Sans";src:url(assets/fonts/jakarta-italic.woff2) format("woff2");font-weight:200 800;font-style:italic;font-display:swap}

:root{
  --red:#d8151f;--red-deep:#a50d15;--ink:#15171c;--ink-2:#2a2e37;--steel-50:#f5f6f8;--steel-100:#eceef1;--steel-200:#d9dde3;--steel-400:#9aa1ad;--steel-600:#5b6270;--white:#fff;--amber:#f5b400;--ok:#137a3e;
  --wrap:1180px;--gap:clamp(16px,3vw,32px);--r:10px;--r-lg:18px;
  --f:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--fh:"Bricolage Grotesque","Plus Jakarta Sans",system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:90px}
body{margin:0;font-family:var(--f);font-size:17px;line-height:1.6;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;padding-bottom:0}
img,svg{max-width:100%;height:auto;display:block}
a{color:var(--red-deep);text-underline-offset:3px}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px;border-radius:4px}
h1,h2,h3,h4{font-family:var(--fh);font-weight:800;line-height:1.08;letter-spacing:-.015em;margin:0 0 .5em;color:var(--ink);text-wrap:balance}
h1{font-size:clamp(2.1rem,5.4vw,3.7rem)}
h2{font-size:clamp(1.6rem,3.4vw,2.4rem)}
h3{font-size:1.2rem;letter-spacing:-.005em;line-height:1.2}
p{margin:0 0 1em}
ul,ol{margin:0 0 1em;padding-left:1.2em}
.wrap{width:min(100% - 2*var(--gap),var(--wrap));margin-inline:auto}
.narrow{max-width:760px}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:10px 16px;z-index:100}
.skip:focus{left:8px;top:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.lead{font-size:1.15rem;color:var(--ink-2);max-width:62ch}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font:inherit;font-weight:700;line-height:1.1;padding:.9em 1.4em;border-radius:999px;border:2px solid transparent;text-decoration:none;cursor:pointer;transition:background .15s,color .15s,border-color .15s}
.btn-red{background:var(--red);color:#fff}
.btn-red:hover{background:var(--red-deep);color:#fff}
.btn-ink{background:var(--ink);color:#fff}
.btn-ink:hover{background:#000;color:#fff}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-white{background:#fff;color:var(--ink)}
.btn-white:hover{background:var(--steel-100);color:var(--ink)}
.btn svg{width:1.1em;height:1.1em;flex:none}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.4em}

/* header */
.topbar{background:var(--ink);color:#fff;font-size:.86rem}
.topbar .wrap{display:flex;justify-content:space-between;gap:16px;padding-block:7px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none}
.topbar .stars{color:var(--amber);letter-spacing:1px}
.site-head{position:sticky;top:0;z-index:50;background:#fff;border-bottom:1px solid var(--steel-200)}
.site-head .wrap{display:flex;align-items:center;gap:20px;padding-block:8px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);margin-right:auto}
.brand img{width:auto;height:60px;aspect-ratio:108/120;display:block}
.brand b{font-family:var(--fh);display:block;font-weight:900;font-size:1.12rem;line-height:1;letter-spacing:-.01em;text-transform:uppercase}
.brand-txt{display:block}.brand-txt>span{display:block;font-size:.74rem;color:var(--steel-600);margin-top:3px}
.brand b{color:var(--ink)}
.nav{display:flex;align-items:center;gap:4px;list-style:none;margin:0;padding:0}
.nav>li{position:relative}
.nav a,.nav button{font:inherit;font-weight:600;font-size:.95rem;color:var(--ink);text-decoration:none;background:none;border:0;padding:10px 11px;border-radius:8px;cursor:pointer;display:inline-flex;align-items:center;gap:4px}
.nav a:hover,.nav button:hover,.nav a[aria-current=page]{background:var(--steel-100);color:var(--ink)}
.sub{position:absolute;left:0;top:100%;min-width:250px;background:#fff;border:1px solid var(--steel-200);border-radius:var(--r);box-shadow:0 14px 34px rgba(21,23,28,.14);padding:8px;list-style:none;margin:0;display:none;columns:1}
.sub.two{min-width:440px;columns:2}
.sub li{break-inside:avoid}
.sub a{display:block;padding:8px 10px;font-weight:500}
.has-sub:hover .sub,.has-sub:focus-within .sub,.has-sub.open .sub{display:block}
.head-cta{display:flex;align-items:center;gap:10px}
.head-phone{font-weight:800;font-size:1.1rem;color:var(--ink);text-decoration:none;white-space:nowrap}
.burger{display:none;background:none;border:2px solid var(--ink);border-radius:8px;padding:8px 10px;cursor:pointer}
.burger span{display:block;width:20px;height:2px;background:var(--ink);margin:4px 0}
@media (max-width:1080px){
  .burger{display:block}
  .nav-wrap{position:fixed;inset:0 0 0 auto;width:min(360px,88vw);background:#fff;transform:translateX(100%);transition:transform .2s;overflow:auto;padding:76px 18px 120px;box-shadow:-20px 0 40px rgba(0,0,0,.2);z-index:60;visibility:hidden}
  .nav-open .nav-wrap{transform:none;visibility:visible}
  .nav{flex-direction:column;align-items:stretch}
  .nav a,.nav button{width:100%;justify-content:space-between;padding:13px 10px;font-size:1.05rem}
  .sub,.sub.two{position:static;display:none;box-shadow:none;border:0;border-left:3px solid var(--steel-200);border-radius:0;columns:1;min-width:0;margin-left:10px}
  .has-sub:hover .sub{display:none}
  .has-sub.open .sub{display:block}
  .nav-close{position:absolute;top:16px;right:16px;font:inherit;font-weight:700;background:var(--steel-100);border:0;border-radius:8px;padding:10px 14px;cursor:pointer}
  .head-cta .btn{display:none}
  .brand-txt{display:none}
}
@media (min-width:1081px){.nav-close{display:none}}
@media (max-width:520px){.head-phone{font-size:1rem}.brand img{height:52px}.brand b{font-size:.95rem}.topbar .hours{display:none}}

/* mobile action bar */
.actionbar{display:none}
@media (max-width:760px){
  .actionbar{display:grid;grid-template-columns:1fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:55;background:#fff;border-top:1px solid var(--steel-200);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
  .actionbar .btn{padding:.85em .6em;font-size:1rem}
  body{padding-bottom:74px}
}

/* sections */
.sec{padding-block:clamp(44px,7vw,88px)}
.sec-tight{padding-block:clamp(28px,4vw,48px)}
.bg-steel{background:var(--steel-50)}
.bg-ink{background:var(--ink);color:#fff}
.bg-ink h2,.bg-ink h3{color:#fff}
.bg-ink a:not(.btn){color:#fff}
.sec-head{max-width:720px;margin-bottom:clamp(22px,3vw,38px)}
.sec-head p{color:var(--steel-600);font-size:1.08rem;margin:0}
.bg-ink .sec-head p{color:var(--steel-200)}
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:980px){.g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.g2,.g3{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(24px,5vw,64px);align-items:start}
@media (max-width:900px){.split{grid-template-columns:1fr}}

/* hero */
.hero{background:var(--steel-50);overflow:hidden;border-bottom:4px solid var(--ink)}
.hero-top{padding-top:clamp(28px,5vw,60px);display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(20px,4vw,56px);align-items:end}
@media (max-width:900px){.hero-top{grid-template-columns:1fr}}
.hero h1{font-weight:800;letter-spacing:-.03em;line-height:1.02}
.hero h1 small{display:block;font-family:var(--f);font-size:.4em;font-weight:700;text-transform:none;letter-spacing:0;color:var(--red-deep);margin-bottom:.5em;line-height:1.2}
.facts{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;border:2px solid var(--ink);border-radius:var(--r);background:#fff;overflow:hidden}
.facts li{padding:14px 16px;border-bottom:1px solid var(--steel-200);border-right:1px solid var(--steel-200);font-size:.92rem;color:var(--steel-600);line-height:1.3}
.facts li:nth-child(even){border-right:0}
.facts li:nth-last-child(-n+2){border-bottom:0}
.facts b{font-family:var(--fh);display:block;color:var(--ink);font-size:1.4rem;font-weight:800;line-height:1.1}
.scene-wrap{margin-top:clamp(18px,3vw,34px);overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
.scene{display:block;width:100%;min-width:1040px;height:auto}
.scene-hint{font-size:.9rem;color:var(--steel-600);margin:14px 0 0;display:flex;align-items:center;gap:8px}
.scene-hint .dot{width:10px;height:10px;border-radius:50%;background:var(--red);flex:none}
.scene a{cursor:pointer;text-decoration:none}
.scene .body{fill:#e9ecf0;stroke:var(--ink);stroke-width:2.5;stroke-linejoin:round}
.scene .panel{fill:#f8f9fb;stroke:var(--ink);stroke-width:2}
.scene .dark{fill:var(--ink)}
.scene .glass{fill:#2a2e37;stroke:var(--ink);stroke-width:2}
.scene .line{fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.scene .thin{fill:none;stroke:var(--steel-400);stroke-width:1.5;stroke-linecap:round}
.scene .cab{fill:#fff;stroke:var(--ink);stroke-width:2}
.scene .lamp{fill:var(--red)}
.scene .tag rect{fill:#fff;stroke:var(--ink);stroke-width:2}
.scene .tag text{font:700 15px var(--fh);fill:var(--ink);text-anchor:middle}
.scene a:hover .body,.scene a:focus .body{fill:#fff}
.scene a:hover .tag rect,.scene a:focus .tag rect{fill:var(--red);stroke:var(--red)}
.scene a:hover .tag text,.scene a:focus .tag text{fill:#fff}
.scene a:focus{outline:none}
.scene a:focus-visible .body{stroke:var(--red);stroke-width:4}

/* page hero (inner pages) */
.phero{background:var(--steel-50);border-bottom:4px solid var(--ink);padding-block:clamp(26px,4.5vw,56px)}
.phero h1{font-weight:900;max-width:20ch}
.crumbs{font-size:.88rem;color:var(--steel-600);margin-bottom:14px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--steel-400)}
.crumbs a{color:var(--steel-600)}
.trust{list-style:none;padding:0;margin:22px 0 0;display:flex;flex-wrap:wrap;gap:8px 10px}
.trust li{background:#fff;border:1px solid var(--steel-200);border-radius:999px;padding:6px 13px;font-size:.88rem;font-weight:600}
.trust .stars{color:var(--amber)}

/* cards & lists */
.card{background:#fff;border:1px solid var(--steel-200);border-radius:var(--r-lg);padding:22px}
a.card{display:block;text-decoration:none;color:inherit;transition:border-color .15s,transform .15s}
a.card:hover{border-color:var(--ink);transform:translateY(-2px)}
.card h3{margin-bottom:.35em}
.card p{margin:0;color:var(--steel-600);font-size:.97rem}
.card .more{display:inline-block;margin-top:12px;font-weight:700;color:var(--red-deep)}
.svc-card{display:grid;grid-template-columns:54px 1fr;gap:14px;align-items:start}
.svc-card svg{width:54px;height:54px}
.ticks{list-style:none;padding:0;margin:0 0 1em;display:grid;gap:9px}
.ticks.cols{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:600px){.ticks.cols{grid-template-columns:1fr}}
.ticks li{padding-left:30px;position:relative}
.ticks li::before{content:"";position:absolute;left:0;top:.28em;width:19px;height:19px;border-radius:50%;background:var(--red) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.chips{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.chips a{display:block;padding:7px 14px;border:1px solid var(--steel-200);border-radius:999px;background:#fff;color:var(--ink);text-decoration:none;font-size:.94rem;font-weight:600}
.chips a:hover{border-color:var(--ink)}
.bg-ink .chips a{background:transparent;border-color:#4a505c;color:#fff}
.bg-ink .chips a:hover{border-color:#fff}
.glance{width:100%;border-collapse:collapse;border:2px solid var(--ink);border-radius:var(--r);overflow:hidden;background:#fff;font-size:.98rem;margin:0 0 1.2em}
.glance th,.glance td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--steel-200);vertical-align:top}
.glance th{width:42%;font-weight:600;color:var(--steel-600)}
.glance td{font-weight:700}
.glance tr:last-child th,.glance tr:last-child td{border-bottom:0}
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:var(--gap);grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.steps li{counter-increment:s;border-top:4px solid var(--red);padding-top:16px}
.steps li::before{font-family:var(--fh);content:counter(s);display:block;font-weight:900;font-size:2.4rem;line-height:1;margin-bottom:8px}
.steps p{color:var(--steel-200);margin:0}
.bg-ink .steps li::before{color:#fff}

/* FAQ */
.faq details{border-bottom:1px solid var(--steel-200)}
.faq details:first-of-type{border-top:1px solid var(--steel-200)}
.faq summary{list-style:none;cursor:pointer;padding:17px 44px 17px 0;font-weight:700;font-size:1.06rem;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:8px;top:50%;width:12px;height:12px;border-right:3px solid var(--red);border-bottom:3px solid var(--red);transform:translateY(-70%) rotate(45deg);transition:transform .15s}
.faq details[open] summary::after{transform:translateY(-30%) rotate(-135deg)}
.faq .a{padding:0 0 18px;max-width:70ch;color:var(--ink-2)}
.faq .a p:last-child{margin:0}

/* reviews */
.rating-box{display:grid;grid-template-columns:auto 1fr;gap:26px;align-items:center;border:2px solid var(--ink);border-radius:var(--r-lg);padding:24px;background:#fff}
@media (max-width:600px){.rating-box{grid-template-columns:1fr}}
.rating-num{font-family:var(--fh);font-weight:900;font-size:4.2rem;line-height:.9}
.stars{color:var(--amber);letter-spacing:2px}
.bars{display:grid;gap:5px;font-size:.88rem}
.bars div{display:grid;grid-template-columns:24px 1fr 34px;gap:8px;align-items:center}
.bars i{display:block;height:8px;border-radius:4px;background:var(--steel-100);overflow:hidden}
.bars i b{display:block;height:100%;background:var(--amber)}
.review{display:flex;flex-direction:column;gap:12px}
.review blockquote{margin:0;font-size:1.02rem;line-height:1.55}
.review footer{margin-top:auto;font-size:.9rem;color:var(--steel-600)}
.review footer b{color:var(--ink)}

/* team */
.photo{border-radius:var(--r-lg);overflow:hidden;border:2px solid var(--ink);background:var(--steel-100)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo figcaption{background:var(--ink);color:#fff;font-size:.88rem;padding:9px 14px}
figure{margin:0}
.owner{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}
.owner img{width:150px;height:190px;object-fit:cover;object-position:50% 20%;border-radius:var(--r);border:2px solid var(--ink)}
@media (max-width:520px){.owner{grid-template-columns:1fr}}
.timeline{list-style:none;padding:0;margin:0;border-left:3px solid var(--ink)}
.timeline li{padding:0 0 22px 22px;position:relative}
.timeline li::before{content:"";position:absolute;left:-9px;top:5px;width:15px;height:15px;border-radius:50%;background:var(--red);border:3px solid #fff}
.timeline b{font-family:var(--fh);display:block;}

/* booking */
.book{background:#fff;border:2px solid var(--ink);border-radius:var(--r-lg);overflow:hidden;scroll-margin-top:100px}
.book-head{background:var(--ink);color:#fff;padding:16px 20px;display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.book-head h2,.book-head h3{color:#fff;margin:0;font-size:1.3rem}
.book-head span{font-size:.88rem;color:var(--steel-200)}
.book-prog{display:flex;gap:4px;padding:14px 20px 0}
.book-prog i{flex:1;height:5px;border-radius:3px;background:var(--steel-200)}
.book-prog i.on{background:var(--red)}
.book-body{padding:18px 20px 22px}
.book-step{display:none}
.book-step.on{display:block}
.book-step h4{font-size:1.15rem;margin-bottom:.3em}
.book-step>p{color:var(--steel-600);font-size:.95rem}
.field{display:block;margin-bottom:14px}
.field>span{display:block;font-weight:700;font-size:.92rem;margin-bottom:5px}
.field em{font-style:normal;color:var(--red-deep)}
.field input,.field select,.field textarea{width:100%;font:inherit;font-size:16px;padding:12px 13px;border:2px solid var(--steel-200);border-radius:var(--r);background:#fff;color:var(--ink)}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.field textarea{min-height:84px;resize:vertical}
.f2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:480px){.f2{grid-template-columns:1fr}}
.pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:14px}
@media (max-width:420px){.pick{grid-template-columns:repeat(2,minmax(0,1fr))}}
.pick button{font:inherit;font-weight:700;font-size:.93rem;padding:12px 6px;border:2px solid var(--steel-200);border-radius:var(--r);background:#fff;cursor:pointer;color:var(--ink)}
.pick button[aria-pressed=true]{border-color:var(--red);background:var(--red);color:#fff}
.check{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;margin-bottom:10px}
.check input{width:20px;height:20px;margin-top:2px;flex:none;accent-color:var(--red)}
.book-nav{display:flex;justify-content:space-between;gap:10px;margin-top:6px}
.book-msg{font-size:.93rem;font-weight:600;margin:6px 0 12px;min-height:1.3em}
.book-msg.ok{color:var(--ok)}
.book-msg.err{color:var(--red-deep)}
.summary{border:1px solid var(--steel-200);border-radius:var(--r);padding:4px 14px;margin-bottom:14px;font-size:.95rem}
.summary div{display:grid;grid-template-columns:110px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--steel-100)}
.summary div:last-child{border:0}
.summary dt,.summary span{color:var(--steel-600)}
.hp{position:absolute;left:-9999px}
.book-done{text-align:center;padding:10px 0}
.book-done .ref{font-family:var(--fh);display:inline-block;font-weight:800;font-size:1.3rem;border:2px dashed var(--ink);border-radius:var(--r);padding:8px 18px;margin:8px 0 14px}

/* article */
.article{font-size:1.08rem;line-height:1.7}
.article h2{font-size:1.7rem;margin-top:1.6em}
.article h3{font-size:1.28rem;margin-top:1.5em}
.article ul,.article ol{padding-left:1.3em}
.article li{margin-bottom:.4em}
.article table{width:100%;border-collapse:collapse;margin:0 0 1.2em;font-size:.98rem}
.article th,.article td{border:1px solid var(--steel-200);padding:10px 12px;text-align:left;vertical-align:top}
.article th{background:var(--steel-50)}
.quick{border-left:6px solid var(--red);background:var(--steel-50);padding:16px 20px;border-radius:0 var(--r) var(--r) 0;margin:0 0 1.6em}
.quick b{font-family:var(--fh);display:block;margin-bottom:4px}
.quick p{margin:0}
.meta{color:var(--steel-600);font-size:.92rem;margin-bottom:1.4em}
.callout{background:var(--ink);color:#fff;border-radius:var(--r-lg);padding:24px;margin:2em 0}
.callout h3{color:#fff;margin-top:0}
.callout p{color:var(--steel-200)}
.aside{position:sticky;top:96px;display:grid;gap:18px}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:clamp(24px,4vw,56px);align-items:start}
@media (max-width:1000px){.layout{grid-template-columns:1fr}.aside{position:static}}
.post-card{display:flex;flex-direction:column;gap:8px}
.post-card time{font-size:.85rem;color:var(--steel-600)}
.post-card h3{font-size:1.14rem}
.pager{display:flex;gap:8px;justify-content:center;margin-top:32px}
.pager .page-numbers{padding:8px 14px;border:1px solid var(--steel-200);border-radius:8px;text-decoration:none;color:var(--ink);font-weight:700}
.pager .current{background:var(--ink);color:#fff;border-color:var(--ink)}

/* CTA band + footer */
.cta{background:var(--red);color:#fff;padding-block:clamp(34px,5vw,56px)}
.cta .wrap{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.cta h2{color:#fff;margin:0 0 .2em}
.cta p{margin:0;max-width:56ch}
.foot{background:var(--ink);color:var(--steel-200);font-size:.94rem;padding-top:clamp(36px,5vw,60px)}
.foot a{color:var(--steel-200);text-decoration:none}
.foot a:hover{color:#fff;text-decoration:underline}
.foot h2{font-family:var(--fh);color:#fff;font-size:1rem;margin-bottom:.8em}
.foot ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}
.foot-grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:var(--gap)}
@media (max-width:900px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-logo{width:150px;height:auto;margin-bottom:14px}
.foot-bottom{border-top:1px solid #353a45;margin-top:36px;padding-block:18px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.86rem}
.social{display:flex;gap:10px;margin-top:12px}
.social a{display:grid;place-items:center;width:38px;height:38px;border:1px solid #4a505c;border-radius:50%}
.social svg{width:18px;height:18px;fill:currentColor}
.map{border:2px solid var(--ink);border-radius:var(--r-lg);overflow:hidden;aspect-ratio:16/10;background:var(--steel-100)}
.map iframe{width:100%;height:100%;border:0;display:block}
.notice{border:2px solid var(--amber);background:#fffaf0;border-radius:var(--r);padding:14px 18px;margin-bottom:1.2em}
.center{text-align:center}
.mt{margin-top:var(--gap)}
.wp-block-image img{border-radius:var(--r)}
.alignwide,.alignfull{max-width:100%}

/* additions */
[hidden]{display:none!important}
.h3{font-size:1.2rem;}
.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:700;color:var(--red-deep);margin:0 0 .3em}
.stack{display:grid;gap:var(--gap)}
.toc{border:1px solid var(--steel-200);border-radius:var(--r);padding:16px 20px;margin:0 0 1.6em;background:#fff}
.toc b{font-family:var(--fh);display:block;margin-bottom:6px}
.toc ol{margin:0;padding-left:1.2em;font-size:.97rem}
.toc li{margin-bottom:3px}
.takeaways{background:var(--steel-50);border-radius:var(--r);padding:16px 20px 16px 36px}
.btn-onink{color:#fff;border-color:#fff}
.btn-onink:hover{background:#fff;color:var(--ink)}
.article h3+p{margin-top:0}
.layout .article>.glance:first-child{margin-top:0}

/* =========================================================
   Motion. Everything below is switched off for people who
   ask their device for reduced motion.
   ========================================================= */

/* scene parts that are static without motion */
.scene .fr-inside{opacity:0}
.scene .oven-glow{opacity:.55}
.scene .oven-el{fill:none;stroke:#ff6a3d;stroke-width:3;stroke-linecap:round}
.scene .oven-tray{stroke:#9aa1ad;stroke-width:2}
.scene .oven-dish{fill:#a0522d}
.scene .mw-light{opacity:.25}
.scene .mw-plate{fill:#f8f9fb;opacity:.8}
.scene .flames path{fill:#3d8bff;opacity:.9}
.scene .pot{fill:#9aa1ad;stroke:#15171c;stroke-width:2}
.scene .steam circle,.scene .bubbles circle{fill:#fff;stroke:#9aa1ad;stroke-width:1.5;opacity:0}
.scene .bubbles circle{fill:#e8f4ff;stroke:#5aa9e6}
.scene .dw-bar{fill:var(--red);transform-box:fill-box;transform-origin:left;transform:scaleX(.6)}
.scene .drip{fill:#5aa9e6;opacity:0}
.scene .water{fill:#2f4f7a}
.scene .wave{fill:#5aa9e6;opacity:.45}
.scene .heat path{fill:none;stroke:#ff8a3d;stroke-width:2.5;stroke-linecap:round;opacity:0}
.scene .frost path{fill:none;stroke:#cfe8ff;stroke-width:2;stroke-linecap:round;opacity:.7}
.scene .snow text{font-size:14px;fill:#5aa9e6;opacity:0}
.scene .van{pointer-events:none;opacity:0}
.scene .floor-glow{fill:#15171c;opacity:.06}
.scene .fr-door,.scene .fz-lid,.scene .ap-in,.scene .tag,.scene .drum,.scene .mw-food,.scene .disp-blade,.scene .knob,.scene .cube-drop{transform-box:fill-box}
.scene .fr-door{transform-origin:left center;transition:transform .55s cubic-bezier(.2,.9,.3,1.2)}
.scene .fz-lid{transform-origin:right bottom;transition:transform .45s cubic-bezier(.2,.9,.3,1.3)}
.scene .fr-inside{transition:opacity .3s}
.scene .ap:hover .fr-door,.scene .ap:focus-visible .fr-door{transform:scaleX(.16) skewY(-6deg)}
.scene .ap:hover .fr-inside,.scene .ap:focus-visible .fr-inside{opacity:1}
.scene .ap:hover .fz-lid,.scene .ap:focus-visible .fz-lid{transform:rotate(-14deg) translateY(-4px)}
.scene .mw-light,.scene .oven-glow{transition:opacity .35s}
.scene .ap:hover .mw-light{opacity:1}
.scene .ap:hover .oven-glow{opacity:1}
.scene .tag{transform-origin:center;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}
.scene .ap:hover .tag,.scene .ap:focus-visible .tag{transform:translateY(-4px) scale(1.08)}
.scene .ap-in{transition:transform .3s cubic-bezier(.3,1.5,.5,1)}
.scene .ap:hover .ap-in{transform:translateY(-6px)}

/* hero backdrop, mascot, and 3D tilt */
.hero{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:-20%;z-index:-1;background:radial-gradient(40% 50% at 15% 20%,rgba(216,21,31,.10),transparent 60%),radial-gradient(35% 45% at 85% 30%,rgba(90,169,230,.14),transparent 60%),radial-gradient(30% 40% at 60% 90%,rgba(245,180,0,.12),transparent 60%)}
.mascot{position:absolute;right:max(16px,calc((100vw - var(--wrap))/2 - 10px));top:clamp(120px,22vw,190px);width:clamp(84px,9vw,128px);z-index:2;pointer-events:none;display:none}
.mascot img{width:100%;height:auto;filter:drop-shadow(0 10px 18px rgba(0,0,0,.25))}
.mascot .bubble{position:absolute;right:88%;top:-6px;background:#fff;border:2px solid var(--ink);border-radius:14px;padding:6px 10px;font-weight:800;font-size:.82rem;white-space:nowrap;box-shadow:0 6px 16px rgba(0,0,0,.12)}
.mascot .bubble::after{content:"";position:absolute;right:-9px;top:14px;border:8px solid transparent;border-left-color:var(--ink)}
@media (min-width:1180px){.mascot{display:block}}

/* inner-page hero: drifting appliance outlines */
.phero{position:relative;overflow:hidden;isolation:isolate}
.phero::after{content:"";position:absolute;inset:0;z-index:-1;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' fill='none' stroke='%2315171c' stroke-width='3'%3E%3Crect x='20' y='20' width='44' height='70' rx='5'/%3E%3Cpath d='M20 46h44M30 32v8'/%3E%3Crect x='104' y='96' width='56' height='60' rx='5'/%3E%3Ccircle cx='132' cy='130' r='16'/%3E%3Cpath d='M104 110h56'/%3E%3C/svg%3E");background-size:180px 180px}

/* scroll reveal */
.js [data-fx]{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:var(--fx-d,0s)}
.js [data-fx="left"]{transform:translateX(-30px)}
.js [data-fx="right"]{transform:translateX(30px)}
.js [data-fx="zoom"]{transform:scale(.94)}
.js [data-fx].in,.fx-off [data-fx]{opacity:1;transform:none}

/* section heading accent bar */
.sec-head h2{position:relative;padding-bottom:.35em}
.sec-head h2::after{content:"";position:absolute;left:0;bottom:0;width:64px;height:5px;border-radius:3px;background:var(--red);transform-origin:left;transition:transform .8s .2s cubic-bezier(.2,.8,.2,1)}
.js .sec-head:not(.in) h2::after{transform:scaleX(0)}

/* cards: 3D tilt and shine */
.tilt{transition:transform .25s ease-out,box-shadow .25s,border-color .15s}
.tilt:hover{box-shadow:0 18px 40px rgba(21,23,28,.14)}
.tilt .shine{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.55),transparent 45%);opacity:0;transition:opacity .2s}
.tilt:hover .shine{opacity:1}
.card{position:relative}
.svc-card svg{transition:transform .35s cubic-bezier(.3,1.6,.5,1)}
.svc-card:hover svg{transform:rotate(-6deg) scale(1.12)}

/* buttons: light sweep, ringing phone */
.btn{position:relative;overflow:hidden}
.btn-red::after,.btn-white::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg)}
.btn:active{transform:scale(.97)}

/* steps line draws in */
.steps li{border-top:0;position:relative}
.steps li::after{content:"";position:absolute;left:0;top:0;width:100%;height:4px;background:var(--red);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1);transition-delay:var(--fx-d,0s)}
.js .steps li:not(.in)::after{transform:scaleX(0)}

/* brand marquee */
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee .chips{flex-wrap:nowrap;width:max-content}
.marquee .chips a{white-space:nowrap}

/* header shrinks when scrolling */
.site-head{transition:box-shadow .25s}
.scrolled .site-head{box-shadow:0 8px 24px rgba(21,23,28,.10)}

/* reading progress on guides */
.progress{position:fixed;left:0;top:0;height:4px;width:100%;background:var(--red);transform-origin:left;transform:scaleX(0);z-index:80}

/* booking steps slide in */
.book-step.on{animation:stepIn .35s cubic-bezier(.2,.8,.2,1)}
@keyframes stepIn{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.book-done:not([hidden]){animation:pop .5s cubic-bezier(.3,1.6,.5,1)}
@keyframes pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}

/* counters and rating stars */
.facts b,.rating-num{font-variant-numeric:tabular-nums}

@media (prefers-reduced-motion:no-preference){
  /* appliances drop in one after another */
  .scene .ap{animation:dropIn .8s cubic-bezier(.2,1.4,.4,1) both;animation-delay:calc(var(--i) * 90ms + .2s)}
  @keyframes dropIn{from{opacity:0;transform:translateY(-40px)}to{opacity:1;transform:none}}
  .scene .shelf{animation:fadeIn 1s .1s both}
  @keyframes fadeIn{from{opacity:0}to{opacity:1}}

  .scene .drum{transform-origin:center;animation:tumble 3.2s linear infinite}
  .scene .drum.slow{animation-duration:4.6s}
  .scene .ap:hover .drum{animation-duration:.9s}
  @keyframes tumble{to{transform:rotate(360deg)}}
  .scene .wave{animation:wave 2.4s ease-in-out infinite}
  @keyframes wave{50%{transform:translate(-10px,3px)}}
  .scene .flames path{transform-box:fill-box;transform-origin:center bottom;animation:flick 1.6s ease-in-out infinite alternate;animation-delay:var(--d,0s)}
  @keyframes flick{from{transform:scaleY(.94)}to{transform:scaleY(1.06)}}
  .scene .steam circle{animation:rise 2.6s ease-out infinite;animation-delay:var(--d)}
  @keyframes rise{0%{opacity:0;transform:translateY(0) scale(.6)}25%{opacity:.85}100%{opacity:0;transform:translateY(-46px) scale(1.6)}}
  .scene .bubbles circle{animation:bubble 3s ease-out infinite;animation-delay:var(--d)}
  @keyframes bubble{0%{opacity:0;transform:translateY(0)}20%{opacity:.9}100%{opacity:0;transform:translateY(-40px) translateX(6px)}}
  .scene .ap:hover .bubbles circle{animation-duration:1.2s}
  .scene .dw-bar{animation:cycle 6s ease-in-out infinite}
  @keyframes cycle{0%{transform:scaleX(.05)}90%{transform:scaleX(1)}100%{transform:scaleX(1)}}
  .scene .drip{animation:drip 2.4s cubic-bezier(.6,0,1,1) infinite}
  @keyframes drip{0%,40%{opacity:0;transform:translateY(0)}45%{opacity:1}80%{opacity:1;transform:translateY(18px)}85%,100%{opacity:0;transform:translateY(18px)}}
  .scene .mw-food{transform-origin:center;animation:turn 3s ease-in-out infinite}
  @keyframes turn{0%,100%{transform:translateX(-14px) scaleX(.85)}50%{transform:translateX(14px) scaleX(1)}}
  .scene .disp-blade{transform-origin:center}
  .scene .ap:hover .disp-blade{animation:tumble .4s linear infinite}
  .scene .heat path{animation:shimmer 2.2s ease-in-out infinite}
  .scene .heat path:nth-child(2){animation-delay:.5s}.scene .heat path:nth-child(3){animation-delay:1s}
  @keyframes shimmer{0%{opacity:0;transform:translateY(6px)}40%{opacity:.8}100%{opacity:0;transform:translateY(-14px)}}
  .scene .snow text{animation:snow 3.6s linear infinite;animation-delay:var(--d)}
  @keyframes snow{0%{opacity:0;transform:translateY(-6px) rotate(0)}20%{opacity:.9}100%{opacity:0;transform:translateY(-34px) rotate(90deg)}}
  .scene .cube-drop{animation:cube 2.2s cubic-bezier(.5,0,1,1) infinite;animation-delay:var(--d)}
  @keyframes cube{0%{opacity:0;transform:translateY(-6px) rotate(0)}15%{opacity:1}70%{opacity:1;transform:translateY(38px) rotate(25deg)}100%{opacity:0;transform:translateY(38px) rotate(25deg)}}
  .scene .van{animation:drive 16s linear 2.5s infinite}
  @keyframes drive{0%{opacity:1;transform:translateX(-140px)}45%{opacity:1;transform:translateX(1420px)}46%,100%{opacity:0;transform:translateX(1420px)}}
  .scene .ap:hover .knob{animation:twist .6s ease-in-out}
  @keyframes twist{50%{transform:rotate(90deg)}}

  .mascot{animation:mascotIn .9s cubic-bezier(.3,1.5,.5,1) 1.4s both}
  .mascot img{animation:bob 3.2s ease-in-out 2.3s infinite}
  .mascot .bubble{animation:popIn .5s cubic-bezier(.3,1.6,.5,1) 2s both}
  @keyframes mascotIn{from{opacity:0;transform:translateY(40px) rotate(8deg)}to{opacity:1;transform:none}}
  @keyframes bob{50%{transform:translateY(-8px) rotate(-3deg)}}
  @keyframes popIn{from{opacity:0;transform:scale(.6)}to{opacity:1;transform:none}}


  .hero h1{animation:rise2 .9s cubic-bezier(.2,.8,.2,1) both}
  .hero h1 small{animation:rise2 .9s .1s cubic-bezier(.2,.8,.2,1) both}
  .hero .lead,.hero .btn-row{animation:rise2 .9s .25s cubic-bezier(.2,.8,.2,1) both}
  .hero .facts li{animation:rise2 .7s cubic-bezier(.2,.8,.2,1) both}
  .hero .facts li:nth-child(1){animation-delay:.35s}.hero .facts li:nth-child(2){animation-delay:.45s}.hero .facts li:nth-child(3){animation-delay:.55s}.hero .facts li:nth-child(4){animation-delay:.65s}
  @keyframes rise2{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:none}}
  .phero h1,.phero .lead{animation:rise2 .8s cubic-bezier(.2,.8,.2,1) both}
  .phero .lead{animation-delay:.12s}

  .btn-red:hover::after,.btn-white:hover::after{animation:sweep .7s ease-out}
  @keyframes sweep{from{left:-60%}to{left:130%}}
  .head-phone:hover::before,a[href^="tel:"].btn:hover svg{animation:ring .9s ease-in-out}
  @keyframes ring{0%,80%,100%{transform:rotate(0)}84%{transform:rotate(-16deg)}88%{transform:rotate(14deg)}92%{transform:rotate(-10deg)}96%{transform:rotate(8deg)}}
  .marquee .chips{animation:marq 38s linear infinite}
  .marquee:hover .chips{animation-play-state:paused}
  @keyframes marq{to{transform:translateX(-50%)}}
  .trust li{animation:rise2 .6s cubic-bezier(.2,.8,.2,1) both}
  .trust li:nth-child(2){animation-delay:.08s}.trust li:nth-child(3){animation-delay:.16s}.trust li:nth-child(4){animation-delay:.24s}.trust li:nth-child(5){animation-delay:.32s}
  .stars{display:inline-block}
}
@media (prefers-reduced-motion:reduce){
  .js [data-fx]{opacity:1;transform:none;transition:none}
  .scene .van{display:none}
  .scene .fr-door,.scene .fz-lid{transition:none}
}
/* keep the animated kitchen in the first screen on laptops */
.hero-top{padding-top:clamp(20px,3.2vw,40px)}
.hero h1{font-size:clamp(2.2rem,4.8vw,3.6rem);margin-bottom:.3em}
.hero .lead{font-size:1.05rem}
.hero .lead p{margin:0}
.hero .btn-row{margin-top:1em}
.scene-wrap{margin-top:clamp(12px,2vw,22px)}
.scene-hint{margin:8px 0 10px}
.hero-top{position:relative;grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)}
.mascot{position:absolute;right:6px;top:clamp(4px,1.5vw,18px);left:auto}
.mascot .bubble{right:92%;top:10px}
.hero .facts{margin-top:clamp(70px,9vw,120px)}
@media (max-width:1179px){.hero .facts{margin-top:0}}
.scene{max-width:1080px;margin-inline:auto}
/* header call-to-action: one line, same height as the phone link */
.btn{white-space:nowrap}
.head-cta{gap:14px;flex-shrink:0}
.head-cta .btn{padding:.62em 1.15em;font-size:.95rem;line-height:1.2;min-height:44px}
.head-cta .btn svg{width:1em;height:1em}
.head-phone{display:inline-flex;align-items:center;min-height:44px}
.site-head .wrap{gap:16px}
.nav a,.nav button{padding:10px 9px}
@media (max-width:1240px) and (min-width:1081px){.brand-txt span{display:none}.nav a,.nav button{padding:10px 7px;font-size:.92rem}}

/* anti-flicker: stable numbers, no layout shift while counting */
.facts b,.rating-num{font-variant-numeric:tabular-nums}

/* real photos */
.card-img{display:block;margin:-22px -22px 16px;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--steel-100);border-bottom:1px solid var(--steel-200)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
a.card:hover .card-img img{transform:scale(1.05)}
.svc-card{grid-template-columns:54px 1fr}
.svc-card .card-img{grid-column:1/-1}
.svc-card .card-img + svg{margin-top:-46px;background:#fff;border-radius:14px;padding:6px;box-shadow:0 6px 16px rgba(21,23,28,.16);width:58px;height:58px;position:relative}
.post-card .card-img{margin-bottom:6px}
.pic{margin:0 0 1.4em}
.pic img{aspect-ratio:3/2;display:block}
.pic figcaption small{opacity:.8;font-size:.8rem}
.pic figcaption a{color:#fff}

/* ===== mobile fixes ===== */
figure{margin:0}
img,svg,video,iframe{max-width:100%}
.wrap{min-width:0}
.quickpick{display:none}
@media (max-width:1179px){.hero-top{grid-template-columns:1fr}.hero .facts{margin-top:4px}}
@media (max-width:760px){
  html,body{overflow-x:clip}
  .topbar .tb-fee{display:none}
  .topbar .wrap{justify-content:center;padding-block:6px}
  .hero h1{font-size:clamp(2rem,9vw,2.6rem)}
  .hero .lead{font-size:1rem}
  .hero .btn-row{display:grid;grid-template-columns:1fr;gap:10px}
  .hero .btn-row .btn{width:100%}
  .facts li{padding:12px 12px}.facts b{font-size:1.25rem}
  .scene-wrap{overflow:visible;margin-top:18px}
  .scene{min-width:0;width:100%}
  .scene .tag,.scene .van{display:none}
  .scene-hint{display:none}
  .quickpick{display:block;margin-top:14px}
  .quickpick p{font:800 1.15rem var(--fh);margin:0 0 10px}
  .quickpick ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .quickpick a{display:flex;align-items:center;gap:10px;min-height:56px;padding:8px 12px;background:#fff;border:2px solid var(--ink);border-radius:14px;text-decoration:none;color:var(--ink);font-weight:700;font-size:.95rem;line-height:1.15}
  .quickpick a:active{background:var(--steel-100)}
  .quickpick svg{width:34px;height:34px;flex:none}
  .btn{white-space:normal;text-align:center}
  .head-cta .btn,.actionbar .btn{white-space:nowrap}
  .btn-row{flex-wrap:wrap}
  .card{padding:18px}.card-img{margin:-18px -18px 14px}
  .glance th,.glance td{padding:10px 12px}
  .sec{padding-block:clamp(40px,10vw,56px)}
  h2{font-size:clamp(1.5rem,6.4vw,1.9rem)}
  .crumbs{font-size:.85rem}
}
.glance{width:100%;table-layout:fixed}
.glance td,.glance th{overflow-wrap:anywhere}
@media (max-width:760px){
  .glance th{width:38%}
  .js [data-fx="left"],.js [data-fx="right"]{transform:translateY(22px)}
  .js [data-fx].in,.fx-off [data-fx]{transform:none}
}
/* quick-pick: keep labels inside the buttons at every phone width */
@media (max-width:760px){
  .quickpick ul{gap:8px}
  .quickpick a{gap:8px;padding:8px 10px;min-width:0;font-size:clamp(.8rem,3.7vw,.95rem);border-radius:12px}
  .quickpick svg{width:clamp(24px,7.5vw,32px);height:clamp(24px,7.5vw,32px)}
  .quickpick span{min-width:0;overflow-wrap:anywhere;hyphens:auto}
}
