/* ============================================================
   SwitcherMate — Premium WHITE design system
   Injected LAST in <head> (after each page's inline <style>).
   Flips the legacy dark-navy theme to a premium ivory/white system
   that matches the SwitcherMate Business site. Uses !important to
   beat the inline dark `!important` rules already on every page.
   Design layer only — no markup, script or content is touched.
   ============================================================ */

/* ---------- Self-hosted fonts ---------- */
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/bricolage-600.woff2') format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/bricolage-700.woff2') format('woff2')}
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/bricolage-800.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/jakarta-400.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/jakarta-500.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/jakarta-600.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/jakarta-700.woff2') format('woff2')}
@font-face{font-family:'Plus Jakarta Sans';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/jakarta-800.woff2') format('woff2')}

/* ---------- 'Inter' alias -> Plus Jakarta Sans ----------
   Dozens of legacy components (and JS-rendered cards) hard-code
   font-family:'Inter', but Inter is never loaded on any page. Rather
   than chase every selector, we redefine the 'Inter' family to point at
   the self-hosted Jakarta woff2 files, so every existing/inline/JS
   `font-family:'Inter'` renders as Plus Jakarta Sans with no markup
   change. (Leaves the 'Arial Black' O2 provider glyph untouched.) */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/assets/fonts/jakarta-400.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/assets/fonts/jakarta-500.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/assets/fonts/jakarta-600.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/assets/fonts/jakarta-700.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:800;font-display:swap;src:url('/assets/fonts/jakarta-800.woff2') format('woff2')}
@font-face{font-family:'Inter';font-style:normal;font-weight:900;font-display:swap;src:url('/assets/fonts/jakarta-800.woff2') format('woff2')}

/* ---------- Design tokens ---------- */
:root{
  --pm-ground:#f7f9fb;      /* page ground */
  --pm-paper:#ffffff;       /* cards / surfaces */
  --pm-fill:#eef2f8;        /* recessed fills (tab tracks, chips) */
  --pm-fill-2:#e8eef6;      /* deeper fill / hover */
  --pm-ink:#0e1c30;         /* headings + strong */
  --pm-body:#33465c;        /* body text */
  --pm-muted:#5b6b80;       /* secondary / muted */
  --pm-line:rgba(14,28,48,0.10);   /* hairlines */
  --pm-line-2:rgba(14,28,48,0.06); /* faint hairlines */
  --pm-accent:#2E7DD2;      /* brand blue */
  --pm-accent-dk:#1f5fa8;   /* darker blue (hover / gradient) */
  --pm-shadow:0 4px 20px -6px rgba(14,28,48,0.12);
  --pm-shadow-lg:0 18px 48px -12px rgba(14,28,48,0.18);

  /* Re-point the per-page custom properties used by guide/news/speed
     pages so their var()-driven declarations recolour automatically. */
  --text:var(--pm-ink) !important;
  --muted:var(--pm-muted) !important;
  --blue:var(--pm-accent) !important;
  --sm-surface:var(--pm-paper) !important;
  --shadow:var(--pm-shadow) !important;
  --sm-shadow:var(--pm-shadow) !important;
}

/* ---------- Ground + base type ---------- */
html,body{
  background-color:var(--pm-ground) !important;
  background-image:none !important;
  color:var(--pm-body) !important;
}
body{
  font-family:'Plus Jakarta Sans',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif !important;
  -webkit-font-smoothing:antialiased;
}
/* Kill the moving dark dot-grid */
body::after{display:none !important;content:none !important}

/* Headings — display face + ink */
h1,h2,h3,h4{
  font-family:'Bricolage Grotesque','Plus Jakarta Sans',system-ui,sans-serif !important;
  color:var(--pm-ink) !important;
}

/* Links default to brand blue (specific components refine below) */
a{color:var(--pm-accent)}

/* Selection + focus */
::selection{background:rgba(46,125,210,0.16)}
:focus-visible{outline:2px solid var(--pm-accent) !important;outline-offset:3px}

/* Scrollbar → light */
::-webkit-scrollbar-track{background:transparent !important}
::-webkit-scrollbar-thumb{background:rgba(14,28,48,0.18) !important}

/* ---------- Header ---------- */
header,.header{
  background:rgba(255,255,255,0.88) !important;
  -webkit-backdrop-filter:saturate(180%) blur(12px);
  backdrop-filter:saturate(180%) blur(12px);
  border-bottom:1px solid var(--pm-line) !important;
}
.menu-btn:hover{background:var(--pm-fill) !important}
.menu-btn span{background:var(--pm-ink) !important}

/* ---------- LOGO (wordmark via CSS only) ---------- */
.brand-text,.foot-brand,.brand{
  font-family:'Bricolage Grotesque',system-ui,sans-serif !important;
  text-transform:uppercase !important;
  letter-spacing:.04em !important;
  font-weight:800 !important;
  color:var(--pm-ink) !important;
}
.brand-text{font-size:1.15rem !important}
/* Kill the two-tone (both class-based and inline-styled spans) */
.brand-blue,.brand-green,
.brand-text span,.foot-brand span,.brand span{
  color:var(--pm-ink) !important;
  -webkit-text-fill-color:var(--pm-ink) !important;
}

/* ---------- Desktop nav ---------- */
.nav-link{color:var(--pm-muted) !important;font-family:'Plus Jakarta Sans',sans-serif !important}
.nav-link:hover{color:var(--pm-ink) !important;background:var(--pm-fill) !important}
.nav-dropdown-menu{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow-lg) !important;
}
.nav-dropdown-item{color:var(--pm-body) !important}
.nav-dropdown-item:hover{color:var(--pm-ink) !important;background:var(--pm-fill) !important}
.nav-dropdown-label svg{opacity:.55}

