/* =========================================================================
   Air Duct Cleaning Dallas — main.css (theme 2.0.0, "Fleet Livery")
   Profile "fleet-livery" (DESIGN-MANIFEST.json): geometric-signage ·
   counter-band · banded-dense (declared deltas) · corner-badge · cab-door ·
   livery-stripe.
   Sections 0-15 are LIFTED, byte for byte, from the reference implementation
   (docs: design/v2/decision-v2-sketch.html, the block from "0. TOKENS" to the
   end of "15. FORCED COLORS + PRINT"); the per-file inventory is
   DESIGN-DECISION-v2.md section 15, row A1. The reference carries the
   integration fix and the review fixes (docs: zones/V2-REVIEW-FIX-REPORT.md).
   Change the reference and lift again; do not hand-port rules from the 1.0.0
   stylesheet.
   Gates (design/v2/decision-v2-verify.py + zones/V2-LANE-A-REPORT.md):
   zero external requests and zero font requests; no class-less selector for
   a control, list or table (owner tool widgets render untouched); every prose
   rule starts with a child combinator from one of the four flow roots; the
   accent is a fill or a stripe, never a text or glyph colour; no font-weight
   above 700; no colour-ramp gradient (the stripes are hard-stop drawings; the
   one fade is the read-more mask, which ships OFF) and no blur; no
   viewport-width bleed; no transform on .site-header; [hidden] wins.
   ====================================================================== */
/* 0. TOKENS ------------------------------------------------------------- */
:root{
  /* steel graphite + ONE hi-vis action colour */
  --color-primary:#272C30;          /* steel graphite: header, hero band, process band, CTA band, keylines, badges */
  --color-primary-hover:#171A1D;
  --color-accent:#03FE39;           /* hi-vis: the FILL of every action + the livery stripe family. Never text, never a glyph */
  --color-accent-hover:var(--color-primary);
  --color-accent-ink:#16181B;       /* label on a hi-vis fill */
  --color-text:#16181B;
  --color-primary-rgb:39,44,48;
  --color-accent-rgb:3,254,57;
  --color-mark:rgba(var(--color-accent-rgb),.22);          /* selected / success tint on white (name kept from 1.0.0) */
  --color-mark-on-dark:rgba(var(--color-accent-rgb),.35);

  --color-page:#FFFFFF;
  --color-white:#FFFFFF;
  --color-surface:#EEF1F3;          /* galvanised tint band */
  --color-surface-2:#E1E5E9;
  --color-border:#CDD3D8;           /* decorative hairline, never a UI boundary */
  --color-edge:#AAB2B9;             /* decorative */
  --color-field:#68717A;            /* UI boundary: inputs, options, chips (>= 3:1) */
  --color-muted:#4A525A;
  --color-error:#AD2A20;
  --color-error-bg:#FBEDEA;
  --color-error-on-dark:#FF9C90;
  --color-success:var(--color-text);
  --color-star:var(--color-text);

  --color-dark:var(--color-primary);
  --color-dark-2:#171A1D;           /* utility strip, footer floor, sticky bar, drawer */
  --color-dark-3:#343A3F;           /* panel on graphite (process tiles, hero plate) */
  --color-steel:#8D969E;            /* drawn-art strokes on graphite (decorative) */
  --color-on-dark:#F4F6F7;
  --color-on-dark-muted:#B9C1C8;
  --color-dark-border:#4D555C;

  /* CTA grammar on LIGHT surfaces: hi-vis fill + ink label + 2px graphite keyline; hover = graphite fill + white label.
     Graphite surfaces re-point the edge + hover in section 2. */
  --cta-bg:var(--color-accent);
  --cta-label:var(--color-accent-ink);
  --cta-edge:var(--color-primary);
  --cta-bg-hover:var(--color-primary);
  --cta-label-hover:var(--color-on-dark);
  --cta-edge-hover:var(--color-primary);
  --tick:var(--color-primary);      /* heavy bar of the head stripe; graphite surfaces re-point it */

  /* geometric-signage: the platform's bundled geometric sign face for display, Bold only; the OS UI face for everything read or operated */
  --font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'Noto Sans',Ubuntu,Cantarell,'Helvetica Neue',Arial,sans-serif;
  --font-display:Futura,Bahnschrift,'URW Gothic',Roboto,'Noto Sans','DejaVu Sans','Segoe UI',sans-serif;
  --font-heading:var(--font-display); --font-subhead:var(--font);
  --font-serif:var(--font); --font-fine:var(--font);       /* names kept; no serif ships in 2.0.0 */
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;

  /* ratio 1.25 on an 18px body (13 / 15 are the two UI sizes below it); display steps are fluid */
  --text-xs:.8125rem; --text-sm:.9375rem; --text-base:1.125rem; --text-md:1.25rem; --text-lg:1.40625rem;
  --text-xl:1.7578rem; --text-2xl:2.1973rem; --text-3xl:2.7466rem; --text-4xl:3.4332rem; --text-5xl:3.5rem; --text-6xl:3.5rem;
  --fw-normal:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:700;   /* nothing requests more than 700 */
  --lh-tight:1.12; --lh-snug:1.35; --lh-normal:1.62;
  --track-display:-.02em; --track-eyebrow:.08em;

  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.25rem; --space-6:1.5rem;
  --space-8:2rem; --space-10:2.5rem; --space-12:3rem; --space-16:4rem; --space-20:4.75rem;
  --width-content:38rem; --width-table:54rem; --width-wide:1200px;
  --radius-sm:4px; --radius:6px; --radius-lg:10px; --radius-full:999px;
  --shadow-sm:none; --shadow-md:0 22px 44px -26px rgba(16,20,24,.55); --shadow-lg:var(--shadow-md);
  --transition:150ms ease;

  /* header (cab-door) */
  --logo-h:64px; --logo-h-sm:48px; --logo-max-w:200px;
  --row1-h:2.25rem; --row2-h:4.5rem;
  --header-h:calc(var(--row1-h) + var(--row2-h));
  --header-h-docked:var(--row2-h);
  --header-h-sm:4rem;
  --topbar-h:0px;
  --nav-gap:clamp(1rem,1.9vw,1.65rem);

  /* counter-band + livery-stripe */
  --overlap:4rem;                   /* how far the band runs under the request card */
  --stripe-h:11px;                  /* 2px line + 3px gap + 6px bar */
}

/* 1. BASE --------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{margin:0;background:var(--color-page);color:var(--color-text);font-family:var(--font);font-size:var(--text-base);line-height:var(--lh-normal);-webkit-font-smoothing:antialiased;overflow-x:clip;}
[hidden]{display:none!important;}
img{max-width:100%;height:auto;display:block;}
svg{max-width:100%;}
a{color:inherit;}
h1,h2,h3{font-family:var(--font-heading);font-weight:var(--fw-bold);font-stretch:normal;color:inherit;line-height:var(--lh-tight);letter-spacing:var(--track-display);margin:0 0 var(--space-4);text-wrap:balance;}
h3{font-size:var(--text-lg);letter-spacing:-.01em;line-height:1.2;}
h4{font-family:var(--font);font-weight:var(--fw-bold);font-size:var(--text-base);letter-spacing:0;line-height:1.3;color:inherit;margin:0 0 var(--space-4);}
p{margin:0 0 var(--space-5);}
.container{width:100%;max-width:var(--width-wide);margin:0 auto;padding:0 var(--space-5);}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0;}
.skip-link{position:absolute;left:-9999px;top:0;z-index:1000;padding:var(--space-3) var(--space-4);background:var(--color-white);color:var(--color-text);font-weight:var(--fw-bold);border:2px solid var(--color-primary);}
.site-main:focus{outline:0;}   /* the skip link moves focus here; a container needs no ring */
.skip-link:focus{position:fixed!important;left:var(--space-3);top:var(--space-3);width:auto;height:auto;margin:0;clip:auto;overflow:visible;background:var(--color-white);color:var(--color-text);padding:var(--space-3) var(--space-4);}   /* restated at :focus so WordPress's own .screen-reader-text:focus skin (grey, 0-2-0) cannot replace it */
:focus-visible{outline:3px solid var(--color-primary);outline-offset:3px;}
::selection{background:var(--color-mark);color:var(--color-text);}
.tabular,.pagination .page-numbers{font-variant-numeric:tabular-nums;}
/* the decal voice: <= 4 words, never a sentence */
.site-footer h3,.footer-widget__title,.widget__title,.contact-block__label,.header-mail__label{font-family:var(--font);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--track-eyebrow);text-transform:uppercase;line-height:1.3;}
/* THE HEAD STRIPE: the livery stripe turned upright beside every band / prose H2 (6px bar + 3px gap + 2px hi-vis line) */
.section-head h2,h2.section-head,.cta-banner h2,.faq__heading,.silo__heading,.local-areas__heading,.directory__heading,
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h2{padding-left:calc(var(--stripe-h) + .8rem);background:linear-gradient(90deg,var(--tick) 0 6px,transparent 6px 9px,var(--color-accent) 9px 11px,transparent 11px) no-repeat 0 .14em / var(--stripe-h) calc(100% - .28em);}

/* 2. BUTTONS (+ owner core/button parity) -------------------------------- */
.btn,.wp-block-button > .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:3.25rem;padding:.7rem 1.5rem;font-family:var(--font-display);font-weight:var(--fw-bold);font-stretch:normal;font-size:var(--text-base);line-height:1.2;letter-spacing:0;text-align:center;text-decoration:none;border:2px solid transparent;border-radius:var(--radius);cursor:pointer;transition:background-color var(--transition),color var(--transition),border-color var(--transition);}
.btn svg{width:1em;height:1em;flex:none;}
.btn--primary,.wp-block-button > .wp-block-button__link{background:var(--cta-bg);color:var(--cta-label);border-color:var(--cta-edge);}
.btn--primary:hover,.wp-block-button > .wp-block-button__link:hover{background:var(--cta-bg-hover);color:var(--cta-label-hover);border-color:var(--cta-edge-hover);}
.btn--secondary,.btn--ghost,.btn--on-light,
.wp-block-button:is(.is-style-adc-secondary,.is-style-outline) > .wp-block-button__link,
.wp-block-button > .wp-block-button__link[href^="mailto:"]{background:var(--color-white);color:var(--color-text);border-color:var(--color-primary);}
.btn--secondary:hover,.btn--ghost:hover,.btn--on-light:hover,
.wp-block-button:is(.is-style-adc-secondary,.is-style-outline) > .wp-block-button__link:hover,
.wp-block-button > .wp-block-button__link[href^="mailto:"]:hover{background:var(--color-primary);color:var(--color-on-dark);border-color:var(--color-primary);}
.btn--on-dark{background:transparent;color:var(--color-on-dark);border-color:var(--color-on-dark);}
.btn--on-dark:hover{background:var(--color-on-dark);color:var(--color-primary);border-color:var(--color-on-dark);}
.btn--lg{min-height:3.5rem;font-size:var(--text-md);padding:.8rem 1.75rem;}
.btn--block{width:100%;}
.btn-label{display:inline-block;}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);}
.wp-block-button{margin:0;}
/* graphite surfaces: the fill is its own boundary (10.2:1); hover goes white; the head stripe's bar goes white */
.site-header,.hero__band,.title-band,.process,.section--dark,.cta-banner,.site-footer,.sticky-bar{--cta-edge:var(--color-accent);--cta-bg-hover:var(--color-white);--cta-label-hover:var(--color-text);--cta-edge-hover:var(--color-white);--tick:var(--color-on-dark);}
:is(.site-header,.hero__band,.title-band,.process,.section--dark,.cta-banner,.site-footer,.sticky-bar) :focus-visible{outline-color:var(--color-accent);}
/* the two white islands inside graphite (the logo door, the footer logo plate) take the on-light ring: hi-vis on white is 1.38:1.
   The wordmark link's own ring would be drawn in fragments around its wrapped lines, so the door carries it (inset: white on both sides). */
