/*
 * Gas Line Installation Utah: main stylesheet (handle glu-main).
 * Design profile piping-plan, "After the Meter" (gas-line-installation-utah-docs/design/DESIGN-DECISION.md):
 * typography highway-gothic, hero branch-plan, section_rhythm capped-run, cards door-swing, header room-drawer,
 * texture pipe-tracery. Ink-only brand (DECISIONS D24 option A): the CTA is ink fill + white label; states are carried
 * by ink weight, inversion, glyphs and words; APWA yellow / white appear only inside the hero drawings, with a legend.
 *
 * Layout of this file:
 *   0      production font faces (one self-hosted WOFF2, preloaded by inc/enqueue.php; OFL.txt + FONTLOG.txt beside it)
 *   1-16   design/final-sketch.html <style> blocks 1-16, VERBATIM and in order (block 1 = the DESIGN-DECISION §7.2 :root).
 *          Edit the sketch first, then copy; the Customizer defaults for --color-primary / --color-accent / --color-text
 *          equal these :root values and theme.json (audit N).
 *   17-22  theme-only hooks the sketch does not draw (WordPress core classes, owner blocks, both blog paths, comments,
 *          search, the self-hiding modules that ship OFF, the plugin's consent bar / posts grid / fallback list), in the
 *          same tokens and grammar, with their own responsive, motion, forced-colors and print rules.
 */

/* ===== 0. FONT (production; DESIGN-DECISION §8.1-8.2) ===== */
@font-face{font-family:"Overpass GLU";src:url("../fonts/overpass-glu-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap;
  unicode-range:U+0020-007E,U+00A0,U+00A9,U+00AE,U+00B0,U+00D7,U+2013-2014,U+2018-2019,U+201C-201D,U+2022,U+2026,U+2032-2033,U+2039-203A,U+2122}
@font-face{font-family:"Overpass GLU Fallback";src:local("Arial Bold"),local("Arial-BoldMT"),local("Liberation Sans Bold"),local("LiberationSans-Bold");
  font-weight:800;size-adjust:98.9%;ascent-override:89.3%;descent-override:38.7%;line-gap-override:0%}

/* ===== 1. TOKENS ===== */
:root{
  /* colour: ink-only brand (DECISIONS D24 option A) */
  --color-primary:#000000;        /* plan black: headings, walls, runs, CTA fill, footer floor (structural ink exemption, P8) */
  --color-primary-hover:#171614;  /* CTA hover lifts to the text ink (white 18.08:1) */
  --color-primary-rgb:0,0,0;
  --color-accent:#6E6A63;         /* concrete: second ink (declared exemption 8.4, D24) */
  --color-accent-hover:#57534C;
  --color-accent-rgb:110,106,99;
  --color-text:#171614;           /* body ink 18.08:1 on paper */
  --color-muted:#57534C;          /* secondary text 7.64:1 */
  --color-field:#6E6A63;          /* field/chip UI boundary 5.38:1 */
  --color-rule:#D5D3CD;           /* decorative hairline, never the only boundary */
  --color-border:#D5D3CD;
  --color-page:#FFFFFF;           /* plan paper */
  --color-white:#FFFFFF;
  --color-surface:#F2F2F0;        /* plan film: request band, room hover */
  --color-surface-2:#E7E6E2;      /* paving inside drawings */
  --color-tertiary:#E4E3DE;       /* WP slug `tertiary`: safety panels */
  --color-dark:#000000;
  --color-dark-2:#000000;
  --color-on-dark:#FFFFFF;
  --color-on-dark-muted:#BDB9B1;
  --color-dark-border:#57534C;    /* hairline on ink */
  --color-success:#000000;        /* states are carried by glyph + words, never hue */
  --color-success-bg:#E4E3DE;
  --color-error:#000000;
  --color-error-bg:#E4E3DE;
  --color-star:#000000;           /* token kept (§21.11); no ratings ship */
  --color-focus:#000000;
  --color-focus-on-dark:#FFFFFF;
  --apwa-gas:#FFE500;             /* INFORMATION ONLY, inside a drawing with a legend */
  --apwa-proposed:#FFFFFF;        /* INFORMATION ONLY, white-lining dashes */
  /* type */
  --font-display:"Overpass GLU","Overpass GLU Fallback",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Noto Sans",Ubuntu,Cantarell,"Helvetica Neue",Arial,sans-serif;
  --font-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --wd:800;
  --fw-normal:400; --fw-medium:500; --fw-semibold:600; --fw-bold:700; --fw-black:800;
  --text-xs:.75rem; --text-label:.78rem; --text-sm:.875rem; --text-base:1.0625rem; --text-lg:1.25rem; --text-xl:1.4167rem;
  --text-2xl:clamp(1.625rem,1.2vw + 1.1rem,2.125rem);
  --text-3xl:clamp(2.125rem,3.2vw + .6rem,3.25rem);
  --text-4xl:clamp(2.5rem,5.6vw + .5rem,5.5rem);
  --text-5xl:clamp(2.5rem,5.6vw + .5rem,5.5rem);
  --text-6xl:clamp(2.5rem,5.6vw + .5rem,5.5rem);
  --lh-display:.98; --lh-tight:1.08; --lh-snug:1.2; --lh-normal:1.62;
  --track-display:-.034em; --track-h2:-.018em; --track-h3:-.008em; --track-btn:-.005em; --track-eyebrow:.09em;
  /* space + layout */
  --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; --space-24:6rem;
  --container:1200px; --gutter:40px; --width-content:40rem; --width-wide:1200px;
  --head-col:40rem; --run-gap:1.25rem; --aside-w:18.75rem; --cols:2; --strip-split:30.2%;
  --header-h:76px; --topbar-h:34px;
  --wall:2px; --door:44px; --door-compact:36px; --door-drawer:28px;
  --radius-sm:3px; --radius:4px; --radius-full:999px;
  --shadow-sm:none; --shadow-md:none; --shadow-lg:none;
  --transition:160ms ease;
  --z-base:1; --z-sticky-bar:80; --z-header:100; --z-drawer:110; --z-panel:120; --z-skip:1000;
  --bp-sm:480px; --bp-md:768px; --bp-lg:1024px; --bp-xl:1200px; --bp-2xl:1280px;
  /* texture + icons (data URIs; zero requests) */
  --tracery:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='400' fill='none' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M-20 60H660M180 60V234A16 16 0 0 0 196 250H417M500 -20V420M-20 320H660M500 180H660M-20 180H180M340 60V123M90 320V265' stroke='%23000' stroke-opacity='.075' stroke-width='5'/%3E%3Cpath d='M-20 60H660M180 60V234A16 16 0 0 0 196 250H417M500 -20V420M-20 320H660M500 180H660M-20 180H180M340 60V123M90 320V265' stroke='%23F2F2F0' stroke-width='2.4'/%3E%3C/svg%3E");
  --icon-arrow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 12'%3E%3Cpath d='M0 4.6h11.2V0L18 6l-6.8 6V7.4H0z'/%3E%3C/svg%3E");
  --icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 6'%3E%3Cpath d='M0 0h9L4.5 6z'/%3E%3C/svg%3E");
  --icon-check:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 11'%3E%3Cpath d='M1 5.5l4 4L13 1.5' fill='none' stroke='%23000' stroke-width='2.4'/%3E%3C/svg%3E");
  --icon-alert:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 26 26'%3E%3Cpath d='M13 2 25 24H1Z' fill='none' stroke='%23000' stroke-width='2.5' stroke-linejoin='round'/%3E%3Cpath d='M13 9.5v7' stroke='%23000' stroke-width='2.6'/%3E%3Ccircle cx='13' cy='20' r='1.6'/%3E%3C/svg%3E");
}

/* ===== 2. BASE ===== */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--header-h) + 1rem)}
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);overflow-wrap:break-word}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary);margin:0}
h1{font-size:var(--text-3xl);line-height:1.02;letter-spacing:-.03em;text-wrap:balance}
h2{font-size:var(--text-2xl);line-height:var(--lh-tight);letter-spacing:var(--track-h2);text-wrap:balance}
h3{font-size:var(--text-xl);line-height:var(--lh-snug);letter-spacing:var(--track-h3)}
p{margin:0 0 1em}
a{color:var(--color-primary);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px}
strong,b{font-weight:var(--fw-bold)}
figure{margin:0}
[hidden]{display:none!important}
.container{max-width:calc(var(--container) + 2*var(--gutter));margin:0 auto;padding:0 var(--gutter)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link:focus{position:fixed!important;left:1rem;top:1rem;width:auto;height:auto;clip:auto;z-index:var(--z-skip);background:var(--color-page);padding:.75rem 1rem;outline:3px solid var(--color-focus)}
.kicker{display:block;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent);line-height:1.3}
.tnum{font-variant-numeric:tabular-nums}
.has-quote-section .softlite-block-custom-html > form:not([action]){display:none} /* D14 belt, scoped: only while our form renders (R30) */
.prose-content .softlite-block-heading{margin:var(--space-10) 0 var(--space-3)} /* legacy /contact/ builder headings sit in nested divs, outside the direct-child prose rhythm; rebuild (Setup action 3) retires them */
.prose-content .softlite-block-div > .softlite-block-heading:first-child{margin-top:var(--space-6)}
.reveal{opacity:1;transform:none} /* never hidden: no entry animation in this design */

/* ===== 3. BUTTONS (ink fill + white label; no light-accent fill anywhere) ===== */
.btn,.wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;gap:.7rem;min-height:48px;padding:.95rem 1.25rem .95rem 1.35rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1rem;line-height:1.2;letter-spacing:var(--track-btn);text-align:left;white-space:normal;text-decoration:none;border:2px solid transparent;border-radius:var(--radius);cursor:pointer}
.btn--primary,.wp-block-button__link,.is-style-glu-primary .wp-block-button__link{background:var(--color-primary);color:var(--color-on-dark);border-color:var(--color-primary)}
.btn--primary::after,.wp-block-button__link::after{content:"";flex:none;width:18px;height:12px;background:currentColor;-webkit-mask:var(--icon-arrow) center/contain no-repeat;mask:var(--icon-arrow) center/contain no-repeat}
.btn--primary:hover,.wp-block-button__link:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-on-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.22em}
.btn--secondary,.is-style-glu-secondary .wp-block-button__link,.is-style-outline .wp-block-button__link{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.btn--secondary::after,.is-style-glu-secondary .wp-block-button__link::after,.is-style-outline .wp-block-button__link::after{display:none}
.btn--secondary:hover,.is-style-glu-secondary .wp-block-button__link:hover,.is-style-outline .wp-block-button__link:hover{background:var(--color-primary);color:var(--color-on-dark)}
/* on ink: paper fill + ink label, NO keyline; hover swaps to the outline look (no light non-paper fill) */
.btn--on-dark{background:var(--color-on-dark);color:var(--color-primary);border-color:var(--color-on-dark)}
.btn--on-dark::after{content:"";flex:none;width:18px;height:12px;background:currentColor;-webkit-mask:var(--icon-arrow) center/contain no-repeat;mask:var(--icon-arrow) center/contain no-repeat}
.btn--on-dark:hover{background:transparent;color:var(--color-on-dark)}
.btn--on-dark-secondary{background:transparent;color:var(--color-on-dark);border-color:var(--color-on-dark)}
.btn--on-dark-secondary:hover{background:var(--color-on-dark);color:var(--color-primary)}
.btn--on-dark:focus-visible,.btn--on-dark-secondary:focus-visible{outline-color:var(--color-focus-on-dark)}
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:1rem;margin:1.8rem 0 0}
.prose-content > .glu-cta--closing{margin-top:2rem}
.glu-cta--to-form .wp-block-button__link::after{transform:rotate(90deg)}
.glu-cta__note{margin:.7rem 0 0;font-size:var(--text-sm);color:var(--color-muted)}

/* ===== 4. HEADER: room-drawer (split bar; every dropdown opens as a full-width drawer holding a plan of rooms) ===== */
.site-header{position:sticky;top:0;z-index:var(--z-header);background:var(--color-page);border-bottom:1px solid var(--color-primary)}
/* side columns are minmax(max-content,1fr): equal (wordmark centred) while the nav fits its half; a longer owner menu
   pushes the wordmark right instead of colliding with it */
.site-header__inner{display:grid;grid-template-columns:minmax(max-content,1fr) auto minmax(max-content,1fr);grid-template-areas:"nav brand actions";align-items:center;column-gap:1.5rem;min-height:var(--header-h)}
.site-branding{grid-area:brand}
.site-header__nav{grid-area:nav;min-width:0}
.header-actions{grid-area:actions;justify-self:end;display:flex;align-items:center;gap:.6rem}
.site-title{margin:0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.125rem;letter-spacing:-.02em;line-height:1.1}
.site-title a{display:inline-flex;align-items:center;gap:.6rem;color:var(--color-primary);text-decoration:none}
.site-title__mark{flex:none;width:30px;height:30px}
.site-title__text{overflow-wrap:anywhere}
.site-title__tld{color:var(--color-accent)}
.primary-menu{display:flex;align-items:center;gap:.95rem;list-style:none;margin:0;padding:0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.875rem}
.primary-menu > li{display:flex;align-items:center;white-space:nowrap}
.primary-menu > li > a,.submenu-toggle--label{display:inline-flex;align-items:center;min-height:44px;color:var(--color-primary);text-decoration:none;font:inherit;background:none;border:0;padding:0;cursor:pointer}
.submenu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;min-width:18px;min-height:44px;background:none;border:0;padding:0;color:var(--color-primary);cursor:pointer;font:inherit}
.submenu-toggle::after{content:"";width:9px;height:6px;background:currentColor;-webkit-mask:var(--icon-chevron) center/contain no-repeat;mask:var(--icon-chevron) center/contain no-repeat}
.primary-menu > li > a:hover,.primary-menu > li:hover > .submenu-toggle--label,.primary-menu > .current-menu-item > a,.primary-menu > .current-menu-ancestor > a,.primary-menu > .current-menu-ancestor > .submenu-toggle--label,.submenu-toggle[aria-expanded="true"]{box-shadow:inset 0 -3px 0 var(--color-primary)}
/* D15 / R32: the fallback + Setup menus end in "Get a quote" (li.menu-item--quote). It is an ordinary nav item here
   (same face, size and states as Cost / About), never hidden; the ink button on the right stays the one CTA shape. */