/* ---------- Mobile menu (light panel) ---------- */
.menu{
  background:var(--pm-paper) !important;
  border-left:1px solid var(--pm-line) !important;
  box-shadow:none !important;
}
.menu.open{box-shadow:-28px 0 70px rgba(14,28,48,0.16) !important}
.menu-head{border-bottom:1px solid var(--pm-line) !important}
.menu-close{color:var(--pm-muted) !important}
.menu-close:hover{background:var(--pm-fill) !important;color:var(--pm-ink) !important}
.menu-section-btn{color:var(--pm-muted) !important;border-bottom:1px solid var(--pm-line-2) !important}
.menu-section-btn:hover{color:var(--pm-body) !important}
.menu-section-btn.open{color:var(--pm-ink) !important}
.menu-link{color:var(--pm-body) !important;font-family:'Plus Jakarta Sans',sans-serif !important}
.menu-link:hover{color:var(--pm-ink) !important;background:var(--pm-fill) !important}
.backdrop.open{background:rgba(14,28,48,.28) !important}

/* ---------- Footer ---------- */
footer{
  background:var(--pm-paper) !important;
  border-top:1px solid var(--pm-line) !important;
}
.foot-link{color:var(--pm-muted) !important}
.foot-link:hover{color:var(--pm-ink) !important}
.foot-sep{color:var(--pm-muted) !important;opacity:.55}
.foot-legal-btn{color:var(--pm-muted) !important}
.foot-legal-btn:hover{color:var(--pm-ink) !important}
.foot-legal-menu{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow-lg) !important;
}
.foot-legal-item{color:var(--pm-body) !important}
.foot-legal-item:hover{color:var(--pm-ink) !important;background:var(--pm-fill) !important}
.foot-meta{color:var(--pm-muted) !important}

/* ---------- Hero ---------- */
.hero{background:transparent !important}
.hero h1{color:var(--pm-ink) !important}
/* the plain (uncoloured) hero span → ink; keep inline-coloured accent spans */
.hero h1 span:not([style]){color:var(--pm-ink) !important}
.hero p{color:var(--pm-muted) !important}
.hero-sub{color:var(--pm-muted) !important}

/* ============================================================
   HOMEPAGE COMPARISON TOOL — REVERTED TO ORIGINAL INLINE STYLING
   The search widget, results view, filters, broadband / SIM /
   device deal cards and the energy wizard are intentionally NOT
   re-themed. The operator wants the deal-card experience exactly
   as it was before the premium-white flip (pre-premium commit
   46440b3), so every premium rule that styled them has been
   removed and they render entirely from index.html's own inline
   <style>. Newsletter inputs (.nl-*, news page only) are preserved
   below because they share nothing with the homepage deal flow.
   ============================================================ */

/* The premium design tokens re-point index.html's page-level custom
   properties (--blue / --shadow) on :root so guide/news/speed pages
   recolour automatically. That re-point must NOT reach the homepage
   comparison tool, whose inline styles consume var(--shadow) (the
   active-tab / filter-pill blue glow). Restore the ORIGINAL token
   values on the search + results containers so the deal area renders
   its pre-premium (46440b3) values exactly. */
#search,#res,#res-mob,#eres{
  --blue:#2E7DD2 !important;
  --green:#4CAF50 !important;
  --shadow:0 10px 30px -5px rgba(46,125,210,0.4) !important;
}

/* ---------- Newsletter input (news page only) ---------- */
.nl-input{
  background:var(--pm-paper) !important;
  border:1.5px solid var(--pm-line) !important;
  color:var(--pm-ink) !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
}
.nl-input:focus{
  border-color:var(--pm-accent) !important;
  background:#fff !important;
  box-shadow:0 0 0 3px rgba(46,125,210,0.14) !important;
}
.nl-input::placeholder{color:var(--pm-muted) !important;opacity:.8}

/* ---------- Legal / long-form pages ---------- */
.content{background:transparent !important}
.content h1,.content h2,.content h3{color:var(--pm-ink) !important}
.content p,.content li,.content ul{color:var(--pm-body) !important}
.content strong{color:var(--pm-ink) !important}
.content em{color:var(--pm-muted) !important}
.content a{color:var(--pm-accent) !important}
.content hr,hr{border-top:1px solid var(--pm-line) !important}
.back-btn{
  color:var(--pm-body) !important;
  -webkit-text-fill-color:var(--pm-body) !important;
  border:1px solid var(--pm-line) !important;
  background:var(--pm-paper) !important;
}
.back-btn:hover{background:var(--pm-fill) !important}

