/* =========================================================================
   Appliance Repair Tallahassee — main.css
   Profile: service-manual (new, declared). Normative source for every value:
   appliance-repair-tallahassee-docs/design/DESIGN-DECISION.md.
   Axes: trebuchet-manual type (Trebuchet MS 700 only, tracking 0, ratio 1.250
   on a 17px base, a 12px uppercase lettering voice capped at four words, no
   monospace) / callout-figure hero (photo-free vellum band: H1 + deck, the
   one-step request sheet, Fig. 1 — an isometric line drawing with numbered
   balloons and a real-text legend) / dial-detent rhythm (a 32px line-art
   control knob above every H2-level head whose pointer turns one detent per
   section) / detail-plate cards (white plate, hairline, ruled field with a
   circular 3x detail lens) / title-block header (white sticky row ruled into
   full-height cells over a 2px navy rule) / isometric-ruling texture (three
   1px sky line families at 90 and +-30 degrees, only where something is drawn).
   Palette = the operator's logo inks: navy #183050 drives every control,
   link, rule and the one filled CTA family; sky #48A8D8 is a SECOND INK only
   (ruling, the model-label balloon, knob ticks, underlines, tints). Sky is
   never text on a light surface and never a lone boundary.
   Flat print: no elevation shadow anywhere. The only box-shadows are inset
   rules (nav current bar, sticky-bar request rule); focus rings are outlines.
   Zero font requests, zero image requests, no @import.

   1.  Design tokens (:root)
   2.  Reset / base / typography
   3.  Layout (container, sections, grids, dial-detent rhythm)
   4.  Buttons + links
   5.  Header (title block, nav, mobile panel, top bar, promo bar)
   6.  Hero (callout-figure)
   7.  Fig. 1 — the drawing kit + isometric ruling
   8.  The request sheet (one-step form)
   9.  Trust signals / Open Now
   10. Cards (detail-plate) + silo links
   11. FAQ
   12. CTA banner
   13. Testimonials
   14. E-E-A-T modules
   15. Breadcrumbs / prose / imported content / posts / pagination
   16. Brands page
   17. Local areas + area checker / video / map
   18. Footer (revision block) + sticky request bar
   19. 404
   20. Directory (off by default) / affiliate / tool page
   21. Utilities / accessibility / motion / forced colours / print
   ====================================================================== */

/* 1. TOKENS ------------------------------------------------------------- */
:root{
	/* brand — Customizer overrides --color-primary / --color-accent / --color-text
	   (defaults #183050 / #48A8D8 / #16202B, mirrored in theme.json). */
	--color-primary:#183050;          /* logo navy: headings, links, rules, focus ring, CTA fill (13.31:1 on white) */
	--color-primary-hover:#0F2340;    /* CTA hover (white 15.73:1) */
	--color-primary-active:#0A1A30;   /* CTA :active (white 17.45:1) */
	--color-accent:#48A8D8;           /* logo sky: SECOND INK ONLY — ruling, model balloon, knob ticks, underlines */
	--color-accent-hover:#2F8FC0;     /* decorative only (never text, never a boundary) */
	--color-text:#16202B;             /* body 16.46:1 */
	--color-muted:#4A5A6B;            /* secondary 7.08:1; placeholder colour */
	/* surfaces */
	--color-page:#FFFFFF;             /* paper */
	--color-white:#FFFFFF;
	--color-surface:#EFF7FB;          /* vellum = sky 9% over white */
	--color-surface-2:#DAEEF7;        /* vellum-2 = sky 20% over white */
	--color-border:#C5CBD3;           /* hairline (= --color-rule); decorative, never a required boundary */
	--color-rule:#C5CBD3;             /* cell rules, card borders, figure frames */
	--color-field-border:#6A788A;     /* inputs, chips, file row (4.50:1 on white) */
	--color-error:#B42318;            /* always with icon + words (6.57:1) */
	--color-error-bg:#FDEDEB;
	--color-success:#1D6B43;          /* sent state / in-area note (6.49:1) */
	--color-star:#183050;             /* kept for shared components; no ratings ship */
	--art-hilite:#BFE1F1;             /* the one highlighted part per drawing (= sky 35%) */
	/* dark family: the ONLY dark surface is the phone sticky bar */
	--color-dark:#183050;
	--color-dark-2:#0F2340;
	--color-on-dark:#FFFFFF;
	--color-on-dark-muted:#C3D0DE;
	--color-dark-border:#2C4668;
	--color-primary-rgb:24,48,80;
	--color-accent-rgb:72,168,216;
	/* texture — isometric ruling (only where something is drawn) */
	--ruling-line:rgba(var(--color-accent-rgb),.26);
	--ruling-iso:
		linear-gradient(to top right,transparent calc(50% - .5px),var(--ruling-line) calc(50% - .5px),var(--ruling-line) calc(50% + .5px),transparent calc(50% + .5px)),
		linear-gradient(to bottom right,transparent calc(50% - .5px),var(--ruling-line) calc(50% - .5px),var(--ruling-line) calc(50% + .5px),transparent calc(50% + .5px)),
		linear-gradient(90deg,var(--ruling-line) 1px,transparent 1px);
	--ruling-size:52px 30px,52px 30px,26px 30px;
	/* dial-detent rhythm: --detent is printed per head by tlar_detent_style()
	   and the stored-H2 render_block filter; 5.5 = neutral (pointer at 12). */
	--knob:32px;
	--knob-gap:.75rem;
	--knob-face:var(--color-page);
	--detent:5.5;
	/* header badge — set --logo-fill:1 when a tightly cropped badge is uploaded */
	--badge-h:56px;
	--logo-fill:.784;
	/* type — ratio 1.250 on a 17px base */
	--text-xs:.75rem;
	--text-sm:.875rem;
	--text-label:.9375rem;
	--text-base:1.0625rem;
	--text-md:1.125rem;
	--text-lede:1.1875rem;            /* hero deck ceiling + imported has-large-font-size lede */
	--text-lg:1.328rem;
	--text-xl:1.66rem;
	--text-2xl:2.075rem;
	--text-3xl:2.594rem;
	--text-4xl:3.242rem;
	--text-5xl:4.053rem;              /* defined for completeness, unused */
	--text-6xl:5.066rem;              /* defined for completeness, unused */
	--fw-normal:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:700;   /* never request 800 from Trebuchet */
	--lh-tight:1.12; --lh-snug:1.3; --lh-normal:1.65;
	--track-display:0; --track-eyebrow:.08em; --track-lettering:.08em;
	/* space */
	--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:5rem;
	--width-content:720px; --width-wide:1180px;
	--radius-sm:2px; --radius:0; --radius-full:999px;
	--shadow-sm:none; --shadow-md:none; --shadow-lg:none;   /* flat print: no elevation anywhere */
	--transition:150ms ease;
	--header-h:72px;
	--topbar-h:0px;
	--readmore-h:480px;               /* overridden inline per [data-readmore] block */
	--font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
	--font-display:'Trebuchet MS','Noto Sans','Source Sans 3','Source Sans Pro',sans-serif;
	--font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,'Liberation Mono',monospace;   /* <code> only */
}
@media (max-width:639px){:root{--knob:28px;--knob-gap:.625rem;}}

/* 2. RESET / BASE / TYPOGRAPHY ------------------------------------------ */
*,*::before,*::after{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + var(--space-4));}
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;-moz-osx-font-smoothing:grayscale;overflow-wrap:break-word;}
[hidden]{display:none!important;}
img,video{max-width:100%;height:auto;}
img{display:block;border:0;}
iframe{max-width:100%;}
/* Links: navy, ALWAYS underlined (2px sky underline, offset 3px) so they never
   rely on colour alone; the underline turns navy on hover. Chrome links
   (nav, buttons, card titles) opt out explicitly. ":root a" (0,1,1) outranks
   WordPress 6.6+ global styles (":root :where(a…)", 0,1,0) in either print
   order, so the sky underline survives a footer-printed global stylesheet. */
:root a{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;}
:root a:hover{color:var(--color-primary-hover);text-decoration-color:currentColor;}
/* trebuchet-manual: one heading weight (700), tracking 0, sentence case, navy. */
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--fw-bold);letter-spacing:var(--track-display);font-synthesis:none;
	color:var(--color-primary);text-transform:none;text-wrap:balance;margin:0 0 var(--space-4);}
h1{font-size:clamp(var(--text-2xl),1rem + 3vw,var(--text-4xl));line-height:var(--lh-tight);}    /* 33.2px @375 · 51.9px >=1197 */
h2{font-size:clamp(var(--text-xl),1.3rem + 1.2vw,var(--text-2xl));line-height:1.18;}
h3{font-size:var(--text-lg);line-height:1.25;}
h4{font-size:var(--text-md);line-height:var(--lh-snug);}
h5,h6{font:600 var(--text-base)/1.4 var(--font);color:var(--color-text);margin:0 0 var(--space-3);}
p{margin:0 0 var(--space-4);}
p,li{text-wrap:pretty;}
ul,ol{margin:0 0 var(--space-4);padding-left:1.25rem;}
li > ul,li > ol{margin:var(--space-2) 0 0;}
strong,b{font-weight:var(--fw-bold);}
small{font-size:var(--text-sm);}
code,kbd,samp,pre{font-family:var(--font-mono);font-size:.9em;}
pre{overflow-x:auto;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-rule);}
hr{height:0;margin:var(--space-10) 0;border:0;border-top:1px solid var(--color-rule);}
abbr[title]{text-decoration:none;}
::selection{background:var(--color-surface-2);color:var(--color-text);}
/* Generic form controls (search, area checker, comments). The request sheet
   carries its own rules in section 8. :where() keeps these at zero weight. */
:where(input:not([type=checkbox],[type=radio],[type=file],[type=submit],[type=button],[type=reset],[type=hidden],[type=range],[type=color],[type=image]),select,textarea){
	max-width:100%;min-height:48px;padding:.625rem .875rem;font:400 1rem/1.4 var(--font);color:var(--color-text);
	background-color:var(--color-white);border:1px solid var(--color-field-border);border-radius:var(--radius-sm);}
:where(textarea){min-height:6rem;resize:vertical;}
:where(button){font:inherit;}
::placeholder{color:var(--color-muted);opacity:1;}

/* 3. LAYOUT ------------------------------------------------------------- */
.container{width:100%;max-width:var(--width-wide);margin-left:auto;margin-right:auto;padding:0 var(--space-5);}
@media (max-width:639px){.container{padding:0 var(--space-4);}}   /* 16px gutter on phones */
.site-main{display:block;}
.section{padding:var(--space-16) 0;}
@media (max-width:639px){.section{padding:2.75rem 0;}}
/* Sections are separated by the knob, whitespace and a hairline — no bands. */
.site-main > :where(section:nth-of-type(even)){background:transparent;}
.site-main > :is(.section,.faq,.silo,.local-areas,.testimonials,.directory,.map-embed,.projects,.related-posts) + :is(.section,.faq,.silo,.local-areas,.testimonials,.directory,.map-embed,.projects,.related-posts){border-top:1px solid var(--color-rule);}
.section--surface,.section--dark{--knob-face:var(--color-surface);background:var(--color-surface);color:var(--color-text);}   /* no dark bands in this build */
.section--dark :is(h1,h2,h3,h4){color:var(--color-primary);}
.section--dark p{color:var(--color-text);}
.section--full > .container{display:block;}
.section-head{text-align:left;max-width:none;margin:0 0 var(--space-8);}
.section-head h1,.section-head h2{margin:0 0 var(--space-3);}
.section-head p{max-width:62ch;margin:0;color:var(--color-muted);font-size:var(--text-base);line-height:1.55;}
h2.section-head{margin:0 0 var(--space-8);}
.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));}}
.grid--3{gap:var(--space-6);}   /* 1-up < 640, 2-up >= 640, 3-up >= 1024; 5 services = 3 + 2, left-aligned */

/* --- dial-detent rhythm ------------------------------------------------
   Every H2-level head carries a 32px line-art control knob above it (28px on
   phones): a sky printed scale of 10 ticks from -135deg to +135deg, and a navy
   knob (1.5px rim + pointer). The pointer turns one detent (30deg) per section
   down the page from --detent, printed by the page-wide PHP counter. Static by
   construction: no transition, so reduced motion is moot. The form title and
   card H3s are outside the list on purpose. */