.site-branding :focus-visible,.footer-logo-plate :focus-visible{outline-color:var(--color-primary);}
.footer-logo-plate .custom-logo-link{display:block;}
.site-branding:has(.site-title a:focus-visible){outline:3px solid var(--color-primary);outline-offset:-7px;}
.site-branding:has(.site-title a:focus-visible) .site-title a{outline:0;}
:is(.hero__band,.title-band,.process,.section--dark,.cta-banner,.site-footer) ::selection{background:var(--color-mark-on-dark);color:var(--color-white);}

/* 3. HEADER (cab-door) --------------------------------------------------- */
.promo-bar{display:block;background:var(--color-white);color:var(--color-text);border-bottom:1px solid var(--color-border);text-align:center;font-size:var(--text-sm);font-weight:var(--fw-bold);line-height:1.4;text-decoration:none;}
.promo-bar__inner{display:block;padding:var(--space-2) var(--space-5);}
a.promo-bar:hover{text-decoration:underline;text-underline-offset:.2em;}
.site-header{position:relative;z-index:100;background:var(--color-primary);color:var(--color-on-dark);}
.site-header__inner{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:auto minmax(var(--header-h-sm),auto) auto;align-items:center;column-gap:var(--space-3);}
/* the door: the operator logo always stands on white */
.site-branding{grid-column:1;grid-row:2;align-self:stretch;display:flex;align-items:center;min-width:0;background:var(--color-white);color:var(--color-text);}
.site-header .custom-logo-link{display:block;line-height:0;}
.site-header .custom-logo-link img,.site-header img.custom-logo{width:auto;height:auto;max-height:var(--logo-h-sm);max-width:var(--logo-max-w,200px);}
.site-title{margin:0;max-width:6rem;font-family:var(--font-display);font-size:var(--text-xs);font-weight:var(--fw-bold);line-height:1.15;letter-spacing:0;overflow-wrap:anywhere;}   /* never clipped below 960: the phone row grows with it */
.site-title a{text-decoration:none;}
/* the utility strip: descriptor left; right = the self-hiding tenant items (open-now, phone, text, after-hours) + the email line */
.header-utility{grid-column:1 / -1;grid-row:1;display:none;align-items:center;gap:var(--space-2) var(--space-5);min-width:0;font-size:var(--text-xs);line-height:1.3;color:var(--color-on-dark-muted);}
.header-region{margin:0;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.header-utility__contacts{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1) var(--space-5);}
.header-utility__contacts > a{display:inline-flex;align-items:center;gap:.45em;min-height:1.75rem;color:var(--color-on-dark);font-weight:var(--fw-bold);text-decoration:none;}
.header-utility__contacts > a:hover{color:var(--color-white);text-decoration:underline;text-underline-offset:.2em;}
.header-utility svg{width:1em;height:1em;flex:none;font-size:1.15em;}
.header-mail__label{color:var(--color-on-dark);}
.header-mail__addr{font-weight:var(--fw-semibold);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;}
.topbar__afterhours{color:var(--color-on-dark-muted);}
.open-now{display:inline-flex;align-items:center;gap:var(--space-2);font-weight:var(--fw-bold);color:var(--color-on-dark);}
.open-now__dot{width:.6rem;height:.6rem;background:var(--color-on-dark-muted);}
.open-now.is-open .open-now__dot{background:var(--color-accent);}
.open-now.is-closed .open-now__dot{background:var(--color-on-dark-muted);}
.open-now__label{font-weight:var(--fw-bold);}
.open-now__next{font-weight:var(--fw-normal);color:var(--color-on-dark-muted);}
.site-header__nav{grid-column:1 / -1;grid-row:3;min-width:0;}
.header-actions{grid-column:3;grid-row:2;position:relative;z-index:1;display:flex;align-items:center;gap:var(--space-2);}
.header-cta{min-height:2.75rem;padding:.4rem 1.05rem;font-size:var(--text-sm);white-space:nowrap;}
.header-search{display:none;}
.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:2.75rem;height:2.75rem;padding:0;background:none;border:0;border-radius:var(--radius-sm);cursor:pointer;}
.menu-toggle span{display:block;width:22px;height:2.5px;background:var(--color-on-dark);transition:transform var(--transition),opacity var(--transition);}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7.5px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg);}
.main-nav ul{list-style:none;margin:0;padding:0;}
.main-nav .menu-item--quote{display:none;}
.main-nav a{color:var(--color-on-dark);text-decoration:none;}
.main-nav .menu-item-has-children > a::after,.main-nav__more::after{content:"";display:inline-block;width:.38em;height:.38em;margin-left:.5em;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:translateY(-.2em) rotate(45deg);transition:transform var(--transition);}

@media (max-width:959px){
  .site-branding{margin-left:calc(-1 * var(--space-5));padding:var(--space-2) var(--space-3) var(--space-2) var(--space-5);}   /* the door reaches the screen edge */
  /* the logo never leaves the door: a logo wider than the door scales down inside it, and a long owner CTA label wraps
     to a second line instead of shutting the door (the default label and the operator logo are unchanged) */
  .site-header .custom-logo-link{min-width:0;}
  .site-header .custom-logo-link img,.site-header img.custom-logo{max-width:min(var(--logo-max-w,200px),100%);}
  .header-cta{white-space:normal;text-align:center;line-height:1.15;}
  .menu-toggle{flex:none;}
  /* a tenant's open-now badge, phone / Text links and after-hours line stay on phones: the strip prints only when PHP found one (.header-utility--contact) */
  .header-utility--contact{display:flex;margin:0 calc(-1 * var(--space-5));padding:var(--space-2) var(--space-5);background:var(--color-dark-2);}
  .header-utility--contact .header-region,.header-utility--contact .header-mail{display:none;}
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;z-index:90;background:var(--color-dark-2);border-top:2px solid var(--color-accent);max-height:calc(100dvh - var(--header-h-sm));overflow-y:auto;overscroll-behavior:contain;}
  /* whatever stands above the bar shortens the drawer, so its last row stays reachable under the scroll lock:
     a tenant strip (44-103px measured) and / or a notice bar (up to three lines) */
  .site-header:has(.site-title) .main-nav{max-height:calc(100dvh - var(--header-h-sm) - 3rem);}   /* no-logo wordmark can make the bar taller than --header-h-sm */
  .site-header:has(.header-utility--contact) .main-nav{max-height:calc(100dvh - var(--header-h-sm) - 6.5rem);}
  .promo-bar ~ .site-header .main-nav{max-height:calc(100dvh - var(--header-h-sm) - 5rem);}
  .promo-bar ~ .site-header:has(.header-utility--contact) .main-nav{max-height:calc(100dvh - var(--header-h-sm) - 11.5rem);}
  .main-nav.is-open{display:block;}
  .main-nav > ul{display:flex;flex-direction:column;padding:var(--space-2) var(--space-5) var(--space-6);}
  .main-nav li{border-bottom:1px solid var(--color-dark-border);}
  .main-nav > ul > li > a{display:flex;align-items:center;justify-content:space-between;min-height:3.25rem;padding:.6rem 0;font-size:var(--text-md);font-weight:var(--fw-bold);}
  .main-nav .menu-item-has-children.is-open > a::after{transform:translateY(.1em) rotate(-135deg);}
  .main-nav .sub-menu{display:none;padding:0 0 var(--space-3) var(--space-4);}
  .main-nav .menu-item-has-children.is-open > .sub-menu{display:block;}
  .main-nav .sub-menu li{border:0;}
  .main-nav .sub-menu a{display:flex;align-items:center;min-height:2.75rem;font-size:var(--text-base);color:var(--color-on-dark-muted);}
  .main-nav :is(.current-menu-item,.current-menu-ancestor,.current-page-ancestor,.current_page_item) > a{box-shadow:inset 4px 0 0 var(--color-accent);padding-left:var(--space-3);color:var(--color-white);}
  /* no JS: the menu is printed open, in flow, under the bar (the toggle cannot work) */
  .no-js .menu-toggle{display:none;}
  .no-js .main-nav{display:block;position:static;max-height:none;overflow:visible;margin:0 calc(-1 * var(--space-5));}
  .no-js .main-nav .sub-menu{display:block;}
}
/* wordmark fallback on the narrowest phones (from 350 up it fits as it is): the button and its gap tighten, so the name keeps
   its three lines and still breaks at its hyphens */
