/* tokens.css */
/* Design tokens: one type scale, line heights and spacing for every page. Loaded first; the other style sheets use these.
   Type: 12 sizes on phones (390px) and 12 on desktop (1440px). Heading sizes grow smoothly from 400px to 1280px wide;
   body and lead step up once at 801px. Never set a font size in px elsewhere: pick the role. */
/* Fonts: Montserrat (body) and Titillium Web (headings), Latin subset, self-hosted from Google Fonts (licences in assets/fonts). */
@font-face { font-family: 'Montserrat'; font-style: normal; font-weight: 400 700; font-display: swap; src: url(assets/fonts/montserrat-latin-400-700.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Titillium Web'; font-style: normal; font-weight: 400; font-display: swap; src: url(assets/fonts/titillium-web-latin-400.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Titillium Web'; font-style: normal; font-weight: 600; font-display: swap; src: url(assets/fonts/titillium-web-latin-600.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Titillium Web'; font-style: normal; font-weight: 700; font-display: swap; src: url(assets/fonts/titillium-web-latin-700.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
:root {
  --fs-micro: 12px;   /* labels, step names, fine print */
  --fs-small: 14px;   /* footer links, breadcrumbs, credits, roles, compact buttons */
  --fs-ui: 15px;      /* buttons, story repair text, secondary notes */
  --fs-body: 16px;    /* paragraphs, list rows, FAQ answers (17px from 801px) */
  --fs-lead: 18px;    /* intros, FAQ questions, story problem and outcome (19px from 801px) */
  --fs-h6: clamp(20px, calc(20px + 2 * (100vw - 400px) / 880), 22px);    /* story titles, names, small titles */
  --fs-h5: clamp(22px, calc(22px + 4 * (100vw - 400px) / 880), 26px);    /* card titles (h3) */
  --fs-h4-fluid: clamp(26px, calc(26px + 4 * (100vw - 400px) / 880), 30px);
  --fs-h3-fluid: clamp(28px, calc(28px + 8 * (100vw - 400px) / 880), 36px);
  --fs-h2-fluid: clamp(30px, calc(30px + 16 * (100vw - 400px) / 880), 46px);
  --fs-h4: var(--fs-h4-fluid);    /* sub-section headings */
  --fs-h3: var(--fs-h3-fluid);    /* section headings beside content */
  --fs-h2: var(--fs-h2-fluid);    /* main section headings (the homepage caps these under its headline: recommended.css) */
  --fs-h1: clamp(36px, calc(36px + 20 * (100vw - 400px) / 880), 56px);   /* page titles */
  --fs-display: clamp(32px, calc(32px + 36 * (100vw - 400px) / 880), 68px); /* stats band numbers */
  --lh-tight: 1.1;
  --lh-heading: 1.2;
  --lh-snug: 1.45;
  --lh-body: 1.7;
  --measure: 40em;    /* about 80 characters per line */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
}
@media (min-width: 801px) {
  :root { --fs-body: 17px; --fs-lead: 19px; }
}
/* The page cross-fade opt-in sits inline in each page's <head>, not here: Chromium cancels the fade when the new page styles before this file arrives. */

/* styles.css */
:root{--cyan:#039bcf;--navy:#00245b;--white:#f5f5f5;--ink:#20334b;--muted:#596779;--line:#d5dfe7;--heading:'Titillium Web',Arial,sans-serif;--body:'Montserrat',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:#fff;color:var(--ink);font:400 var(--fs-body)/1.75 var(--body)}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%;display:block}button,a,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--cyan);outline-offset:5px}.container{width:min(1280px,calc(100% - 112px));margin-inline:auto}.skip{position:absolute;left:20px;top:-70px;z-index:50;background:#fff;padding:12px}.skip:focus{top:12px}.utility{background:var(--navy);color:white;font-size:var(--fs-micro);letter-spacing:.015em}.utility>.container{display:flex;justify-content:space-between;padding-block:9px}.utility-divider{opacity:.4;margin-inline:12px}.utility strong{font-weight:600}.site-header{background:var(--cyan);position:sticky;top:0;z-index:20}.header-inner{display:flex;justify-content:space-between;align-items:center;min-height:100px}.brand img{width:224px;height:auto}.header-inner nav{display:flex;align-items:center;gap:39px;font-size:var(--fs-small);font-weight:600;color:var(--navy)}nav>a{padding:12px 0}nav>a:hover{text-decoration:underline;text-underline-offset:7px}.nav-contact{border:1px solid var(--navy);padding:12px 21px}.nav-contact span{margin-left:25px;font-size:var(--fs-h6);font-weight:400}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1.03fr 1fr;gap:56px;padding-top:52px;padding-bottom:55px;align-items:center}.hero-copy{padding:10px 0}.eyebrow{font-size:var(--fs-micro);font-weight:700;letter-spacing:.13em;color:var(--navy);line-height:1.5;margin:0 0 23px}.hero .eyebrow{display:flex;align-items:center;gap:10px}.hero .eyebrow>span{width:22px;height:3px;background:var(--cyan)}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{font-family:var(--heading);color:var(--navy);font-weight:600;line-height:1.07}h1{font-size:var(--fs-h1);letter-spacing:-.035em;margin-bottom:29px}h1 em,h2 em,h3 em{font-style:normal;color:var(--cyan)}.hero-description{font-family:var(--heading);font-size:var(--fs-h5);line-height:1.3;font-weight:400;margin-bottom:16px;color:var(--navy)}.hero-detail{color:var(--muted);font-size:var(--fs-ui);max-width:490px;margin-bottom:27px}.hero-actions{display:flex;align-items:flex-start;flex-direction:column;gap:17px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:28px;min-height:55px;padding:13px 23px;font-size:var(--fs-small);font-weight:600;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.button span{font-size:var(--fs-h6);font-weight:400;line-height:1}.button-navy{background:var(--navy);color:#fff}.button-navy:hover{background:#0a397b}.text-link{font-size:var(--fs-small);font-weight:600;color:var(--navy);display:inline-flex;align-items:center;gap:19px}.text-link span{font-size:var(--fs-h6);transition:transform .2s}.text-link:hover span{transform:translateX(4px)}.hero-foot{border-top:1px solid var(--line);margin-top:28px;padding-top:18px;font-size:var(--fs-micro);line-height:1.6;display:flex;flex-direction:column}.hero-foot>span{font-size:var(--fs-micro);letter-spacing:.12em;color:var(--muted)}.hero-foot strong{font-weight:500}.hero-image{position:relative;align-self:stretch;margin:0;min-height:610px;background:var(--navy);overflow:hidden}.hero-image>img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:50% 50%}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,36,91,.35),transparent 30%,rgba(0,36,91,.03) 60%,rgba(0,36,91,.2))}.photo-top{position:absolute;z-index:1;top:24px;left:25px;right:25px;display:flex;justify-content:space-between;color:white;font-size:var(--fs-micro);letter-spacing:.1em;font-weight:600;text-shadow:0 1px 4px #00245b}.photo-top>span{font-weight:400}.hero-image figcaption{position:absolute;z-index:2;bottom:0;right:0;left:12%;background:var(--cyan);color:var(--navy);display:flex;align-items:center;gap:21px;padding:25px;font-family:var(--heading);font-size:var(--fs-h6);line-height:1.3}.photo-number{font-family:var(--body);font-size:var(--fs-micro);align-self:flex-start;padding-top:5px}.photo-plus{font-size:var(--fs-h2);line-height:1;margin-left:auto;font-weight:400}.trust-strip{background:var(--navy);color:white}.trust-strip>.container{display:grid;grid-template-columns:repeat(4,1fr);padding-block:30px}.trust-strip>.container>div{padding-left:30px;border-left:1px solid #34527b}.trust-strip>.container>div:first-child{border:0;padding-left:0}.trust-strip strong,.trust-strip span{display:block}.trust-strip strong{font:600 var(--fs-h5)/1.2 var(--heading);margin-bottom:7px}.trust-strip span{font-size:var(--fs-micro);color:#d0dceb}.section{padding-block:88px}.section-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:80px;margin-bottom:45px}.section-heading h2{margin:0}.section-heading>p{font-size:var(--fs-ui);color:var(--muted);max-width:470px;margin:0 0 3px}.eyebrow{margin-bottom:16px}h2{font-size:var(--fs-h2);letter-spacing:-.025em;margin-bottom:26px}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line)}.service{padding:27px 25px 21px;display:flex;flex-direction:column;border-right:1px solid var(--line);transition:background .2s}.service:last-child{border-right:0}.service:hover{background:#f0f9fc}.service-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.service-top>span{font-size:var(--fs-micro);color:var(--muted)}.service-top svg{width:43px;height:43px;color:var(--cyan)}.service h3{font-size:var(--fs-h5);line-height:1.2;margin-bottom:17px}.service>p{font-size:var(--fs-small);line-height:1.8;color:var(--muted);margin-bottom:27px}.service-bottom{margin-top:auto;padding-top:17px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-micro);font-weight:600;color:var(--navy)}.service-bottom b{font-size:var(--fs-h6);font-weight:400}.industries{background:var(--white);border-block:1px solid #e9eef2}.industry-layout{display:grid;grid-template-columns:1fr 1fr;gap:80px}.industry-tabs{border-top:1px solid var(--line)}.industry-tabs button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:24px 18px;background:transparent;color:var(--navy);border:0;border-bottom:1px solid var(--line);cursor:pointer;font-family:var(--heading);font-size:var(--fs-h5);font-weight:600}.industry-tabs small{font:400 var(--fs-micro) var(--body);margin-right:21px;vertical-align:middle}.industry-tabs b{font:400 var(--fs-h5) var(--body);color:var(--muted)}.industry-tabs button[aria-selected=true]{background:var(--navy);color:#fff;border-color:var(--navy)}.industry-tabs button[aria-selected=true] b{color:var(--cyan)}.industry-tabs button:hover:not([aria-selected=true]){background:#e9f1f6}.industry-panels{background:white;padding:33px 36px;border-top:3px solid var(--cyan);min-height:363px}.industry-panels h3{font-size:var(--fs-h3);line-height:1.15;margin-bottom:18px}.industry-panels p:not(.eyebrow){font-size:var(--fs-small);color:var(--muted)}.industry-panels .eyebrow{font-size:var(--fs-micro);color:var(--cyan)}.tags{display:flex;flex-wrap:wrap;list-style:none;margin:22px 0;padding:0;gap:8px}.tags li{font-size:var(--fs-micro);font-weight:500;border:1px solid var(--line);padding:5px 10px;color:var(--navy)}[hidden]{display:none!important}.controls{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.controls figure{margin:0;position:relative;height:510px;overflow:hidden;background:var(--navy)}.controls img{width:100%;height:100%;object-fit:cover}.controls figcaption{position:absolute;bottom:0;left:0;right:0;background:var(--navy);color:#fff;padding:18px 24px;font-size:var(--fs-micro);letter-spacing:.13em}.controls>div>p:not(.eyebrow){color:var(--muted);font-size:var(--fs-ui)}.control-features{margin:26px 0}.control-features p{padding:12px 0;border-bottom:1px solid var(--line);margin:0;font-size:var(--fs-body);font-weight:500}.control-features span{margin-right:18px;font-size:var(--fs-micro);color:var(--cyan)}.about{background:var(--navy);color:white}.about-inner{display:grid;grid-template-columns:1.15fr 1fr;gap:100px}.about h2,.about h3,.about .text-link{color:#fff}.about .eyebrow{color:#80d6f2}.about p:not(.eyebrow){font-size:var(--fs-small);color:#d2dfef;max-width:580px}.about .text-link{margin-top:12px}.about-statement{padding:0 0 0 60px;border-left:1px solid #38547c}.large-year{font:600 var(--fs-h1)/1 var(--heading);letter-spacing:-.04em;color:var(--cyan)}.about-statement>p{font-size:var(--fs-micro) !important;letter-spacing:.14em;margin-top:10px}.rule{width:50px;height:2px;background:var(--cyan);margin:24px 0}.about-statement h3{font-size:var(--fs-h3);line-height:1.15;margin-bottom:25px}.license{font-size:var(--fs-micro);letter-spacing:.07em;color:#b9cee3}.faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.faq-list{border-top:1px solid var(--line)}details{border-bottom:1px solid var(--line)}summary{display:flex;align-items:center;justify-content:space-between;gap:25px;list-style:none;cursor:pointer;padding:23px 0;font-size:var(--fs-lead);font-weight:600;color:var(--navy)}summary::-webkit-details-marker{display:none}summary span{font-size:var(--fs-h5);font-weight:400;color:var(--cyan)}details[open] summary span{transform:rotate(45deg)}details>p{font-size:var(--fs-body);color:var(--muted);margin:0;padding:0 35px 22px 0}.contact{background:var(--cyan);padding-block:65px}.contact-inner{display:flex;align-items:center;justify-content:space-between;gap:50px}.contact h2{font-size:var(--fs-h2);margin-bottom:20px}.contact p:not(.eyebrow){font-size:var(--fs-small);color:var(--navy);margin:0}.button-white{background:#fff;color:var(--navy);min-width:305px}.button-white:hover{background:var(--white)}.contact-actions{display:flex;flex-direction:column;gap:15px;align-items:center}.contact-actions>span{font-size:var(--fs-micro);color:var(--navy)}footer{background:#001b43;color:#d7e1ee;padding-top:49px}.footer-main{display:grid;grid-template-columns:1.2fr 1.3fr .8fr 1fr;gap:35px;padding-bottom:40px}.footer-main img{width:205px;height:auto}.footer-main p{font-size:var(--fs-small);line-height:1.9;margin:0}.footer-main>div{display:flex;flex-direction:column;gap:8px;font-size:var(--fs-small)}.footer-position{font-weight:600;letter-spacing:.12em;color:#78d3f1}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #314764;padding-block:18px;font-size:var(--fs-small);color:#abbcd1}
@media(min-width:1550px){.hero{padding-block:65px}.hero-image{min-height:650px}.hero-actions{flex-direction:row;align-items:center;gap:22px}.hero-detail{font-size:var(--fs-body)}}@media(max-width:1100px){.container{width:calc(100% - 64px)}.hero{gap:35px}.header-inner nav{gap:24px}.brand img{width:200px}.hero-image{min-height:620px}.section-heading,.industry-layout,.controls{gap:45px}.service{padding-inline:18px}.service h3{font-size:var(--fs-h5)}.about-inner{gap:55px}.industry-tabs button{font-size:var(--fs-h6)}.industry-panels{padding:28px}.trust-strip span{font-size:var(--fs-micro)}.trust-strip>.container>div{padding-left:20px}.hero-image figcaption{left:0}.contact-inner{gap:30px}}
@media(max-width:800px){.container{width:calc(100% - 40px)}.utility{font-size:var(--fs-micro)}.utility>.container>span{display:none}.utility>.container{justify-content:center}.header-inner{min-height:81px}.brand img{width:190px}.menu-toggle{display:flex;align-items:center;gap:12px;background:none;border:1px solid var(--navy);padding:7px 10px;font-size:var(--fs-small);color:var(--navy);cursor:pointer}.header-inner nav{display:none;position:absolute;top:81px;left:0;right:0;padding:20px;background:var(--cyan);border-top:1px solid var(--cyan);box-shadow:0 12px 20px #00245b22}.header-inner nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:7px}.nav-contact{display:flex;justify-content:space-between}.hero{padding-block:36px;gap:32px;grid-template-columns:1fr}.hero-copy{padding:0}.hero h1{font-size:var(--fs-h1)}.hero-detail{max-width:590px}.hero-actions{flex-direction:row;align-items:center;flex-wrap:wrap;gap:16px 25px}.hero-image{min-height:440px}.hero-foot{margin-top:25px}.photo-top{font-size:var(--fs-micro)}.hero-image figcaption{left:20%;padding:22px}.trust-strip>.container{grid-template-columns:1fr 1fr;gap:26px 15px;padding-block:30px}.trust-strip>.container>div:nth-child(3){border:0;padding-left:0}.trust-strip strong{font-size:var(--fs-h5)}.trust-strip span{font-size:var(--fs-micro)}.section{padding-block:58px}.section-heading{grid-template-columns:1fr;gap:24px;margin-bottom:30px}.section-heading>p{max-width:none}.section-heading h2,h2{font-size:var(--fs-h2)}.service-grid{grid-template-columns:1fr 1fr}.service:nth-child(2){border-right:0}.service:nth-child(-n+2){border-bottom:1px solid var(--line)}.service{padding:23px}.service h3{font-size:var(--fs-h3)}.service p{font-size:var(--fs-small)}.service-bottom{font-size:var(--fs-micro)}.industry-layout{grid-template-columns:1fr;gap:25px}.industry-tabs button{font-size:var(--fs-h5);padding:19px 16px}.industry-panels{min-height:350px}.controls{grid-template-columns:1fr;gap:34px}.controls figure{height:420px}.about-inner{grid-template-columns:1fr;gap:40px}.about-statement{border-left:0;border-top:1px solid #38547c;padding:30px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.large-year{grid-column:1;grid-row:1;font-size:var(--fs-h1)}.about-statement>p{grid-column:1;grid-row:2}.about-statement h3{grid-column:2;grid-row:1/3;font-size:var(--fs-h2);margin:0}.about-statement .rule{display:none}.license{grid-column:1/3;margin-top:16px}.faq{grid-template-columns:1fr;gap:20px}.faq h2{margin-bottom:10px}.contact-inner{flex-direction:column;align-items:flex-start;gap:30px}.contact h2{font-size:var(--fs-h2)}.contact-actions{align-items:flex-start}.footer-main{grid-template-columns:1fr 1fr;gap:30px}.footer-main p,.footer-main>div{font-size:var(--fs-small)}.footer-main img{width:185px}.footer-bottom{align-items:flex-start;flex-direction:column;gap:8px}.eyebrow{font-size:var(--fs-micro)}}
@media(max-width:420px){.hero h1{font-size:var(--fs-h1)}.hero-description{font-size:var(--fs-h4)}.hero-detail{font-size:var(--fs-small)}.hero-actions{align-items:flex-start;flex-direction:column}.hero-image{min-height:365px}.hero-image figcaption{left:0;font-size:var(--fs-h5)}.service-grid{grid-template-columns:1fr}.service{border-right:0;border-bottom:1px solid var(--line)}.service:last-child{border-bottom:0}.service-top{margin-bottom:12px}.service h3 br{display:none}.service p{margin-bottom:20px}.industry-panels{padding:25px}.industry-tabs button{font-size:var(--fs-h5)}.industry-tabs small{margin-right:12px}.about-statement{display:block}.about-statement h3{margin-block:20px}.contact .button{min-width:0;width:100%}.footer-main{grid-template-columns:1fr}.footer-position{display:none}.photo-top{left:18px;right:18px}.trust-strip strong{font-size:var(--fs-h5)}}
/* Readable working copy, with compact type reserved for secondary labels. */
.hero-detail,.section-heading>p,.service>p,.industry-panels p:not(.eyebrow),.controls>div>p:not(.eyebrow),.about p:not(.eyebrow),details>p,.contact p:not(.eyebrow){font-size:var(--fs-body)}
.service-bottom,.tags li,.trust-strip span,.footer-main p,.footer-main>div,.contact-actions>span{font-size:var(--fs-small)}
.utility,.eyebrow,.photo-top,.photo-number,.hero-foot>span,.industry-panels .eyebrow,.controls figcaption,.license,.control-features span,.about-statement>p{font-size:var(--fs-micro) !important}
.hero-foot{font-size:var(--fs-small)}.hero-copy,.hero-image,.section-heading>*{min-width:0}.industry-tabs button{min-height:64px}.menu-toggle{min-height:44px}button,a,summary{touch-action:manipulation}h1,h2,h3{text-wrap:balance}.footer-main a:hover{text-decoration:underline;text-underline-offset:4px}.contact-actions>span{max-width:310px}.about-statement>p{max-width:100%}
@media(max-width:800px){.hero-detail{font-size:var(--fs-body)}.photo-top{flex-wrap:wrap;gap:6px}.hero-image figcaption{left:0}.trust-strip span{font-size:var(--fs-micro)}.trust-strip>.container>div{padding-left:14px}.trust-strip>.container>div:nth-child(odd){padding-left:0}.contact-actions>span{font-size:var(--fs-small)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
/* Print: page content only, black on white, every FAQ answer open, addresses shown for links to other sites. */
@media print{.skip,.site-header,.nav-backdrop,.mobile-contact-bar,section.contact,.contact-guide,.guide-embed,form,.photo-dialog{display:none!important}*{color:#000!important;background:transparent!important;box-shadow:none!important;text-shadow:none!important}body{background:#fff!important}a[href^="http"]:not([href*="lewismechanical.com"])::after{content:" (" attr(href) ")";font-size:.85em;overflow-wrap:anywhere}}
@media print{details::details-content{display:block;content-visibility:visible}}
@media print{footer .footer-main>a>img{filter:brightness(0)!important}} /* the white footer logo prints dark so it shows on paper */
/* Reading measure: paragraphs stay near 80 characters a line (zero specificity, so any layout rule wins). Not on list rows
   or on paragraphs drawn as rows (a rule above or below), which stay as wide as their column. */
:where(main) :where(p:not(.container, .emergency-note, .guide-alt, .co2-brand-note, .control-features p)) { max-width: var(--measure); }

/* expanded.css */
/* Navigation, service pages and enquiry preview. */
.header-inner nav{gap:23px}.brand img{width:205px}.nav-group{position:relative}.nav-trigger{padding:18px 0;display:flex;align-items:center;gap:9px;background:none;border:0;color:var(--navy);font-size:var(--fs-small);font-weight:600;cursor:pointer}.nav-trigger>span{font-size:var(--fs-lead)}.nav-trigger[aria-expanded=true]{text-decoration:underline;text-underline-offset:7px}.nav-dropdown{position:absolute;top:calc(100% + 13px);left:-20px;width:315px;background:white;padding:12px;box-shadow:0 16px 35px #00245b26;border-top:3px solid var(--navy);color:var(--navy)}.nav-dropdown a{display:block;font-size:var(--fs-small);line-height:1.45;padding:13px 12px;font-weight:500}.nav-dropdown a:hover,.nav-dropdown a:focus-visible{background:#edf6fa}.nav-contact{font-size:var(--fs-small);padding:12px 16px}.nav-contact span{margin-left:16px}.hero-description{font-size:var(--fs-h5)}.hero-image{min-height:650px}.hero h1{font-size:var(--fs-h1)}.hero-foot strong{font-size:var(--fs-small)}.service-grid{grid-template-columns:repeat(3,1fr)}.service{border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.service:nth-child(3n){border-right:0}.service:nth-last-child(-n+3){border-bottom:0}.service-symbol{color:var(--cyan);font:400 var(--fs-h3)/1 var(--heading)}.service h3{min-height:62px}.service-top{margin-bottom:18px}.check-list{list-style:none;padding:0;margin:0 0 29px}.check-list li{padding:13px 0 13px 25px;position:relative;border-bottom:1px solid var(--line);color:var(--navy);font-size:var(--fs-body)}.check-list li:before{content:'+';position:absolute;left:0;color:var(--cyan);font-weight:700}.industry-detail-link{display:block;font-size:var(--fs-small);font-weight:600;color:var(--navy);text-decoration:underline;text-underline-offset:4px;margin-top:18px}.project-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.project-grid>a{background:var(--white);border:1px solid var(--line);display:flex;flex-direction:column}.project-grid img{width:100%;height:280px;object-fit:cover}.project-grid>a>div{padding:23px;flex:1}.project-grid span{font-size:var(--fs-micro);letter-spacing:.09em;color:var(--cyan);font-weight:700}.project-grid h3{font-size:var(--fs-h4);line-height:1.18;margin:13px 0 25px}.project-grid p{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-small);color:var(--navy);margin:0}.project-grid b{font-size:var(--fs-h5);font-weight:400}.project-grid a:hover h3{text-decoration:underline;text-underline-offset:5px}.testimonial{background:#eaf5fa;padding:40px 0}.testimonial>.container{display:flex;align-items:center;gap:30px}.quote-mark{font:700 var(--fs-h1)/1 var(--heading);color:var(--cyan)}blockquote{margin:0;flex:1;font:400 var(--fs-h5)/1.35 var(--heading);color:var(--navy);max-width:700px}blockquote cite{display:block;font:500 var(--fs-small)/1.5 var(--body);margin-top:16px;font-style:normal}.testimonial a{font-size:var(--fs-small);max-width:140px;color:var(--navy);text-decoration:underline;text-underline-offset:4px}.enquiry-layout{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start}.enquiry-layout>div>p{max-width:510px}.enquiry-layout .contact-phone{display:inline-flex;gap:28px;font:600 var(--fs-h3)/1.3 var(--heading);color:var(--navy);margin:23px 0 18px}.contact .emergency-note{font-size:var(--fs-small);line-height:1.8;border-left:2px solid var(--navy);padding-left:16px;margin-bottom:30px}.next-steps h3{font-size:var(--fs-h5);margin-bottom:15px}.contact .next-steps p{font-size:var(--fs-small);margin:10px 0}.next-steps span{margin-right:12px;font-size:var(--fs-micro)}.contact .contact-proof{font-size:var(--fs-micro);margin-top:26px}.enquiry-form{background:white;padding:33px;color:var(--ink)}.enquiry-form h3{font-size:var(--fs-h3);margin-bottom:12px}.enquiry-form .form-demo{background:#edf5f8;color:#425466;font-size:var(--fs-small);padding:10px 13px;margin-bottom:22px;border-left:3px solid var(--cyan)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.enquiry-form label{display:block;font-size:var(--fs-small);font-weight:600;color:var(--navy);margin-bottom:18px}.enquiry-form label>span{font-weight:400;font-size:var(--fs-micro)}.enquiry-form input,.enquiry-form select,.enquiry-form textarea{display:block;width:100%;border:1px solid #97aaba;background:white;color:var(--ink);border-radius:0;padding:12px;font:400 var(--fs-body)/1.4 var(--body);margin-top:7px}.enquiry-form textarea{resize:vertical;min-height:90px}.enquiry-form input:focus,.enquiry-form select:focus,.enquiry-form textarea:focus{outline:2px solid var(--cyan);outline-offset:1px}.enquiry-form small{display:block;font-size:var(--fs-micro);color:var(--muted);margin:-10px 0 20px}.enquiry-form button{border:0;width:100%;cursor:pointer}.enquiry-form .form-status{font-size:var(--fs-small);color:var(--navy);margin-top:15px}.enquiry-form .form-status:empty{display:none}.real-contact{font-size:var(--fs-micro);color:var(--navy);display:block;text-decoration:underline;text-underline-offset:3px;margin-top:18px}.mobile-contact-bar{display:none}.faq a{text-decoration:underline;text-underline-offset:3px}.breadcrumbs{font-size:var(--fs-micro);color:var(--muted);padding:30px 0 18px}.breadcrumbs a{text-decoration:underline;text-underline-offset:3px}.detail-hero{padding-bottom:50px}.detail-hero-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:70px;align-items:center}.detail-hero h1{font-size:var(--fs-h1);line-height:1.08}.detail-hero-grid>div>p:not(.eyebrow){color:var(--muted);font-size:var(--fs-body);max-width:630px}.detail-hero-grid>img{height:450px;width:100%;object-fit:cover}.detail-call{margin:19px 0 0;font-size:var(--fs-body) !important}.detail-call a{color:var(--navy);font-weight:600}.detail-body{display:grid;grid-template-columns:1.3fr .8fr;gap:85px;border-top:1px solid var(--line)}.detail-body h2{font-size:var(--fs-h3);line-height:1.15}.detail-body>div>p{color:var(--muted);margin-bottom:35px}.detail-body aside{background:var(--white);padding:29px;align-self:start;border-top:3px solid var(--cyan)}.aside-contact{font-size:var(--fs-small);color:var(--muted)}.aside-proof{font-size:var(--fs-micro);color:var(--muted);margin-top:20px;margin-bottom:0}.detail-body aside .button{font-size:var(--fs-small);padding:13px 15px;gap:15px}.related{padding-bottom:70px}.related h2{font-size:var(--fs-h4)}.related>div{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.related a{display:flex;align-items:center;justify-content:space-between;padding:17px;border:1px solid var(--line);font-size:var(--fs-small);color:var(--navy)}.related a:hover{background:var(--white)}.related span{margin-left:10px}.detail-cta{background:var(--cyan);padding:50px 0}.detail-cta>.container{display:flex;align-items:center;justify-content:space-between;gap:35px}.detail-cta h2{font-size:var(--fs-h3);max-width:570px;margin:0}.projects-intro{padding-bottom:40px}.projects-intro h1{font-size:var(--fs-h1)}.projects-intro>p:last-child{max-width:730px;color:var(--muted)}.project-story{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center;padding-block:50px;border-top:1px solid var(--line);scroll-margin-top:105px}.project-story>img{height:480px;width:100%;object-fit:cover}.project-story p:not(.eyebrow){color:var(--muted)}.project-story .button{display:flex;width:max-content;max-width:100%;margin-top:25px}
@media(max-width:1100px){.header-inner nav{gap:15px}.brand img{width:183px}.nav-contact{font-size:var(--fs-micro);padding:10px}.nav-contact span{margin-left:10px}.nav-dropdown{left:auto;right:-30px}.enquiry-layout{gap:35px}.form-row{grid-template-columns:1fr;gap:0}.project-grid img{height:230px}.project-grid>a>div{padding:18px}.detail-body{gap:40px}.detail-hero-grid{gap:40px}}
@media(max-width:800px){body{padding-bottom:calc(62px + env(safe-area-inset-bottom))}.header-inner nav.is-open{gap:0;max-height:calc(100dvh - 155px);overflow-y:auto}.nav-group{width:100%}.nav-trigger{padding:14px 0;justify-content:space-between;width:100%;font-size:var(--fs-body)}.nav-dropdown{position:static;width:100%;box-shadow:none;padding:7px;background:#eaf5fa;border:0}.nav-dropdown a{padding:12px}.header-inner nav>a{padding:15px 0}.header-inner nav .nav-contact{padding:14px;margin-top:12px;font-size:var(--fs-ui)}.hero h1{font-size:var(--fs-h1)}.hero-image{min-height:400px}.hero-description{font-size:var(--fs-h4)}.hero .eyebrow{font-size:var(--fs-micro) !important}.service-grid{grid-template-columns:1fr 1fr}.service:nth-child(n){border-bottom:1px solid var(--line);border-right:1px solid var(--line)}.service:nth-child(2n){border-right:0}.service:nth-last-child(-n+2){border-bottom:0}.service h3{font-size:var(--fs-h4);min-height:0}.project-grid{grid-template-columns:1fr;gap:24px}.project-grid img{height:290px}.project-grid>a>div{padding:24px}.project-grid h3{font-size:var(--fs-h4)}.testimonial>.container{flex-wrap:wrap;gap:15px}.quote-mark{display:none}blockquote{font-size:var(--fs-h4);flex-basis:100%}.testimonial a{max-width:none}.enquiry-layout{grid-template-columns:1fr;gap:35px}.enquiry-form{padding:25px}.form-row{grid-template-columns:1fr 1fr;gap:14px}.contact h2{font-size:var(--fs-h2)}.mobile-contact-bar{display:grid;grid-template-columns:1fr 1.3fr;position:fixed;bottom:0;left:0;right:0;z-index:25;box-shadow:0 -3px 18px #00245b15;padding-bottom:env(safe-area-inset-bottom);background:var(--navy)}.mobile-contact-bar a{background:white;color:var(--navy);text-align:center;font-size:var(--fs-small);font-weight:600;padding:17px 8px;border-top:1px solid var(--line)}.mobile-contact-bar a:last-child{color:white;background:var(--navy);border-color:var(--navy)}.mobile-contact-bar span{margin-left:15px}.detail-hero-grid{grid-template-columns:1fr;gap:30px}.detail-hero h1{font-size:var(--fs-h1)}.detail-hero-grid>img{height:350px}.detail-body{grid-template-columns:1fr;gap:35px}.detail-body h2{font-size:var(--fs-h2)}.detail-body aside{padding:25px}.related>div{grid-template-columns:1fr}.detail-cta>.container{align-items:flex-start;flex-direction:column;gap:25px}.detail-cta h2{font-size:var(--fs-h2)}.detail-cta .button{min-width:0;max-width:100%;gap:16px}.project-story{grid-template-columns:1fr;gap:30px;padding-block:35px}.project-story>img{height:380px}.project-story h2{font-size:var(--fs-h2)}.projects-intro h1{font-size:var(--fs-h1)}.breadcrumbs{font-size:var(--fs-micro)}.footer-bottom{padding-bottom:25px}}
@media(max-width:440px){.service-grid{grid-template-columns:1fr}.service:nth-child(n){border-right:0;border-bottom:1px solid var(--line)}.service:last-child{border-bottom:0}.form-row{grid-template-columns:1fr;gap:0}.hero h1{font-size:var(--fs-h1)}.hero .button{gap:15px;font-size:var(--fs-small);padding-inline:17px}.contact .contact-phone{font-size:var(--fs-h2)}.contact .enquiry-form{padding:22px}.industry-panels{padding:22px}}
.rental-catalog{padding-block:30px 80px;scroll-margin-top:115px}.rental-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.rental-card{border:1px solid var(--line);scroll-margin-top:115px;display:flex;flex-direction:column}.rental-image{height:300px;background:#f5f5f5;padding:20px;display:grid;place-items:center}.rental-image img{height:100%;width:100%;object-fit:contain}.rental-copy{padding:30px;display:flex;flex-direction:column;flex:1}.rental-copy h2{font-size:var(--fs-h4);line-height:1.15}.rental-copy>p:not(.eyebrow){color:var(--muted);font-size:var(--fs-body)}.rental-copy .button{margin-top:auto;align-self:flex-start}.rental-copy .check-list li{font-size:var(--fs-body)}.rental-help{display:flex;align-items:center;justify-content:space-between;gap:30px;background:var(--white);padding:35px;margin-top:35px}.rental-help h2{font-size:var(--fs-h4);max-width:580px}.rental-help p{max-width:650px;color:var(--muted);margin:0}.rental-help .button{flex-shrink:0}.header-inner nav{gap:18px}.nav-trigger{font-size:var(--fs-small);white-space:nowrap}.header-inner .brand img{width:193px}
@media(max-width:1100px){.header-inner nav{gap:12px}.header-inner .brand img{width:165px}.nav-trigger{font-size:var(--fs-micro)}.header-inner nav>a{font-size:var(--fs-micro)}.nav-contact span{margin-left:5px}}
@media(max-width:950px){.menu-toggle{display:flex;align-items:center;gap:12px;background:none;border:1px solid var(--navy);padding:7px 10px;font-size:var(--fs-small);color:var(--navy);cursor:pointer}.header-inner{min-height:81px}.header-inner .brand img{width:190px}.header-inner nav{display:none;position:absolute;top:81px;left:0;right:0;padding:20px;background:var(--cyan);border-top:1px solid var(--cyan);box-shadow:0 12px 20px #00245b22}.header-inner nav.is-open{display:flex;align-items:stretch;flex-direction:column;gap:0;max-height:calc(100dvh - 155px);overflow-y:auto}.nav-group{width:100%}.nav-trigger{padding:14px 0;justify-content:space-between;width:100%;font-size:var(--fs-body)}.nav-dropdown{position:static;width:100%;box-shadow:none;padding:7px;background:#eaf5fa;border:0}.header-inner nav>a{font-size:var(--fs-ui);padding:14px 0}.header-inner nav .nav-contact{padding:14px;margin-top:10px}.rental-grid{grid-template-columns:1fr}.rental-help{flex-direction:column;align-items:flex-start}.rental-copy{padding:24px}.rental-image{height:290px}.rental-catalog{padding-bottom:50px}}
.rental-truck-photo{position:relative;width:100%;max-width:450px;aspect-ratio:1;overflow:hidden;justify-self:center}.rental-truck-photo img{position:absolute;width:100%;height:100%;object-fit:cover}

/* polish.css */
/* Shared finishing layer: navigation, page rhythm and interaction states. */
html { scroll-padding-top: 116px; scroll-padding-bottom: 84px; }
@media (prefers-reduced-motion: no-preference) { html { scroll-behavior: smooth; } }
p { text-wrap: pretty; }
/* A phone number split across two lines is hard to read and dial. */
a[href^="tel:"] { white-space: nowrap; }
.header-inner { gap: 26px; min-height: 94px; }
.header-inner .brand { flex-shrink: 0; }
.header-inner .brand img { width: 202px; }
.header-inner nav { gap: 23px; }
.header-inner nav > a, .nav-trigger { font-size: var(--fs-small); }
.nav-trigger { gap: 10px; min-height: 48px; }
.nav-trigger > span { width: 7px; height: 7px; font-size: 0; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .18s; }
.nav-trigger[aria-expanded=true] { text-decoration: none; }
.nav-trigger[aria-expanded=true] > span { transform: translateY(2px) rotate(225deg); }
.nav-trigger:hover, .nav-service:hover { text-decoration: underline; text-underline-offset: 7px; }
.nav-dropdown { top: calc(100% + 8px); width: 330px; padding: 8px; border-top: 3px solid var(--navy); box-shadow: 0 12px 32px #00245b24; }
.nav-dropdown a { padding: 13px 14px; font-size: var(--fs-small); font-weight: 500; min-height: 46px; }
.nav-dropdown a + a { border-top: 1px solid #edf1f5; }
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { color: var(--navy); background: #edf6fa; }
.header-inner nav .nav-contact { padding: 11px 17px; background: var(--navy); color: white; white-space: nowrap; text-decoration: none; }
.header-inner nav .nav-contact:hover { background: #0a397b; }
.nav-contact span { margin-left: 16px; }
.site-header a:focus-visible, .site-header button:focus-visible { outline-color: var(--navy); outline-offset: 3px; }
.site-header .nav-contact:focus-visible { outline-color: white; }
.hero { gap: clamp(32px, 4vw, 60px); padding-block: 46px 50px; }
.hero h1 { font-size: var(--fs-h1); line-height: 1.04; margin-bottom: 24px; }
.hero-image { min-height: 575px; }
.hero-image:after { pointer-events: none; background: linear-gradient(180deg, #00245b40, transparent 28%); }
.hero-detail { max-width: 510px; line-height: 1.8; margin-bottom: 26px; }
.hero-foot { padding-top: 18px; margin-top: 24px; gap: 3px; }
.hero-foot strong { line-height: 1.65; }
.hero .button { max-width: 100%; }
.trust-strip > .container { padding-block: 28px; }
.section { padding-block: 80px; }
.section-heading { gap: 60px; margin-bottom: 36px; }
.section-heading h2 { line-height: 1.12; }
.section-heading > p { max-width: 510px; line-height: 1.8; }
.service { padding: 26px; }
.service h3 { min-height: 64px; font-size: var(--fs-h5); }
.service > p { line-height: 1.75; }
.service:hover, .service:focus-visible { background: #f0f9fc; }
.service:focus-visible { outline-offset: -4px; }
.service-bottom { font-size: var(--fs-small); min-height: 42px; }
.service-symbol { font-weight: 400; }
.industry-panels { padding: 34px; }
.industry-detail-link { line-height: 1.6; text-decoration-thickness: 1px; }
.controls { padding-bottom: 42px; }
.project-section { padding-top: 42px; }
.project-grid > a { background: white; transition: border-color .18s, box-shadow .18s; }
.project-grid > a:hover, .project-grid > a:focus-visible { border-color: #8caac0; box-shadow: 0 8px 24px #00245b0d; }
.project-grid > a > div { display: flex; flex-direction: column; padding: 26px; }
.project-grid h3 { margin-bottom: 25px; }
.project-grid p { margin-top: auto; }
.testimonial > .container { gap: 28px; }
.testimonial a { line-height: 1.7; }
.contact { padding-block: 72px; }
.enquiry-layout { gap: 60px; }
.enquiry-form { padding: 34px; box-shadow: 0 12px 32px #00245b13; }
.contact p.emergency-note { margin: 0 0 28px; padding-left: 17px; line-height: 1.8; }
.contact .next-steps p { margin: 11px 0; line-height: 1.75; }
.contact p.contact-proof { margin-top: 28px; line-height: 1.85; }
.contact .enquiry-form p.form-demo { margin: 0 0 24px; padding: 12px 14px; font-size: var(--fs-small); line-height: 1.65; }
.enquiry-form label { margin-bottom: 21px; line-height: 1.65; }
.enquiry-form small { margin: 7px 0 0; font-weight: 400; line-height: 1.6; }
.enquiry-form input, .enquiry-form select { min-height: 50px; }
.enquiry-form textarea { min-height: 116px; }
.enquiry-form input, .enquiry-form textarea { scroll-margin-block: 120px 100px; }
.contact .enquiry-form p.form-status:not(:empty) { margin-top: 18px; padding: 14px; background: #edf6fa; font-size: var(--fs-small); }
.real-contact { line-height: 1.8; }
.detail-hero { padding-bottom: 56px; }
.detail-hero-grid { gap: 56px; }
.detail-hero h1 { margin-bottom: 24px; }
.detail-hero-grid > div > p:not(.eyebrow) { line-height: 1.85; }
.related a:hover, .related a:focus-visible { background: #edf6fa; border-color: #8caac0; }
.rental-copy h2 { min-height: 0; margin-bottom: 18px; }
.rental-image { display: block; height: 300px; flex: 0 0 300px; overflow: hidden; padding: 24px; border-bottom: 1px solid var(--line); background: #fff; }
.rental-image img { display: block; width: 100%; height: 100%; min-width: 0; min-height: 0; object-fit: contain; }
.rental-copy { background: white; }
.rental-copy .check-list { font-variant-numeric: tabular-nums; }
.rental-copy .button { max-width: 100%; }
.footer-main a { width: fit-content; }
.service-top svg.service-icon { color: var(--cyan); width: 42px; height: 42px; }
.footer-main { grid-template-columns: 1fr 1.15fr .85fr 1.4fr; gap: 35px; }
.footer-main h2 { font: 600 var(--fs-small)/1.4 var(--body); color: white; margin: 0 0 10px; letter-spacing: 0; }
.footer-main .footer-services, .footer-main .footer-explore { gap: 9px; font-size: var(--fs-small); line-height: 1.7; }
.service-questions { padding-block: 0 64px; }
.service-questions h2 { font-size: var(--fs-h3); }
.service-question-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 38px; }
.service-question-grid article { border-top: 2px solid var(--cyan); padding-top: 24px; }
.service-question-grid h3 { font-size: var(--fs-h5); line-height: 1.25; margin-bottom: 16px; }
.service-question-grid p { color: var(--muted); margin: 0; }
.service-question-grid a { color: var(--navy); text-decoration: underline; text-underline-offset: 3px; }
.form-row { position: relative; }
.form-row .contact-field-hint { grid-column: 2; margin: -13px 0 20px; }
@media (max-width: 1100px) { .form-row .contact-field-hint { grid-column: 1; } }
@media (min-width: 951px) and (max-width: 1150px) {
  .header-inner nav { gap: 15px; }
  .header-inner .brand img { width: 178px; }
  .header-inner nav > a, .nav-trigger { font-size: var(--fs-micro); }
  .header-inner nav .nav-contact { padding: 10px 12px; }
}
@media (max-width: 950px) {
  .header-inner { min-height: 81px; }
  .header-inner .brand img { width: 190px; }
  .header-inner nav { top: 81px; }
  .header-inner nav.is-open { gap: 0; overscroll-behavior: contain; }
  .header-inner nav > a, .nav-trigger { font-size: var(--fs-body); }
  .nav-trigger { min-height: 52px; }
  .nav-dropdown { width: 100%; border: 0; box-shadow: none; padding: 6px; }
  .nav-dropdown a { min-height: 48px; padding: 13px 12px; }
  .nav-dropdown a + a { border-color: #dce9f0; }
  .header-inner nav .nav-contact { padding: 14px 16px; }
  .rental-copy h2 { min-height: 0; }
}
@media (max-width: 800px) {
  html { scroll-padding-top: 96px; }
  .hero { padding-block: 34px 36px; gap: 30px; }
  .hero h1 { font-size: var(--fs-h1); }
  .hero-image { min-height: 0; height: auto; aspect-ratio: 1.08; }
  .hero-foot { margin-top: 22px; }
  .hero-foot strong { font-size: var(--fs-small); }
  .section { padding-block: 56px; }
  .section-heading { gap: 22px; margin-bottom: 30px; }
  .service { padding: 24px; }
  .service h3 { min-height: 0; }
  .controls { padding-bottom: 28px; }
  .project-section { padding-top: 28px; }
  .industry-panels { padding: 28px; }
  .contact { padding-block: 52px; }
  .enquiry-layout { gap: 32px; }
  .enquiry-form { padding: 28px; }
  .form-row { grid-template-columns: 1fr; gap: 0; }
  .detail-hero-grid { gap: 28px; }
  .detail-hero { padding-bottom: 38px; }
  .detail-hero h1 { font-size: var(--fs-h1); }
  .project-grid > a > div { padding: 24px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 32px; }
  .service-question-grid { grid-template-columns: 1fr; gap: 28px; }
  .service-questions { padding-bottom: 46px; }
  .form-row .contact-field-hint { grid-column: 1; }
}
@media (max-width: 440px) {
  .header-inner { gap: 12px; }
  .header-inner .brand img { width: clamp(150px, 48vw, 190px); }
  .menu-toggle { flex-shrink: 0; }
  .hero h1 { font-size: var(--fs-h1); }
  .hero-description { font-size: var(--fs-h4); }
  .hero-actions { align-items: stretch; }
  .hero .button { padding-inline: 18px; font-size: var(--fs-small); }
  .hero .text-link { padding-block: 7px; }
  .photo-top { font-size: var(--fs-micro) !important; }
  .industry-tabs button { font-size: var(--fs-h5); }
  .industry-panels { padding: 24px; }
  .section-heading h2, .faq h2 { font-size: var(--fs-h2); }
  .contact h2 { font-size: var(--fs-h2); }
  .contact .enquiry-form { padding: 24px 20px; }
  .rental-help { padding: 25px; }
  .utility-divider { margin-inline: 6px; }
  .footer-main > a, .footer-main > p { grid-column: 1 / -1; }
  .footer-main { gap: 28px 20px; }
}
.enquiry-form, .rental-card, .rental-catalog, .project-story { scroll-margin-top: 16px; }

.utility > .container > a:only-child { margin-left: auto; }

/* photos.css */
.gallery-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.gallery-jump a{border:1px solid var(--line);padding:10px 15px;font-size:var(--fs-small);font-weight:600;color:var(--navy)}.gallery-jump a:hover,.gallery-jump a:focus-visible{background:var(--navy);color:white}
.photo-section{padding-block:48px 64px;border-top:1px solid var(--line);scroll-margin-top:16px}.photo-section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:50px;align-items:end;margin-bottom:30px}.photo-section-heading h2{font-size:var(--fs-h3);margin-bottom:0}.photo-section-heading>p{margin:0;color:var(--muted);max-width:480px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.gallery-photo{margin:0;min-width:0;scroll-margin-top:16px}.gallery-image-link{display:block;position:relative;border:1px solid var(--line);background:#f5f7f9}.gallery-frame{display:block;aspect-ratio:3/2;padding:14px;overflow:hidden}.gallery-frame img{display:block;width:100%;height:100%;object-fit:contain}.gallery-image-link:hover{border-color:#5d8ba8}.photo-enlarge{display:block;color:var(--navy);font-size:var(--fs-micro);font-weight:600;background:#fff;padding:10px 15px;border-top:1px solid var(--line)}.gallery-photo figcaption{padding:19px 0 0}.gallery-photo h3{font-size:var(--fs-h5);line-height:1.2;margin:0 0 10px}.gallery-photo figcaption p{font-size:var(--fs-small);color:var(--muted);margin:0;line-height:1.7}
.detail-photo{display:block;min-width:0;background:#f5f7f9;border:1px solid var(--line)}.detail-photo img{width:100%;height:auto;max-height:460px;object-fit:contain}.wide-installation{grid-template-columns:1fr}.wide-installation>div:first-child{max-width:850px}.wide-installation .detail-photo img{max-height:none}.project-grid img{object-fit:contain;background:#f5f7f9}.photo-cta{background:linear-gradient(#00245beb,#00245beb),url('assets/original-site/partners-and-clients-page-landing.jpg') center/cover}.photo-cta h2{color:white}
body:has(.service-questions) .detail-body aside{background-color:#f5f7f9}.team-section{padding-bottom:28px}.team-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px}.team-grid article{min-width:0}.team-grid img{width:100%;height:auto;aspect-ratio:497/540;object-fit:contain;background:#f5f7f9}.team-grid h3{font-size:var(--fs-h6);line-height:1.2;margin:18px 0 8px}.team-grid p{font-size:var(--fs-small);color:var(--muted);line-height:1.6;margin:0}
.photo-dialog{position:fixed;inset:0;border:0;background:transparent;color:white;width:min(1200px,96vw);max-width:96vw;max-height:94dvh;padding:0;overflow:visible}.photo-dialog::backdrop{background:#001328ef}.photo-dialog-inner{background:#071e34;padding:16px;display:flex;flex-direction:column;max-height:94dvh}.photo-close{align-self:flex-end;display:flex;gap:16px;align-items:center;background:none;border:1px solid #7a92a7;color:white;padding:8px 14px;margin-bottom:12px;cursor:pointer;min-height:44px}.photo-close span{font-size:var(--fs-h5);line-height:1}.photo-dialog-image{display:block;min-height:0;width:100%;height:70dvh;object-fit:contain;background:#06172a}.photo-dialog-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;padding-top:14px}.photo-dialog-caption{margin:0;font-size:var(--fs-small);line-height:1.5}.photo-dialog-footer>div{display:flex;align-items:center;gap:14px;flex-shrink:0}.photo-dialog-footer button{width:44px;height:44px;background:transparent;border:1px solid #7a92a7;color:white;font-size:var(--fs-h6);cursor:pointer}.photo-dialog button:hover{background:#17415f}.photo-counter{font-size:var(--fs-micro);font-variant-numeric:tabular-nums}.photo-open{overflow:hidden}
.maintenance-photo-panel{background:linear-gradient(#00245be6,#00245be6),url('assets/original-site/service-and-maint-page-blue-bg.jpg') center/cover!important;color:white}.maintenance-photo-panel .eyebrow,.maintenance-photo-panel .check-list li,.maintenance-photo-panel p{color:white}.maintenance-photo-panel .check-list li{border-color:#46617d}.maintenance-photo-panel .button{background:white;color:var(--navy)}
@media(max-width:1000px){.team-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.team-grid img{max-height:270px;object-position:left}.photo-section-heading{gap:30px}.photo-dialog{max-height:94dvh}}
@media(max-width:700px){.photo-grid{grid-template-columns:1fr;gap:30px}.photo-section{padding-block:35px 44px}.photo-section-heading{grid-template-columns:1fr;gap:18px;margin-bottom:24px}.photo-section-heading h2{font-size:var(--fs-h2)}.gallery-frame{padding:10px}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 18px}.team-grid h3{font-size:var(--fs-h5)}.photo-dialog-inner{padding:12px}.photo-dialog-footer{align-items:flex-start;flex-direction:column;gap:10px}.photo-dialog-image{height:60dvh}.photo-dialog-caption{font-size:var(--fs-small)}.gallery-jump{gap:8px}.gallery-jump a{font-size:var(--fs-micro);padding:9px 12px}.detail-photo img{max-height:380px}}
.photo-dialog-image{width:auto;height:auto;max-width:100%;max-height:70dvh;margin-inline:auto}@media(max-width:700px){.photo-dialog-image{height:auto;max-height:60dvh}}
/* Field photos (2026-11): job-site photos. Frames reuse .gallery-image-link (1px line, hover border). */
.crew-photo,.field-photo,.field-pair figure,.area-photos figure{margin:0}
.crew-photo img,.field-photo img,.field-pair img,.area-photos img{display:block;width:100%;height:auto}
.crew-photo figcaption,.field-photo figcaption{padding-top:12px;font-size:var(--fs-small);color:var(--muted);line-height:1.6}
.area-photos,.field-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.area-photos{grid-column:1/-1}
.area-photos img,.field-pair img{aspect-ratio:3/2;object-fit:cover}
.field-pair{margin-block:8px 56px}
.field-pair img[src*="field-tech-chiller"]{object-position:50% 70%}
.field-pair img[src*="field-tanks-timber-roof"]{object-position:50% 100%}
.crew-photo{max-width:900px;margin-bottom:44px}
.crew-photo img{aspect-ratio:16/10;object-fit:cover;object-position:50% 85%}
.field-photo{margin-top:40px}
.field-photo-crop{max-width:560px}
.field-photo-crop img{aspect-ratio:4/3;object-fit:cover;object-position:50% 62%}
.field-photo-crop img[src*="field-copper-manifold"]{object-position:50% 80%}
.install-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.install-steps .gallery-frame{aspect-ratio:3/4;padding:0}
.install-steps .gallery-frame img{width:100%;height:100%;object-fit:cover}
.install-steps .gallery-photo figcaption{padding-top:14px}
.install-steps .gallery-photo h3{font-size:var(--fs-h5);margin:0 0 6px}
.projects-page .install-steps .gallery-photo figcaption p{font-size:var(--fs-body);line-height:1.6}
.projects-page .selected-work-grid .gallery-photo.field-crop:not(.control-panel-closeup) .gallery-frame{aspect-ratio:2.2/1;display:block}
.projects-page .selected-work-grid .gallery-photo.field-crop:not(.control-panel-closeup) .gallery-frame img{width:100%;height:100%;object-fit:cover}
.projects-page .selected-work-grid .field-crop img[src*="field-pump-row"]{object-position:50% 78%}
#piping .gallery-photo.field-crop{max-width:none}
@media(max-width:700px){.area-photos,.field-pair{grid-template-columns:1fr;gap:16px}.field-photo{margin-top:30px}.crew-photo{margin-bottom:32px}.install-steps{gap:10px}.install-steps .gallery-photo figcaption p{display:none}.install-steps .gallery-photo h3{font-size:var(--fs-small)}.field-pair{margin-block:4px 40px}}
/* Owner 2026-11-11: the homepage area photos are 16:9 so the van and the truck in 102 both stay in frame */
.area-photos img{aspect-ratio:16/9}
.area-photos img[src*="field-trucks-cooling-tower"]{object-position:2% 50%}

/* conversion.css */
/* Clear contact choices and focused service / area pages. */
.button-outline { border: 1px solid var(--navy); background: white; color: var(--navy); }
.button-outline:hover { background: #edf6fa; }
.home-broad .conversion-actions { flex-direction: column; align-items: stretch; max-width: 315px; gap: 12px; }
.home-broad .conversion-actions .button { font-size: var(--fs-small); gap: 16px; }
.home-broad .testimonial { padding-block: 28px; }
.home-broad .testimonial blockquote { font-size: var(--fs-h6); line-height: 1.4; }
.home-broad .testimonial .quote-mark { font-size: var(--fs-h1); }
.specific-services { padding-block: 12px 48px; }
.specific-services h2 { font-size: var(--fs-h3); margin-bottom: 24px; }
.specific-services>div { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 40px; }
.specific-services a { position: relative; display: flex; flex-direction: column; padding: 22px 30px 22px 0; border-top: 1px solid var(--line); gap: 7px; }
.specific-services strong { font: 600 var(--fs-h5)/1.2 var(--heading); color: var(--navy); }
.specific-services a>span:not([aria-hidden]) { font-size: var(--fs-small); color: var(--muted); }
.specific-services a>[aria-hidden] { position: absolute; right: 0; top: 24px; color: var(--navy); }
.specific-services a:hover strong { text-decoration: underline; text-underline-offset: 4px; }
.service-area-section { display: grid; grid-template-columns: 1.25fr 1fr; gap: 60px; align-items: center; padding-block: 20px 70px; scroll-margin-top: 24px; }
.service-area-section h2 { font-size: var(--fs-h3); line-height: 1.15; margin-bottom: 18px; }
.service-area-section p { font-size: var(--fs-body); color: var(--muted); max-width: 55ch; margin: 0; }
.service-area-section nav { display: flex; flex-direction: column; }
.service-area-section nav a { display: flex; justify-content: space-between; padding-block: 17px; border-bottom: 1px solid var(--line); color: var(--navy); font-weight: 600; font-size: var(--fs-small); }
.footer-areas { border-top: 1px solid #314764; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 30px; padding-block: 20px; font-size: var(--fs-small); }
.footer-areas>span { color: white; font-weight: 600; }
.footer-areas a { padding-block: 6px; }
.footer-areas a:hover { text-decoration: underline; text-underline-offset: 4px; }
.search-hero { padding-bottom: 52px; }
.search-hero-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 55px; align-items: center; }
.search-hero h1 { font-size: var(--fs-h1); text-wrap: balance; }
.search-hero-grid>div>p { font-size: var(--fs-body); color: var(--muted); line-height: 1.8; }
.search-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.search-hero-grid p.search-proof { margin: 23px 0 0; font-size: var(--fs-micro); }
.search-hero figure { margin: 0; }
.search-hero .detail-photo { border: 0; }
.search-hero .detail-photo img { width: 100%; height: auto; max-height: 500px; object-fit: contain; }
.search-hero figcaption { font-size: var(--fs-micro); color: var(--muted); margin-top: 12px; }
.search-content { display: grid; grid-template-columns: 1.6fr 1fr; gap: 70px; padding-block: 24px 60px; }
.search-content>div>section+section { margin-top: 36px; }
.search-content h2 { font-size: var(--fs-h3); line-height: 1.2; margin-bottom: 16px; text-wrap: balance; }
.search-content p { color: var(--muted); font-size: var(--fs-body); line-height: 1.85; margin-bottom: 0; }
.search-content aside { align-self: start; background: #f5f7f9; padding: 30px; }
.search-content aside h2 { font-size: var(--fs-h5); }
.search-content aside ul { padding-left: 19px; margin: 0; }
.search-content aside li { font-size: var(--fs-body); margin-block: 12px; color: var(--muted); }
.search-urgent { border-top: 1px solid var(--line); padding-top: 24px; margin-top: 25px; }
.search-urgent h3 { font-size: var(--fs-h4); margin-bottom: 10px; }
.search-urgent p { font-size: var(--fs-small); }
.search-urgent a { display: inline-block; padding-block: 12px; font: 600 var(--fs-h5)/1.3 var(--heading); color: var(--navy); }
.search-content p.search-office { font-size: var(--fs-micro); margin-top: 15px; }
.search-faq { padding-bottom: 56px; }
.search-faq h2 { font-size: var(--fs-h3); }
.search-faq details>p { max-width: var(--measure); }
.focused-related { padding-top: 48px; }
@media(max-width:950px) { .search-hero-grid { gap: 32px; }.search-hero h1 { font-size: var(--fs-h2); }.search-content { gap: 35px; }.search-content aside { padding: 24px; } }
@media(max-width:700px) {
 .search-hero-grid,.search-content,.specific-services>div,.service-area-section { grid-template-columns: 1fr; }
 .search-hero-grid { gap: 30px; }.search-hero h1 { font-size: var(--fs-h1); }.search-hero { padding-bottom: 25px; }
 .search-content { gap: 32px; padding-bottom: 40px; }.search-content h2 { font-size: var(--fs-h2); }.search-content p { font-size: var(--fs-body); }
 .search-actions { gap: 16px; }.search-actions .button { font-size: var(--fs-small); gap: 20px; }
 .service-area-section { gap: 26px; padding-block: 5px 50px; }.service-area-section h2 { font-size: var(--fs-h2); }
 .specific-services h2,.search-faq h2 { font-size: var(--fs-h2); }.specific-services { padding-bottom: 25px; }
 .footer-areas { align-items: flex-start; gap: 7px 23px; }.footer-areas>span { width: 100%; }
 .home-broad .testimonial blockquote { font-size: var(--fs-h5); }
 .mobile-contact-bar a { font-size: var(--fs-micro); }.mobile-contact-bar span { margin-left: 6px; }
}

/* Two customer reviews, kept together as quotes and attribution. */
.home-broad .customer-reviews { padding-block: 38px; scroll-margin-top: 105px; }
.customer-reviews > .container { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 42px; align-items: start; }
.customer-review { margin: 0; min-width: 0; }
.customer-review + .customer-review { border-left: 1px solid #c4dce7; padding-left: 42px; }
.home-broad .customer-review blockquote { font-size: var(--fs-h6); line-height: 1.5; max-width: none; }
.customer-review cite { margin-top: 18px; }
.customer-review a { display: inline-flex; gap: 10px; align-items: center; max-width: none; min-height: 44px; margin-top: 8px; font-size: var(--fs-small); }
@media(max-width:700px) {
  .customer-reviews > .container { grid-template-columns: 1fr; gap: 25px; }
  .customer-review + .customer-review { border-left: 0; border-top: 1px solid #c4dce7; padding: 25px 0 0; }
  .home-broad .customer-review blockquote { font-size: var(--fs-h5); }
}

.contact .contact-copy, .contact .contact-copy :is(p, h2, h3, a, strong, span) { color: #fff; }
.contact .contact-copy .emergency-note { border-color: #fff; }

/* Give urgent callers an unmistakable phone action. */
.home-broad .hero-actions.conversion-actions { display: flex; flex-direction: column; align-items: stretch; max-width: none; width: 100%; gap: 13px; }
.hero-support-title { margin: 0; font: 600 var(--fs-h4)/1.15 var(--heading); color: var(--navy); }
.hero-cta-row { display: flex; align-items: stretch; gap: 12px; flex-wrap: wrap; }
.hero-call { display: grid; grid-template-columns: 1fr 24px; column-gap: 15px; row-gap: 4px; align-items: center; background: var(--navy); color: white; border-radius: 12px; padding: 15px 18px; min-height: 84px; flex: 1 1 250px; transition: background-color .18s; }
.hero-call-label { grid-column: 1 / -1; text-align: center; font-size: var(--fs-micro); font-weight: 600; line-height: 1.3; }
.hero-call strong { font: 600 var(--fs-h4)/1.15 var(--heading); white-space: nowrap; font-variant-numeric: tabular-nums; }
.hero-call svg { width: 24px; height: 24px; grid-column: 2; grid-row: 2; }
.hero-call:hover { background: #0a397b; }
.hero-call:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.home-broad .hero-cta-row .hero-project { flex: 1 1 160px; padding: 15px; border: 2px solid var(--navy); border-radius: 12px; gap: 12px; font-size: var(--fs-body); align-items: center; }
.home-broad .hero-cta-row .hero-project:hover { transform: none; background: #eaf5fa; }
@media(max-width:800px) {
 .home-broad .hero-actions { grid-row: 3; }
 .home-broad .hero-image { grid-row: 4; }
 .home-broad .hero-detail { grid-row: 5; }
 .mobile-contact-bar { grid-template-columns: 1.2fr 1fr; }
 .mobile-contact-bar .mobile-call { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 10px 8px; }
 .mobile-contact-bar .mobile-call span { margin: 0; font-size: var(--fs-micro); line-height: 1.25; }
 .mobile-contact-bar .mobile-call strong { font: 600 var(--fs-h5)/1.2 var(--heading); white-space: nowrap; }
 .mobile-contact-bar > a:last-child { display: flex; align-items: center; justify-content: center; padding: 12px 8px; }
}
@media(max-width:520px) {
 .hero-cta-row { flex-direction: column; gap: 10px; }
 .hero-call { flex-basis: auto; }
 .hero-call strong { font-size: var(--fs-h2); }
 .home-broad .hero-cta-row .hero-project { flex-basis: auto; min-height: 48px; padding-block: 10px; }
}
@media(prefers-reduced-motion:reduce) { .hero-call { transition: none; } }

.home-broad .hero-cta-row .hero-project { justify-content: center; text-align: center; white-space: nowrap; }

/* service-areas.css */
/* Coverage and contact actions share one clear introduction. */
.area-hub{padding-bottom:48px}
.area-intro{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center;padding:24px 0 38px}
.area-copy h1{font-size:var(--fs-h1);line-height:1.08;text-wrap:initial;margin:0 0 22px}
.area-copy>p{font-size:var(--fs-lead);line-height:1.65;max-width:560px;margin:0 0 24px}
.area-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px 24px}
.area-actions .button{font-size:var(--fs-ui);padding:15px 22px;min-width:0}
.area-actions .text-link{font-size:var(--fs-lead);white-space:nowrap;margin:0}
.area-copy .area-support{font-size:var(--fs-ui);font-weight:600;margin:16px 0 0}
.area-photo{margin:0;min-width:0}
.area-photo img{display:block;width:100%;height:auto;aspect-ratio:1.4;object-fit:cover}
.area-region-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0 0 26px;border-block:1px solid var(--line)}
.area-region-links a{font-size:var(--fs-lead);font-weight:600;line-height:1.4;padding:22px 0}
.area-region-links a:hover{text-decoration:underline;text-underline-offset:5px}
.area-town-picker{border-bottom:1px solid var(--line)}
.area-town-picker>summary{font-size:var(--fs-lead);padding:18px 0}
.area-locations{display:grid;grid-template-columns:1.7fr 1fr;gap:40px;padding:10px 0 24px}
.area-locations h2{font-size:var(--fs-h5);margin:0 0 12px}
.area-town-list{list-style:none;margin:0;padding:0}
.area-sonoma-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px}
.area-town-list a{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:46px;padding:11px 0;border-bottom:1px solid var(--line);font-size:var(--fs-body)}
.area-town-list svg{width:17px;height:17px;flex-shrink:0}
.area-town-list a:hover{text-decoration:underline;text-underline-offset:4px}
.area-other{font-size:var(--fs-body);margin:22px 0 0}
@media(max-width:1000px){.area-intro{gap:30px}.area-copy h1{font-size:var(--fs-h2)}.area-copy>p{font-size:var(--fs-body)}}
@media(max-width:800px){.area-intro{grid-template-columns:1fr;padding-top:0;gap:26px}.area-photo{max-width:640px}.area-copy h1{font-size:var(--fs-h1)}.area-region-links{gap:16px}.area-region-links a{font-size:var(--fs-lead)}.area-locations{gap:28px}}
@media(max-width:520px){.area-copy h1{font-size:var(--fs-h1)}.area-region-links{grid-template-columns:1fr;gap:0}.area-region-links a{padding:15px 0}.area-region-links a+a{border-top:1px solid var(--line)}.area-locations{grid-template-columns:1fr}.area-town-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}}

/* Keep every town visible within its region, with useful request links. */
.area-coverage{border-top:1px solid var(--line);padding-top:24px}
.area-coverage-intro{font-size:var(--fs-body);margin:0 0 20px}
.area-coverage h2 a{display:inline-flex;align-items:center;gap:14px;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.area-coverage h2 span{font-size:var(--fs-lead)}

/* navigation-areas.css */
/* Keep the added Service Areas link readable at desktop and tablet widths. */
@media(min-width:1121px) {
 .nav-about .nav-dropdown { left: auto; right: 0; width: 240px; }
}
.all-service-areas { color: white; font-weight: 600; }
@media(min-width:1121px) {
 .header-inner { gap: 18px; }
 .header-inner .brand img { width: 184px; }
 .header-inner nav { gap: 17px; }
 .header-inner nav>a,.nav-trigger { font-size: var(--fs-small); }
 .header-inner nav .nav-contact { padding-inline: 13px; }
 .nav-contact span { margin-left: 10px; }
}
/* White navigation and a compact rounded service action. */
.site-header .header-inner nav > a,
.site-header .nav-trigger { color: #fff; }
.site-header .menu-toggle { color: #fff; border-color: #ffffffa6; border-radius: 8px; }
.site-header .header-inner nav .nav-contact {
 display: inline-flex;
 align-items: center;
 justify-content: center;
 gap: 12px;
 min-height: 46px;
 padding: 12px 18px;
 border: 0;
 border-radius: 12px;
 background: var(--navy);
 color: #fff;
 line-height: 1.2;
 text-decoration: none;
 transition: background-color .18s ease;
}
.site-header .header-inner nav .nav-contact span { margin: 0; font-size: var(--fs-h6); line-height: 1; }
.site-header .header-inner nav .nav-contact:hover { background: #0a397b; }
.site-header .header-inner nav > a:focus-visible,
.site-header .nav-trigger:focus-visible,
.site-header .menu-toggle:focus-visible { outline-color: white; outline-offset: 4px; }
@media(max-width:1120px) {
 .site-header .header-inner nav .nav-contact { justify-content: space-between; margin-top: 12px; }
}
@media(prefers-reduced-motion:reduce) {
 .site-header .header-inner nav .nav-contact { transition: none; }
}
@media(min-width:951px) and (max-width:1120px) {
 .header-inner { min-height: 81px; }
 .menu-toggle { display: flex; align-items: center; gap: 12px; background: none; border: 1px solid var(--navy); padding: 7px 10px; font-size: var(--fs-small); color: var(--navy); cursor: pointer; }
 .header-inner nav { display: none; position: absolute; top: 81px; left: 0; right: 0; padding: 20px; background: var(--cyan); border-top: 1px solid var(--cyan); box-shadow: 0 12px 20px #00245b22; }
 .header-inner nav.is-open { display: flex; align-items: stretch; flex-direction: column; gap: 0; max-height: calc(100dvh - 155px); overflow-y: auto; }
 .nav-group { width: 100%; }
 .nav-trigger { padding: 14px 0; justify-content: space-between; width: 100%; font-size: var(--fs-body); }
 .nav-dropdown { position: static; width: 100%; box-shadow: none; padding: 7px; background: #eaf5fa; border: 0; }
 .header-inner nav>a { font-size: var(--fs-ui); padding: 14px 0; }
 .header-inner nav .nav-contact { padding: 14px; margin-top: 10px; }
}

/* review.css */
/* Site review: shared spacing and readable, concise service layouts. */
:root { --muted: #29435f; }
.industry-brief .industry-brief-intro { font-size: var(--fs-body); color: var(--ink); }
.breadcrumbs, .enquiry-form small { color: var(--navy); font-size: var(--fs-small); }
.full-customer-review { margin-top: 12px; border-bottom: 0; }
.full-customer-review > summary { justify-content: flex-start; gap: 12px; width: fit-content; min-height: 44px; padding: 8px 0; font-size: var(--fs-small); }
.full-customer-review > summary:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.home-broad .full-customer-review > blockquote { border-top: 1px solid #c4dce7; padding-top: 16px; font-size: var(--fs-h6); }
.full-customer-review blockquote p { margin: 0; }
.full-customer-review blockquote p + p { margin-top: 14px; }
.customer-reviews .all-testimonials { grid-column: 1 / -1; border-top: 1px solid #c4dce7; }
.all-testimonials > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 16px 0; color: var(--navy); font: 600 var(--fs-ui)/1.5 var(--body); cursor: pointer; list-style: none; }
.all-testimonials > summary::-webkit-details-marker { display: none; }
.all-testimonials > summary:hover { text-decoration: underline; text-underline-offset: 5px; }
.all-testimonials > summary:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.all-testimonials > summary svg { flex-shrink: 0; }
.all-testimonials[open] > summary svg { transform: rotate(180deg); }
.testimonial-collection { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 42px; padding-top: 24px; }
.testimonial-entry { min-width: 0; margin: 0; padding-top: 24px; border-top: 1px solid #c4dce7; }
.testimonial-entry-long { grid-column: 1 / -1; }
.home-broad .testimonial-entry blockquote { max-width: var(--measure); font: 400 var(--fs-h6)/1.6 var(--heading); }
.testimonial-entry blockquote p { margin: 0; }
.testimonial-entry blockquote p + p { margin-top: 12px; }
.testimonial-entry figcaption { margin-top: 16px; color: var(--navy); font: 500 var(--fs-small)/1.5 var(--body); }
@media(max-width:700px) {
  .testimonial-collection { grid-template-columns: 1fr; gap: 24px; padding-top: 12px; }
  .home-broad .testimonial-entry blockquote { font-size: var(--fs-h6); }
}
::selection { background: #b7eafa; color: #00245b; }
main :is(h1,h2,h3) { text-wrap: balance; }
.button { border-radius: 12px; min-height: 48px; }
.button:focus-visible, .text-link:focus-visible { outline: 3px solid var(--navy); outline-offset: 4px; }
.breadcrumbs { line-height: 1.6; }
.detail-hero-grid, .search-hero-grid { grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); gap: clamp(32px,4.5vw,64px); }
.detail-hero-grid > div, .search-hero-grid > div { min-width: 0; }
.detail-hero h1, .search-hero h1 { font-size: var(--fs-h1); margin-bottom: 24px; line-height: 1.08; }
.detail-hero-grid > img { height: auto; max-height: 480px; object-fit: contain; }
.detail-hero .detail-photo { background: transparent; border: 0; }
.detail-hero .detail-photo img { display: block; max-height: 480px; }
.detail-hero .photo-enlarge { border: 0; padding: 12px 0 0; }
.detail-hero-grid > div > p, .search-hero-grid > div > p { max-width: 60ch; line-height: 1.8; }
.detail-body { gap: clamp(36px,5vw,70px); padding-block: 54px; }
.detail-body > div > h2:not(:first-child) { margin-top: 32px; }
.detail-body > div > p { margin-bottom: 0; line-height: 1.85; }
.detail-body h2, .search-content h2 { font-size: var(--fs-h3); }
.detail-body aside { background: #f5f7f9; border-top: 0; }
.detail-body aside .capabilities-title { font-size: var(--fs-h5); margin: 0 0 16px; }
.maintenance-photo-panel .capabilities-title { color: white; }
.search-content { padding-block: 12px 48px; gap: clamp(32px,5vw,64px); }
.search-content aside h2 { font-size: var(--fs-h5); }
.search-content > div > section + section { margin-top: 30px; }
.search-faq { padding-bottom: 48px; }
.search-faq h2, .related h2 { font-size: var(--fs-h3); margin-bottom: 22px; }
.search-faq details p { max-width: var(--measure); }
.search-faq details { max-width: 860px; } /* question and its + stay together on wide screens */
.related { padding-bottom: 52px; }
.related > div { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 36px; }
.related a { border: 0; border-top: 1px solid var(--line); padding: 19px 0; gap: 16px; }
.related a:hover { background: transparent; text-decoration: underline; text-underline-offset: 4px; }
.related a span { flex-shrink: 0; }
.detail-cta h2 { font-size: var(--fs-h3); }
.detail-cta .button { flex-shrink: 0; white-space: nowrap; }
.home-broad .controls .control-features p { padding-block: 12px; }
.home-broad .project-grid > a { display: flex; flex-direction: column; }
.home-broad .project-grid > a > div { flex: 1; }
.home-broad .project-grid h3 { min-height: 2.5em; }
.rental-copy h2 { font-size: var(--fs-h4); }
.rental-copy > p:not(.eyebrow) { font-size: var(--fs-ui); }
.rental-copy .check-list { margin-top: 16px; }
.rental-copy .button { margin-top: auto; }
.controls-gallery .photo-grid { display: block; columns: 2; column-gap: 28px; }
.controls-gallery .gallery-photo { display: inline-block; width: 100%; break-inside: avoid; margin-bottom: 28px; }
.controls-gallery .gallery-frame { aspect-ratio: auto; padding: 0; }
.controls-gallery .gallery-frame img { height: auto; display: block; }
.controls-gallery .gallery-image-link { background: white; border: 0; }
.controls-gallery .photo-enlarge { padding-inline: 0; border: 0; }
.controls-gallery .gallery-photo figcaption { padding-top: 3px; }
.controls-gallery .gallery-photo h3 { font-size: var(--fs-h6); }
.controls-gallery .gallery-photo:last-child { column-span: all; display: block; }
.controls-gallery .photo-section-heading { gap: 28px; }
@media(max-width:800px) {
  body { padding-bottom: calc(76px + env(safe-area-inset-bottom)); }
  .detail-hero-grid, .search-hero-grid { grid-template-columns: 1fr; gap: 28px; }
  .detail-hero h1, .search-hero h1 { font-size: var(--fs-h1); }
  .detail-body { padding-block: 36px; }
  .search-content { padding-block: 12px 36px; }
  .search-content, .detail-body { grid-template-columns: 1fr; gap: 28px; }
  .search-faq, .related { padding-bottom: 36px; }
  .detail-cta .button { white-space: normal; }
  .controls-gallery .photo-section-heading { grid-template-columns: 1fr; }
}
@media(max-width:600px) {
  .related > div { grid-template-columns: 1fr; }
  .controls-gallery .photo-grid { columns: 1; }
  .home-broad .project-grid h3 { min-height: 0; }
  .detail-hero .detail-photo img { max-height: 420px; }
  .rental-copy h2 { min-height: 0; font-size: var(--fs-h3); }
}

/* recommended.css */
/* Recommended draft: scoped refinements to the existing Lewis design. */
:root { --action-blue: var(--cyan); --ink: #000; --muted: #000; --heading: 'Titillium Web',Arial,sans-serif; }
.calibration-intro { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: clamp(32px,6vw,90px); padding-block: 30px 64px; align-items: start; }
.calibration-intro h1 { font: 600 var(--fs-h1)/1.1 var(--heading); margin: 0 0 24px; color: var(--navy); }
.calibration-intro p { font-size: var(--fs-body); line-height: 1.8; color: var(--navy); max-width: 52ch; }
.calibration-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px 28px; margin-top: 28px; }
.calibration-actions .text-link { min-height: 44px; display: inline-flex; align-items: center; }
.calibration-intro aside { background: #eaf5fa; padding: 32px; }
.calibration-intro aside h2 { font-size: var(--fs-h4); line-height: 1.2; margin-bottom: 16px; }
.calibration-intro .check-list { margin-bottom: 0; }
.calibration-related { padding-top: 0; }
@media(max-width:800px) {
 .calibration-intro { grid-template-columns: 1fr; padding-block: 0 36px; gap: 32px; }
 .calibration-intro aside { padding: 26px; }
 .calibration-actions { margin-top: 20px; }
}
.site-header { background: #00245b; }
.site-header :is(.nav-trigger,.menu-toggle,.header-phone,.nav-contact,.brand):focus-visible { outline: 3px solid white; outline-offset: 4px; }
.form-status > h4 { scroll-margin-top: 112px; }
.contact { background: var(--action-blue); }
.header-inner nav.is-open { background: #00245b; }
.site-header .brand img { object-fit: contain; }
.site-header .nav-dropdown { color: var(--navy); }
.site-header .nav-dropdown a:focus-visible { outline: 2px solid var(--navy); outline-offset: -2px; }
:where(a,button,summary,input,select,textarea):focus-visible { outline: 3px solid var(--cyan); outline-offset: 4px; }
section[id], article[id], #enquiry-form { scroll-margin-top: 112px; }
input,textarea { caret-color: var(--navy); }
.home-broad .landing-intro .hero h1 { max-width: 12ch; font-size: var(--fs-h1); }
.home-broad .landing-intro .hero-detail { font-size: var(--fs-body); max-width: 51ch; line-height: 1.65; margin-block: 18px 22px; }
.home-broad .hero-call { grid-template-columns: 1fr 24px; }
.home-broad .hero-call strong { justify-self: center; }
.hero-call-group { flex: 1 1 250px; min-width: 0; container-type: inline-size; contain-intrinsic-inline-size: 250px; display: flex; flex-direction: column; gap: 13px; } /* a size container measures as 0 wide unless told otherwise, which made its flex row 88px too tall at 521-800px (L1) */
.home-broad .landing-intro .hero-support-title { text-align: center; white-space: nowrap; font-size: min(var(--fs-h5), 8.4cqw); }
.home-broad .hero-call-group .hero-call { flex: none; width: 100%; }
.home-broad .hero-cta-row .hero-project { align-self: flex-end; min-height: 84px; }
@media(min-width:801px) and (max-height:820px) {
 .hero-call-group { gap: 8px; }
 .home-broad .hero-cta-row .hero-project { min-height: 72px; }
}
@media(max-width:520px) {
 .hero-cta-row { flex-wrap: nowrap; }
 .hero-call-group { flex: none; width: 100%; }
 .home-broad .hero-cta-row .hero-project { width: 100%; min-height: 48px; }
}
.home-broad .services { padding-block: 58px 42px; }
/* Pair the remaining service details after removing repeated intake sidebars. */
.search-content { display: block; padding-block: 24px 42px; }
.search-content > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px; }
.search-content > div > section + section { margin-top: 0; }
.search-content h2 { font-size: var(--fs-h4); text-wrap: initial; }
@media(max-width:800px) {
 .search-content > div { grid-template-columns: 1fr; gap: 26px; }
}
.home-broad .services .section-heading { margin-bottom: 32px; }
.home-broad .service { padding: 26px; }
.home-broad .service-top { justify-content: flex-start; margin-bottom: 12px; }
.home-broad .service-icon { width: 34px; height: 34px; }
.home-broad .service h3 { min-height: 2.35em; font-size: var(--fs-h4); }
.home-broad .service p { font-size: var(--fs-ui); line-height: 1.65; }
.specialist-links { display: flex; flex-wrap: wrap; gap: 12px 30px; border-top: 1px solid var(--line); padding-top: 20px; margin-top: 24px; }
.specialist-links a { color: var(--navy); text-decoration: underline; text-underline-offset: 4px; font-weight: 600; font-size: var(--fs-small); line-height: 1.5; padding-block: 10px; }
/* Labelled related links (B4): industry pages' service shortcuts and About's closing links, in the Related Services row style. */
.related-links { margin: 32px 0 24px; }
.related-links h2 { margin: 0 0 12px; font-size: var(--fs-h5); }
.related-links > div { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); column-gap: 32px; }
.related-links a { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 44px; padding: 12px 0; border-top: 1px solid var(--line); color: var(--navy); font-size: var(--fs-body); }
.related-links a:hover { text-decoration: underline; text-underline-offset: 4px; }
.related-links a span { flex-shrink: 0; }
.industry-brief-actions { flex-wrap: wrap; }
.industry-brief-actions .text-link { min-height: 44px; display: inline-flex; align-items: center; }
.contact .contact-copy, .contact .contact-copy :is(p,h2,h3,a,strong,span) { color: white; }
.contact .emergency-note { border-left: 0; border-top: 1px solid #ffffff80; padding: 22px 0 0; }
.contact-copy a:focus-visible { outline-color: white; }
.enquiry-form .form-demo { border: 0; background: #eaf5fa; color: var(--navy); font-size: var(--fs-small); }
.enquiry-form .inquiry-context { background: #eaf5fa; color: var(--navy); padding: 12px; font-size: var(--fs-small); line-height: 1.6; }
.enquiry-form .contact-method { border: 0; padding: 0; margin: 0 0 18px; color: var(--navy); }
.contact-method legend { font-size: var(--fs-small); font-weight: 600; margin-bottom: 8px; }
.enquiry-form .contact-method label { display: inline-flex; align-items: center; margin: 0 24px 0 0; gap: 8px; min-height: 44px; }
.enquiry-form .contact-method input { width: 20px; height: 20px; padding: 0; margin: 0; accent-color: var(--navy); }
.enquiry-form input,.enquiry-form select,.enquiry-form textarea { border-radius: 6px; }
.enquiry-form label > #contact-label { font-size: var(--fs-small); font-weight: 600; }
.enquiry-form .form-status { border-top: 1px solid var(--line); padding-top: 18px; }
.enquiry-form .form-status p { color: var(--navy); font-size: var(--fs-small); margin: 8px 0; overflow-wrap: anywhere; white-space: pre-line; }
.enquiry-form .form-status h4 { font: 600 var(--fs-h5)/1.25 var(--heading); margin: 0 0 12px; }
.enquiry-form .form-status:empty { border: 0; padding: 0; }
.enquiry-form .form-privacy { font-size: var(--fs-small); line-height: 1.6; color: var(--navy); }
.form-privacy a { text-decoration: underline; text-underline-offset: 3px; }
.detail-body .maintenance-photo-panel .capabilities-title { color: #fff; }
.controls-gallery .photo-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; columns: auto; align-items: start; }
.controls-gallery .gallery-photo { display: block; margin: 0; min-width: 0; }
.controls-gallery .gallery-photo:first-child { grid-row: span 2; }
.controls-gallery .gallery-photo:last-child { display: block; grid-column: 2 / -1; }
.controls-gallery .gallery-photo h3 { font-size: var(--fs-h6); }
.controls-gallery .gallery-photo figcaption p { font-size: var(--fs-small); line-height: 1.6; color: var(--navy); margin-top: 8px; }
.controls-gallery .photo-enlarge { font-size: var(--fs-small); }
.project-opening-copy h1 { max-width: 9ch; }
.projects-page .project-feature figcaption { flex-direction: column; align-items: flex-start; gap: 8px; }
.projects-page .project-feature figcaption p { font-size: var(--fs-small); }
.project-collection { padding-top: 54px; }
.work-grid:has(> .gallery-photo:only-child) { max-width: none; }
#piping .gallery-photo { max-width: 760px; }
.work-section-heading { margin-bottom: 22px; }
.work-section+.work-section { margin-top: 28px; padding-top: 28px; }
.project-next { background: var(--navy); }
.gallery-hint { font-size: var(--fs-small); }
.client-logo-mumm img { object-fit: contain; }
@media(min-width:801px) and (max-height:820px) {
 .home-broad .landing-intro .hero h1 { font-size: var(--fs-h2); margin-bottom: 10px; }
 .home-broad .landing-intro .hero h1 br { display: block; }
 .home-broad .landing-intro .hero-detail { font-size: var(--fs-ui); line-height: 1.5; margin-block: 12px; }
}
@media(max-width:1120px) {
 .site-header .header-inner nav { background: #00245b; }
}
@media(max-width:800px) {
 section[id],article[id],#enquiry-form { scroll-margin-top: 94px; }
 .home-broad .landing-intro .hero { gap: 22px; padding-block: 28px; }
 .home-broad .landing-intro .hero h1 { grid-row: 1; font-size: var(--fs-h1); max-width: none; margin: 0; }
 .home-broad .landing-intro .hero-detail { grid-row: 2; margin: 0; font-size: var(--fs-body); }
 .home-broad .landing-intro .hero-actions { grid-row: 3; }
 .home-broad .landing-intro .hero-image { grid-row: 4; }
 .home-broad .landing-intro .hero-foot { grid-row: 5; }
 .home-broad .services { padding-block: 40px 24px; }
 .home-broad .service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-broad .service:nth-child(n) { border-right: 0; border-bottom: 1px solid var(--line); }
 .home-broad .service:nth-child(odd) { border-right: 1px solid var(--line); }
 .controls-gallery .photo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .controls-gallery .gallery-photo:first-child { grid-row: auto; }
 .controls-gallery .gallery-photo:last-child { grid-column: 1 / -1; }
 .enquiry-layout { gap: 32px; }
 .enquiry-form { padding: 26px; }
}
@media(max-width:600px) {
 .home-broad .service-grid { grid-template-columns: 1fr; }
 .home-broad .service:nth-child(n) { border-right: 0; padding: 22px 20px; }
 .home-broad .service-top { float: right; margin: 0 0 10px 18px; }
 .home-broad .service h3 { min-height: 0; font-size: var(--fs-h3); max-width: 18ch; margin-bottom: 12px; }
 .home-broad .service p { margin-bottom: 16px; }
 .specialist-links { flex-direction: column; gap: 0; padding-top: 12px; margin-top: 0; }
 .specialist-links a { padding-block: 14px; }
 .home-broad .section-heading h2 { font-size: var(--fs-h2); }
 .home-broad .industry-entry h3 { font-size: var(--fs-h3); }
 .form-row { grid-template-columns: 1fr; gap: 0; }
 .enquiry-form { padding: 24px 20px; }
 .enquiry-form h3 { font-size: var(--fs-h2); }
 .client-logos { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .client-logo { padding: 22px 12px; gap: 10px; }
 .client-logo:nth-child(n) { border: 0; }
 .client-logo:nth-child(even) { border-left: 1px solid var(--line); }
 .client-logo:nth-child(n+3) { border-top: 1px solid var(--line); }
 .client-logo img { height: 100px; width: 100%; }
 .client-logo figcaption { font-size: var(--fs-lead); }
 .controls-gallery .gallery-photo h3 { font-size: var(--fs-h5); }
 .controls-gallery .photo-grid { gap: 24px 16px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior: auto; } }

.home-broad .landing-intro .hero h1 { max-width: none; }
.home-broad .landing-intro .hero h1 br:last-of-type { display: initial; }
.enquiry-form button:disabled { opacity: .65; cursor: not-allowed; }
@media(min-width:1121px) { .landing-intro { min-height: calc(100svh - 95px); } }

/* Two readable examples, followed by three compact views in the same photo viewer. */
.controls-gallery .photo-grid { grid-template-columns: repeat(6,minmax(0,1fr)); }
.controls-gallery .gallery-photo:nth-child(n) { grid-column: span 2; grid-row: auto; }
.controls-gallery .gallery-photo:nth-child(-n+2) { grid-column: span 3; }
.controls-gallery .gallery-frame { display:flex; align-items:center; justify-content:center; height:160px; background:#f5f7f9; }
.controls-gallery .gallery-frame img { width:auto; max-width:100%; height:auto; max-height:160px; object-fit:contain; }
.controls-gallery .gallery-photo:nth-child(-n+2) .gallery-frame { height:400px; }
.controls-gallery .gallery-photo:nth-child(-n+2) img { max-height:400px; }
@media(min-width:801px) { .contact .contact-copy { position:sticky; top:120px; } }
@media(max-width:700px) {
 .controls-gallery .photo-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .controls-gallery .gallery-photo:nth-child(n) { grid-column:span 1; }
 .controls-gallery .gallery-photo:last-child { grid-column:1 / -1; }
 .controls-gallery .gallery-photo:nth-child(-n+2) .gallery-frame { height:240px; }
 .controls-gallery .gallery-photo:nth-child(-n+2) img { max-height:240px; }
}

/* Tighter opening spacing, more room for the full installation photo. */
.landing-intro { min-height: 0; }
.home-broad .landing-intro > .hero { flex: none; }
@media(min-width:801px) {
 .home-broad .landing-intro .hero { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: 32px; padding-block: 18px; }
 .home-broad .landing-intro .hero-image { width: 100%; margin: 0; }
}
@media(max-width:800px) {
 .home-broad .landing-intro .hero { padding-block: 16px; }
}
/* Equal side tracks center the number; the icon centers in the right track. */
.home-broad .hero-call { grid-template-columns: minmax(28px,1fr) auto minmax(28px,1fr); column-gap: 0; padding-inline: 0; }
.home-broad .hero-call strong { grid-column: 2; grid-row: 2; justify-self: center; }
.home-broad .hero-call svg { grid-column: 3; grid-row: 2; justify-self: center; }

/* Keep gallery copy, photos, and links aligned. */
.home-broad #projects > .section-heading { grid-template-columns: 1fr; gap: 14px; }
.home-broad #projects > .section-heading > p { max-width: 70ch; margin: 0; }
.home-broad .project-grid { align-items: stretch; }
.home-broad .project-grid img { height: auto; aspect-ratio: 1 / 1; object-fit: cover; }
.home-broad .project-grid h3 { min-height: 0; }
.home-broad .project-grid > a > div { gap: 14px; }
.home-broad .project-grid h3 { margin: 0 0 10px; }
.home-broad .project-grid p { margin-top: auto; min-height: 48px; }
.home-broad #team > .section-heading { display: block; text-align: center; }
.home-broad #team > .section-heading h2 { max-width: none; font-size: var(--fs-h2); white-space: nowrap; }
.enquiry-form .form-row { grid-template-columns: 1fr; }

/* A compact header with service navigation and a phone number that stays in reach. */
.site-header .header-inner { gap: 20px; }
.site-header .brand { flex-shrink: 0; order: 0; }
.site-header #navigation { order: 1; gap: 18px; margin-left: auto; }
.site-header .header-actions { order: 2; display: flex; align-items: center; gap: 18px; flex-shrink: 0; }
.site-header .menu-toggle { order: 3; }
.header-phone { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 48px; padding: 6px 12px; border: 2px solid #fff; border-radius: 10px; color: #fff; text-align: center; text-decoration: none; line-height: 1.25; white-space: nowrap; transition: background-color .15s ease; }
.header-phone span { font-size: var(--fs-micro); font-weight: 700; }
.header-phone strong { font: 700 var(--fs-h6)/1.25 var(--heading); }
.header-phone:hover { background: #ffffff1f; color: #fff; text-decoration: none; }
.header-phone:hover strong { text-decoration: none; }
.header-phone:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
@media(prefers-reduced-motion:reduce) { .header-phone { transition: none; } }
.header-actions .nav-contact { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 16px; border: 0; border-radius: 10px; background: var(--navy); color: white; font-size: var(--fs-small); font-weight: 600; line-height: 1.2; white-space: nowrap; }
.header-actions .nav-contact span { margin: 0; font-size: var(--fs-lead); }
.header-actions .nav-contact:hover { background: #0a397b; }
.header-actions a:focus-visible { outline-color: white; }
.site-header #navigation > .nav-group > .nav-trigger { font-size: var(--fs-ui); } /* menu bar keeps its width on the type scale */
.site-header .nav-dropdown a { font-size: var(--fs-ui); }
.header-actions .nav-contact { font-size: var(--fs-ui); }
.header-phone span { font-size: var(--fs-micro); }
@media(min-width:1121px) {
 .site-header .header-actions { display: grid; grid-template-columns: repeat(2, 1fr); align-items: stretch; }
 .header-actions > a { min-height: 60px; width: 100%; }
}
@media(max-width:1120px) {
 .site-header #navigation > .nav-group > .nav-trigger { font-size: var(--fs-lead); }
 .site-header .nav-dropdown a { font-size: var(--fs-body); }
}
.hero-service-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0 24px; margin: -4px 0 14px; }
.hero-service-links a { color: var(--navy); padding-block: 8px; font-size: var(--fs-small); font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.hero-service-links a:hover { text-decoration-thickness: 2px; }
.hvac-intro { display: grid; grid-template-columns: minmax(0,1fr); gap: clamp(32px,6vw,80px); align-items: start; padding: 20px 0 54px; }
.hvac-intro h1 { font-size: var(--fs-h1); line-height: 1.1; text-wrap: initial; }
.hvac-intro p { max-width: 58ch; color: var(--navy); font-size: var(--fs-body); }
.hvac-work { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; border-top: 1px solid var(--line); padding: 38px 0 52px; }
.hvac-work h2 { font-size: var(--fs-h4); }
.hvac-work p { max-width: 60ch; }
.hvac-questions { max-width: 850px; }
.service-project-link { margin-bottom: 36px; }
@media(min-width:1121px) and (max-width:1250px) {
 .site-header .header-inner, .site-header .header-actions { gap: 12px; }
 .site-header #navigation { gap: 12px; }
 .site-header .header-inner .brand img { width: 165px; }
 .header-phone strong { font-size: var(--fs-h6); }
 .header-actions .nav-contact { padding-inline: 12px; }
}
@media(max-width:1120px) {
 .site-header .header-actions { margin-left: auto; }
 .site-header #navigation { margin: 0; }
 .header-actions .nav-contact { display: none; }
 body { padding-bottom: calc(68px + env(safe-area-inset-bottom)); }
 .mobile-contact-bar { display: grid; grid-template-columns: 1.2fr 1fr; position: fixed; inset: auto 0 0; z-index: 25; background: var(--navy); padding-bottom: env(safe-area-inset-bottom); box-shadow: 0 -3px 18px #00245b15; }
 .mobile-contact-bar a { background: white; color: var(--navy); text-align: center; font-size: var(--fs-small); font-weight: 600; border-top: 1px solid var(--line); }
 .mobile-contact-bar .mobile-call { display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 3px; padding: 10px 8px; }
 .mobile-contact-bar .mobile-call span { margin: 0; font-size: var(--fs-micro); line-height: 1.25; }
 .mobile-contact-bar .mobile-call strong { font: 600 var(--fs-h6)/1.2 var(--heading); white-space: nowrap; }
 .mobile-contact-bar > a:last-child { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 8px; background: var(--navy); color: white; border-color: var(--navy); }
 .mobile-contact-bar > a:last-child span { margin: 0; }
}
@media(max-width:800px) {
 .home-broad .hero-copy .hero-service-links { grid-row: 3; margin: -4px 0 0; }
 .home-broad .landing-intro .hero-actions { grid-row: 4; }
 .home-broad .landing-intro .hero-image { grid-row: 5; }
 .home-broad .landing-intro .hero-foot { grid-row: 6; }
 .hvac-intro { grid-template-columns: 1fr; gap: 28px; padding-top: 0; padding-bottom: 36px; }
 .hvac-work { grid-template-columns: 1fr; gap: 30px; padding-block: 30px 40px; }
 .hvac-work h2 { margin-bottom: 16px; }
}
@media(max-width:600px) {
 .site-header .header-actions { display: none; }
 .site-header .header-inner { gap: 12px; }
 .site-header .menu-toggle { margin-left: auto; }
 .mobile-contact-bar > a:last-child { font-size: var(--fs-micro); }
 .hvac-intro h1 { font-size: var(--fs-h1); }
}
@media(max-width:380px) {
 .home-broad .hero-call strong { font-size: var(--fs-h2); }
 .home-broad .hero-call svg { width: 20px; height: 20px; }
}

/* Services menu: overview first, individual services nested underneath. */
.site-header .nav-dropdown .nav-overview { display: flex; align-items: center; justify-content: center; gap: 10px; text-align: center; padding: 17px 14px; margin-bottom: 7px; background: var(--navy); color: #fff; font-size: var(--fs-body); font-weight: 700; }
.site-header .nav-dropdown .nav-overview svg { color: var(--cyan); }
.site-header .nav-dropdown .nav-overview:hover { background: #0a397b; color: #fff; }
.site-header .nav-dropdown .nav-overview span { font-size: var(--fs-lead); font-weight: 500; }
.nav-service-list { list-style: none; margin: 0; padding: 0; }
.site-header .nav-service-list a { padding: 12px 14px 12px 24px; font-weight: 500; }
.site-header .nav-service-list li + li a { border-top: 1px solid #edf1f5; }
/* Maintenance & Service covers all equipment, so it sits apart at the bottom. */
.site-header .nav-service-list li.nav-divider { margin-top: 6px; }
.site-header .nav-service-list li.nav-divider a { border-top: 1px solid #9fb3c4; }
.site-header .nav-dropdown { background: #fff; }
.site-header .nav-dropdown > a:not(.nav-overview) { padding: 12px 14px 12px 24px; font-weight: 500; border-top: 1px solid #edf1f5; }
.site-header .nav-dropdown .nav-overview + a { border-top: 0; }

/* Homepage clients: six existing logos with room for each identity. */
.home-clients { padding-block: 24px 56px; }
.home-clients h2 { margin: 0 0 26px; font-size: var(--fs-h2); text-align: center; }
.home-client-logos { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); list-style: none; margin: 0; padding: 0; border-block: 1px solid var(--line); }
.home-client-logos li { min-width: 0; height: 174px; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 14px 24px; }
.home-client-logos li:nth-child(n+4) { border-top: 1px solid var(--line); }
.home-client-logos img { display: block; width: 240px; max-width: 100%; height: 145px; object-fit: contain; }
.home-client-logos .home-client-parker img { width: 210px; }
.home-client-logos .home-client-mumm img { height: 260px; width: 260px; max-width: none; }
/* The services overview follows the same order and names as its dropdown. */
.service-grid .service-co2 { grid-column: 1 / -1; display: grid; grid-template-columns: 56px 1fr auto; column-gap: 24px; align-items: center; border-right: 0; border-top: 1px solid var(--line); }
.service-grid .service-co2 .service-top { grid-row: 1 / 3; margin: 0; }
.service-grid .service-co2 h3 { min-height: 0; margin: 0 0 6px; }
.service-grid .service-co2 p { grid-column: 2; margin: 0; }
.service-grid .service-co2 .service-bottom { grid-column: 3; grid-row: 1 / 3; margin: 0; }
/* Rental catalogue: full-width equipment rows and larger, uncropped photos. */
.rentals-page .detail-hero-grid { align-items: center; }
.rentals-page .rental-catalog { padding-top: 24px; }
.rentals-page .rental-grid { grid-template-columns: 1fr; gap: 0; border-top: 1px solid var(--line); }
.rentals-page .rental-card { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,1fr); align-items: center; gap: clamp(28px,4vw,56px); border: 0; border-bottom: 1px solid var(--line); padding-block: 40px; }
.rentals-page .rental-image { position: relative; height: clamp(360px,39vw,520px); min-width: 0; padding: 0; border: 0; background: #fff; }
.rentals-page .rental-image img { width: 100%; height: 100%; object-fit: contain; }
.rentals-page .rental-enlarge { position: absolute; right: 8px; bottom: 8px; padding: 10px 14px; background: var(--navy); color: #fff; font-size: var(--fs-small); font-weight: 600; }
.rentals-page .rental-copy { padding: 0; }
.rentals-page .rental-copy h3 { font-size: var(--fs-h3); line-height: 1.15; margin: 0 0 20px; }
.rentals-page .rental-copy > p { font-size: var(--fs-body); line-height: 1.7; }
.rentals-page .rental-copy .check-list { margin: 8px 0 26px; }
.rentals-page .rental-copy .check-list li { font-size: var(--fs-body); }
.rentals-page .rental-copy .button { margin-top: 0; }
.rentals-page .rental-price { margin: 0 0 var(--space-5); color: var(--ink); }
.rentals-page .rental-price strong { font: 600 var(--fs-h5)/var(--lh-heading) var(--heading); color: var(--navy); }
.rentals-page .rental-note { margin: 0 0 var(--space-5); color: var(--muted); }
.rentals-page .rental-help { padding: 32px 0 0; margin-top: 20px; }
@media(max-width:800px) {
 .home-client-logos li { height: 150px; padding-inline: 16px; }
 .home-client-logos .home-client-mumm img { width: 220px; height: 220px; }
 .service-grid .service-co2 { grid-template-columns: 48px 1fr; }
 .service-grid .service-co2 .service-bottom { grid-column: 2; grid-row: auto; margin-top: 18px; }
 .rentals-page .rental-card { grid-template-columns: 1fr; gap: 28px; padding-block: 32px; }
 .rentals-page .rental-image { height: auto; aspect-ratio: 1 / 1; max-height: 520px; }
}
@media(max-width:520px) {
 .home-clients { padding-block: 20px 36px; }
 .home-client-logos { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .home-client-logos li { height: 130px; padding-inline: 10px; }
 .home-client-logos li:nth-child(n+3) { border-top: 1px solid var(--line); }
 .home-client-logos img { height: 115px; }
 .home-client-logos .home-client-mumm img { width: 170px; height: 170px; }
 .service-grid .service-co2 { display: flex; align-items: stretch; gap: 0; }
 .service-grid .service-co2 .service-top { margin-bottom: 18px; }
 .rentals-page .rental-copy h3 { font-size: var(--fs-h4); }
 .rentals-page .rental-help h2 { font-size: var(--fs-h3); }
}

.rentals-page .rental-catalog > .section-heading { display: block; margin-bottom: 24px; }
.rentals-page .rental-catalog > .section-heading h2 { max-width: none; }
.guide-entry #guided-request-link { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 16px; border: 1px solid var(--navy); border-radius: 8px; font-weight: 600; text-decoration: none; }
.guide-entry #guided-request-link:hover { background: #eaf5fa; }

/* Both hero actions use the same type at every screen width. */
.home-broad .hero-cta-row { --hero-action-size: var(--fs-h5); }
.home-broad .hero-cta-row .hero-call strong,
.home-broad .hero-cta-row .hero-project { font: 600 var(--hero-action-size)/1.15 var(--heading); }
@media(max-width:520px) {
 .home-broad .hero-cta-row { --hero-action-size: var(--fs-h5); }
}
@media(max-width:380px) {
 .home-broad .hero-cta-row { --hero-action-size: var(--fs-h6); }
}

/* Audit fixes, Oct 13: spacing, label size and state details found in the desktop/phone review. */
.enquiry-form p.guide-entry { margin: 0 0 22px; }
.enquiry-form p.form-privacy { margin: 4px 0 16px; }
.enquiry-form .contact-method legend { padding: 0; }
.nav-trigger[aria-expanded=true] > span { transform: translateY(2px) rotate(225deg); }
@media(min-width:801px) { .service-grid .service-co2 .service-bottom { border-top: 0; padding-top: 0; } }
@media(max-width:600px) {
 .home-broad #team > .section-heading h2 { white-space: normal; font-size: var(--fs-h2); }
 .home-broad .landing-intro .project-stat dt { font-size: var(--fs-micro); }
}
.service-area-section p a, .area-hub p a { text-decoration: underline; text-underline-offset: 3px; }
/* About and Contact pages. */
.contact-page .detail-hero-grid p a, .about-page .detail-call a { text-decoration: underline; text-underline-offset: 3px; font-weight: 600; color: var(--navy); }
.contact-page { padding-bottom: 72px; }
.about-page .team-section { padding-bottom: 32px; }
.about-page .related-links { margin: 0 0 40px; }
.about-page .clients-contact { margin-bottom: 72px; }
.contact-page .detail-hero-grid { align-items: start; }
.contact-guide { background: #eaf5fa; padding: 26px; margin: 24px 0; }
.contact-guide h2 { font-size: var(--fs-h4); margin: 0 0 10px; }
.contact-guide p { color: var(--navy); }
.contact-form { border: 1px solid var(--line); }
.contact-form h2 { font-size: var(--fs-h4); margin-bottom: 12px; }
.contact-form input[type=file] { padding: 10px; }
.calibration-services { padding-block: 8px 48px; max-width: 760px; }
.calibration-services h2 { font-size: var(--fs-h4); margin-bottom: 12px; }
.calibration-services p { color: var(--navy); }
.promotions-page { padding-bottom: 72px; }
.promotions-page .promotion h2 { font-size: var(--fs-h2); }
.promotions-page .promo-terms { font-size: var(--fs-ui); color: var(--navy); }
/* Client logo strip on industry and area pages. */
.client-strip { border-top: 1px solid var(--line); padding-block: 36px 56px; margin-top: 24px; }
.client-strip h2 { font-size: var(--fs-h4); margin: 0 0 18px; }
.client-strip ul { list-style: none; margin: 0 0 12px; padding: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 48px; }
.client-strip li { height: 120px; display: flex; align-items: center; }
.client-strip img { height: 100px; width: auto; max-width: 230px; object-fit: contain; }
.client-strip .client-strip-mumm img { height: 150px; max-width: 150px; }
.client-strip > a { display: inline-flex; gap: 8px; min-height: 44px; align-items: center; font-weight: 600; font-size: var(--fs-ui); color: var(--navy); text-decoration: underline; text-underline-offset: 4px; }
.service-grid .service-rental { border-top: 1px solid var(--line); }
@media(max-width:520px) { .client-strip ul { gap: 12px 28px; } .client-strip img { height: 56px; max-width: 150px; } .client-strip .client-strip-mumm img { height: 96px; } }
/* Homepage Commercial HVAC band. */
.home-hvac { display: grid; grid-template-columns: minmax(0,1.4fr) auto; gap: 24px 56px; align-items: center; background: #eaf5fa; padding: 36px 40px; margin-block: 8px 48px; width: min(1280px, calc(100% - 112px)); }
.home-hvac h2 { font-size: var(--fs-h3); margin: 0 0 10px; }
.home-hvac p { margin: 0; color: var(--navy); max-width: var(--measure); }
.home-hvac-links { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.home-hvac-links .text-link { min-height: 44px; }
@media(max-width:800px) { .home-hvac { grid-template-columns: 1fr; padding: 28px 24px; width: calc(100% - 40px); } }
.home-broad .landing-intro .hero h1 { font-size: var(--fs-h1); }
@media(min-width:801px) and (max-height:820px) { .home-broad .landing-intro .hero-image img { height: min(480px, calc(100svh - 296px)); width: 100%; object-fit: cover; } }
.industry-brief-copy .industry-equipment + h2 { margin-top: 36px; }
/* Phone carousels: homepage services and industries swipe sideways. Laptop keeps the grid. */
.carousel-nav { display: none; }
@media(max-width:800px) {
 .home-broad [data-carousel] { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; border: 0; padding: 2px 2px 10px; margin-inline: -2px; }
 .home-broad [data-carousel]::-webkit-scrollbar { display: none; }
 .home-broad [data-carousel]:focus-visible { outline: 3px solid var(--cyan); outline-offset: 2px; }
 .home-broad .service-grid > .service, .home-broad .industry-directory > .industry-entry { flex: 0 0 82%; scroll-snap-align: start; border: 1px solid var(--line) !important; background: #fff; padding: 22px 20px; }
 .home-broad .service-grid > .service-co2 { display: flex; flex-direction: column; align-items: stretch; grid-column: auto; }
 .home-broad .service-grid > .service-co2 .service-top { margin: 0 0 12px; }
 .home-broad .service-grid > .service-co2 .service-bottom { margin-top: auto; border-top: 1px solid var(--line); padding-top: 17px; }
 .home-broad .service-top { float: none; margin: 0 0 12px; }
 .carousel-nav { display: flex; justify-content: flex-end; gap: 10px; margin: -8px 0 12px; }
 .carousel-nav button { width: 44px; height: 44px; display: grid; place-items: center; border-radius: 50%; border: 1px solid var(--navy); background: #fff; color: var(--navy); cursor: pointer; }
 .carousel-nav button:disabled { opacity: .35; cursor: default; }
}
.home-hvac-links { align-items: stretch; }
.home-hvac-links .text-link { justify-content: center; }
/* Phone carousel styled like Mason's reference: centered cards, side arrows over the cards, icon badge on the top edge. */
@media(max-width:800px) {
 .home-broad .carousel { position: relative; }
 .home-broad .services .section-heading, .home-broad .broad-industries .section-heading { text-align: center; }
 .home-broad [data-carousel] { gap: 16px; padding: 34px 18% 14px; margin-inline: -20px; scroll-padding-inline: 18%; }
 .home-broad .service-grid > .service, .home-broad .industry-directory > .industry-entry { flex: 0 0 100%; scroll-snap-align: center; position: relative; text-align: center; border: 1px solid #9fd6ea !important; border-radius: 4px; padding: 44px 18px 18px; background: #fff; }
 .home-broad .industry-directory > .industry-entry { padding-top: 26px; }
 .home-broad .service-grid .service-top { position: absolute; top: -27px; left: 50%; transform: translateX(-50%); width: 54px; height: 54px; margin: 0; border-radius: 50%; background: var(--navy); display: grid; place-items: center; float: none; }
 .home-broad .service-grid .service-icon { width: 28px; height: 28px; color: #fff; }
 .home-broad .service-grid .service h3 { min-height: 0; max-width: none; font-size: var(--fs-h4); margin: 0 0 12px; text-align: center; }
 .home-broad .service-grid .service p { text-align: center; margin: 0 0 18px; }
 .home-broad .service-grid .service-bottom, .home-broad .service-grid > .service-co2 .service-bottom { margin-top: auto; justify-content: center; gap: 10px; border: 0; padding: 13px 12px; background: var(--navy); color: #fff; font-size: var(--fs-small); border-radius: 3px; }
 .home-broad .service-grid .service-bottom b { font-size: var(--fs-lead); }
 .home-broad .industry-entry h3 { margin-inline: auto; }
 .home-broad .industry-service-list { text-align: left; display: inline-block; margin-inline: auto; }
 .home-broad .industry-entry > a { margin-top: auto; justify-content: center; gap: 10px; background: var(--navy); color: #fff; border-radius: 3px; padding: 12px; }
 .carousel-nav { position: absolute; inset: 50% 0 auto; transform: translateY(-50%); margin: 0; justify-content: space-between; pointer-events: none; padding-inline: 2px; }
 .carousel-nav button { pointer-events: auto; width: 40px; height: 40px; border: 2px solid var(--navy); background: #fff; box-shadow: 0 2px 6px #00245b26; }
 .carousel-nav button:disabled { opacity: .45; }
}
/* Contact section: no stray indent; phone icon instead of arrow; shorter on phones so the request guide starts sooner. */
.contact p.emergency-note { padding-left: 0; }
.enquiry-layout .contact-phone { align-items: center; gap: 14px; }
@media(max-width:800px) {
 .contact { padding-block: 40px; }
 .contact .contact-copy h2 { font-size: var(--fs-h2); margin-bottom: 10px; }
 .enquiry-layout .contact-phone { margin: 14px 0 10px; font-size: var(--fs-h2); }
 .contact p.emergency-note { margin: 0 0 8px; padding-top: 16px; font-size: var(--fs-ui); line-height: 1.6; }
 .contact .contact-followup { display: none; }
 .enquiry-layout { gap: 24px; }
 .contact .guide-embed { padding: 24px 18px; }
 .contact .guide-embed > h3 { font-size: var(--fs-h3); }
}
.hvac-intro .hvac-promo, .detail-hero .hvac-promo { margin-left: 22px; min-height: 44px; }
.contact-page .contact-guide { background: transparent; padding: 0; margin: 28px 0; }
.contact-page .contact-guide .guide-embed { border: 1px solid var(--line); padding: 26px; }
.contact-page .contact-form-note { font-size: var(--fs-body); color: var(--navy); margin: -4px 0 16px; }
@media(max-width:600px) { .hvac-intro .hvac-promo, .detail-hero .hvac-promo { margin: 12px 0 0; display: flex; } .contact-page .contact-guide .guide-embed { padding: 20px 16px; } }
@media(max-width:800px) { .home-broad .service-grid .service-top { justify-content: center; align-content: center; } }
@media(max-width:800px) { .home-broad .service-grid .service-icon { width: 34px; height: 34px; } }
@media(max-width:520px) { .client-strip img { height: 84px; max-width: 160px; } .client-strip .client-strip-mumm img { height: 130px; max-width: 130px; } .client-strip li { height: 110px; } }
.home-broad .hero-call .hero-call-label { font-size: var(--fs-ui); }
@media(min-width:801px) and (max-height:700px) { .home-broad .landing-intro .hero { padding-block: 14px; } }
.mobile-contact-bar > a:last-child, .mobile-contact-bar > a:last-child:is(*) { font-size: var(--fs-lead); font-weight: 700; }
@media(max-width:360px) { .mobile-contact-bar > a:last-child, .mobile-contact-bar > a:last-child:is(*) { font-size: var(--fs-ui); } }
/* Phones: the truck photo shows right under the headline, on the first screen. */
@media(max-width:800px) {
 .home-broad .landing-intro .hero h1 { grid-row: 1; }
 .home-broad .landing-intro .hero-image { grid-row: 2; }
 .home-broad .landing-intro .hero-detail { grid-row: 3; }
 .home-broad .landing-intro .hero-actions { grid-row: 4; }
 .home-broad .landing-intro .hero-image img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
}
/* Headline: "Commercial Refrigeration," on line one, "HVAC & Boilers" on line two. */
.home-broad .landing-intro .hero h1 .hero-line { display: block; white-space: nowrap; }
.home-broad .landing-intro .hero h1 { font-size: var(--home-h1); } /* two nowrap lines; --home-h1 is set on .home-broad main below */
/* Drawn icons replace text arrows (iPhones showed them as emoji). */
.ico { width: 1em; height: 1em; display: inline-block; vertical-align: -0.125em; flex: none; }
.nav-trigger > span .ico { width: .75em; height: .75em; }
.menu-toggle .ico { width: 1.1em; height: 1.1em; }
/* Homepage automation photo shows whole, not cropped. */
.home-broad .controls figure { height: auto; }
.home-broad .controls figure img { height: auto; object-fit: contain; }
@media(max-width:800px) and (max-height:760px) { .home-broad .landing-intro .hero-image img { aspect-ratio: 2 / 1; } .home-broad .landing-intro .hero { gap: 16px; } }
/* One Google review beside the homepage request guide. */
/* Gold stars on Google reviews (drawn, so phones don't swap in emoji). */
.review-stars { display: flex; gap: 2px; margin-bottom: 6px; color: #f4b400; }
.review-stars svg { width: 18px; height: 18px; fill: currentColor; }
.contact .contact-copy span.review-stars { color: #f4b400; }

/* Links inside content paragraphs were indistinguishable from body text. */
.search-content p a, .search-faq p a { color: var(--navy); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
/* Recent calls block, shared by industry and service pages */
.job-calls { border-top: 1px solid var(--line); padding-top: 40px; margin-top: 8px; }
.job-calls.container { margin-bottom: 56px; }
.job-calls h2 { font-size: var(--fs-h4); margin-bottom: 8px; }
.job-calls-intro { color: var(--muted); font-size: var(--fs-body); margin: 0 0 26px; }
.job-calls-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 40px; }
.job-calls article { border-top: 3px solid var(--cyan); padding-top: 16px; }
.job-calls h3 { font-size: var(--fs-h6); line-height: 1.25; color: var(--navy); margin: 0 0 10px; }
.job-calls article p { color: var(--muted); font-size: var(--fs-ui); line-height: 1.75; margin: 0; }
.job-calls article .job-call-result { margin-top: 10px; font-weight: 600; color: var(--ink); font-size: var(--fs-small); }
@media(max-width:800px) { .job-calls-grid { grid-template-columns: 1fr; gap: 26px; }.job-calls h2 { font-size: var(--fs-h3); }.job-calls { padding-top: 32px; } }
/* Client strip as a 5-column logo grid, scoped so the shared flex strip is untouched */
.client-strip.client-strip-grid ul { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px 36px; align-items: center; justify-items: center; }
.client-strip.client-strip-grid li { height: 120px; width: 100%; display: flex; align-items: center; justify-content: center; }
.client-strip.client-strip-grid img { max-width: 100%; height: auto; max-height: 100px; width: auto; object-fit: contain; }
@media(max-width:800px) { .client-strip.client-strip-grid ul { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; } .client-strip.client-strip-grid li { height: 96px; } .client-strip.client-strip-grid img { max-height: 72px; } }
/* Per-logo sizes for the Wineries and service-area strips (moved from industries/industry-brief.css so the area pages share them) */
.client-strip.client-strip-grid .client-strip-donum img, .client-strip.client-strip-grid .client-strip-harlan img { max-height: 112px; }
.client-strip.client-strip-grid .client-strip-mumm img { max-height: 140px; max-width: 140px; }
.client-strip.client-strip-grid .client-strip-turnbull img { max-height: 96px; }
@media(max-width:800px) { .client-strip.client-strip-grid .client-strip-donum img, .client-strip.client-strip-grid .client-strip-harlan img { max-height: 88px; } .client-strip.client-strip-grid .client-strip-mumm img { max-height: 112px; max-width: 112px; } }
/* Commercial HVAC client strip: five logos, sized so they read evenly */
.client-strip.client-strip-five .client-strip-parker img { max-height: 66px; }
.client-strip.client-strip-five .client-strip-northrop img { width: 190px; height: auto; max-height: none; }
.client-strip.client-strip-five .client-strip-beringer img { max-height: 96px; }
.client-strip.client-strip-five .client-strip-darioush img { width: 212px; height: auto; max-height: none; }
.client-strip.client-strip-five .client-strip-billcos img { max-height: 84px; }
@media(max-width:800px) {
 .client-strip.client-strip-five li:last-child { grid-column: 1 / -1; }
 .client-strip.client-strip-five .client-strip-parker img { max-height: 52px; }
 .client-strip.client-strip-five .client-strip-northrop img { width: 150px; }
 .client-strip.client-strip-five .client-strip-beringer img { max-height: 72px; }
 .client-strip.client-strip-five .client-strip-darioush img { width: 150px; }
 .client-strip.client-strip-five .client-strip-billcos img { max-height: 60px; }
}
/* Secondary links beside a navy button render as an outlined button of the same outer size. */
a.button-navy + a.text-link { display: inline-flex; align-items: center; justify-content: center; gap: 20px; min-height: 48px; padding: 11px 21px; border: 2px solid var(--navy); border-radius: 12px; background: transparent; color: var(--navy); font-family: var(--body); font-size: var(--fs-small); font-weight: 600; text-decoration: none; transition: background .2s, color .2s, transform .2s; }
a.button-navy + a.text-link span { font-size: var(--fs-h6); font-weight: 400; line-height: 1; }
a.button-navy + a.text-link:hover { background: var(--navy); color: #fff; }
.industry-brief-actions a.button-navy + a.text-link { font-size: var(--fs-small); }
.area-actions a.button-navy + a.text-link { font-size: var(--fs-ui); padding: 13px 20px; }
a.button-navy:has(span) + a.text-link { min-height: 50.1px; }
@media(max-width:700px) { .search-actions a.button-navy + a.text-link { font-size: var(--fs-small); } }
@media(max-width:700px) { .search-actions a.button-navy:not(:has(span)) + a.text-link { height: 48.8px; } }
.calibration-actions a.button-navy + a.text-link { margin: 0; }
/* Projects: sticky-menu quote link is a real button; bottom-band button centers its label like the other buttons. */
.project-index-contact.button { font-size: var(--fs-small); gap: 14px; margin-top: 16px; min-height: 50px; padding-inline: 16px; white-space: nowrap; color: #fff; text-decoration: none; }
.project-index-contact.button:hover { text-decoration: none; }
.project-next .button { justify-content: center; gap: 20px; }
/* Square gallery photos (above) need the tall control-panel shot nudged up so the whole panel shows. */
.home-broad .project-grid > a[href$="#automation"] img { object-position: 50% 22%; }
/* Photo viewer: use nearly the whole screen; Close floats over the corner instead of taking its own row. */
.photo-dialog { width: min(1600px, 98vw); max-width: 98vw; max-height: 98dvh; }
.photo-dialog-inner { position: relative; max-height: 98dvh; padding: 12px; }
.photo-close { position: absolute; top: 20px; right: 20px; z-index: 1; margin: 0; background: #071e34d9; }
.photo-dialog-image { max-height: calc(98dvh - 96px); }
@media(max-width:700px) { .photo-dialog-image { max-height: calc(98dvh - 150px); } }
/* Hero: Request Service is the filled, primary action; Call stays visible but quieter, matching the rest of the site. */
.home-broad .hero-call { background: #fff; color: var(--navy); border: 2px solid var(--navy); }
.home-broad .hero-call:hover { background: #eaf5fa; }
.home-broad .hero-cta-row .hero-project { background: var(--navy); color: #fff; }
.home-broad .hero-cta-row .hero-project:hover { background: #0a397b; }
/* Header phone stays readable but quieter than the navy Request Service button. */
.header-phone { border: 2px solid #fff; background: #ffffff14; }
.header-phone strong { font-size: var(--fs-lead); font-weight: 700; }
/* Hero: Call Now box and Request Service button share one height. */
.home-broad .hero-call { padding-block: 11px; }
@media(max-width:700px) { .home-broad .hero-call { padding-block: 9px; min-height: 82px; } .home-broad .hero-cta-row .hero-project { min-height: 82px; } }

@media(min-width:801px) and (max-height:820px) { .home-broad .landing-intro .hero-call { padding-block: 5px; } }
/* Phone numbers with an icon: icon always sits before the number. */
.home-broad .hero-call svg { grid-column: 1; justify-self: end; margin-right: 12px; }
/* Card and section link labels read at body size (they were 11-14px). Paired outline buttons keep their own size via a.button-navy + a.text-link. */
.service-bottom, .industry-entry a, .industry-invitation > a, .project-grid p, .work-service-link, .text-link, .related div a { font-size: var(--fs-body); }
.project-grid p { font-weight: 600; }
.photo-enlarge, .controls-gallery .photo-enlarge { font-size: var(--fs-ui); }
/* Navy header: the two-tone logo shows as designed; Request Service is a white button so it stands out most. */
.site-header .header-actions .nav-contact, .site-header .header-inner nav .nav-contact { background: #fff; color: #00245b; font-size: var(--fs-body); font-weight: 700; box-shadow: 0 6px 18px #00000040; }
.site-header .header-actions .nav-contact { min-height: 54px; padding-inline: 22px; font-size: var(--fs-lead); }
.site-header .header-actions .nav-contact:hover, .site-header .header-inner nav .nav-contact:hover { background: #eaf5fa; }
/* Header logo 20% larger at every breakpoint (zoom scales the layout box, so the header makes room for it). */
.site-header .brand img { zoom: 1.2; }
@media(max-width:600px) { .site-header .brand img { zoom: 1; width: clamp(150px, calc(100vw - 172px), 228px); } } /* phones: as large as fits beside the Menu button */
/* 1101-1300px: full-size logo, phone and Request Service don't all fit, so step them down a little. */
@media(min-width:1101px) and (max-width:1300px) { .site-header .brand img { zoom: 1.08; } .header-phone strong { font-size: var(--fs-lead); } .site-header .header-actions .nav-contact { font-size: var(--fs-body); padding-inline: 16px; } }
@media(min-width:1101px) and (max-width:1160px) { .site-header .brand img { zoom: 1; } }
/* Anchor jumps land right under the sticky header (94px, 81px at 1100px and below). The request guide sits 72px into the
   contact section, so the whole blue frame shows on two-column layouts; on phones the guide box sits just under the header. */
html { scroll-padding-top: 94px; }
@media(max-width:1100px) { html { scroll-padding-top: 81px; } }
section[id], article[id] { scroll-margin-top: 0; }
#enquiry-form { scroll-margin-top: 72px; }
@media(max-width:800px) { #enquiry-form { scroll-margin-top: 12px; } }
/* Homepage service and industry cards: no repeated "Explore this service" / "View Services" labels. A corner arrow marks each
   card as clickable (the whole card is the link), and descriptions are larger and darker so they read easily. */
.home-broad .service-grid .service { position: relative; }
.home-broad .service-grid .service .service-bottom { position: absolute; top: 26px; right: 24px; margin: 0; padding: 0; border: 0; background: none; min-height: 0; width: auto; font-size: 0; color: var(--navy); }
.home-broad .service-grid .service .service-bottom svg { width: 24px; height: 24px; }
.home-broad .service-grid .service h3 { margin-bottom: 10px; min-height: 0; }
.home-broad .service-grid .service p { font-size: var(--fs-body); line-height: 1.6; color: #000; }
.home-broad .service-grid .service:hover { background: #f3f9fc; }
.home-broad :is(#services, #industries) .industry-entry { position: relative; }
.home-broad :is(#services, #industries) .industry-entry > a { position: static; margin: 0; padding: 0; border: 0; background: none; min-height: 0; font-size: 0; color: var(--navy); }
.home-broad :is(#services, #industries) .industry-entry > a::after { content: ""; position: absolute; inset: 0; }
.home-broad :is(#services, #industries) .industry-entry > a svg { position: absolute; top: 26px; right: 24px; width: 24px; height: 24px; }
.home-broad :is(#services, #industries) .industry-entry:hover { transform: translateY(-3px); box-shadow: 0 10px 24px #00245b14; }
.home-broad :is(#services, #industries) .industry-entry:focus-within { outline: 3px solid var(--navy); outline-offset: -3px; }
.home-broad :is(#services, #industries) .industry-entry > a:focus-visible { outline: none; }
.home-broad .industry-service-list li { font-size: var(--fs-body); color: var(--navy); font-weight: 500; }
/* Homepage Services and Industries share white icon cards with blue checkmarks. */
.home-broad :is(#services, #industries) .industry-directory { gap: 24px; }
.home-broad :is(#services, #industries) .industry-entry { background: #fff; border: 1px solid var(--line); padding: 26px 26px 24px; transition: transform .15s, box-shadow .15s; }
.home-broad :is(#services, #industries) .industry-entry h3 { min-height: 0; margin: 14px 0; font-size: var(--fs-h5); }
.home-broad :is(#services, #industries) .industry-icon { display: block; width: 42px; height: 42px; color: var(--cyan); }
.home-broad :is(#services, #industries) .industry-service-list { margin: 0; }
.home-broad :is(#services, #industries) .industry-service-list li { padding-left: 28px; margin: 0 0 9px; }
.home-broad :is(#services, #industries) .industry-service-list li::before { content: ""; top: 4px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23039bcf' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / 18px no-repeat; }
@media(max-width:800px) { .home-broad :is(#services, #industries) .industry-icon { margin-inline: auto; } }
@media(prefers-reduced-motion:reduce) { .home-broad :is(#services, #industries) .industry-entry { transition: none; } .home-broad :is(#services, #industries) .industry-entry:hover { transform: none; } }

/* CO2 and rentals retain full-width rows beneath the six main service cards. */
@media(min-width:801px) {
 .home-broad #services .service-wide { grid-column: 1 / -1; display: grid; grid-template-columns: 56px minmax(0,1fr); column-gap: 24px; align-items: center; padding-right: 64px; }
 .home-broad #services .service-wide > .industry-icon { grid-column: 1; grid-row: 1 / 3; }
 .home-broad #services .service-wide h3 { grid-column: 2; max-width: none; margin: 0 0 12px; }
 .home-broad #services .service-wide .industry-service-list { grid-column: 2; display: flex; flex-wrap: wrap; gap: 8px 28px; }
 .home-broad #services .service-wide .industry-service-list li { margin: 0; }
 .home-broad #services .service-wide > a svg { top: 50%; transform: translateY(-50%); }
}


.check-list li:before { content: "\2713"; }

/* Request copy: consistent white type, readable blue, and grouped spacing. */
.contact { background: #007da3; }
body .contact .contact-copy { max-width: 34rem; color: #fff; }
body .contact .contact-copy h2 { margin: 0 0 16px; font: 700 var(--fs-h2)/1.15 var(--heading); letter-spacing: -.015em; text-wrap: balance; }
body .contact .contact-copy .contact-followup { display: block; margin: 0 0 28px; color: #fff; font: 500 var(--fs-lead)/1.6 var(--body); }
body .contact .contact-copy .emergency-note { margin: 0 0 10px; padding: 24px 0 0; border-left: 0; border-top: 1px solid #ffffff66; color: #fff; font: 700 var(--fs-lead)/1.5 var(--body); }
body .contact .contact-copy p.after-hours-note { margin: 0 0 16px; color: #fff; font: 400 var(--fs-body)/1.65 var(--body); }
body .contact .contact-copy .contact-phone { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; margin: 0; color: #fff; font: 700 var(--fs-h3)/1.2 var(--heading); white-space: nowrap; }
body .contact .contact-copy .contact-phone svg { flex: 0 0 24px; width: 24px; height: 24px; }
body .contact .contact-copy .contact-phone:hover { text-decoration: underline; text-underline-offset: 5px; }
@media (max-width: 600px) {
 body .contact .contact-copy .contact-followup { font-size: var(--fs-lead); margin-bottom: 24px; }
 body .contact .contact-copy .emergency-note { padding-top: 20px; font-size: var(--fs-lead); }
}

/* CO2 page: services + brands share the hero grid (impeccable layout pass) */
.calibration-services.co2-split { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: clamp(32px,6vw,90px); max-width: none; padding-block: 24px 72px; align-items: start; }
.co2-split .check-list { margin-bottom: 0; }
.co2-brands { background: #eaf5fa; padding: 32px; }
.co2-brands h3 { font-size: var(--fs-h4); line-height: 1.2; color: var(--navy); margin: 0 0 20px; }
.co2-brand-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); column-gap: 24px; }
.co2-brand-list li { padding: 14px 0; border-top: 1px solid #cfe3ee; color: var(--navy); font-size: var(--fs-body); font-weight: 600; line-height: 1.35; }
.co2-brand-note { margin: 16px 0 0; padding-top: 14px; border-top: 1px solid #cfe3ee; color: var(--navy); font-size: var(--fs-body); }
@media (max-width: 800px) { .calibration-services.co2-split { grid-template-columns: 1fr; gap: 28px; padding-block: 8px 48px; } .co2-brands { padding: 26px; } }
.industry-brief .search-faq { margin-top: 56px; padding-top: 40px; border-top: 1px solid var(--line); }
/* Chillers page: brands box stacked under Our Services */
.detail-body aside .aside-brands { margin-top: 30px; padding-top: 26px; border-top: 3px solid var(--cyan); }
.detail-body aside .co2-brand-list li { padding: 11px 0; border-top-color: var(--line); font-size: var(--fs-body); }
.detail-body aside .co2-brand-note { border-top-color: var(--line); font-size: var(--fs-body); }
/* Projects: tall photos fill the same 4:3 frame as their neighbors; the full photo still opens on click */
.projects-page .selected-work-grid .gallery-frame { aspect-ratio: 4 / 3; }
.projects-page .selected-work-grid .gallery-frame img { height: 100%; object-fit: cover; object-position: 50% 30%; }
/* Industry pages: second list sits under the hero photo */
.industry-side-list { padding-top: 14px; }
/* Black text: sidebar lists and testimonials */
main aside .check-list li, main aside .co2-brand-list li { color: #000; }
section.customer-reviews blockquote, section.customer-reviews cite, section.customer-reviews p,
section.customer-reviews figcaption, section.customer-reviews .all-testimonials > summary,
section.customer-reviews .testimonial-entry figcaption { color: #000; }
/* Fonts match lewismechanical.com: Titillium Web for headings and numbers; Montserrat for buttons, phones, labels and text */
.hero-support-title, .hero-call strong, .home-broad .hero-cta-row .hero-project, .header-phone strong,
.enquiry-layout .contact-phone, .contact .contact-phone,
section.customer-reviews blockquote, section.customer-reviews p { font-family: var(--body); }
/* Montserrat runs wider than Titillium: hero actions, support label and quotes sized to suit */
.home-broad .hero-cta-row { --hero-action-size: var(--fs-h5); }
.home-broad .hero-cta-row .hero-call strong, .home-broad .hero-cta-row .hero-project { font-family: var(--body); }
.home-broad .landing-intro .hero-support-title { font-size: min(var(--fs-h6), 7.5cqw); } /* one line inside the Call Now column (text is 12.9em wide) */
@media(max-width:800px) { .home-broad .landing-intro .hero-support-title { font-size: min(var(--fs-h5), 7.5cqw); } }
.home-broad .customer-review blockquote { font-size: var(--fs-lead); line-height: 1.6; }
.home-broad .testimonial-entry blockquote, .home-broad .full-customer-review > blockquote { font-size: var(--fs-lead); line-height: 1.65; }
@media(max-width:520px) {
 .home-broad .hero-cta-row { --hero-action-size: var(--fs-h5); }
 .home-broad .customer-review blockquote { font-size: var(--fs-lead); }
 .home-broad .testimonial-entry blockquote, .home-broad .full-customer-review > blockquote { font-size: var(--fs-lead); }
}
@media(max-width:380px) {
 .home-broad .hero-cta-row { --hero-action-size: var(--fs-h6); }
}
/* mobile bar phone in Montserrat, like the other phone numbers */
.mobile-contact-bar .mobile-call strong { font-family: var(--body); font-size: var(--fs-lead); }
/* Page titles: semi-bold throughout */
h1, .calibration-intro h1 { font-weight: 600; }
/* Rental help box: inner spacing so the text sits inside the grey panel */
.rentals-page .rental-help { padding: 32px 40px; margin-top: 32px; border-radius: 12px; align-items: center; }
.rentals-page .rental-help h2 { margin: 0; }
@media(max-width:800px) {
 .rentals-page .rental-help { padding: 26px 22px; gap: 20px; align-items: flex-start; }
}
/* Site gap pass, Oct 27: photos fill their frames instead of floating in blank space */
.detail-hero .detail-photo img.hero-fill, .search-hero .detail-photo img.hero-fill, .search-hero figure img.hero-fill { width: 100%; height: 480px; max-height: none; object-fit: cover; object-position: 50% 50%; background: none; }
.industry-brief-photo img.hero-fill { width: 100%; height: 620px; object-fit: cover; }
img.hero-fill-low { object-position: 50% 78% !important; }
.rentals-page .rental-truck-photo { max-width: none; aspect-ratio: auto; height: 450px; justify-self: stretch; }
/* Projects "More of Our Work": every photo the same 4:3 frame, like the sections above */
.projects-page .more-work-group .gallery-frame { aspect-ratio: 4 / 3; padding: 0; }
.projects-page .more-work-group .gallery-frame img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; }
.projects-page .more-work-group .gallery-image-link[href$="equipment-lift-subtle-full.webp"] img { object-position: 50% 72%; }
/* Automation page screens: frames sized to the photos so there are no grey bars */
.controls-gallery .gallery-frame, .controls-gallery .gallery-photo:nth-child(-n+2) .gallery-frame { height: auto; aspect-ratio: 4 / 3; background: none; }
.controls-gallery .gallery-frame img { width: 100%; height: 100%; max-height: none; object-fit: cover; object-position: 50% 40%; }
/* Small tap target on the request guide page */
.guide-page aside .call, aside a.call { display: inline-flex; align-items: center; min-height: 44px; }
@media(max-width:800px) {
 .detail-hero .detail-photo img.hero-fill, .search-hero .detail-photo img.hero-fill, .search-hero figure img.hero-fill { height: auto; aspect-ratio: 4 / 3; }
 .industry-brief-photo img.hero-fill { height: auto; aspect-ratio: 4 / 3; }
 .rentals-page .rental-truck-photo { height: auto; aspect-ratio: 4 / 3; }
}
/* hero-fill: any wrapper inside the hero */
.detail-hero img.hero-fill { display: block; width: 100%; height: 480px; max-height: none; object-fit: cover; }
.controls-gallery .gallery-photo:last-child .gallery-frame img { object-fit: contain; background: #fff; }
@media(max-width:800px) { .detail-hero img.hero-fill { height: auto; aspect-ratio: 4 / 3; } }
/* Automation gallery: screens keep their top bar */
.controls-gallery .gallery-photo:nth-child(n+2):not(:last-child) .gallery-frame img { object-position: 50% 0; }
/* Service page hero buttons: main action + call button, same size; optional offer link underneath */
.hero-std { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 0; }
.hero-std .button { margin: 0; }
.hero-call-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 11px 21px; border: 2px solid var(--navy); border-radius: 12px; background: #fff; color: var(--navy); font: 600 var(--fs-small)/1.2 var(--body); text-decoration: none; white-space: nowrap; transition: background-color .15s ease; }
.hero-call-btn:hover { background: #eaf5fa; }
/* Rental Equipment hero: the two buttons share the row and stretch to fill it */
.rentals-page .hero-std > :is(.button, .text-link) { flex: 1 1 auto; justify-content: center; }
.hero-promo-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 18px; min-height: 44px; color: var(--navy); font: 600 var(--fs-small)/1.3 var(--body); text-decoration: underline; text-underline-offset: 4px; }
.hero-promo-link svg { width: 16px; height: 16px; }
@media(max-width:520px) {
 .hero-std { flex-direction: column; align-items: stretch; }
 .hero-std > a { width: 100%; justify-content: center; }
}
/* offer link in a flex row of actions: own line, row gap supplies the spacing */
.calibration-actions .hero-promo-link, .search-actions .hero-promo-link { flex-basis: 100%; margin-top: -2px; }
/* Screen-reader-only text */
.visually-hidden { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
/* White on cyan needs large text to meet contrast: make the request follow-up line bold */
.contact .contact-followup { font-weight: 700; }
/* font fallbacks + guide space */
@font-face{font-family:'Titillium Fallback';src:local('Arial');size-adjust:89.4%;ascent-override:126%;descent-override:44%;line-gap-override:0%}@font-face{font-family:'Montserrat Fallback';src:local('Arial');size-adjust:109.5%;ascent-override:88.5%;descent-override:23%;line-gap-override:0%}
:root{--heading:'Titillium Web','Titillium Fallback',Arial,sans-serif;--body:'Montserrat','Montserrat Fallback',Arial,sans-serif}.guide-embed [data-lewis-guide]:has(> noscript:only-child){min-height:450px}@media (min-width:600px){.guide-embed [data-lewis-guide]:has(> noscript:only-child){min-height:515px}}
/* contact form trap field: hidden from people, filled only by bots */
.form-trap{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}.form-trap input{width:0;height:0;padding:0;border:0} /* still in the form for bots; no tap target */

/* Give the service problem and verified result more weight while retaining every repair detail. */
.job-calls article p:has(>strong:first-child):first-of-type { font-size:var(--fs-lead); line-height:1.55; }
.job-calls article .job-call-result { font-size:var(--fs-lead); line-height:1.5; color:var(--navy); }
.hotel-page .job-calls { padding-bottom:24px; }



.after-hours-note { font-size:var(--fs-ui); line-height:1.55; }












/* Full-width desktop hover drawer, following the supplied motion reference. */
.nav-panel-content, .nav-panel-links { display: contents; }
.nav-drawer-surface, .nav-backdrop { display: none; }
@media (min-width:1121px) {
 .site-header .header-inner, .site-header #navigation, .site-header #navigation > .nav-group { position: static; }
 .nav-drawer-surface { display: block; position: absolute; top: 100%; left: 0; right: 0; height: 0; background: var(--navy); pointer-events: none; transition: height 280ms cubic-bezier(.4,0,.6,1); }
 .nav-drawer-open .nav-drawer-surface { transition-duration: 420ms; transition-timing-function: cubic-bezier(.16,1,.3,1); }
 .site-header .nav-group .nav-dropdown { position: absolute; top: 100%; left: 0; right: 0; width: 100%; max-height: calc(100dvh - var(--nav-header-bottom,100px)); overflow-y: auto; overscroll-behavior: contain; margin: 0; padding: 40px max(32px,calc((100% - 1280px)/2)) 48px; border: 0; box-shadow: none; background: transparent; color: #fff; z-index: 1; }
 .site-header .nav-dropdown[inert] { pointer-events: none; }
 .site-header .nav-panel-content { display: grid; grid-template-columns: minmax(200px,320px) minmax(0,1fr); gap: 64px; align-items: start; }
 .site-header .nav-panel-links { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 40px; max-width: 850px; }
 .site-header .nav-panel-links .nav-service-list { display: contents; }
 .site-header .nav-panel-links .nav-service-list li { margin: 0; padding: 0; }
 .site-header .nav-dropdown .nav-panel-links .nav-service-list li a { border: 0; }
 .site-header .nav-dropdown a, .site-header .nav-dropdown .nav-service-list a { display: block; min-height: 44px; margin: 0; padding: 9px 0; border: 0; color: #fff; background: transparent; font: 600 var(--fs-lead)/1.4 var(--body); text-decoration: none; }
 .site-header .nav-dropdown .nav-overview { display: flex; align-items: center; justify-content: flex-start; gap: 16px; margin: 0; padding: 4px 0 12px; border: 0; background: transparent; color: #fff; text-align: left; font: 600 var(--fs-h3)/1.2 var(--heading); }
 .site-header .nav-dropdown .nav-overview svg { color: currentColor; width: 22px; height: 22px; }
 .site-header .nav-dropdown .nav-overview:hover, .site-header .nav-dropdown a:hover { background: transparent; color: #fff; text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; }
 .site-header .nav-dropdown a:focus-visible { color: #fff; background: #ffffff12; outline: 2px solid #fff; outline-offset: 4px; }
 .site-header .nav-trigger:hover { text-decoration: none; }
 .site-header .nav-trigger { transition: opacity 160ms ease; }
 .site-header.nav-drawer-open .nav-trigger[aria-expanded=false] { opacity: .72; }
 .nav-backdrop { display: block; position: fixed; inset: 100px 0 0; z-index: 19; pointer-events: none; opacity: 0; background: #001b4314; backdrop-filter: blur(0); -webkit-backdrop-filter: blur(0); transition: opacity 280ms ease, backdrop-filter 420ms cubic-bezier(.16,1,.3,1), -webkit-backdrop-filter 420ms cubic-bezier(.16,1,.3,1); }
 .nav-backdrop.is-open { opacity: 1; pointer-events: auto; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
}
@media (prefers-reduced-motion:reduce) {
 .nav-drawer-surface, .nav-drawer-open .nav-drawer-surface { transition: none; }
 .nav-backdrop { transition: opacity 100ms linear; backdrop-filter: none; -webkit-backdrop-filter: none; }
 .nav-backdrop.is-open { backdrop-filter: none; -webkit-backdrop-filter: none; }
}

/* Keep the expanded mobile menu as the single scrolling surface. */
@media (max-width:1120px) {
 html:has(.site-header #navigation.is-open) { overflow: hidden; }
 .site-header #navigation.is-open { overscroll-behavior-y: contain; }
}

/* Tap targets (B2): on phones and tablets every link, button and field is at least 44x44px. Stacked and standalone
   links get real 44px rows; links inside a sentence keep the text layout and get a 44px-tall hit area from inline
   padding, which does not move the lines. */
@media (max-width:800px) {
 .footer-main .footer-services, .footer-main .footer-explore { gap: 0; }
 .footer-main :is(.footer-services, .footer-explore) a, .footer-areas a, .footer-bottom a { display: flex; align-items: center; min-height: 44px; padding-block: 6px; }
 .footer-areas { row-gap: 0; }
 :is(main, footer) p > a:not([class]), main :is(.check-list, details) li > a:not([class]) { padding-block: calc(22.5px - .55em); }
 .breadcrumbs a { padding: calc(22.5px - .55em) 3px; }
 .carousel-nav button { width: 44px; height: 44px; }
 .text-link, .service-project-link a, section h2 > a, .project-next-actions > a { min-height: 44px; }
 .project-next-actions > a { display: inline-flex; align-items: center; }
}
/* Phones (B6). Carousel: the gap between cards matches the side gutter, so neighbors don't peek and the arrows sit on
   empty gutter, never on a card's text or border. Page heroes: on phones the main action and the call button stack
   full width on every template, like the homepage hero. */
@media(max-width:800px) { .home-broad :is(#services, #industries) [data-carousel] { gap: 18vw; } .home-broad .carousel-nav { inset: 50% -20px auto; padding-inline: 4px; } }
@media(max-width:520px) {
 :is(.hero-std, .search-actions, .industry-brief-actions, .area-actions, .calibration-actions) { flex-direction: column; align-items: stretch; }
 :is(.hero-std, .search-actions, .industry-brief-actions, .area-actions, .calibration-actions) :is(a.button, a.text-link, a.hero-call-btn) { width: 100%; justify-content: center; }
}
/* Closing request block (Clients and About). */
.clients-contact { display: flex; align-items: center; justify-content: space-between; gap: 32px; background: #eaf5fa; padding: 32px 40px; }
.clients-contact h2 { margin: 0 0 8px; font-size: var(--fs-h3); line-height: 1.2; }
.clients-contact p { margin: 0; color: var(--navy); font-size: var(--fs-ui); }
.clients-contact .button { flex-shrink: 0; white-space: nowrap; }
@media(max-width:700px) {
  .clients-contact { flex-direction: column; align-items: flex-start; padding: 28px 24px; gap: 24px; }
  .clients-contact .button { max-width: 100%; white-space: normal; }
}
/* Follow-ups after the Part B re-audit (W-B10). */
/* F7: keyboard focus on a padded in-sentence link or breadcrumb outlines the words, not the 44px tap area (nothing moves:
   block padding on inline text does not change the lines). Footer link rings stay off the next row. */
@media (max-width:800px) {
 :is(main, footer) p > a:not([class]):focus-visible, main :is(.check-list, details) li > a:not([class]):focus-visible, .breadcrumbs a:focus-visible { padding-block: 0; outline-offset: 1px; }
 .footer-main :is(.footer-services, .footer-explore) a, .footer-areas a, .footer-bottom a { padding-inline: 4px; margin-inline: -4px; } /* room for the ring; the text does not move */
 .footer-main :is(.footer-services, .footer-explore) a:focus-visible, .footer-areas a:focus-visible, .footer-bottom a:focus-visible { outline-offset: 0; }
}
/* F4: homepage section headings never outgrow the hero headline, which follows its column (3.889vw from 801px, 56px at 1440;
   phone width below, 32px at 390). The heading roles are capped at 0.94 of it on this page only, so nothing jumps inside a layout range. */
.home-broad main { --home-h1: min(3.889vw, 56px); --fs-h2: min(var(--fs-h2-fluid), calc(.94 * var(--home-h1))); --fs-h3: min(var(--fs-h3-fluid), calc(.94 * var(--home-h1))); --fs-h4: min(var(--fs-h4-fluid), calc(.85 * var(--home-h1))); }
@media (max-width:800px) { .home-broad main { --home-h1: min((100vw - 40px) / 10.9375, 48px); } }
/* F2: industry pages' Related Services labels stay on one line: UI size, and one column where two would wrap. */
.industry-brief > .related-links > div { grid-template-columns: repeat(auto-fill, minmax(max(262px, calc((100% - 64px) / 3)), 1fr)); column-gap: 32px; }   /* at most 3 across: 5 links read 3 + 2 */
.industry-brief > .related-links a { font-size: var(--fs-ui); }
/* F1: the request block's rule-topped lines span their column (an older 510px cap cut them short). */
.enquiry-layout > div > p:is(.emergency-note, .guide-alt) { max-width: none; }
/* N1: the 404 title gets the same space under the header as Promotions. */
.not-found { padding-top: 84px; }
/* N2: phone footer: "All Service Areas" on its own row, the two areas together on the next. */
@media (max-width:520px) { .footer-areas .all-service-areas { flex-basis: 100%; } }
/* N3: small phones: the two Commercial HVAC buttons keep their 14px text on one line. */
@media (max-width:380px) { .home-hvac { padding-inline: 16px; } .home-hvac .home-hvac-links a:is(.button, .text-link) { padding-inline: 14px; gap: 12px; } }
/* W-C9 F1: "Industries We Serve" rows share the Related Services grid above them (two columns, one on phones). */
.related > .related-links > div { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 36px; }
@media (max-width:600px) { .related > .related-links > div { grid-template-columns: 1fr; } }
/* W-C9 F4: Napa's "Who We Work For" sits beside the winery paragraph, its heading level with that paragraph's heading. */
.search-content > div > .related-links { margin: 0; }
.search-content > div > .related-links h2 { font-size: var(--fs-h4); margin-bottom: 16px; }
/* W-C9 F5: area pages end their last link row as far above the request block as the service pages (76px, 60px on phones). */
.area-links { padding-bottom: 52px; }
@media (max-width:800px) { .area-links { padding-bottom: 36px; } }
/* W-C9 F6: area-page logo strips in four columns on desktop; tablet and phone keep two. */
@media (min-width:801px) { .client-strip.client-strip-four ul { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* W-D2: tablets: wide wordmarks in the two-column logo grid stay at the scale of the other logos (phones are already narrower). */
@media (max-width:800px) { .client-strip.client-strip-grid img { max-width: min(100%, 180px); } }
/* W-V1: homepage rentals band. The truck is parked in plain HTML and CSS; rental-truck.js drives it in from the right
   as the band scrolls up (only with motion allowed). The band clips it, so the page never scrolls sideways. */
.home-rentals { background: #eaf5fa; padding-block: 72px; overflow: hidden; overflow: clip; }
.home-rentals-inner { display: grid; grid-template-columns: minmax(280px, 5fr) 7fr; gap: clamp(40px, 5vw, 72px); align-items: center; }
.home-rentals h2 { margin: 0 0 18px; font-size: var(--fs-h2); }
.home-rentals p { margin: 0 0 30px; max-width: 34ch; font-size: var(--fs-lead); color: var(--navy); }
.home-rentals-lane { position: relative; min-width: 0; aspect-ratio: 16 / 10; }
.home-rentals-truck { position: absolute; left: 2%; right: 2%; bottom: 8px; }
.home-rentals-truck::before { content: ''; position: absolute; left: 6%; right: 8%; bottom: -7px; height: 16px; border-radius: 50%; background: radial-gradient(closest-side, color-mix(in srgb, var(--navy) 26%, transparent), transparent); }  /* contact shadow; travels with the truck */
.home-rentals-body { position: relative; display: block; width: 100%; height: auto; transform-origin: 73.121% 87.382%; }  /* rear axle */
.home-rentals-wheel { position: absolute; width: 10.909%; height: auto; }
.home-rentals-wheel-front { left: 14.979%; top: 78.013%; }
.home-rentals-wheel-rear { left: 67.667%; top: 76.966%; }
.home-rentals.is-armed :is(.home-rentals-truck, .home-rentals-body, .home-rentals-wheel) { will-change: transform; }
@media (max-width:1100px) { .home-rentals-inner { grid-template-columns: minmax(260px, 4fr) 6fr; } }
@media (max-width:700px) {
  .home-rentals { padding-block: 40px 56px; }
  .home-rentals-inner { grid-template-columns: 1fr; gap: 28px; }
  .home-rentals-lane { order: -1; }
  .home-rentals-copy { text-align: center; }
  .home-rentals p { margin-inline: auto; }
  .home-rentals .button { width: 100%; justify-content: center; gap: 20px; }
}
/* Owner 2026-11-11 ("a lot of empty space"): on industry pages Related Services sits full width under the text and
   photos, and on laptops the photo column is exactly as tall as the text column, the photos filling it. */
.industry-brief > .related-links { margin: 48px 0 0; }
@media (min-width:801px) {
 .industry-brief-grid { align-items: stretch; }
 .industry-photo-stack { display: flex; flex-direction: column; }
 .industry-photo-stack > * { flex: none; }
 .industry-photo-stack > .industry-brief-photo { flex: 1 1 260px; min-height: 0; }   /* never a thin strip */
 .industry-photo-stack > .industry-brief-photo a { height: 100%; }
 .industry-photo-stack > .industry-brief-photo img, .industry-photo-stack > .industry-brief-photo img.hero-fill { height: 100%; max-height: none; }
}
/* Owner 2026-11-12: rental item pages; Check Availability and View Details side by side on the cards */
.rentals-page .rental-detail .rental-price { margin-bottom: 26px; }
.rentals-page .rental-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin-top: 4px; }
.rentals-page .rental-actions { flex-wrap: nowrap; gap: 16px; align-items: stretch; }
.rentals-page .rental-actions > a { flex: 1 1 auto; width: auto; margin: 0; justify-content: center; white-space: nowrap; }
@media (max-width:1180px) { .rentals-page .rental-actions { flex-wrap: wrap; } .rentals-page .rental-actions > a { flex: 1 1 100%; } }
.rentals-page .rental-card h3 a { color: inherit; text-decoration: none; }
.rentals-page .rental-card h3 a:hover { text-decoration: none; }
/* Owner 2026-11-12: a selected heading's second-line highlight hid the first line's descenders (tight line-height).
   Headings get a see-through highlight; on the navy and teal sections the text stays white with a white tint.
   :root lifts these above `.projects-page ::selection`. Layout is unchanged (::selection never affects layout). */
:root :is(h1,h2,h3,h4,h5,h6)::selection, :root :is(h1,h2,h3,h4,h5,h6) ::selection { background: rgba(3, 155, 207, .3); }
:root :is(footer, .contact, .project-opening, .project-next, .maintenance-photo-panel) :is(h1,h2,h3,h4,h5,h6)::selection,
:root :is(footer, .contact, .project-opening, .project-next, .maintenance-photo-panel) :is(h1,h2,h3,h4,h5,h6) ::selection { background: rgba(255, 255, 255, .25); color: #fff; }
/* Owner 2026-11-12: the homepage Commercial HVAC band is white with a thin rule, like the lines around the Our Clients
   logos, so the rentals band is the only light-blue section in that stretch. Its edges and text line up with the
   container at every width (the old box was inset 24px between 801 and 1100px). */
.home-hvac { background: #fff; border-bottom: 1px solid var(--line); padding-inline: 0; }   /* the grey Services edge above already divides */
@media (max-width:1100px) { .home-hvac { width: calc(100% - 64px); } }
@media (max-width:800px) { .home-hvac { width: calc(100% - 40px); padding-inline: 0; } }
@media (max-width:380px) { .home-hvac { padding-inline: 0; } }
/* Owner 2026-11-12 ("center the text on buttons"): a button stretched wider than its label keeps the label and arrow
   together in the middle instead of pushing them apart (HVAC band on tablet and phone, Contact's Send Message). */
.button { justify-content: center; }
/* Owner 2026-11-12: each rental card reads as one link to its item page (the homepage cards' pattern). */
.rentals-page .rental-card { position: relative; }
.rentals-page .rental-card .rental-card-link::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.rentals-page .rental-card .rental-actions { position: relative; z-index: 2; }
.rentals-page .rental-card .rental-image { overflow: hidden; }
.rentals-page .rental-card .rental-image img { transition: transform .25s; }
.rentals-page .rental-card:hover .rental-image img { transform: scale(1.03); }
.rentals-page .rental-card:has(.rental-card-link:focus-visible) { outline: 3px solid var(--navy); outline-offset: 6px; }
.rentals-page .rental-card .rental-card-link:focus-visible { outline: none; }
@media (prefers-reduced-motion: reduce) { .rentals-page .rental-card .rental-image img { transition: none; } .rentals-page .rental-card:hover .rental-image img { transform: none; } }
/* ...and each card is a bordered card that lifts on hover, like the homepage Services and Industries cards. */
.rentals-page .rental-grid { gap: 28px; border-top: 0; margin-top: 8px; }
.rentals-page .rental-card { border: 1px solid var(--line); background: #fff; padding: clamp(24px,3vw,40px); transition: transform .15s, box-shadow .15s, border-color .15s; }
.rentals-page .rental-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px #00245b14; border-color: #b9cddd; }
@media (max-width:800px) { .rentals-page .rental-card { padding: 20px 20px 24px; } .rentals-page .rental-grid { gap: 20px; } }
@media (prefers-reduced-motion: reduce) { .rentals-page .rental-card { transition: none; } .rentals-page .rental-card:hover { transform: none; } }
/* Owner 2026-11-12: the delivery, hookup and pickup line is fine print below the cards and the specifications. */
.rentals-page .rental-fine-print { margin: 20px 0 0; font-size: var(--fs-body); line-height: 1.6; color: var(--muted); }   /* placed low on the page, grey, but readable size (site rule: no text under body size) */