.primary-menu > .menu-item--quote > a{color:var(--color-primary)}
.header-cta{white-space:nowrap;min-height:44px;padding:.65rem 1rem .65rem 1.1rem;font-size:.95rem}
.menu-toggle{display:none;width:44px;height:44px;border:2px solid var(--color-primary);border-radius:var(--radius);background:var(--color-page);padding:0;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:4px}
.menu-toggle span{display:block;width:18px;height:2px;background:var(--color-primary)}
@media (min-width:1200px){
  .site-header .site-title{font-size:1rem}
  /* the nav column fills the bar height: each top-level li is as tall as the bar, so the pointer never leaves the li
     on its way down into the drawer (the drawer starts exactly at the bar's bottom edge) */
  .site-header__nav{align-self:stretch}
  .main-nav,.primary-menu{height:100%}
  .primary-menu{align-items:stretch}
  /* the drawer: a full-width paper panel under the bar; its items are ROOMS of one plan (door-swing wall grammar):
     the grid draws the outer top/left walls, each room its right wall and a bottom wall with a doorway + door */
  .primary-menu .sub-menu{--cols:4;display:none;position:absolute;left:0;right:0;top:100%;z-index:var(--z-drawer);margin:0;list-style:none;
    grid-template-columns:repeat(var(--cols),minmax(0,1fr));
    padding:calc(1.4rem + var(--wall)) max(var(--gutter),calc((100% - var(--container)) / 2)) 1.6rem calc(max(var(--gutter),calc((100% - var(--container)) / 2)) + var(--wall));
    border-top:1px solid var(--color-primary);border-bottom:1px solid var(--color-primary);
    background:linear-gradient(var(--color-primary),var(--color-primary)) left calc(-1 * var(--wall)) top calc(-1 * var(--wall)) / calc(100% + var(--wall)) var(--wall) no-repeat content-box border-box,
               linear-gradient(var(--color-primary),var(--color-primary)) left calc(-1 * var(--wall)) top calc(-1 * var(--wall)) / var(--wall) calc(100% + var(--wall)) no-repeat content-box border-box,
               var(--color-page)}
  .primary-menu > li:hover > .sub-menu,.primary-menu > li:focus-within > .sub-menu,.primary-menu > li.is-open > .sub-menu{display:grid}
  .primary-menu .sub-menu > li{display:flex;min-width:0;white-space:normal}
  .primary-menu .sub-menu a{position:relative;display:block;width:100%;min-height:4.4rem;padding:.9rem 3.2rem 1.5rem 1rem;color:var(--color-primary);text-decoration:none;font-size:1rem;line-height:1.2;letter-spacing:-.01em;border-right:var(--wall) solid var(--color-primary);
    background:linear-gradient(var(--color-primary),var(--color-primary)) left bottom/calc(100% - 46px) var(--wall) no-repeat,
               linear-gradient(var(--color-primary),var(--color-primary)) right bottom/14px var(--wall) no-repeat}
  .primary-menu .sub-menu a::before{content:"";position:absolute;right:14px;bottom:0;width:var(--door-drawer);height:var(--door-drawer);border-top:1.25px solid var(--color-accent);border-left:1.25px solid var(--color-accent);border-top-left-radius:var(--door-drawer)}
  .primary-menu .sub-menu a::after{content:"";position:absolute;right:13px;bottom:0;width:2px;height:var(--door-drawer);background:var(--color-primary);transform-origin:50% 100%}
  .primary-menu .sub-menu a:hover,.primary-menu .sub-menu .current-menu-item > a{background-color:var(--color-surface);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
  .primary-menu .sub-menu .current-menu-item > a::after{transform:rotate(-38deg)} /* the current page's door stands open */
  .primary-menu .sub-menu a:focus-visible{outline-offset:-5px}
  /* count-independent: columns by item count (same quantities as the room grids); the last room closes the row */
  .primary-menu .sub-menu:has(> li:nth-child(5):last-child),.primary-menu .sub-menu:has(> li:nth-child(9)),.primary-menu .sub-menu:has(> li:nth-child(13)){--cols:5}
  .primary-menu .sub-menu:has(> li:nth-child(11)):not(:has(> li:nth-child(13))){--cols:4}
  .primary-menu .sub-menu:is(:has(> li:nth-child(3):last-child),:has(> li:nth-child(6):last-child)){--cols:3}
  .primary-menu .sub-menu:has(> li:nth-child(2):last-child){--cols:2}
  .primary-menu .sub-menu:has(> li:only-child){--cols:1}
  .primary-menu .sub-menu > li:last-child:is(:nth-child(7),:nth-child(9),:nth-child(11)){grid-column:span 2}
  .primary-menu .sub-menu:has(> li:nth-child(13)) > li:last-child:nth-child(5n+1){grid-column:span 5}
  .primary-menu .sub-menu:has(> li:nth-child(13)) > li:last-child:nth-child(5n+2){grid-column:span 4}
  .primary-menu .sub-menu:has(> li:nth-child(13)) > li:last-child:nth-child(5n+3){grid-column:span 3}
  .primary-menu .sub-menu:has(> li:nth-child(13)) > li:last-child:nth-child(5n+4){grid-column:span 2}
  /* overflow rule: 7+ top-level items (CSS) or .site-header--stacked (JS guard, when the bar still overflows) = two-row
     bar: wordmark centred + CTA on row 1, the nav alone on row 2; the drawer still hangs from the header's bottom edge */
  :root:has(.site-header .primary-menu > li:nth-child(7)),:root:has(.site-header--stacked){--header-h:124px}
  .site-header__inner:has(.primary-menu > li:nth-child(7)),.site-header--stacked .site-header__inner{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);grid-template-rows:76px 48px;grid-template-areas:". brand actions" "nav nav nav"}
}
@media (min-width:1200px) and (max-width:1279px){
  .site-header .site-title{font-size:.94rem} .site-title__mark{width:28px;height:28px} .primary-menu{gap:.72rem;font-size:.84rem} .site-header__inner{column-gap:1.1rem}
}
/* mobile / tablet panel (< 1200) */
@media (max-width:1199px){
  :root{--header-h:64px}
  .site-header__inner{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"brand actions";column-gap:.75rem}
  .site-header__nav{display:contents}
  .menu-toggle{display:inline-flex}
  .menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
  .menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .main-nav{display:none}
  .main-nav.is-open{display:block;position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:var(--z-panel);overflow-y:auto;background:var(--color-page);border-top:var(--wall) solid var(--color-primary);padding:.5rem var(--gutter) 2rem}
  .primary-menu{flex-direction:column;align-items:stretch;gap:0;font-size:1.06rem}
  .primary-menu > li{flex-wrap:wrap;white-space:normal;border-bottom:1px solid var(--color-rule)}
  .primary-menu > li > a,.submenu-toggle--label{flex:1 1 auto;min-height:52px;text-align:left}
  .submenu-toggle{width:44px;height:52px;flex:none}
  .submenu-toggle.submenu-toggle--label{flex:1 1 auto;width:auto;justify-content:space-between;padding-right:15px}
  .submenu-toggle::after{width:14px;height:14px;-webkit-mask:none;mask:none;background:linear-gradient(currentColor,currentColor) center/14px 2px no-repeat,linear-gradient(currentColor,currentColor) center/2px 14px no-repeat}
  .submenu-toggle[aria-expanded="true"]::after{background:linear-gradient(currentColor,currentColor) center/14px 2px no-repeat}
  .submenu-toggle[aria-expanded="true"]{box-shadow:none}
  .primary-menu > li.is-open{box-shadow:inset 0 -3px 0 var(--color-primary)}
  .primary-menu .sub-menu{display:none;flex-basis:100%;list-style:none;margin:0 0 .75rem;padding:0 0 0 1rem;font-family:var(--font);font-weight:400}
  .primary-menu > li.is-open > .sub-menu{display:block}
  .primary-menu .sub-menu a{display:flex;align-items:center;min-height:44px;color:var(--color-text);text-decoration:none;font-size:1rem}
  .primary-menu .sub-menu .current-menu-item > a{font-weight:var(--fw-bold);text-decoration:underline}
}
@media (max-width:479px){
  .site-title{font-size:.9rem}
  .site-title__mark{width:26px;height:26px}
  .header-actions{gap:.5rem}
  .header-cta{padding:.6rem .65rem;font-size:.88rem}
  .header-cta::after{display:none}
}
@media (max-width:359px){
  .site-title__mark{display:none}
  .site-title{font-size:.85rem}
  .header-cta{font-size:.82rem;padding:.55rem}
}

/* ===== 5. BREADCRUMBS ===== */
.breadcrumbs{margin:0 0 1.1rem;font-size:.85rem;color:var(--color-muted)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0}
.breadcrumbs li{display:inline-flex;align-items:center}
.breadcrumbs li + li::before{content:"›";margin:0 .55rem;color:var(--color-accent)}
.breadcrumbs a{display:inline-flex;align-items:center;min-height:32px;color:var(--color-muted)}
.breadcrumbs [aria-current]{color:var(--color-text)}

/* ===== 6. HERO: branch-plan (H1 = declared LCP; the drawing follows it in source) ===== */
.hero{padding:3rem 0 0;background:var(--color-page)}
.hero__inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:2rem;align-items:start}
.hero__inner > *{grid-column:1 / -1}
.hero__title{margin:0 0 1.75rem}
.hero--front .hero__title{font-size:var(--text-4xl);line-height:var(--lh-display);letter-spacing:var(--track-display)}
.hero__deck{display:contents}
.hero__deck > p{grid-column:1 / span 7;font-size:1.2rem;line-height:1.55;color:var(--color-text);max-width:36rem;margin:0 0 1.5rem}
.hero__deck > p:only-child{grid-column:1 / span 8;max-width:40rem}
.hero__deck > p + p{grid-column:9 / span 4;grid-row-end:span 3;margin:.3rem 0 0;padding-top:1rem;border-top:var(--wall) solid var(--color-primary);font-size:.97rem;line-height:1.6;color:var(--color-muted);max-width:none}
.hero__deck > p.glu-caution + p,.hero__deck > p + p.glu-caution{border-top:0;padding:1rem 1.1rem;color:var(--color-text)}
.hero__ctas{grid-column:1 / span 7}
.hero__ctas .wp-block-buttons,.hero__ctas .glu-cta--intro{margin:0}
.hero__note{grid-column:1 / span 7;margin:.8rem 0 0;font-size:var(--text-sm);color:var(--color-muted)}
/* the full plan (home + appliance pages, >= 1200 only) */
.plan,.entry-strip{margin:0}
.hero__figure{grid-column:1 / -1;margin-top:2.5rem}
.plan__art{display:block;width:100%;height:auto}
.plan-legend{display:flex;flex-wrap:wrap;gap:.45rem 2rem;margin:.9rem 0 0;padding:.8rem 0 0;border-top:1px solid var(--color-rule);font-size:.84rem;line-height:1.45;color:var(--color-text)}
.plan-legend__key{display:inline-flex;align-items:center;gap:.55rem}
.plan-legend__key svg{flex:none;width:42px;height:12px}
.plan-legend__note{flex-basis:100%;color:var(--color-muted);font-size:.8rem}
.p-pave{fill:var(--color-surface-2)}
.p-house{fill:var(--color-page)}
.p-wall{fill:none;stroke:var(--color-primary);stroke-width:6}
.p-iwall{fill:none;stroke:var(--color-primary);stroke-width:3}
.p-leaf{fill:none;stroke:var(--color-primary);stroke-width:2}
.p-swing{fill:none;stroke:var(--color-accent);stroke-width:1.25}
.p-fix{fill:var(--color-page);stroke:var(--color-primary);stroke-width:2}
.p-thin{fill:none;stroke:var(--color-primary);stroke-width:1.25}
.p-room{font-family:var(--font-display);font-weight:var(--wd);font-size:12px;letter-spacing:.1em;fill:var(--color-muted)}
.p-small{font-family:var(--font);font-size:12px;fill:var(--color-muted)}
.p-gas-case{fill:none;stroke:var(--color-primary);stroke-width:8;stroke-linejoin:round}
.p-gas{fill:none;stroke:var(--apwa-gas);stroke-width:4;stroke-linejoin:round}
.p-new-case{fill:none;stroke:var(--color-primary);stroke-width:9;stroke-linejoin:round}
.p-new-core{fill:none;stroke:var(--color-accent);stroke-width:6;stroke-linejoin:round}
.p-new{fill:none;stroke:var(--apwa-proposed);stroke-width:6;stroke-dasharray:16 6}
.p-util{fill:none;stroke:var(--color-primary);stroke-width:2;stroke-dasharray:6 5}
.p-stub{stroke-linecap:round} /* a stub closes in a rounded end: no perpendicular cap bar anywhere */
.p-focus{fill:none;stroke:var(--color-primary);stroke-width:18;stroke-linejoin:round} /* focus = a heavy ink outline under the page's own line (drawn first); colour never changes */
.p-tag{cursor:pointer;text-decoration:none}
.p-tag text{text-decoration:none}
.p-tag rect{fill:var(--color-page);stroke:var(--color-primary);stroke-width:1.5}
.p-tag text{font-family:var(--font-display);font-weight:var(--wd);font-size:14px;fill:var(--color-primary)}
.p-tag:hover rect,.p-tag.is-focus rect{fill:var(--color-primary)}
.p-tag:hover text,.p-tag.is-focus text{fill:var(--color-on-dark)}
/* the entry strip (city pages always; home + appliance pages below 1200) */
.entry-strip{display:grid;grid-template-columns:minmax(0,1fr)}
.entry-strip__labels{display:grid;grid-template-columns:var(--strip-split,30.2%) 1fr;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent);line-height:1.3;margin:0 0 .35rem}
.entry-strip__labels span + span{padding-left:.75rem}
.entry-strip__art{background:var(--color-surface);padding:.9rem 0 .6rem}
.entry-strip__art svg{width:100%;height:auto}
.entry-strip__art .entry-strip__wide{display:block}
.entry-strip__art .entry-strip__narrow{display:none;max-width:30rem;margin:0 auto}
.entry-strip .p-small{font-size:16px}
.entry-strip__narrow .p-small{font-size:12px}
.entry-strip .plan-legend{grid-column:1 / -1}
.entry-strip__fact{padding:1rem 1.25rem;border-top:var(--wall) solid var(--color-primary);background:var(--color-page)}
.entry-strip__fact .kicker{margin:0 0 .35rem}
.entry-strip__figure{display:block;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.9rem;line-height:1.05;letter-spacing:-.015em;color:var(--color-primary);font-variant-numeric:tabular-nums;margin:0}
.entry-strip__caption{display:block;font-size:.92rem;color:var(--color-text);margin:.2rem 0 .5rem}
.entry-strip__source{display:block;font-size:.78rem;line-height:1.45;color:var(--color-muted)}
.hero--front .entry-strip,.hero--industry .entry-strip{display:none}
@media (min-width:1024px){
  .entry-strip--fact{grid-template-columns:minmax(0,1fr) 18.75rem;column-gap:2rem;align-items:end}
  .entry-strip--fact .entry-strip__fact{border-top:0;border-left:var(--wall) solid var(--color-primary);padding:.25rem 0 .6rem 1.25rem}
}
@media (max-width:1199px){
  .hero--front .plan,.hero--industry .plan{display:none}
  .hero--front .entry-strip,.hero--industry .entry-strip{display:grid}
}
@media (max-width:1023px){
  .entry-strip--fact{--strip-split:35%}
  .entry-strip--fact .entry-strip__art .entry-strip__wide{display:none}
  .entry-strip--fact .entry-strip__art .entry-strip__narrow{display:block}
}
@media (max-width:767px){
  .entry-strip{--strip-split:35%}
  .entry-strip__art .entry-strip__wide{display:none}
  .entry-strip__art .entry-strip__narrow{display:block}
}