@media (max-width:349px){
  .site-branding:has(.site-title) ~ .header-actions{gap:var(--space-1);}
  .site-branding:has(.site-title) ~ .header-actions .header-cta{padding-left:.4rem;padding-right:.4rem;}
  .site-title{flex:none;width:5rem;}
  .site-branding:has(.site-title){min-width:7rem;}   /* a longer CTA label wraps before the wordmark breaks inside a word */
}
@media (min-width:960px){
  /* DOCK, CSS only: the bar sticks with the strip scrolled away. No transform, no height change, no JS class needed. */
  .site-header{position:sticky;top:calc(var(--wp-admin--admin-bar--height,0px) - var(--row1-h));}
  /* storey 1: the utility strip is a second solid block, full-bleed */
  .site-header::before{content:"";position:absolute;inset:0 0 auto 0;height:var(--row1-h);background:var(--color-dark-2);}
  .site-header::after{content:"";position:absolute;inset:auto 0 0 0;height:1px;background:var(--color-dark-border);}
  .site-header.is-shrunk{box-shadow:0 10px 24px -16px rgba(16,20,24,.6);}       /* cosmetic only: the dock itself never depends on it */
  .site-header__inner{position:relative;grid-template-rows:var(--row1-h) var(--row2-h);align-items:stretch;column-gap:0;}
  .no-js .site-header__inner{overflow-x:clip;}
  .site-branding{grid-row:1 / span 2;justify-content:center;padding:0 var(--space-4);margin-right:clamp(1.25rem,2.4vw,2.25rem);}
  /* the logo rides down inside the door as the strip leaves, so it is whole in the docked row (nested sticky; centred at rest) */
  .site-branding > *{position:sticky;top:calc(var(--wp-admin--admin-bar--height,0px) + (var(--row2-h) - var(--logo-h)) / 2);}
  .site-header .custom-logo-link img,.site-header img.custom-logo{max-height:var(--logo-h);}
  .site-title{max-width:4.75rem;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;line-clamp:4;overflow:hidden;}   /* the wordmark door is exactly as wide as the logo door, so the nav fit never depends on the logo; a longer name ends on a whole line with an ellipsis (4 lines = 60px, inside the 64px logo box) */
  .header-utility{grid-column:2 / -1;grid-row:1;display:flex;flex-wrap:nowrap;justify-content:space-between;}
  .header-utility__contacts{flex:none;flex-wrap:nowrap;}
  /* tenant strip: the row is a fixed 36px (the dock offset depends on it), so it can never wrap. The descriptor takes only what
     is left; the after-hours line is the one item that gives way (ellipsis); open-now, phone and Text never shrink. The email
     address may shrink only where no after-hours line can absorb the squeeze - two shrinking items would share it, and a
     sub-pixel share is enough to put an ellipsis on the address. */
  .header-utility--contact .header-region{display:none;}   /* tenant state: the contact items need the row; a clipped descriptor stub reads as a bug */
  .header-utility--contact .header-utility__contacts{flex:0 1 auto;min-width:0;margin-left:auto;}
  .header-utility--contact .header-utility__contacts > *{flex:none;white-space:nowrap;}
  .header-utility--contact .header-utility__contacts > .topbar__afterhours{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;}
  .header-utility--contact .header-utility__contacts:not(:has(.topbar__afterhours)) > .header-mail{flex:0 1 auto;min-width:0;}
  .header-utility--contact .header-mail__addr{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:.3em;margin-bottom:-.3em;}   /* the padding keeps the underline inside the clip */
  .site-header__nav{grid-column:2;grid-row:2;display:flex;align-items:stretch;}
  .header-actions{grid-column:3;grid-row:2;padding-left:var(--space-5);}
  .menu-toggle{display:none;}
  .main-nav{display:flex;align-items:stretch;}
  .main-nav > ul{display:flex;align-items:stretch;gap:0 var(--nav-gap);}
  .main-nav > ul > li{position:relative;display:flex;align-items:stretch;}
  .main-nav > ul > li > :is(a,.main-nav__more){display:flex;align-items:center;font-size:var(--text-sm);font-weight:var(--fw-bold);line-height:1.2;white-space:nowrap;box-shadow:inset 0 0 0 var(--color-accent);transition:box-shadow var(--transition);}
  .main-nav > ul > li > :is(a,.main-nav__more):hover,
  .main-nav > ul > li:is(.current-menu-item,.current-menu-ancestor,.current-page-ancestor,.current_page_item) > :is(a,.main-nav__more),
  .main-nav > ul > li > a[aria-current="page"]{box-shadow:inset 0 -5px 0 var(--color-accent);color:var(--color-white);}
  .main-nav__more{margin:0;padding:0;border:0;border-radius:0;background:none;color:var(--color-on-dark);font-family:var(--font);cursor:pointer;}
  /* the JS "tight" step may only ever NARROW the row (it sits below every CSS step) */
  .site-header.is-nav-tight{--nav-gap:.6rem;}
  .site-header.is-nav-tight .main-nav > ul > li > :is(a,.main-nav__more){font-size:.8125rem;}
  /* dropdown = wp_nav_menu's ul.sub-menu: a white sheet hung from the bar by a hi-vis rule */
  .main-nav .sub-menu{position:absolute;top:100%;left:-1rem;z-index:60;display:none;min-width:15.5rem;padding:.4rem 0;background:var(--color-white);border:1px solid var(--color-border);border-top:5px solid var(--color-accent);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-md);}
  .main-nav li:hover > .sub-menu,.main-nav li:focus-within > .sub-menu,.main-nav .menu-item--more.is-open > .sub-menu{display:block;}
  .main-nav .menu-item--more > .sub-menu{left:auto;right:-1rem;}
  .main-nav .menu-item--more.is-dismissed > .sub-menu{display:none;}
  .main-nav .menu-item--more .sub-menu .sub-menu{position:static;display:block;min-width:0;padding:0 0 .35rem .9rem;border:0;box-shadow:none;}
  .main-nav .menu-item--more .sub-menu .menu-item-has-children > a::after{content:none;}
  .main-nav .sub-menu a{display:block;padding:.6rem 1.1rem;font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-text);white-space:normal;}
  .main-nav .sub-menu a:hover,.main-nav .sub-menu a:focus-visible{background:var(--color-surface);outline-offset:-3px;outline-color:var(--color-primary);}
  .main-nav .sub-menu :is(.current-menu-item,.current-page-ancestor,.current_page_item) > a{box-shadow:inset 5px 0 0 var(--color-primary);}
}
@media (min-width:960px) and (max-width:1179px){
  :root{--nav-gap:.95rem;}
  .main-nav > ul > li > :is(a,.main-nav__more){font-size:.875rem;}
  .header-actions{padding-left:var(--space-4);}
  .site-branding{margin-right:var(--space-5);}
}
@media (min-width:960px) and (max-width:1079px){
  :root{--nav-gap:.7rem;}
  .main-nav > ul > li > :is(a,.main-nav__more){font-size:.84375rem;}
  .header-actions{padding-left:var(--space-3);}
  .header-cta{padding-left:.8rem;padding-right:.8rem;}
  .site-branding{margin-right:var(--space-4);}
}
@media (min-width:960px) and (max-width:1099.98px){
  .header-utility--contact .topbar__afterhours{display:none;}      /* under 1100 the line would be a bare ellipsis; phones keep it (the strip wraps there) */
  .header-utility--contact .header-utility__contacts > .header-mail{flex:0 1 auto;min-width:0;}
}
@media (min-width:1180px){
  .header-search{display:block;}
  .header-search .search-form{max-width:14rem;}
  .header-search .search-field{min-height:2.5rem;font-size:var(--text-sm);}
  .header-search .btn{min-height:2.5rem;padding:.4rem .8rem;font-size:var(--text-sm);}
}

/* 4. HERO (counter-band) + breadcrumbs + title band ------------------------ */
.breadcrumbs{font-size:var(--text-xs);line-height:1.4;color:var(--color-muted);}
.site-main > .breadcrumbs{padding:var(--space-4) 0;border-bottom:1px solid var(--color-border);}
.breadcrumbs__list{list-style:none;display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin:0;padding:0;}
.breadcrumbs__item + .breadcrumbs__item::before{content:"/";margin-right:var(--space-2);color:var(--color-edge);}
.breadcrumbs a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em;}
:is(.hero__band,.title-band) .breadcrumbs{margin:0 0 var(--space-5);color:var(--color-on-dark-muted);}
:is(.hero__band,.title-band) .breadcrumbs .container{padding:0;max-width:none;}      /* adc_get_breadcrumbs() carries its own container */
:is(.hero__band,.title-band) .breadcrumbs [aria-current]{color:var(--color-on-dark);font-weight:var(--fw-bold);}
:is(.hero__band,.title-band) .breadcrumbs__item + .breadcrumbs__item::before{color:var(--color-steel);}

.hero{position:relative;background:var(--color-surface);}
/* THE BAND: a real full-bleed block, closed by the livery stripe (2px line + 3px gap + 6px bar) */
.hero__band,.title-band{position:relative;background:var(--color-primary);color:var(--color-on-dark);border-bottom:6px solid var(--color-accent);box-shadow:inset 0 -3px 0 var(--color-primary),inset 0 -5px 0 var(--color-accent);}
.hero__inner{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;padding-top:var(--space-8);padding-bottom:calc(var(--space-10) + 5px);}
.hero--request .hero__inner{padding-bottom:calc(var(--space-6) + var(--overlap));}
.hero__content{position:relative;z-index:1;min-width:0;}
/* front-page descriptor: a sentence, so sentence case (the decal voice is for <= 4 words) */
.hero__eyebrow{display:flex;align-items:baseline;gap:.6em;margin:0 0 var(--space-4);font-size:var(--text-xs);font-weight:var(--fw-bold);line-height:1.4;color:var(--color-on-dark-muted);}
.hero__eyebrow::before{content:"";flex:none;width:.6em;height:.6em;background:var(--color-accent);}
.hero__title{font-family:var(--font-display);font-weight:var(--fw-bold);font-stretch:normal;font-size:clamp(2.125rem,1.05rem + 3.3vw,3.5rem);line-height:1.05;letter-spacing:var(--track-display);color:var(--color-white);max-width:17ch;margin:0 0 var(--space-4);overflow-wrap:break-word;}
.hero__subtitle{font-size:var(--text-md);line-height:1.5;color:var(--color-on-dark);max-width:33em;margin:0;}
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-6);margin:var(--space-5) 0 0;}
/* without the form (guides, tools, generic): one size down, a longer line - owner tool H1s run to 67 characters */
.hero:not(.hero--request) .hero__title{font-size:clamp(1.875rem,1.05rem + 2.5vw,3rem);max-width:24ch;}
/* the contact block: icon plate + EMAIL + the address - the truthful stand-in for a contractor's phone block */
.contact-block{display:inline-flex;align-items:center;gap:var(--space-3);min-width:0;color:inherit;text-decoration:none;}
.contact-block__icon{flex:none;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:var(--color-on-dark);color:var(--color-primary);border-radius:var(--radius);font-size:1.5rem;line-height:1;}
.contact-block__icon svg{width:1em;height:1em;}
.contact-block__text{display:flex;flex-direction:column;min-width:0;}
.contact-block__label{color:var(--color-on-dark-muted);}
.contact-block__value{font-size:var(--text-base);font-weight:var(--fw-bold);line-height:1.3;color:var(--color-white);overflow-wrap:anywhere;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--color-steel);text-underline-offset:.22em;}
.contact-block:hover .contact-block__value{text-decoration-thickness:2px;text-decoration-color:var(--color-white);}
/* sponsored listing (provider list ON only; ships OFF) */
.hero__featured-badge{display:inline-flex;align-items:center;gap:var(--space-2);margin:0 0 var(--space-3);padding:.25rem .6rem;background:var(--color-on-dark);color:var(--color-primary);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--track-eyebrow);text-transform:uppercase;border-radius:var(--radius-sm);}
.hero__featured-badge svg{width:1em;height:1em;flex:none;}
.hero__featured-tagline{display:block;margin:0 0 var(--space-4);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-on-dark);}
.hero__phone{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.75rem;font-family:var(--font-display);font-size:var(--text-md);font-weight:var(--fw-bold);color:var(--color-white);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em;}
.hero__phone svg{width:1em;height:1em;flex:none;}
/* photo-OFF: the drawn object of work (inline SVG after the H1 in source: never an LCP candidate).
   .hero .hero__art outranks the theme's inline critical rule `.hero svg{width:1em;height:1em}` on purpose. */