.dp-rhythm-dial-detent :is(.section-head > h2,h2.section-head,.faq__heading,.local-areas__heading,.silo__heading,.cta-banner h2,.prose-content h2:not(.repair-request__title)){
	position:relative;padding-top:calc(var(--knob) + var(--knob-gap));}
/* printed scale: 10 sky ticks, masked from an inline SVG (recolourable through --color-accent) */
.dp-rhythm-dial-detent :is(.section-head > h2,h2.section-head,.faq__heading,.local-areas__heading,.silo__heading,.cta-banner h2,.prose-content h2:not(.repair-request__title))::before{
	content:"";position:absolute;left:0;top:0;width:var(--knob);height:var(--knob);background:var(--color-accent);
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3E%3Cpath d='M-8.49 8.49L-10.96 10.96M-11.59 3.11L-14.97 4.01M-11.59 -3.11L-14.97 -4.01M-8.49 -8.49L-10.96 -10.96M-3.11 -11.59L-4.01 -14.97M3.11 -11.59L4.01 -14.97M8.49 -8.49L10.96 -10.96M11.59 -3.11L14.97 -4.01M11.59 3.11L14.97 4.01M8.49 8.49L10.96 10.96' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-16 -16 32 32'%3E%3Cpath d='M-8.49 8.49L-10.96 10.96M-11.59 3.11L-14.97 4.01M-11.59 -3.11L-14.97 -4.01M-8.49 -8.49L-10.96 -10.96M-3.11 -11.59L-4.01 -14.97M3.11 -11.59L4.01 -14.97M8.49 -8.49L10.96 -10.96M11.59 -3.11L14.97 -4.01M11.59 3.11L14.97 4.01M8.49 8.49L10.96 10.96' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/100% 100% no-repeat;}
/* the knob: navy rim + pointer; the whole disc rotates, so the pointer turns */
.dp-rhythm-dial-detent :is(.section-head > h2,h2.section-head,.faq__heading,.local-areas__heading,.silo__heading,.cta-banner h2,.prose-content h2:not(.repair-request__title))::after{
	content:"";position:absolute;left:calc(var(--knob) * .1875);top:calc(var(--knob) * .1875);
	width:calc(var(--knob) * .625);height:calc(var(--knob) * .625);box-sizing:border-box;border-radius:50%;
	border:1.5px solid var(--color-primary);
	background:linear-gradient(var(--color-primary),var(--color-primary)) 50% 1.5px/2px 38% no-repeat,var(--knob-face);
	transform:rotate(calc(-135deg + (var(--detent) - 1) * 30deg));}

/* 4. BUTTONS + LINKS ---------------------------------------------------- */
/* Trebuchet 700, 17px, sentence case, tracking 0, 48px, radius 2px, 2px border,
   no lift. One filled family only: navy fill + white label (13.31:1). */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:48px;margin:0;padding:0 1.5rem;
	border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:transparent;color:var(--color-primary);
	font:700 var(--text-base)/1.2 var(--font-display);letter-spacing:0;font-synthesis:none;text-align:center;text-decoration:none;
	cursor:pointer;-webkit-appearance:none;appearance:none;
	transition:background-color var(--transition),border-color var(--transition),color var(--transition);}
a.btn,a.btn:hover{text-decoration:none;}
.btn.btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white);}
.btn.btn--primary:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-white);}
.btn.btn--primary:active{background:var(--color-primary-active);border-color:var(--color-primary-active);color:var(--color-white);}
/* Outline family on light surfaces: 2px navy rule + navy label; hover vellum-2. */
.btn:is(.btn--secondary,.btn--ghost,.btn--on-light){background:transparent;border-color:var(--color-primary);color:var(--color-primary);}
.btn:is(.btn--secondary,.btn--ghost,.btn--on-light):hover{background:var(--color-surface-2);border-color:var(--color-primary);color:var(--color-primary);}
/* White outline — for the navy sticky bar only. */
.btn.btn--on-dark{background:transparent;border-color:var(--color-on-dark);color:var(--color-on-dark);}
.btn.btn--on-dark:hover{background:var(--color-on-dark);border-color:var(--color-on-dark);color:var(--color-dark);}
.btn--lg{min-height:52px;padding:0 2rem;font-size:var(--text-md);}
.btn--block{display:flex;width:100%;}
.btn svg{width:1.1em;height:1.1em;flex:none;}
.btn[disabled],.btn[aria-disabled="true"]{cursor:not-allowed;opacity:.6;}
/* WordPress element buttons outside prose (comment form, search block). */
:where(.wp-element-button,.comment-form input[type=submit]){display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 1.5rem;
	border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-white);
	font:700 var(--text-base)/1.2 var(--font-display);text-decoration:none;cursor:pointer;}

/* 5. HEADER — title-block ------------------------------------------------ */
/* Optional utility strip — printed only when there is something to show
   (phone, SMS, hours, after-hours text). Light skin: vellum + rule. */
.topbar{background:var(--color-surface);border-bottom:1px solid var(--color-rule);color:var(--color-text);font-size:var(--text-sm);line-height:1.4;}
.topbar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:var(--space-1) var(--space-6);min-height:36px;padding-top:var(--space-1);padding-bottom:var(--space-1);}
.topbar a{display:inline-flex;align-items:center;gap:var(--space-2);min-height:32px;color:var(--color-primary);font-weight:var(--fw-semibold);}
.topbar svg{width:1em;height:1em;flex:none;}
.topbar__afterhours{font-weight:var(--fw-semibold);color:var(--color-text);}

/* Promo bar — navy fill, white ink (flipped from the donor's accent fill). */
.promo-bar{display:block;background:var(--color-primary);color:var(--color-on-dark);text-align:center;font:600 var(--text-sm)/1.4 var(--font);}
.promo-bar__inner{display:block;padding-top:var(--space-2);padding-bottom:var(--space-2);}
a.promo-bar{color:var(--color-on-dark);text-decoration:none;}
a.promo-bar:hover{background:var(--color-primary-hover);color:var(--color-on-dark);text-decoration:underline;text-underline-offset:3px;}
a.promo-bar:focus-visible{outline:2px solid var(--color-on-dark);outline-offset:-4px;}
.promo-bar--dark{background:var(--color-dark-2);}
a.promo-bar--dark:hover{background:var(--color-primary-active);}

/* One white sticky row, ruled into full-height cells by 1px rule verticals
   and closed by a 2px navy rule: stamp | title | one cell per nav item |
   [call] | request. Solid from the first pixel on every page. The doubled
   class keeps these above the Customizer's defensive critical CSS. */
.site-header{position:sticky;top:0;z-index:100;background:var(--color-white);border-bottom:2px solid var(--color-primary);}
.site-header .site-header__inner{display:flex;flex-wrap:nowrap;align-items:stretch;justify-content:flex-start;gap:0;min-height:var(--header-h);padding-right:var(--space-5);}
.admin-bar .site-header{top:32px;}
@media (max-width:782px){.admin-bar .site-header{top:46px;}}
@media (max-width:600px){.admin-bar .site-header{top:0;}}
/* stamp cell — the operator's badge */
.site-branding{display:flex;align-items:stretch;flex:1 1 auto;min-width:0;}
.site-branding__stamp{display:flex;align-items:center;flex:none;padding-right:var(--space-3);border-right:1px solid var(--color-rule);}
.site-branding__stamp:empty{display:none;}
.site-branding .custom-logo-link{display:flex;align-items:center;text-decoration:none;}
.site-header .site-branding .custom-logo{display:block;height:calc(var(--badge-h) / var(--logo-fill));width:auto;max-width:none;max-height:none;}   /* 71.4px image -> 56px badge */
/* title cell — wordmark + tagline; takes the slack */
.site-branding__name{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:0 var(--space-4);}
.site-branding > .site-title{display:flex;align-items:center;padding-right:var(--space-4);}   /* no-logo fallback */
.site-title{margin:0;font:700 var(--text-base)/1.15 var(--font-display);letter-spacing:0;font-synthesis:none;white-space:normal;color:var(--color-primary);}
.site-title a{color:var(--color-primary);text-decoration:none;}
.site-title a:hover{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);}
.site-branding__tag{display:block;margin:.125rem 0 0;font:400 .78125rem/1.3 var(--font);color:var(--color-muted);text-wrap:balance;}
.site-branding__tag:empty{display:none;}
/* nav cells */
.site-header__nav{display:flex;align-items:stretch;justify-content:flex-end;flex:0 0 auto;}
.main-nav ul{list-style:none;margin:0;padding:0;}
.main-nav a{text-decoration:none;}
.main-nav .menu-item-has-children > a::after{content:"";display:inline-block;flex:none;width:.38em;height:.38em;margin-left:.45em;
	border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);}
/* request cell — an ordinary inset button, not a full-height block */
.header-actions{display:flex;align-items:center;gap:var(--space-3);flex:none;padding-left:var(--space-4);border-left:1px solid var(--color-rule);}
.header-search form{display:flex;}
.header-cta{display:inline-flex;min-height:44px;white-space:nowrap;}
/* One lit key per viewport: where the form is on the page the header CTA
   takes the outline skin, so the form's Send is the only filled control. */