/* ===== 7. SECTION RHYTHM: capped-run (one cased pipe per H2 that closes in a rounded end; no per-index state) ===== */
.section{padding:var(--space-20) 0}
.section--tight{padding-top:var(--space-8)}
.prose-content > h2,.glu-faq > h2,.related__title,.home-picker__title,.glu-prep__title{position:relative;padding-right:max(0px,calc(100% - var(--head-col)))}
.prose-content > h2::after,.glu-faq > h2::after,.related__title::after,.home-picker__title::after,.glu-prep__title::after{
  content:"";position:absolute;left:calc(min(100%,var(--head-col)) + var(--run-gap));right:0;bottom:calc(.12em + 7px);height:8px;
  border:var(--wall) solid var(--color-primary);border-left:0;border-radius:0 4px 4px 0} /* two ink walls around a 4px paper core; the casing closes on itself at the right (no bar) */
.prose-content{max-width:none}
.prose-content > *{max-width:var(--width-content)}
.prose-content > h2{max-width:none;margin:4.25rem 0 1.25rem;scroll-margin-top:calc(var(--header-h) + 1rem)}
.prose-content > h2:first-child{margin-top:0}
.prose-content h3{margin:2.2rem 0 .6rem}
.prose-content h3 a{text-decoration-thickness:2px;text-underline-offset:.18em}
.prose-content a:not(.wp-block-button__link):hover{text-decoration-thickness:2px}
.prose-content ul{list-style:none;padding:0;margin:0 0 1.4em}
.prose-content ul > li{position:relative;padding-left:1.9rem;margin:.45em 0}
.prose-content ul > li::before{content:"";position:absolute;left:0;top:.62em;width:16px;height:7px;border:1.5px solid var(--color-primary);border-left:0;border-radius:0 3.5px 3.5px 0}
.prose-content ol{padding-left:1.6rem;margin:0 0 1.4em}
.prose-content ol > li{margin:.45em 0;padding-left:.3rem}
.prose-content ol > li::marker{font-family:var(--font-display);font-weight:var(--wd);font-variant-numeric:tabular-nums;color:var(--color-primary)}
.prose-content strong{color:var(--color-primary)}
.prose-content ul.glu-checklist{columns:2;column-gap:2.5rem;max-width:48rem}
.prose-content ul.glu-checklist > li{break-inside:avoid;padding-left:1.8rem}
.prose-content ul.glu-checklist > li::before{top:.42em;width:14px;height:11px;border:0;border-radius:0;background:var(--color-primary);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.glu-caution,.prose-content > .has-tertiary-background-color,.has-tertiary-background-color{background-color:var(--color-tertiary)}
.glu-caution{border-left:6px solid var(--color-primary);padding:1rem 1.1rem;color:var(--color-text)}
.prose-content > .has-tertiary-background-color{border-left:6px solid var(--color-primary);margin:0 0 1.5rem}
.prose-content > .has-tertiary-background-color h2{font-size:var(--text-xl);letter-spacing:var(--track-h3);margin:0 0 .5rem}
.prose-content > .has-tertiary-background-color > :last-child{margin-bottom:0}
.prose-content ul.glu-linklist{columns:2;column-gap:2.5rem}
.page-body{display:block}
@media (min-width:1280px){
  .page-body--aside{display:grid;grid-template-columns:minmax(0,1fr) var(--aside-w);column-gap:2.5rem;align-items:start}
}
.body-aside{display:none}
@media (min-width:1280px){
  .body-aside{display:block;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
}
.body-aside__room{position:relative;padding:1.4rem 1.4rem 4rem;border:var(--wall) solid var(--color-primary);border-bottom:0;
  background:linear-gradient(var(--color-primary),var(--color-primary)) left bottom/calc(100% - 64px) var(--wall) no-repeat,
             linear-gradient(var(--color-primary),var(--color-primary)) right bottom/18px var(--wall) no-repeat}
.body-aside__room::before{content:"";position:absolute;right:16px;bottom:0;width:var(--door);height:var(--door);border-top:1.25px solid var(--color-accent);border-left:1.25px solid var(--color-accent);border-top-left-radius:var(--door)}
.body-aside__room::after{content:"";position:absolute;right:15px;bottom:0;width:2px;height:var(--door);background:var(--color-primary)}
.body-aside__title{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.35rem;line-height:1.15;letter-spacing:-.012em;color:var(--color-primary);margin:0 0 .55rem}
.body-aside__text{font-size:.95rem;color:var(--color-muted);margin:0 0 1.1rem}
.body-aside .btn{width:100%;justify-content:space-between}
@media (max-width:1023px){
  .prose-content > h2,.glu-faq > h2,.related__title,.home-picker__title,.glu-prep__title{padding-right:0;padding-bottom:34px}
  .prose-content > h2::after,.glu-faq > h2::after,.related__title::after,.home-picker__title::after,.glu-prep__title::after{left:0;bottom:7px}
}

/* ===== 8. CARDS: door-swing rooms (shared 2px walls; doorway + door in the bottom wall) ===== */
.home-picker__list,.related__list,.members-grid{--cols:2;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));list-style:none;margin:0;padding:0;border-top:var(--wall) solid var(--color-primary);border-left:var(--wall) solid var(--color-primary)}
.home-picker__list > li,.related__list > li,.members-grid > li,.related__item,.home-picker__item{display:flex;min-width:0}
/* < 1024: two columns; an odd last room spans the row so the plan always closes */
.home-picker__list > li:last-child:nth-child(odd),.related__list > li:last-child:nth-child(odd),.members-grid > li:last-child:nth-child(odd){grid-column:1 / -1}
@media (max-width:599px){
  :is(.related--cards .related__list,.members-grid){--cols:1}
  :is(.related--cards .related__list,.members-grid) > li:last-child:nth-child(odd){grid-column:auto}
}
/* >= 1024: column count by item count (quantity queries); the last room spans whatever the row leaves */
@media (min-width:1024px){
  .home-picker__list > li:last-child:nth-child(odd),.related__list > li:last-child:nth-child(odd),.members-grid > li:last-child:nth-child(odd){grid-column:auto}
  :is(.home-picker__list,.related--chips .related__list){--cols:4}
  :is(.home-picker__list,.related--chips .related__list):has(> li:nth-child(9)){--cols:5}
  :is(.home-picker__list,.related--chips .related__list):has(> li:nth-child(11)){--cols:4}
  :is(.home-picker__list,.related--chips .related__list):has(> li:nth-child(5):last-child){--cols:5}
  :is(.home-picker__list,.related--chips .related__list):is(:has(> li:nth-child(3):last-child),:has(> li:nth-child(6):last-child)){--cols:3}
  :is(.home-picker__list,.related--chips .related__list):has(> li:nth-child(2):last-child){--cols:2}
  :is(.home-picker__list,.related--chips .related__list):has(> li:only-child){--cols:1}
  :is(.home-picker__list,.related--chips .related__list) > li:last-child:is(:nth-child(7),:nth-child(9),:nth-child(11)){grid-column:span 2}
  :is(.related--cards .related__list,.members-grid){--cols:3}
  :is(.related--cards .related__list,.members-grid):has(> li:nth-child(4):last-child){--cols:4}
  :is(.related--cards .related__list,.members-grid):has(> li:nth-child(2):last-child){--cols:2}
  :is(.related--cards .related__list,.members-grid):has(> li:only-child){--cols:1}
  :is(.related--cards .related__list,.members-grid) > li:last-child:nth-child(3n+2):not(:nth-child(2)){grid-column:span 2}
  :is(.related--cards .related__list,.members-grid) > li:last-child:nth-child(3n+1):not(:nth-child(1)):not(:nth-child(4)){grid-column:span 3}
}
.card{position:relative;display:flex;flex-direction:column;width:100%;min-height:9.5rem;padding:1.2rem 1.25rem 3.4rem;color:var(--color-text);text-decoration:none;border-right:var(--wall) solid var(--color-primary);
  background:linear-gradient(var(--color-primary),var(--color-primary)) left bottom/calc(100% - 64px) var(--wall) no-repeat,
             linear-gradient(var(--color-primary),var(--color-primary)) right bottom/18px var(--wall) no-repeat}