.hero__art{display:none;}
.hero .hero__art > svg{display:block;width:100%;height:auto;}
.hero__decal .d-plate{fill:var(--color-dark-3);stroke:var(--color-steel);}
.hero__decal .d-well{fill:var(--color-dark-2);}
.hero__decal .d-slat{fill:var(--color-dark-border);}
.hero__decal .d-edge,.hero__decal .d-screw{stroke:var(--color-steel);}
.hero__decal .d-screw{fill:var(--color-steel);stroke:none;}
.hero__decal .d-air{stroke:var(--color-accent);}          /* the airflow strokes: stripe family, re-tinted with the Customizer accent */
/* every other kind: the page's own card icon on a steel-framed plate (no extra artwork to maintain) */
.hero__art--plate{aspect-ratio:1;place-items:center;background:var(--color-dark-3);border:6px solid var(--color-steel);border-radius:var(--radius-lg);color:var(--color-on-dark);font-size:8.5rem;line-height:1;}
.hero .hero__art--plate > svg{width:1em;height:1em;}
/* photo-ON: a real <img> (fetchpriority=high, width/height, sizes) in a hard-edged block; the lettering stays on solid graphite */
.hero__media{position:relative;z-index:1;height:clamp(11rem,44vw,17rem);margin:var(--space-6) calc(-1 * var(--space-5)) 0;background:var(--color-dark-3);overflow:hidden;}
.hero__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
/* the request counter: straddles the band's bottom edge and interrupts the stripe */
.hero__form{position:relative;z-index:2;margin-top:calc(-1 * var(--overlap) - 6px);padding-bottom:var(--space-12);}
/* self-titled templates (single, search, archive, 404): the same graphite band, closed by the stripe */
.title-band{padding:var(--space-8) 0 calc(var(--space-10) + 5px);}
.page-title{font-family:var(--font-display);font-weight:var(--fw-bold);font-stretch:normal;font-size:clamp(1.875rem,1.05rem + 2.5vw,3rem);line-height:1.06;letter-spacing:var(--track-display);max-width:24ch;margin:var(--space-8) 0 var(--space-6);overflow-wrap:break-word;}
.title-band .page-title{color:var(--color-white);margin:0;}
.title-band .page-title span{color:var(--color-on-dark-muted);}
.title-band .entry-meta,.title-band .archive-description{color:var(--color-on-dark-muted);margin:var(--space-4) 0 0;}
@media (max-width:959px){
  .hero--request .hero__ctas > .btn{display:none;}          /* the form is the next thing on the screen; the sticky bar carries the action */
}
@media (max-width:719px){
  /* phones: the contact block is one compact line, so the form starts as early as possible */
  .contact-block__icon{display:none;}
  .contact-block__text{flex-direction:row;flex-wrap:wrap;align-items:baseline;gap:0 .6em;}
  .contact-block__value{font-size:var(--text-sm);}
  .hero .contact-block{padding-block:.8rem;margin-block:-.8rem;}   /* a 44px touch target; the negative margin keeps the form where it was */
}
@media (min-width:960px){
  .hero__inner{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);column-gap:var(--space-12);padding-top:var(--space-10);}
  .hero--request .hero__inner{padding-bottom:calc(var(--space-8) + var(--overlap));}
  .hero__eyebrow{display:none;}                    /* the utility strip carries the descriptor here */
  .hero__art{display:block;grid-column:2;justify-self:end;width:100%;max-width:25rem;}
  .hero__art--plate{display:grid;width:13.5rem;max-width:13.5rem;}
  /* no form, no photo: the plate takes only its own width, so long owner H1s (tool pages run to 67 characters) get the rest */
  .hero:not(.hero--request):not(.hero--has-media) .hero__inner{grid-template-columns:minmax(0,1fr) auto;}
  /* the photo block runs the full height of the band and bleeds to the right screen edge; its left edge is column 2 of the container
     (50% + 10% of the container's inner width + 40% of the column gap): no 100vw, so a classic scrollbar cannot push it off screen */
  .hero__media{position:absolute;z-index:0;top:0;bottom:0;right:0;left:calc(50% + (min(100%,var(--width-wide)) - 2 * var(--space-5)) * .1 + var(--space-12) * .4);height:auto;margin:0;}
  .hero__media::after{content:"";position:absolute;inset:auto 0 0 0;height:5px;background:linear-gradient(var(--color-accent) 0 2px,var(--color-primary) 2px 5px);}
}
/* in-page anchors clear the docked bar (and the WP admin bar) */
#request-quote,:target{scroll-margin-top:var(--space-4);}
@media (min-width:960px){#request-quote,:target{scroll-margin-top:calc(var(--header-h-docked) + var(--wp-admin--admin-bar--height,0px) + var(--space-4));}}

/* 5. THE ONE-STEP FORM (BUILD-CONTRACT §11 vocabulary; class selectors only) */
.quote-form-wrap{position:relative;background:var(--color-white);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-6) var(--space-5);box-shadow:var(--shadow-md);text-align:left;
  --cta-edge:var(--color-primary);--cta-bg-hover:var(--color-primary);--cta-label-hover:var(--color-on-dark);--cta-edge-hover:var(--color-primary);--tick:var(--color-primary);}
.quote-form-wrap :focus-visible{outline-color:var(--color-primary);}
.section .quote-form-wrap{box-shadow:none;}
/* a form placed in the body with [adc_quote_form] has no wrapper: it gets the same card, in the text column */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .quote-form{margin-top:var(--space-8);margin-bottom:var(--space-8);padding:var(--space-6) var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);}
.quote-form{margin:0;}
.quote-form__head{margin:0 0 var(--space-5);padding-bottom:var(--space-4);border-bottom:1px solid var(--color-border);}
.quote-form__title{font-size:var(--text-lg);line-height:1.15;letter-spacing:-.01em;margin:0 0 var(--space-2);}
.quote-form__sub{font-size:var(--text-sm);line-height:1.45;margin:0 0 var(--space-3);}
.quote-form__identity{font-size:var(--text-xs);line-height:1.5;color:var(--color-muted);margin:0;padding-left:var(--space-3);border-left:3px solid var(--color-primary);}
.qf-field{margin:0 0 var(--space-5);padding:0;border:0;min-width:0;}
.qf-label{display:block;font-size:var(--text-sm);font-weight:var(--fw-bold);line-height:1.3;margin:0 0 var(--space-2);padding:0;}
.qf-label .req{font-weight:var(--fw-normal);color:var(--color-muted);}
.qf-input,.qf-select,.qf-textarea{display:block;width:100%;min-height:3rem;font:400 1rem/1.4 var(--font);color:var(--color-text);background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);padding:.65rem .8rem;}
.qf-textarea{min-height:6rem;resize:vertical;}
.qf-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23272C30' stroke-width='2'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.4rem;}
.qf-input:focus,.qf-select:focus,.qf-textarea:focus{outline:3px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary);}
.qf-input::placeholder,.qf-textarea::placeholder{color:var(--color-muted);opacity:1;}
.qf-hint{font-size:var(--text-xs);line-height:1.45;color:var(--color-muted);margin:var(--space-2) 0 0;}
.qf-hint--warning{color:var(--color-text);font-weight:var(--fw-semibold);}
.qf-options{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-2);}
.qf-options--inline{grid-template-columns:repeat(2,minmax(0,1fr));}
.qf-option,.qf-chip{display:flex;align-items:flex-start;gap:.6rem;min-height:3rem;padding:.75rem .8rem;background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.3;cursor:pointer;}
.qf-option__text{min-width:0;}
.qf-option input,.qf-chip input,.qf-check input{flex:none;width:1.1rem;height:1.1rem;margin:.05rem 0 0;accent-color:var(--color-primary);}
.qf-option:has(input:checked),.qf-chip:has(input:checked){border:2px solid var(--color-primary);padding:calc(.75rem - 1px) calc(.8rem - 1px);background:var(--color-mark);font-weight:var(--fw-bold);}
.qf-chip:has(input:checked){padding:calc(.55rem - 1px) calc(.7rem - 1px);}
.qf-option:has(input:focus-visible),.qf-chip:has(input:focus-visible){outline:3px solid var(--color-primary);outline-offset:2px;}
.qf-option input:focus-visible,.qf-chip input:focus-visible{outline:0;}
.qf-check{display:flex;align-items:flex-start;gap:.6rem;margin:0 0 var(--space-5);font-size:var(--text-xs);line-height:1.45;cursor:pointer;}
.qf-check--sms{margin:var(--space-4) 0;}
.qf-row{display:grid;grid-template-columns:minmax(0,1fr);gap:0 var(--space-3);}
.qf-row--contact > .qf-hint{margin:calc(-1 * var(--space-3)) 0 var(--space-5);}
.qf-chips{display:flex;flex-wrap:wrap;gap:var(--space-2);margin:0 0 var(--space-4);padding:0;border:0;}
.qf-chips__title{flex-basis:100%;font-size:var(--text-sm);font-weight:var(--fw-bold);margin:0 0 var(--space-1);}
.qf-chip{min-height:2.75rem;padding:.55rem .7rem;}
.qf-chip-hint{flex-basis:100%;font-size:var(--text-xs);line-height:1.45;color:var(--color-muted);margin:0;}
.qf-chip-hint a{color:var(--color-text);font-weight:var(--fw-semibold);}
.qf-group{margin:var(--space-4) 0;padding:var(--space-4) 0 0;border:0;border-top:1px solid var(--color-border);}
.qf-group__title{font-size:var(--text-sm);font-weight:var(--fw-bold);margin:0 0 var(--space-3);}
.qf-safety{margin:0 0 var(--space-5);padding:.7rem .85rem;border-left:5px solid var(--color-error);background:var(--color-error-bg);font-size:var(--text-xs);font-weight:var(--fw-semibold);line-height:1.5;}
.qf-safety--chip{flex-basis:100%;margin:var(--space-1) 0 0;}
.qf-safety--static{margin:var(--space-3) 0 0;}
.qf-note{margin:var(--space-2) 0 0;padding:.55rem .8rem;border-left:5px solid var(--color-primary);background:var(--color-surface);font-size:var(--text-xs);line-height:1.45;}
.qf-file{font-size:var(--text-xs);color:var(--color-muted);max-width:100%;}
.qf-file::file-selector-button{margin-right:.75rem;min-height:2.75rem;padding:.4rem .9rem;font:700 var(--text-xs)/1.2 var(--font);color:var(--color-text);background:var(--color-white);border:2px solid var(--color-primary);border-radius:var(--radius);cursor:pointer;}
.qf-file__list{list-style:none;margin:var(--space-2) 0 0;padding:0;font-size:var(--text-xs);}
.qf-file__list li{margin:0 0 var(--space-1);}
.qf-field--size .qf-select{max-width:20rem;}
.qf-field--reasons{margin-bottom:0;}
.qf-field--photos,.qf-field--notes{margin-top:var(--space-4);}
.quote-form__more{margin:0 0 var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface);}
.quote-form__more-toggle{display:flex;justify-content:space-between;align-items:center;min-height:3rem;padding:0 var(--space-4);cursor:pointer;list-style:none;font-size:var(--text-sm);font-weight:var(--fw-bold);}
.quote-form__more-toggle::-webkit-details-marker{display:none;}
.quote-form__more-toggle::after{content:"+";font-weight:var(--fw-bold);font-size:1.4rem;line-height:1;}
.quote-form__more[open] > .quote-form__more-toggle::after{content:"\2212";}
.quote-form__more-body{padding:var(--space-4);background:var(--color-white);border-top:1px solid var(--color-border);border-radius:0 0 var(--radius) var(--radius);}
.quote-form__consent{font-size:var(--text-xs);line-height:1.5;color:var(--color-muted);margin:0 0 var(--space-4);}
.quote-form__submit{width:100%;min-height:3.5rem;font-size:var(--text-md);}
.quote-form__submit:disabled{cursor:progress;}
.quote-form__privacy{font-size:var(--text-xs);line-height:1.5;color:var(--color-muted);margin:var(--space-4) 0 0;}
.quote-form__privacy a,.quote-form__consent a{color:var(--color-text);text-decoration:underline;text-underline-offset:.2em;}
.quote-form__feedback{margin:0 0 var(--space-5);font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.45;}
.quote-form__feedback:empty{display:none;}
.quote-form__feedback.is-success{padding:.85rem 1rem;border-left:5px solid var(--color-primary);background:var(--color-mark);}
.quote-form__feedback.is-error{padding:.85rem 1rem;border-left:5px solid var(--color-error);background:var(--color-error-bg);color:var(--color-error);}
/* a failed submit (main.js focuses the message, then the field 60ms later). The message rides at the top of the screen, under
   the docked bar, while the form is in view: it is already in the scrollport, so focusing it moves nothing. While a field of
   that form has focus the scrollport is padded by the bar and the message's height, so the field stops below both.
   Neither can be out of sight after "Send" (a text field is revealed by its caret, which only scroll-padding moves; the
   other controls take a scroll-margin). */