body:has(#repair-request) .header-cta{background:var(--color-white);color:var(--color-primary);border-color:var(--color-primary);}
body:has(#repair-request) .header-cta:hover{background:var(--color-surface-2);color:var(--color-primary);border-color:var(--color-primary);}
/* call cell — printed only if a tenant ever sets a phone */
.masthead__callblock{display:none;}
a.masthead__callblock{text-decoration:none;}
.menu-toggle{display:none;}
.site-header.is-shrunk{--header-h:56px;--badge-h:44px;}
.site-header.is-shrunk .site-branding__tag{display:none;}

@media (min-width:1024px){
	.main-nav{display:flex;align-items:stretch;}
	.main-nav > ul{display:flex;align-items:stretch;height:100%;}
	.main-nav > ul > li{position:relative;display:flex;border-left:1px solid var(--color-rule);}
	.main-nav > ul > li > a{display:flex;align-items:center;padding:0 var(--space-4);white-space:nowrap;
		font:700 var(--text-label)/1 var(--font-display);letter-spacing:0;color:var(--color-primary);}
	.main-nav > ul > li > a:focus-visible{outline-offset:-3px;}
	/* hover / current: vellum fill + a 3px inset navy rule (the underline), not elevation */
	.main-nav > ul > li > a:hover,.main-nav > ul > li:focus-within > a,
	.main-nav :is(.current-menu-item,.current-menu-ancestor,.current-menu-parent,.current_page_item,.current_page_ancestor) > a,.main-nav > ul > li > a[aria-current="page"]{
		background:var(--color-surface);box-shadow:inset 0 -3px 0 var(--color-primary);color:var(--color-primary);text-decoration:none;}
	/* dropdown: hover AND keyboard (:focus-within) */
	.main-nav .sub-menu{position:absolute;top:calc(100% + 2px);left:-1px;z-index:60;display:none;flex-direction:column;min-width:260px;
		background:var(--color-white);border:2px solid var(--color-primary);}
	.main-nav .sub-menu::before{content:"";position:absolute;left:0;right:0;top:-4px;height:4px;}   /* hover bridge across the header rule */
	.main-nav li:hover > .sub-menu,.main-nav li:focus-within > .sub-menu,.main-nav .menu-item-has-children.is-open > .sub-menu{display:flex;}
	/* Escape dismisses a hover/focus dropdown (WCAG 1.4.13): main.js adds .is-dismissed
	   and drops it on mouseleave / when focus leaves the item. */
	.main-nav li.is-dismissed > .sub-menu,.main-nav li.is-dismissed:hover > .sub-menu,.main-nav li.is-dismissed:focus-within > .sub-menu{display:none;}
	.main-nav .sub-menu a{display:flex;align-items:center;min-height:44px;padding:.5rem 1rem;border-top:1px solid var(--color-rule);
		font:400 var(--text-label)/1.3 var(--font);color:var(--color-text);white-space:normal;}
	.main-nav .sub-menu li:first-child > a{border-top:0;}
	.main-nav .sub-menu a:hover,.main-nav .sub-menu [aria-current="page"],.main-nav .sub-menu .current-menu-item > a{
		background:var(--color-surface);color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);}
	.main-nav .sub-menu a:focus-visible{outline-offset:-3px;}
	.masthead__callblock{display:flex;flex-direction:column;justify-content:center;gap:2px;flex:none;padding:0 var(--space-4);
		border-left:1px solid var(--color-rule);background:var(--color-white);color:var(--color-primary);}
	a.masthead__callblock:hover{background:var(--color-surface);color:var(--color-primary);}
	.callblock__label{display:inline-flex;align-items:center;gap:var(--space-1);font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;}
	.callblock__label svg{width:1em;height:1em;flex:none;}
	.callblock__number{font:700 var(--text-base)/1.1 var(--font-display);font-variant-numeric:tabular-nums;white-space:nowrap;}
	.callblock__state,.callblock__hours{font-size:var(--text-xs);color:var(--color-muted);}
}
/* Long menu labels (an operator's own menu): the title cell keeps a floor so it
   can never be crushed to one character, and main.js adds .nav-overflow when the
   row still does not fit — the header then uses the drop-down panel, exactly
   like < 1024. With JS off, labels wrap inside their cells instead. */
@media (min-width:1024px){
	.site-branding{min-width:19rem;}
	.no-js .main-nav > ul > li > a{white-space:normal;max-width:10em;line-height:1.15;text-align:center;}
	.site-header.nav-overflow .site-header__nav{flex:0 0 0;}
	.site-header.nav-overflow .menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;align-self:stretch;width:56px;min-height:44px;margin:0 calc(-1 * var(--space-5)) 0 0;padding:0;
		background:none;border:0;border-left:1px solid var(--color-rule);border-radius:0;color:var(--color-primary);cursor:pointer;}
	.site-header.nav-overflow .menu-toggle span{display:block;width:22px;height:2px;background:var(--color-primary);}
	.site-header.nav-overflow .menu-toggle:focus-visible{outline-offset:-4px;}
	.site-header.nav-overflow .main-nav{display:none;position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:99;background:var(--color-white);border-bottom:2px solid var(--color-primary);
		max-height:calc(100vh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;}
	.site-header.nav-overflow .main-nav.is-open{display:block;}
	.site-header.nav-overflow .main-nav > ul{display:block;height:auto;max-width:var(--width-wide);margin:0 auto;padding:0 var(--space-5);}
	.site-header.nav-overflow .main-nav > ul > li{display:block;border-left:0;border-bottom:1px solid var(--color-rule);}
	.site-header.nav-overflow .main-nav > ul > li:last-child{border-bottom:0;}
	.site-header.nav-overflow .main-nav > ul > li > a{min-height:52px;padding:0;white-space:normal;background:none;box-shadow:none;font:700 var(--text-base)/1.2 var(--font-display);}
	.site-header.nav-overflow .main-nav > ul > li > a:focus-visible{outline-offset:2px;}   /* padding:0 here: an inset ring would cut the first glyph */
	.site-header.nav-overflow .main-nav > ul > li > a:hover{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:4px;}
	.site-header.nav-overflow .main-nav .menu-item-has-children > a::after{margin-left:auto;margin-right:.25rem;}
	.site-header.nav-overflow .main-nav .sub-menu,
	.site-header.nav-overflow .main-nav li:hover > .sub-menu,
	.site-header.nav-overflow .main-nav li:focus-within > .sub-menu{position:static;display:none;min-width:0;border:0;padding:0 0 var(--space-2) var(--space-4);}
	.site-header.nav-overflow .main-nav .menu-item-has-children.is-open > .sub-menu{display:block;}
	.site-header.nav-overflow .main-nav .menu-item-has-children.is-open > a::after{transform:translateY(2px) rotate(-135deg);}
}
/* 1024-1199: compact cells so the row never wraps (measured budget 984px). */
@media (min-width:1024px) and (max-width:1199px){
	.main-nav > ul > li > a{padding:0 .75rem;}
	.site-branding__tag{display:none;}
	.header-cta{padding:0 1rem;font-size:var(--text-label);}
}
/* < 1024: three ruled cells (stamp | title | menu) and a drop-down panel. */
@media (max-width:1023px){
	.site-header{--header-h:56px;--badge-h:44px;}
	.site-header .site-header__inner{padding-right:0;}
	.site-title{font-size:15px;max-width:11em;text-wrap:balance;}   /* "Appliance Repair / Tallahassee" */
	.site-branding__tag,.header-cta,.masthead__callblock,.header-search{display:none;}
	.header-actions{gap:0;padding-left:0;border-left:0;}
	.menu-toggle{display:inline-flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:56px;min-height:56px;margin:0;padding:0;
		background:none;border:0;border-left:1px solid var(--color-rule);border-radius:0;color:var(--color-primary);cursor:pointer;}
	.menu-toggle span{display:block;width:22px;height:2px;background:var(--color-primary);}
	.menu-toggle:focus-visible{outline-offset:-4px;}
	.main-nav{display:none;position:absolute;top:calc(100% + 2px);left:0;right:0;z-index:99;background:var(--color-white);border-bottom:2px solid var(--color-primary);
		max-height:calc(100vh - var(--header-h));max-height:calc(100dvh - var(--header-h));overflow-y:auto;overscroll-behavior:contain;}
	.main-nav.is-open{display:block;}
	.main-nav > ul{display:block;padding:0 var(--space-4);}
	.main-nav > ul > li{display:block;border-bottom:1px solid var(--color-rule);}
	.main-nav > ul > li:last-child{border-bottom:0;}
	.main-nav > ul > li > a{display:flex;align-items:center;min-height:52px;padding:0;font:700 var(--text-base)/1.2 var(--font-display);color:var(--color-primary);}
	.main-nav > ul > li > a:hover,.main-nav :is(.current-menu-item,.current_page_item) > a,.main-nav a[aria-current="page"]{
		text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:4px;}
	.main-nav .menu-item-has-children > a::after{margin-left:auto;margin-right:.25rem;}
	/* tap accordion: main.js toggles .is-open on the li */
	.main-nav .sub-menu{display:none;padding:0 0 var(--space-2) var(--space-4);}
	.main-nav .menu-item-has-children.is-open > .sub-menu{display:block;}
	.main-nav .menu-item-has-children.is-open > a::after{transform:translateY(2px) rotate(-135deg);}
	.main-nav .sub-menu a{display:flex;align-items:center;min-height:44px;font:400 var(--text-base)/1.3 var(--font);color:var(--color-text);}
	.main-nav .sub-menu a:hover,.main-nav .sub-menu [aria-current="page"]{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);}
	/* No-JS: the toggle cannot open the panel, so the nav prints in flow. */
	.no-js .site-header{position:relative;}
	.no-js .site-header .site-header__inner{flex-wrap:wrap;}
	.no-js .site-header__nav{order:3;flex:1 0 100%;justify-content:flex-start;border-top:1px solid var(--color-rule);}
	.no-js .main-nav{display:block;flex:1 1 auto;position:static;border-bottom:0;max-height:none;}
	.no-js .main-nav .sub-menu{display:block;}
	.no-js .menu-toggle{display:none;}
}
/* toggle -> close glyph when the panel is open */
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

/* 6. HERO — callout-figure ---------------------------------------------- */
/* A photo-free vellum band directly under the header's 2px navy rule. Source
   order = phone order = tab order: head (eyebrow, H1, deck) -> the request
   sheet -> Fig. 1. No order:, no dense packing. The H1 is the declared LCP. */
.hero{position:relative;background:var(--color-surface);color:var(--color-text);}
.hero__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);padding:var(--space-5) 0 var(--space-10);}
.hero--callout-figure{background:var(--color-surface);border-top:0;color:var(--color-text);}
.hero--callout-figure .hero__inner{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-6);padding:var(--space-5) 0 var(--space-10);}
.hero__content,.hero__request{min-width:0;}
@media (min-width:1024px){
	.hero--callout-figure.hero--request .hero__inner{grid-template-columns:minmax(0,1fr) minmax(22rem,27.5rem);
		grid-template-areas:"head form" "fig form";grid-template-rows:auto 1fr;
		column-gap:clamp(2.5rem,4vw,3.5rem);row-gap:var(--space-8);padding:var(--space-8) 0 var(--space-16);}
	.hero--callout-figure .hero__content{grid-area:head;}
	.hero--callout-figure .hero__request{grid-area:form;align-self:start;}
	.hero--callout-figure :is(.hero__figure,.fig--hero,.hero__media){grid-area:fig;align-self:start;}
	.hero--callout-figure:not(.hero--request) .hero__inner{grid-template-columns:minmax(0,1fr) minmax(0,26rem);
		grid-template-areas:"head fig";grid-template-rows:auto;align-items:end;column-gap:clamp(2.5rem,4vw,3.5rem);padding:var(--space-8) 0 var(--space-12);}
	.hero--callout-figure.hero--request.hero--no-figure .hero__inner{grid-template-columns:minmax(0,46rem);grid-template-areas:"head" "form";grid-template-rows:auto auto;}
	.hero--callout-figure.hero--no-figure:not(.hero--request):not(.hero--has-media) .hero__inner{grid-template-columns:minmax(0,46rem);grid-template-areas:"head";}
}
@media (min-width:1280px){.hero--callout-figure.hero--request .hero__inner{grid-template-columns:minmax(0,1fr) 31rem;}}   /* form 496px */
/* eyebrow: lettering voice behind a drawn leader with its terminal dot */
.hero__eyebrow{display:inline-flex;align-items:center;gap:.5rem;margin:0 0 var(--space-4);
	font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.hero__eyebrow::before{content:"";flex:none;width:32px;height:6px;
	background:radial-gradient(circle at 3px 50%,var(--color-primary) 2.5px,transparent 3px),
		linear-gradient(var(--color-primary),var(--color-primary)) 3px 50%/calc(100% - 3px) 1.5px no-repeat;}
.hero--callout-figure .hero__title{max-width:18ch;margin:0 0 var(--space-4);font-size:clamp(var(--text-2xl),1rem + 3vw,var(--text-4xl));line-height:var(--lh-tight);color:var(--color-primary);}
.hero--callout-figure .hero__subtitle{max-width:46ch;margin:0;font-size:clamp(var(--text-base),.95rem + .4vw,var(--text-lede));line-height:1.5;color:var(--color-text);}
.hero .hero__content,.hero .hero__title,.js .hero .reveal{opacity:1;transform:none;}   /* LCP guard: nothing in the hero animates */
/* CTA row — printed only when the form is off for the page */
.hero__ctas{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3) var(--space-5);margin-top:var(--space-6);}
.hero__phone{display:inline-flex;align-items:center;gap:var(--space-2);font:700 var(--text-lg)/1.1 var(--font-display);color:var(--color-primary);font-variant-numeric:tabular-nums;}
.hero__phone svg{width:.9em;height:.9em;flex:none;}
/* "Prefer email?" — the site's only real contact line; self-hides upstream */
.hero__alt{margin:var(--space-3) 0 0;font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.hero__alt a{color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;overflow-wrap:anywhere;}
/* photo-optional path: a real tenant job photo takes the figure slot */
.hero__media{margin:0;border:1px solid var(--color-primary);background:var(--color-white);}
.hero__media img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;}

/* 7. FIG. 1 — THE DRAWING KIT ------------------------------------------- */
.fig{margin:0;background:var(--color-white);border:1px solid var(--color-rule);color:var(--color-text);min-width:0;}
.fig__caption{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .75rem;padding:.625rem 1rem;border-bottom:1px solid var(--color-rule);}
.fig__no{white-space:nowrap;font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.fig__title{font:600 var(--text-label)/1.35 var(--font);color:var(--color-text);}
.fig__body{display:grid;grid-template-columns:minmax(0,1fr);}
@media (min-width:1200px){
	.fig--hero .fig__body{grid-template-columns:minmax(0,1fr) minmax(0,15rem);}
	.fig--hero .fig__legend{border-top:0;border-left:1px solid var(--color-rule);}
}
/* isometric-ruling: only where something is drawn (Fig. plate, card detail
   field, the optional 404 figure) — never on bands, prose, form or chrome. */
.fig__plate,.card__figure,.error-404 .fig__plate{background-color:var(--color-white);background-image:var(--ruling-iso);
	background-size:var(--ruling-size);background-position:0 0;}
.fig__plate{display:flex;justify-content:center;align-items:center;padding:.75rem 1rem;}
.fig__art{display:block;width:100%;max-width:312px;height:auto;overflow:visible;color:var(--color-primary);}
/* balloons + leaders are rendered by PHP outside the symbols, so CSS styles them */
.callout__leader{fill:none;stroke:currentColor;stroke-width:1;vector-effect:non-scaling-stroke;}
.callout__dot{fill:currentColor;}
.callout__balloon{fill:var(--color-white);stroke:currentColor;stroke-width:1.5;vector-effect:non-scaling-stroke;}
.callout[data-feeds] .callout__balloon{fill:var(--color-accent);}   /* the ONE sky balloon: navy numeral 4.99:1 */
.callout__num{font:700 12px var(--font-display);fill:currentColor;text-anchor:middle;dominant-baseline:central;}
.fig__legend{list-style:none;margin:0;padding:.75rem 1rem;display:grid;gap:.625rem;border-top:1px solid var(--color-rule);}
.fig__item{display:grid;grid-template-columns:22px minmax(0,1fr);column-gap:.625rem;margin:0;padding:0;font-size:var(--text-sm);line-height:1.4;}
.fig__item::before{content:none;}
.fig__key{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--color-primary);display:grid;place-items:center;
	font:700 12px/1 var(--font-display);color:var(--color-primary);background:var(--color-white);}
