/* Apex HVAC 1.5 — searchable communities and seamless comfort atmospheres in midnight glass. Brand variables remain editable in ACF. */
/* Registered colors interpolate atmosphere without replacing the core brand palette. */
@property --mood-color { syntax:'<color>'; inherits:true; initial-value:#08a7e8; }
@property --mood-link { syntax:'<color>'; inherits:true; initial-value:#23b1eb; }
@property --mood-secondary { syntax:'<color>'; inherits:true; initial-value:#6c8be2; }
:root {
  color-scheme:dark;
  --brand-primary:#07192f; --brand-accent:#ff940b; --brand-cooling:#08a7e8; --brand-background:#050b14;
  --brand-air:#7bdbc2; --air-link:#7bdbc2; --heating-link:#ffb04d; --brand-link:#65cfff; --on-primary:#ffffff; --on-background:#ffffff; --on-accent:#07192f; --on-cooling:#07192f;
  --cream:var(--brand-background); --teal:var(--brand-primary); --orange:var(--brand-link);
  --ink:var(--on-background); --muted:color-mix(in srgb,var(--on-background) 70%,var(--brand-primary));
  --line:color-mix(in srgb,var(--on-background) 13%,transparent);
  --edge:color-mix(in srgb,var(--on-background) 26%,transparent);
  --white:#fff; --lime:var(--brand-accent);
  --mist:color-mix(in srgb,var(--brand-primary) 48%,var(--brand-background));
  --ice:color-mix(in srgb,var(--brand-primary) 85%,var(--brand-background));
  --tint:color-mix(in srgb,var(--mood-color) 12%,var(--brand-background));
  --warm-mist:color-mix(in srgb,var(--brand-accent) 7%,var(--brand-background));
  --warm-text:color-mix(in srgb,var(--brand-accent) 75%,white);
  --on-dark-muted:color-mix(in srgb,var(--on-primary) 73%,var(--brand-primary));
  --glass:linear-gradient(135deg,#ffffff08,#ffffff02),color-mix(in srgb,var(--brand-primary) 63%,var(--brand-background));
  --glass-shine:inset 0 1px 0 #ffffff16,inset 1px 0 0 #ffffff05;
  --font-body:Inter,Arial,sans-serif; --font-heading:Inter,Arial,sans-serif;
  --radius:26px; --shadow:0 24px 70px -28px #000a,var(--glass-shine);
  --ease:cubic-bezier(.2,.75,.25,1);
  --mood-color:var(--brand-cooling); --mood-link:var(--brand-link);
  --mood-secondary:color-mix(in srgb,var(--brand-cooling) 45%,#8784de);
  --mood-duration:1.15s;
  transition:--mood-color var(--mood-duration) ease,--mood-link var(--mood-duration) ease,--mood-secondary var(--mood-duration) ease;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:116px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:var(--font-body); font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; }
body.modal-open { overflow:hidden; }
img { max-width:100%; display:block; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea,summary { -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; color:inherit; }
button:disabled { cursor:wait; opacity:.55; }
h1,h2,h3,h4 { font-family:var(--font-heading); line-height:1.12; margin:0; font-weight:550; letter-spacing:-.055em; overflow-wrap:break-word; }
h2 { font-size:clamp(34px,3.6vw,52px); }
h3 { font-size:24px; letter-spacing:-.035em; }
p { margin:0 0 16px; }
ul { padding-left:20px; }
:focus-visible { outline:3px solid var(--orange); outline-offset:5px; }
.dark :focus-visible { outline-color:var(--lime); }
.contact-section :focus-visible,.form-panel :focus-visible,.offer-1 :focus-visible,.offer-2 :focus-visible { outline-color:var(--mood-link); }
::selection { background:var(--brand-accent); color:var(--on-accent); }
.icon { flex:0 0 auto; width:22px; height:22px; vertical-align:middle; }
.wrap { width:100%; max-width:1328px; margin:0 auto; padding:0 40px; }
.narrow { max-width:960px; }
.section { padding:100px 0; position:relative; }
.dark { background:var(--teal); color:var(--on-primary); }
.soft { background:var(--mist); }
.center { text-align:center; }
.section-heading { margin-bottom:42px; }
.section-heading h2 { max-width:800px; }
.section-heading.center h2 { margin-inline:auto; max-width:760px; }
.section-intro { color:var(--muted); max-width:600px; margin:20px 0 0; font-size:16px; line-height:1.75; }
.center .section-intro { margin-inline:auto; }
.eyebrow { display:flex; align-items:center; gap:9px; color:var(--orange); font-size:11px; line-height:1.6; font-weight:600; letter-spacing:.13em; text-transform:uppercase; margin:0 0 18px; }
.eyebrow::before { content:''; height:6px; width:6px; border-radius:50%; background:currentColor; flex:none; }
.center .eyebrow { justify-content:center; }
.dark .eyebrow { color:var(--lime); }
.dark .section-intro,.dark p { color:var(--on-dark-muted); }
.dark h2,.dark h3 { color:var(--on-primary); }
.heading-row { display:flex; align-items:flex-end; justify-content:space-between; gap:40px; margin-bottom:42px; }
.heading-row .section-heading { margin-bottom:0; }
.heading-row>.button { flex:0 0 auto; }
.button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; border:1px solid transparent; border-radius:999px; padding:14px 24px; background:var(--brand-accent); color:var(--on-accent); font-size:13px; font-weight:550; line-height:1.5; text-align:center; box-shadow:0 5px 30px -10px color-mix(in srgb,var(--brand-accent) 25%,transparent),inset 0 1px 0 #ffffff45; transition:transform .3s var(--ease),background .3s,box-shadow .3s; }
.button .icon { width:19px; height:19px; transition:transform .3s var(--ease); }
.button:hover { transform:translateY(-2px); box-shadow:0 8px 36px -6px color-mix(in srgb,var(--brand-accent) 40%,transparent); }
.button:hover>.icon:last-child { transform:translateX(3px); }
.button-outline { background:transparent; border-color:var(--edge); color:var(--ink); box-shadow:none; }
.button-outline:hover { background:var(--mist); }
.button-white { background:#ffffff09; border-color:var(--edge); color:var(--ink); backdrop-filter:blur(14px); }
.button-glass { background:#ffffff13; border-color:#ffffff55; color:inherit; backdrop-filter:blur(16px); }
.dark .button:not(.button-outline):not(.button-glass):not(.button-white) { background:var(--brand-accent); color:var(--on-accent); }
.dark .button-outline { border-color:var(--edge); color:var(--on-primary); }
.dark .button-outline:hover { background:color-mix(in srgb,var(--on-primary) 10%,transparent); }
.button-row { display:flex; flex-wrap:wrap; gap:18px; align-items:center; }
.button-row.center { justify-content:center; }
.grid-2 { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.grid-3 { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.split { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:64px; align-items:start; }
.card { padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:var(--glass); box-shadow:var(--shadow); }
.card h3 { margin-bottom:12px; }
.card p { color:var(--muted); }
.small-heading { font-size:11px; font-family:var(--font-body); letter-spacing:.1em; text-transform:uppercase; font-weight:500; margin:26px 0 20px; }
.text-link { display:inline-flex; align-items:center; gap:10px; color:var(--orange); font-size:12px; font-weight:600; }
.text-link .icon { width:18px; height:18px; }
.screen-reader-text,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.skip-link:focus { position:fixed; top:10px; left:10px; z-index:9999; background:var(--ice); color:var(--ink); padding:16px; border-radius:12px; }

/* Floating glass navigation. */
.announcement { background:color-mix(in srgb,var(--brand-primary) 45%,var(--brand-background)); color:var(--muted); font-size:10px; font-weight:500; border-bottom:1px solid var(--line); }
.announcement .wrap { display:flex; justify-content:center; align-items:center; gap:10px; min-height:35px; }
.announcement .wrap>span:first-child { color:var(--orange); font-size:15px; }
.announcement a { font-weight:650; white-space:nowrap; margin-left:6px; }
.announcement a:hover { text-decoration:underline; }
.site-header { height:104px; padding:14px 0; position:sticky; top:0; z-index:50; pointer-events:none; }
.admin-bar .site-header { top:32px; }
.nav-wrap { pointer-events:auto; display:flex; align-items:center; gap:22px; position:relative; height:76px; width:calc(100% - 56px); max-width:1296px; padding:0 24px; border:1px solid var(--line); border-radius:24px; color:var(--on-primary); background:var(--brand-primary); box-shadow:0 5px 28px -22px color-mix(in srgb,var(--brand-primary) 31.4%,transparent),inset 0 1px #ffffff16; transition:box-shadow .3s,background .3s; }
@supports (backdrop-filter:blur(20px)) { .nav-wrap { background:color-mix(in srgb,var(--brand-primary) 55%,transparent); backdrop-filter:blur(24px) saturate(135%); } }
.is-scrolled .nav-wrap { box-shadow:0 12px 38px -22px color-mix(in srgb,var(--brand-primary) 37.6%,transparent),inset 0 1px #ffffff16; background:color-mix(in srgb,var(--brand-primary) 86%,transparent); }
.brand { display:flex; gap:10px; align-items:center; flex:0 0 218px; min-width:0; max-width:250px; }
.brand-mark { height:40px; width:40px; border-radius:13px; display:grid; place-items:center; color:var(--teal); background:var(--lime); flex:none; box-shadow:inset 0 1px #fff; }
.brand-mark .icon { width:26px; height:26px; }
.brand-type { font-size:16px; font-weight:650; line-height:1.15; letter-spacing:-.045em; overflow-wrap:anywhere; }
.brand-type small { display:block; margin-top:5px; font-size:7px; font-weight:500; letter-spacing:.17em; }
.brand-image { width:auto; height:auto; max-width:210px; max-height:64px; object-fit:contain; }
.brand-image--header { width:210px; }
.main-nav { display:flex; align-items:center; justify-content:center; gap:1px; flex:1; }
.nav-link,.custom-nav a { border:0; background:none; padding:10px; border-radius:11px; white-space:nowrap; font-size:12px; font-weight:500; display:flex; align-items:center; gap:4px; transition:background .2s; }
.nav-link .icon { width:13px; height:13px; }
.nav-link:hover,.nav-link.current,.nav-link[aria-expanded=true],.custom-nav a:hover,.custom-nav .current-menu-item>a { background:#ffffff18; }
.nav-link[aria-expanded=true]>.icon { transform:rotate(180deg); }
.custom-nav { display:flex; gap:1px; list-style:none; padding:0; margin:0; }
.nav-call { font-size:11px; padding:11px 17px; min-height:42px; white-space:nowrap; gap:9px; }
.nav-call .icon { height:14px; width:14px; }
.menu-toggle { display:none; }
.mega-menu { position:absolute; top:calc(100% + 10px); left:0; right:0; max-height:calc(100dvh - 145px); overflow-y:auto; padding:30px; border:1px solid var(--line); border-radius:24px; color:var(--ink); background:color-mix(in srgb,var(--ice) 96.1%,transparent); backdrop-filter:blur(28px); box-shadow:0 25px 60px -30px color-mix(in srgb,var(--brand-primary) 43.9%,transparent); }
.mega-menu[hidden] { display:none; }
.mega-label { font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--orange); padding-bottom:16px; margin-bottom:20px; border-bottom:1px solid var(--line); }
.mega-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:26px; }
.mega-group>a { display:block; font-size:12px; padding:5px 0; color:var(--muted); }
.mega-group>a:hover,.mega-areas>a:hover { color:var(--orange); text-decoration:underline; }
.mega-group .mega-title { display:flex; align-items:center; gap:8px; font-weight:650; font-size:13px; color:var(--ink); margin-bottom:8px; }
.mega-title .icon { width:18px; height:18px; color:var(--orange); }
.mega-group .mega-more { display:flex; align-items:center; gap:8px; color:var(--orange); font-weight:600; }
.mega-more .icon { width:14px; height:14px; }
.mega-areas { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:14px; }
.mega-areas>a { display:flex; align-items:center; gap:8px; font-size:12px; }
.mega-areas .icon { height:15px; width:15px; color:var(--orange); }

/* The home hero: natural imagery, tactile glass, and an HVAC air dial. */
.hero { position:relative; padding:35px 0 90px; isolation:isolate; }
.hero-atmosphere { position:absolute; inset:-104px 0 0; z-index:-1; overflow:hidden; background:radial-gradient(ellipse at 82% 45%,color-mix(in srgb,var(--ice) 57.6%,transparent),transparent 58%),radial-gradient(ellipse at 6% 84%,color-mix(in srgb,var(--warm-mist) 50.2%,transparent),transparent 58%); pointer-events:none; }
.hero-atmosphere::after { content:''; position:absolute; width:650px; height:650px; left:-480px; top:40px; border:1px solid color-mix(in srgb,var(--mood-color) 20.0%,transparent); border-radius:50%; box-shadow:0 0 0 50px color-mix(in srgb,var(--mood-color) 6.3%,transparent),0 0 0 100px color-mix(in srgb,var(--mood-color) 3.1%,transparent),0 0 0 150px color-mix(in srgb,var(--mood-color) 2.0%,transparent); }
.hero-inner { display:grid; grid-template-columns:1.02fr 1fr; gap:66px; align-items:center; }
.hero-copy { padding:30px 0 18px; min-width:0; }
.hero-badge { display:inline-flex; align-items:center; gap:9px; max-width:100%; margin:0 0 28px; font-size:10px; font-weight:550; text-transform:uppercase; letter-spacing:.095em; color:var(--orange); }
.hero-badge>span { height:7px; width:7px; border-radius:50%; flex:none; background:var(--orange); box-shadow:0 0 0 5px color-mix(in srgb,var(--mood-color) 8.2%,transparent); }
.hero h1 { font-size:clamp(60px,6.15vw,87px); line-height:1.02; letter-spacing:-.075em; font-weight:550; margin:0 0 28px; }
.hero h1 em { display:block; color:var(--mood-link); font-style:normal; background:linear-gradient(110deg,#e1f5ff 0%,var(--mood-color) 80%); background-clip:text; -webkit-background-clip:text; -webkit-text-fill-color:transparent; }
.hero-description { max-width:420px; color:var(--muted); font-size:15px; line-height:1.85; margin-bottom:30px; }
.hero .button { padding:10px 12px 10px 23px; gap:21px; min-height:56px; }
.hero .button>.icon { border-radius:50%; background:var(--brand-primary); color:var(--on-primary); padding:8px; width:34px; height:34px; }
.hero-secondary { display:inline-flex; align-items:center; gap:12px; font-size:12px; font-weight:500; padding:12px 0; }
.hero-secondary .icon { width:17px; height:17px; transition:transform .25s; }
.hero-secondary:hover .icon { transform:translateX(4px); }
.hero-proof { display:flex; flex-wrap:wrap; margin-top:52px; gap:26px; }
.hero-proof>a { display:flex; align-items:center; gap:12px; color:var(--muted); font-size:10px; line-height:1.6; }
.hero-proof>a+a { border-left:1px solid var(--line); padding-left:26px; }
.hero-proof strong { color:var(--ink); font-weight:500; }
.hero-proof .proof-icon { height:38px; width:38px; display:grid; place-items:center; border-radius:50%; background:var(--mist); color:var(--orange); }
.hero-proof .proof-icon .icon { width:18px; height:18px; }
.hero-proof>a>.icon { width:15px; height:15px; }
.hero-visual { position:relative; min-width:0; padding:0 0 24px; }
.hero-photo { position:relative; height:600px; border-radius:32px; overflow:hidden; background:var(--tint); border:1px solid var(--line); box-shadow:0 24px 65px -45px color-mix(in srgb,var(--brand-primary) 25.1%,transparent); }
.hero-image { height:100%; width:100%; object-fit:cover; object-position:center 44%; filter:brightness(.92) saturate(.9); transform:scale(1.04); }
.photo-shade { position:absolute; inset:0; background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 15%,transparent),transparent 35%,color-mix(in srgb,var(--brand-background) 90%,transparent)),linear-gradient(105deg,color-mix(in srgb,var(--mood-color) 12%,transparent),transparent 70%); }
.photo-label { position:absolute; top:22px; left:22px; display:flex; align-items:center; gap:8px; padding:10px 15px; font-size:10px; font-weight:500; border:1px solid var(--line); border-radius:999px; color:var(--ink); background:color-mix(in srgb,var(--ice) 78.0%,transparent); backdrop-filter:blur(12px); }
.photo-label .icon { width:17px; height:17px; }
.photo-coordinate { position:absolute; right:17px; top:74px; writing-mode:vertical-rl; color:var(--on-primary); font-size:8px; letter-spacing:.22em; }
.comfort-explorer { --comfort-accent:var(--mood-link); position:relative; margin:-269px 26px 0 -24px; min-height:288px; padding:26px; border:1px solid var(--line); border-radius:27px; background:var(--ice); color:var(--ink); box-shadow:0 22px 48px -25px color-mix(in srgb,var(--brand-primary) 31.0%,transparent),var(--glass-shine); transition:background .5s; isolation:isolate; }
@supports (backdrop-filter:blur(24px)) { .comfort-explorer { background:linear-gradient(115deg,#d2f7ff12,#ffffff02 55%,color-mix(in srgb,var(--mood-color) 5%,transparent)),color-mix(in srgb,var(--ice) 78%,transparent); backdrop-filter:blur(26px) saturate(125%); } }
.comfort-explorer[data-mode=heating] { --comfort-accent:var(--mood-link); background-color:color-mix(in srgb,var(--warm-mist) 69.0%,transparent); }
.comfort-explorer[data-mode=air] { --comfort-accent:var(--mood-link); background-color:color-mix(in srgb,var(--ice) 69.0%,transparent); }
.comfort-eyebrow { font-size:9px; color:var(--muted); letter-spacing:.12em; text-transform:uppercase; margin:0 120px 12px 0; }
.comfort-copy { position:relative; z-index:1; padding-right:36px; }
.comfort-copy h2 { font-size:26px; letter-spacing:-.045em; max-width:90%; margin-bottom:10px; color:var(--comfort-accent); }
.comfort-copy p { font-size:12px; line-height:1.7; max-width:325px; min-height:41px; margin-bottom:18px; color:var(--muted); }
.comfort-controls { display:none; gap:5px; background:#00000030; padding:5px; border:1px solid var(--line); border-radius:15px; }
.comfort-explorer[data-interactive=true] .comfort-controls { display:grid; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); }
.comfort-mode { display:flex; align-items:center; justify-content:center; gap:7px; border:1px solid transparent; background:transparent; border-radius:10px; padding:9px 6px; min-height:48px; font-size:10px; line-height:1.4; font-weight:550; transition:background .25s,box-shadow .25s; }
.comfort-mode .icon { width:16px; height:16px; color:var(--comfort-accent); }
.comfort-mode[aria-pressed=true] { background:color-mix(in srgb,var(--mood-color) 16%,var(--ice)); box-shadow:0 3px 12px color-mix(in srgb,var(--brand-primary) 7.1%,transparent); border-color:var(--edge); }
.comfort-mode:hover { background:#ffffff0c; }
.comfort-link { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:15px 0 0; font-size:11px; font-weight:550; }
.comfort-link>span { display:grid; place-items:center; height:27px; width:38px; border:1px solid var(--edge); border-radius:999px; transition:background .25s; }
.comfort-link .icon { width:17px; height:17px; }
.comfort-link:hover>span { background:var(--ice); }
.airflow-orb { position:absolute; top:-70px; right:22px; width:140px; height:140px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); background:radial-gradient(circle at 30% 15%,#ffffff16,transparent 55%),color-mix(in srgb,var(--ice) 86%,transparent); backdrop-filter:blur(20px); box-shadow:var(--glass-shine),0 20px 50px #0006,0 0 45px -8px color-mix(in srgb,var(--mood-color) 24%,transparent); color:var(--mood-color); transition:color .5s; }
.comfort-explorer[data-mode=heating] .airflow-orb { color:var(--brand-accent); }
.airflow-dial { width:124px; height:124px; }
.airflow-blades { transform-origin:80px 80px; opacity:.85; }
@keyframes airflow-turn { to { transform:rotate(360deg); } }
.trust-strip { padding:24px 0; border-block:1px solid var(--line); background:var(--mist); }
.trust-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; }
.trust-grid>div { display:flex; align-items:center; justify-content:center; gap:13px; font-size:11px; }
.trust-grid>div+div { border-left:1px solid var(--line); }
.trust-grid strong { font-weight:500; }
.trust-grid>div>span { color:var(--orange); }
.trust-grid .icon { width:24px; height:24px; }

/* Reviews and the rounded, navy offers panel. */
.reviews-section { overflow:hidden; }
.reviews-section .section-heading { margin-bottom:16px; }
.review-summary { text-align:center; font-size:11px; color:var(--muted); margin-bottom:34px; }
.review-track { display:flex; gap:20px; overflow-x:auto; scroll-snap-type:x mandatory; scroll-padding:2px; padding:3px 2px 20px; scrollbar-width:thin; scrollbar-color:var(--edge) transparent; }
.review-card { flex:0 0 calc((100% - 40px)/3); min-width:290px; scroll-snap-align:start; border:1px solid var(--line); border-radius:24px; padding:28px; background:var(--glass); box-shadow:0 8px 24px -20px color-mix(in srgb,var(--brand-primary) 18.8%,transparent); display:flex; flex-direction:column; min-height:300px; }
.review-card-top { display:flex; justify-content:space-between; align-items:center; font-size:9px; color:var(--muted); }
.review-symbol { font-size:45px; line-height:.75; color:var(--orange); font-family:Georgia,serif; }
.review-content { position:relative; margin:24px 0 0; }
.review-content p { font-size:13px; line-height:1.8; color:var(--muted); margin:0; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.review-card.expanded .review-content p { display:block; }
.quote-mark { display:none; }
.review-toggle { padding:10px 0; background:none; border:0; text-align:left; font-size:10px; font-weight:600; color:var(--orange); }
.review-toggle[hidden] { display:none; }
.review-author { display:grid; gap:3px; margin-top:auto; padding-top:26px; }
.review-author strong { font-size:11px; font-weight:550; }
.review-author span { font-size:9px; color:var(--muted); }
.review-source { display:flex; align-items:center; gap:8px; font-size:10px; color:var(--orange); margin-top:14px; }
.review-source .icon { width:14px; height:14px; }
.review-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); overflow:visible; }
.review-grid .review-card { min-width:0; }
.reviews-section .button-row { margin-top:24px; }
.review-controls { display:none; gap:8px; justify-content:center; margin-top:18px; }
.reviews-section[data-review-controls=ready] .review-controls { display:flex; }
.review-controls button { display:grid; place-items:center; width:39px; height:39px; border:1px solid var(--edge); border-radius:50%; background:transparent; transition:background .2s; }
.review-controls button:hover:not(:disabled) { background:var(--mist); }
.review-controls button:disabled { cursor:default; opacity:.35; }
.review-controls .icon { width:17px; height:17px; }
.review-controls [data-review-prev] .icon { transform:rotate(180deg); }
.offers-section { margin:0 28px; border-radius:36px; background:var(--teal); background-image:radial-gradient(ellipse at 90% 15%,color-mix(in srgb,var(--mood-color) 18.8%,transparent),transparent 70%); padding:74px 0; overflow:hidden; border:1px solid var(--line); box-shadow:var(--glass-shine); }
.offers-section>.wrap { padding-inline:40px; max-width:1272px; }
.offers-section .section-heading h2 { max-width:600px; }
.offers-section .section-intro { max-width:530px; font-size:14px; }
.offer-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.offer-card { position:relative; border:1px solid var(--line); border-radius:24px; padding:28px; min-height:300px; display:flex; flex-direction:column; background:#ffffff0a; }
.offer-card .eyebrow { color:var(--on-dark-muted); font-size:9px; margin-bottom:25px; }
.offer-card h3 { font-size:30px; line-height:1.15; max-width:250px; margin-bottom:16px; }
.offer-card>p:not(.eyebrow) { font-size:12px; color:var(--on-dark-muted); line-height:1.8; }
.offer-1 { background:linear-gradient(140deg,color-mix(in srgb,var(--brand-accent) 12%,transparent),transparent 85%),var(--ice); border-color:color-mix(in srgb,var(--brand-accent) 38%,transparent); color:var(--ink); }
.offer-1 h3 { color:var(--ink); }
.offer-1 .eyebrow { color:var(--warm-text); }
.offer-1>p:not(.eyebrow) { color:var(--muted); }
.offer-2 { background:var(--ice); border-color:var(--edge); color:var(--ink); }
.offer-2 h3 { color:var(--ink); }
.offer-2 .eyebrow,.offer-2>p:not(.eyebrow) { color:var(--muted); }
.offer-bottom { margin-top:auto; padding-top:22px; display:flex; justify-content:space-between; align-items:end; gap:24px; }
.offer-bottom small { font-size:9px; line-height:1.6; max-width:150px; }
.offer-bottom a { display:flex; align-items:center; gap:7px; font-size:10px; font-weight:600; }
.offer-bottom a:hover { text-decoration:underline; }
.offer-bottom .icon { width:16px; height:16px; }

/* Service cards and reassuring local information. */
.services-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; }
.service-card { position:relative; isolation:isolate; min-width:0; border:1px solid var(--line); border-radius:26px; padding:34px; background:var(--glass); box-shadow:var(--shadow); overflow:hidden; transition:transform .35s var(--ease),box-shadow .35s; }
.service-card::after { content:''; position:absolute; width:145px; height:145px; border:1px solid color-mix(in srgb,var(--mood-color) 14.1%,transparent); border-radius:50%; right:-66px; top:-65px; box-shadow:0 0 0 21px color-mix(in srgb,var(--mood-color) 3.5%,transparent),0 0 0 42px color-mix(in srgb,var(--mood-color) 2.4%,transparent); pointer-events:none; }
.service-card:nth-child(3n+2) { background:linear-gradient(135deg,#ffffff06,transparent),var(--warm-mist); }
.service-card:nth-child(3n) { background:var(--glass); }
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px #0006,0 0 40px -14px color-mix(in srgb,var(--mood-color) 20%,transparent); border-color:color-mix(in srgb,var(--mood-color) 40%,transparent); }
.icon-disc { width:52px; height:52px; display:inline-flex; align-items:center; justify-content:center; border-radius:17px; background:var(--mist); color:var(--orange); border:1px solid var(--line); margin-bottom:28px; }
.service-card:nth-child(3n+2) .icon-disc { background:var(--warm-mist); color:var(--warm-text); }
.service-card:nth-child(3n) .icon-disc { background:var(--mist); color:var(--mood-link); }
.service-card .icon-disc .icon { width:25px; height:25px; }
.service-card h3 { margin-bottom:15px; font-size:25px; }
.service-card p { color:var(--muted); font-size:13px; line-height:1.8; min-height:70px; max-width:300px; }
.service-card .text-link { width:100%; justify-content:space-between; margin-top:15px; padding-top:22px; border-top:1px solid color-mix(in srgb,var(--ice) 52.2%,transparent); }
.service-card .text-link .icon { box-sizing:content-box; padding:7px; border:1px solid var(--edge); border-radius:50%; }
.reasons-layout { grid-template-columns:.95fr 1.05fr; gap:80px; align-items:center; }
.reasons-layout .section-heading { margin-bottom:28px; }
.reasons-layout .section-heading h2 { max-width:460px; }
.reasons-layout .section-intro { max-width:420px; }
.reasons-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.reasons-grid article { border:1px solid var(--line); border-radius:23px; padding:26px; background:var(--glass); }
.reasons-grid article:nth-child(2n) { transform:translateY(20px); }
.reasons-grid .icon-disc { width:40px; height:40px; border-radius:12px; margin-bottom:20px; background:var(--ice); }
.reasons-grid .icon { width:20px; height:20px; }
.reasons-grid h3 { font-size:19px; letter-spacing:-.04em; }
.reasons-grid p { font-size:12px; line-height:1.8; color:var(--muted); margin:12px 0 0; }

/* Work gallery. Captions remain readable without hover. */
.gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.gallery-item { position:relative; min-width:0; border:1px solid var(--line); padding:0; border-radius:25px; aspect-ratio:1.12; overflow:hidden; background:var(--teal); text-align:left; }
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease); }
.gallery-item:hover img { transform:scale(1.055); }
.gallery-caption { position:absolute; left:15px; right:15px; bottom:15px; display:flex; align-items:center; justify-content:space-between; gap:15px; padding:11px 14px; border:1px solid var(--line); border-radius:13px; color:var(--ink); background:color-mix(in srgb,var(--ice) 85.1%,transparent); backdrop-filter:blur(14px); font-size:10px; font-weight:550; }
.gallery-caption>span { display:grid; place-items:center; height:24px; width:24px; border-radius:50%; background:#ffffff0d; font-size:17px; }
.gallery-item[hidden] { display:none; }
.filter-bar { display:flex; gap:8px; justify-content:center; flex-wrap:wrap; margin-bottom:34px; }
.filter-bar button { padding:11px 20px; border:1px solid var(--line); border-radius:999px; background:var(--glass); font-size:12px; transition:background .25s,color .25s; }
.filter-bar .is-active { background:var(--teal); color:#fff; border-color:var(--teal); }

/* Area directory and inquiry forms. */
#service-areas { background-image:radial-gradient(ellipse at 90% 0%,color-mix(in srgb,var(--mood-color) 18.8%,transparent),transparent 55%); }
#service-areas .section-heading h2 { max-width:600px; }
#service-areas .small-heading { color:var(--on-dark-muted); }
.area-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.area-grid a { display:flex; align-items:center; gap:9px; border:1px solid var(--line); border-radius:13px; padding:13px 14px; background:#ffffff06; font-size:11px; transition:background .25s,transform .25s; }
.area-grid a:hover { background:#ffffff15; transform:translateY(-2px); }
.area-grid .icon { width:15px; height:15px; color:var(--lime); }
.area-grid a>span { font-size:8px; color:var(--on-dark-muted); margin-left:auto; }
.contact-section { padding-block:88px; background:var(--mist); color:var(--ink); }
.contact-section .wrap { max-width:1180px; }
.contact-section .split { grid-template-columns:.95fr 1.05fr; gap:80px; align-items:center; }
.contact-section h2 { font-size:54px; color:var(--ink); }
.contact-section.dark .eyebrow { color:var(--orange); }
.contact-section.dark .section-intro,.contact-section.dark p { color:var(--muted); }
.contact-phone { display:flex; align-items:center; gap:12px; font-size:22px; font-weight:550; letter-spacing:-.035em; margin:30px 0 24px; }
.contact-phone>.icon { box-sizing:content-box; padding:13px; border:1px solid var(--line); border-radius:50%; background:var(--ice); }
.contact-detail { display:flex; align-items:flex-start; gap:12px; margin:16px 0; font-size:12px; }
.contact-detail .icon { height:18px; width:18px; margin-top:2px; color:var(--orange); }
.contact-detail p { margin:0; white-space:pre-line; }
.dark .contact-detail .icon { color:var(--lime); }
.contact-section .contact-detail .icon { color:var(--orange); }
.form-panel { border:1px solid var(--line); padding:32px; border-radius:28px; background:color-mix(in srgb,var(--ice) 92.9%,transparent); color:var(--ink); box-shadow:0 22px 45px -30px color-mix(in srgb,var(--brand-primary) 25.1%,transparent); }
.form-panel h3 { color:var(--ink); font-size:26px; margin-bottom:9px; }
.form-panel>p,.dark .form-panel>p { font-size:12px; color:var(--muted); }
.service-form { display:grid; gap:16px; margin-top:25px; }
.service-form label { display:grid; gap:7px; text-align:left; font-size:11px; font-weight:550; }
.service-form label>span { display:contents; color:var(--orange); }
.form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.service-form input,.service-form select,.service-form textarea { width:100%; min-width:0; min-height:46px; border:1px solid var(--line); border-radius:10px; padding:11px 13px; color:var(--ink); font-size:13px; font-weight:400; background:var(--ice); outline-offset:2px; transition:border-color .2s,box-shadow .2s; }
.service-form :is(input,select,textarea):focus { border-color:var(--orange); box-shadow:0 0 0 3px color-mix(in srgb,var(--mood-color) 7.8%,transparent); }
.service-form textarea { resize:vertical; }
.service-form ::placeholder { color:var(--muted); }
.service-form .button { border-radius:12px; font-size:12px; box-shadow:none; background:var(--brand-accent)!important; color:var(--on-accent)!important; }
.service-form .form-note,.dark .service-form .form-note { color:var(--muted); font-size:10px; line-height:1.7; margin:0; }
.form-note a { text-decoration:underline; }
.form-trap,.apex-form-honeypot { position:absolute; left:-9999px; height:1px; width:1px; overflow:hidden; }
.form-status,.apex-form-notice { padding:15px; border:1px solid #ad7644; border-radius:10px; background:#332216; color:#ffd3ae; font-size:13px; margin:16px 0; }
.form-status--success,.apex-form-notice--success { background:#142d25; border-color:#497863; color:#b6e6ce; }
.cta-section { padding:62px 0; border-top:1px solid #ffffff18; }
.cta-layout { display:flex; align-items:center; justify-content:space-between; gap:48px; }
.cta-copy { max-width:630px; }
.cta-layout h2 { font-size:40px; margin-bottom:15px; }
.cta-layout p { font-size:13px; margin:0; }
.cta-layout>.button-row { flex:none; }
.cta-layout .button { font-size:12px; }
.faq-section { padding:90px 0; }
.faq-list { display:grid; gap:10px; }
.faq-item { border:1px solid var(--line); background:var(--glass); border-radius:18px; padding:0 24px; }
.faq-item summary { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 0; list-style:none; cursor:pointer; font-size:14px; font-weight:500; }
.faq-item summary::-webkit-details-marker { display:none; }
.faq-item summary>span { flex:none; display:grid; place-items:center; height:28px; width:28px; border-radius:50%; color:var(--orange); background:var(--mist); font-size:20px; transition:transform .3s var(--ease); }
.faq-item[open] summary>span { transform:rotate(45deg); }
.faq-answer { color:var(--muted); font-size:13px; line-height:1.8; padding:0 36px 15px 0; }
.faq-answer p { margin-bottom:10px; }

/* Office locations and footer. */
.locations-section { padding:60px 0 80px; }
.locations-section .section-heading { max-width:740px; }
.locations-section h2 { font-size:42px; }
.locations-grid { display:grid; grid-template-columns:minmax(0,1fr); }
.location-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); border:1px solid var(--line); border-radius:27px; overflow:hidden; background:var(--glass); box-shadow:var(--shadow); }
.location-info { padding:clamp(30px,4vw,50px); min-width:0; min-height:360px; align-self:center; }
.location-info h3 { font-size:clamp(23px,2.2vw,30px); margin-bottom:18px; }
.location-info .eyebrow { font-size:9px; margin-bottom:12px; }
.location-info .button { font-size:11px; min-height:40px; padding:10px 16px; margin-top:10px; }
.location-map { display:block; width:100%; height:100%; min-height:360px; border:0; border-left:1px solid var(--line); }
.map-placeholder { min-height:360px; height:100%; background:var(--mist); position:relative; overflow:hidden; display:grid; place-items:center; border-left:1px solid var(--line); }
.map-streets { position:absolute; inset:-40%; transform:rotate(-23deg); background:linear-gradient(90deg,transparent 42%,#ffffff06 42% 46%,transparent 46% 67%,#ffffff0a 67% 70%,transparent 70%),linear-gradient(0deg,transparent 25%,#ffffff06 25% 29%,transparent 29% 56%,#ffffff0a 56% 62%,transparent 62%); background-size:145px 190px; opacity:.9; }
.map-placeholder::after { content:''; position:absolute; width:90px; height:390px; background:var(--tint); transform:rotate(34deg); right:13%; opacity:.6; }
.map-placeholder>span { position:relative; z-index:1; display:grid; justify-items:center; gap:8px; padding:18px 22px; background:var(--glass); backdrop-filter:blur(15px); border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); font-size:12px; }
.map-placeholder .icon { height:28px; width:28px; color:var(--orange); }
.map-placeholder small { font-size:9px; color:var(--muted); }
.site-footer { margin:0 20px 20px; padding:65px 0 0; border-radius:34px; }
.footer-top { display:grid; grid-template-columns:1.25fr .9fr 1fr; gap:70px; padding-bottom:45px; }
.site-footer .brand { color:var(--on-primary); margin-bottom:22px; max-width:280px; }
.site-footer .brand-image--footer { width:220px; max-width:100%; max-height:none; border-radius:22px; border:1px solid var(--line); }
.footer-brand>p { font-size:12px; max-width:330px; line-height:1.8; }
.footer-tagline { font-size:20px!important; line-height:1.3!important; font-weight:450; letter-spacing:-.04em; color:var(--on-primary)!important; }
.site-footer h2 { font-size:10px; font-weight:550; text-transform:uppercase; letter-spacing:.13em; margin:0 0 22px; color:var(--lime); }
.site-footer ul { list-style:none; margin:0; padding:0; display:grid; gap:11px; font-size:12px; color:var(--on-dark-muted); }
.site-footer a:hover { color:#fff; text-decoration:underline; }
.site-footer .brand:hover { text-decoration:none; }
.social-links { display:flex; gap:16px; margin-top:20px; font-size:11px; }
.footer-areas { border-top:1px solid #ffffff1c; padding:35px 0; }
.footer-areas h2 { margin-bottom:8px; }
.footer-areas>p { font-size:12px; margin-bottom:22px; }
.footer-area-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:13px 20px; font-size:10px; color:var(--on-dark-muted); }
.footer-bottom { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:25px 0; border-top:1px solid #ffffff1c; font-size:10px; }
.footer-bottom p { margin:0; }
.footer-bottom>div { display:flex; gap:24px; }
.footer-custom-nav { display:flex!important; gap:24px!important; font-size:10px!important; }
.mobile-actions { display:none; }

/* Consistent service, contact, archive, and standard WordPress pages. */
.inner-hero { position:relative; padding:20px 0 70px; overflow:hidden; background:radial-gradient(ellipse at 90% 55%,var(--tint) 0%,transparent 65%),var(--cream); }
.inner-hero-image { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.08; }
.inner-hero>.wrap { position:relative; }
.breadcrumbs { display:flex; flex-wrap:wrap; gap:12px; font-size:10px; color:var(--muted); align-items:center; margin-bottom:44px; }
.breadcrumbs a { color:var(--orange); }
.inner-hero-copy { max-width:860px; }
.inner-hero h1 { font-size:clamp(42px,5vw,72px); line-height:1.05; letter-spacing:-.065em; margin-bottom:24px; }
.inner-hero-copy>p:not(.eyebrow) { font-size:16px; line-height:1.8; max-width:660px; color:var(--muted); margin-bottom:28px; }
.inner-hero-layout { display:grid; grid-template-columns:1.1fr .9fr; gap:64px; align-items:center; }
.inner-hero-layout h1 { font-size:58px; }
.inner-hero-layout .form-panel { padding:28px; }
.inner-hero-layout .form-panel textarea { height:86px; }
.inner-hero-layout .service-form { gap:12px; }
.content-layout { display:grid; grid-template-columns:minmax(0,1fr) 340px; gap:70px; align-items:start; }
.prose { color:var(--muted); max-width:850px; overflow-wrap:break-word; }
.prose h2,.entry-content h2 { font-size:35px; color:var(--ink); margin:36px 0 18px; }
.prose h3,.entry-content h3 { font-size:25px; color:var(--ink); margin:28px 0 14px; }
.prose h2:first-child,.prose h3:first-child { margin-top:0; }
.prose p { font-size:15px; line-height:1.9; margin-bottom:22px; }
.prose ul,.prose ol { padding-left:24px; line-height:1.9; }
.prose a { color:var(--orange); text-decoration:underline; }
.prose img,.rounded-image { border-radius:24px; width:100%; height:auto; object-fit:cover; margin:24px 0; }
.sticky-card { position:sticky; top:125px; }
.sticky-card .card+.card { margin-top:24px; }
.sticky-card h3 { font-size:22px; margin-bottom:16px; }
.sticky-card .button { width:100%; font-size:12px; margin-top:16px; }
.service-list { list-style:none; padding:0; margin:0; display:grid; gap:12px; }
.service-list a { display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--orange); font-size:13px; }
.service-list a:hover { text-decoration:underline; }
.service-directory-card .icon-disc { margin-bottom:20px; }
.service-directory-card h2 { font-size:25px; margin-bottom:20px; }
.service-directory-card h2 a:hover { color:var(--orange); }
.contact-details>p { white-space:pre-line; }
.page-links { display:flex; flex-wrap:wrap; gap:12px; margin:28px 0; }
.wp-block-image img { height:auto; }
.entry-content { overflow-wrap:anywhere; }
.entry-content>* { margin-bottom:24px; }
.wp-caption { max-width:100%; }
.alignwide { max-width:1100px; }
.alignfull { max-width:none; }
.error404 .section { min-height:450px; }
.search-form { display:flex; gap:10px; margin-top:24px; }
.search-field { padding:12px; border:1px solid var(--line); border-radius:10px; max-width:100%; }
.search-submit { padding:12px 18px; border:0; border-radius:10px; background:var(--teal); color:#fff; }

/* Accessible photo viewer. */
.lightbox { border:0; padding:60px 80px; background:color-mix(in srgb,var(--brand-primary) 91.8%,transparent); backdrop-filter:blur(24px); color:white; max-width:none; max-height:none; width:100vw; height:100dvh; inset:0; margin:0; overflow:hidden; }
.lightbox[open] { display:grid; grid-template-columns:40px 1fr 40px; align-items:center; gap:24px; }
.lightbox::backdrop { background:color-mix(in srgb,var(--brand-primary) 91.8%,transparent); }
.lightbox figure { margin:0; display:flex; align-items:center; justify-content:center; flex-direction:column; min-width:0; height:100%; }
.lightbox figure img { max-height:calc(100dvh - 150px); max-width:100%; object-fit:contain; border-radius:18px; }
.lightbox figcaption { font-size:12px; text-align:center; margin-top:18px; color:var(--on-dark-muted); }
.lightbox button { border:1px solid var(--line); color:white; background:#ffffff14; border-radius:50%; height:44px; width:44px; display:grid; place-items:center; }
.lightbox button:hover { background:#ffffff30; }
.lightbox-close { position:absolute; top:20px; right:24px; }
.lightbox-prev,.lightbox-next { font-size:34px; }

/* Motion is opt-in after JS initialization, so the unenhanced page stays visible. */
[data-glass-pointer]::before { content:''; position:absolute; inset:0; border-radius:inherit; background:radial-gradient(500px circle at var(--pointer-x,50%) var(--pointer-y,50%),color-mix(in srgb,var(--mood-color) 12%,transparent),transparent 60%); opacity:0; transition:opacity .4s; pointer-events:none; z-index:-1; }
[data-glass-pointer]:hover::before { opacity:1; }
html[data-motion=ready] .reveal { transition:opacity .8s var(--ease),translate .8s var(--ease); }
html[data-motion=ready] .reveal:not(.is-revealed) { opacity:0; translate:0 32px; }
html[data-motion=ready] .reveal.is-revealed { opacity:1; translate:0 0; }

/* Atmospheric airflow, reflective glass, and scroll depth. */
body { background-image:radial-gradient(ellipse at 5% 20%,color-mix(in srgb,var(--mood-color) 4%,transparent),transparent 40%),radial-gradient(ellipse at 100% 70%,color-mix(in srgb,var(--mood-secondary) 3%,transparent),transparent 40%); }
.page-progress { position:fixed; z-index:100; inset:0 0 auto; height:2px; transform:scaleX(var(--page-progress,0)); transform-origin:left; background:linear-gradient(90deg,var(--mood-color),#d9f3ff 60%,var(--brand-accent)); box-shadow:0 0 12px color-mix(in srgb,var(--mood-color) 70%,transparent); pointer-events:none; }
.hero-atmosphere { inset:-140px 0 -80px; background:radial-gradient(ellipse at 72% 35%,color-mix(in srgb,var(--mood-color) 12%,transparent),transparent 48%),radial-gradient(ellipse at 10% 75%,color-mix(in srgb,var(--mood-secondary) 7%,transparent),transparent 45%); }
.hero-atmosphere::before { content:''; position:absolute; inset:0; background-image:radial-gradient(#8fc4eb24 .65px,transparent .65px); background-size:30px 30px; mask-image:linear-gradient(180deg,transparent,#0007 25%,#0008 60%,transparent); }
.hero-atmosphere::after { left:45%; top:10%; width:550px; height:550px; border:0; border-radius:50%; background:radial-gradient(circle,color-mix(in srgb,var(--mood-color) 22%,transparent),transparent 65%); box-shadow:none; filter:blur(40px); }
.airflow-streams { position:absolute; inset:0; width:100%; height:100%; color:var(--mood-color); opacity:.5; }
.airflow-streams path { fill:none; stroke:currentColor; stroke-width:1; vector-effect:non-scaling-stroke; }
.airflow-streams .airflow-trace { stroke-width:2; stroke-dasharray:80 1600; opacity:.9; }
.airflow-streams .warm-stream { color:var(--mood-secondary); opacity:.32; }
.hero-visual { transform:perspective(1200px) translateY(var(--hero-drift,0px)) rotateY(-3deg); transform-origin:center; }
.hero-photo { box-shadow:var(--shadow),0 0 80px -40px color-mix(in srgb,var(--mood-color) 45%,transparent); }
.comfort-explorer { border-color:#b8dfff35; box-shadow:0 30px 70px #0008,var(--glass-shine); }
.comfort-mode[aria-pressed=true] { border-color:color-mix(in srgb,var(--comfort-accent) 35%,transparent); box-shadow:inset 0 1px #ffffff12,0 0 18px color-mix(in srgb,var(--comfort-accent) 8%,transparent); }
.comfort-explorer[data-mode=heating] .comfort-mode[aria-pressed=true] { background:color-mix(in srgb,var(--brand-accent) 14%,var(--ice)); }
.airflow-orb::before { content:''; position:absolute; inset:5px; border:1px solid currentColor; opacity:.3; border-radius:50%; box-shadow:0 0 18px color-mix(in srgb,currentColor 15%,transparent),inset 0 0 18px color-mix(in srgb,currentColor 8%,transparent); }
.comfort-explorer[data-mode=heating] .airflow-orb { box-shadow:var(--glass-shine),0 20px 50px #0006,0 0 45px -8px color-mix(in srgb,var(--brand-accent) 22%,transparent); }
.scroll-cue { display:inline-flex; align-items:center; gap:12px; font-size:9px; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-top:35px; }
.scroll-cue>span { position:relative; height:30px; width:18px; border:1px solid var(--edge); border-radius:12px; }
.scroll-cue>span::before { content:''; position:absolute; width:2px; height:7px; background:var(--mood-color); border-radius:2px; top:6px; left:7px; }
.trust-strip { background:linear-gradient(90deg,transparent,#ffffff03,transparent); }
.card,.review-card,.service-card,.reasons-grid article,.offer-card,.form-panel,.faq-item,.location-card { backdrop-filter:blur(18px); box-shadow:var(--shadow); }
.service-card,.review-card,.offer-card { position:relative; isolation:isolate; }
.soft { background:linear-gradient(120deg,var(--mist),transparent); border-block:1px solid #ffffff06; }
.offer-bottom a { color:var(--mood-link); }
.offer-1 .offer-bottom a { color:var(--warm-text); }
.contact-section { background:radial-gradient(ellipse at 5% 60%,color-mix(in srgb,var(--mood-color) 7%,transparent),transparent 60%),var(--brand-background); }
.form-panel { background:var(--glass); }
.service-form input,.service-form select,.service-form textarea,.search-field { background:color-mix(in srgb,var(--brand-background) 65%,var(--brand-primary)); color:var(--ink); border-color:color-mix(in srgb,var(--on-background) 40%,transparent); }
.service-form option { background:var(--ice); color:var(--ink); }
.service-form input:autofill { box-shadow:inset 0 0 0 100px var(--ice); -webkit-text-fill-color:var(--ink); }
.cta-section { background:radial-gradient(ellipse at 85% 30%,color-mix(in srgb,var(--mood-color) 9%,transparent),transparent 50%),var(--mist); }
.site-footer { background:linear-gradient(140deg,var(--ice),var(--brand-background)); border:1px solid var(--line); box-shadow:var(--glass-shine); }
.filter-bar .is-active { background:color-mix(in srgb,var(--mood-color) 15%,var(--ice)); border-color:var(--mood-color); color:var(--mood-link); }
.faq-item[open] { border-color:color-mix(in srgb,var(--mood-color) 25%,transparent); background:var(--ice); }
html[data-ambient-motion=running] .airflow-blades { animation:airflow-turn 18s linear infinite; }
html[data-ambient-motion=running] .hero-atmosphere::after { animation:ambient-drift 22s ease-in-out infinite alternate; }
html[data-ambient-motion=running] .airflow-trace { animation:air-travel 16s linear infinite; }
html[data-ambient-motion=running] .warm-stream.airflow-trace { animation-duration:22s; animation-direction:reverse; }
html[data-ambient-motion=running] .scroll-cue>span::before { animation:scroll-nudge 2.6s ease-in-out infinite; }
html[data-ambient-motion=paused] { scroll-behavior:auto; }
html[data-ambient-motion=paused] .reveal { opacity:1!important; translate:none!important; transition:none!important; }
@keyframes ambient-drift { from { transform:translate3d(-50px,-20px,0) scale(.85); } to { transform:translate3d(70px,40px,0) scale(1.15); } }
@keyframes air-travel { to { stroke-dashoffset:-1680; } }
@keyframes scroll-nudge { 0%,100% { transform:translateY(0); opacity:.5; } 50% { transform:translateY(7px); opacity:1; } }
@media(max-width:767px) {
  .hero-visual { transform:none; }
  .scroll-cue { margin-top:24px; }
  .site-header .brand-image--header { width:170px; max-width:100%; }
  .hero-atmosphere::after { width:300px; height:500px; left:20%; }
  .airflow-streams { opacity:.18; }
}

/* The service selector changes the ambience; the navy canvas and orange actions stay Apex. */
html[data-comfort-theme] { --orange:var(--mood-link); }
html[data-comfort-theme=cooling] {
  --mood-color:var(--brand-cooling); --mood-link:var(--brand-link);
  --mood-secondary:color-mix(in srgb,var(--brand-cooling) 45%,#8784de);
}
html[data-comfort-theme=heating] {
  --mood-color:var(--brand-accent); --mood-link:var(--heating-link);
  --mood-secondary:color-mix(in srgb,var(--brand-accent) 60%,#dd8cae);
}
html[data-comfort-theme=air] {
  --mood-color:var(--brand-air); --mood-link:var(--air-link);
  --mood-secondary:color-mix(in srgb,var(--brand-air) 65%,#c3df8d);
}
.hero-photo .hero-image { position:absolute; inset:0; opacity:0; transition:opacity var(--mood-duration) ease; }
.hero-photo .hero-image[data-comfort-image=cooling] { opacity:1; }
.hero-photo[data-image-mode=heating] .hero-image[data-comfort-image=cooling],
.hero-photo[data-image-mode=air] .hero-image[data-comfort-image=cooling] { opacity:0; }
.hero-photo[data-image-mode=heating] .hero-image[data-comfort-image=heating],
.hero-photo[data-image-mode=air] .hero-image[data-comfort-image=air] { opacity:1; }
.photo-shade { background:linear-gradient(180deg,color-mix(in srgb,var(--brand-primary) 12%,transparent),transparent 35%,color-mix(in srgb,var(--brand-background) 90%,transparent)),linear-gradient(105deg,color-mix(in srgb,var(--mood-color) 8%,transparent),transparent 70%); }
.hero h1 em { background:linear-gradient(110deg,color-mix(in srgb,var(--mood-color) 16%,white) 0%,var(--mood-color) 85%); background-clip:text; -webkit-background-clip:text; }
.home-layout .nav-wrap { box-shadow:0 10px 35px -24px #000c,inset 0 1px color-mix(in srgb,var(--mood-color) 20%,#ffffff09); border-color:color-mix(in srgb,var(--mood-color) 20%,#ffffff0b); }
.comfort-explorer,.comfort-explorer[data-mode=heating],.comfort-explorer[data-mode=air] { --comfort-accent:var(--mood-link); background-color:color-mix(in srgb,var(--mood-color) 5%,var(--ice)); border-color:color-mix(in srgb,var(--mood-color) 26%,#ffffff14); }
@supports (backdrop-filter:blur(24px)) {
  .comfort-explorer,.comfort-explorer[data-mode=heating],.comfort-explorer[data-mode=air] { background:linear-gradient(115deg,#ffffff09,#ffffff02 55%,color-mix(in srgb,var(--mood-color) 7%,transparent)),color-mix(in srgb,var(--ice) 84%,transparent); }
}
.comfort-mode[aria-pressed=true],.comfort-explorer[data-mode=heating] .comfort-mode[aria-pressed=true] { background:color-mix(in srgb,var(--mood-color) 14%,var(--ice)); }
.airflow-orb,.comfort-explorer[data-mode=heating] .airflow-orb { color:var(--mood-color); box-shadow:var(--glass-shine),0 20px 50px #0006,0 0 45px -8px color-mix(in srgb,var(--mood-color) 24%,transparent); }
.hero-badge,.hero-proof .proof-icon,.photo-label,.comfort-copy h2,.comfort-mode,.airflow-streams,.airflow-orb,.trust-grid>div>span { transition:color var(--mood-duration) ease,background-color var(--mood-duration) ease,border-color var(--mood-duration) ease,box-shadow var(--mood-duration) ease; }
.hero-photo,.nav-wrap { transition:box-shadow var(--mood-duration) ease,border-color var(--mood-duration) ease,background-color var(--mood-duration) ease; }
html[data-ambient-motion=paused] { --mood-duration:0s; transition:none; }
html[data-ambient-motion=paused] .hero-photo .hero-image { transition:none; }
html[data-ambient-motion=paused] .comfort-explorer,html[data-ambient-motion=paused] .filter-bar button { transition:none; }
@media(prefers-reduced-motion:reduce) { :root { --mood-duration:0s; transition:none; } }

@media(min-width:1600px) { .hero { padding-block:45px 90px; } }
@media(max-width:1199px) {
  .wrap { padding-inline:30px; }
  .nav-wrap { padding-inline:18px; gap:12px; }
  .brand { flex-basis:190px; }
  .brand-type { font-size:14px; }
  .nav-link,.custom-nav a { padding:10px 7px; font-size:10px; }
  .nav-call { padding:10px 14px; }
  .nav-call .icon { display:none; }
  .hero-inner { gap:44px; }
  .hero h1 { font-size:72px; }
  .hero-photo { height:570px; }
  .hero .button-row { gap:13px; }
  .hero-secondary { font-size:11px; }
  .comfort-explorer { padding:23px; margin-right:20px; margin-left:-18px; }
  .comfort-controls { gap:2px; padding:4px; }
  .comfort-mode { gap:5px; padding:8px 4px; font-size:9px; }
  .comfort-mode .icon { width:14px; height:14px; }
  .reasons-layout { gap:40px; }
  .area-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .footer-top { gap:40px; }
  .inner-hero-layout { gap:36px; }
  .inner-hero-layout h1 { font-size:48px; }
}
@media(max-width:1023px) {
  .site-header { height:96px; padding-block:12px; }
  .nav-wrap { height:72px; width:calc(100% - 40px); padding-inline:18px; border-radius:21px; }
  .brand { flex:1; max-width:270px; }
  .brand-type { font-size:16px; }
  .brand-image { max-height:52px; }
  .nav-call { margin-left:auto; padding:10px 18px; font-size:11px; }
  .nav-call .icon { display:block; }
  .menu-toggle { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; height:40px; width:40px; order:3; padding:9px; border:1px solid var(--line); background:#ffffff14; border-radius:12px; }
  .menu-toggle>span:not(.screen-reader-text) { width:19px; height:1.5px; background:var(--on-primary); transition:transform .2s; }
  .nav-open .menu-toggle>span:first-child { transform:translateY(6.5px) rotate(45deg); }
  .nav-open .menu-toggle>span:nth-child(2) { opacity:0; }
  .nav-open .menu-toggle>span:nth-child(3) { transform:translateY(-6.5px) rotate(-45deg); }
  .main-nav { display:none; position:absolute; top:calc(100% + 8px); left:0; right:0; background:color-mix(in srgb,var(--ice) 98.0%,transparent); color:var(--ink); padding:12px 18px 22px; max-height:calc(100dvh - 160px); overflow-y:auto; border:1px solid var(--line); border-radius:20px; box-shadow:0 22px 40px -22px color-mix(in srgb,var(--brand-primary) 39.6%,transparent); }
  .nav-open .main-nav { display:block; }
  .main-nav .nav-link:hover,.main-nav .nav-link.current,.main-nav .nav-link[aria-expanded=true],.main-nav .custom-nav a:hover { background:var(--mist); }
  .nav-link,.custom-nav a { width:100%; font-size:13px; padding:13px 10px; justify-content:space-between; }
  .custom-nav { display:block; }
  .mega-menu { position:static; border-radius:12px; background:var(--ice); box-shadow:none; padding:18px; max-height:none; margin-block:5px; }
  .mega-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
  .mega-areas { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .hero { padding-top:22px; padding-bottom:50px; }
  .hero-inner { gap:34px; }
  .hero h1 { font-size:62px; }
  .hero-copy { padding:12px 0; }
  .hero-badge { font-size:9px; line-height:1.7; letter-spacing:.06em; margin-bottom:24px; }
  .hero-description { font-size:14px; line-height:1.8; }
  .hero .button { min-height:50px; font-size:11px; gap:15px; padding:8px 10px 8px 18px; }
  .hero-proof { gap:14px; margin-top:30px; }
  .hero-proof>a { font-size:9px; gap:9px; }
  .hero-proof>a+a { padding-left:14px; }
  .hero-proof .proof-icon { display:none; }
  .hero-photo { height:540px; border-radius:25px; }
  .photo-label { left:14px; top:14px; font-size:8px; padding:9px 10px; }
  .comfort-explorer { margin-top:-245px; min-height:270px; margin-right:12px; padding:20px; border-radius:23px; }
  .comfort-copy { padding-right:0; }
  .comfort-copy h2 { font-size:23px; }
  .comfort-copy p { font-size:11px; max-width:100%; min-height:56px; }
  .comfort-eyebrow { margin-right:70px; font-size:8px; }
  .airflow-orb { width:112px; height:112px; top:-58px; right:15px; }
  .airflow-dial { width:102px; height:102px; }
  .comfort-mode { flex-direction:column; padding:8px 3px; font-size:8px; }
  .trust-grid { gap:18px; }
  .trust-grid>div { font-size:10px; gap:9px; }
  .trust-grid .icon { height:19px; width:19px; }
  .section { padding-block:76px; }
  .offers-section { margin-inline:20px; padding-block:64px; }
  .offers-section>.wrap { padding-inline:28px; }
  .offer-card { padding:23px; }
  .offer-card h3 { font-size:26px; }
  .offer-bottom { display:block; }
  .offer-bottom a { margin-top:14px; }
  .service-card { padding:25px; }
  .service-card h3 { font-size:23px; }
  .service-card p { min-height:92px; }
  .reasons-layout { grid-template-columns:1fr; gap:40px; }
  .reasons-layout .section-heading h2 { max-width:700px; }
  .reasons-layout .section-intro { max-width:600px; }
  .reasons-grid article:nth-child(2n) { transform:none; }
  .review-card { flex-basis:calc((100% - 20px)/2); }
  .review-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .contact-section .split { gap:35px; }
  .contact-section h2 { font-size:44px; }
  .contact-section .form-panel { padding:26px; }
  .cta-layout { align-items:flex-start; gap:25px; flex-direction:column; }
  .cta-layout h2 { max-width:700px; }
  .area-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .footer-area-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .inner-hero-layout { grid-template-columns:1fr 1fr; gap:26px; }
  .inner-hero-layout h1 { font-size:43px; }
  .inner-hero-layout .form-panel { padding:22px; }
  .inner-hero-layout .form-row { grid-template-columns:1fr; }
  .content-layout { grid-template-columns:minmax(0,1fr) 290px; gap:30px; }
  .grid-3 { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:782px) { .admin-bar .site-header { top:46px; } }
@media(max-width:767px) {
  html { scroll-padding-top:102px; }
  .wrap { padding-inline:22px; }
  h2 { font-size:36px; }
  h3 { font-size:23px; }
  .section { padding-block:64px; }
  .section-heading { margin-bottom:30px; }
  .section-intro { font-size:14px; line-height:1.8; }
  .eyebrow { font-size:9px; margin-bottom:16px; }
  .announcement { font-size:9px; }
  .announcement .wrap { padding:7px 13px; line-height:1.5; gap:7px; text-align:center; min-height:32px; }
  .announcement .wrap>span:first-child { display:none; }
  .announcement a { font-size:8px; margin-left:0; }
  .site-header { height:88px; padding-block:10px; }
  .nav-wrap { height:68px; width:calc(100% - 28px); border-radius:20px; padding-inline:14px; }
  .brand { max-width:255px; gap:9px; }
  .brand-mark { width:36px; height:36px; border-radius:11px; }
  .brand-mark .icon { width:23px; height:23px; }
  .brand-type { font-size:14px; }
  .brand-type small { font-size:6px; }
  .brand-image { max-width:180px; max-height:50px; }
  .nav-call { display:none; }
  .menu-toggle { margin-left:auto; }
  .main-nav { max-height:calc(100dvh - 205px - env(safe-area-inset-bottom)); }
  .mega-grid { gap:20px 14px; }
  .mega-areas { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mega-group .mega-title { font-size:12px; }
  .mega-group>a { font-size:11px; }
  .hero { padding:17px 0 40px; }
  .hero-inner { grid-template-columns:1fr; gap:32px; }
  .hero-copy { padding:10px 0 0; }
  .hero-badge { font-size:9px; letter-spacing:.07em; margin-bottom:22px; }
  .hero h1 { font-size:clamp(54px,10vw,73px); max-width:580px; line-height:1.01; margin-bottom:22px; letter-spacing:-.07em; }
  .hero-description { max-width:500px; font-size:14px; line-height:1.85; margin-bottom:24px; }
  .hero .button-row { gap:20px; }
  .hero .button { min-height:52px; font-size:12px; padding:9px 10px 9px 18px; gap:16px; }
  .hero-secondary { font-size:11px; gap:9px; }
  .hero-proof { margin-top:29px; gap:20px; }
  .hero-proof>a { font-size:9px; }
  .hero-proof>a+a { padding-left:20px; }
  .hero-proof .proof-icon { display:grid; width:33px; height:33px; }
  .hero-visual { padding:0; max-width:580px; width:100%; justify-self:center; }
  .hero-photo { height:430px; border-radius:25px; }
  .hero-image { object-position:center 48%; }
  .photo-label { font-size:9px; top:18px; left:18px; padding:10px 13px; }
  .comfort-explorer { margin:-210px 14px 0; min-height:0; padding:22px; border-radius:23px; }
  .comfort-eyebrow { font-size:8px; margin-right:85px; margin-bottom:12px; }
  .comfort-copy h2 { font-size:25px; }
  .comfort-copy p { font-size:12px; min-height:41px; max-width:330px; margin-bottom:18px; }
  .comfort-mode { flex-direction:row; font-size:9px; padding:8px 4px; }
  .airflow-orb { width:112px; height:112px; right:14px; top:-59px; }
  .trust-strip { padding-block:23px; }
  .trust-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 15px; }
  .trust-grid>div { justify-content:flex-start; font-size:9px; gap:10px; }
  .trust-grid>div+div { border-left:0; }
  .trust-grid .icon { width:20px; height:20px; }
  .heading-row { display:block; margin-bottom:30px; }
  .heading-row>.button { margin-top:23px; }
  .heading-row .button { font-size:11px; min-height:46px; }
  .review-card { flex-basis:calc(100% - 18px); min-width:0; padding:25px; min-height:290px; }
  .review-grid { grid-template-columns:1fr; }
  .review-summary { font-size:10px; margin-bottom:25px; }
  .review-controls { margin-top:10px; }
  .offers-section { margin:0 12px; border-radius:27px; padding-block:47px; }
  .offers-section>.wrap { padding-inline:22px; }
  .offer-grid,.services-grid { grid-template-columns:1fr; gap:16px; }
  .offer-card { padding:27px; min-height:255px; }
  .offer-card h3 { font-size:32px; max-width:300px; }
  .offer-card .eyebrow { margin-bottom:20px; }
  .offer-bottom { display:flex; gap:20px; }
  .offer-bottom a { margin-top:0; }
  .service-card { padding:29px; }
  .service-card h3 { font-size:27px; }
  .service-card p { min-height:0; max-width:100%; font-size:13px; }
  .service-card .text-link { margin-top:6px; padding-top:18px; }
  .icon-disc { width:49px; height:49px; margin-bottom:24px; }
  .reasons-grid { gap:14px; }
  .reasons-grid article { padding:22px; }
  .reasons-grid h3 { font-size:19px; }
  .reasons-grid p { font-size:11px; }
  .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .gallery-item { border-radius:20px; aspect-ratio:.85; }
  .gallery-caption { left:9px; right:9px; bottom:9px; font-size:9px; padding:8px 9px; border-radius:10px; gap:5px; }
  .gallery-caption>span { width:20px; height:20px; font-size:14px; }
  .area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
  .area-grid a { padding:12px 11px; font-size:10px; }
  .area-grid a>span { display:none; }
  .area-grid .icon { width:14px; height:14px; }
  .split,.contact-section .split { grid-template-columns:1fr; gap:32px; }
  .contact-section h2 { font-size:40px; max-width:420px; }
  .contact-section .section-heading { margin-bottom:24px; }
  .contact-phone { font-size:21px; margin-top:24px; }
  .contact-section .form-panel,.form-panel { padding:25px; border-radius:24px; }
  .form-panel h3 { font-size:26px; }
  .form-row { gap:12px; }
  .service-form input,.service-form select,.service-form textarea { font-size:16px; }
  .service-form label { font-size:11px; }
  .cta-section { padding-block:45px; }
  .cta-layout { gap:25px; }
  .cta-layout h2 { font-size:35px; }
  .cta-layout .button-row { gap:12px; }
  .cta-layout .button { font-size:11px; min-height:48px; padding:12px 19px; }
  .faq-item { padding-inline:20px; }
  .faq-item summary { font-size:13px; padding-block:20px; }
  .faq-answer { font-size:12px; padding-right:0; }
  .locations-section h2 { font-size:36px; }
  .locations-grid { grid-template-columns:1fr; }
  .location-card { grid-template-columns:1fr; }
  .location-info { min-height:0; padding:26px; }
  .location-map,.map-placeholder { height:280px; min-height:280px; border-left:0; border-top:1px solid var(--line); }
  .site-footer { margin:0 12px 82px; padding-top:45px; border-radius:28px; }
  .site-footer .wrap { padding-inline:25px; }
  .footer-top { grid-template-columns:1fr 1fr; gap:34px 24px; padding-bottom:35px; }
  .footer-brand { grid-column:1/-1; }
  .site-footer .brand { max-width:280px; }
  .site-footer .brand-type { font-size:18px; }
  .site-footer .brand-type small { font-size:7px; }
  .site-footer h2 { font-size:9px; }
  .site-footer ul { font-size:11px; }
  .site-footer .contact-detail { font-size:10px; gap:8px; }
  .site-footer .contact-detail .icon { width:15px; height:15px; }
  .footer-area-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:13px 10px; font-size:9px; }
  .footer-bottom { display:block; font-size:9px; }
  .footer-bottom>div { margin-top:16px; }
  .mobile-actions { position:fixed; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1fr; gap:10px; padding:10px 16px calc(10px + env(safe-area-inset-bottom)); z-index:45; border-top:1px solid var(--line); background:color-mix(in srgb,var(--ice) 92.2%,transparent); backdrop-filter:blur(24px); box-shadow:0 -5px 25px color-mix(in srgb,var(--brand-primary) 6.3%,transparent); }
  .mobile-actions a { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:10px 12px; border:1px solid var(--line); border-radius:999px; font-size:11px; font-weight:550; background:var(--ice); }
  .mobile-actions a:last-child { background:var(--brand-accent); border-color:var(--brand-accent); color:var(--on-accent); }
  .mobile-actions .icon { width:16px; height:16px; }
  .inner-hero { padding:12px 0 48px; }
  .breadcrumbs { margin-bottom:28px; font-size:9px; }
  .inner-hero h1 { font-size:44px; }
  .inner-hero-copy>p:not(.eyebrow) { font-size:14px; }
  .inner-hero-layout { grid-template-columns:1fr; gap:32px; }
  .inner-hero-layout .form-panel { padding:24px; }
  .inner-hero-layout .form-row { grid-template-columns:1fr 1fr; }
  .inner-hero-layout .button-row { gap:12px; }
  .inner-hero .button { font-size:11px; padding:12px 18px; min-height:48px; }
  .content-layout { grid-template-columns:1fr; gap:32px; }
  .sticky-card { position:static; }
  .prose h2,.entry-content h2 { font-size:30px; }
  .prose h3,.entry-content h3 { font-size:24px; }
  .prose p { font-size:14px; }
  .grid-2,.grid-3 { grid-template-columns:1fr; }
  .lightbox { padding:70px 10px; }
  .lightbox[open] { grid-template-columns:30px 1fr 30px; gap:6px; }
  .lightbox button { height:33px; width:33px; }
  .lightbox-prev,.lightbox-next { font-size:28px; }
  .lightbox figure img { max-height:calc(100dvh - 170px); border-radius:12px; }
  .lightbox figcaption { font-size:10px; }
  .filter-bar { gap:8px; }
  .filter-bar button { font-size:10px; padding:9px 14px; }
}
@media(max-width:600px) { .admin-bar .site-header { top:0; } }
@media(max-width:420px) {
  .wrap { padding-inline:20px; }
  .hero h1 { font-size:58px; }
  .hero .button-row { gap:15px; }
  .hero .button { font-size:11px; gap:11px; }
  .hero-secondary { font-size:10px; gap:5px; }
  .hero-secondary .icon { width:14px; height:14px; }
  .comfort-explorer { padding:20px; margin-inline:10px; }
  .comfort-mode { flex-direction:column; font-size:8px; gap:5px; }
  .comfort-copy h2 { font-size:25px; }
  .comfort-copy p { min-height:60px; }
  .reasons-grid { grid-template-columns:1fr; }
  .reasons-grid article { padding:26px; }
  .reasons-grid h3 { font-size:22px; }
  .reasons-grid p { font-size:13px; }
  .form-row,.inner-hero-layout .form-row { grid-template-columns:1fr; }
  .footer-area-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:359px) {
  .hero h1 { font-size:51px; }
  .hero .button-row { align-items:flex-start; flex-direction:column; gap:8px; }
  .hero-badge { font-size:8px; }
  .hero-proof { gap:10px; }
  .hero-proof>a+a { padding-left:10px; }
  .hero-proof .proof-icon { display:none; }
  .hero-photo { height:400px; }
  .comfort-explorer { margin-inline:6px; padding:17px; }
  .comfort-eyebrow { max-width:150px; font-size:7px; }
  .airflow-orb { width:98px; height:98px; top:-50px; }
  .airflow-dial { width:90px; height:90px; }
  .footer-top { grid-template-columns:1fr; }
  .footer-brand { grid-column:auto; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation:none!important; transition:none!important; }
  html[data-motion=ready] .reveal { opacity:1!important; translate:none!important; }
  .button:hover,.service-card:hover,.gallery-item:hover img,.area-grid a:hover { transform:none; }
}
@media(prefers-contrast:more) {
  .nav-wrap { background:var(--brand-primary); backdrop-filter:none; }
  .comfort-explorer,.photo-label,.gallery-caption,.form-panel { background:var(--ice); backdrop-filter:none; }
  .review-card,.service-card,.reasons-grid article,.faq-item { border-color:var(--muted); }
}

/* One calm service-area directory; short featured lists elsewhere. */
.home-areas-section { border-block:1px solid var(--line); background:radial-gradient(ellipse at 18% 65%,color-mix(in srgb,var(--mood-color) 7%,transparent),transparent 55%),var(--mist); }
.home-areas-layout { display:grid; grid-template-columns:1fr 1.15fr; align-items:center; gap:76px; }
.home-areas-copy .section-heading { margin-bottom:26px; }
.home-areas-copy h2 { max-width:450px; }
.home-areas-copy .section-intro { max-width:390px; }
.featured-areas { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.featured-area { display:flex; align-items:center; gap:13px; min-height:77px; padding:18px; border:1px solid var(--line); border-radius:18px; background:var(--glass); box-shadow:var(--glass-shine); font-size:13px; transition:border-color .25s,background-color .25s,transform .25s; }
.featured-area:hover { border-color:color-mix(in srgb,var(--mood-color) 50%,var(--edge)); transform:translateY(-2px); background-color:var(--tint); }
.featured-area-pin { color:var(--mood-link); display:grid; place-items:center; width:32px; height:36px; flex:none; }
.featured-area-pin .icon { width:20px; height:20px; }
.featured-area>.icon { margin-left:auto; width:16px; height:16px; color:var(--muted); }
.footer-areas-compact { display:flex; align-items:center; justify-content:space-between; gap:28px; }
.footer-areas-compact h2 { font-size:16px; font-weight:500; letter-spacing:-.015em; text-transform:none; color:var(--on-primary); }
.footer-areas-compact p { font-size:12px; margin:7px 0 0; }
.footer-areas-compact .text-link { flex-shrink:0; color:var(--mood-link); }
.area-directory-section { position:relative; padding:46px 0 100px; background:radial-gradient(ellipse at 84% 12%,color-mix(in srgb,var(--mood-color) 7%,transparent),transparent 45%); }
.area-directory-heading { display:flex; align-items:center; justify-content:space-between; gap:64px; margin-bottom:42px; }
.area-directory-heading>div:first-child { max-width:730px; }
.area-directory-heading h1 { font-size:clamp(42px,4.8vw,66px); line-height:1.05; max-width:640px; text-wrap:balance; }
.area-directory-heading .section-intro { font-size:14px; line-height:1.8; max-width:610px; margin-top:20px; }
.area-directory-intro { position:relative; min-width:220px; padding:15px 24px; display:grid; grid-template-columns:48px 1fr; align-items:center; gap:12px; }
.area-intro-icon { display:grid; place-items:center; width:46px; height:46px; border:1px solid color-mix(in srgb,var(--mood-color) 25%,transparent); border-radius:15px; color:var(--mood-link); background:var(--glass); box-shadow:0 0 44px color-mix(in srgb,var(--mood-color) 12%,transparent); }
.area-directory-intro p { font-size:12px; line-height:1.75; color:var(--muted); margin:0; }
.area-directory-intro strong { font-weight:500; color:var(--ink); }
.area-intro-line { position:absolute; height:1px; width:calc(100% - 48px); bottom:0; left:24px; background:linear-gradient(90deg,var(--mood-color),transparent); opacity:.45; }
.area-finder { overflow:hidden; border:1px solid var(--edge); border-radius:28px; background:var(--glass); box-shadow:var(--shadow); }
.area-search { padding:30px 34px 24px; border-bottom:1px solid var(--line); background:linear-gradient(115deg,#ffffff04,transparent 65%); }
.area-search>label { display:block; font-size:16px; font-weight:500; margin-bottom:12px; }
.area-search-controls { display:flex; gap:14px; align-items:stretch; }
.area-search-field { display:flex; align-items:center; flex:1; min-width:0; gap:13px; padding:0 17px; border:1px solid color-mix(in srgb,var(--on-background) 40%,transparent); border-radius:14px; background:color-mix(in srgb,var(--brand-background) 65%,var(--brand-primary)); transition:border-color .2s,box-shadow .2s; }
.area-search-field:focus-within { border-color:var(--mood-link); box-shadow:0 0 0 3px color-mix(in srgb,var(--mood-color) 16%,transparent); }
.area-search-field>.icon { color:var(--mood-link); width:20px; height:20px; }
.area-search input { width:100%; min-width:0; min-height:56px; padding:10px 0; border:0; outline:none; background:transparent; color:var(--ink); font-size:15px; }
.area-search input::placeholder { color:var(--muted); opacity:1; }
.area-search input::-webkit-search-cancel-button { display:none; }
.area-search-submit { min-width:162px; border-radius:14px; }
.area-clear { display:grid; place-items:center; width:36px; height:36px; flex:none; border:0; border-radius:8px; background:transparent; color:var(--muted); }
.area-clear:hover { color:var(--ink); background:#ffffff10; }
.area-clear .icon { width:16px; height:16px; }
.area-search>p { font-size:11px; color:var(--muted); margin:10px 0 0; }
.area-directory-body { display:grid; grid-template-columns:245px minmax(0,1fr); }
.area-directory-help { position:relative; isolation:isolate; overflow:hidden; padding:34px 28px; border-right:1px solid var(--line); background:linear-gradient(160deg,color-mix(in srgb,var(--mood-color) 5%,transparent),transparent 65%); }
.area-help-kicker { display:block; font-size:9px; line-height:1.8; letter-spacing:.11em; text-transform:uppercase; color:var(--mood-link); max-width:170px; margin-bottom:22px; }
.area-directory-help>p { font-size:21px; line-height:1.45; letter-spacing:-.035em; font-weight:400; }
.area-directory-help strong { font-weight:500; }
.area-help-rule { display:block; width:36px; height:2px; border-radius:2px; background:var(--brand-accent); margin:24px 0; }
.area-directory-help .area-help-small { font-size:12px; line-height:1.8; letter-spacing:0; color:var(--muted); }
.area-directory-help .text-link { font-size:11px; margin-top:6px; }
.area-help-air { margin-top:56px; color:var(--mood-color); opacity:.16; }
.area-help-air .icon { width:132px; height:132px; stroke-width:.65; }
.area-directory-results { padding:30px 32px; min-width:0; }
.area-results-heading { display:flex; flex-wrap:wrap; align-items:center; gap:8px 20px; justify-content:space-between; margin-bottom:20px; }
.area-results-heading h2 { font-size:17px; letter-spacing:-.025em; font-weight:500; }
.area-results-heading p { color:var(--muted); font-size:10px; margin:0; }
.area-groups { display:grid; gap:10px; }
.area-group { overflow:hidden; border:1px solid var(--line); border-radius:16px; background:#ffffff02; transition:border-color .25s,background-color .25s; }
.area-group[open] { border-color:color-mix(in srgb,var(--mood-color) 30%,var(--line)); background:color-mix(in srgb,var(--brand-primary) 28%,transparent); }
.area-group>summary { display:flex; align-items:center; gap:12px; min-height:65px; padding:16px 19px; list-style:none; cursor:pointer; }
.area-group>summary::-webkit-details-marker { display:none; }
.area-group>summary:hover { background:#ffffff04; }
.area-group>summary:focus-visible { outline-offset:-4px; border-radius:15px; }
.area-group h3 { font-size:14px; font-weight:500; letter-spacing:-.01em; line-height:1.5; margin:0; }
.area-group-icon { display:grid; place-items:center; color:var(--mood-link); }
.area-group-icon .icon { width:17px; height:17px; }
.area-group-count { display:inline-flex; align-items:center; justify-content:center; min-width:26px; height:22px; font-size:10px; border-radius:6px; color:var(--muted); background:#ffffff07; margin-left:auto; }
.area-group-toggle { flex:none; color:var(--muted); display:flex; }
.area-group-toggle .icon { width:15px; height:15px; transition:transform .25s; }
.area-group[open] .area-group-toggle .icon { transform:rotate(180deg); }
.area-group-content { padding:0 19px 17px; }
.area-town-list { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 20px; padding:5px 0 0; margin:0; border-top:1px solid var(--line); }
.area-town-list li { min-width:0; padding:11px 0 8px; }
.area-town-name { color:var(--ink); font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.area-town-name a { display:inline-flex; align-items:center; gap:6px; color:var(--mood-link); }
.area-town-name a:hover { text-decoration:underline; text-underline-offset:4px; }
.area-town-name .icon { width:13px; height:13px; }
.area-town-note { margin:5px 0 0; font-size:10px; line-height:1.65; color:var(--muted); }
.area-directory-note { margin:23px 0 0; font-size:11px; color:var(--muted); }
.area-directory-note a { color:var(--mood-link); text-decoration:underline; text-underline-offset:3px; }
.area-empty { text-align:center; padding:36px 25px; border:1px dashed var(--edge); border-radius:16px; }
.area-empty-icon { display:grid; place-items:center; height:48px; width:48px; margin:0 auto 16px; border-radius:15px; background:var(--tint); color:var(--mood-link); }
.area-empty h3 { font-size:23px; margin-bottom:12px; }
.area-empty p { font-size:13px; line-height:1.8; color:var(--muted); max-width:340px; margin:0 auto 18px; }
[data-area-directory] [hidden] { display:none!important; }
@media(prefers-reduced-motion:no-preference) {
  html[data-ambient-motion=running] .area-group[open] .area-group-content { animation:area-reveal .25s ease-out both; }
}
@keyframes area-reveal { from { opacity:0; transform:translateY(-5px); } to { opacity:1; transform:translateY(0); } }
@media(max-width:1023px) {
  .home-areas-layout { gap:34px; }
  .featured-area { font-size:11px; padding:13px; gap:6px; min-height:66px; }
  .featured-area-pin { width:25px; }
  .area-directory-heading { gap:30px; }
  .area-directory-intro { display:none; }
  .area-directory-body { grid-template-columns:195px minmax(0,1fr); }
  .area-directory-help { padding:28px 20px; }
  .area-directory-results { padding:26px 22px; }
  .area-town-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:767px) {
  .home-areas-layout { grid-template-columns:1fr; gap:28px; }
  .home-areas-copy .section-heading { margin-bottom:22px; }
  .featured-areas { gap:9px; }
  .featured-area { padding:13px 10px; }
  .featured-area-pin { width:22px; }
  .featured-area>.icon { width:13px; height:13px; }
  .footer-areas-compact { align-items:flex-start; flex-direction:column; gap:18px; }
  .area-directory-section { padding:28px 0 55px; }
  .area-directory-heading { margin-bottom:28px; }
  .area-directory-heading h1 { font-size:42px; }
  .area-directory-heading .section-intro { font-size:13px; margin-top:17px; }
  .area-finder { border-radius:21px; }
  .area-search { padding:23px 18px 20px; }
  .area-search-controls { flex-wrap:wrap; gap:10px; }
  .area-search-field { flex-basis:100%; padding-inline:12px; gap:8px; }
  .area-search input { font-size:16px; min-height:54px; }
  .area-search-submit { width:100%; min-height:46px; padding:10px 20px; }
  .area-directory-body { display:flex; flex-direction:column; }
  .area-directory-results { padding:24px 16px; }
  .area-directory-help { order:2; border-right:0; border-top:1px solid var(--line); padding:24px; }
  .area-help-kicker { max-width:none; margin-bottom:10px; }
  .area-directory-help>p { font-size:20px; margin-bottom:10px; }
  .area-directory-help>p br { display:none; }
  .area-help-rule,.area-help-air { display:none; }
  .area-directory-help .area-help-small { max-width:350px; }
  .area-results-heading { margin-bottom:16px; gap:6px; }
  .area-results-heading h2 { font-size:16px; }
  .area-results-heading p { flex-basis:100%; }
  .area-group>summary { padding:15px 12px; gap:9px; min-height:67px; }
  .area-group h3 { font-size:13px; }
  .area-group-icon { display:none; }
  .area-group-content { padding:0 13px 12px; }
  .area-town-list { column-gap:15px; }
  .area-town-name { font-size:12px; }
  .area-group-count { min-width:23px; }
  .area-empty { padding:28px 17px; }
  .area-empty h3 { font-size:21px; }
}
html[data-ambient-motion=paused] .area-group,html[data-ambient-motion=paused] .area-group *,html[data-ambient-motion=paused] .featured-area { transition:none; animation:none; }

/* Company survey content: restrained glass cards within the established dark canvas. */
.equipment-section{padding-block:56px;border-block:1px solid var(--line)}
.equipment-layout{display:grid;grid-template-columns:1fr 1.15fr;align-items:center;gap:64px}
.equipment-layout .section-heading{margin:0}.equipment-layout h2{font-size:clamp(26px,3vw,38px)}
.equipment-brands{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}
.equipment-brands li{padding:26px 18px;text-align:center;border:1px solid var(--line);border-radius:18px;background:linear-gradient(130deg,rgba(255,255,255,.055),rgba(255,255,255,.012));font-size:26px;font-weight:650;letter-spacing:-.035em;color:var(--on-background)}
.maintenance-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.maintenance-plan{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:26px;padding:32px;background:linear-gradient(150deg,color-mix(in srgb,var(--brand-primary) 76%,transparent),color-mix(in srgb,var(--brand-background) 88%,transparent));backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 rgba(255,255,255,.055);display:flex;flex-direction:column;align-items:flex-start;gap:20px}
.maintenance-plan:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at var(--glass-x,75%) var(--glass-y,0%),color-mix(in srgb,var(--brand-cooling) 9%,transparent),transparent 65%)}
.maintenance-plan:nth-child(3):before{background:radial-gradient(circle at var(--glass-x,75%) var(--glass-y,0%),color-mix(in srgb,var(--brand-accent) 9%,transparent),transparent 65%)}
.maintenance-plan h3{margin:0;font-size:28px;letter-spacing:-.035em}.maintenance-plan .icon-disc{margin:0}.maintenance-plan .text-link{margin-top:auto;font-size:14px}.maintenance-plan>p{margin:0;line-height:1.7;color:var(--muted)}
.plan-number{position:absolute;top:25px;right:28px;color:var(--muted);font-size:12px;letter-spacing:.15em}.maintenance-plan .plan-price{font-size:36px;color:var(--on-background);font-weight:600}.plan-price small{display:block;font-size:13px;font-weight:400;color:var(--muted)}
.plan-note{color:var(--muted);font-size:14px;margin:22px 0 0;text-align:center}
.emergency-note{display:flex;gap:12px;align-items:flex-start;color:var(--brand-link);font-size:14px;line-height:1.7;margin:22px 0}.emergency-note .icon{flex-shrink:0;margin-top:2px}.emergency-note a{color:inherit}
@media(max-width:900px){.equipment-layout{grid-template-columns:1fr;gap:28px}.equipment-brands{grid-template-columns:repeat(4,minmax(0,1fr))}.equipment-brands li{font-size:22px;padding:22px 10px}.maintenance-plan{padding:26px}}
@media(max-width:767px){.maintenance-plans{grid-template-columns:1fr}.maintenance-plan{padding:28px}.equipment-brands{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-section{padding-block:44px}}

/* Equipment photography: one coherent dark material, four distinct systems. */
.equipment-section{padding-block:88px;background:linear-gradient(180deg,#07192f44,transparent)}
.equipment-layout{display:block}
.equipment-intro{display:flex;align-items:end;justify-content:space-between;gap:40px;margin-bottom:36px}
.equipment-intro .section-heading{max-width:820px}
.equipment-intro .button{flex:none}
.equipment-layout h2{font-size:clamp(30px,3.5vw,46px)}
.equipment-brands{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}
.equipment-brands .equipment-card{position:relative;isolation:isolate;overflow:hidden;min-width:0;padding:0;text-align:left;border-radius:24px;min-height:340px;background:#07111e;box-shadow:inset 0 1px #ffffff14;transition:border-color .4s,box-shadow .4s}
.equipment-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:61% center;opacity:.9;transition:transform .8s var(--ease),opacity .6s;z-index:-2}
.equipment-card::before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,#04091212 30%,#040912b3 65%,#040912f5 100%);pointer-events:none}
.equipment-card::after{content:'';position:absolute;inset:0;z-index:0;border-radius:inherit;box-shadow:inset 0 1px 0 #ffffff26;pointer-events:none;background:radial-gradient(260px circle at var(--pointer-x,50%) var(--pointer-y,50%),#ffffff0a,transparent 75%)}
.equipment-card-copy{position:absolute;inset:auto 24px 25px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px;z-index:1}
.equipment-kicker{grid-column:1/-1;color:#c6d6e3;font-size:9px;font-weight:500;letter-spacing:.17em;text-transform:uppercase}
.equipment-card h3{font-size:32px;line-height:1.2;margin:0;color:#fff;letter-spacing:-.045em}
.equipment-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid #ffffff55;border-radius:50%;color:#fff;background:#06142266;backdrop-filter:blur(12px)}
.equipment-link::after{content:'';position:absolute;inset:-270px -24px -25px}
.equipment-link .icon{width:17px;height:17px}
.equipment-card:focus-within{border-color:var(--mood-link);box-shadow:0 0 32px -10px color-mix(in srgb,var(--mood-color) 45%,transparent)}
.equipment-note{color:var(--muted);font-size:11px;line-height:1.7;margin:18px 0 0;text-align:center}
@media(hover:hover) and (pointer:fine){.equipment-card:hover{border-color:var(--mood-link);box-shadow:0 18px 40px #0005}.equipment-card:hover .equipment-photo{transform:scale(1.055);opacity:1}}
@media(max-width:1050px){.equipment-brands{grid-template-columns:repeat(2,minmax(0,1fr))}.equipment-brands .equipment-card{min-height:350px}.equipment-photo{object-position:center 60%}}
@media(max-width:767px){.equipment-section{padding-block:56px}.equipment-intro{display:block}.equipment-intro .button{margin-top:22px}.equipment-brands{gap:12px}.equipment-brands .equipment-card{min-height:250px;border-radius:19px}.equipment-card-copy{inset:auto 16px 18px;gap:8px}.equipment-card h3{font-size:25px}.equipment-link{width:30px;height:30px}.equipment-kicker{font-size:8px;letter-spacing:.1em}.equipment-photo{object-position:60% center}.equipment-note{text-align:left}}
@media(max-width:360px){.equipment-brands{grid-template-columns:1fr}.equipment-brands .equipment-card{min-height:300px}}
:root[data-ambient-motion="paused"] .equipment-photo{transform:none;transition:none}
@media(prefers-reduced-motion:reduce){.equipment-photo,.equipment-card{transition:none!important;transform:none!important}}