.quote-form__feedback.is-error{position:sticky;top:calc(var(--wp-admin--admin-bar--height,0px) + var(--space-2));z-index:3;}
html:has(.quote-form__feedback.is-error ~ * :is(.qf-input,.qf-select,.qf-textarea):focus){scroll-padding-top:calc(var(--wp-admin--admin-bar--height,0px) + 7.5rem);scroll-padding-bottom:var(--space-6);}
.quote-form__feedback.is-error ~ * :is(.qf-file,.qf-option input,.qf-chip input,.qf-check input){scroll-margin-top:7.5rem;}
@media (min-width:960px){
  .quote-form__feedback.is-error{top:calc(var(--header-h-docked) + var(--wp-admin--admin-bar--height,0px) + var(--space-4));}
  html:has(.quote-form__feedback.is-error ~ * :is(.qf-input,.qf-select,.qf-textarea):focus){scroll-padding-top:calc(var(--header-h-docked) + var(--wp-admin--admin-bar--height,0px) + var(--space-4) + 5.5rem);}
  .quote-form__feedback.is-error ~ * :is(.qf-file,.qf-option input,.qf-chip input,.qf-check input){scroll-margin-top:calc(var(--header-h-docked) + var(--wp-admin--admin-bar--height,0px) + var(--space-4) + 5.5rem);}
}
.quote-form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.qf-input[aria-invalid="true"],.qf-select[aria-invalid="true"]{border-color:var(--color-error);box-shadow:inset 4px 0 0 var(--color-error);}
.spinner{display:none;width:18px;height:18px;border:2px solid rgba(var(--color-primary-rgb),.3);border-top-color:currentColor;border-radius:50%;}
.quote-form.is-sending .spinner{display:inline-block;}
@media (prefers-reduced-motion:no-preference){.quote-form.is-sending .spinner{animation:adc-spin .7s linear infinite;}}
@keyframes adc-spin{to{transform:rotate(360deg);}}
.form-fallback > :last-child{margin-bottom:0;}
/* the hero card is a 40rem single-column card by default (email fallback, operator override shortcode, an unknown form DOM) ... */
.hero__form .quote-form-wrap{max-width:40rem;}
@media (min-width:480px){
  .qf-row--contact{grid-template-columns:repeat(2,minmax(0,1fr));}
  .qf-row--contact .qf-field--name,.qf-row--contact > .qf-hint{grid-column:1 / -1;}
}
/* ... and becomes the full-width COUNTER only when the form's direct children are the ones this layout places (:has guard).
   Pure placement; any other direct child spans the full width; empty rows collapse because the gaps are margins, not row-gap.
   Row 5 (zip) is the one flexible row: the service list and the contact column span rows 3-5, and the height they need beyond
   their neighbours goes to a flexible row they cross, so the "add" row is 0 high while its checkbox is [hidden]
   (2.0.0 integration fix; the one declaration that is not in the reference sketch). */
@media (min-width:720px){
  .quote-form-wrap{padding:var(--space-6) var(--space-8) var(--space-8);}
  .hero__form .quote-form-wrap:has(> .quote-form > .qf-field--service){max-width:none;}
  .hero__form .quote-form:has(> .qf-field--service){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto auto 1fr;column-gap:var(--space-8);align-items:start;
    grid-template-areas:"head head" "fb fb" "svc add" "svc prop" "svc zip" "contact contact" "safety safety" "more more" "sms sms" "consent consent" "submit submit" "privacy privacy";}
  .hero__form .quote-form:has(> .qf-field--service) > *{grid-column:1 / -1;}
  .hero__form .quote-form > .quote-form__head{grid-area:head;}
  .hero__form .quote-form > .quote-form__feedback{grid-area:fb;}
  .hero__form .quote-form > .qf-field--service{grid-area:svc;}
  .hero__form .quote-form > .qf-check--add-dryer{grid-area:add;}
  .hero__form .quote-form > .qf-field--property{grid-area:prop;}
  .hero__form .quote-form > .qf-field--zip{grid-area:zip;}
  .hero__form .quote-form > .qf-row--contact{grid-area:contact;grid-template-columns:repeat(3,minmax(0,1fr));}
  .hero__form .quote-form > .qf-row--contact .qf-field--name{grid-column:auto;}
  .hero__form .quote-form > .qf-safety--service{grid-area:safety;}
  .hero__form .quote-form > .quote-form__more{grid-area:more;}
  .hero__form .quote-form > .qf-check--sms{grid-area:sms;}
  .hero__form .quote-form > .quote-form__consent{grid-area:consent;}
  .hero__form .quote-form > .quote-form__submit{grid-area:submit;}
  .hero__form .quote-form > .quote-form__privacy{grid-area:privacy;}
}
@media (min-width:1024px){
  .hero__form .quote-form:has(> .qf-field--service){grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-10);
    grid-template-areas:"head head head" "fb fb fb" "svc add contact" "svc prop contact" "svc zip contact" "safety safety safety" "more more more" "sms sms sms" "consent consent submit" "privacy privacy privacy";}
  .hero__form .quote-form > .quote-form__head{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);column-gap:var(--space-10);align-items:start;margin-bottom:var(--space-4);}
  .hero__form .quote-form__title{grid-column:1 / -1;}
  .hero__form .quote-form__sub{margin-bottom:0;}
  .hero__form .quote-form > .qf-row--contact{grid-template-columns:minmax(0,1fr);}
  .hero__form .quote-form > .quote-form__consent{align-self:center;margin:0;}
  .hero__form .quote-form > .quote-form__submit{align-self:center;}
  .hero__form .quote-form__more-body{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--space-10);}
  .hero__form .quote-form__more-body > :is(.qf-field--reasons,.qf-group,.qf-field--photos,.qf-field--notes){grid-column:1 / -1;}
}

/* 6. SECTIONS + HEADS (banded-dense, declared deltas) --------------------- */
.section{position:relative;padding:var(--space-20) 0;}
.section--surface{background:var(--color-surface);}
.section--dark{background:var(--color-primary);color:var(--color-on-dark);}
.section--full{width:100%;}
.section--archive{padding-top:var(--space-12);}
.hero--request + .section--surface{padding-top:var(--space-8);}      /* one galvanised zone under the counter */
.section.section--prose,.section--prose{background:var(--color-page);}
.section-head{max-width:44rem;margin:0 0 var(--space-10);}
.section-head h2,h2.section-head{font-size:clamp(var(--text-xl),1.2rem + 1.5vw,2.25rem);}
.section-head h2{margin:0;}   /* a bare h2.section-head (author archive) keeps the head's own bottom margin */
.section-head p{font-size:var(--text-md);line-height:1.5;color:var(--color-muted);margin:var(--space-4) 0 0;}
:is(.section--dark,.process) .section-head p{color:var(--color-on-dark-muted);}
.section-more{margin:var(--space-8) 0 0;}
.content-narrow{max-width:var(--width-content);margin-left:auto;margin-right:auto;}
.site-main > .container > .qf-note{margin:var(--space-6) 0 0;max-width:46rem;font-size:var(--text-sm);}     /* admin-only homepage notice before Adopt */
.site-main > .container > .qf-note a{color:var(--color-text);font-weight:var(--fw-semibold);}

/* 7. CARDS (corner-badge) + GRIDS + CHIPS -------------------------------- */
.grid{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){.grid--3{grid-template-columns:repeat(3,minmax(0,1fr));}.grid--4{grid-template-columns:repeat(4,minmax(0,1fr));}}
@media (min-width:340px) and (max-width:639px){.grid:has(> .card--area){grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);}}
@media (max-width:339px){.grid:has(> .card--area){gap:var(--space-3);}}
.card{position:relative;display:flex;flex-direction:column;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;transition:border-color var(--transition);}
.card:hover,.card:focus-within{border-color:var(--color-primary);}
.card__media{display:block;background:var(--color-surface-2);}
.card__media img{width:100%;aspect-ratio:16 / 10;object-fit:cover;}
/* the badge: a graphite block set flush INTO the top-left corner, carrying the page's icon in white */
.card__icon{display:flex;align-items:center;justify-content:center;flex:none;width:3.75rem;height:3.75rem;background:var(--color-primary);color:var(--color-on-dark);font-size:2rem;line-height:1;border-radius:0 0 var(--radius-lg) 0;}
.card__icon svg{width:1em;height:1em;}
.card__media + .card__icon{margin-top:-1.875rem;position:relative;border-radius:0 var(--radius-lg) var(--radius-lg) 0;}
.card__body{display:flex;flex-direction:column;gap:var(--space-3);flex:1;padding:var(--space-5) var(--space-6) 0;}
.card__title{font-size:var(--text-lg);line-height:1.18;letter-spacing:-.01em;margin:0;}
.card__title a{text-decoration:none;}
.card__title a::after{content:"";position:absolute;inset:0;z-index:1;}
.card__title a:focus-visible{outline:0;}
.card:has(.card__title a:focus-visible){outline:3px solid var(--color-primary);outline-offset:3px;}
.card__excerpt{font-size:1rem;line-height:1.5;color:var(--color-muted);margin:0;}
/* the action row closes the card: label + a graphite arrow chip. It stays INSIDE .card__body (the 1.0.0 position, also what the
   plugin's own cards print) and reaches the card edges with negative margins. On hover the row fills and the chip goes hi-vis. */