.card::before{content:"";position:absolute;right:18px;bottom:0;width:var(--door);height:var(--door);border-top:1.25px solid var(--color-accent);border-left:1.25px solid var(--color-accent);border-top-left-radius:var(--door)}
.card::after{content:"";position:absolute;right:17px;bottom:0;width:2px;height:var(--door);background:var(--color-primary);transform-origin:50% 100%}
.card__kind{display:block;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent);margin:0 0 .45rem;line-height:1.3}
.card__title{display:block;margin:0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.18rem;line-height:1.18;letter-spacing:-.012em;color:var(--color-primary)}
.card__title a{color:inherit;text-decoration:none}
.card__title a::after{content:"";position:absolute;inset:0;z-index:1}
.card__excerpt{margin:.6rem 0 0;font-size:.92rem;line-height:1.5;color:var(--color-muted)}
.card:hover{background-color:var(--color-surface)}
.card:hover .card__title,.card:hover .card__title a{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
.card:has(a:focus-visible),a.card:focus-visible{outline:3px solid var(--color-focus);outline-offset:3px;z-index:2}
.card .card__title a:focus-visible{outline:0}
.card--compact{min-height:7rem;padding-bottom:2.9rem;
  background:linear-gradient(var(--color-primary),var(--color-primary)) left bottom/calc(100% - 56px) var(--wall) no-repeat,
             linear-gradient(var(--color-primary),var(--color-primary)) right bottom/18px var(--wall) no-repeat}
.card--compact::before{width:var(--door-compact);height:var(--door-compact);border-top-left-radius:var(--door-compact)}
.card--compact::after{height:var(--door-compact)}
.card--compact .card__title{font-size:1.06rem}
.home-picker__group{margin-top:2.25rem}
.home-picker__group-title{font-size:1.05rem;letter-spacing:0;margin:0 0 .8rem}
.home-picker__intro{max-width:var(--width-content);color:var(--color-muted);margin:-.2rem 0 0}
.related + .related{padding-top:0}
.related__title{margin:0 0 1.5rem}
@media (max-width:599px){
  .card--compact{min-height:6.25rem;padding:1rem .95rem 2.7rem}
  .card--compact .card__title{font-size:1rem}
}

/* ===== 9. PREP PANEL + NOTES ===== */
.glu-prep > .container{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2.5rem;row-gap:2rem}
.glu-prep__title{grid-column:1 / -1;margin:0}
.glu-note{border-top:var(--wall) solid var(--color-primary);padding-top:1rem;font-size:.98rem;line-height:1.6}
.glu-note > :last-child{margin-bottom:0}
.glu-note strong:first-child{display:block;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.15rem;line-height:1.2;letter-spacing:-.008em;color:var(--color-primary);margin:0 0 .4rem}
.glu-note--co_note{border-top:0;border-left:6px solid var(--color-primary);background:var(--color-tertiary);padding:1rem 1.15rem}
p.glu-note--nonaffiliation{grid-column:1 / -1;border-top:1px solid var(--color-rule);padding-top:.8rem;font-size:.84rem;color:var(--color-muted)}
@media (max-width:767px){.glu-prep > .container{grid-template-columns:minmax(0,1fr)}}

/* ===== 10. QUOTE SECTION #gas-line-quote (R12: the ONE film band; pipe-tracery in its margins only) + THE FORM ===== */
.quote-section{padding:var(--space-20) 0;background-color:var(--color-surface);background-image:var(--tracery)}
.quote-section__inner{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);column-gap:calc(100% / 12 + 2rem);align-items:start}
.quote-section__head{position:sticky;top:calc(var(--header-h) + 1.5rem);background:var(--color-surface);box-shadow:0 0 0 1.5rem var(--color-surface)}
.quote-section__title{margin:0 0 1.3rem}
.quote-section__steps{list-style:none;margin:0;padding:0;font-size:.97rem}
.quote-section__steps li{position:relative;padding:.8rem 0 .8rem 1.9rem;border-top:1px solid var(--color-rule)}
.quote-section__steps li:last-child{border-bottom:1px solid var(--color-rule)}
.quote-section__steps li::before{content:"";position:absolute;left:0;top:1.3rem;width:16px;height:7px;border:1.5px solid var(--color-primary);border-left:0;border-radius:0 3.5px 3.5px 0}
.quote-form.gas-quote{background:var(--color-page);border:var(--wall) solid var(--color-primary);padding:1.6rem 1.6rem 1.4rem;min-width:0}
/* standalone [glu_quote_form] (show_head="1"): H2 + two .gq-sub lines; the steps row then drops its own required note */
.gq-title{margin:0 0 .6rem;font-size:var(--text-2xl)}
.gq-sub{margin:0 0 .3rem;font-size:.92rem;color:var(--color-muted)}
.gq-sub + .gq-safety-line{margin-top:1.2rem}
.gq-title ~ .gq-body .gq-steps__count{display:none}
/* S1 + utility_fallback (glu_render_safety_block('short') inside div.gq-safety-line) */
.gq-safety-line{margin:0 0 1.5rem;background:var(--color-tertiary);border-left:6px solid var(--color-primary);padding:.8rem 1rem;font-size:.93rem}
.gq-safety-line p{margin:0}
.gq-safety-line strong{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.gq-safety-line a,.glu-safety__tel{font-weight:var(--fw-bold);color:var(--color-primary);white-space:nowrap;font-variant-numeric:tabular-nums;text-decoration-thickness:2px}
p.glu-safety--fallback{margin:.45rem 0 0;font-size:.86rem;line-height:1.5;color:var(--color-muted)} /* muted on tertiary 5.95, on paper 7.64 */
.gq-safety-line--prominent{padding:1rem 1.1rem;font-size:1rem}
.gq-safety-line--prominent .glu-safety--short strong{display:block;font-size:1.25rem;line-height:1.2;letter-spacing:-.01em;margin:0 0 .25rem}
/* prominent pages: the static S2 "Do this now" callout (never hidden, never inert); it joins the S1 panel above it */
.gq-callout{margin:0 0 1.5rem;background:var(--color-tertiary);border-left:6px solid var(--color-primary);padding:.9rem 1.1rem 1rem;font-size:.95rem}
.gq-safety-line + .gq-callout{margin-top:-1.5rem;border-top:1px solid var(--color-muted)}
.gq-callout ol{margin:0;padding-left:1.4rem}
.gq-callout li{margin:.3rem 0}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend,.gq-label,.gq-field > label{display:block;padding:0;margin:0 0 .4rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.02rem;line-height:1.3;letter-spacing:var(--track-btn);color:var(--color-primary)}
.gq-check{margin:0 0 1.4rem}
.gq-check legend{font-size:1.3rem;line-height:1.2;letter-spacing:-.012em}
.gq-check__note{font-size:.92rem;color:var(--color-muted);margin:0 0 .8rem}
.gq-check--prominent .gq-check__note{font-weight:var(--fw-bold);color:var(--color-text)}
.gq-req{color:var(--color-primary)}
.gq-opt{font-family:var(--font);font-weight:400;font-size:.86rem;color:var(--color-muted);letter-spacing:0}
.gq-chip{position:relative;display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.55rem .8rem;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-page);color:var(--color-text);font-size:.92rem;line-height:1.3;cursor:pointer}
.gq-chip input{position:absolute;opacity:0;width:1px;height:1px;margin:0}
.gq-chip:has(input:checked),.gq-chip.is-selected{background:var(--color-primary);color:var(--color-on-dark)}
.gq-chip:has(input:checked)::before,.gq-chip.is-selected::before{content:"";flex:none;width:12px;height:10px;background:currentColor;-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.gq-chip:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:3px}
.gq-chip--choice{display:flex;width:100%;align-items:flex-start;gap:.85rem;padding:.85rem 1rem;margin:0 0 .6rem;border-width:var(--wall);font-size:.98rem}
.gq-chip--choice::before{display:none!important}
.gq-chip--choice input{position:static;opacity:1;width:20px;height:20px;flex:none;margin:.1rem 0 0;appearance:none;border:2px solid var(--color-primary);border-radius:50%;background:var(--color-page)}
.gq-chip--choice input:checked{border-color:var(--color-on-dark);background:var(--color-on-dark);box-shadow:inset 0 0 0 4px var(--color-primary)}
.gq-chip--choice b{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none}
.gq-chips{display:flex;flex-wrap:wrap;gap:.5rem}
.gq-steps{display:flex;flex-wrap:wrap;align-items:flex-end;list-style:none;margin:0 -1.6rem 1.5rem;padding:0 1.6rem;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.9rem}
.gq-steps__item{padding:.95rem 1.1rem .8rem 0;margin-right:1.1rem;color:var(--color-accent)}
.gq-steps__item.is-active{color:var(--color-primary);box-shadow:inset 0 -4px 0 var(--color-primary)}
.gq-steps__item.is-done{color:var(--color-primary);cursor:pointer;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.25em}
.gq-steps__count{margin-left:auto;padding:.95rem 0 .8rem;font-family:var(--font);font-weight:400;font-size:.84rem;color:var(--color-muted)}
/* steps: stacked fieldsets without JS (each legend is a visible step heading); one step at a time once enhanced */
.gq-step{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:1.25rem}
.gq-step + .gq-step{margin-top:2rem}
.gq-step > legend{width:100%;margin:0 0 1rem;padding-top:1rem;border-top:var(--wall) solid var(--color-primary);font-size:1.15rem}
.gas-quote.is-enhanced .gq-step{display:none;margin-top:0}
.gas-quote.is-enhanced .gq-step.is-active{display:grid}
.gas-quote.is-enhanced .gq-step > legend{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} /* the steps row names the step */
.gq-field{min-width:0}
.gq-field--full{grid-column:1 / -1}
.gq-step > .gq-hint{margin:0}
.gq-field input[type=text],.gq-field input[type=email],.gq-field input[type=tel],.gq-field select,.gq-field textarea{width:100%;min-height:48px;padding:.7rem .8rem;font:inherit;font-size:1rem;color:var(--color-text);background:var(--color-page);border:1.5px solid var(--color-field);border-radius:var(--radius-sm)}
.gq-field textarea{min-height:7.5rem;resize:vertical}
.gq-field select{appearance:none;padding-right:2.4rem;background:var(--color-page) var(--icon-chevron) right .9rem center/10px 7px no-repeat}
.gq-field input:focus-visible,.gq-field select:focus-visible,.gq-field textarea:focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-color:var(--color-primary)}
.gq-hint,.gq-zip-note{margin:.4rem 0 0;font-size:.84rem;color:var(--color-muted)}
.gq-zip-note:empty{display:none}
fieldset.gq-field > .gq-hint{margin:0 0 .6rem}
fieldset.gq-field:has(> .gq-field){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:1rem;row-gap:.4rem}
fieldset.gq-field:has(> .gq-field) > :not(.gq-field){grid-column:1 / -1}
.gq-field:has([aria-invalid="true"]){border-left:6px solid var(--color-primary);padding-left:.8rem}
.gq-field [aria-invalid="true"]{border:3px solid var(--color-primary)!important}
.gq-error{display:block;margin:.45rem 0 0;font-size:.9rem;font-weight:var(--fw-bold);color:var(--color-error)}
.gq-error__tag{display:inline-block;margin-right:.45rem;padding:.1rem .45rem;background:var(--color-primary);color:var(--color-on-dark);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;border-radius:2px;vertical-align:.1em}
.gq-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 1rem;margin:.4rem -1.6rem 0;padding:1.1rem 1.6rem 0;border-top:1px solid var(--color-rule)}
.gq-nav__hint{font-size:.86rem;color:var(--color-muted)}
.gq-nav [data-next],.gq-submit{margin-left:auto}
.gq-811{margin-top:.7rem;background:var(--color-tertiary);border-left:6px solid var(--color-primary);padding:.9rem 1rem;font-size:.9rem;line-height:1.55}
.gq-811 strong{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.gq-sms > label{display:flex;align-items:flex-start;gap:.7rem;margin:0;font-family:var(--font);font-weight:400;font-size:.88rem;line-height:1.5;letter-spacing:0;color:var(--color-text)}
.gq-sms input[type=checkbox]{flex:none;width:20px;height:20px;margin:.1rem 0 0;accent-color:var(--color-primary)}
.gq-consent,.gq-privacy,.gq-partial-note{margin:0;font-size:.86rem;line-height:1.55;color:var(--color-muted)}
.gq-notice{margin:1.3rem 0 0;padding-top:1rem;border-top:1px solid var(--color-rule);font-size:.84rem;line-height:1.55;color:var(--color-muted)}
.gq-feedback:empty{display:none}
.gq-feedback{margin:1rem 0 0;padding:.9rem 1rem;font-size:.95rem}
.gq-feedback.is-error{background:var(--color-primary);color:var(--color-on-dark);font-weight:var(--fw-bold)}
.gq-feedback.is-success{background:var(--color-success-bg);border-left:6px solid var(--color-primary);color:var(--color-text)}
.gq-feedback.is-success::before{content:"";display:inline-block;width:14px;height:11px;margin-right:.5rem;background:var(--color-primary);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.gq-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}
.gq-photo{display:flex;flex-direction:column;justify-content:center;gap:.5rem;min-height:64px;padding:.7rem .8rem;border:1.5px dashed var(--color-field);border-radius:var(--radius-sm);font-size:.9rem;line-height:1.35;cursor:pointer}
.gq-photo input[type=file]{max-width:100%;font-size:.8rem;color:var(--color-muted)}
.gq-photo input[type=file]::file-selector-button{margin-right:.6rem;padding:.4rem .7rem;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);background:var(--color-page);color:var(--color-primary);font-family:var(--font-display);font-weight:var(--wd);font-size:.82rem;cursor:pointer}
.gq-photo:has(input:focus-visible){outline:3px solid var(--color-focus);outline-offset:3px}
.gq-progress{display:block;width:100%;height:8px;margin:1rem 0 0;accent-color:var(--color-primary)}
.gq-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.gq-submit .spinner{display:none;width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%}
.quote-form.is-loading .gq-submit{cursor:progress}
.quote-form.is-loading .gq-submit::after{display:none}
.quote-form.is-loading .gq-submit .spinner{display:inline-block}
/* the Yes state: S2 (form context) under an ink title bar, in a framed tertiary panel */
.gq-safety{margin:0 0 1.4rem;border:var(--wall) solid var(--color-primary);background:var(--color-tertiary);font-size:.94rem;line-height:1.55}
.gq-safety > *{margin-left:1.1rem;margin-right:1.1rem}
.gq-safety > .gq-safety__title{margin:0 0 1rem}
.gq-safety > :last-child{margin-bottom:1.1rem}
.gq-safety p{margin-top:0;margin-bottom:.6rem}
.gq-safety ul,.gq-safety ol{margin-top:0;margin-bottom:.9rem;padding-left:1.2rem}
.gq-safety li{margin:.25rem 0}
.gq-safety .glu-safety__source{display:block;margin-bottom:.8rem}
.gq-safety > .glu-safety__steps-title{margin-top:1.1rem}
.gq-safety__title{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.2rem;line-height:1.25;color:var(--color-on-dark);background:var(--color-primary);padding:.9rem 1.1rem}
.gq-safety > .gq-safety__title{margin-left:0;margin-right:0}
/* functional CSS, VERBATIM from research/06 §4.3 (the server adds .is-shown on ?glu_quote=safety) */
.gq-safety{display:block}
@supports selector(:has(a)){
  .gas-quote .gq-safety{display:none}
  .gas-quote:has([name="proj_emergency"][value="yes"]:checked) .gq-safety{display:block}
  .gas-quote:has([name="proj_emergency"][value="yes"]:checked) .gq-body{display:none}
}
.gas-quote.is-enhanced .gq-safety[hidden]{display:none}
.gq-safety.is-shown{display:block}
/* end functional CSS */
.form-fallback{background:var(--color-tertiary);border-left:6px solid var(--color-primary);padding:1rem 1.15rem}
@media (max-width:1023px){
  .quote-section__inner{grid-template-columns:minmax(0,1fr)}
  .quote-section__head{position:static;box-shadow:none;margin-bottom:2rem}
}
@media (max-width:767px){
  .quote-form.gas-quote{padding:1.2rem 1rem 1.1rem}
  .gq-steps{margin:0 -1rem 1.3rem;padding:0 1rem}
  .gq-steps__count{display:none}
  .gq-steps__item{margin-right:.9rem;padding-right:0}
  .gq-nav{margin:.4rem -1rem 0;padding:1rem 1rem 0}
  .gq-step,fieldset.gq-field:has(> .gq-field){grid-template-columns:minmax(0,1fr)}
  .gq-nav [data-next],.gq-submit{width:100%;justify-content:space-between;margin-left:0}
  .gq-photos{grid-template-columns:minmax(0,1fr)}
  .gq-safety > *{margin-left:.9rem;margin-right:.9rem}
}

