/* Winchester HVAC design system, wh- prefix. Palette from the logo set. v7 2026-09-08 QA fixes */
:root{
  --wh-teal:#16707C; --wh-teal-dk:#0F5560; --wh-teal-lt:#E6F1F2;
  --wh-orange:#F08A22; --wh-orange-dk:#B56216;
  --wh-ink:#163238; --wh-slate:#2E3B47; --wh-text:#2A3238; --wh-muted:#5F6B72;
  --wh-cream:#F4EDDA; --wh-line:#E1E6E8; --wh-white:#ffffff;
  --wh-radius:14px;
}
body .wh-page{ color:var(--wh-text); font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif; font-size:17px; line-height:1.65; }
body .wh-page *{ box-sizing:border-box; }
body .wh-page h1,body .wh-page h2,body .wh-page h3,body .wh-page h4{ font-family:"Rubik","Inter",system-ui,sans-serif; color:var(--wh-ink); letter-spacing:-.01em; margin:0; }
body .wh-page h2{ font-size:clamp(1.7rem,3.2vw,2.5rem); font-weight:800; line-height:1.08; margin:0 0 .5em; }
body .wh-page h3{ font-size:1.22rem; font-weight:700; line-height:1.25; }
body .wh-page p{ margin:0 0 1em; }
body .wh-page a{ color:var(--wh-teal); }
body .wh-page .lead{ font-size:1.18rem; line-height:1.6; color:#3d474d; }
body .wh-page ul,body .wh-page ol{ padding-left:1.2em; margin:0 0 1em; }
body .wh-page li{ margin:.3em 0; }

/* release YOOtheme's 1200 container, the wh-wrap carries the measure */
body main.tm-main.uk-section{ padding-top:0; padding-bottom:0; }
body .tm-main > .uk-container{ max-width:none; padding-left:0; padding-right:0; }

/* rhythm */
.wh-wrap{ max-width:1200px; margin:0 auto; padding:0 24px; }
.wh-narrow{ max-width:780px; }
.wh-sec{ padding:84px 0; }
.wh-sec-sm{ padding:42px 0; }
@media (max-width:640px){ .wh-sec{ padding:56px 0; } }
.wh-alt{ background:#F7F9FA; }
.wh-cream{ background:var(--wh-cream); }

/* signature eyebrow: orange dotted dash, from the logo's dot rows */
.wh-label{ display:inline-flex; align-items:center; gap:12px; font-weight:800; text-transform:uppercase; letter-spacing:.18em; font-size:.74rem; color:var(--wh-orange); font-family:"Rubik","Inter",sans-serif; margin-bottom:14px; }
.wh-label::before{ content:""; width:28px; height:3px; border-radius:2px; background:var(--wh-orange); flex-shrink:0; }
.wh-label.on-dark{ color:var(--wh-cream); }
.wh-rule{ position:relative; height:2px; background:var(--wh-line); margin:24px 0; }
.wh-rule::before{ content:""; position:absolute; left:0; top:0; height:2px; width:90px; background:var(--wh-orange); }

/* buttons */
.wh-btn{ display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:54px; padding:0 28px; border-radius:999px; font-family:"Rubik","Inter",sans-serif; font-weight:800; font-size:1rem; letter-spacing:.02em; text-decoration:none!important; transition:transform .15s,background .2s,box-shadow .2s,color .2s; border:2px solid transparent; cursor:pointer; }
.wh-btn-primary{ background:var(--wh-orange); color:#fff!important; }
.wh-btn-primary:hover,.wh-btn-primary:focus{ background:var(--wh-orange-dk); color:#fff!important; transform:translateY(-2px); box-shadow:0 10px 24px rgba(240,138,34,.32); }
.wh-btn-ghost{ background:transparent; color:#fff!important; border-color:rgba(255,255,255,.45); }
.wh-btn-ghost:hover,.wh-btn-ghost:focus{ background:#fff; color:var(--wh-ink)!important; border-color:#fff; transform:translateY(-2px); }
.wh-btn-teal{ background:var(--wh-teal); color:#fff!important; }
.wh-btn-teal:hover,.wh-btn-teal:focus{ background:var(--wh-teal-dk); color:#fff!important; transform:translateY(-2px); }
.wh-btn-outline{ background:transparent; color:var(--wh-teal)!important; border-color:var(--wh-teal); }
.wh-btn-outline:hover,.wh-btn-outline:focus{ background:var(--wh-teal); color:#fff!important; }
.wh-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-top:2em; }

/* hero */
.wh-hero{ position:relative; overflow:hidden; background:var(--wh-ink); background-image:linear-gradient(115deg,#0F4C55 0%,var(--wh-teal) 55%,#1C8896 100%); padding:110px 0 0; color:#fff; }
.wh-hero::before{ content:""; position:absolute; inset:0; background-image:radial-gradient(rgba(244,237,218,.16) 1.4px,transparent 1.6px); background-size:26px 26px; opacity:.55; pointer-events:none; }
.wh-hero::after{ content:""; position:absolute; right:-140px; top:-80px; width:640px; height:640px; background:url('/wp-content/uploads/wh/winchester-hvac-badge-transparent.png') center/contain no-repeat; opacity:.13; pointer-events:none; }
.wh-hero .wh-wrap{ position:relative; z-index:1; }
.wh-hero .wh-label{ color:var(--wh-cream); }
.wh-hero h1{ color:#fff; margin:0; line-height:1; letter-spacing:-.02em; }
.wh-hero h1 .l1{ display:block; font-weight:900; font-size:clamp(2.4rem,6.2vw,4.6rem); }
.wh-hero h1 .l2{ display:block; font-weight:800; font-size:clamp(1.15rem,2.6vw,1.8rem); color:var(--wh-orange); margin-top:.3em; }
.wh-hero p{ color:#E9F2F3; max-width:620px; margin:1.4em 0 0; font-size:1.15rem; line-height:1.6; }
.wh-hero .wh-btn-ghost{ border-color:rgba(244,237,218,.55); }
.wh-ticker{ position:relative; z-index:1; margin-top:56px; border-top:1px solid rgba(255,255,255,.18); display:flex; flex-wrap:wrap; gap:10px 28px; padding:22px 0 30px; }
.wh-ticker span,.wh-ticker a{ color:#DCEBED; font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:.76rem; display:inline-flex; align-items:center; gap:10px; text-decoration:none; }
.wh-ticker span::before,.wh-ticker a::before{ content:""; width:7px; height:7px; background:var(--wh-orange); border-radius:50%; }
.wh-hero.sm{ padding:84px 0 64px; }
.wh-hero.sm h1 .l1{ font-size:clamp(2rem,4.8vw,3.4rem); }
.wh-hero.sm::after{ width:460px; height:460px; right:-120px; top:-40px; }
.wh-crumb{ display:flex; gap:8px; flex-wrap:wrap; font-size:.82rem; color:#C9DEE1; margin-bottom:18px; }
.wh-crumb a{ color:#C9DEE1; text-decoration:none; }
.wh-crumb span::before{ content:"/"; margin-right:8px; color:var(--wh-orange); }

/* promise band */
.wh-band{ background:var(--wh-ink); color:#fff; }
.wh-band .row{ display:grid; grid-template-columns:repeat(3,1fr); }
.wh-band .cell{ padding:30px 26px; border-left:1px solid rgba(255,255,255,.1); }
.wh-band .cell:first-child{ border-left:0; }
.wh-band .k{ font-family:"Rubik","Inter",sans-serif; font-weight:800; font-size:1.15rem; color:#fff; display:flex; align-items:center; gap:10px; }
.wh-band .k::before{ content:""; width:10px; height:10px; border-radius:50%; background:var(--wh-orange); flex:0 0 auto; }
.wh-band .d{ color:#B9CDD1; margin-top:.4em; font-size:.95rem; }
@media (max-width:760px){ .wh-band .row{ grid-template-columns:1fr; } .wh-band .cell{ border-left:0; border-top:1px solid rgba(255,255,255,.1); padding:20px 24px; } .wh-band .cell:first-child{ border-top:0; } }

/* two column */
.wh-two{ display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; }
@media (max-width:900px){ .wh-two{ grid-template-columns:1fr; gap:32px; } }
.wh-card{ background:#fff; border:1px solid var(--wh-line); border-radius:var(--wh-radius); padding:28px; }
.wh-card.teal{ background:var(--wh-teal); border-color:var(--wh-teal); color:#fff; }
.wh-card.teal h3{ color:#fff; }
.wh-card.teal p{ color:#DCEBED; }
.wh-card.teal .wh-phone{ color:#fff; }
.wh-card.cream{ background:var(--wh-cream); border-color:#EADFC4; }
.wh-phone{ display:inline-block; font-family:"Rubik","Inter",sans-serif; font-weight:900; font-size:1.7rem; color:var(--wh-ink); text-decoration:none!important; line-height:1.1; margin:.2em 0 .5em; }
.wh-phone:hover{ color:var(--wh-orange); }

/* check list */
.wh-checks{ list-style:none; padding:0; margin:18px 0 0; display:grid; grid-template-columns:1fr 1fr; gap:12px 28px; }
.wh-checks li{ position:relative; padding-left:32px; margin:0; }
.wh-checks li::before{ content:""; position:absolute; left:0; top:4px; width:20px; height:20px; border-radius:50%; background:var(--wh-teal); background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round' d='M5 10.5l3.2 3.2L15 7'/%3E%3C/svg%3E"); background-size:14px; background-position:center; background-repeat:no-repeat; }
.wh-checks.one{ grid-template-columns:1fr; }
@media (max-width:640px){ .wh-checks{ grid-template-columns:1fr; } }

/* services grid */
.wh-svc{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin-top:36px; }
.wh-svc a{ display:flex; flex-direction:column; gap:10px; background:#fff; border:1px solid var(--wh-line); border-radius:var(--wh-radius); padding:26px 24px 24px; text-decoration:none!important; color:var(--wh-text); transition:transform .18s,box-shadow .2s,border-color .2s; position:relative; overflow:hidden; }
.wh-svc a::before{ content:""; position:absolute; left:0; top:0; width:100%; height:4px; background:var(--wh-teal); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.wh-svc a:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(22,50,56,.12); border-color:#CFDDE0; }
.wh-svc a:hover::before{ transform:scaleX(1); }
.wh-svc .ic{ width:46px; height:46px; border-radius:12px; background:var(--wh-teal-lt); display:flex; align-items:center; justify-content:center; color:var(--wh-teal); }
.wh-svc .ic svg{ width:26px; height:26px; }
.wh-svc h3{ font-size:1.08rem; }
.wh-svc .desc{ color:var(--wh-muted); font-size:.95rem; line-height:1.5; }
.wh-svc .arw{ margin-top:auto; color:var(--wh-orange); font-weight:800; font-size:.85rem; letter-spacing:.08em; text-transform:uppercase; font-family:"Rubik","Inter",sans-serif; }
@media (max-width:1000px){ .wh-svc{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .wh-svc{ grid-template-columns:1fr; } }

/* why us dark */
.wh-why{ background:var(--wh-ink); color:#D6E3E6; position:relative; overflow:hidden; }
.wh-why::after{ content:""; position:absolute; left:-160px; bottom:-200px; width:560px; height:560px; background:url('/wp-content/uploads/wh/winchester-hvac-badge-transparent.png') center/contain no-repeat; opacity:.07; pointer-events:none; }
.wh-why .wh-wrap{ position:relative; z-index:1; }
.wh-why h2,.wh-why h3{ color:#fff; }
.wh-why .grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:28px 40px; margin-top:36px; }
.wh-why .item{ display:grid; grid-template-columns:44px 1fr; gap:16px; }
.wh-why .tick{ width:44px; height:44px; border-radius:12px; background:rgba(240,138,34,.16); border:1px solid rgba(240,138,34,.4); display:flex; align-items:center; justify-content:center; color:var(--wh-orange); font-family:"Rubik","Inter",sans-serif; font-weight:900; }
.wh-why p{ color:#B9CDD1; margin:.4em 0 0; }
@media (max-width:760px){ .wh-why .grid{ grid-template-columns:1fr; } }

/* steps */
.wh-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:36px; counter-reset:step; }
.wh-steps .st{ background:#fff; border:1px solid var(--wh-line); border-radius:var(--wh-radius); padding:28px 24px; }
.wh-steps .st::before{ counter-increment:step; content:"0" counter(step); display:block; font-family:"Rubik","Inter",sans-serif; font-weight:900; font-size:2rem; color:var(--wh-orange); line-height:1; margin-bottom:12px; }
@media (max-width:800px){ .wh-steps{ grid-template-columns:1fr; } }

/* area pills */
.wh-areas{ display:flex; flex-wrap:wrap; gap:12px; margin-top:28px; }
.wh-areas a{ display:inline-flex; align-items:center; gap:10px; padding:12px 20px; border-radius:999px; background:#fff; border:1px solid var(--wh-line); color:var(--wh-ink); font-weight:700; text-decoration:none!important; transition:all .2s; }
.wh-areas a::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--wh-orange); }
.wh-areas a:hover{ background:var(--wh-teal); border-color:var(--wh-teal); color:#fff; }
.wh-areas a.now{ background:var(--wh-ink); border-color:var(--wh-ink); color:#fff; }

/* town cards */
.wh-towns{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
.wh-towns a{ display:block; background:#fff; border:1px solid var(--wh-line); border-radius:var(--wh-radius); padding:26px; text-decoration:none!important; color:var(--wh-text); transition:transform .18s,box-shadow .2s; }
.wh-towns a:hover{ transform:translateY(-4px); box-shadow:0 16px 34px rgba(22,50,56,.12); }
.wh-towns .st{ font-size:.78rem; letter-spacing:.14em; text-transform:uppercase; color:var(--wh-orange); font-weight:800; font-family:"Rubik","Inter",sans-serif; }
.wh-towns h3{ margin:.3em 0 .4em; }
.wh-towns p{ color:var(--wh-muted); font-size:.95rem; margin:0; }
@media (max-width:900px){ .wh-towns{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .wh-towns{ grid-template-columns:1fr; } }

/* FAQ, restyled UIkit accordion */
.wh-faq .uk-accordion{ margin-top:28px; border-top:1px solid var(--wh-line); }
.wh-faq .uk-accordion > li{ margin:0; border-bottom:1px solid var(--wh-line); }
.wh-faq .uk-accordion-title{ font-family:"Rubik","Inter",sans-serif; font-weight:700; font-size:1.08rem; color:var(--wh-ink); padding:20px 44px 20px 0; position:relative; text-decoration:none; }
.wh-faq .uk-accordion-title::before{ content:""; position:absolute; right:0; top:50%; width:22px; height:22px; margin-top:-11px; border-radius:50%; background:var(--wh-teal-lt) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%2316707C' stroke-width='2.2' stroke-linecap='round' d='M10 5v10M5 10h10'/%3E%3C/svg%3E") center/12px no-repeat; }
.wh-faq .uk-open > .uk-accordion-title::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%2316707C' stroke-width='2.2' stroke-linecap='round' d='M5 10h10'/%3E%3C/svg%3E"); }
.wh-faq .uk-accordion-content{ margin:0; padding:0 0 22px; color:var(--wh-text); }

/* CTA band */
.wh-cta{ background:var(--wh-orange); color:#fff; text-align:center; position:relative; overflow:hidden; }
.wh-cta .wh-wrap{ position:relative; z-index:1; }
.wh-cta h2{ color:#fff; font-size:clamp(1.8rem,3.6vw,2.7rem); }
.wh-cta p{ color:#FFF3E5; font-size:1.15rem; max-width:640px; margin:0 auto; }
.wh-cta .wh-actions{ justify-content:center; }
.wh-cta .wh-btn-primary{ background:var(--wh-ink); }
.wh-cta .wh-btn-primary:hover{ background:#0b1c20; box-shadow:0 10px 24px rgba(0,0,0,.25); }
.wh-cta .wh-btn-ghost{ border-color:rgba(255,255,255,.7); }
.wh-cta .wh-btn-ghost:hover{ color:var(--wh-orange-dk)!important; }

/* estimate: form + info */
.wh-estimate .wh-two{ grid-template-columns:1.15fr 1fr; }
.wh-formwrap{ background:#fff; border:1px solid var(--wh-line); border-radius:var(--wh-radius); padding:18px; min-height:640px; }
.wh-formwrap iframe{ min-height:600px; display:block; }
.wh-info h3{ margin-bottom:.4em; }
.wh-info .row{ display:grid; grid-template-columns:1fr; gap:18px; margin-top:20px; }
.wh-info .it{ display:grid; grid-template-columns:42px 1fr; gap:14px; align-items:start; }
.wh-info .it .ic{ width:42px; height:42px; border-radius:11px; background:var(--wh-teal-lt); color:var(--wh-teal); display:flex; align-items:center; justify-content:center; }
.wh-info .it .ic svg{ width:22px; height:22px; }
.wh-info .it b{ display:block; color:var(--wh-ink); font-family:"Rubik","Inter",sans-serif; }
.wh-info .it p{ margin:0; color:var(--wh-muted); font-size:.95rem; }

/* prose */
.wh-prose h2{ font-size:clamp(1.45rem,2.6vw,2rem); margin-top:1.6em; }
.wh-prose h2:first-child{ margin-top:0; }
.wh-prose h3{ margin:1.4em 0 .5em; }

/* related list */
.wh-related{ list-style:none; padding:0; margin:18px 0 0; display:grid; grid-template-columns:1fr; gap:8px; }
.wh-related a{ display:flex; justify-content:space-between; align-items:center; padding:14px 18px; border:1px solid var(--wh-line); border-radius:10px; text-decoration:none!important; color:var(--wh-ink); font-weight:700; background:#fff; }
.wh-related a::after{ content:"\2192"; color:var(--wh-orange); }
.wh-related a:hover{ border-color:var(--wh-teal); color:var(--wh-teal); }

/* notice */
.wh-notice{ background:var(--wh-cream); border:1px solid #EADFC4; border-radius:var(--wh-radius); padding:24px 28px; }
.wh-notice b{ color:var(--wh-ink); }

/* header chrome */
body .tm-toolbar.tm-toolbar-default{ background:var(--wh-ink)!important; background-image:none!important; color:#fff; }
body .tm-toolbar .uk-container{ max-width:none; padding-left:40px; padding-right:40px; }
.wh-tb{ display:flex; align-items:center; gap:22px; font-size:.86rem; color:#D6E3E6; }
.wh-tb a{ color:#fff; text-decoration:none; font-weight:700; }
.wh-tb a:hover{ color:var(--wh-orange); }
.wh-tb .wh-btn{ min-height:38px; padding:0 18px; font-size:.82rem; }
.wh-tb .dot::before{ content:""; display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--wh-orange); margin-right:8px; vertical-align:middle; }
body .tm-header .uk-navbar-container{ background:#fff; }
body .tm-header .uk-navbar-nav > li > a{ font-family:"Rubik","Inter",sans-serif; font-weight:700; color:var(--wh-ink); text-transform:none; font-size:.98rem; letter-spacing:0; min-height:88px; }
body .tm-header .uk-navbar-nav > li:hover > a,body .tm-header .uk-navbar-nav > li.uk-active > a{ color:var(--wh-teal); }
body .tm-header .uk-drop,body .tm-header .uk-navbar-dropdown,body .uk-navbar-container .uk-navbar-dropdown{ position:absolute!important; }
body .uk-navbar-dropdown{ background:#fff; border-radius:12px; box-shadow:0 18px 40px rgba(22,50,56,.16); padding:18px 22px; width:300px; }
body .uk-navbar-dropdown-nav > li > a{ color:var(--wh-ink); font-weight:600; padding:7px 0; }
body .uk-navbar-dropdown-nav > li > a:hover{ color:var(--wh-teal); }
body .uk-logo img{ max-height:64px; width:auto; }
body .uk-logo{ flex-shrink:0; }
body .uk-offcanvas-bar{ background:var(--wh-ink); }
body .uk-offcanvas-bar .uk-nav > li > a{ color:#fff; font-family:"Rubik","Inter",sans-serif; font-weight:700; font-size:1.05rem; }
body .uk-offcanvas-bar .uk-nav-sub a{ color:#B9CDD1; }
body .uk-offcanvas-bar .uk-nav-parent-icon > a::after{ filter:invert(1); }

/* mobile sticky call bar (HFCM Mobile Buttons) */
body .mobile-buttons{ display:none; }
@media (max-width:1099px){
  body .mobile-buttons{ display:flex!important; position:fixed; top:0; left:0; right:0; z-index:1000!important; width:100%; }
  body .mobile-buttons ul{ display:grid!important; grid-template-columns:1fr 1fr; width:100%; margin:0; padding:0; list-style:none; }
  body .mobile-buttons li{ margin:0; }
  body .mobile-buttons a{ display:flex; align-items:center; justify-content:center; height:60px; font-family:"Rubik","Inter",sans-serif; font-weight:800; font-size:.95rem; text-decoration:none; color:#fff; letter-spacing:.02em; }
  body .mobile-buttons .button-left{ background:var(--wh-orange); }
  body .mobile-buttons .button-right{ background:var(--wh-teal); }
  body .tm-page{ padding-top:60px; }
}

/* footer */
body footer.tm-footer,body .tm-footer .uk-section-default{ background:var(--wh-ink); }
body .tm-footer .uk-container.uk-container-expand,body footer .uk-container{ padding-left:0!important; padding-right:0!important; max-width:none!important; }
body footer .uk-grid.tm-grid-expand{ margin-left:0!important; }
body footer .uk-grid.tm-grid-expand > *{ padding-left:0!important; }
body footer .uk-section{ padding:0; }
.wh-footer{ background:var(--wh-ink); color:#B9CDD1; font-family:"Inter",system-ui,sans-serif; font-size:.95rem; }
.wh-footer .top{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding:64px 0 48px; }
.wh-footer h4{ color:#fff; font-family:"Rubik","Inter",sans-serif; font-weight:800; font-size:.86rem; letter-spacing:.14em; text-transform:uppercase; margin:0 0 16px; }
.wh-footer ul{ list-style:none; padding:0; margin:0; }
.wh-footer li{ margin:0 0 9px; }
.wh-footer a{ color:#D6E3E6; text-decoration:none; }
.wh-footer a:hover{ color:var(--wh-orange); }
.wh-footer .mark{ display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.wh-footer .mark img{ width:64px; height:64px; display:block; }
.wh-footer .mark b{ display:block; color:#fff; font-family:"Rubik","Inter",sans-serif; font-weight:900; font-size:1.25rem; line-height:1.05; letter-spacing:-.01em; }
.wh-footer .mark span{ display:block; color:var(--wh-orange); font-family:"Rubik","Inter",sans-serif; font-weight:700; font-size:.72rem; letter-spacing:.18em; text-transform:uppercase; margin-top:4px; }
.wh-footer .brand p{ max-width:340px; margin:0 0 14px; }
.wh-footer .brand .wh-phone{ color:#fff; font-size:1.4rem; }
.wh-footer .bottom{ border-top:1px solid rgba(255,255,255,.1); padding:22px 0; display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; font-size:.85rem; color:#8FA6AC; }
.wh-footer .bottom a{ color:#8FA6AC; }
@media (max-width:900px){ .wh-footer .top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .wh-footer .top{ grid-template-columns:1fr; padding:48px 0 32px; } }
@media (max-width:1099px){ body{ padding-bottom:0; } }

/* ---- v2 specificity fixes (theme h1/h3/a rules were winning) ---- */
body .wh-page .wh-hero h1,body .wh-page .wh-hero h1 .l1{ color:#fff; }
body .wh-page .wh-hero h1 .l2{ color:var(--wh-orange); }
body .wh-page .wh-hero .wh-label{ color:var(--wh-cream); }
body .wh-page .wh-ticker a,body .wh-page .wh-ticker span{ color:#DCEBED; }
body .wh-page .wh-crumb a{ color:#C9DEE1; }
body .wh-page .wh-crumb a:hover{ color:#fff; }
body .wh-page .wh-why h2,body .wh-page .wh-why h3{ color:#fff; }
body .wh-page .wh-why p{ color:#B9CDD1; }
body .wh-page .wh-card.teal h3,body .wh-page .wh-card.teal .wh-phone{ color:#fff; }
body .wh-page .wh-card.teal p{ color:#DCEBED; }
body .wh-page .wh-cta h2{ color:#fff; }
body .wh-page .wh-cta p{ color:#FFF3E5; }
body .wh-page .wh-band .k{ color:#fff; }
body .wh-page .wh-label.on-dark{ color:var(--wh-cream); }
body .wh-page .wh-svc a,body .wh-page .wh-towns a,body .wh-page .wh-areas a,body .wh-page .wh-related a{ color:var(--wh-ink); }
body .wh-page .wh-svc h3,body .wh-page .wh-towns h3{ color:var(--wh-ink); }
body .wh-page .wh-areas a:hover,body .wh-page .wh-areas a.now{ color:#fff; }
body .wh-page .wh-related a:hover{ color:var(--wh-teal); }
body .wh-page .wh-svc .arw,body .wh-page .wh-towns .st{ color:var(--wh-orange); }
body .wh-page .wh-svc .desc,body .wh-page .wh-towns p{ color:var(--wh-muted); }
@media (max-width:900px){ body .wh-page .wh-estimate .wh-two{ grid-template-columns:1fr; } }
body .uk-logo img{ max-height:80px; }
@media (max-width:1099px){
  body .mobile-buttons .button-left{ background:var(--wh-orange)!important; color:#fff!important; }
  body .mobile-buttons .button-right{ background:var(--wh-teal)!important; color:#fff!important; }
}

@media (prefers-reduced-motion:reduce){ .wh-page *{ transition:none!important; } }

/* v3 phone pass. mobile header is a separate YOOtheme header (tm-header-mobile), style it like the desktop one */
body .tm-header-mobile .uk-navbar-container{ background:#fff; border-bottom:1px solid var(--wh-line); }
body .tm-header-mobile .uk-container{ padding-left:24px!important; padding-right:24px!important; }
body .tm-header-mobile .uk-logo img{ max-height:56px; }
body .tm-header-mobile .uk-navbar-toggle{ color:var(--wh-ink); }
/* hero on phones: badge as a real element, no ghost watermark, tighter top */
.wh-hero-badge{ display:none; }
@media (max-width:760px){
  .wh-hero{ padding-top:56px; }
  .wh-hero::after,.wh-hero.sm::after{ display:none; }
  .wh-hero-badge{ display:block; width:88px; height:88px; margin:0 0 20px; filter:drop-shadow(0 6px 14px rgba(0,0,0,.25)); }
  .wh-label{ letter-spacing:.14em; font-size:.7rem; }
  .wh-hero h1 .l1{ font-size:2.35rem; }
  .wh-hero p{ font-size:1.05rem; }
  .wh-ticker{ margin-top:36px; gap:8px 18px; }
  .wh-actions{ gap:10px; }
  .wh-actions .wh-btn{ width:100%; }
}
/* towns on phones: two even columns instead of a ragged pill stack */
@media (max-width:640px){
  .wh-areas{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
  .wh-areas a{ padding:11px 10px; font-size:.86rem; justify-content:flex-start; white-space:nowrap; gap:8px; }
  .wh-formwrap{ padding:10px; }
  .wh-cta{ text-align:left; }
  .wh-cta p{ margin:0; }
  .wh-cta .wh-actions{ justify-content:flex-start; }
  .wh-footer .top{ gap:28px; }
}

/* v4: the 60px the page reserves for the fixed call bar showed the theme's grey html background, paint it white.
   footer lists sit two up on phones so the footer is half as tall. */
@media (max-width:1099px){ html,body{ background:#fff!important; } }

/* v5: footer centered on phones, Zack: "I like keeping things centered on that" */
@media (max-width:560px){
  .wh-footer .top{ grid-template-columns:1fr 1fr; gap:28px 16px; text-align:center; padding:44px 0 28px; }
  .wh-footer .brand{ grid-column:1 / -1; display:flex; flex-direction:column; align-items:center; }
  .wh-footer .mark{ flex-direction:column; gap:10px; text-align:center; }
  .wh-footer .brand p{ max-width:320px; margin:0 auto 12px; }
  .wh-footer h4{ margin-bottom:12px; }
  .wh-footer .bottom{ justify-content:center; text-align:center; flex-direction:column; gap:6px; }
  .wh-footer .top > div:last-child{ grid-column:1 / -1; }  /* Company alone on the second row, centered across both columns */
}
/* v5: the call bar. The template's snippet CSS pushed body down 70px on top of the 60px the page reserves,
   so the header floated 130px down with a white hole above it. One reservation, the bar's own height. */
@media (max-width:1099px){
  html{ padding-top:0!important; margin-top:0!important; }
  body{ margin-top:0!important; padding-top:0!important; }
  body .tm-page{ padding-top:56px!important; margin-top:0!important; }  /* the template's mobile bar snippet sets .tm-page margin-top:70px, it collapsed through body and read as a body offset */
  body .mobile-buttons a{ height:56px; font-size:.92rem; letter-spacing:.01em; }
  body .tm-header-mobile .uk-navbar-container{ box-shadow:0 1px 0 var(--wh-line); }
}
/* v5: compact hero for the contact page, the form is the point of that page */
.wh-hero.compact{ padding:64px 0 48px; }
.wh-hero.compact::after{ display:none; }
.wh-hero.compact .wh-hero-badge{ display:none; }
@media (max-width:760px){
  .wh-hero.compact{ padding:36px 0 32px; }
  .wh-hero.compact h1 .l1{ font-size:2rem; }
  .wh-hero.compact p{ margin-top:.9em; }
  .wh-estimate.first{ padding-top:36px; }
}

/* reviews band */
.wh-reviews{ background:#fff; }
.wh-reviews-slot{ margin-top:10px; min-height:0; }
.wh-notice .wh-reviews-slot{ margin-top:14px; }

/* QA 2026-09-08: the fixed call bar's anchors were content-box, 2px taller and wider than their slot */
@media (max-width:1099px){ body .mobile-buttons a{ box-sizing:border-box; border:0; } }
/* the hero paragraph gap lost to body .wh-page p (0,1,2) */
body .wh-page .wh-hero p{ margin:1.4em 0 0; }
@media (max-width:760px){ body .wh-page .wh-hero.compact p{ margin-top:.9em; } }
.wh-tel{ white-space:nowrap; font-weight:700; }