.card__cta{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);min-height:3.25rem;margin:auto calc(-1 * var(--space-6)) 0;padding:0 var(--space-2) 0 var(--space-6);border-top:1px solid var(--color-border);font-size:var(--text-sm);font-weight:var(--fw-bold);text-decoration:none;transition:background-color var(--transition),color var(--transition);}
.card__body > :nth-last-child(2){margin-bottom:var(--space-3);}
.card__cta svg{box-sizing:content-box;flex:none;width:1em;height:1em;font-size:1.1em;padding:.55rem;background:var(--color-primary);color:var(--color-on-dark);border-radius:var(--radius-sm);transition:background-color var(--transition),color var(--transition);}
.card:hover .card__cta,.card:focus-within .card__cta{background:var(--color-primary);color:var(--color-on-dark);border-top-color:var(--color-primary);}
.card:hover .card__cta svg,.card:focus-within .card__cta svg{background:var(--color-accent);color:var(--color-accent-ink);}
/* area card: one row - badge, place name, arrow chip */
.card--area{flex-direction:row;align-items:stretch;}
.card--area .card__icon{width:3.25rem;height:auto;min-height:3.5rem;font-size:1.6rem;border-radius:0;}
.card--area .card__body{flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);}
.card--area .card__title{flex:1;min-width:0;font-size:var(--text-md);overflow-wrap:anywhere;}
.card--area .card__excerpt{order:3;flex-basis:100%;margin:0 0 var(--space-2);}
.card--area .card__body > :nth-last-child(2){margin-bottom:0;}
.card--area .card__cta{margin:0;border:0;padding:0;min-height:0;background:none;}
.card--area:hover .card__cta,.card--area:focus-within .card__cta{background:none;}
.card--area .card__cta > span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);}
.card--area:has(.card__media){flex-direction:column;}
.card--area:has(.card__media) .card__icon{width:3.25rem;height:3.25rem;min-height:0;border-radius:0 var(--radius-lg) var(--radius-lg) 0;}
.grid:has(> .card--area > .card__media) > .card--area:not(:has(.card__media)){align-self:start;}   /* mixed row (photos added one page at a time): a one-row tile keeps its own height */
@media (max-width:639px){.card--area .card__cta{display:none;}.card--area .card__title{font-size:1rem;line-height:1.2;}.card--area .card__icon{width:2.5rem;font-size:1.3rem;}.card--area .card__body{padding-left:var(--space-3);}}
/* compact rows (home Tools band): icon, short label, arrow */
.tool-list{list-style:none;display:grid;gap:var(--space-3);grid-template-columns:minmax(0,1fr);margin:0;padding:0;}
@media (min-width:720px){.tool-list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1100px){.tool-list{grid-template-columns:repeat(3,minmax(0,1fr));}}
.tool-list__item a{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:var(--space-3);min-height:3.75rem;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-2);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--fw-bold);line-height:1.25;text-decoration:none;transition:background-color var(--transition),color var(--transition),border-color var(--transition);}
.tool-list__item a:hover{border-color:var(--color-primary);background:var(--color-primary);color:var(--color-on-dark);}
.tool-list__icon{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:var(--color-primary);color:var(--color-on-dark);font-size:1.4rem;border-radius:var(--radius-sm);}
.tool-list__item a:hover .tool-list__icon{background:var(--color-dark-3);}
.tool-list svg{width:1em;height:1em;}
/* silo cross-links + local-area chips + the area checker */
.silo,.local-areas{padding:var(--space-16) 0;background:var(--color-surface);}
.silo + .local-areas,.local-areas + .silo,.silo + .silo{padding-top:0;}
.silo__heading,.local-areas__heading{font-size:var(--text-xl);margin:0 0 var(--space-5);}
.silo__links,.area-chips,.silo__more{display:flex;flex-wrap:wrap;gap:var(--space-2);list-style:none;margin:0;padding:0;}
.silo__links a,.silo__links-item,.area-chips li,.silo__more a{display:inline-flex;align-items:center;min-height:2.75rem;padding:.5rem 1rem;background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--fw-bold);text-decoration:none;}
.silo__links a:hover,.silo__more a:hover{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-dark);}
.silo__links-item,.area-chips li{border-color:var(--color-border);color:var(--color-muted);font-weight:var(--fw-semibold);font-variant-numeric:tabular-nums;}
.silo__more{margin-top:var(--space-4);}
.area-chips{margin:0 0 var(--space-5);}
.local-areas__note{max-width:38rem;margin:0 0 var(--space-5);font-size:var(--text-sm);line-height:1.5;color:var(--color-muted);}
.area-check{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:stretch;max-width:34rem;margin:0;}
.area-check__label{flex:1 1 14rem;min-width:0;display:block;}
.area-check__input{display:block;width:100%;min-height:3.25rem;padding:.65rem .8rem;font:400 1rem/1.4 var(--font);color:var(--color-text);background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);}
.area-check__input:focus{outline:3px solid var(--color-primary);outline-offset:1px;border-color:var(--color-primary);}
.area-check__result{max-width:34rem;margin:var(--space-4) 0 0;padding:var(--space-4);border-left:5px solid var(--color-primary);background:var(--color-white);border-radius:0 var(--radius) var(--radius) 0;}
.area-check__result.is-yes{box-shadow:inset 0 0 0 100vmax var(--color-mark);}
.area-check__msg{margin:0 0 var(--space-3);font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.45;}

/* 7b. PROCESS BAND ("Before you book") - the mid-page graphite band -------- */
.process{position:relative;padding:var(--space-20) 0;background:var(--color-primary);color:var(--color-on-dark);}
.process__list{list-style:none;display:grid;gap:var(--space-4);grid-template-columns:minmax(0,1fr);margin:0;padding:0;}
.process__step{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--space-4);align-content:start;padding:var(--space-5);background:var(--color-dark-3);border-radius:var(--radius-lg);}
.process__icon{grid-row:1 / span 2;display:flex;align-items:center;justify-content:center;width:3.5rem;height:3.5rem;background:var(--color-on-dark);color:var(--color-primary);font-size:1.9rem;border-radius:var(--radius);}
.process__icon svg{width:1em;height:1em;}
.process__label{align-self:end;font-size:var(--text-lg);color:var(--color-white);margin:0 0 var(--space-1);}
.process__text{font-size:1rem;line-height:1.5;color:var(--color-on-dark-muted);margin:0;}
.process__more{margin:var(--space-6) 0 0;font-size:var(--text-sm);}
.process__more a{color:var(--color-on-dark);font-weight:var(--fw-bold);text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--color-steel);text-underline-offset:.25em;}
.process__more a:hover{color:var(--color-white);text-decoration-color:var(--color-white);}
@media (min-width:860px){
  .process__list{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-10);}
  .process__step{grid-template-columns:minmax(0,1fr);padding:var(--space-6);}
  .process__icon{grid-row:auto;margin-bottom:var(--space-5);}
  /* a hi-vis chevron in the gutter (stripe family): reads as a sequence without numbering buyer advice as steps */
  .process__step + .process__step::before{content:"";position:absolute;left:calc(-1 * var(--space-10) / 2 - .45rem);top:calc(var(--space-6) + 1.3rem);width:.9rem;height:.9rem;border-top:4px solid var(--color-accent);border-right:4px solid var(--color-accent);transform:rotate(45deg);}
}

/* 8. PROSE - the owner's 1,500-2,000-word pages.
   The article is as wide as the container; every flow child is capped on its own (text 38rem, 3+ column tables 54rem, a tool
   widget its own inline max-width). Every rule starts with a CHILD combinator from one of the four flow roots, so nothing
   reaches into a tool widget and the rules survive Read more (the read-more wrappers are flow roots too). */