/* ===== 11. SAFETY BLOCKS (safety text, never CTA-styled) ===== */
.glu-safety--long{border:var(--wall) solid var(--color-primary);background:var(--color-tertiary)}
.glu-safety__title{display:flex;align-items:center;gap:.9rem;margin:0;padding:1rem 1.5rem;background:var(--color-primary);color:var(--color-on-dark);font-size:1.6rem;letter-spacing:-.015em}
.glu-safety__title::before{content:"";flex:none;width:26px;height:26px;background:var(--color-on-dark);-webkit-mask:var(--icon-alert) center/contain no-repeat;mask:var(--icon-alert) center/contain no-repeat}
.glu-safety__grid{display:grid;grid-template-columns:1.1fr 1.25fr 1fr}
.glu-safety__col{padding:1.3rem 1.5rem;border-right:1px solid var(--color-rule);font-size:.94rem}
.glu-safety__col:last-child{border-right:0}
.glu-safety__col p{margin:0 0 .6rem}
.glu-safety__col ul,.glu-safety__col ol{margin:0;padding-left:1.15rem}
.glu-safety__col li{margin:.3rem 0}
/* the sub-heads come from the registry fragments themselves: p.glu-safety__steps-title > strong ("Do this now" in safety_steps, "Don't") */
.glu-safety__steps-title{margin-top:0;margin-bottom:.55rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.08rem;line-height:1.25;color:var(--color-primary)}
.glu-safety__steps-title strong{font-weight:inherit}
.glu-safety__steps-title + ol > li::marker{font-family:var(--font-display);font-weight:var(--wd);color:var(--color-primary)}
.glu-safety__calls{display:flex;flex-wrap:wrap;gap:.8rem 2.2rem;margin:1.1rem 0 .1rem}
.glu-safety__call{display:flex;flex-direction:column;margin:0}
.glu-safety__tel--big{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.9rem;line-height:1.15;letter-spacing:-.01em;text-underline-offset:.16em}
.glu-safety__call span{font-size:.84rem;color:var(--color-muted)}
.glu-safety__foot{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;padding:1rem 1.5rem 1.1rem;border-top:1px solid var(--color-rule);font-size:.88rem}
.glu-safety__foot p{margin:0}
.glu-safety__source{display:block;font-size:.8rem;color:var(--color-muted)}
p.glu-safety--short{margin:0;font-size:.95rem}
.empty-state .glu-safety--short{padding:.8rem 1rem;background:var(--color-tertiary);border-left:6px solid var(--color-primary)}
.empty-state .glu-safety--fallback{padding:0 1rem 0 calc(1rem + 6px)}
@media (max-width:1023px){
  .glu-safety__grid{grid-template-columns:minmax(0,1fr)}
  .glu-safety__col{border-right:0;border-bottom:1px solid var(--color-rule)}
  .glu-safety__col--do{order:-1}
  .glu-safety__foot{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:767px){
  .glu-safety__title{font-size:1.3rem;padding:.9rem 1rem}
  .glu-safety__col,.glu-safety__foot{padding-left:1rem;padding-right:1rem}
}

/* ===== 12. FAQ (owner prose, 5/7 rows between hairlines; no accordion by default) ===== */
.prose-content > .glu-faq{max-width:none;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.glu-faq > h2{grid-column:1 / -1;margin:0 0 1.5rem}
.glu-faq__q{grid-column:1;margin:0!important;padding:1.4rem 2rem 1.4rem 0;border-top:1px solid var(--color-rule);font-size:1.25rem}
.glu-faq__a{grid-column:2;margin:0;padding:1.4rem 0;border-top:1px solid var(--color-rule);max-width:none}
.glu-faq__item{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);border-top:1px solid var(--color-rule)}
.glu-faq__item summary{grid-column:1;list-style:none;cursor:pointer;padding:1.4rem 2rem 1.4rem 0}
.glu-faq__item summary::-webkit-details-marker{display:none}
.glu-faq__item .glu-faq__q{border:0;padding:0;display:inline}
.glu-faq__item .glu-faq__a{border:0}
@media (max-width:1023px){
  .prose-content > .glu-faq,.glu-faq__item{grid-template-columns:minmax(0,1fr)}
  .glu-faq__q{padding:1.2rem 0 .45rem}
  .glu-faq__a{grid-column:1;border-top:0;padding:0 0 1.2rem}
}

/* ===== 13. FOOTER (ink floor, no texture) + STICKY BAR + CTA BAND + PAGINATION ===== */
.site-footer{background:var(--color-dark);color:var(--color-on-dark-muted);font-size:.9rem}
.site-footer a{color:var(--color-on-dark);text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer :focus-visible{outline-color:var(--color-focus-on-dark)}
.footer-band{border-bottom:1px solid var(--color-dark-border)}
.footer-band__inner{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:3rem;align-items:start;padding-top:1.8rem;padding-bottom:1.8rem}
.footer-band .glu-safety--short{position:relative;padding-left:2.6rem;color:var(--color-on-dark);font-size:1rem}
.footer-band .glu-safety--short::before{content:"";position:absolute;left:0;top:.1rem;width:28px;height:28px;background:var(--color-on-dark);-webkit-mask:var(--icon-alert) center/contain no-repeat;mask:var(--icon-alert) center/contain no-repeat}
.footer-band .glu-safety--short strong{display:block;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.3rem;letter-spacing:-.01em;margin:0 0 .25rem}
.footer-band .glu-safety__tel{color:var(--color-on-dark);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none}
.footer-band__notes{grid-column:2;grid-row:1 / span 2}
.footer-band__notes p{margin:0 0 .6rem;font-size:.84rem;line-height:1.55}
.footer-band .glu-safety--fallback{margin:.55rem 0 0;padding-left:2.6rem;font-size:.86rem;color:var(--color-on-dark-muted)} /* 10.74:1 on ink */
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr .8fr;gap:2.2rem;padding:3rem 0 2.6rem}
.footer-col h2{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-dark-muted);margin:0 0 1rem;line-height:1.3}
.footer-col ul{list-style:none;margin:0;padding:0}
.footer-col li a{display:inline-flex;align-items:center;min-height:32px}
.footer-col .site-title{font-size:1.25rem;margin:0 0 1rem}
.footer-col .site-title a{color:var(--color-on-dark)}
.footer-col .site-title__tld{color:var(--color-on-dark-muted)}
.footer-col p{font-size:.86rem;line-height:1.55;margin:0 0 .8rem}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding:1.2rem 0 1.6rem;border-top:1px solid var(--color-dark-border);font-size:.8rem}
.sticky-bar{display:none}
@media (max-width:767px){
  body.has-sticky-bar{padding-bottom:76px}
  .sticky-bar{display:block;position:fixed;left:0;right:0;bottom:0;z-index:var(--z-sticky-bar);padding:.6rem var(--gutter) calc(.6rem + env(safe-area-inset-bottom));background:var(--color-page);border-top:1px solid var(--color-primary)}
  .sticky-bar.is-hidden{transform:translateY(110%)}
  .sticky-bar__quote{width:100%;justify-content:space-between}
}
.cta-banner{padding:var(--space-16) 0;border-top:var(--wall) solid var(--color-primary)}
.cta-banner__actions{margin-top:1.4rem}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .7rem;margin:0 .3rem .3rem 0;border:var(--wall) solid var(--color-primary);border-radius:var(--radius);font-family:var(--font-display);font-weight:var(--wd);text-decoration:none;color:var(--color-primary)}
.pagination .page-numbers.current{background:var(--color-primary);color:var(--color-on-dark)}
.pagination .page-numbers.dots{border-color:transparent}
.topbar,.promo-bar{background:var(--color-surface);border-bottom:1px solid var(--color-rule);font-size:.88rem}
.topbar__inner,.promo-bar__inner{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;align-items:center;min-height:var(--topbar-h)}
.empty-state{padding:var(--space-20) 0;background-color:var(--color-surface);background-image:var(--tracery)}
.empty-state__inner{max-width:44rem;background:var(--color-page);border:var(--wall) solid var(--color-primary);padding:2rem}
@media (max-width:1023px){.footer-grid{grid-template-columns:1fr 1fr}.footer-grid > .footer-col:first-child{grid-column:1 / -1}.footer-band__inner{grid-template-columns:minmax(0,1fr);row-gap:1.2rem}.footer-band__notes{grid-column:auto;grid-row:auto}.footer-band .glu-safety--fallback{margin-top:-.65rem}}
@media (max-width:479px){.footer-grid{grid-template-columns:minmax(0,1fr)}}

/* ===== 14. RESPONSIVE (layout-wide) ===== */
@media (max-width:1023px){
  .hero__inner{grid-template-columns:minmax(0,1fr)}
  .hero__deck > p,.hero__deck > p:only-child,.hero__deck > p + p,.hero__ctas,.hero__note{grid-column:1 / -1;grid-row:auto}
  .hero__deck > p + p{order:3;margin-top:1.75rem}
  .hero__figure{order:4}
}
@media (max-width:767px){
  :root{--gutter:16px}
  body{font-size:1rem}
  .section{padding:3.4rem 0}
  .quote-section{padding:3.4rem 0}
  .hero{padding-top:1.9rem}
  .hero__deck > p{font-size:1.08rem}
  .hero__figure{margin-top:1.9rem}
  .wp-block-buttons,.wp-block-button{width:100%}
  .wp-block-button__link{width:100%;justify-content:space-between}
  .prose-content ul.glu-checklist,.prose-content ul.glu-linklist{columns:1}
}

/* ===== 15. MOTION (every transition lives here; reduced motion gets none) ===== */
@media (prefers-reduced-motion:no-preference){
  .btn,.wp-block-button__link{transition:background-color var(--transition),color var(--transition),border-color var(--transition)}
  .btn::after,.wp-block-button__link::after{transition:transform var(--transition)}
  .btn--primary:hover::after,.wp-block-button__link:hover::after{transform:translateX(3px)}
  .glu-cta--to-form .wp-block-button__link:hover::after{transform:rotate(90deg) translateX(3px)}
  .card::after,.primary-menu .sub-menu a::after{transition:transform .2s ease}
  .card:hover::after,.primary-menu .sub-menu a:hover::after{transform:rotate(-38deg)}
  .gq-submit .spinner{animation:gq-spin .8s linear infinite}
  @keyframes gq-spin{to{transform:rotate(360deg)}}
  .sticky-bar{transition:transform .2s ease}
  html{scroll-behavior:smooth}
}