.fig__item[data-feeds] .fig__key{background:var(--color-accent);}
.fig__label{font-weight:var(--fw-semibold);color:var(--color-text);}
.fig__note,.fig__ref{grid-column:2;}
.fig__note{color:var(--color-muted);}
.fig__ref{justify-self:start;font-weight:var(--fw-semibold);color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;}
span.fig__ref{text-decoration:none;color:var(--color-muted);font-weight:var(--fw-normal);}
/* legend footer line ("Note whether it is gas or electric." / the index's "Goes in" ref) */
.fig__item--note{grid-template-columns:minmax(0,1fr);row-gap:.25rem;padding-top:.5rem;border-top:1px solid var(--color-rule);}
.fig__item--note > *{grid-column:1 / -1;}
.fig__item--note .fig__note{font-size:.8125rem;color:var(--color-text);}
.fig__disclaim{margin:0;padding:.5rem 1rem;border-top:1px solid var(--color-rule);font-size:.75rem;line-height:1.4;color:var(--color-muted);}
/* index figure: the five appliances in a lineup */
.fig--index .fig__plate{padding:.75rem;}
.fig__lineup .fig__art{max-width:none;}
.fig--index .fig__lineup{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));align-items:end;gap:.5rem;width:100%;}
@media (max-width:639px){.fig--index .fig__lineup{grid-template-columns:repeat(3,minmax(0,1fr));}}
.fig__lineup > *{min-width:0;margin:0;}
.fig__lineup svg{display:block;width:100%;height:auto;overflow:visible;color:var(--color-primary);}
.fig__cell-name{display:block;margin-top:.25rem;font-size:.8125rem;line-height:1.3;text-align:center;color:var(--color-text);}
@media (hover:hover){.fig:has(.fig__item:hover) .fig__item:hover .fig__key{background:var(--color-surface-2);}}   /* progressive */
/* the symbol sprite printed once in wp_footer — never display:none */
.art-sprite{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none;}

/* 8. THE REQUEST SHEET (one-step form card) ------------------------------ */
.quote-form-wrap{container-type:inline-size;min-width:0;margin:0;padding:0;background:var(--color-white);border:2px solid var(--color-primary);border-radius:0;color:var(--color-text);text-align:left;}
.quote-form{margin:0;}
.repair-request__head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:var(--space-4);align-items:start;margin:0;
	padding:var(--space-4) var(--space-6);background:var(--color-surface-2);border-bottom:2px solid var(--color-primary);text-align:left;}
.repair-request .repair-request__title,.quote-form-wrap .repair-request__title{margin:0;padding:0;font:700 var(--text-lg)/1.2 var(--font-display);letter-spacing:0;color:var(--color-primary);}
.repair-request__stamp{align-self:center;white-space:nowrap;padding:.3rem .45rem;border:1px solid var(--color-primary);
	font:700 var(--text-xs)/1 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.repair-request__sub{grid-column:1 / -1;margin:.25rem 0 0;font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.repair-request__grid{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-6);}
.repair-request__row{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--space-4);align-items:start;}
.repair-request__row--always{grid-template-columns:repeat(2,minmax(0,1fr));}   /* ZIP | Model #, even on phones */
@container (min-width:26rem){
	.repair-request__row{grid-template-columns:repeat(2,minmax(0,1fr));}
	.repair-request__row > .field--full{grid-column:1 / -1;}
}
@container (max-width:25.99rem){
	/* ZIP | Model # share a row on phones: hold both labels to two lines so the inputs align */
	.repair-request__row--always > .field > label{min-height:2.6em;}
}
@container (max-width:24rem){
	.repair-request__stamp{display:none;}
	.repair-request__head,.repair-request__grid{padding-left:var(--space-4);padding-right:var(--space-4);}
}
@supports not (container-type:inline-size){
	@media (min-width:1024px){
		.repair-request__row{grid-template-columns:repeat(2,minmax(0,1fr));}
		.repair-request__row > .field--full{grid-column:1 / -1;}
	}
}
.quote-form .field{margin:0;min-width:0;}
.field--full{grid-column:1 / -1;}
.quote-form label:not(.rr-chip),.rr-chips > legend{display:block;margin:0 0 .375rem;padding:0;font:600 var(--text-label)/1.3 var(--font);color:var(--color-text);}
.quote-form :is(input:where(:not([type=checkbox],[type=radio],[type=file],[type=hidden],[type=submit],[type=button])),select,textarea){
	display:block;width:100%;max-width:none;min-height:48px;margin:0;padding:.625rem .875rem;font:400 1rem/1.4 var(--font);color:var(--color-text);
	background-color:var(--color-white);border:1px solid var(--color-field-border);border-radius:var(--radius-sm);box-shadow:none;}   /* 16px text: no iOS zoom */
.quote-form select{appearance:none;-webkit-appearance:none;padding-right:2.5rem;cursor:pointer;
	background-image:linear-gradient(45deg,transparent 50%,var(--color-primary) 50%),linear-gradient(135deg,var(--color-primary) 50%,transparent 50%);
	background-position:calc(100% - 1.125rem) 50%,calc(100% - .8125rem) 50%;background-size:.3125rem .3125rem;background-repeat:no-repeat;}
.quote-form textarea{min-height:5.5rem;resize:vertical;}
.quote-form ::placeholder{color:var(--color-muted);opacity:1;}
.quote-form :is(input,select,textarea):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary);}
.quote-form [aria-invalid="true"]{border:2px solid var(--color-error);}
.quote-form abbr[title],.quote-form .required{color:inherit;text-decoration:none;}
.field__error{display:flex;gap:.375rem;align-items:flex-start;margin-top:.375rem;font-size:var(--text-sm);line-height:1.4;color:var(--color-error);}
.field__error svg{flex:none;width:14px;height:14px;margin-top:.15em;}
.field__error:not(:has(svg))::before{content:"";flex:none;width:14px;height:14px;margin-top:.15em;background:currentColor;
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 4.6v4.2M8 11v.4' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.6' fill='none' stroke='%23000' stroke-width='1.6'/%3E%3Cpath d='M8 4.6v4.2M8 11v.4' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.field__hint,.field__note{margin:.375rem 0 0;font-size:.8125rem;line-height:1.4;color:var(--color-muted);}
.field__note:empty{display:none;}
.field__note.is-in-area{display:flex;gap:.375rem;align-items:flex-start;color:var(--color-success);}   /* icon + words; "outside" stays muted */
.field__note.is-outside{display:flex;gap:.375rem;align-items:flex-start;color:var(--color-muted);}
.field__note svg{flex:none;width:14px;height:14px;margin-top:.1em;}
.field__note.is-in-area:not(:has(svg))::before{content:"";flex:none;width:14px;height:14px;margin-top:.1em;background:currentColor;
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.4l3.2 3.1L13 4.6' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 8.4l3.2 3.1L13 4.6' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.quote-form input[type=file]{display:block;width:100%;min-height:48px;padding:.375rem;border:1px dashed var(--color-field-border);border-radius:var(--radius-sm);
	font:400 var(--text-sm)/1.4 var(--font);color:var(--color-muted);background:var(--color-white);}
.quote-form input[type=file]::file-selector-button{min-height:36px;margin-right:.75rem;padding:0 1rem;cursor:pointer;
	border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-white);color:var(--color-primary);font:700 var(--text-label) var(--font-display);}
.quote-form input[type=file]::file-selector-button:hover{background:var(--color-surface-2);}
.quote-form input[type=file]:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
/* chips — state by SHAPE: hollow navy ring -> filled navy disc + white check */
.rr-chips{min-width:0;margin:0;padding:0;border:0;}
.rr-chips__group{display:flex;flex-wrap:wrap;gap:var(--space-2);}
.rr-chips__group + .rr-chips__group{margin-top:var(--space-3);}
.rr-chips__group[hidden]{display:none;}
.rr-chips__label{flex-basis:100%;margin:.25rem 0 0;font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.js .rr-chips__label{display:none;}
.js .rr-chips__group + .rr-chips__group{margin-top:0;}
/* before deferred main.js has synced the form (it then sets [data-ready]): show only the server-preselected group, so the
   hero form never paints every chip set and then collapses (layout shift). No-JS keeps every group (no .js class). */
.js .repair-request:not([data-ready]) .rr-chips__group:not([data-preselected]){display:none;}
.js .repair-request:not([data-ready]) .rr-chips:not(:has([data-preselected])){display:none;}
.js .repair-request:not([data-ready]) :is(.rr-safety[data-show-for]:not([data-preselected]),[data-tier-hint]){display:none;}
.rr-chip{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;margin:0;padding:.375rem .75rem;cursor:pointer;
	border:1px solid var(--color-field-border);border-radius:var(--radius-sm);background:var(--color-white);
	font:500 var(--text-sm)/1.25 var(--font);color:var(--color-text);}
.rr-chip input{appearance:none;-webkit-appearance:none;flex:none;width:16px;height:16px;min-height:0;margin:0;padding:0;
	border:1.5px solid var(--color-primary);border-radius:50%;background:var(--color-white);cursor:pointer;}
.rr-chip input:checked{background:var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2l2 2 4-4.4' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/10px 10px no-repeat;}
.rr-chip:has(input:checked){background:var(--color-surface-2);border:2px solid var(--color-primary);padding:calc(.375rem - 1px) calc(.75rem - 1px);}
.rr-chip:hover{border-color:var(--color-primary);}
.rr-chip input:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
@supports selector(:has(*)){
	.rr-chip input:focus-visible{outline:0;}
	.rr-chip:has(input:focus-visible){outline:2px solid var(--color-primary);outline-offset:2px;}
}
/* safety lines (gas routing + stop-use interlock) — never block submission */
.rr-safety{display:flex;gap:.625rem;align-items:flex-start;margin:0;padding:.75rem .875rem;border:1px solid var(--color-primary);border-left-width:4px;
	background:var(--color-white);font:400 var(--text-sm)/1.45 var(--font);color:var(--color-text);}
.rr-safety::before{content:"";flex:none;width:16px;height:16px;margin-top:.15em;background:var(--color-primary);
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15 14H1z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3.6M8 11.6v.4' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15 14H1z' fill='none' stroke='%23000' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3.6M8 11.6v.4' stroke='%23000' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.rr-safety[hidden]{display:none;}
/* Stop-use note: printed visible (no-JS sees it); with JS it shows only while a
   [data-stop] chip is ticked (main.js toggles .is-on). */
.js .repair-request .rr-safety--stop:not(.is-on){display:none;}
.rr-safety a{color:var(--color-primary);}
.rr-safety strong{font-weight:var(--fw-bold);}
/* optional fields behind a disclosure, so the card holds the fold */
.repair-request__more{border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);}
.repair-request__more > summary{display:flex;align-items:center;gap:.625rem;min-height:44px;cursor:pointer;list-style:none;
	font:600 var(--text-label)/1.3 var(--font);color:var(--color-primary);}
.repair-request__more > summary::-webkit-details-marker{display:none;}
.repair-request__more > summary::marker{content:"";}
.repair-request__more > summary::before{content:"";flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--color-primary);
	background:linear-gradient(var(--color-primary),var(--color-primary)) center/8px 1.5px no-repeat,
		linear-gradient(var(--color-primary),var(--color-primary)) center/1.5px 8px no-repeat;}
.repair-request__more[open] > summary::before{background:linear-gradient(var(--color-primary),var(--color-primary)) center/8px 1.5px no-repeat;}
.repair-request__more > summary:hover{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;}
.repair-request__more > .repair-request__row{padding:0 0 var(--space-4);}
/* submit + disclosure + feedback */
.repair-request__submit{width:100%;min-height:52px;margin:0;}
.repair-request__submit .btn-label{display:inline-block;}
.repair-request__trust{margin:0;font:400 .8125rem/1.45 var(--font);color:var(--color-text);}   /* A1: never muted, never hidden */
.repair-request__privacy{margin:0;font-size:.8125rem;line-height:1.45;color:var(--color-muted);}
.repair-request__privacy a,.repair-request__trust a{color:var(--color-primary);text-decoration:underline;}
.quote-form__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden;}
.quote-form__feedback{margin:0;font-size:var(--text-sm);line-height:1.5;}
.quote-form__feedback:empty{display:none;}
.quote-form__feedback.is-error{padding:.75rem;border:1px solid var(--color-error);background:var(--color-error-bg);color:var(--color-error);}
.quote-form__feedback.is-success{display:grid;grid-template-columns:28px minmax(0,1fr);gap:.75rem;align-items:start;padding:1rem;
	border:2px solid var(--color-primary);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);}