.prose-content{max-width:none;margin:0;padding:0;font-size:var(--text-base);line-height:1.65;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > *{max-width:var(--width-content);margin-left:auto;margin-right:auto;}
.prose-content > :is(.readmore,.readmore__inner,.readmore__visible,.readmore__hidden){max-width:none;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(.alignwide,.alignfull){max-width:none;}
/* a floated block starts on the edge of the 38rem text column, not on the container edge */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .alignleft{margin-left:max(0px,calc((100% - var(--width-content)) / 2));}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .alignright{margin-right:max(0px,calc((100% - var(--width-content)) / 2));}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h2{font-size:clamp(var(--text-xl),1.15rem + 1.2vw,var(--text-2xl));margin-top:var(--space-16);margin-bottom:var(--space-5);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h3{margin-top:var(--space-10);margin-bottom:var(--space-3);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h4{margin-top:var(--space-8);margin-bottom:var(--space-2);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :first-child{margin-top:0;}
:is(.prose-content,.readmore__inner,.readmore__visible) > p:first-child{font-size:var(--text-md);line-height:1.55;font-weight:var(--fw-medium);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(p,ul,ol,blockquote,h2,h3,h4,figure,details) a{text-decoration:underline;text-decoration-thickness:2px;text-decoration-color:var(--color-primary);text-underline-offset:.22em;font-weight:var(--fw-semibold);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(p,ul,ol,blockquote,h2,h3,h4,figure,details) a:hover{background:var(--color-mark);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(ul,ol){margin-top:0;margin-bottom:var(--space-6);padding-left:1.6rem;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(ul,ol) > li{margin:0 0 .5rem;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > ul{list-style:none;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > ul > li{position:relative;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > ul > li::before{content:"";position:absolute;left:-1.45rem;top:.58em;width:.55rem;height:.55rem;background:var(--color-primary);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > ol > li::marker{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > hr{border:0;border-top:1px solid var(--color-border);margin-top:var(--space-12);margin-bottom:var(--space-12);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(figure.wp-block-image,.wp-block-image){margin-top:var(--space-8);margin-bottom:var(--space-8);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-buttons{margin-top:var(--space-8);margin-bottom:var(--space-8);}
/* tables: a graphite header row in a rounded frame; a 3+ column table breaks out to 54rem and scrolls sideways when the frame is narrower than 34rem */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table{margin-top:var(--space-8);margin-bottom:var(--space-10);overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table:has(tr > :nth-child(3)){max-width:var(--width-table);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table{width:100%;table-layout:auto;border-collapse:collapse;font-size:var(--text-sm);line-height:1.45;font-variant-numeric:tabular-nums;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table:has(tr > :nth-child(3)){min-width:34rem;}
/* < 768: a 3+ column table keeps the owner's fixed layout at 36rem, so a column is always visibly cut by the frame = the scroll cue */
@media (max-width:767px){:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table:has(tr > :nth-child(3)){min-width:36rem;table-layout:fixed;}}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table :is(th,td){border:0;padding:.8rem 1rem;text-align:left;vertical-align:top;word-break:normal;overflow-wrap:normal;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table thead th{background:var(--color-primary);color:var(--color-on-dark);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:.05em;text-transform:uppercase;vertical-align:bottom;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table tbody td{border-top:1px solid var(--color-border);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table tbody tr:nth-child(even) td{background:var(--color-surface);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table td:first-child{font-weight:var(--fw-bold);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > figcaption{padding:.6rem 1rem;font-size:var(--text-xs);color:var(--color-muted);border-top:1px solid var(--color-border);}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-quote{margin-top:var(--space-6);margin-bottom:var(--space-8);padding:var(--space-5) var(--space-6);background:var(--color-surface);border-left:6px solid var(--color-primary);border-radius:0 var(--radius) var(--radius) 0;font-weight:var(--fw-medium);line-height:1.6;}
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-quote > :last-child{margin-bottom:0;}
/* the owner's closing italic disclaimer */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > p:nth-last-child(-n+2):has(> em:only-child){margin-top:var(--space-12);padding:var(--space-4) var(--space-5);background:var(--color-surface);border-left:5px solid var(--color-edge);font-size:var(--text-sm);line-height:1.55;color:var(--color-muted);}
/* read more (content_readmore_enable; ships OFF) */
.readmore__btn{display:none;margin-top:var(--space-6);}
.js .readmore.is-ready > .readmore__btn{display:inline-flex;margin-left:max(0px,calc((100% - var(--width-content)) / 2));}
.js .readmore--center.is-ready > .readmore__btn{display:flex;width:max-content;margin-left:auto;margin-right:auto;}
.js .readmore--right.is-ready > .readmore__btn{display:flex;width:max-content;margin-left:auto;margin-right:max(0px,calc((100% - var(--width-content)) / 2));}
.js .readmore--block.is-ready > .readmore__btn{display:flex;width:100%;max-width:var(--width-content);margin-left:auto;margin-right:auto;}
.js .readmore.is-collapsed .readmore__hidden{display:none;}
.js .readmore--height.is-collapsed .readmore__inner{max-height:var(--readmore-h,480px);overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 6rem),transparent);mask-image:linear-gradient(180deg,#000 calc(100% - 6rem),transparent);}
/* TOOL PAGES: the owner's self-contained widget (a Custom HTML block: <div id="..." style="max-width:...">) keeps every inline
   style, including its own max-width (820-1100px); the theme only gives it a stage and rolls its own element rules back. */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > div[style]:not([class]){max-width:none;box-shadow:0 0 0 .75rem var(--color-surface),0 0 0 calc(.75rem + 1px) var(--color-border);font-size:1rem;line-height:1.5;}
/* the island: every theme (and theme.json) element rule is rolled back to the browser default inside a widget; its inline styles still win */
:is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > div[style]:not([class]) :where(*){all:revert;box-sizing:border-box;}

/* 9. FAQ (theme part; the owner's FAQs live in the content as H2/H3) ------- */
.faq{padding:var(--space-16) 0;}
.faq > .container{max-width:calc(var(--width-content) + 2 * var(--space-5));}
.faq__heading{font-size:var(--text-xl);margin:0 0 var(--space-5);}
.faq__list{display:flex;flex-direction:column;}
.faq__item{border:1px solid var(--color-border);border-radius:var(--radius);margin:0 0 var(--space-2);background:var(--color-white);}
.faq__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:3.5rem;padding:var(--space-3) var(--space-4);cursor:pointer;list-style:none;}
.faq__summary::-webkit-details-marker{display:none;}
.faq__summary::marker{content:"";}
.faq-question{font-family:var(--font);font-size:var(--text-base);font-weight:var(--fw-bold);line-height:1.3;letter-spacing:0;margin:0;}
.faq__chevron{flex:none;display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;background:var(--color-primary);color:var(--color-on-dark);border-radius:var(--radius-sm);transition:transform var(--transition);}
.faq__chevron svg{width:1em;height:1em;}
.faq__item[open] .faq__chevron{transform:rotate(180deg);}
.faq__answer{padding:0 var(--space-4) var(--space-5);}
.faq__answer p:last-child{margin-bottom:0;}

/* 10. CTA BAND (full-bleed graphite, opened by the livery stripe) --------- */
.cta-banner{position:relative;padding:calc(var(--space-16) + var(--stripe-h)) 0 var(--space-16);background:var(--color-primary);color:var(--color-on-dark);}
.cta-banner::before{content:"";position:absolute;inset:0 0 auto 0;height:var(--stripe-h);background:linear-gradient(var(--color-accent) 0 6px,var(--color-primary) 6px 9px,var(--color-accent) 9px);}
.cta-banner__inner{display:grid;gap:var(--space-8);grid-template-columns:minmax(0,1fr);align-items:center;}
.cta-banner h2{font-size:clamp(var(--text-xl),1.2rem + 1.5vw,2.25rem);color:var(--color-white);max-width:22ch;margin:0 0 var(--space-5);}
.cta-banner p{color:var(--color-on-dark-muted);max-width:38em;margin:0;}
.cta-banner__actions{display:flex;flex-direction:column;gap:var(--space-3);}
.cta-banner__actions .btn{width:100%;overflow-wrap:anywhere;}
@media (min-width:960px){.cta-banner__inner{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--space-16);}}

/* 11. FOOTER + STICKY BAR ----------------------------------------------- */
.site-footer{position:relative;padding:var(--space-16) 0 var(--space-8);background:var(--color-dark-2);color:var(--color-on-dark-muted);font-size:var(--text-sm);line-height:1.55;}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-10) var(--space-8);}
@media (min-width:640px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.footer-brand{grid-column:1 / -1;}}
@media (min-width:1024px){.footer-grid{grid-template-columns:minmax(0,1.6fr);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);}.footer-brand{grid-column:auto;}}
.footer-col{min-width:0;}
.footer-logo-plate{display:inline-block;margin:0 0 var(--space-5);padding:.6rem .8rem;background:var(--color-white);border-radius:var(--radius);line-height:0;}
.footer-logo-plate img{width:auto;height:auto;max-height:64px;max-width:var(--logo-max-w,200px);}
.footer-name{font-family:var(--font-display);font-size:var(--text-lg);font-weight:var(--fw-bold);color:var(--color-white);margin:0 0 var(--space-3);}
.footer-brand .footer-name a{color:var(--color-white);text-decoration:none;}
.footer-tagline{font-size:var(--text-base);line-height:1.5;color:var(--color-on-dark);max-width:24em;}
.site-footer h3,.footer-widget__title{color:var(--color-white);margin:0 0 var(--space-4);padding-bottom:var(--space-3);border-bottom:2px solid var(--color-dark-border);}
.site-footer p{margin:0 0 var(--space-2);}
.site-footer a{color:var(--color-on-dark);text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--color-dark-border);text-underline-offset:.25em;}
.site-footer a:hover{color:var(--color-white);text-decoration-color:var(--color-white);text-decoration-thickness:2px;}
.site-footer .contact-block{margin:var(--space-3) 0 var(--space-4);text-decoration:none;}
.site-footer .contact-block__icon{display:flex;background:var(--color-dark-3);color:var(--color-on-dark);}
.site-footer .contact-block__text{flex-direction:column;gap:0;}
.footer-menu,.site-footer ul{list-style:none;margin:0;padding:0;}
.footer-menu li{margin:0 0 .15rem;}
.footer-menu a{display:inline-flex;align-items:center;min-height:2.75rem;}
@media (min-width:960px){.footer-menu a{min-height:2rem;}}
.footer-license{color:var(--color-on-dark-muted);}
.footer-social{display:flex;gap:var(--space-3);margin-top:var(--space-4);}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:var(--color-dark-3);border-radius:var(--radius);}
.footer-social svg{width:1em;height:1em;font-size:1.2em;}
.footer-widget{margin:0 0 var(--space-6);}
.footer-disclosure{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--color-dark-border);}
.footer-bottom{margin-top:var(--space-12);padding-top:var(--space-5);border-top:1px solid var(--color-dark-border);font-size:var(--text-xs);}
.footer-identity{color:var(--color-on-dark);max-width:60em;}
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;gap:var(--space-2);padding:.55rem max(.75rem,env(safe-area-inset-left)) calc(.55rem + env(safe-area-inset-bottom)) max(.75rem,env(safe-area-inset-right));background:var(--color-dark-2);border-top:3px solid var(--color-accent);}
.sticky-bar a{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:3rem;padding:.5rem .75rem;font-family:var(--font-display);font-weight:var(--fw-bold);font-size:var(--text-base);text-decoration:none;border:2px solid var(--color-on-dark);border-radius:var(--radius);background:transparent;color:var(--color-on-dark);}
.sticky-bar a.sticky-bar__action--quote{flex:2;background:var(--cta-bg);color:var(--cta-label);border-color:var(--cta-edge);}
.sticky-bar__action span{white-space:nowrap;}
.sticky-bar svg{width:1em;height:1em;font-size:1.1em;}
body.has-sticky-bar{padding-bottom:calc(4.2rem + env(safe-area-inset-bottom));}
body.has-sticky-bar:not(:has(.sticky-bar)){padding-bottom:0;}
body.is-form-visible .sticky-bar{transform:translateY(110%);}
@media (prefers-reduced-motion:no-preference){.sticky-bar{transition:transform var(--transition);}}
@media (min-width:960px){.sticky-bar{display:none;}body.has-sticky-bar{padding-bottom:0;}}

/* 12. POSTS, PAGINATION, SEARCH, REVEAL ---------------------------------- */
.entry-meta{font-size:var(--text-sm);line-height:1.4;color:var(--color-muted);margin:0 0 var(--space-6);}
.archive-description{max-width:40em;font-size:var(--text-md);color:var(--color-muted);}
.single-post .entry-header{margin:0 0 var(--space-8);}
.entry-content > :first-child{margin-top:0;}
.post-thumb{margin:0 0 var(--space-8);}
.post-thumb img{width:100%;height:auto;border-radius:var(--radius-lg);}
.post-list{display:grid;gap:var(--space-6);}
.post-list__empty{max-width:40em;color:var(--color-muted);}
.adc-posts__more{margin:var(--space-8) 0 0;}
.projects,.adc-posts,.related-posts{position:relative;}
.pagination{margin-top:var(--space-12);}
.pagination .nav-links{display:flex;flex-wrap:wrap;gap:var(--space-2);}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;height:2.75rem;padding:0 var(--space-3);font-size:var(--text-sm);font-weight:var(--fw-bold);text-decoration:none;background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);}
.pagination .page-numbers.current{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-dark);}
.pagination a.page-numbers:hover{border-color:var(--color-primary);background:var(--color-mark);}
.search-form{display:flex;gap:var(--space-2);max-width:32rem;}
.search-form .search-field{flex:1;min-width:0;min-height:3.25rem;padding:.65rem .8rem;font:400 1rem var(--font);color:var(--color-text);border:1px solid var(--color-field);border-radius:var(--radius);background:var(--color-white);}
.search-form .btn{white-space:nowrap;}
.js .reveal,.no-js .reveal{opacity:1;transform:none;}   /* 2.0.0: .reveal stays in the markup, the entrance is a no-op: content is always visible */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important;}}

/* 13. RESPONSIVE (the rest) ----------------------------------------------- */
@media (max-width:719px){
  .section,.process{padding:var(--space-12) 0;}
  .silo,.local-areas{padding:var(--space-12) 0;}
  .cta-banner{padding:calc(var(--space-12) + var(--stripe-h)) 0 var(--space-12);}
  .section-head{margin-bottom:var(--space-8);}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h2{margin-top:var(--space-12);}
  .hero__title{max-width:none;}
}
@media (max-width:479px){
  .wp-block-buttons,.wp-block-buttons > .wp-block-button,.wp-block-button > .wp-block-button__link{width:100%;}
  .hero__ctas .btn{width:100%;}
}

/* 14. RETAINED MODULES - all ship empty / OFF and self-hide server-side; styled so a tenant can switch them on */
.trust-bar{background:var(--color-white);border-bottom:1px solid var(--color-border);}
.trust-bar__inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-10);padding-top:var(--space-5);padding-bottom:var(--space-5);}
.trust-rating{display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--space-2);font-size:var(--text-sm);}
.trust-rating a{text-decoration:underline;text-underline-offset:.2em;}
.trust-metric{display:flex;flex-direction:column;padding-left:var(--space-4);border-left:5px solid var(--color-primary);}
.trust-metric__value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--fw-bold);line-height:1.05;letter-spacing:-.01em;font-variant-numeric:tabular-nums;}
.trust-metric__label{font-size:var(--text-xs);color:var(--color-muted);}
.trust-badges{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);padding:var(--space-4) 0;}
.trust-badge,.credential,.trust-chip{display:inline-flex;align-items:center;gap:var(--space-2);min-height:2.5rem;padding:.35rem .85rem .35rem .4rem;background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--fw-bold);}
.trust-chip{padding-left:.85rem;}
.trust-badge svg,.credential svg{box-sizing:content-box;flex:none;width:1em;height:1em;padding:.3rem;background:var(--color-primary);color:var(--color-on-dark);border-radius:var(--radius-sm);}
.credentials{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-8) 0;}
.credential__value{font-weight:var(--fw-bold);}
.credential a{color:var(--color-text);}
.awards{display:flex;flex-wrap:wrap;gap:var(--space-8);align-items:center;padding:var(--space-8) 0;}
.awards img{max-height:44px;width:auto;}
.guarantees{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);padding:var(--space-8) 0;}
@media (min-width:640px){.guarantees{grid-template-columns:repeat(3,minmax(0,1fr));}}
.guarantee{padding:var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-left:6px solid var(--color-primary);border-radius:0 var(--radius-lg) var(--radius-lg) 0;}
.guarantee svg{width:1em;height:1em;font-size:1.6em;margin-bottom:var(--space-2);}
.guarantee h3{font-size:var(--text-md);}
.testimonials{background:var(--color-surface);}
.testimonials__track{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);}
@media (min-width:860px){.testimonials__track{grid-template-columns:repeat(3,minmax(0,1fr));}}
.testimonial{margin:0;padding:var(--space-6);background:var(--color-white);border:1px solid var(--color-border);border-top:6px solid var(--color-primary);border-radius:var(--radius-lg);}
.testimonial__text{margin:0 0 var(--space-4);font-size:var(--text-md);line-height:1.5;}
.testimonial__author{font-size:var(--text-sm);font-weight:var(--fw-bold);}
.testimonial__location{font-size:var(--text-sm);color:var(--color-muted);}
.projects__grid{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.projects__grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){.projects__grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.project-card{position:relative;display:flex;flex-direction:column;background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;}
.project-card__images{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--color-primary);}
.project-card__images figure{position:relative;margin:0;}
.project-card__images img{width:100%;aspect-ratio:1;object-fit:cover;}
.project-card__images figcaption{position:absolute;left:0;top:0;padding:.2rem .6rem;background:var(--color-primary);color:var(--color-on-dark);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--track-eyebrow);text-transform:uppercase;}
.project-card__images figure + figure figcaption{background:var(--color-white);color:var(--color-text);box-shadow:inset 0 0 0 2px var(--color-primary);}
.project-card__body{display:flex;flex-direction:column;gap:var(--space-3);flex:1;padding:var(--space-5) var(--space-6) 0;}
.project-card__body > .card__cta{padding-right:var(--space-6);}
.project-card__meta{font-size:var(--text-xs);color:var(--color-muted);margin:0;}
.team-grid{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr));}}
.team-card{padding:var(--space-6);background:var(--color-white);border:1px solid var(--color-border);border-radius:var(--radius-lg);}
.team-card h3{font-size:var(--text-md);}
.team-card h3 a{text-decoration:none;}
.team-card__photo img{width:110px;height:110px;object-fit:cover;margin:0 0 var(--space-4);border-radius:var(--radius);}
.author-box{display:flex;flex-wrap:wrap;gap:var(--space-6);max-width:var(--width-content);margin:var(--space-12) auto;padding:var(--space-6);background:var(--color-surface);border-left:6px solid var(--color-primary);border-radius:0 var(--radius-lg) var(--radius-lg) 0;}
.author-box__photo img{width:96px;height:96px;object-fit:cover;border-radius:var(--radius);}
.author-box__body{flex:1 1 16rem;min-width:0;}
.author-box__eyebrow{display:block;margin:0 0 var(--space-1);font-size:var(--text-xs);font-weight:var(--fw-bold);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-muted);}
.author-box__name{margin:0 0 var(--space-2);font-size:var(--text-lg);}
.author-box__creds{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);}
.author-box__bio p{font-size:1rem;}
.author-box__social{display:flex;gap:var(--space-3);margin-top:var(--space-3);}
.author-box__social a{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;background:var(--color-white);border:1px solid var(--color-field);border-radius:var(--radius);}
.author-box__social svg,.author-box__all svg{width:1em;height:1em;flex:none;}
.author-box__all{display:inline-flex;align-items:center;gap:.4em;font-size:var(--text-sm);font-weight:var(--fw-bold);text-decoration:underline;text-underline-offset:.2em;}
.author-archive-head .author-box{margin-top:0;}
.section--archive .author-archive-head .author-box{margin-left:0;}
.fact-check,.freshness{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:var(--width-content);margin:var(--space-3) auto;font-size:var(--text-sm);line-height:1.4;color:var(--color-muted);}
.fact-check > svg,.freshness svg{width:1em;height:1em;flex:none;color:var(--color-text);}
.fact-check a{color:var(--color-text);}
.fact-check__details{display:inline-flex;align-items:center;}
.fact-check__details summary{display:inline-flex;align-items:center;justify-content:center;min-width:2rem;min-height:2rem;cursor:pointer;list-style:none;color:var(--color-text);}
.fact-check__details summary::-webkit-details-marker{display:none;}
.fact-check__details summary svg{width:1em;height:1em;}
.fact-check__panel{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:16rem;max-width:min(26rem,90vw);padding:var(--space-4);background:var(--color-white);color:var(--color-text);border:1px solid var(--color-edge);border-top:5px solid var(--color-primary);border-radius:0 0 var(--radius) var(--radius);box-shadow:var(--shadow-md);}
.fact-check__panel p{margin:0 0 var(--space-2);}
.fact-check__panel p:last-child{margin-bottom:0;}
.directory{background:var(--color-surface);}
.directory__heading{font-size:var(--text-xl);}
.directory__note{max-width:40em;font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.directory__list{display:grid;gap:var(--space-6);grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.directory__list{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media (min-width:1024px){.directory__list{grid-template-columns:repeat(3,minmax(0,1fr));}}
.directory__card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5);background:var(--color-white);border:1px solid var(--color-border);border-top:6px solid var(--color-primary);border-radius:var(--radius-lg);}
.directory__card--featured{border-color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary);}
.directory__name{margin:0;font-size:var(--text-md);}
.directory__desc,.directory__meta{margin:0;font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.directory__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-2);}
.directory__action{display:inline-flex;align-items:center;min-height:2.75rem;padding:.4rem .9rem;border:2px solid var(--color-primary);border-radius:var(--radius);font-size:var(--text-sm);font-weight:var(--fw-bold);text-decoration:none;}
.directory__action:hover{background:var(--color-primary);color:var(--color-on-dark);}
.map-embed{padding:var(--space-12) 0;}
.map-embed iframe{display:block;width:100%;min-height:320px;border:1px solid var(--color-border);border-radius:var(--radius-lg);}
.video-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);margin:var(--space-4) 0;padding:var(--space-12) var(--space-4);background:var(--color-primary);color:var(--color-on-dark);border-radius:var(--radius-lg);font-size:var(--text-sm);font-weight:var(--fw-semibold);line-height:1.3;text-decoration:none;}
.video-facade:hover .video-facade__label{text-decoration:underline;text-underline-offset:.2em;}
.video-facade__play{display:inline-flex;align-items:center;justify-content:center;width:3.25rem;height:3.25rem;background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius);font-size:1.25rem;}
.video-facade__play svg{width:1em;height:1em;}
.video-embed{margin:var(--space-4) 0;}
.video-embed iframe{display:block;width:100%;aspect-ratio:16/9;border:0;}
.affiliate-link[target="_blank"]::after{content:"\2197";margin-left:.4em;font-size:.85em;line-height:1;}
.affiliate-disclosure{margin:0;max-width:78ch;font-size:var(--text-sm);line-height:1.5;color:var(--color-muted);}
.footer-disclosure .affiliate-disclosure{color:var(--color-on-dark-muted);}
.blog-sidebar{font-size:var(--text-sm);}
.widget{margin:0 0 var(--space-8);}
.widget-area,.tool-page__article{min-width:0;}
.footer-widget ul{list-style:none;margin:0;padding:0;}
.comments-area,.comment-list,.comments-title,.no-comments{font-size:var(--text-sm);}
/* tool template (page-tool.php): quiet chrome for an embeddable page */
.tool-header{padding:var(--space-3) 0;background:var(--color-white);border-bottom:6px solid var(--color-primary);}
.tool-header__inner{display:flex;align-items:center;justify-content:center;}
.tool-header .custom-logo-link img{width:auto;height:auto;max-height:44px;max-width:var(--logo-max-w,200px);}
.tool-header__title{margin:0;font-family:var(--font-display);font-size:var(--text-base);font-weight:var(--fw-bold);line-height:1.2;}
.tool-header__title a{color:var(--color-text);text-decoration:none;}
.tool-page__inner{padding-top:var(--space-8);padding-bottom:var(--space-12);}
.tool-page .page-title{max-width:var(--width-content);margin:0 auto var(--space-6);}
.tool-page__content{max-width:none;}
.tool-footer{padding:var(--space-6) 0;border-top:1px solid var(--color-border);}
.tool-footer__inner{display:flex;flex-wrap:wrap;gap:var(--space-4);justify-content:center;font-size:var(--text-sm);line-height:1.4;color:var(--color-muted);}
.tool-footer__inner p{margin:0;}
.tool-footer__inner a{color:var(--color-text);}
/* WordPress core helpers */
.aligncenter{margin-left:auto;margin-right:auto;}
.alignleft{float:left;margin:0 var(--space-6) var(--space-4) 0;}
.alignright{float:right;margin:0 0 var(--space-4) var(--space-6);}
.wp-caption-text,.wp-element-caption{font-size:var(--text-xs);line-height:1.45;color:var(--color-muted);}