/* ===== 16. FORCED COLORS + PRINT ===== */
@media (forced-colors:active){
  .card,.card--compact,.body-aside__room,.primary-menu .sub-menu a{border:2px solid CanvasText;background-image:none}
  .primary-menu .sub-menu{background-image:none}
  .card::after,.body-aside__room::after,.primary-menu .sub-menu a::after{background:CanvasText;forced-color-adjust:none}
  .prose-content > h2::after,.glu-faq > h2::after,.related__title::after,.home-picker__title::after,.glu-prep__title::after{border-color:CanvasText}
  .quote-section,.empty-state{background-image:none}
  .btn,.wp-block-button__link,.gq-chip,.quote-form.gas-quote,.glu-safety--long{border:2px solid ButtonText}
  .glu-caution,.gq-safety-line,.gq-callout,.gq-safety,.gq-811,.has-tertiary-background-color{border:2px solid CanvasText}
  .btn--primary::after,.wp-block-button__link::after,.submenu-toggle::after{background:ButtonText;forced-color-adjust:none}
}
@media print{
  .site-header__nav,.header-actions,.sticky-bar,.body-aside,.quote-section,.plan,.entry-strip__art,.related,.home-picker{display:none!important}
  .site-header{position:static;border:0}
  body{font-size:11pt;color:#000}
  .site-footer{background:none;color:#000}
  .site-footer a,.footer-band .glu-safety--short{color:#000}
  .footer-grid{display:none}
  a[href^="tel:"]::after{content:""}
}

/* ===== 17. THEME HOOKS: WordPress core, owner blocks, base gaps (not in the sketch; same tokens, same grammar) ===== */
/* Identity markers, intentionally unstyled (no visual keys): dp-* (DESIGN-DECISION §5), glu-kind-*, glu-role-*,
   hero--{kind}, hero--branch-plan, plan--focus, p-gas-net, p-new-net, menu-item--{group}, glu-note--{key} (bar co_note
   and nonaffiliation), glu-safety__col--signs, glu-safety__col--dont, glu-faq--items, members-grid--{type}, menu-item, home, wp-block-heading,
   wp-block-list, wp-block-group, has-background, wp-element-button (its look is .wp-block-button__link + theme.json).
   JS state classes with no visual keys: is-shrunk (header scroll flag), is-visible (.reveal has no hidden state, §10.1). */
.site-main{display:block}
.site-main:focus{outline:0} /* the skip-link target; the focus ring belongs on controls, not on the whole page */
.btn-label{min-width:0}
.primary-menu .menu-item-has-children{position:static} /* the desktop drawer positions against the sticky header */
@media (min-width:1200px){.primary-menu > li.is-dismissed > .sub-menu{display:none}} /* ESC closes a hover/focus drawer (main.js initMenu) */
/* header overflow guard, part 2: when the stacked bar's nav row is still too long for one line (a long owner menu), the
   row wraps onto more lines instead of scrolling the page sideways; main.js sets --header-h to the real bar height */
@media (min-width:1200px){
  .site-header--stacked .site-header__inner{grid-template-rows:76px auto}
  .site-header--stacked .main-nav,.site-header--stacked .primary-menu{height:auto}
  .site-header--stacked .primary-menu{flex-wrap:wrap;row-gap:0}
  .site-header--stacked .primary-menu > li{min-height:48px}
  .site-header--stacked .primary-menu > li.is-lingering:not(.is-dismissed) > .sub-menu{display:grid} /* pointer crossing the lower nav line */
  /* a URL parent's chevron toggle is a 24px-wide target (WCAG 2.5.8), not 18px against its link */
  .primary-menu > li > .submenu-toggle:not(.submenu-toggle--label){min-width:24px}
}
/* panel (< 1200): a long parent label wraps inside its own box, so its +/- toggle stays on the same row */
@media (max-width:1199px){.primary-menu > li > a{flex:1 1 0;min-width:0}}
/* the fixed sticky bar (< 768) never covers the keyboard focus: focused elements scroll clear of it (WCAG 2.4.11) */
@media (max-width:767px){html:has(body.has-sticky-bar){scroll-padding-bottom:calc(76px + env(safe-area-inset-bottom) + .5rem)}}
.glu-safety .glu-safety__tel:focus-visible{outline-offset:2px}
/* an owner FAQ answer that is a caution line keeps the panel inset (the .glu-faq__a padding would zero it) */
.glu-faq__a.glu-caution{padding:1.4rem 1.1rem}
@media (max-width:1023px){.glu-faq__a.glu-caution{padding:1rem 1.1rem;margin-bottom:1.2rem}}
.gq-anchor,.quote-section,.form-fallback{scroll-margin-top:calc(var(--header-h) + 1rem)}
.quote-form-wrap{min-width:0}
img,video{max-width:100%;height:auto}
iframe,embed,object{max-width:100%}
h4{font-size:1.15rem;line-height:var(--lh-snug);letter-spacing:var(--track-h3)}
h5,h6{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary);margin:0;line-height:var(--lh-snug)}
h5{font-size:1rem}
h6{font-size:.94rem}
.prose-content h4{margin:1.8rem 0 .5rem}
.prose-content h5,.prose-content h6{margin:1.5rem 0 .4rem}
::selection{background:var(--color-primary);color:var(--color-on-dark)}
mark{padding:0 .15em;background:var(--color-tertiary);color:inherit} /* never the browser's yellow: yellow means gas, inside a drawing only */
mark.has-inline-color{padding:0;background:transparent}
:where(button,input:not([type="file"]),select,textarea){font-family:inherit;font-size:100%}
:where(input[type="text"],input[type="email"],input[type="url"],input[type="password"],input[type="search"],input[type="tel"],input[type="number"],input[type="date"],select,textarea){max-width:100%;min-height:48px;padding:.7rem .8rem;font:inherit;font-size:1rem;color:var(--color-text);background:var(--color-page);border:1.5px solid var(--color-field);border-radius:var(--radius-sm)}
:where(textarea){min-height:7.5rem}
:where(input,select,textarea):focus-visible{outline:3px solid var(--color-focus);outline-offset:2px;border-color:var(--color-primary)}
:where(input[type="checkbox"],input[type="radio"]){accent-color:var(--color-primary)}
.screen-reader-text:focus{position:fixed!important;left:1rem;top:1rem;z-index:var(--z-skip);width:auto;height:auto;margin:0;padding:.75rem 1rem;clip:auto;white-space:normal;background:var(--color-page);color:var(--color-primary);outline:3px solid var(--color-focus)}
/* alignment + caption classes */
.alignleft{float:left;margin:.3rem 1.5rem 1rem 0}
.alignright{float:right;margin:.3rem 0 1rem 1.5rem}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.prose-content::after{content:"";display:table;clear:both}
.prose-content > .alignwide{max-width:var(--width-wide)}
.prose-content > .alignfull{max-width:none;margin-left:calc(-1 * var(--gutter));margin-right:calc(-1 * var(--gutter))}
.wp-caption{max-width:100%;margin:0 0 1.5rem}
.wp-caption img{display:block}
.wp-caption-text,.gallery-caption,.wp-element-caption,.wp-block-image figcaption,.wp-block-embed figcaption,.wp-block-video figcaption,.wp-block-audio figcaption,.wp-block-table figcaption{margin:.5rem 0 0;font-size:var(--text-sm);line-height:1.45;color:var(--color-muted);text-align:left}
.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:.75rem;margin:0 0 1.5rem}
.gallery-item{margin:0}
.gallery-item img{display:block;width:100%}
.sticky{position:relative}
.card.sticky{background-color:var(--color-surface)} /* a sticky post is a film-filled room */
.bypostauthor > .comment-body{border-left:6px solid var(--color-primary);padding-left:1rem}
/* owner blocks beyond the ones the sketch draws */
.wp-block-image,.wp-block-embed,.wp-block-video,.wp-block-audio{margin:0 0 1.5rem}
.wp-block-image img{display:block}
.wp-block-embed iframe{display:block;width:100%;border:0}
.wp-block-video video{display:block;width:100%}
blockquote,.wp-block-quote{margin:2rem 0;padding:.2rem 0 .2rem 1.25rem;border-left:6px solid var(--color-primary)}
blockquote > :last-child{margin-bottom:0}
blockquote cite,.wp-block-quote cite,.wp-block-pullquote cite{display:block;margin-top:.6rem;font-size:var(--text-sm);font-style:normal;color:var(--color-muted)}
.wp-block-pullquote{margin:2.5rem 0;padding:1.5rem 0;border-top:var(--wall) solid var(--color-primary);border-bottom:var(--wall) solid var(--color-primary);text-align:left}
.wp-block-pullquote blockquote{margin:0;padding:0;border:0}
.wp-block-pullquote p{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xl);line-height:var(--lh-snug);letter-spacing:var(--track-h3);color:var(--color-primary)}
hr,.wp-block-separator{height:0;margin:2.5rem 0;border:0;border-top:var(--wall) solid var(--color-primary);opacity:1}
table{width:100%;border-collapse:collapse;font-size:.95rem;line-height:1.5}
th,td,.wp-block-table th,.wp-block-table td{padding:.65rem .8rem;border:1px solid var(--color-rule);text-align:left;vertical-align:top}
thead th,.wp-block-table thead th{border-bottom:var(--wall) solid var(--color-primary);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
caption{caption-side:bottom;margin-top:.5rem;font-size:var(--text-sm);color:var(--color-muted);text-align:left}
.wp-block-table{margin:0 0 1.5rem;overflow-x:auto}
.wp-block-table table{margin:0}
.wp-block-table.is-style-stripes tbody tr:nth-child(odd){background:var(--color-surface)}
code,kbd,samp,pre{font-family:var(--font-mono)}
code,kbd,samp{padding:.1em .35em;font-size:.9em;background:var(--color-surface);border-radius:var(--radius-sm)}
pre,.wp-block-code{overflow-x:auto;margin:0 0 1.5rem;padding:1rem 1.15rem;background:var(--color-surface);border-left:6px solid var(--color-primary);font-size:.9rem;line-height:1.55}
pre code,.wp-block-code code{padding:0;font-size:inherit;background:none}
dt{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
dd{margin:0 0 .8rem}
.wp-block-details{margin:0 0 1rem;border-top:1px solid var(--color-rule);border-bottom:1px solid var(--color-rule)}
.wp-block-details summary{min-height:44px;padding:.8rem 0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary);cursor:pointer}
.wp-block-details > :last-child{margin-bottom:1rem}
/* core elements that render as buttons without .wp-block-button__link: same ink look, no arrow (inputs have no pseudo) */
.wp-block-search__button,.wp-block-file__button,.post-password-form input[type="submit"],.comment-form input[type="submit"],.search-form [type="submit"]{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0;padding:.75rem 1.25rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1rem;line-height:1.2;letter-spacing:var(--track-btn);white-space:normal;text-decoration:none;color:var(--color-on-dark);background:var(--color-primary);border:var(--wall) solid var(--color-primary);border-radius:var(--radius);cursor:pointer}
.wp-block-search__button:hover,.wp-block-file__button:hover,.post-password-form input[type="submit"]:hover,.comment-form input[type="submit"]:hover,.search-form [type="submit"]:hover{color:var(--color-on-dark);background:var(--color-primary-hover);border-color:var(--color-primary-hover);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.22em}
.wp-block-search__label{display:block;margin:0 0 .4rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.wp-block-search__inside-wrapper{gap:.6rem}
.wp-block-search__input{min-height:48px;padding:.7rem .8rem;font:inherit;font-size:1rem;color:var(--color-text);background:var(--color-page);border:1.5px solid var(--color-field);border-radius:var(--radius-sm)}
.wp-block-file{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin:0 0 1.5rem}
.post-password-form{max-width:var(--width-content)}
.post-password-form label{display:block;margin:0 0 .6rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.post-password-form input[type="password"]{display:block;width:100%;margin-top:.4rem}
/* legacy button modifiers some parts still print: map them onto the engine (no new look) */
.btn--ghost,.btn--on-light{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.btn--ghost:hover,.btn--on-light:hover{background:var(--color-primary);color:var(--color-on-dark)}
.btn--block{display:flex;width:100%}
.btn--lg{min-height:56px;font-size:1.06rem}
.btn:disabled,.btn[aria-disabled="true"]{cursor:not-allowed}
/* the capped run, extended to the plugin's and the kept parts' section H2s (same rule as block 7; no per-index state) */
h2.section-head,.directory__heading,.glu-posts__title,.local-areas__heading,.faq__heading,.silo__heading{position:relative;padding-right:max(0px,calc(100% - var(--head-col)))}
h2.section-head::after,.directory__heading::after,.glu-posts__title::after,.local-areas__heading::after,.faq__heading::after,.silo__heading::after{
  content:"";position:absolute;left:calc(min(100%,var(--head-col)) + var(--run-gap));right:0;bottom:calc(.12em + 7px);height:8px;
  border:var(--wall) solid var(--color-primary);border-left:0;border-radius:0 4px 4px 0}
/* section wrappers printed without .section keep the section rhythm */
.related:not(.section),.home-picker:not(.section),.glu-prep:not(.section){padding:var(--space-20) 0}
.related:not(.section) + .related{padding-top:0}

/* ===== 18. HEADER + HERO + FOOTER EXTRAS (self-hiding pieces: logo, promo/topbar content, search, featured, social) ===== */
.custom-logo-link{display:inline-flex;align-items:center}
.custom-logo{display:block;width:auto;height:auto;max-height:44px}
.header-search{display:flex;align-items:center}
.header-search .search-form{flex-wrap:nowrap;max-width:16rem}
.header-search input[type="search"]{min-height:40px;padding:.4rem .6rem;font-size:.9rem}
.promo-bar__inner:not(.container){padding:.35rem var(--gutter);justify-content:center;text-align:center}
a.promo-bar{display:block;color:var(--color-text);text-decoration:none}
a.promo-bar:hover .promo-bar__inner{text-decoration:underline;text-decoration-thickness:2px}
.promo-bar--dark{background:var(--color-primary);color:var(--color-on-dark);border-bottom-color:var(--color-dark-border)}
a.promo-bar--dark{color:var(--color-on-dark)}
.topbar a,.promo-bar a{color:inherit}
.topbar__afterhours,.topbar__note{font-size:var(--text-sm);color:var(--color-muted)}
.open-now{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-text)}
.open-now__dot{flex:none;width:10px;height:10px;border:var(--wall) solid var(--color-primary);border-radius:var(--radius-full)}
.open-now.is-open .open-now__dot{background:var(--color-primary)} /* open = filled, closed = hollow: shape + words, never hue */
.open-now.is-closed .open-now__dot{background:transparent}
.open-now__label{white-space:nowrap}
.open-now__next{font-weight:var(--fw-normal);color:var(--color-muted)}
.hero__title{overflow-wrap:anywhere} /* functional belt for the 27-character brand token (DESIGN-DECISION §8.3; glu_brand_markup adds the <wbr>) */
.hero__eyebrow{display:block;margin:0 0 .9rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-label);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent);line-height:1.3}
.hero__subtitle{grid-column:1 / span 7;max-width:36rem;margin:0 0 1.5rem;font-size:1.2rem;line-height:1.55;color:var(--color-text)}
.hero .entry-meta,.hero__meta{margin:0 0 1.25rem;font-size:var(--text-sm);color:var(--color-muted)}
.hero .search-form{margin:0 0 1.5rem}
.hero__featured-badge{display:inline-flex;align-items:center;gap:.5rem;justify-self:start;margin:0 0 1rem;padding:.3rem .65rem;background:var(--color-primary);color:var(--color-on-dark);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;border-radius:var(--radius-sm)}
.hero__featured-badge svg{flex:none;width:1.1em;height:1.1em}
.hero__featured-tagline{display:block;max-width:40rem;margin:0 0 1.25rem;font-size:var(--text-lg);color:var(--color-text)}
.footer-col h3{font-size:var(--text-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--color-on-dark-muted);margin:0 0 1rem;line-height:1.3}
.footer-menu{list-style:none;margin:0;padding:0}
.footer-bottom a{text-decoration:underline}
.footer-license{font-size:.84rem;line-height:1.55;color:var(--color-on-dark-muted)}
.footer-tagline{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.05rem;color:var(--color-on-dark)}
.footer-social{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.footer-social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--color-dark-border);border-radius:var(--radius-sm)}
.footer-social a:hover{background:var(--color-on-dark);color:var(--color-primary)}
.footer-social svg{width:1.15em;height:1.15em}
.footer-widget{margin:0 0 1.5rem}
.footer-disclosure{margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--color-dark-border)}
.site-footer .affiliate-disclosure{color:var(--color-on-dark-muted)}
.sticky-bar > a:not(.sticky-bar__quote),.sticky-bar__call,.sticky-bar__text{background:transparent;color:var(--color-primary);border-color:var(--color-primary)}
.sticky-bar > a:not(.sticky-bar__quote)::after,.sticky-bar__call::after,.sticky-bar__text::after{display:none}
.tool-header{padding:.9rem 0;background:var(--color-page);border-bottom:1px solid var(--color-primary)}
.tool-header__inner{display:flex;align-items:center;justify-content:center}
.tool-header__title{margin:0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1rem}
.tool-header__title a{color:var(--color-primary);text-decoration:none}
.tool-header .custom-logo{max-height:36px}
.tool-page__inner{max-width:calc(var(--width-content) + 2 * var(--gutter));padding-top:2rem;padding-bottom:3rem}
.tool-page__title{margin:0 0 1.5rem;font-size:var(--text-2xl)}
.tool-page__content > :last-child{margin-bottom:0}
.tool-footer{margin-top:2rem;padding:1.5rem 0;border-top:1px solid var(--color-rule)}
.tool-footer__inner{display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;font-size:var(--text-sm);color:var(--color-muted)}
.tool-footer__inner p{margin:0}
.tool-footer__inner a{color:inherit}