.quote-form__feedback.is-success::before{content:"";width:28px;height:28px;border-radius:50%;border:1.5px solid var(--color-primary);
	background:var(--color-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M2 5.2l2 2 4-4.4' fill='none' stroke='%23183050' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px 14px no-repeat;}
.quote-form__feedback > :last-child{margin-bottom:0;}
.repair-request.is-sent .repair-request__grid > :not(.quote-form__feedback){display:none;}   /* main.js adds .is-sent on success */
.spinner{display:none;width:18px;height:18px;border:2px solid rgba(255,255,255,.45);border-top-color:#FFFFFF;border-radius:50%;}
.is-loading .spinner{display:inline-block;animation:tlar-spin .7s linear infinite;}
.is-loading .repair-request__submit{cursor:progress;}
@keyframes tlar-spin{to{transform:rotate(360deg);}}
/* form fallback (plugin inactive) — prints the mailto, never a phone-only button */
.form-fallback{padding:var(--space-6);background:var(--color-white);color:var(--color-text);text-align:left;}
.form-fallback h2{margin:0 0 var(--space-3);font-size:var(--text-lg);line-height:1.2;}
.form-fallback p:last-child{margin-bottom:0;}
.form-fallback .repair-request__trust{margin-top:var(--space-4);}
/* A1 under a Customizer override shortcode (WPForms / Gravity Forms) */
.quote-form-wrap > .quote-form-wrap__trust{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-rule);}

/* 9. TRUST SIGNALS / OPEN NOW ------------------------------------------- */
/* A quiet measured strip; every field ships empty, so it self-hides. */
.trust-bar{background:var(--color-white);border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);}
.trust-bar__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-4) var(--space-8);padding:var(--space-5) 0;text-align:left;}
.trust-bar__inner > *{position:relative;}
@media (min-width:768px){.trust-bar__inner > * + *::before{content:"";position:absolute;left:calc(var(--space-8) / -2);top:50%;width:1px;height:28px;transform:translateY(-50%);background:var(--color-rule);}}
.trust-bar .trust-badges{margin-top:var(--space-4);padding:var(--space-4) 0;border-top:1px solid var(--color-rule);}
.trust-rating{display:flex;align-items:center;gap:var(--space-2);font-weight:var(--fw-semibold);}
.stars{position:relative;display:inline-flex;color:var(--color-star);}
.stars svg{width:1.1em;height:1.1em;}
/* proportional stars: hairline row of five + the filled row clipped to rating / 5 */
.stars__base{display:inline-flex;color:var(--color-rule);}
.stars__fill{position:absolute;top:0;bottom:0;left:0;display:inline-flex;overflow:hidden;white-space:nowrap;color:var(--color-star);}
.trust-metric{display:flex;flex-direction:column;}
.trust-metric__value{font:700 var(--text-xl)/1.1 var(--font-display);color:var(--color-primary);font-variant-numeric:tabular-nums;}
.trust-metric__label{font:700 var(--text-xs)/1.3 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-muted);}
.trust-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-surface);font-size:var(--text-sm);}
.trust-badges{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-4) var(--space-8);}
.trust-badge{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-medium);line-height:1.3;color:var(--color-text);}
.trust-badge svg{flex:none;width:18px;height:18px;color:var(--color-primary);}
.open-now{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);}
.open-now__dot{flex:none;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--color-muted);background:transparent;}
.open-now.is-open .open-now__dot{border-color:var(--color-success);background:var(--color-success);}
.open-now.is-closed .open-now__dot{border-color:var(--color-muted);background:transparent;}   /* sky never marks a business state */
.open-now__next{font-weight:var(--fw-normal);color:var(--color-muted);}

/* 10. CARDS — detail-plate ---------------------------------------------- */
/* A square white plate with a 1px hairline and no shadow: an 8rem ruled
   drawing field holding a 96px circular 3x detail lens cut from the card's
   own master drawing, then title, excerpt, a hairline and a text CTA. The
   whole plate is the link target. No thumbnail slot is ever reserved. */
.card{position:relative;display:flex;flex-direction:column;min-width:0;margin:0;padding:0;overflow:hidden;
	background:var(--color-white);border:1px solid var(--color-rule);border-radius:0;box-shadow:none;transition:border-color var(--transition);}
.card__figure{display:flex;align-items:center;gap:.75rem;height:8rem;margin:0;padding:0 1.25rem;border-bottom:1px solid var(--color-rule);}
.card__lens{flex:none;display:block;width:96px;height:96px;border-radius:50%;border:1.5px solid var(--color-primary);background:var(--color-white);overflow:hidden;}
.card__lens svg{display:block;width:100%;height:100%;color:var(--color-primary);}
.card__detail-label,.card__kind{font:700 var(--text-xs)/1.3 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.card__detail-label{position:relative;padding-left:2.25rem;}
.card__detail-label::before{content:"";position:absolute;left:0;top:50%;width:1.75rem;height:6px;transform:translateY(-50%);
	background:radial-gradient(circle at 3px 50%,var(--color-primary) 2.25px,transparent 2.75px),
		linear-gradient(var(--color-primary),var(--color-primary)) 3px 50%/calc(100% - 3px) 1px no-repeat;}
.card--caption-only .card__figure{height:auto;min-height:2.25rem;padding:.5rem 1.25rem;background-image:none;background-color:var(--color-surface);}
.card--caption-only .card__lens{display:none;}
/* real photo only: replaces the ruled field, the lens is hidden */
.card__media,a.card__media{display:block;margin:0;border-bottom:1px solid var(--color-primary);text-decoration:none;}
.card__media img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;}
.card:has(.card__media img) .card__figure{display:none;}
.card__media:not(:has(img)){display:none;}
.card__body{display:flex;flex-direction:column;gap:.625rem;flex:1;padding:1.25rem 1.25rem 1rem;}
.card .card__title{margin:0;font:700 var(--text-lg)/1.25 var(--font-display);letter-spacing:0;color:var(--color-primary);}
.card .card__title a{color:var(--color-primary);text-decoration:none;}
.card .card__title a::after{content:"";position:absolute;inset:0;}   /* whole plate clickable */
.card .card__title a:focus-visible{outline:0;}
.card__title svg{display:inline-block;width:.85em;height:.85em;margin-right:.25em;vertical-align:-.05em;}
.card__excerpt{margin:0;font-size:var(--text-label);line-height:1.5;color:var(--color-muted);}
.card .entry-meta{margin:0;}
.card__rule{height:1px;margin-top:auto;background:var(--color-rule);}
.card .card__cta{position:relative;z-index:1;display:inline-flex;align-items:center;gap:.375rem;align-self:flex-start;min-height:44px;
	font:700 var(--text-label)/1.2 var(--font-display);color:var(--color-primary);
	text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:4px;}
.card .card__cta:hover{color:var(--color-primary);text-decoration-color:var(--color-primary);}
.card__cta svg{flex:none;width:1em;height:1em;}
@media (hover:hover){
	.card:hover{border-color:var(--color-primary);}
	.card:hover .card__figure{background-color:var(--color-surface);}
}
.card:focus-within{outline:2px solid var(--color-primary);outline-offset:2px;}
/* silo cross-links: ruled link plates */
.silo{padding:var(--space-12) 0;}
.silo__heading{margin:0 0 var(--space-6);}
.silo__links{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-2) var(--space-3);}
.silo__links a,.silo__links-item{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);
	background:var(--color-white);font:600 var(--text-sm)/1.3 var(--font);color:var(--color-primary);text-decoration:none;}
.silo__links a:hover{border-color:var(--color-primary);background:var(--color-surface);color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);}
.silo__links-item{font-weight:var(--fw-normal);color:var(--color-muted);}

/* 11. FAQ --------------------------------------------------------------- */
.faq{padding:var(--space-16) 0;}
@media (max-width:639px){.faq{padding:2.75rem 0;}}
.faq__heading{max-width:none;margin:0 0 var(--space-8);text-align:left;}
.faq__list{display:flex;flex-direction:column;max-width:860px;border-top:1px solid var(--color-rule);}
.faq__item{margin:0;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;background:transparent;}
.faq__summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);min-height:56px;padding:var(--space-3) 0;cursor:pointer;list-style:none;}
.faq__summary::-webkit-details-marker{display:none;}
.faq__summary::marker{content:"";}
.faq__summary .faq-question{margin:0;font:700 var(--text-md)/1.3 var(--font-display);letter-spacing:0;color:var(--color-primary);}
.faq__summary:hover .faq-question{text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:4px;}
/* the toggle: a 28px balloon with a CSS plus that becomes a minus; vellum-2 when open */
.faq__chevron{flex:none;display:inline-block;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--color-primary);
	background:linear-gradient(var(--color-primary),var(--color-primary)) center/10px 1.5px no-repeat,
		linear-gradient(var(--color-primary),var(--color-primary)) center/1.5px 10px no-repeat,var(--color-white);}
.faq__chevron svg{display:none;}
.faq__item[open] .faq__chevron{background:linear-gradient(var(--color-primary),var(--color-primary)) center/10px 1.5px no-repeat,var(--color-surface-2);}
.faq__answer{max-width:68ch;padding:0 0 var(--space-6);font-size:var(--text-base);line-height:var(--lh-normal);color:var(--color-muted);}
.faq__answer > :last-child{margin-bottom:0;}

/* 12. CTA BANNER -------------------------------------------------------- */
/* A vellum plate with a 2px navy frame; its H2 carries a detent knob on a
   vellum face. No dark plate. */
.cta-banner{--knob-face:var(--color-surface);position:relative;margin:var(--space-16) 0;padding:var(--space-10) var(--space-8);
	background:var(--color-surface);border:2px solid var(--color-primary);border-radius:0;box-shadow:none;color:var(--color-text);text-align:left;}
.cta-banner h2{margin:0 0 var(--space-3);}
.cta-banner p{max-width:60ch;margin:0 0 var(--space-6);color:var(--color-text);}
.cta-banner__actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-3);}
.cta-banner .btn.btn--on-dark{background:transparent;border-color:var(--color-primary);color:var(--color-primary);}   /* the banner is light */
.cta-banner .btn.btn--on-dark:hover{background:var(--color-surface-2);color:var(--color-primary);}
@media (max-width:639px){.cta-banner{margin:var(--space-12) 0;padding:var(--space-8) var(--space-5);}}

/* 13. TESTIMONIALS ------------------------------------------------------ */
.testimonials{padding:var(--space-16) 0;background:transparent;}
.testimonials__track{display:grid;gap:var(--space-8);}
.testimonial{margin:0;padding:0 0 var(--space-6);background:transparent;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;box-shadow:none;}
.testimonial__stars{display:flex;margin-bottom:var(--space-3);color:var(--color-star);}
.testimonial__stars svg{width:1.1em;height:1.1em;}
.testimonial__text{margin:0 0 var(--space-4);padding:0;border:0;font:400 var(--text-md)/1.55 var(--font);color:var(--color-text);}
.testimonial__text p:last-child{margin-bottom:0;}
.testimonial__author{font-weight:var(--fw-semibold);font-size:var(--text-sm);}
.testimonial__location{color:var(--color-muted);font-size:var(--text-sm);}

/* 14. E-E-A-T ----------------------------------------------------------- */
.author-box{display:flex;flex-wrap:wrap;gap:var(--space-6);margin:var(--space-12) 0;padding:var(--space-8) 0;background:transparent;
	border:0;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);border-radius:0;box-shadow:none;}