/* 15. FORCED COLORS + PRINT ----------------------------------------------- */
@media (forced-colors:active){
  .btn,.wp-block-button > .wp-block-button__link,.card,.quote-form-wrap,.process__step,.tool-list__item a{border:2px solid ButtonText;}
  .hero__band,.title-band{border-bottom-color:CanvasText;}
  .section-head h2,h2.section-head,.cta-banner h2,.faq__heading,.silo__heading,.local-areas__heading,.directory__heading,
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > h2{padding-left:.8rem;border-left:6px solid CanvasText;}
  .card__icon,.process__icon,.tool-list__icon,.contact-block__icon{forced-color-adjust:none;}
  .qf-option:has(input:checked),.qf-chip:has(input:checked){border-color:Highlight;}
  .main-nav > ul > li > a[aria-current="page"]{text-decoration:underline;}
  /* system colours remove backgrounds and shadows: redraw the burger, keep the logo on its white door / plate, redraw the
     list squares and mark the current section */
  .menu-toggle{border:2px solid ButtonText;}
  .menu-toggle span{background:ButtonText;}
  .site-branding,.footer-logo-plate{forced-color-adjust:none;}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > ul > li::before{background:CanvasText;}
  .main-nav :is(.current-menu-item,.current-menu-ancestor,.current-page-ancestor,.current_page_item) > a{text-decoration:underline;}
}
@media print{
  body{background:#fff;padding-bottom:0!important;}
  .site-header{position:static!important;border-bottom:2px solid #000;}
  .site-header::before,.site-header::after,.cta-banner::before,.hero__media::after{display:none!important;}
  .skip-link,.header-utility,.menu-toggle,.main-nav,.header-actions,.sticky-bar,.hero__form,.hero__art,.hero__media,.hero__ctas > .btn,.cta-banner__actions,.footer-social,.area-check,.readmore__btn,.pagination,.search-form{display:none!important;}
  .site-header,.hero__band,.title-band,.process,.section--dark,.cta-banner,.site-footer,.process__step,.card__icon,.process__icon,.tool-list__icon,.contact-block__icon{background:#fff!important;color:#000!important;box-shadow:none!important;}
  :is(.site-header,.hero__band,.title-band,.process,.section--dark,.cta-banner,.site-footer) *{color:#000!important;text-decoration-color:#000!important;}
  .hero__band,.title-band{border-bottom:2px solid #000;}
  .hero__inner,.hero--request .hero__inner{padding-bottom:var(--space-6);}
  .process__step,.card,.quote-form-wrap{border:1px solid #000;break-inside:avoid;}
  .section,.process,.cta-banner,.silo,.local-areas{padding:var(--space-8) 0;}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table{overflow:visible;max-width:none;}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table{min-width:0!important;}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > .wp-block-table > table thead th{background:#fff;color:#000;border-bottom:2px solid #000;}
  .js .readmore.is-collapsed .readmore__hidden{display:block;}
  .js .readmore--height.is-collapsed .readmore__inner{max-height:none;-webkit-mask-image:none;mask-image:none;}
  :is(.prose-content,.readmore__inner,.readmore__visible,.readmore__hidden) > :is(p,ul,ol) a[href^="http"]::after{content:" (" attr(href) ")";font-size:.8em;font-weight:400;}
}