/* ---------- Contact form ---------- */
.field label{color:var(--pm-body) !important}
.field .opt{color:var(--pm-muted) !important}
.field input,.field textarea{
  background:var(--pm-paper) !important;
  border:1.5px solid var(--pm-line) !important;
  color:var(--pm-ink) !important;
}
.field input:focus,.field textarea:focus{border-color:var(--pm-accent) !important;background:#fff !important}
.field input::placeholder,.field textarea::placeholder{color:var(--pm-muted) !important;opacity:.75}
.type-btn{
  background:var(--pm-paper) !important;
  border:1.5px solid var(--pm-line) !important;
  color:var(--pm-body) !important;
}
.type-btn:hover,.type-btn.selected{
  border-color:var(--pm-accent) !important;
  background:#f2f7fd !important;
  color:var(--pm-ink) !important;
}

/* ---------- Guides (var()-driven; plus literal-dark overrides) ---------- */
.breadcrumb{color:var(--pm-muted) !important}
.breadcrumb span.current{color:var(--pm-ink) !important}
.breadcrumb span.sep{color:var(--pm-muted) !important;opacity:.55}

.guide-hero__summary{color:var(--pm-body) !important}

.guide-toc{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.guide-toc__toggle{background:var(--pm-fill) !important;color:var(--pm-ink) !important}
.guide-toc__list li{border-bottom:1px solid var(--pm-line-2) !important}

.prose p,.prose li{color:var(--pm-body) !important}
.prose h2,.prose h3,.prose strong{color:var(--pm-ink) !important}
.prose a:not(.guide-card__read){color:var(--pm-accent) !important}

.stat-callout,.tip-box{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  border-left:4px solid var(--pm-accent) !important;
  box-shadow:var(--pm-shadow) !important;
}
.stat-callout__stat{color:var(--pm-ink) !important}
.stat-callout__src,.tip-box .src{color:var(--pm-muted) !important}
.tip-box{color:var(--pm-body) !important}
.tip-box strong{color:var(--pm-ink) !important}
.warn-box{
  background:#fff7ed !important;
  border:1px solid #fcd9a8 !important;
  border-left:4px solid #e07a00 !important;
  color:var(--pm-body) !important;
}
.warn-box strong{color:var(--pm-ink) !important}

/* Mid-content postcode checker */
.mid-check{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow-lg) !important;
}
.mid-check .s-label{color:var(--pm-ink) !important}
.mid-check .pc-icon{color:var(--pm-muted) !important}
.mid-check .pc-input{
  background:var(--pm-paper) !important;
  border:1.5px solid var(--pm-line) !important;
  color:var(--pm-ink) !important;
}
.mid-check .pc-input:focus{border-color:var(--pm-accent) !important;background:#fff !important}
.mid-check .btn-search{background:var(--pm-accent) !important;color:#fff !important}
.mid-check .guide-pc-err,.guide-pc-err{color:#c0392b !important}

/* FAQ (guide, town & speed variants) */
.faq-wrap,.faq-wrap h2{color:var(--pm-ink) !important}
.faq-item,.page-wrap .faq-item{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow) !important;
}
.faq-item.open{border-left-color:var(--pm-accent) !important}
.faq-question,.faq-q{color:var(--pm-ink) !important}
.faq-question:hover,.faq-question:focus-visible{color:var(--pm-accent) !important}
.faq-answer,.faq-answer-inner,.faq-a,.page-wrap .faq-a{color:var(--pm-body) !important}

/* Guide / news cards */
.guide-card{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow) !important;
}
.guide-card:hover,.guide-card--link:hover,.guide-card--link:focus-visible{
  background:#f2f7fd !important;
  border-color:rgba(46,125,210,.35) !important;
}
.guide-card__title{color:var(--pm-ink) !important}
.guide-card__desc{color:var(--pm-muted) !important}
.guide-card__meta{color:var(--pm-muted) !important}
.guide-card__read{color:var(--pm-accent) !important}

/* Hub pages */
.hub-hero h1{color:var(--pm-ink) !important}
.hub-hero p{color:var(--pm-body) !important}
.hub-cta{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.hub-cta p{color:var(--pm-ink) !important}
.hub-cta a{background:var(--pm-accent) !important;color:#fff !important}

/* ---------- News page ---------- */
.news-tab{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  color:var(--pm-body) !important;
}
.news-tab.active{background:var(--pm-accent) !important;color:#fff !important;border-color:var(--pm-accent) !important}
.news-tab:hover:not(.active){color:var(--pm-ink) !important;border-color:rgba(46,125,210,.35) !important}
.section-label,.news-status-line{color:var(--pm-muted) !important}
.newsletter-box{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.newsletter-box h3{color:var(--pm-ink) !important}
.newsletter-box p{color:var(--pm-muted) !important}
.load-more{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;color:var(--pm-body) !important}
.load-more:hover{border-color:var(--pm-accent) !important;color:var(--pm-accent) !important}
.nl-msg.ok{color:#2f8f4e !important}
.nl-msg.err{color:#c0392b !important}

/* ---------- Town / location pages ---------- */
/* Town template scopes text white via the #page-wrap ID selector, which
   out-ranks generic element rules — match its specificity to win. */
#page-wrap{color:var(--pm-body) !important}
#page-wrap h1,#page-wrap h2,#page-wrap h3,#page-wrap h4{color:var(--pm-ink) !important}
.content-page{background:transparent !important}
.stat{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
.stat:hover{background:var(--pm-fill-2) !important;border-color:rgba(46,125,210,.4) !important}
.stat-label{color:var(--pm-body) !important}
.section-block p{color:var(--pm-body) !important}
.section-block h2 span{color:var(--pm-accent) !important}
.town-link{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  color:var(--pm-body) !important;
}
.town-link:hover{background:#f2f7fd !important;border-color:rgba(46,125,210,.3) !important;color:var(--pm-ink) !important}
.search-widget{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow) !important;
}
.search-widget>p{color:var(--pm-muted) !important}
.avail-table th{background:var(--pm-fill) !important;color:var(--pm-muted) !important}
.avail-table td{color:var(--pm-body) !important;border-bottom:1px solid var(--pm-line-2) !important}
.note-text{color:var(--pm-muted) !important}

/* ---------- Speed page ---------- */
.pill{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important;color:var(--pm-body) !important}
.mtable th{color:var(--pm-muted) !important;border-bottom:1px solid var(--pm-line) !important}
.mtable td{color:var(--pm-body) !important;border-bottom:1px solid var(--pm-line-2) !important}
.cta-box{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.cta-box p{color:var(--pm-body) !important}
.spd-eyebrow{color:var(--pm-muted) !important}
.spd-metric-card{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow) !important;
}
.spd-metric-card p{color:var(--pm-body) !important}
.spd-section-title{color:var(--pm-ink) !important}
.spd-table-wrap{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important}
.spd-compare-table thead th{background:var(--pm-fill) !important;color:var(--pm-muted) !important;border-bottom:1px solid var(--pm-line) !important}
.spd-tip-list li{color:var(--pm-body) !important}
.spd-postcode-after-faq .mid-check{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow-lg) !important}

/* NOTE: the Speed-Test gauge (.speed-box) and Broadband Health Check
   monitor (.w-monitor) are now fully premium-white — see the dedicated
   SPEED-TEST PAGE block near the end of this file. CSS-only recolour of
   surfaces, gauge arcs/readouts, chips and CTAs; JS toggle states are
   preserved (only presentation is overridden). Canvas-drawn chart and
   a few JS-baked hex palettes remain (documented as needs-markup). */

/* ---------- Loading overlay ---------- */
#sm-loading{
  background:var(--pm-ground) !important;
  background-image:radial-gradient(circle,rgba(14,28,48,0.05) 1px,transparent 1px) !important;
}
.sm-loading__address{color:var(--pm-ink) !important}
.sm-loading__step{color:var(--pm-muted) !important}
.sm-loading__count-label{color:var(--pm-muted) !important}
.sm-loading__divider,.sm-loading__progress-track{background:var(--pm-line) !important}

/* ============================================================
   POLISH PASS — flagship widget cards + guide/town remnants
   ============================================================ */

/* ---------- Footer: business-deals link (inline white) ---------- */
.foot-meta a{
  color:var(--pm-accent) !important;
  -webkit-text-fill-color:var(--pm-accent) !important;
  text-decoration:none;
}
.foot-meta a:hover{
  color:var(--pm-accent-dk) !important;
  -webkit-text-fill-color:var(--pm-accent-dk) !important;
  text-decoration:underline;text-underline-offset:2px;
}

/* ---------- Breadcrumb + guide-back links (were white / green) ---------- */
.breadcrumb a{color:var(--pm-muted) !important;text-decoration:none}
.breadcrumb a:hover{color:var(--pm-accent) !important;text-decoration:underline;text-underline-offset:2px}
.guide-back a{color:var(--pm-accent) !important}
.guide-back a:hover{color:var(--pm-accent-dk) !important}

/* ---------- Energy guide: comparison table (dark header remnant) ---------- */
.prose table.simple-table th,
.prose table.simple-table td{border:1px solid var(--pm-line) !important}
.prose table.simple-table th{background:var(--pm-fill) !important;color:var(--pm-ink) !important}
.prose table.simple-table td{color:var(--pm-body) !important}

/* ---------- Energy guide: solar CTA slab (was dark-green -> blue) ---------- */
.article-solar-cta{
  background:#eef4fb !important;
  border:1px solid #cfe0f4 !important;
  border-left:4px solid var(--pm-accent) !important;
}
.article-solar-cta h3{color:var(--pm-ink) !important}
.article-solar-cta p{color:var(--pm-body) !important}
/* its gradient button is re-tinted to brand blue in the canonical CTA block */

/* ---------- Town/location pages: resource cards + availability ---------- */
.resource-card{
  background:var(--pm-paper) !important;
  border:1px solid var(--pm-line) !important;
  box-shadow:var(--pm-shadow) !important;
}
.resource-card:hover{border-color:rgba(46,125,210,.4) !important}
.resource-card h3{color:var(--pm-ink) !important}
.resource-card p{color:var(--pm-body) !important}
/* brand-green / amber status text -> AA-legible on white */
.avail-yes{color:#1f7a3d !important}
.avail-partial{color:#b45309 !important}

/* ============================================================
   SIM result cards (.sim-card*) and device / mobile deal cards
   (.dev-card*) are part of the homepage comparison tool and are
   intentionally left to their original inline styling — see the
   HOMEPAGE COMPARISON TOOL note above. No premium rules here.
   ============================================================ */

/* ============================================================
   ENERGY TAB (#p-en) is part of the homepage comparison widget
   and reverts to its original inline styling with the rest of the
   tool — no premium overrides here (see HOMEPAGE COMPARISON TOOL).
   ============================================================ */

/* ============================================================
   POLISH PASS 3 — CANONICAL PRIMARY-CTA SYSTEM
   ONE button shape sitewide: brand blue #2E7DD2 bg / white text /
   12px radius / 700 weight / single blue drop-shadow, hover-darken
   to #1f5fa8 + 1px lift. Kills every legacy GREEN (#4CAF50) and
   old-navy-gradient CTA. Ghost style for secondary/back buttons.
   Placed last so it wins over the earlier partial CTA rules.
   ============================================================ */
.nl-btn,.cta-btn,.btn-next,.hub-cta a,
.w-btn,.w-compare-btn,.article-solar-cta a{
  background:var(--pm-accent) !important;
  background-image:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border:none !important;
  border-radius:12px !important;
  font-family:'Plus Jakarta Sans',sans-serif !important;
  font-weight:700 !important;
  box-shadow:0 8px 22px -8px rgba(46,125,210,0.6) !important;
}
.nl-btn:hover,.cta-btn:hover,.btn-next:hover,.hub-cta a:hover,
.w-btn:not(:disabled):hover,.w-compare-btn:hover,.article-solar-cta a:hover{
  background:var(--pm-accent-dk) !important;
  background-image:none !important;
  color:#fff !important;
  box-shadow:0 12px 28px -8px rgba(46,125,210,0.5) !important;
  filter:none !important;
  opacity:1 !important;
  transform:translateY(-1px) !important;
}
/* legible disabled state (was invisible white-on-white / low-contrast) */
.w-btn:disabled{
  background:var(--pm-fill) !important;
  color:var(--pm-muted) !important;
  -webkit-text-fill-color:var(--pm-muted) !important;
  box-shadow:none !important;
  transform:none !important;
  pointer-events:none !important;
}
/* hub CTA geometry (radius unified above; add padding for parity) */
.hub-cta a{padding:.8rem 1.4rem !important}

/* Secondary / ghost CTAs for the homepage comparison tool
   (.btn-ewiz-back, .btn-back, .btn-ewiz-restart, .btn-det) are part
   of the deal/search/results experience and revert to their original
   inline styling — no premium overrides here. */

/* ============================================================
   POLISH PASS 3 — GREEN / CYAN ACCENT SWEEP (non-CTA)
   ============================================================ */
/* energy wizard, device-card pills, featured-card + speed-banner
   accent stripes are part of the homepage comparison tool and keep
   their original inline styling (see HOMEPAGE COMPARISON TOOL). */
/* hero accent word inline green -> blue (hero kept premium) */
.hero h1 span[style*="4CAF50"]{color:var(--pm-accent) !important;-webkit-text-fill-color:var(--pm-accent) !important}
/* loading overlay: green sweep/bars/step-3 accents -> blue */
.sm-loading__accent::after,.sm-loading__progress-fill::after{background:var(--pm-accent) !important}
.sm-loading__wave-bar:nth-child(3n){background:var(--pm-accent) !important;opacity:.4}
#sm-step-3{color:var(--pm-accent) !important}
#sm-step-3 .sm-loading__step-dot{background:var(--pm-accent) !important}
/* redirect interstitial wordmark second syllable: green -> blue */
.redirect-card__logo .green{color:var(--pm-accent) !important}

/* ============================================================
   SPEED-TEST PAGE — full premium-white instrument
   (.speed-box gauge + .w-monitor Health Check). Scoped to
   speed-only .w-* / .speed-* / .spd-* / #w* selectors so no rule
   leaks to other pages. JS toggle states preserved; only the
   presentation layer is overridden.
   ============================================================ */
/* Primary shells -> white cards */
.speed-box{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.w-monitor{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}

/* Gauge readouts + dial (CSS fill beats JS-set presentation attr) */
#wDV{fill:var(--pm-accent) !important}
#wUV{fill:var(--pm-accent-dk) !important}
.w-gauge svg text:not([id]){fill:var(--pm-muted) !important}
.w-gauge svg path:not([id]){stroke:rgba(14,28,48,0.08) !important}
#wUA{stroke:var(--pm-accent-dk) !important}
#wUD{fill:var(--pm-accent-dk) !important}

/* Gauge labels + widget wordmark + badge */
.w-glabel{color:var(--pm-muted) !important}
.w-glabel.dl{color:var(--pm-accent) !important}
.w-glabel.ul{color:var(--pm-accent-dk) !important}
.w-brand2 span{color:var(--pm-ink) !important;-webkit-text-fill-color:var(--pm-ink) !important}
.w-badge2{color:var(--pm-muted) !important}

/* Ping module */
.w-ping2{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
.w-ping2.active{background:rgba(245,158,11,0.10) !important;border-color:#b45309 !important}
.w-pval2,#wPV{color:var(--pm-ink) !important}
.w-plbl2{color:var(--pm-muted) !important}

/* Progress bar + step tracker */
.w-prog{background:var(--pm-line) !important}
.w-phase{color:var(--pm-muted) !important}
.w-step-dot{background:rgba(14,28,48,0.12) !important}
.w-step-dot.active{background:var(--pm-accent) !important}
.w-step-dot.done{background:var(--pm-accent) !important}
.w-step-line{background:var(--pm-line) !important}
.w-step-lbl{color:var(--pm-muted) !important}

/* Results tiles (upload green tile -> blue; ping amber darkened) */
.w-tlbl{color:var(--pm-muted) !important}
.w-results .w-tile[style*="76,175,80"]{background:rgba(46,125,210,0.08) !important;border-color:rgba(46,125,210,0.20) !important}
#wRU{color:var(--pm-accent) !important}
#wRP{color:#b45309 !important}

/* Bufferbloat panel */
.w-bb2{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
.w-bbt{color:var(--pm-ink) !important}
.w-bbs,.w-bb-note{color:var(--pm-muted) !important}

/* Privacy microcopy under Run button */
.speed-inner p{color:var(--pm-muted) !important}
.w-privacy{color:var(--pm-muted) !important}
.w-privacy a{color:var(--pm-accent) !important}

/* "Email my results" CTA strip (green -> blue/neutral) */
#wEmailCTA > div{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
#wEmailCTA div[style*="#4CAF50"]{color:var(--pm-accent) !important}
#wEmailCTA div[style*="255,255,255"]{color:var(--pm-muted) !important}
#wEmailCTA button{background:var(--pm-accent) !important;color:#fff !important;border-radius:12px !important}

/* Email-results form (green panel + dark input -> white/blue) */
.w-email-section{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
.w-email-title{color:var(--pm-accent) !important}
.w-email-sub{color:var(--pm-muted) !important}
.w-email-input{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.w-email-input:focus{border-color:var(--pm-accent) !important}
.w-email-input::placeholder{color:var(--pm-muted) !important}
.w-email-send{background:var(--pm-accent) !important;color:#fff !important;border-radius:12px !important}
.w-email-send:disabled{background:var(--pm-fill) !important;color:var(--pm-muted) !important}
.w-email-success{color:#1f7a3d !important}
.w-email-success a{color:var(--pm-accent) !important}

/* Health Check monitor chrome */
.w-monitor-title{color:var(--pm-ink) !important}
.w-monitor-sub{color:var(--pm-muted) !important}
.w-monitor-stat{color:var(--pm-muted) !important}
.w-monitor-stat strong{color:var(--pm-ink) !important}
.w-monitor-countdown{color:var(--pm-muted) !important}
.w-monitor-btn.start{background:var(--pm-accent) !important;color:#fff !important;border-radius:8px !important}
.w-monitor-btn.start:hover{background:var(--pm-accent-dk) !important}
#wMonCountdown [style*="#4CAF50"]{color:#1f7a3d !important}

/* Monitor duration toggle (unselected text + spans + email input) */
#wMonOpt1,#wMonOpt4{color:var(--pm-body) !important}
#wMonOpt1 span,#wMonOpt4 span{color:var(--pm-muted) !important}
#wMonEmail{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;color:var(--pm-ink) !important}
#wMonEmail::placeholder{color:var(--pm-muted) !important}

/* Monitor post-run email capture block */
.w-mon-post-email{background:var(--pm-fill) !important;border:1px solid var(--pm-line) !important}
.w-mon-post-email-label{color:var(--pm-ink) !important}
.w-mon-post-email-row input{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.w-mon-post-email-row input::placeholder{color:var(--pm-muted) !important}
.w-mon-post-email-row button{background:var(--pm-accent) !important;color:#fff !important;border-radius:12px !important}
.w-mon-post-email-row button:disabled{background:var(--pm-fill) !important;color:var(--pm-muted) !important}
.w-mon-post-email-msg{color:#1f7a3d !important}
.w-mon-post-email-msg.err{color:#c0392b !important}

/* Comparison table (highlighted col header + ticks/crosses) */
.spd-compare-table thead th:nth-child(2){background:var(--pm-accent) !important;color:#fff !important;box-shadow:none !important}
.ck{color:#1f7a3d !important}
.cx{color:var(--pm-muted) !important}
.spd-compare-table tbody td:nth-child(2) .ck{color:var(--pm-accent) !important}

/* Speed-page body remnants (bare strong / trailing p / faq hover) */
.page-wrap strong{color:var(--pm-ink) !important}
.page-wrap > p{color:var(--pm-muted) !important}
.page-wrap .faq-q:hover{color:var(--pm-accent) !important}

/* speed/privacy.html: data tables + green "Consent" tag */
.sm-table th{color:var(--pm-muted) !important;border-bottom:1px solid var(--pm-line) !important}
.sm-table td{color:var(--pm-body) !important;border-bottom:1px solid var(--pm-line-2) !important}
.sm-table tr:last-child td{border-bottom:none !important}
.tag.green{color:#1f7a3d !important;background:rgba(31,122,61,0.10) !important;border-color:rgba(31,122,61,0.30) !important}

/* ============================================================
   HERO SEARCH WIZARD — premium-white flip + motion
   (2026-07-24. Style-only: no markup/JS hooks touched. Scoped to
   the hero widget + its steps; deal cards & cards.js untouched.)
   ============================================================ */

/* Lead line steps up now the h1 is gone */
.hero p{font-size:clamp(1.05rem,2.6vw,1.3rem) !important;color:var(--pm-body) !important;max-width:34em;margin-left:auto !important;margin-right:auto !important}

/* Card */
.widget{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow-lg) !important}
.widget > #p-bb,.widget > #p-en,.widget > #p-mob{background-color:var(--pm-paper) !important}

/* Tabs → light segmented control (active pill stays brand blue) */
.tabs{background:var(--pm-fill) !important;border:1px solid var(--pm-line-2) !important}
.tab{color:var(--pm-muted) !important}
.tab.on{background:var(--pm-accent) !important;color:#fff !important;box-shadow:0 2px 10px -2px rgba(46,125,210,.45) !important}
.tab:hover:not(.on){color:var(--pm-ink) !important;background:var(--pm-fill-2) !important}

/* Labels, status */
.widget .s-label{color:var(--pm-ink) !important}
.st{color:var(--pm-muted) !important}

/* Postcode input */
.widget .pc-input{background:var(--pm-ground) !important;border:1.5px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.widget .pc-input::placeholder{color:var(--pm-muted) !important;opacity:.7}
.widget .pc-input:focus{border-color:var(--pm-accent) !important;background:#fff !important;box-shadow:0 0 0 4px rgba(46,125,210,.14) !important}

/* Address dropdown */
.addr-dd{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow-lg) !important}
.addr-item{color:var(--pm-body) !important;border-bottom:1px solid var(--pm-line-2) !important}
.addr-item:hover{background:var(--pm-fill) !important;color:var(--pm-ink) !important}

/* Phone step */
.phone-block{border-top:1px solid var(--pm-line) !important}
.addr-confirmed{background:var(--pm-fill) !important;border:1px solid var(--pm-line-2) !important;color:var(--pm-body) !important}
.phone-label{color:var(--pm-ink) !important}
.phone-prefix{background:var(--pm-fill) !important;border:1.5px solid var(--pm-line) !important;border-right:none !important;color:var(--pm-ink) !important}
.phone-input{background:var(--pm-ground) !important;border:1.5px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.phone-input:focus{border-color:var(--pm-accent) !important;background:#fff !important;box-shadow:0 0 0 4px rgba(46,125,210,.14) !important}
.consent-text-sm{color:var(--pm-muted) !important}
.consent-text-sm a{color:var(--pm-accent) !important}

/* Back button (post-search) */
.btn-back{border:1px solid var(--pm-line) !important;color:var(--pm-muted) !important;background:var(--pm-paper) !important}
.btn-back:hover{color:var(--pm-ink) !important;border-color:var(--pm-accent) !important}

/* Energy "coming soon" panel (inline-styled dark text) */
#p-en div[style*="color:#fff"],#p-en div[style*="color: #fff"]{color:var(--pm-ink) !important}
#p-en div[style*="rgba(255,255,255"]{color:var(--pm-muted) !important}

/* ---------- Motion (transform/opacity only) ---------- */
@keyframes pmRise{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes pmPop{from{transform:scale(.94)}to{transform:scale(1)}}
@keyframes pmDrop{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}

/* Staggered entrance: lead line → wizard */
.hero p{animation:pmRise .6s cubic-bezier(.22,1,.36,1) .05s both}
.hero .widget{animation:pmRise .7s cubic-bezier(.22,1,.36,1) .16s both}

/* Tab press: springy settle */
.tab{transition:color .22s ease,background .22s ease,transform .18s ease !important}
.tab:active{transform:scale(.95)}
.tab.on{animation:pmPop .32s cubic-bezier(.34,1.56,.64,1)}

/* CTA: lift + arrow nudge */
.btn-search{transition:transform .22s ease,box-shadow .22s ease,opacity .2s ease !important}
.btn-search:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(46,125,210,.5) !important}
.btn-search:active{transform:translateY(0) scale(.98)}
.btn-search span:last-child{display:inline-block;transition:transform .22s cubic-bezier(.22,1,.36,1)}
.btn-search:hover span:last-child{transform:translateX(4px)}
.btn-find-deals{transition:transform .22s ease,box-shadow .22s ease !important}
.btn-find-deals:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(46,125,210,.5) !important}
.btn-find-deals:active{transform:translateY(0) scale(.985)}

/* Address dropdown: slide-fade open, items cascade */
.addr-dd.open{animation:pmDrop .28s cubic-bezier(.22,1,.36,1)}
.addr-dd.open .addr-item{animation:pmRise .3s cubic-bezier(.22,1,.36,1) both}
.addr-dd.open .addr-item:nth-child(2){animation-delay:.04s}
.addr-dd.open .addr-item:nth-child(3){animation-delay:.08s}
.addr-dd.open .addr-item:nth-child(4){animation-delay:.12s}
.addr-dd.open .addr-item:nth-child(n+5){animation-delay:.16s}

/* Phone step: rises in when revealed (re-fires on display flip) */
.phone-block.visible{animation:pmRise .45s cubic-bezier(.22,1,.36,1) both !important}

@media (prefers-reduced-motion:reduce){
  .hero h1,.hero p,.hero .widget,.tab.on,.addr-dd.open,.addr-dd.open .addr-item,.phone-block.visible,.fpill.on,.speed-banner{animation:none !important}
  .tab,.tabs::before,.btn-search,.btn-search span:last-child,.btn-find-deals,.fpill,.bd-email-send,.speed-banner-btn{transition:none !important}
  .tab:active,.fpill:active,.btn-search:hover,.btn-find-deals:hover,.bd-email-send:hover,.speed-banner-btn:hover{transform:none !important}
  #sm-loading{animation:none !important}
  .sm-loading__wave-bar{animation:none !important;height:16px}
  .btn-search.busy::after,.btn-find-deals.busy::after{animation:none !important;content:none !important}
}

/* ============================================================
   RESULTS PANELS + SPEED CTA + LEAD LINE — premium-white pass 2
   (2026-07-24. Deal cards & cards.js untouched.)
   ============================================================ */

/* Lead line in the business-site display voice */
.hero p{font-family:'Bricolage Grotesque','Plus Jakarta Sans',sans-serif !important;font-weight:600 !important;font-size:clamp(1.3rem,3.2vw,1.8rem) !important;line-height:1.35 !important;letter-spacing:-.015em !important;color:var(--pm-ink) !important;text-wrap:balance}

/* Postcode pin icon (SVG) */
.pc-icon{color:var(--pm-accent) !important;display:flex;align-items:center}
.widget .pc-input{padding-left:2.9rem !important}
.widget .pc-input::placeholder{text-transform:none !important;letter-spacing:0 !important}

/* “Who is your current provider?” box */
.curr-box{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.curr-box h3{color:var(--pm-ink) !important}
.curr-box p{color:var(--pm-muted) !important}
.curr-select,.curr-box select{background:var(--pm-ground) !important;border:1.5px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.curr-select:focus{border-color:var(--pm-accent) !important;box-shadow:0 0 0 4px rgba(46,125,210,.14) !important}

/* Filter bar + pills */
.filters{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.f-lbl{color:var(--pm-muted) !important}
.fpill{background:var(--pm-fill) !important;border:1px solid var(--pm-line-2) !important;color:var(--pm-body) !important;transition:background .2s ease,color .2s ease,transform .16s ease !important}
.fpill:hover:not(.on){background:var(--pm-fill-2) !important;color:var(--pm-ink) !important}
.fpill:active{transform:scale(.96)}
.fpill.on{background:var(--pm-accent) !important;border-color:var(--pm-accent) !important;color:#fff !important;box-shadow:0 2px 10px -2px rgba(46,125,210,.45) !important;animation:pmPop .3s cubic-bezier(.34,1.56,.64,1)}
.filters select{background:var(--pm-ground) !important;border:1.5px solid var(--pm-line) !important;color:var(--pm-ink) !important}

/* Email-save card */
.bd-email-card{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow) !important}
.bd-email-hint{color:var(--pm-body) !important}
.bd-email-hint b{color:var(--pm-ink) !important}
.bd-email-input{background:var(--pm-ground) !important;border:1.5px solid var(--pm-line) !important;color:var(--pm-ink) !important}
.bd-email-input::placeholder{color:var(--pm-muted) !important;opacity:.7}
.bd-email-input:focus{border-color:var(--pm-accent) !important;background:#fff !important;box-shadow:0 0 0 4px rgba(46,125,210,.14) !important}
.bd-email-send{background:var(--pm-accent) !important;color:#fff !important;transition:transform .2s ease,box-shadow .2s ease !important}
.bd-email-send:hover{transform:translateY(-2px);box-shadow:0 12px 28px -8px rgba(46,125,210,.5) !important}
.bd-email-success{color:var(--pm-ink) !important}

/* Speed-test CTA banner */
.speed-banner{background:var(--pm-paper) !important;border:1px solid var(--pm-line) !important;box-shadow:var(--pm-shadow-lg) !important}
.speed-banner-bar{background:linear-gradient(90deg,var(--pm-accent),var(--pm-accent-dk)) !important}
.speed-banner-badge{background:var(--pm-fill) !important;border:1px solid var(--pm-line-2) !important}
.speed-banner-title{color:var(--pm-ink) !important}
.speed-banner-sub{color:var(--pm-muted) !important}
.speed-banner-btn{background:var(--pm-accent) !important;color:#fff !important;transition:transform .2s ease,box-shadow .2s ease !important}
.speed-banner-btn:hover{transform:translateY(-2px);box-shadow:0 12px 28px -8px rgba(46,125,210,.5) !important}

/* ============================================================
   TRUST STRIP + NEWS & INSIGHTS (business-site pattern)
   ============================================================ */

.pm-news{padding:3.25rem 1.25rem 3.5rem;background:var(--pm-paper);border-top:1px solid var(--pm-line-2)}
.pm-news-inner{max-width:1080px;margin:0 auto}
.pm-news h2{font-family:'Bricolage Grotesque','Plus Jakarta Sans',sans-serif;font-weight:700;font-size:clamp(1.4rem,2.8vw,1.8rem);letter-spacing:-.02em;color:var(--pm-ink);margin:0 0 .5rem;text-align:center}
.pm-news-sub{color:var(--pm-muted);font-size:clamp(.9375rem,2vw,1.0625rem);text-align:center;max-width:44em;margin:0 auto 2rem;line-height:1.6}
.pm-news-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.25rem}
.pm-guide-card{display:flex;flex-direction:column;gap:.55rem;background:var(--pm-paper);border:1px solid var(--pm-line);border-radius:1rem;padding:1.4rem 1.35rem 1.25rem;text-decoration:none;box-shadow:var(--pm-shadow);transition:transform .22s cubic-bezier(.22,1,.36,1),box-shadow .22s ease,border-color .22s ease}
.pm-guide-card:hover{transform:translateY(-4px);box-shadow:var(--pm-shadow-lg);border-color:rgba(46,125,210,.35)}
.pm-guide-cat{font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--pm-accent)}
.pm-guide-title{font-family:'Bricolage Grotesque','Plus Jakarta Sans',sans-serif;font-weight:600;font-size:1.0625rem;line-height:1.35;letter-spacing:-.01em;color:var(--pm-ink);margin:0}
.pm-guide-desc{font-size:.875rem;color:var(--pm-muted);line-height:1.6;margin:0;flex:1}
.pm-guide-read{font-size:.875rem;font-weight:700;color:var(--pm-accent);transition:transform .2s cubic-bezier(.22,1,.36,1);display:inline-block}
.pm-guide-card:hover .pm-guide-read{transform:translateX(4px)}
@media (prefers-reduced-motion:reduce){.pm-guide-card,.pm-guide-read{transition:none !important}}

/* ── ICO credential badge (business-site pattern) ── */
.pm-creds{display:flex;flex-direction:column;align-items:center;gap:.35rem;margin:-1.2rem auto 0;padding:0 1.25rem 2.4rem;text-align:center}
.pm-creds .pm-cred-logo{width:88px;height:88px;object-fit:contain;display:block}
.pm-cred-note{font-size:.78rem;color:var(--pm-muted);margin:0;letter-spacing:.01em}
/* address-level input: no shouting caps on addresses */
.widget .pc-input{text-transform:none !important;letter-spacing:.01em !important}

/* ============================================================
   ULTRA-REVIEW PASS — hierarchy, tabs, radii, busy, nav
   ============================================================ */
/* Hero h1 restored (premium voice) */
.hero h1{font-family:'Bricolage Grotesque','Plus Jakarta Sans',sans-serif !important;font-size:clamp(1.9rem,4.6vw,3rem) !important;font-weight:700 !important;letter-spacing:-.02em !important;line-height:1.12 !important;color:var(--pm-ink) !important;margin:0 auto .75rem !important;max-width:15em;text-wrap:balance;animation:pmRise .6s cubic-bezier(.22,1,.36,1) .05s both}
.hero h1 span{color:inherit !important}
.hero p{font-size:clamp(1rem,2.3vw,1.15rem) !important;font-weight:500 !important;color:var(--pm-body) !important;letter-spacing:0 !important;animation-delay:.14s}
.hero .widget{animation-delay:.24s}
@media(max-width:767px){.hero{padding-top:1.75rem !important}}

/* Tabs: tinted active (CTA = the only solid blue), gliding pill */
.tab{color:var(--pm-body) !important;font-size:.85rem !important;font-weight:600 !important;position:relative;z-index:1}
.tab.on{background:rgba(46,125,210,.12) !important;color:var(--pm-accent-dk) !important;box-shadow:none !important}
@supports selector(.a:has(.b)){
  .tabs:not(.mob-subtabs){position:relative}
  .tabs:not(.mob-subtabs)::before{content:"";position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 12px)/3);border-radius:10px;background:rgba(46,125,210,.12);pointer-events:none;transition:translate .3s cubic-bezier(.22,1,.36,1)}
  .tabs:not(.mob-subtabs):has(.tab:nth-child(2).on)::before{translate:calc(100% + 3px) 0}
  .tabs:not(.mob-subtabs):has(.tab:nth-child(3).on)::before{translate:calc(200% + 6px) 0}
  .tabs:not(.mob-subtabs) .tab.on{background:transparent !important}
}
.widget .pc-input,.widget .btn-search{padding-top:1.05rem !important;padding-bottom:1.05rem !important}

/* Corner-radius system unified (12px canon) */
.widget .pc-input,.widget .btn-search,.widget .addr-dd,.btn-find-deals{border-radius:12px !important}
.phone-prefix{border-radius:12px 0 0 12px !important}
.phone-input{border-radius:0 12px 12px 0 !important}
.addr-confirmed{border-radius:12px !important}
.tabs{border-radius:14px !important}
.tab{border-radius:10px !important}

/* Busy: shimmer, not dimming */
@keyframes pmSweep{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.btn-search.busy,.btn-find-deals.busy{position:relative;overflow:hidden}
.btn-search.busy::after,.btn-find-deals.busy::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 40%,rgba(255,255,255,.25) 50%,transparent 60%);animation:pmSweep 1.1s ease-in-out infinite}

/* Desktop: hamburger is redundant (nav parity verified) */
@media(min-width:768px){.menu-btn{display:none !important}}

/* ICO badge lives in the footer (business-site placement) */
footer .pm-creds{flex-direction:row;align-items:center;gap:.8rem;justify-content:flex-start;margin:1.4rem 0 .9rem;padding:0;text-align:left}
footer .pm-creds .pm-cred-logo{width:64px;height:64px}

/* ── Combobox: suggestions anchored to the input; premium-white focus ── */
.pc-wrap{position:relative}
.pc-wrap .addr-dd{position:absolute;left:0;right:0;top:calc(100% + 6px);margin-top:0 !important;z-index:40;border-radius:12px !important;max-height:288px;overflow-y:auto}
.widget .pc-input:focus{background:#fff !important;border-color:var(--pm-accent) !important;box-shadow:0 0 0 3px rgba(46,125,210,.10) !important;outline:none !important}
.widget .pc-input{-webkit-appearance:none;appearance:none}
.addr-item{font-size:.9rem !important;padding:.8rem 1rem !important}

/* ── CTA + typing: premium pass ── */
.widget .btn-search{background:linear-gradient(135deg,var(--pm-accent),var(--pm-accent-dk)) !important;font-weight:800 !important;letter-spacing:.01em;box-shadow:0 6px 18px -6px rgba(46,125,210,.45) !important}
.widget .btn-search:hover{box-shadow:0 14px 32px -8px rgba(46,125,210,.55) !important}
.widget .btn-search .cta-arr{display:inline-block;transition:transform .22s cubic-bezier(.22,1,.36,1)}
.widget .btn-search:hover .cta-arr,.widget .btn-search:active .cta-arr{transform:translateX(4px)}
.widget .pc-input{font-size:1.05rem !important;font-weight:600 !important}
.addr-item{transition:background .14s ease}
.addr-item:active{background:var(--pm-fill-2) !important}
.addr-item b{color:var(--pm-ink);font-weight:700}
@media (prefers-reduced-motion:reduce){.widget .btn-search .cta-arr{transition:none !important}}

/* dropdown info rows (loading / empty) */
.addr-note{cursor:default !important;color:var(--pm-muted) !important;font-size:.85rem !important}
.addr-note:hover{background:transparent !important}
/* room above the widget when scrolled to top on focus */
.hero .widget{scroll-margin-top:14px}