.author-box__photo img{width:96px;height:96px;border-radius:50%;border:1.5px solid var(--color-primary);object-fit:cover;}
.author-box__body{flex:1;min-width:240px;}
.author-box__eyebrow{display:block;margin-bottom:var(--space-2);font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.author-box .author-box__name{margin:var(--space-1) 0;font-size:var(--text-xl);line-height:1.2;}
.author-box__creds{margin-bottom:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-primary);}
.author-box__bio{color:var(--color-text);}
.author-box__social{display:flex;gap:var(--space-3);margin-top:var(--space-3);}
.author-box__social svg{width:1.2em;height:1.2em;}
.author-box__all{display:inline-flex;align-items:center;gap:.35em;font-weight:var(--fw-semibold);}   /* label + inline arrow SVG (no glyph arrows, §5.2) */
.author-archive-head{margin:0 0 var(--space-8);}
.fact-check{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);margin:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-muted);}
.fact-check > svg{flex:none;width:1.1em;height:1.1em;color:var(--color-success);}
.fact-check__details{display:inline-flex;align-items:center;}
.fact-check__details summary{display:inline-flex;align-items:center;gap:var(--space-1);min-height:44px;cursor:pointer;list-style:none;color:var(--color-primary);
	text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;}
.fact-check__details summary::-webkit-details-marker{display:none;}
.fact-check__details summary::marker{content:"";}
.fact-check__details summary svg{width:1.1em;height:1.1em;}
.fact-check__panel{position:absolute;top:calc(100% + 6px);left:0;z-index:20;min-width:260px;max-width:min(420px,90vw);padding:var(--space-4);
	background:var(--color-white);color:var(--color-text);border:2px solid var(--color-primary);border-radius:0;box-shadow:var(--shadow-lg);}
.fact-check__panel p{margin:0 0 var(--space-2);}
.fact-check__panel p:last-child{margin-bottom:0;}
.freshness{margin:var(--space-3) 0;font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums;}
.projects{padding:var(--space-16) 0;}
.projects__grid{display:grid;gap:var(--space-8);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;overflow:hidden;padding-bottom:var(--space-6);background:transparent;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;box-shadow:none;}
.project-card__images{display:grid;grid-template-columns:1fr 1fr;gap:2px;overflow:hidden;border:1px solid var(--color-primary);}
.project-card__images figure{position:relative;margin:0;}
.project-card__images--single{margin:0 0 var(--space-8);}
.project-card__images--single:has(> figure:only-child){grid-template-columns:minmax(0,1fr);}
.project-card__images figcaption{position:absolute;left:0;bottom:0;padding:2px 8px;background:rgba(var(--color-primary-rgb),.9);color:var(--color-on-dark);
	font:700 var(--text-xs)/1.4 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;}
.project-card__body{padding:var(--space-5) 0 0;}
.project-card__meta{margin-bottom:var(--space-2);font:700 var(--text-xs)/1.3 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-muted);}
.project-card .card__title{margin:0 0 var(--space-2);font:700 var(--text-lg)/1.25 var(--font-display);}
.project-card .card__title a{color:var(--color-primary);text-decoration:none;}
.credentials{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-4);padding:var(--space-8) 0;}
.credential{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);border:1px solid var(--color-rule);border-radius:0;background:var(--color-white);}
.credential svg{width:1.3em;height:1.3em;color:var(--color-primary);}
.credential__value{font-weight:var(--fw-semibold);}
.awards{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-8);padding:var(--space-8) 0;}
.awards img{max-height:44px;width:auto;filter:grayscale(1);opacity:.75;transition:filter var(--transition),opacity var(--transition);}
.awards a:hover img,.awards img:hover{filter:none;opacity:1;}
.team-grid{display:grid;gap:var(--space-8);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:0 0 var(--space-6);text-align:left;background:transparent;border:0;border-bottom:1px solid var(--color-rule);border-radius:0;box-shadow:none;}
.team-card__photo img{width:110px;height:110px;margin:0 0 var(--space-4);border-radius:50%;border:1.5px solid var(--color-primary);object-fit:cover;}
.guarantees{display:grid;gap:var(--space-8);grid-template-columns:minmax(0,1fr);}
@media (min-width:640px){.guarantees{grid-template-columns:repeat(3,minmax(0,1fr));}}
.guarantee{padding:var(--space-5) 0 var(--space-5) var(--space-5);text-align:left;border-left:2px solid var(--color-primary);}
.guarantee svg{width:1.8em;height:1.8em;margin-bottom:var(--space-2);color:var(--color-primary);}

/* 15. BREADCRUMBS / PROSE / IMPORTED CONTENT / POSTS -------------------- */
.breadcrumbs{padding:var(--space-3) 0;background:var(--color-white);border-bottom:1px solid var(--color-rule);font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.breadcrumbs__list{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-2);margin:0;padding:0;list-style:none;}
.breadcrumbs__item{display:inline-flex;align-items:center;gap:var(--space-2);}
.breadcrumbs__item + .breadcrumbs__item::before{content:"/";content:"/" / "";color:var(--color-rule);}
.breadcrumbs a{color:var(--color-primary);text-decoration-thickness:1px;}
.breadcrumbs [aria-current]{color:var(--color-text);}
/* prose */
.prose-content{max-width:var(--width-content);margin:0 auto;padding:var(--space-16) var(--space-5);font-size:var(--text-base);line-height:var(--lh-normal);}
.container .prose-content{margin-left:0;margin-right:0;padding-left:0;padding-right:0;}
.section .prose-content{padding-top:0;padding-bottom:0;}
.content-narrow{max-width:var(--width-content);}
.prose-content > :first-child,.entry-content > :first-child{margin-top:0;}
.prose-content h2{margin-top:var(--space-16);}
.prose-content h2:first-child{margin-top:0;}
/* An H2 that opens a LATER group of the imported content is not the start of the
   content: keep the normal section gap above it. */
.prose-content .wp-block-group + .wp-block-group > h2:first-child{margin-top:var(--space-16);}
.prose-content h3{margin-top:var(--space-8);margin-bottom:var(--space-3);}
.prose-content h4{margin-top:var(--space-6);margin-bottom:var(--space-2);}
.prose-content :is(h2,h3) + :is(h3,h4){margin-top:var(--space-4);}
.prose-content h3:first-child,.prose-content h4:first-child{margin-top:0;}
.prose-content figure{margin:var(--space-8) 0;}
.prose-content figcaption{margin-top:var(--space-2);font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);}
.prose-content blockquote{margin:var(--space-8) 0;padding:0 0 0 var(--space-5);border-left:2px solid var(--color-primary);font-size:var(--text-md);color:var(--color-text);}
.prose-content blockquote > :last-child{margin-bottom:0;}
.prose-content :is(.alignwide,.alignfull){max-width:100%;}
.prose-content .alignleft{float:left;margin:0 var(--space-6) var(--space-4) 0;}
.prose-content .alignright{float:right;margin:0 0 var(--space-4) var(--space-6);}
.prose-content .aligncenter{margin-left:auto;margin-right:auto;}
/* lists: 6x6 navy square bullets; ordered lists are procedure balloons */
:is(.prose-content,.faq__answer) :is(ul:not([class]),ul.wp-block-list){list-style:none;padding-left:0;}
:is(.prose-content,.faq__answer) :is(ul:not([class]),ul.wp-block-list) > li{position:relative;padding-left:1.375rem;margin-bottom:var(--space-2);}
:is(.prose-content,.faq__answer) :is(ul:not([class]),ul.wp-block-list) > li::before{content:"";position:absolute;left:.25rem;top:.62em;width:6px;height:6px;background:var(--color-primary);}
:is(.prose-content,.faq__answer) :is(ol:not([class]),ol.wp-block-list){list-style:none;padding-left:0;counter-reset:step;}
:is(.prose-content,.faq__answer) :is(ol:not([class]),ol.wp-block-list) > li{position:relative;min-height:28px;margin-bottom:var(--space-3);padding-left:44px;counter-increment:step;}
:is(.prose-content,.faq__answer) :is(ol:not([class]),ol.wp-block-list) > li::before{content:counter(step);position:absolute;left:0;top:0;width:28px;height:28px;
	display:grid;place-items:center;border-radius:50%;border:1.5px solid var(--color-primary);background:var(--color-white);
	font:700 13px/1 var(--font-display);color:var(--color-primary);}
:is(.prose-content,.faq__answer) :is(ol[start],ol[reversed]){counter-reset:none;}
/* tables: a spec sheet (lettering head over a 2px navy rule, 1px row rules, no zebra) */
.prose-content table{width:100%;margin:var(--space-8) 0;border-collapse:collapse;font-size:var(--text-sm);line-height:1.45;font-variant-numeric:tabular-nums;}
.prose-content .wp-block-table{margin:var(--space-8) 0;overflow-x:auto;}
.prose-content .wp-block-table table{margin:0;}
.prose-content .wp-block-table thead{border-bottom:0;}
.prose-content .wp-block-table tfoot{border-top:0;}
.prose-content :is(table,.wp-block-table table) th{padding:.625rem .75rem;border:0;border-bottom:2px solid var(--color-primary);text-align:left;vertical-align:bottom;
	font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.prose-content :is(table,.wp-block-table table) td{padding:.625rem .75rem;border:0;border-bottom:1px solid var(--color-rule);vertical-align:top;}
.prose-content tr > td:first-child{font-weight:var(--fw-semibold);}
.prose-content tfoot td{border-top:2px solid var(--color-primary);}
.prose-content :is(td,th):is(.has-text-align-right,[align="right"],[data-align="right"]){text-align:right;}
.prose-content .wp-block-table.is-style-stripes tbody tr:nth-child(odd){background-color:transparent;}
.prose-content .wp-block-table.is-style-stripes{border-bottom:0;}
@media (max-width:639px){.prose-content table{display:block;max-width:100%;overflow-x:auto;}}
/* imported content (contract §2): the owner's stored blocks, normalized */
.prose-content .has-large-font-size{font-size:var(--text-lede)!important;line-height:1.55;color:var(--color-text);}
.prose-content .wp-block-group{margin-top:0;}
.prose-content .wp-block-group.has-background:not(.is-style-safety-notice){padding:var(--space-6);}
.prose-content .wp-block-columns{gap:var(--space-6);margin:var(--space-8) 0;}
@media (max-width:781px){
	.prose-content .wp-block-columns{flex-wrap:wrap!important;}
	.prose-content .wp-block-columns > .wp-block-column{flex-basis:100%!important;}
}
.prose-content :is(.wp-block-separator,hr){width:3rem;max-width:3rem;height:0;margin:var(--space-10) 0;border:0;border-top:1px solid var(--color-rule);background:none;opacity:1;}
.prose-content .wp-block-separator.is-style-wide{width:100%;max-width:none;}
.prose-content .wp-block-separator.is-style-dots{width:auto;max-width:none;border-top:0;color:var(--color-rule);text-align:left;}
.prose-content .wp-block-buttons{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-6) 0;}
.prose-content .wp-block-button{margin:0;}
/* stored-content buttons take the theme's primary button (on-light) */
.prose-content :is(.wp-block-button__link,.wp-element-button){display:inline-flex;align-items:center;justify-content:center;width:auto;min-height:48px;padding:0 1.5rem;
	border:2px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-primary);color:var(--color-white);box-shadow:none;
	font:700 var(--text-base)/1.2 var(--font-display);letter-spacing:0;text-align:center;text-decoration:none;}
.prose-content :is(.wp-block-button__link,.wp-element-button):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-white);text-decoration:none;}
.prose-content :is(.wp-block-button__link,.wp-element-button):active{background:var(--color-primary-active);border-color:var(--color-primary-active);}
.prose-content .wp-block-button__link.has-accent-background-color{background-color:var(--color-primary)!important;}   /* never white on sky */
.prose-content .is-style-outline > .wp-block-button__link{background:transparent;color:var(--color-primary);}
.prose-content .is-style-outline > .wp-block-button__link:hover{background:var(--color-surface-2);color:var(--color-primary);}
.prose-content .wp-block-button.aligncenter,.prose-content .wp-block-buttons.is-content-justification-center{justify-content:center;}
/* block style "Safety notice" on core/group: 2px navy frame, navy strip
   carrying the lettering SAFETY and a drawn alert triangle; body on white. */