/* ===== 19. LISTINGS, POSTS, COMMENTS, SEARCH, 404 (both blog paths, R36-R39) ===== */
.entry-header{margin:0 0 1.5rem}
.entry-meta{margin:0 0 1.5rem;font-size:var(--text-sm);color:var(--color-muted)}
.entry-meta a{color:inherit}
.entry-content{max-width:var(--width-content)}
.entry-content > :last-child{margin-bottom:0}
.archive-description,.taxonomy-description,.author-archive-head{max-width:var(--width-content);color:var(--color-muted)}
.archive-description > :last-child,.taxonomy-description > :last-child{margin-bottom:0}
.post-thumb{margin:0 0 2rem}
.post-thumb img{display:block;width:100%}
.content-narrow{max-width:var(--width-content)}
.text-center{text-align:center}
.section-head{max-width:var(--width-content);margin:0 0 2rem}
.section-head h1,.section-head h2{margin:0 0 .75rem}
.section-head p{margin:0;color:var(--color-muted)}
h2.section-head{max-width:none;margin:0 0 1.5rem}
.post-list{display:grid;gap:0}
.grid{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem}
/* a grid of article rooms tiles like ul.members-grid: zero gap, the grid draws the outer top and left walls */
.grid:has(> .card){gap:0;border-top:var(--wall) solid var(--color-primary);border-left:var(--wall) solid var(--color-primary)}
.grid > .card{min-width:0}
.card__body{display:block;min-width:0}
.card__media{display:none} /* door-swing rooms carry no image slot (DESIGN-DECISION §10.7) */
.card__cta{position:relative;z-index:2;align-self:flex-start;margin-top:.8rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.95rem;color:var(--color-primary)}
.glu-posts__more{margin:2rem 0 0}
.glu-posts .glu-posts__pagination{margin-top:2rem}
ul.glu-grid-list{list-style:none;margin:0;padding:0}
.glu-grid-list > li{position:relative;padding-left:1.9rem;margin:.45em 0}
.glu-grid-list > li::before{content:"";position:absolute;left:0;top:.62em;width:16px;height:7px;border:1.5px solid var(--color-primary);border-left:0;border-radius:0 3.5px 3.5px 0}
.pagination{margin-top:3rem}
.pagination .nav-links{display:flex;flex-wrap:wrap;align-items:center}
.pagination a.page-numbers:hover{background:var(--color-surface);text-decoration:underline;text-decoration-thickness:2px}
.pagination .page-numbers.prev,.pagination .page-numbers.next{padding:0 1rem}
.post-navigation{max-width:var(--width-content);margin-top:3rem;border-top:var(--wall) solid var(--color-primary)}
.post-navigation .nav-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:2rem}
.post-navigation .nav-previous a,.post-navigation .nav-next a{display:block;padding:1rem 0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;line-height:1.3;text-decoration:none}
.post-navigation .nav-previous a:hover,.post-navigation .nav-next a:hover{text-decoration:underline;text-decoration-thickness:2px}
.post-navigation .nav-next{grid-column:2;text-align:right}
.post-navigation .meta-nav{display:block;margin:0 0 .25rem;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent)}
.page-links{clear:both;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin:2rem 0 0;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none}
.page-links a,.page-links > .post-page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 .6rem;border:var(--wall) solid var(--color-primary);border-radius:var(--radius);color:var(--color-primary);text-decoration:none}
.page-links .current{background:var(--color-primary);color:var(--color-on-dark)}
.widget-area,.blog-sidebar{font-size:.95rem}
.widget{margin:0 0 2rem}
.widget__title,.widget-title,.footer-widget__title{margin:0 0 .8rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;line-height:1.3;color:var(--color-accent)}
.footer-widget__title{color:var(--color-on-dark-muted)}
.widget ul{list-style:none;margin:0;padding:0}
.widget li{padding:.35rem 0;border-top:1px solid var(--color-rule)}
/* comments */
.comments-area{max-width:var(--width-content);margin:4rem 0 var(--space-16);padding-top:1.5rem;border-top:var(--wall) solid var(--color-primary)}
.comments-title,.comment-reply-title{margin:0 0 1.5rem;font-size:var(--text-2xl)}
.comment-reply-title small{margin-left:.75rem;font-family:var(--font);font-weight:var(--fw-normal);font-size:var(--text-sm)}
.comment-list{list-style:none;margin:0 0 2.5rem;padding:0}
.comment-list .children{list-style:none;margin:0;padding:0 0 0 1.5rem;border-left:1px solid var(--color-rule)}
.comment-body{padding:1.25rem 0;border-bottom:1px solid var(--color-rule)}
.comment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem 1rem;margin:0 0 .6rem}
.comment-author{display:flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.comment-author .avatar{width:40px;height:40px;border-radius:var(--radius-full)}
.comment-author .says{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.comment-metadata{font-size:var(--text-sm);color:var(--color-muted)}
.comment-metadata a{color:inherit}
.comment-content > :last-child{margin-bottom:0}
.comment-awaiting-moderation{display:block;margin:.4rem 0;font-size:var(--text-sm);color:var(--color-muted)}
.reply{margin-top:.6rem}
.comment-reply-link{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.9rem}
.comment-respond{margin-top:2rem}
.comment-form{display:grid;gap:1rem}
.comment-form p{margin:0}
.comment-form label{display:block;margin:0 0 .4rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%}
.comment-form .required{color:var(--color-primary)}
.comment-notes,.logged-in-as,.no-comments{font-size:var(--text-sm);color:var(--color-muted)}
.comment-form-cookies-consent{display:flex;align-items:flex-start;gap:.6rem}
.comment-form-cookies-consent input{flex:none;margin-top:.2rem}
.comment-form-cookies-consent label{margin:0;font-family:var(--font);font-weight:var(--fw-normal);font-size:var(--text-sm);color:var(--color-text)}
.form-submit{margin:0}
/* search form (searchform.php): 48px field + primary submit */
.search-form{display:flex;flex-wrap:wrap;align-items:stretch;gap:.6rem;max-width:36rem}
.search-form label{flex:1 1 14rem;margin:0}
.search-form .search-field,.search-form input[type="search"]{width:100%}
/* 404 / search sheet (the band and the sheet are block 13) */
.empty-state__inner > h1{margin:0 0 1.25rem}
.empty-state__inner > p:last-child{margin-bottom:0}
.empty-state__inner .glu-safety--fallback{margin-bottom:1.5rem}
.empty-state__inner ul{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem;list-style:none;margin:0 0 1.5rem;padding:0}
.empty-state__inner li a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none}
.empty-state__inner .search-form{margin-top:1.5rem}
.empty-state__links{display:flex;flex-wrap:wrap;gap:.75rem;margin:0 0 1.5rem}
.form-fallback{max-width:44rem}
.form-fallback > :last-child{margin-bottom:0}
.form-fallback .glu-safety--short{margin-top:.75rem}
.contact-info{margin:0 0 2rem}
.contact-list{list-style:none;margin:0 0 1.5rem;padding:0}
.contact-list li{display:flex;align-items:flex-start;gap:.65rem;padding:.7rem 0;border-top:1px solid var(--color-rule)}
.contact-list li:last-child{border-bottom:1px solid var(--color-rule)}
.contact-list svg{flex:none;width:1.1em;height:1.1em;margin-top:.3em;color:var(--color-primary)}
.cta-banner h2{margin:0 0 .8rem}
.cta-banner p{max-width:var(--width-content);margin:0}

/* ===== 20. MODULES THAT SHIP OFF (trust, E-E-A-T, testimonials, projects, team, directory, local areas, media, FAQ items) ===== */
/* rooms for the module grids: the door-swing wall grammar of block 8 (zero gap, shared 2px walls, doorway + door) */
.projects__grid,.team-grid,.directory__list,.guarantees{--cols:1;display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:0;margin:0;border-top:var(--wall) solid var(--color-primary);border-left:var(--wall) solid var(--color-primary)}
.project-card,.team-card,.directory__card,.guarantee{position:relative;display:flex;flex-direction:column;min-width:0;min-height:9.5rem;padding:1.2rem 1.25rem 3.4rem;color:var(--color-text);border-right:var(--wall) solid var(--color-primary);
  background:linear-gradient(var(--color-primary),var(--color-primary)) left bottom/calc(100% - 64px) var(--wall) no-repeat,
             linear-gradient(var(--color-primary),var(--color-primary)) right bottom/18px var(--wall) no-repeat}
.project-card::before,.team-card::before,.directory__card::before,.guarantee::before{content:"";position:absolute;right:18px;bottom:0;width:var(--door);height:var(--door);border-top:1.25px solid var(--color-accent);border-left:1.25px solid var(--color-accent);border-top-left-radius:var(--door)}
.project-card::after,.team-card::after,.directory__card::after,.guarantee::after{content:"";position:absolute;right:17px;bottom:0;width:2px;height:var(--door);background:var(--color-primary);transform-origin:50% 100%}
.project-card:has(a:hover){background-color:var(--color-surface)}
.project-card:has(a:focus-visible){outline:3px solid var(--color-focus);outline-offset:3px;z-index:2}
.project-card .card__title a:focus-visible{outline:0}
.projects{padding:var(--space-20) 0}
.project-card__images{display:grid;grid-template-columns:1fr 1fr;gap:var(--wall);margin:0 0 1rem;background:var(--color-primary);border:var(--wall) solid var(--color-primary)}
.project-card__images figure{position:relative;margin:0;background:var(--color-page)}
.project-card__images img{display:block;width:100%}
.project-card__images figcaption{position:absolute;left:0;bottom:0;padding:.15rem .5rem;background:var(--color-primary);color:var(--color-on-dark);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase}
.project-card__body{display:flex;flex-direction:column;flex:1 1 auto}
.project-card__meta{margin:0 0 .45rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;line-height:1.3;color:var(--color-accent)}
.team-grid{margin:2rem 0}
.team-card__photo img{display:block;width:96px;height:96px;margin:0 0 1rem;border-radius:var(--radius-full);object-fit:cover}
.team-card h2,.team-card h3{margin:0 0 .35rem;font-size:1.18rem;line-height:1.18;letter-spacing:-.012em}
.team-card .author-box__creds{margin:0 0 .5rem}
.guarantee svg{flex:none;width:1.8em;height:1.8em;margin:0 0 .6rem;color:var(--color-primary)}
.guarantee h3,.guarantee strong{display:block;margin:0 0 .35rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1.1rem;line-height:1.2;color:var(--color-primary)}
.guarantee p{margin:0;font-size:.95rem}
.credentials{display:flex;flex-wrap:wrap;gap:.75rem;padding:2rem 0}
.credential{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.5rem .85rem;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);font-size:var(--text-sm)}
.credential svg{flex:none;width:1.2em;height:1.2em;color:var(--color-primary)}
.credential__value{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;color:var(--color-primary)}
.awards{display:flex;flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem;padding:2rem 0}
.awards img{display:block;width:auto;max-height:44px;filter:grayscale(1)} /* ink-only brand: third-party marks stay neutral */
.directory{padding:var(--space-20) 0}
.directory__heading{margin:0 0 1.5rem}
.directory__card{gap:.6rem}
.directory__card--featured{background-color:var(--color-surface)}
.directory__rank{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;flex:none;border:var(--wall) solid var(--color-primary);border-radius:var(--radius-sm);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:1rem;font-variant-numeric:tabular-nums;color:var(--color-primary)}
.directory__card--featured .directory__rank{background:var(--color-primary);color:var(--color-on-dark)}
.directory__name{margin:0;font-size:1.18rem;line-height:1.18;letter-spacing:-.012em}
.directory__rating{display:inline-flex;align-items:center;gap:.4rem;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-text)}
.directory__star{display:inline-flex;color:var(--color-star)}
.directory__star svg,.stars svg,.testimonial__stars svg{flex:none;width:1em;height:1em}
.directory__rating-val{font-variant-numeric:tabular-nums}
.directory__rating-count{font-weight:var(--fw-normal);color:var(--color-muted)}
.directory__desc{margin:0;font-size:.92rem;line-height:1.5;color:var(--color-muted)}
.directory__meta{display:flex;align-items:flex-start;gap:.5rem;margin:0;font-size:var(--text-sm);color:var(--color-muted)}
.directory__icon{display:inline-flex;flex:none;margin-top:.2em;color:var(--color-primary)}
.directory__icon svg,.directory__action svg{flex:none;width:1em;height:1em}
.directory__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:.6rem}
.directory__action{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.5rem .9rem;border:var(--wall) solid var(--color-primary);border-radius:var(--radius);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.9rem;color:var(--color-primary);background:transparent;text-decoration:none}
.directory__action:hover{background:var(--color-primary);color:var(--color-on-dark)}
.directory__action--call{background:var(--color-primary);color:var(--color-on-dark)}
.directory__action--call:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);color:var(--color-on-dark);text-decoration:underline}
.directory__action--web,.directory__action--mail{background:transparent}
.trust-bar{background:var(--color-page);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;gap:1rem 2.5rem;padding-top:1.25rem;padding-bottom:1.25rem}
.trust-rating{display:inline-flex;align-items:center;gap:.5rem;font-weight:var(--fw-bold)}
.stars,.testimonial__stars{display:inline-flex;gap:1px;color:var(--color-star)}
.trust-metric{display:flex;flex-direction:column}
.trust-metric__value{font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xl);line-height:1.1;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--color-primary)}
.trust-metric__label{font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;color:var(--color-accent)}
.trust-chip{display:inline-flex;align-items:center;gap:.35rem;min-height:32px;padding:.2rem .65rem;border:1.5px solid var(--color-field);border-radius:var(--radius-sm);font-size:var(--text-sm)}
.trust-badges{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem 2rem}
.trust-bar .trust-badges{padding:1rem 0;border-top:1px solid var(--color-rule)}
.trust-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-sm);font-weight:var(--fw-bold);line-height:1.3;color:var(--color-text)}
.trust-badge svg{flex:none;width:18px;height:18px;color:var(--color-primary)}
.testimonials{padding:var(--space-20) 0}
.testimonials__track{display:grid;grid-template-columns:minmax(0,1fr);column-gap:2.5rem}
.testimonial{margin:0;padding:1.4rem 0 1.6rem;border-top:var(--wall) solid var(--color-primary)}
.testimonial__stars{margin:0 0 .7rem}
.testimonial__text{margin:0 0 1rem;padding:0;border:0;font-size:1.06rem;line-height:1.55;color:var(--color-text)}
.testimonial__text p{margin:0 0 .6em}
.testimonial figcaption{font-size:var(--text-sm)}
.testimonial__author{font-weight:var(--fw-bold);color:var(--color-text)}
.testimonial__location{color:var(--color-muted)}
.author-box{display:flex;flex-wrap:wrap;gap:1.5rem;max-width:var(--width-content);margin:3.5rem 0 0;padding:1.5rem 0;border-top:var(--wall) solid var(--color-primary);border-bottom:1px solid var(--color-rule)}
.author-box__photo img{display:block;width:96px;height:96px;border-radius:var(--radius-full);object-fit:cover}
.author-box__body{flex:1 1 15rem;min-width:0}
.author-box__eyebrow{display:block;margin:0 0 .35rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:var(--text-xs);letter-spacing:var(--track-eyebrow);text-transform:uppercase;line-height:1.3;color:var(--color-accent)}
.author-box__name{margin:.2rem 0 .3rem;font-size:var(--text-xl);letter-spacing:var(--track-h3)}
.author-box__creds{margin:0 0 .6rem;font-size:var(--text-sm);font-weight:var(--fw-bold);color:var(--color-text)}
.author-box__bio > :last-child{margin-bottom:0}
.author-box__social{display:flex;gap:.5rem;margin-top:.8rem}
.author-box__social a{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1.5px solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary)}
.author-box__social svg,.author-box__all svg{flex:none;width:1.1em;height:1.1em}
.author-box__all{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.95rem}
.fact-check{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0;font-size:var(--text-sm);color:var(--color-muted)}
.fact-check > svg,.freshness svg{flex:none;width:1.1em;height:1.1em;color:var(--color-primary)}
.fact-check__details{display:inline-flex;align-items:center}
.fact-check__details summary{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:32px;list-style:none;color:var(--color-primary);cursor:pointer}
.fact-check__details summary::-webkit-details-marker{display:none}
.fact-check__details summary svg{width:1.1em;height:1.1em}
.fact-check__panel{position:absolute;left:0;top:calc(100% + 6px);z-index:5;min-width:16rem;max-width:min(26rem,90vw);padding:1rem 1.1rem;background:var(--color-page);border:var(--wall) solid var(--color-primary);color:var(--color-text)}
.fact-check__panel p{margin:0 0 .5rem}
.fact-check__panel p:last-child{margin-bottom:0}
.freshness{display:flex;align-items:center;gap:.5rem;margin:1rem 0;font-size:var(--text-sm);color:var(--color-muted)}
.related-posts .section-head{margin-bottom:1.5rem}
.silo{padding:var(--space-12) 0}
.silo__heading{margin:0 0 1rem;font-size:var(--text-xl)}
.silo__links{display:flex;flex-wrap:wrap;gap:.25rem 1.5rem}
.silo__links a,.silo__links-item{display:inline-flex;align-items:center;min-height:44px}
.silo__links-item{color:var(--color-muted)}
.local-areas{padding:var(--space-12) 0}
.local-areas__heading{margin:0 0 1.25rem}
.area-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 2rem;padding:0}
.area-chips li{display:inline-flex;align-items:center;min-height:36px;padding:.3rem .75rem;border:1.5px solid var(--color-field);border-radius:var(--radius-sm);font-size:var(--text-sm)}
.area-check{display:flex;flex-wrap:wrap;gap:.6rem;max-width:36rem;margin:0}
.area-check__label{flex:1 1 14rem;margin:0}
.area-check input[type="search"]{width:100%}
.area-check__result{max-width:36rem;margin:1.25rem 0 0;padding:1rem 1.1rem;background:var(--color-tertiary);border-left:6px solid var(--color-primary)}
.area-check__msg{margin:0 0 .8rem;font-weight:var(--fw-bold);color:var(--color-text)}
.area-check__result.is-yes .area-check__msg::before{content:"";display:inline-block;width:14px;height:11px;margin-right:.5rem;background:var(--color-primary);-webkit-mask:var(--icon-check) center/contain no-repeat;mask:var(--icon-check) center/contain no-repeat}
.map-embed{padding:var(--space-12) 0}
.map-embed iframe,.glu-map iframe{display:block;width:100%;min-height:320px;border:var(--wall) solid var(--color-primary)}
.video-facade{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;margin:1rem 0 0;padding:3rem 1rem;background:var(--color-primary);color:var(--color-on-dark);font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.95rem;text-align:center;text-decoration:none}
.video-facade:hover{background:var(--color-primary-hover);color:var(--color-on-dark);text-decoration:underline;text-decoration-thickness:2px}
.video-facade__play{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:var(--wall) solid var(--color-on-dark);border-radius:var(--radius-full)}
.video-facade__play svg{width:22px;height:22px;margin-left:3px}
.video-facade__label{max-width:30rem}
.video-embed{margin:1rem 0 0}
.video-embed iframe{display:block;width:100%;aspect-ratio:16 / 9;border:0}
.readmore__btn{display:none;margin-top:1.5rem}
.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--more,.readmore--height{position:relative}
.js .readmore--height.is-collapsed .readmore__inner{max-height:var(--readmore-h,480px);overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 70%,transparent);mask-image:linear-gradient(180deg,#000 70%,transparent)}
/* the faq_items part (glu_render_faq): hairline rows, the question in Overpass, a square toggle glyph */
.faq{padding:var(--space-20) 0}
.faq__heading{margin:0 0 1.5rem}
.faq__list{border-top:1px solid var(--color-rule)}
.faq__item{border-bottom:1px solid var(--color-rule)}
.faq__summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:44px;padding:1.2rem 0;list-style:none;cursor:pointer}
.faq__summary::-webkit-details-marker{display:none}
.faq__summary:hover .faq-question{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em}
.faq-question{margin:0;font-size:1.25rem;line-height:1.25}
.faq__chevron{display:inline-flex;align-items:center;justify-content:center;flex:none;width:28px;height:28px;border:var(--wall) solid var(--color-primary);border-radius:var(--radius-sm);color:var(--color-primary)}
.faq__chevron svg{width:14px;height:14px;transform:rotate(90deg)}
.faq__item[open] .faq__chevron{background:var(--color-primary);color:var(--color-on-dark)}
.faq__item[open] .faq__chevron svg{transform:rotate(-90deg)}
.faq__answer{max-width:var(--width-content);padding:0 0 1.4rem}
.faq__answer > :last-child{margin-bottom:0}
/* affiliate layer (OFF): .affiliate-link* is a button from the .btn engine; the disclosure is plain small text */
.affiliate-link,.affiliate-link--fallback{white-space:normal}
.affiliate-disclosure{max-width:var(--width-content);margin:0;font-size:var(--text-sm);line-height:1.5;color:var(--color-muted)}
/* consent bar (OFF): a paper sheet on a 2px ink wall; accept = the ink button, decline = the outline */
.glu-consent{position:fixed;left:0;right:0;bottom:0;z-index:calc(var(--z-sticky-bar) + 5);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem 1.5rem;padding:1rem var(--gutter) calc(1rem + env(safe-area-inset-bottom));background:var(--color-page);border-top:var(--wall) solid var(--color-primary);font-size:var(--text-sm)}
.glu-consent__text{flex:1 1 20rem;max-width:var(--width-content);margin:0}
.glu-consent__actions{display:flex;flex-wrap:wrap;gap:.5rem}
.glu-consent__btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.1rem;font-family:var(--font-display);font-weight:var(--wd);font-synthesis:none;font-size:.95rem;line-height:1.2;border:var(--wall) solid var(--color-primary);border-radius:var(--radius);cursor:pointer}
.glu-consent__btn--accept{background:var(--color-primary);color:var(--color-on-dark)}
.glu-consent__btn--accept:hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover);text-decoration:underline}
.glu-consent__btn--decline{background:transparent;color:var(--color-primary)}
.glu-consent__btn--decline:hover{background:var(--color-primary);color:var(--color-on-dark)}