.is-style-safety-notice{position:relative;margin:var(--space-8) 0;padding:calc(2.25rem + var(--space-5)) var(--space-5) var(--space-5);
	border:2px solid var(--color-primary);background:var(--color-white);color:var(--color-text);}
.is-style-safety-notice::before{content:"Safety";content:"Safety" / "";position:absolute;top:0;left:0;right:0;display:flex;align-items:center;height:2.25rem;
	padding:0 var(--space-5) 0 calc(var(--space-5) + 1.5rem);
	background:var(--color-primary) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15 14H1z' fill='none' stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3.6M8 11.6v.4' stroke='%23fff' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") var(--space-5) 50%/1rem 1rem no-repeat;
	color:var(--color-on-dark);font:700 var(--text-xs)/1 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;}
.is-style-safety-notice > :last-child{margin-bottom:0;}
.is-style-safety-notice :is(h2,h3,h4){margin-top:0;}
/* posts (single.php): lettering eyebrow + navy Trebuchet H1, then the prose */
.entry-header{margin:0 0 var(--space-8);}
.entry-header h1{margin:0 0 var(--space-4);font-size:clamp(var(--text-2xl),1rem + 2.4vw,var(--text-3xl));line-height:var(--lh-tight);}
:is(.entry-header__eyebrow,.entry-eyebrow,.eyebrow){display:inline-flex;align-items:center;gap:.5rem;margin:0 0 var(--space-3);
	font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
:is(.entry-header__eyebrow,.entry-eyebrow,.eyebrow) a{color:var(--color-primary);text-decoration:none;}
:is(.entry-header__eyebrow,.entry-eyebrow,.eyebrow) a:hover{text-decoration:underline;text-decoration-color:var(--color-accent);}
.entry-meta{display:flex;flex-wrap:wrap;gap:var(--space-1) var(--space-4);margin:0 0 var(--space-6);font-size:var(--text-sm);color:var(--color-muted);font-variant-numeric:tabular-nums;}
.post-thumb{margin:0 0 var(--space-8);}
.post-thumb img{width:100%;border:1px solid var(--color-primary);}
.post-list{display:grid;gap:var(--space-6);}
.section-more,.tlar-posts .tlar-posts__more{margin:var(--space-8) 0 0;}
.archive-description{max-width:62ch;margin-top:var(--space-3);color:var(--color-muted);}
.archive-description > :last-child{margin-bottom:0;}
.comments-title{margin:0 0 var(--space-6);}
/* pagination: home.php / index.php / archive / search + [tlar_posts] */
.pagination,.tlar-posts__pagination,.page-links,.post-nav-links{margin-top:var(--space-12);}
.pagination .nav-links,.tlar-posts .tlar-posts__pagination,.page-links,.post-nav-links{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:var(--space-2);}
:is(.pagination,.page-links,.post-nav-links) :is(.page-numbers,.post-page-numbers),.tlar-posts .tlar-posts__pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;
	min-width:44px;min-height:44px;height:auto;padding:0 .75rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-white);
	font:700 var(--text-label)/1 var(--font-display);color:var(--color-primary);text-decoration:none;font-variant-numeric:tabular-nums;}
:is(.pagination,.page-links,.post-nav-links) a:is(.page-numbers,.post-page-numbers):hover,.tlar-posts .tlar-posts__pagination a.page-numbers:hover{border-color:var(--color-primary);background:var(--color-surface-2);color:var(--color-primary);}
:is(.pagination,.page-links,.post-nav-links) :is(.page-numbers,.post-page-numbers).current,.tlar-posts .tlar-posts__pagination .page-numbers.current{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-on-dark);}
:is(.pagination,.page-links,.post-nav-links) .page-numbers.dots,.tlar-posts .tlar-posts__pagination .page-numbers.dots{border-color:transparent;background:transparent;color:var(--color-muted);}
/* read more (collapsible) — JS-gated so no-JS shows everything */
.readmore__btn{display:none;margin-top:var(--space-6);}
.readmore--center{text-align:center;}
.readmore--right{text-align:right;}
.readmore__visible,.readmore__hidden,.readmore__inner{text-align:left;}
.js .readmore.is-ready .readmore__btn{display:inline-flex;}
.js .readmore--block.is-ready .readmore__btn{display:flex;width:100%;}
.js .readmore.is-collapsed .readmore__hidden{display:none;}
.readmore--height{position:relative;}
.js .readmore--height.is-collapsed .readmore__inner{max-height:var(--readmore-h);overflow:hidden;
	-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent);}
@media (prefers-reduced-motion:no-preference){.js .readmore--height .readmore__inner{transition:max-height var(--transition);}}
/* comments, widgets, search */
.comments-area{margin-top:var(--space-12);padding-top:var(--space-8);border-top:1px solid var(--color-rule);}
.comment-list{margin:0 0 var(--space-8);padding:0;list-style:none;}
.comment-list .children{margin:0;padding-left:var(--space-6);list-style:none;}
.comment-body{padding:var(--space-4) 0;border-bottom:1px solid var(--color-rule);}
.comment-meta,.comment-metadata{font-size:var(--text-sm);color:var(--color-muted);}
.no-comments{color:var(--color-muted);}
.blog-sidebar{min-width:0;}
.widget{margin:0 0 var(--space-8);}
.widget .widget__title{margin:0 0 var(--space-3);font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);}
.widget ul{margin:0;padding:0;list-style:none;}
.widget li{padding:.375rem 0;border-bottom:1px solid var(--color-rule);}
.search-form{display:flex;flex-wrap:wrap;gap:var(--space-2);max-width:560px;}
.search-form .search-field{flex:1 1 200px;min-width:0;}
.search-form .btn{flex:none;}
.contact-list{margin:0 0 var(--space-6);padding:0;list-style:none;}
.contact-list li{display:flex;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);}
.contact-list svg{flex:none;width:1.1em;height:1.1em;margin-top:.3em;color:var(--color-primary);}

/* 16. BRANDS PAGE ------------------------------------------------------- */
/* Brand names are plain words: one middot-separated line, then the
   non-affiliation + warranty note. No chips, badges, check-marks or logos. */
.brand-names{max-width:68ch;margin:0 0 var(--space-4);font:600 var(--text-md)/1.6 var(--font);color:var(--color-text);}
.grid + .brand-names{margin-top:var(--space-8);}   /* brand plates above (page-industries / front page) */
.brand-note{max-width:68ch;margin:0 0 var(--space-6);font-size:var(--text-sm);line-height:1.5;color:var(--color-text);}

/* 17. LOCAL AREAS + AREA CHECK / VIDEO / MAP ---------------------------- */
.local-areas{padding:var(--space-12) 0;}
.local-areas__heading{margin:0 0 var(--space-6);text-align:left;}
.area-chips{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:var(--space-2);margin:0 0 var(--space-8);padding:0;list-style:none;}
.area-chips li{padding:.375rem .75rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);background:var(--color-white);font-size:var(--text-sm);line-height:1.3;color:var(--color-text);}
.area-check{display:flex;flex-wrap:wrap;align-items:stretch;justify-content:flex-start;gap:var(--space-3);max-width:560px;margin:0;}
.area-check__label{display:block;flex:1 1 220px;min-width:0;margin:0;}
.area-check input:is([type=search],[type=text]){display:block;width:100%;height:100%;min-height:48px;}
.area-check input:is([type=search],[type=text]):focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-color:var(--color-primary);}
.area-check .btn{flex:none;}
.area-check__result{max-width:560px;margin:var(--space-6) 0 0;padding:var(--space-5) var(--space-6);border:1px solid var(--color-rule);border-radius:0;background:var(--color-white);text-align:left;}
.area-check__result.is-yes{border:2px solid var(--color-success);background:var(--color-surface);}
.area-check__msg{margin:0 0 var(--space-3);font-weight:var(--fw-semibold);color:var(--color-text);}
.area-check__result.is-yes .area-check__msg{color:var(--color-success);}
/* video facade — light plate, navy play disc */
a.video-facade,.video-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-2);margin-top:var(--space-4);padding:var(--space-12) var(--space-4);
	background:var(--color-surface);border:1px solid var(--color-primary);border-radius:0;color:var(--color-primary);font-weight:var(--fw-semibold);font-size:var(--text-sm);text-decoration:none;}
a.video-facade:hover,.video-facade:hover{background:var(--color-surface-2);color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);}
.video-facade__play{display:inline-flex;align-items:center;justify-content:center;width:54px;height:54px;border-radius:50%;background:var(--color-primary);color:var(--color-white);}
.video-facade__play svg{width:22px;height:22px;margin-left:2px;}
.video-embed{margin-top:var(--space-4);}
.video-embed iframe{display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--color-primary);}
/* map embed */
.map-embed{padding:var(--space-12) 0;}
:is(.map-embed,.tlar-map) iframe{display:block;width:100%;min-height:320px;border:1px solid var(--color-rule);}

/* 18. FOOTER — the revision block + STICKY REQUEST BAR ------------------- */
/* Light, not dark: the line-art badge would vanish on navy (1.18:1). Vellum
   with a 3px navy top rule; .footer-grid is ruled into cells like the header
   (brand | Services | Areas | Request). Column heads use the lettering voice;
   links are 44px rows with sky underlines. */
.site-footer{margin-top:0;padding:0 0 var(--space-8);background:var(--color-surface);border-top:3px solid var(--color-primary);color:var(--color-text);}
.footer-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;border-bottom:1px solid var(--color-rule);}
.footer-col{min-width:0;padding:var(--space-6) 0;border-top:1px solid var(--color-rule);}
.footer-col:first-child{border-top:0;}
@media (min-width:640px) and (max-width:1023px){
	.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--space-8);}
	.footer-col:nth-child(-n+2){border-top:0;}
}
@media (min-width:1024px){
	.footer-grid{grid-template-columns:minmax(0,1.4fr);grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);}
	.footer-col{padding:var(--space-10) var(--space-6);border-top:0;}
	.footer-col:first-child{padding-left:0;}
	.footer-col + .footer-col{border-left:1px solid var(--color-rule);}
	.footer-col:last-child{padding-right:0;}
}
.footer-col:empty{display:none;}
.footer-stamp{display:block;margin:0 0 var(--space-3);}
.site-footer .custom-logo-link{display:inline-flex;margin:0;text-decoration:none;}
.site-footer .custom-logo{display:block;height:calc(var(--badge-h) / var(--logo-fill));width:auto;max-width:none;max-height:none;}
.site-footer .site-title{margin:0 0 var(--space-1);font:700 var(--text-base)/1.2 var(--font-display);color:var(--color-primary);}
.site-footer .site-title a{color:var(--color-primary);text-decoration:none;}
.footer-tagline,.footer-address{margin:0 0 var(--space-3);font:400 var(--text-sm)/1.45 var(--font);color:var(--color-muted);}
.footer-col--brand .footer-menu{margin-top:var(--space-2);}
.site-footer :is(h2,h3,h4),.site-footer .footer-widget__title{margin:0 0 var(--space-3);font:700 var(--text-xs)/1.2 var(--font-display);
	letter-spacing:var(--track-lettering);text-transform:uppercase;color:var(--color-primary);text-wrap:wrap;}
.site-footer p{margin:0 0 var(--space-2);}
.site-footer ul{margin:0;padding:0;list-style:none;}
.site-footer li{margin:0;}
.site-footer a:where(:not(.btn,.custom-logo-link)){color:var(--color-primary);text-decoration:underline;text-decoration-color:var(--color-accent);text-decoration-thickness:2px;text-underline-offset:3px;overflow-wrap:anywhere;}
.site-footer a:where(:not(.btn,.custom-logo-link)):hover{color:var(--color-primary-hover);text-decoration-color:currentColor;}
.site-footer li > a,.footer-menu a,.footer-col > p > a{display:inline-flex;align-items:center;min-height:44px;}
.footer-license{font-size:var(--text-sm);color:var(--color-muted);}
.footer-social{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:var(--space-4);}
.site-footer .footer-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;min-height:44px;border:1px solid var(--color-rule);border-radius:50%;
	background:var(--color-white);color:var(--color-primary);text-decoration:none;}
.site-footer .footer-social a:hover{border-color:var(--color-primary);background:var(--color-surface-2);}
.footer-social svg{width:1.1em;height:1.1em;}
.footer-widget{margin:0 0 var(--space-6);}
/* full-text disclosures below the grid — visible, 13px, body ink */
.footer-referral,.footer-colophon{max-width:92ch;margin:0;padding-top:var(--space-5);font:400 .8125rem/1.5 var(--font);color:var(--color-text);}
.footer-colophon{padding-top:var(--space-3);}
.footer-disclosure{margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--color-rule);}
.footer-disclosure .affiliate-disclosure{color:var(--color-text);}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2) var(--space-6);margin-top:var(--space-6);padding-top:var(--space-4);
	border-top:1px solid var(--color-rule);font-size:var(--text-sm);color:var(--color-muted);text-align:left;}
.footer-bottom p{margin:0;color:var(--color-muted);}
.footer-bottom a{display:inline-flex;align-items:center;min-height:44px;}
/* sticky request bar (phones, < 1024): navy, white Trebuchet 700 labels,
   56px; the Request item (always last) carries a 3px sky top rule (4.99:1).
   Hidden while #repair-request intersects (main.js .is-hidden). */
.sticky-bar{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;min-height:56px;background:var(--color-dark);border-top:1px solid var(--color-dark-border);}
.sticky-bar a{flex:1 1 0;display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:56px;padding:0 var(--space-4);
	color:var(--color-on-dark);font:700 var(--text-base)/1.2 var(--font-display);text-align:center;text-decoration:none;}
.sticky-bar a + a{border-left:1px solid var(--color-dark-border);}
.sticky-bar a:last-child,.sticky-bar .sticky-bar__request{box-shadow:inset 0 3px 0 var(--color-accent);}
.sticky-bar a:hover{background:var(--color-dark-2);color:var(--color-on-dark);text-decoration:none;}
.sticky-bar a:focus-visible{outline:2px solid var(--color-on-dark);outline-offset:-4px;}
.sticky-bar svg{flex:none;width:1.2em;height:1.2em;}
.sticky-bar.is-hidden{transform:translateY(100%);visibility:hidden;}
@media (prefers-reduced-motion:no-preference){
	.sticky-bar{transition:transform .2s ease,visibility 0s linear 0s;}
	.sticky-bar.is-hidden{transition:transform .2s ease,visibility 0s linear .2s;}
}
body.has-sticky-bar{padding-bottom:64px;}
@media (min-width:1024px){
	.sticky-bar{display:none;}
	body.has-sticky-bar{padding-bottom:0;}
}

/* 19. 404 --------------------------------------------------------------- */
.error-404{padding:var(--space-16) 0;}
.error-404 .fig{max-width:28rem;margin:var(--space-8) 0;}
.error-404 .fig__plate{min-height:10rem;}
.error-404 .search-form{margin:0 0 var(--space-8);}
.error-404__links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-3);margin:0;padding:0;list-style:none;}
.error-404__links a{display:inline-flex;align-items:center;min-height:44px;padding:.5rem 1rem;border:1px solid var(--color-rule);border-radius:var(--radius-sm);
	background:var(--color-white);font:600 var(--text-sm)/1.3 var(--font);color:var(--color-primary);text-decoration:none;}
.error-404__links a:hover{border-color:var(--color-primary);background:var(--color-surface);text-decoration:underline;text-decoration-color:var(--color-accent);}
.text-center .fig{margin-left:auto;margin-right:auto;text-align:left;}

/* 20. DIRECTORY (off by default) / FEATURED / AFFILIATE / TOOL PAGE ------ */
.directory{padding:var(--space-16) 0 var(--space-12);background:transparent;}
.directory__heading{margin:0 0 var(--space-8);text-align:left;}
.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{position:relative;display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-6);background:var(--color-white);
	border:1px solid var(--color-rule);border-radius:0;box-shadow:none;transition:border-color var(--transition);}
.directory__card:hover{border-color:var(--color-primary);}
.directory__card--featured{border:2px solid var(--color-primary);}
.directory__rank{display:inline-flex;align-items:center;justify-content:center;flex:none;width:32px;height:32px;border-radius:50%;
	border:1.5px solid var(--color-primary);background:var(--color-white);color:var(--color-primary);font:700 var(--text-sm)/1 var(--font-display);font-variant-numeric:tabular-nums;}
.directory__card--featured .directory__rank{background:var(--color-primary);color:var(--color-white);}
.directory__card .directory__name{margin:0;font:700 var(--text-lg)/1.25 var(--font-display);color:var(--color-primary);}
.directory__rating{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:var(--fw-semibold);color:var(--color-text);}
.directory__star{display:inline-flex;align-items:center;justify-content:center;color:var(--color-star);}
.directory__star svg{width:1em;height:1em;}
.directory__rating-count{font-weight:var(--fw-normal);color:var(--color-muted);}
.directory__desc{margin:0;font-size:var(--text-sm);line-height:var(--lh-normal);color:var(--color-muted);}
.directory__meta{display:flex;align-items:flex-start;gap:var(--space-2);margin:0;font-size:var(--text-sm);color:var(--color-muted);}
.directory__icon{display:inline-flex;flex:none;margin-top:2px;color:var(--color-primary);}
.directory__icon svg{width:1em;height:1em;}
.directory__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-top:auto;padding-top:var(--space-3);}
a.directory__action{display:inline-flex;align-items:center;gap:var(--space-2);min-height:44px;padding:0 var(--space-4);border:2px solid var(--color-primary);border-radius:var(--radius-sm);
	background:var(--color-white);color:var(--color-primary);font:700 var(--text-sm)/1.2 var(--font-display);text-decoration:none;transition:background-color var(--transition);}
a.directory__action:hover{background:var(--color-surface-2);color:var(--color-primary);text-decoration:none;}
.directory__action svg{width:1em;height:1em;}
/* call action — navy fill, white ink (flipped from the donor's accent fill) */
a.directory__action--call{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-white);}
a.directory__action--call:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-white);}
/* featured #1 badge (directory off): navy fill, white ink */
.hero__featured-badge{display:inline-flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);
	background:var(--color-primary);color:var(--color-white);font:700 var(--text-xs)/1.2 var(--font-display);letter-spacing:var(--track-lettering);text-transform:uppercase;}
.hero__featured-badge svg{width:1.1em;height:1.1em;}
.hero__featured-tagline{display:block;max-width:48ch;margin:calc(-1 * var(--space-2)) 0 var(--space-5);font-size:var(--text-md);font-weight:var(--fw-medium);color:var(--color-text);}
/* affiliate layer (off by default): .affiliate-link* is the button hook,
   never a band — sharing one name would paint a band behind nested buttons. */
.affiliate-link[target="_blank"]::after{content:"";display:inline-block;flex:none;width:.7em;height:.7em;margin-left:.4em;background:currentColor;
	-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
	mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M3.5 8.5l5-5M4.5 3.5h4v4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;}
.affiliate-disclosure{max-width:78ch;margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--color-muted);}
/* tool page (page-tool.php): quiet chrome for linkable assets */
.tool-header{padding:var(--space-4) 0;background:var(--color-white);border-bottom:2px solid var(--color-primary);}
.tool-header__inner{display:flex;align-items:center;justify-content:center;gap:var(--space-3);}
.tool-header .custom-logo-link img{height:44px;width:auto;max-height:none;}
.tool-header .tool-header__title{margin:0;font:700 var(--text-base)/1.2 var(--font-display);color:var(--color-primary);}
.tool-header__title a{color:var(--color-primary);text-decoration:none;}
.tool-page__inner{max-width:var(--width-content);padding-top:var(--space-8);padding-bottom:var(--space-12);}
.tool-page .tool-page__title{margin:0 0 var(--space-6);font-size:var(--text-2xl);}
.tool-footer{margin-top:var(--space-8);padding:var(--space-6) 0;background:var(--color-surface);border-top:1px solid var(--color-rule);}
.tool-footer__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);font-size:var(--text-sm);color:var(--color-muted);}
.tool-footer__inner p{margin:0;}
.tool-footer__inner a{color:var(--color-primary);}

/* 21. UTILITIES / ACCESSIBILITY / MOTION / FORCED COLOURS / PRINT ------- */
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0;}
.screen-reader-text:focus,.skip-link:focus{top:var(--space-3);left:var(--space-3);z-index:1000;width:auto;height:auto;margin:0;padding:var(--space-3) var(--space-4);
	clip:auto!important;clip-path:none;overflow:visible;white-space:normal;background:var(--color-white);color:var(--color-primary);border:2px solid var(--color-primary);
	font:700 var(--text-base)/1.2 var(--font-display);text-decoration:none;}
.skip-link{position:absolute;left:-9999px;top:0;}
/* Focus: a 2px navy outline with a 2px offset on every light surface
   (>= 11.13:1); white and inset on the navy sticky bar. */
:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;}
.text-center{text-align:center;}
/* scroll reveal — JS + motion only; never on hero children */
.js .reveal{opacity:0;transform:translateY(16px);}
@media (prefers-reduced-motion:no-preference){
	.js .reveal{transition:opacity .5s ease,transform .5s ease;}
	.js .reveal.is-visible{opacity:1;transform:none;}
}
.no-js .reveal{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto;}
	.js .reveal{opacity:1;transform:none;}
	*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}
/* Forced colours: linework follows system ink, ruling and highlight drop out,
   chips fall back to native checkboxes, outlines survive. Masked and
   gradient-drawn marks are repainted in CanvasText so they stay visible. */
@media (forced-colors:active){
	.rr-chip input{appearance:auto;-webkit-appearance:auto;width:18px;height:18px;border:0;background:none;}
	.rr-chip input:checked{background:none;}
	.fig__plate,.card__figure{background-image:none;}
	.btn,.header-cta,.sticky-bar a,.rr-chip,.silo__links a{forced-color-adjust:auto;border-color:ButtonText;}
	.dp-rhythm-dial-detent :is(.section-head > h2,h2.section-head,.faq__heading,.local-areas__heading,.silo__heading,.cta-banner h2,.prose-content h2:not(.repair-request__title))::before{forced-color-adjust:none;background:CanvasText;}
	.dp-rhythm-dial-detent :is(.section-head > h2,h2.section-head,.faq__heading,.local-areas__heading,.silo__heading,.cta-banner h2,.prose-content h2:not(.repair-request__title))::after{forced-color-adjust:none;border-color:CanvasText;
		background:linear-gradient(CanvasText,CanvasText) 50% 1.5px/2px 38% no-repeat,Canvas;}
	.rr-safety::before,.field__error:not(:has(svg))::before,.field__note.is-in-area:not(:has(svg))::before,.affiliate-link[target="_blank"]::after{forced-color-adjust:none;background:CanvasText;}
	.hero__eyebrow::before,.card__detail-label::before{forced-color-adjust:none;
		background:radial-gradient(circle at 3px 50%,CanvasText 2.5px,transparent 3px),linear-gradient(CanvasText,CanvasText) 3px 50%/calc(100% - 3px) 1.5px no-repeat;}
	.faq__chevron,.repair-request__more > summary::before{forced-color-adjust:none;border-color:CanvasText;
		background:linear-gradient(CanvasText,CanvasText) center/10px 1.5px no-repeat,linear-gradient(CanvasText,CanvasText) center/1.5px 10px no-repeat,Canvas;}
	.faq__item[open] .faq__chevron,.repair-request__more[open] > summary::before{background:linear-gradient(CanvasText,CanvasText) center/10px 1.5px no-repeat,Canvas;}
	:is(.prose-content,.faq__answer) :is(ul:not([class]),ul.wp-block-list) > li::before{forced-color-adjust:none;background:CanvasText;}
	.is-style-safety-notice::before{forced-color-adjust:none;background:CanvasText;color:Canvas;}
	.sticky-bar a:last-child{box-shadow:none;border-top:3px solid CanvasText;}
	.quote-form__feedback.is-success::before{forced-color-adjust:none;background:Canvas;border-color:CanvasText;}
}
/* Print: no chrome that only works on screen; the request mailto prints. */
@media print{
	.topbar,.masthead__callblock,.sticky-bar,.menu-toggle,.main-nav,.site-header__nav,.header-actions,.promo-bar,.skip-link,.readmore__btn,.tlar-consent,.video-facade,.map-embed,.tlar-map{display:none!important;}
	.site-header{position:static;border-bottom:1px solid #000;}
	body.has-sticky-bar{padding-bottom:0;}
	.hero,.hero--callout-figure,.site-footer,.cta-banner,.section--surface{background:none;}
	.js .reveal{opacity:1;transform:none;}
	.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;}
	.card,.fig,.quote-form-wrap,.faq__item{break-inside:avoid;}
	a{text-decoration-color:currentColor;}
}