/* ===== 21. RESPONSIVE (theme hooks) ===== */
@media (min-width:600px){
  .grid--2,.grid--3,.grid--4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .projects__grid,.team-grid,.directory__list,.guarantees{--cols:2}
  :is(.projects__grid,.team-grid,.directory__list,.guarantees) > :last-child:nth-child(odd){grid-column:1 / -1}
  .testimonials__track{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (min-width:600px) and (max-width:1023px){
  .grid:has(> .card) > .card:last-child:nth-child(odd){grid-column:1 / -1}
}
@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--2:has(> .card) > .card:last-child:nth-child(odd){grid-column:1 / -1}
  .grid--3:has(> .card) > .card:last-child:nth-child(3n+1){grid-column:1 / -1}
  .grid--3:has(> .card) > .card:last-child:nth-child(3n+2){grid-column:span 2}
  .grid--4:has(> .card) > .card:last-child:nth-child(4n+1){grid-column:1 / -1}
  .grid--4:has(> .card) > .card:last-child:nth-child(4n+2){grid-column:span 3}
  .grid--4:has(> .card) > .card:last-child:nth-child(4n+3){grid-column:span 2}
  .projects__grid,.team-grid,.directory__list,.guarantees{--cols:3}
  :is(.projects__grid,.team-grid,.directory__list,.guarantees) > :last-child:nth-child(odd){grid-column:auto}
  :is(.projects__grid,.team-grid,.directory__list,.guarantees) > :last-child:nth-child(3n+1){grid-column:1 / -1}
  :is(.projects__grid,.team-grid,.directory__list,.guarantees) > :last-child:nth-child(3n+2){grid-column:span 2}
  .testimonials__track{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (min-width:1280px){
  .page-body--aside > .prose-content > .alignfull{margin-left:0;margin-right:0}
}
@media (max-width:1199px){
  /* no JS: the mobile panel cannot open, so the top-level row shows under the bar (every page is also in the footer) */
  .no-js .site-header__inner{grid-template-rows:var(--header-h) auto;grid-template-areas:"brand actions" "nav nav"}
  .no-js .menu-toggle{display:none}
  .no-js .main-nav{display:block;grid-area:nav;padding:0 0 .5rem}
  .no-js .primary-menu{flex-direction:row;flex-wrap:wrap;gap:0 1.1rem;font-size:.95rem}
  .no-js .primary-menu > li{border-bottom:0}
  .no-js .primary-menu > li > a,.no-js .submenu-toggle--label{flex:0 0 auto;min-height:44px}
  .no-js .submenu-toggle.submenu-toggle--label{gap:.35rem;padding-right:0}
  .no-js .submenu-toggle:not(.submenu-toggle--label){display:none}
  .no-js .primary-menu > li:focus-within > .sub-menu,.no-js .primary-menu > li:hover > .sub-menu{display:block}
}
@media (max-width:1023px){
  .hero__subtitle{grid-column:1 / -1}
  h2.section-head,.directory__heading,.glu-posts__title,.local-areas__heading,.faq__heading,.silo__heading{padding-right:0;padding-bottom:34px}
  h2.section-head::after,.directory__heading::after,.glu-posts__title::after,.local-areas__heading::after,.faq__heading::after,.silo__heading::after{left:0;bottom:7px}
}
@media (max-width:767px){
  .related:not(.section),.home-picker:not(.section),.glu-prep:not(.section),.projects,.testimonials,.directory,.faq{padding:3.4rem 0}
  .related:not(.section) + .related{padding-top:0}
  .alignleft,.alignright{float:none;margin:0 0 1.5rem}
  .post-navigation .nav-links{grid-template-columns:minmax(0,1fr)}
  .post-navigation .nav-next{grid-column:1;text-align:left;border-top:1px solid var(--color-rule)}
  .glu-consent{flex-direction:column;align-items:stretch}
  .glu-consent__btn{flex:1 1 auto}
  .sticky-bar:has(> a + a){display:flex;gap:.5rem}
  .sticky-bar > a{flex:1 1 0;min-width:0}
  .search-form [type="submit"]{width:100%}
}

/* ===== 22. MOTION + FORCED COLORS + PRINT (theme hooks; same policy as blocks 15-16) ===== */
@media (prefers-reduced-motion:no-preference){
  .wp-block-search__button,.wp-block-file__button,.post-password-form input[type="submit"],.comment-form input[type="submit"],.search-form [type="submit"],.directory__action,.glu-consent__btn,.video-facade{transition:background-color var(--transition),color var(--transition),border-color var(--transition)}
  .faq__chevron svg{transition:transform var(--transition)}
  .js .readmore--height .readmore__inner{transition:max-height var(--transition)}
  .project-card::after{transition:transform .2s ease}
  .project-card:has(a:hover)::after{transform:rotate(-38deg)}
}
@media (forced-colors:active){
  .project-card,.team-card,.directory__card,.guarantee{border:2px solid CanvasText;background-image:none}
  .projects__grid,.team-grid,.directory__list,.guarantees,.grid:has(> .card){border-color:CanvasText}
  .project-card::after,.team-card::after,.directory__card::after,.guarantee::after{background:CanvasText;forced-color-adjust:none}
  h2.section-head::after,.directory__heading::after,.glu-posts__title::after,.local-areas__heading::after,.faq__heading::after,.silo__heading::after{border-color:CanvasText}
  .form-fallback,.area-check__result,.glu-consent,.fact-check__panel,.video-facade{border:2px solid CanvasText}
  .wp-block-search__button,.wp-block-file__button,.post-password-form input[type="submit"],.comment-form input[type="submit"],.search-form [type="submit"],.directory__action,.glu-consent__btn{border:2px solid ButtonText}
  .area-check__result.is-yes .area-check__msg::before{background:CanvasText;forced-color-adjust:none}
  .open-now__dot{border-color:CanvasText}
  .open-now.is-open .open-now__dot{background:CanvasText;forced-color-adjust:none}
}
@media print{
  .glu-consent,.video-facade,.video-embed,.map-embed,.comment-respond,.header-search,.promo-bar,.topbar,.readmore__btn,.post-navigation,.pagination,.page-links,.glu-posts__pagination{display:none!important}
  .js .readmore.is-collapsed .readmore__hidden{display:block!important}
  .js .readmore--height.is-collapsed .readmore__inner{max-height:none;overflow:visible;-webkit-mask-image:none;mask-image:none}
  .project-card,.team-card,.directory__card,.guarantee{break-inside:avoid}
}
