:root {
  --ink: #211d29;
  --paper: #f7f5f1;
  --purple: #3b0b73;
  --purple-dark: #2b074f;
  --lilac: #d9c2e7;
  --mist: #e8e5ea;
  --muted: #625e67;
  --line: rgba(33, 29, 41, 0.2);
  --mono: "DM Mono", monospace;
  --sans: "Manrope", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; overflow-x: hidden; color: var(--ink); background: #d9d6dc; font-family: var(--sans); font-size: 17px; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
a:focus-visible, button:focus-visible { outline: 3px solid #f0b849; outline-offset: 4px; }

.skip-link { position: fixed; left: 16px; top: -80px; z-index: 100; background: var(--paper); color: var(--ink); padding: 14px 18px; font-weight: 700; }
.skip-link:focus { top: 16px; }
.site-shell { width: min(100%, 1920px); min-height: 100vh; margin-inline: auto; overflow: hidden; background: var(--paper); box-shadow: 0 0 58px rgba(25, 20, 30, 0.22); }
.section-pad { padding: clamp(82px, 9vw, 138px) clamp(32px, 6vw, 104px); }
.eyebrow { margin: 0 0 28px; font-family: var(--mono); font-size: 13px; font-weight: 500; letter-spacing: 0.08em; line-height: 1.4; text-transform: uppercase; }

.recovery-notice { min-height: 62px; display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 24px; padding: 12px clamp(28px, 4vw, 72px); background: #f2c75c; color: #211d29; }
.recovery-notice[hidden] { display: none; }
.recovery-notice > div { display: flex; align-items: baseline; gap: 16px; }
.recovery-notice strong { flex: 0 0 auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.04em; text-transform: uppercase; }
.recovery-notice span { font-size: 14px; line-height: 1.45; }
.recovery-notice > a { border-bottom: 1px solid currentColor; padding-bottom: 3px; font-family: var(--mono); font-size: 11px; font-weight: 600; text-transform: uppercase; white-space: nowrap; }
.recovery-notice button { width: 34px; height: 34px; border: 0; background: transparent; color: currentColor; cursor: pointer; font-size: 26px; line-height: 1; }

.site-header { min-height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding: 14px clamp(28px, 4vw, 72px); border-bottom: 1px solid var(--line); background: var(--paper); }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.brand-logo { width: 54px; height: 46px; object-fit: contain; }
.brand-name { font-size: 15px; font-weight: 800; letter-spacing: 0.01em; line-height: 1.05; text-transform: uppercase; }
.brand-name small { display: block; margin-top: 5px; font-family: var(--mono); font-size: 10px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.site-nav, .footer-nav { display: flex; align-items: center; gap: clamp(16px, 2.2vw, 34px); font-family: var(--mono); font-size: 13px; font-weight: 500; text-transform: uppercase; }
.site-nav a, .footer-nav a { border-bottom: 1px solid transparent; padding: 8px 0; }
.site-nav a:hover, .footer-nav a:hover { border-color: currentColor; }
.nav-dropdown { position: relative; }
.nav-dropdown-toggle { min-height: 36px; display: inline-flex; align-items: center; gap: 7px; border: 0; padding: 8px 0; background: transparent; color: inherit; cursor: pointer; font-family: inherit; font-size: inherit; font-weight: inherit; text-transform: inherit; }
.nav-dropdown-toggle:hover, .nav-dropdown-toggle[aria-expanded="true"] { color: var(--purple); }
.nav-dropdown-toggle span { font-size: 10px; transition: transform 0.2s ease; }
.nav-dropdown-toggle[aria-expanded="true"] span { transform: rotate(180deg); }
.nav-dropdown-menu { position: absolute; z-index: 30; top: 100%; left: 50%; width: 255px; display: none; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; transform: translateX(-50%); padding: 18px 10px 10px; background: var(--paper); border: 1px solid var(--line); box-shadow: 0 18px 38px rgba(33, 29, 41, 0.18); }
.nav-dropdown:hover .nav-dropdown-menu, .nav-dropdown.is-open .nav-dropdown-menu { display: grid; }
.site-nav .nav-dropdown-menu a { padding: 10px 9px; border-bottom: 0; color: var(--ink); font-size: 10px; line-height: 1.3; }
.site-nav .nav-dropdown-menu a:hover, .site-nav .nav-dropdown-menu a:focus-visible { background: var(--mist); color: var(--purple); }
.site-nav .nav-dropdown-menu a:first-child { grid-column: 1 / -1; border-bottom: 1px solid var(--line); color: var(--purple); font-weight: 600; }
.header-call { display: grid; grid-template-columns: auto auto; align-items: center; gap: 4px 12px; min-width: 218px; padding: 10px 16px; background: var(--ink); color: var(--paper); }
.header-call span { grid-row: 1 / 3; color: #aaa5b0; font-family: var(--mono); font-size: 10px; line-height: 1.2; text-transform: uppercase; }
.header-call strong { font-size: 15px; }

.hero { min-height: 710px; position: relative; display: flex; align-items: center; overflow: hidden; color: var(--paper); background: var(--ink); }
.hero-visual { position: absolute; inset: 0; }
.hero-visual::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(25, 20, 30, 0.94) 0%, rgba(31, 23, 38, 0.78) 37%, rgba(33, 29, 41, 0.22) 74%, rgba(33, 29, 41, 0.12) 100%); }
.hero-visual img { width: 100%; height: 100%; object-fit: cover; object-position: center 58%; filter: saturate(0.82) contrast(1.04); }
.hero-copy { position: relative; z-index: 1; max-width: 710px; }
.hero .eyebrow { color: #e1d4e8; }
.status-dot { display: inline-block; width: 8px; height: 8px; margin-right: 9px; border-radius: 50%; background: var(--lilac); box-shadow: 0 0 0 0 rgba(217, 194, 231, 0.48); animation: status-pulse 2.8s ease-out infinite; }
h1, h2, h3, p { margin-top: 0; }
h1, h2 { margin-bottom: 34px; font-size: clamp(60px, 8vw, 122px); font-weight: 700; letter-spacing: -0.075em; line-height: 0.9; }
h1 em, h2 em { font-family: Georgia, serif; font-weight: 400; letter-spacing: -0.065em; }
.hero h1 em { color: var(--lilac); }
.hero-service-line { margin: -13px 0 20px; color: var(--lilac); font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.hero-intro { max-width: 555px; color: #f3eff5; font-size: clamp(18px, 1.55vw, 22px); line-height: 1.58; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 24px 30px; margin-top: 42px; }
.button { min-width: 205px; min-height: 54px; display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; border: 0; padding: 15px 19px; font-family: var(--mono); font-size: 13px; font-weight: 500; text-transform: uppercase; transition: transform 0.25s ease, box-shadow 0.25s ease; }
.button > span, .text-link > span, .google-reviews-link > span, .contact-primary b, .contact-option > b { display: inline-block; transition: transform 0.25s ease; }
.button-light { background: var(--paper); color: var(--purple); }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 12px; border-bottom: 1px solid currentColor; font-family: var(--mono); font-size: 13px; text-transform: uppercase; }
.hero-foot { position: absolute; z-index: 1; left: clamp(32px, 6vw, 104px); right: clamp(32px, 6vw, 104px); bottom: 18px; min-height: 38px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 9px 12px; color: #fff; background: rgba(24, 18, 29, 0.58); border: 1px solid rgba(255, 255, 255, 0.14); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); font-family: var(--mono); font-size: 12px; font-weight: 500; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.8); text-transform: uppercase; }

.service-strip { min-height: 58px; position: relative; display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2.6vw, 38px); padding: 15px 34px; overflow: hidden; background: var(--purple); box-shadow: inset 0 2px rgba(217, 194, 231, 0.22), inset 0 -2px rgba(33, 29, 41, 0.28); color: var(--paper); font-family: var(--mono); font-size: 12px; letter-spacing: 0.05em; text-align: center; text-transform: uppercase; white-space: nowrap; }
.service-strip::before { content: ""; position: absolute; z-index: 1; inset: 7px 0; border-left: 9px double rgba(217, 194, 231, 0.72); border-right: 9px double rgba(217, 194, 231, 0.72); box-shadow: inset 7px 0 rgba(43, 7, 79, 0.55), inset -7px 0 rgba(43, 7, 79, 0.55); pointer-events: none; }
.service-strip::after { content: ""; position: absolute; top: 50%; left: -18px; width: 8px; height: 8px; background: var(--lilac); box-shadow: 0 0 12px rgba(217, 194, 231, 0.72); opacity: 0; transform: translateY(-50%) rotate(45deg); animation: service-flow 6.5s ease-in-out 1.2s both; }
.service-strip i { width: 7px; height: 7px; flex: 0 0 auto; transform: rotate(45deg); background: var(--lilac); }

.services { background: var(--mist); }
.service-area { display: grid; grid-template-columns: 1.2fr 0.8fr; gap: 8vw; background: var(--paper); border-bottom: 1px solid var(--line); }
.service-area-heading h2 { margin: 0; font-size: clamp(49px, 5.5vw, 82px); }
.service-area-heading h2 em { color: var(--purple); }
.service-area-copy { align-self: end; }
.service-area-copy p { color: var(--muted); line-height: 1.7; }
.service-area-copy .text-link { display: inline-flex; margin: 18px 22px 0 0; color: var(--purple); }
.section-heading { display: grid; grid-template-columns: 0.55fr 1.65fr 0.8fr; align-items: end; gap: 5vw; margin-bottom: 64px; }
.section-heading .eyebrow { align-self: start; }
.section-heading h2 { margin: 0; font-size: clamp(51px, 6.2vw, 90px); }
.section-heading h2 em { color: var(--purple); }
.section-heading > p:last-child { margin: 0; color: var(--muted); font-size: 17px; line-height: 1.65; }
.service-credentials { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 5vw; margin-bottom: 0; padding: 24px 28px; background: var(--paper); border-left: 5px solid var(--purple); }
.service-credentials > p { max-width: 680px; margin: 0; color: var(--muted); line-height: 1.6; }
.service-credentials > p strong { color: var(--ink); }
.dealer-marks { display: flex; align-items: stretch; }
.dealer-marks > span { min-width: 155px; display: flex; flex-direction: column; justify-content: center; padding: 6px 24px; border-left: 1px solid var(--line); }
.dealer-marks small { margin-bottom: 4px; color: var(--muted); font-family: var(--mono); font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; }
.dealer-marks strong { color: var(--purple); font-size: 22px; letter-spacing: -0.04em; }
.capabilities { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-bottom: 1px; background: var(--line); }
.capabilities > div { min-height: 265px; padding: 34px; background: var(--paper); }
.capabilities .eyebrow { margin-bottom: 30px; color: var(--purple); }
.capabilities h3 { max-width: 440px; margin-bottom: 18px; font-size: clamp(26px, 2.5vw, 37px); letter-spacing: -0.055em; line-height: 1.05; }
.capabilities > div > p:last-child { max-width: 540px; margin: 0; color: var(--muted); line-height: 1.65; }
.dealer-note { display: grid; grid-template-columns: 0.55fr 1.45fr; gap: 5vw; margin-bottom: 58px; padding: 23px 28px; border-left: 5px solid var(--purple); background: var(--purple); color: var(--paper); }
.dealer-note-label { align-self: start; padding-top: 3px; color: var(--lilac); font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.06em; text-transform: uppercase; }
.dealer-note p { max-width: 780px; margin: 0; color: #f0e8f4; line-height: 1.65; }
.service-list { border-top: 1px solid var(--line); }
.service-row { display: grid; grid-template-columns: 0.3fr 1fr 1.25fr 0.75fr; align-items: center; gap: 4vw; min-height: 215px; padding: 34px 0; border-bottom: 1px solid var(--line); }
.service-number { align-self: start; font-family: var(--mono); font-size: 13px; }
.service-row h3 { margin: 0; font-size: clamp(32px, 3.2vw, 48px); letter-spacing: -0.06em; line-height: 0.98; }
.service-row p { max-width: 460px; margin: 0; color: var(--muted); line-height: 1.65; }
.service-row a { min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 0; border-bottom: 1px solid var(--ink); font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; }
.service-row a:hover { color: var(--purple); border-color: var(--purple); }

.furnace-pricing { background: var(--paper); }
.temperature-heading .temperature-word { display: inline-block; }
.heating-heading .temperature-word { color: #a84725; }
.heating-heading em { color: #c36338; }
.cooling-heading .temperature-word { color: #256d8b; }
.cooling-heading em { color: #3b829d; }
.js .reveal .temperature-word { animation: none; }
.js .reveal.visible .heating-heading .temperature-word { animation: heating-bloom 1.7s ease-out both; }
.js .reveal.visible .cooling-heading .temperature-word { animation: cooling-sheen 1.7s ease-out both; }
.pricing-scope { display: grid; grid-template-columns: 0.55fr 1.45fr; gap: 5vw; margin-bottom: 28px; padding: 22px 28px; border-left: 5px solid #f2c75c; background: #f8e7b4; }
.pricing-scope strong { font-family: var(--mono); font-size: 12px; letter-spacing: 0.05em; text-transform: uppercase; }
.pricing-scope p { max-width: 850px; margin: 0; line-height: 1.6; }
.pricing-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.pricing-card { min-height: 390px; display: flex; flex-direction: column; padding: 32px 28px; background: var(--mist); }
.pricing-size { margin-bottom: 38px; color: var(--purple); font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.pricing-card h3 { margin-bottom: 18px; font-size: clamp(28px, 2.5vw, 39px); letter-spacing: -0.055em; line-height: 1.05; }
.pricing-home { margin-bottom: 34px; color: var(--muted); font-size: 15px; line-height: 1.6; }
.pricing-home strong { color: var(--ink); }
.pricing-from { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 10px; margin: auto 0 0; padding-top: 24px; border-top: 1px solid var(--line); }
.pricing-from span { grid-column: 1 / -1; color: var(--muted); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.pricing-from strong { color: var(--purple); font-size: clamp(37px, 3.3vw, 52px); letter-spacing: -0.06em; line-height: 1; }
.pricing-from small { font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.pricing-footer { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 8vw; margin-top: 52px; padding-top: 42px; border-top: 1px solid var(--line); }
.pricing-footer h3 { max-width: 430px; margin-bottom: 18px; font-size: clamp(30px, 3vw, 44px); letter-spacing: -0.055em; line-height: 1.08; }
.pricing-footer p { color: var(--muted); line-height: 1.7; }
.pricing-terms { padding-left: 28px; border-left: 4px solid var(--purple); }
.pricing-terms p { font-family: var(--mono); font-size: 11px; line-height: 1.65; }
.pricing-terms p:last-child { margin-bottom: 0; }
.pricing-terms strong { color: var(--ink); text-transform: uppercase; }
.pricing-button { width: fit-content; margin-top: 38px; background: var(--purple); color: var(--paper); }
.pricing-teaser, .recovery-pricing { display: grid; grid-template-columns: 1fr 0.8fr; gap: 9vw; background: var(--paper); }
.pricing-teaser h2, .recovery-pricing h2 { margin: 0; font-size: clamp(49px, 5.5vw, 82px); }
.pricing-teaser h2 em, .recovery-pricing h2 em { color: var(--purple); }
.pricing-teaser-copy, .recovery-pricing-copy { align-self: end; }
.pricing-teaser-copy > p:first-child, .recovery-pricing-copy > p:first-child { color: var(--muted); font-size: 18px; line-height: 1.7; }
.pricing-teaser-copy .pricing-button, .recovery-pricing-copy .pricing-button { margin-top: 22px; }
.pricing-teaser-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 18px 26px; }
.pricing-teaser-actions .pricing-button { margin-top: 22px; }
.pricing-teaser-actions .text-link { margin-top: 22px; color: var(--purple); }
.pricing-hero { min-height: 610px; display: flex; align-items: center; background: var(--purple); color: var(--paper); }
.pricing-hero > div { max-width: 1000px; }
.pricing-hero h1 { margin-bottom: 32px; font-size: clamp(58px, 7.4vw, 110px); }
.pricing-hero h1 em { color: var(--lilac); }
.pricing-hero p:not(.eyebrow) { max-width: 760px; color: #eee7f2; font-size: 20px; line-height: 1.7; }
.pricing-hero .pricing-tax-hero { margin-bottom: 0; color: var(--lilac); font-family: var(--mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; text-transform: uppercase; }
.pricing-hero-links { display: flex; flex-wrap: wrap; gap: 16px 32px; margin-top: 28px; }
.water-heater-hero { position: relative; isolation: isolate; overflow: hidden; }
.water-heater-hero > div { position: relative; z-index: 1; }
.water-heater-hero::before { content: ""; position: absolute; z-index: 0; inset: -2%; pointer-events: none; background: url("assets/foggy-window.jpg") center 62% / cover no-repeat; opacity: 0.08; transform: scale(1.035); transform-origin: right center; animation: heater-window-in 4.8s ease-out 0.2s forwards; }
.water-heater-hero::after { content: ""; position: absolute; z-index: 0; inset: 0; pointer-events: none; background: linear-gradient(90deg, rgba(59, 11, 115, 0.84) 0%, rgba(59, 11, 115, 0.68) 52%, rgba(43, 7, 79, 0.48) 100%); }
.condensation-drop { position: absolute; z-index: 1; top: 31%; right: clamp(72px, 11vw, 210px); width: 15px; height: 21px; pointer-events: none; border: 1px solid rgba(255, 255, 255, 0.34); border-radius: 54% 46% 58% 42% / 62% 58% 42% 38%; background: linear-gradient(145deg, rgba(255, 255, 255, 0.28), rgba(217, 194, 231, 0.08) 55%, rgba(43, 7, 79, 0.22)); box-shadow: inset 3px 3px 4px rgba(255, 255, 255, 0.2), 0 5px 9px rgba(32, 4, 59, 0.22); opacity: 0; transform: translateY(-8px) scale(0.55); animation: condensation-drop 3.4s ease-in-out 2s forwards; }
.ac-pricing { background: var(--mist); }
.ac-pricing .pricing-card { background: var(--paper); }
.new-build-pricing { background: var(--mist); }
.ac-install-scope { border-left-color: var(--purple); background: var(--paper); }
.ac-install-scope p strong { color: var(--purple); white-space: nowrap; }
.pricing-tax-note { margin: 0 0 14px; color: var(--purple); font-family: var(--mono); font-size: 11px; font-weight: 500; letter-spacing: 0.03em; text-align: right; text-transform: uppercase; }
.ac-pricing-card { min-height: 475px; }
.pricing-tiers { margin: auto 0 0; }
.pricing-tiers > div { display: grid; grid-template-columns: 0.7fr 1.3fr; align-items: baseline; gap: 16px; padding: 15px 0; border-top: 1px solid var(--line); }
.pricing-tiers dt { font-family: var(--mono); font-size: 11px; font-weight: 500; text-transform: uppercase; }
.pricing-tiers dt small { display: block; margin-top: 4px; color: var(--purple); font-size: 9px; font-weight: 500; white-space: nowrap; }
.pricing-tiers dd { display: flex; align-items: baseline; justify-content: flex-end; gap: 8px; margin: 0; }
.pricing-tiers dd span { color: var(--muted); font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
.pricing-tiers dd strong { color: var(--purple); font-size: clamp(25px, 2.1vw, 34px); letter-spacing: -0.055em; }
.furnace-pricing .pricing-card { min-height: 475px; }
.furnace-tier-guide { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-top: 30px; background: var(--line); }
.furnace-tier-guide > div { padding: 27px 28px; background: var(--mist); }
.furnace-tier-guide strong { display: block; margin-bottom: 10px; color: var(--purple); font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.furnace-tier-guide p { margin: 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.water-heater-pricing { background: var(--paper); }
.water-heater-pricing .pricing-card { background: var(--mist); }
.water-heater-card { min-height: 415px; }
.tank-pricing-grid, .tankless-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.water-heater-pricing .pricing-footer .text-link { margin-top: 14px; color: var(--purple); }
.tankless-conversion { margin-top: clamp(86px, 10vw, 150px); padding-top: clamp(72px, 8vw, 120px); border-top: 1px solid var(--line); }
.tankless-heading { display: grid; grid-template-columns: 0.55fr 1.65fr 0.8fr; align-items: end; gap: 5vw; margin-bottom: 52px; }
.tankless-heading .eyebrow { align-self: start; }
.tankless-heading h2 { margin: 0; font-size: clamp(51px, 6.2vw, 90px); }
.tankless-heading h2 em { color: var(--purple); }
.tankless-heading > p:last-child { margin: 0; color: var(--muted); line-height: 1.7; }
.tankless-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; margin-bottom: 32px; background: var(--line); }
.tankless-benefits > div { min-height: 165px; padding: 28px; background: var(--purple); color: var(--paper); }
.tankless-benefits strong { display: block; margin-bottom: 13px; font-size: 20px; }
.tankless-benefits span { color: #e5d9ec; font-size: 14px; line-height: 1.6; }
.tankless-card { min-height: 430px; }
.recovery-pricing { background: var(--mist); }

.story { min-height: 720px; display: grid; grid-template-columns: 1fr 1fr; }
.story-image { position: relative; min-height: 560px; overflow: hidden; background: #d8d5d8; }
.story-image img { width: 100%; height: 100%; object-fit: cover; filter: saturate(0.58) contrast(1.04); }
.image-label { position: absolute; left: 28px; bottom: 28px; padding: 11px 14px; background: var(--paper); color: var(--ink); font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.story-copy { align-self: center; }
.story-copy h2 { max-width: 720px; font-size: clamp(53px, 6vw, 91px); }
.story-copy h2 em { color: var(--purple); }
.story-copy > p:not(.eyebrow) { max-width: 560px; color: var(--muted); font-size: 18px; line-height: 1.75; }
.principles { max-width: 570px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 45px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--purple); font-family: var(--mono); font-size: 11px; font-weight: 500; text-transform: uppercase; }

.proof { display: grid; grid-template-columns: 0.85fr 1.5fr; gap: 10vw; background: var(--ink); color: var(--paper); }
.proof .eyebrow { color: #b9b3be; }
.proof-intro h2 { max-width: 480px; margin: 0; font-size: clamp(38px, 4.3vw, 65px); line-height: 1; }
.google-rating { display: inline-flex; align-items: center; gap: 13px; margin-top: 27px; color: var(--paper); }
.google-rating > strong { font-size: 34px; line-height: 1; }
.google-rating > span { display: grid; gap: 3px; }
.google-rating small { color: #b9b3be; font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.google-stars { --rating-percent: 90%; background: linear-gradient(90deg, #f4b400 var(--rating-percent), #77717e var(--rating-percent)); background-clip: text; color: transparent; font-size: 17px; letter-spacing: 2px; line-height: 1; }
.carousel-controls { display: flex; align-items: center; gap: 14px; margin-top: 50px; }
.carousel-button { width: 48px; height: 48px; border: 1px solid #77717e; background: transparent; color: var(--paper); cursor: pointer; }
.carousel-button:hover { border-color: var(--lilac); background: var(--purple); }
.carousel-count { font-family: var(--mono); font-size: 12px; color: #aaa5b0; }
.carousel-count strong { color: var(--paper); font-weight: 400; }
.google-reviews-link { display: inline-flex; gap: 8px; margin-top: 28px; padding-bottom: 5px; border-bottom: 1px solid #77717e; color: var(--lilac); font-family: var(--mono); font-size: 11px; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.google-reviews-link:hover { border-color: var(--lilac); color: var(--paper); }
.review-carousel { align-self: center; min-height: 310px; display: flex; align-items: center; }
.review-slide blockquote { max-width: 820px; margin: 0; font-size: clamp(29px, 2.8vw, 44px); letter-spacing: -0.055em; line-height: 1.12; }
.review-slide.is-long blockquote { font-size: clamp(25px, 2.2vw, 35px); letter-spacing: -0.045em; line-height: 1.18; }
.review-slide.is-very-long blockquote { font-size: clamp(22px, 1.85vw, 30px); letter-spacing: -0.035em; line-height: 1.22; }
.review-slide.is-active { animation: review-in 0.55s ease both; }
.review-slide p { margin: 36px 0 0; color: #b9b3be; font-family: var(--mono); font-size: 13px; text-transform: uppercase; }
.review-slide p a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

.contact { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 10vw; background: var(--purple); color: var(--paper); }
.contact .eyebrow { color: var(--lilac); }
.contact h2 { font-size: clamp(62px, 7.2vw, 106px); }
.contact h2 em { color: var(--lilac); }
.contact-head > p:last-child { max-width: 490px; color: #e5d9ec; font-size: 18px; line-height: 1.7; }
.contact-options { align-self: center; }
.contact-primary { display: block; padding: 26px; background: var(--paper); color: var(--ink); }
.contact-primary small, .contact-option small { display: block; margin-bottom: 10px; color: #68616e; font-family: var(--mono); font-size: 12px; text-transform: uppercase; }
.contact-primary strong { display: block; color: var(--purple); font-size: clamp(28px, 3.3vw, 48px); letter-spacing: -0.05em; }
.contact-primary > span { display: flex; justify-content: space-between; margin-top: 18px; font-size: 14px; }
.after-hours { padding: 25px 26px 27px; background: var(--purple-dark); border-top: 1px solid rgba(255, 255, 255, 0.18); }
.after-hours > small { display: block; margin-bottom: 10px; color: var(--lilac); font-family: var(--mono); font-size: 11px; letter-spacing: 0.06em; text-transform: uppercase; }
.after-hours h3 { margin-bottom: 12px; color: var(--paper); font-size: 21px; letter-spacing: -0.035em; line-height: 1.25; }
.after-hours p { margin-bottom: 10px; color: #e5d9ec; font-size: 15px; line-height: 1.6; }
.after-hours p:last-child { margin-bottom: 0; }
.after-hours .rate-note { color: var(--paper); font-family: var(--mono); font-size: 11px; line-height: 1.55; }
.contact-option { min-height: 105px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 4px; border-bottom: 1px solid rgba(255, 255, 255, 0.35); }
.contact-option small { color: var(--lilac); }
.contact-option strong { font-size: 16px; line-height: 1.45; overflow-wrap: anywhere; }
.contact-option em { display: block; margin-top: 5px; color: #ddd0e6; font-size: 13px; font-style: normal; line-height: 1.45; }
.payment-option strong { font-size: 21px; }
.contact-option > b { font-size: 22px; font-weight: 400; }

.site-footer { min-height: 125px; display: flex; align-items: center; justify-content: space-between; gap: 35px; padding: 28px clamp(28px, 4vw, 72px); background: var(--ink); color: var(--paper); }
.footer-meta { display: grid; justify-items: end; gap: 6px; text-align: right; }
.copyright { color: #aaa5b0; font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.site-credit { color: #77717e; font-family: var(--mono); font-size: 9px; letter-spacing: 0.01em; }
.site-credit i { margin: 0 4px; font-style: normal; }
.mobile-call { display: none; }
.reveal { opacity: 1; transform: none; }
.js .reveal { opacity: 0; transform: translateY(18px); transition: opacity 0.7s ease, transform 0.7s ease; }
.js .reveal.visible { opacity: 1; transform: none; }

@keyframes status-pulse {
  0%, 45% { box-shadow: 0 0 0 0 rgba(217, 194, 231, 0.48); }
  75%, 100% { box-shadow: 0 0 0 8px rgba(217, 194, 231, 0); }
}

@keyframes review-in {
  from { opacity: 0; transform: translateX(12px); }
  to { opacity: 1; transform: none; }
}

@keyframes heater-window-in {
  0% { opacity: 0.08; transform: scale(1.035); }
  58% { opacity: 0.42; }
  100% { opacity: 0.34; transform: scale(1); }
}

@keyframes condensation-drop {
  0% { opacity: 0; transform: translateY(-8px) scale(0.55); }
  42% { opacity: 0.78; transform: translateY(0) scale(1); }
  100% { opacity: 0.58; transform: translateY(18px) scale(0.96); }
}

@keyframes heating-bloom {
  0% { color: var(--ink); text-shadow: 0 0 0 rgba(226, 111, 51, 0); transform: translateY(5px); }
  52% { color: #d26632; text-shadow: 0 0 24px rgba(226, 111, 51, 0.38); }
  100% { color: #a84725; text-shadow: none; transform: none; }
}

@keyframes cooling-sheen {
  0% { color: var(--ink); text-shadow: 0 0 0 rgba(93, 185, 218, 0); transform: translateY(5px); }
  52% { color: #4d9cba; text-shadow: 0 0 24px rgba(93, 185, 218, 0.38); }
  100% { color: #256d8b; text-shadow: none; transform: none; }
}

@keyframes service-flow {
  0% { left: -18px; opacity: 0; }
  8%, 90% { opacity: 0.9; }
  100% { left: calc(100% + 18px); opacity: 0; }
}

@media (hover: hover) {
  .button:hover { transform: translateY(-2px); box-shadow: 0 9px 20px rgba(33, 29, 41, 0.16); }
  .button:hover > span, .google-reviews-link:hover > span, .contact-primary:hover b, .contact-option:hover > b { transform: translate(3px, -3px); }
  .text-link:hover > span { transform: translate(3px, -3px); }
  .text-link[href^="#"]:hover > span { transform: translateY(3px); }
  .service-row a:hover span { transform: translate(3px, -3px); }
  .service-row a span { display: inline-block; transition: transform 0.25s ease; }
  .story-image img { transition: transform 0.8s cubic-bezier(0.2, 0.65, 0.3, 1); }
  .story-image:hover img { transform: scale(1.025); }
}

.recovery-hero { min-height: 640px; display: flex; align-items: center; background: var(--purple); color: var(--paper); }
.recovery-hero > div { max-width: 1150px; }
.recovery-hero h1 { margin-bottom: 32px; font-size: clamp(56px, 7vw, 106px); }
.recovery-hero > div > p:not(.eyebrow) { max-width: 760px; color: #eee7f2; font-size: 20px; line-height: 1.7; }
.availability-note { max-width: 260px; color: var(--lilac); font-family: var(--mono); font-size: 11px; line-height: 1.5; text-transform: uppercase; }
.recovery-overview { display: grid; grid-template-columns: 1fr 0.9fr; gap: 9vw; background: var(--mist); }
.recovery-overview h2, .recovery-speed h2 { font-size: clamp(49px, 5.5vw, 82px); }
.recovery-overview h2 em, .recovery-speed h2 em { color: var(--purple); }
.recovery-details { align-self: end; }
.recovery-details > p, .recovery-safety p { color: var(--muted); line-height: 1.7; }
.recovery-details ul { margin: 30px 0; padding: 0; list-style: none; }
.recovery-details li { position: relative; padding: 16px 0 16px 28px; border-bottom: 1px solid var(--line); line-height: 1.5; }
.recovery-details li::before { content: "◆"; position: absolute; left: 2px; top: 19px; color: var(--purple); font-size: 9px; }
.fine-print { color: var(--muted); font-family: var(--mono); font-size: 11px; line-height: 1.6; }
.recovery-speed { background: var(--paper); }
.speed-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin-top: 50px; background: var(--line); }
.speed-cards article { min-height: 230px; padding: 38px; background: var(--mist); }
.speed-cards strong { display: block; margin-bottom: 25px; color: var(--purple); font-size: clamp(33px, 4vw, 58px); letter-spacing: -0.055em; }
.speed-cards p { max-width: 520px; margin: 0; color: var(--muted); line-height: 1.65; }
.recovery-speed > .fine-print { margin: 24px 0 0; }
.recovery-safety { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 9vw; background: #f2c75c; }
.recovery-safety h2 { max-width: 620px; margin: 0; font-size: clamp(38px, 4.5vw, 68px); }
.recovery-safety p { color: var(--ink); }
.recovery-safety .text-link { display: inline-flex; margin-top: 20px; }
.recovery-faq { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: 9vw; background: var(--paper); }
.recovery-faq-heading { align-self: start; position: sticky; top: 32px; }
.recovery-faq h2 { margin: 0; font-size: clamp(42px, 4.8vw, 72px); }
.recovery-faq h2 em { color: var(--purple); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { position: relative; padding: 26px 54px 26px 0; cursor: pointer; font-size: clamp(18px, 1.6vw, 23px); font-weight: 700; line-height: 1.35; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { content: "+"; position: absolute; top: 21px; right: 2px; color: var(--purple); font-family: var(--mono); font-size: 30px; font-weight: 400; line-height: 1; transition: transform 180ms ease; }
.faq-list details[open] summary::after { transform: rotate(45deg); }
.faq-list summary:focus-visible { outline: 3px solid var(--purple); outline-offset: 5px; }
.faq-answer { max-width: 760px; padding: 0 54px 24px 0; }
.faq-answer p { margin: 0 0 14px; color: var(--muted); line-height: 1.7; }
.faq-answer p:last-child { margin-bottom: 0; }
.faq-answer strong { color: var(--ink); }
.recovery-cta { background: var(--ink); color: var(--paper); text-align: center; }
.recovery-cta h2 { margin-bottom: 26px; font-size: clamp(51px, 6.5vw, 94px); }
.recovery-cta > p:not(.eyebrow) { max-width: 680px; margin: 0 auto 36px; color: #c7c1cb; font-size: 18px; line-height: 1.7; }
.recovery-cta .button { margin-inline: auto; }

.local-hero { min-height: 590px; display: flex; align-items: center; background: var(--purple); color: var(--paper); }
.local-hero > div { max-width: 1080px; }
.light-commercial-hero { position: relative; isolation: isolate; overflow: hidden; }
.light-commercial-hero-photo { position: absolute; z-index: -2; inset: 0; max-width: none !important; }
.light-commercial-hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center 54%; transform: scaleX(-1); filter: saturate(0.72) contrast(1.06); }
.light-commercial-hero::after { content: ""; position: absolute; z-index: -1; inset: 0; background: linear-gradient(90deg, var(--purple) 0%, var(--purple) 39%, rgba(59, 11, 115, 0.94) 49%, rgba(59, 11, 115, 0.58) 65%, rgba(43, 7, 79, 0.16) 100%); pointer-events: none; }
.light-commercial-hero-copy { position: relative; width: min(780px, 60%); }
.local-breadcrumb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 30px; color: var(--lilac); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.local-breadcrumb a { border-bottom: 1px solid transparent; }
.local-breadcrumb a:hover { border-color: currentColor; }
.local-hero .eyebrow { color: var(--lilac); }
.local-hero h1 { max-width: 1050px; margin-bottom: 30px; font-size: clamp(54px, 7vw, 104px); }
.local-hero > div > p:not(.eyebrow, .local-breadcrumb) { max-width: 770px; color: #eee7f2; font-size: 20px; line-height: 1.7; }
.local-overview, .local-details, .local-decision, .local-trust, .local-related { display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 9vw; }
.local-overview { background: var(--paper); }
.local-overview h2, .local-details h2, .local-decision h2, .local-trust h2, .local-related h2 { margin: 0; font-size: clamp(43px, 5vw, 74px); }
.local-overview h2 em, .local-details h2 em, .local-decision h2 em { color: var(--purple); }
.local-copy { align-self: end; }
.local-copy > p, .local-call-list > p, .local-decision > div:last-child p, .local-trust > div:last-child p { color: var(--muted); line-height: 1.75; }
.local-copy .text-link { margin-top: 16px; color: var(--purple); }
.local-note { padding: 18px 20px; border-left: 4px solid var(--purple); background: var(--mist); }
.local-note a, .local-decision a { color: var(--purple); text-decoration: underline; text-underline-offset: 3px; }
.local-real-photo { margin: 36px 0 0; }
.local-real-photo img { width: 100%; aspect-ratio: 1200 / 514; object-fit: cover; filter: saturate(0.78); }
.local-real-photo figcaption { padding-top: 10px; color: var(--muted); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.local-services, .area-hub { background: var(--mist); }
.local-section-heading { display: grid; grid-template-columns: 0.55fr 1.45fr 0.8fr; align-items: end; gap: 5vw; margin-bottom: 54px; }
.local-section-heading .eyebrow { align-self: start; }
.local-section-heading h2 { margin: 0; font-size: clamp(46px, 5.5vw, 80px); }
.local-section-heading h2 em { color: var(--purple); }
.local-section-heading > p:last-child { margin: 0; color: var(--muted); line-height: 1.7; }
.local-service-cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.commercial-service-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.local-service-cards a { min-height: 190px; display: flex; flex-direction: column; justify-content: space-between; gap: 24px; padding: 28px; background: var(--paper); }
.local-service-cards a:hover { background: var(--purple); color: var(--paper); }
.local-service-cards strong { font-size: 25px; letter-spacing: -0.045em; }
.local-service-cards span { color: var(--muted); font-size: 14px; line-height: 1.55; }
.local-service-cards a:hover span { color: #e5d9ec; }
.local-details { background: var(--paper); }
.local-call-list ul { margin: 0 0 28px; padding: 0; list-style: none; }
.local-call-list li { position: relative; padding: 15px 0 15px 26px; border-bottom: 1px solid var(--line); line-height: 1.5; }
.local-call-list li::before { content: "◆"; position: absolute; left: 2px; top: 19px; color: var(--purple); font-size: 8px; }
.local-decision { background: #f2c75c; }
.local-decision > div:last-child { align-self: end; }
.local-decision > div:last-child p { color: var(--ink); }
.local-trust { background: var(--ink); color: var(--paper); }
.local-trust .eyebrow { color: var(--lilac); }
.local-trust > div:last-child { align-self: end; }
.local-trust > div:last-child p { color: #c7c1cb; }
.local-related { background: var(--paper); }
.local-related > div:last-child { display: grid; align-self: end; }
.local-related > div:last-child a { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); color: var(--purple); font-family: var(--mono); font-size: 12px; text-transform: uppercase; }
.local-numbered { border-top: 1px solid var(--line); }
.local-numbered article { display: grid; grid-template-columns: 70px 0.8fr 1.2fr; gap: 4vw; padding: 30px 0; border-bottom: 1px solid var(--line); }
.local-numbered span { color: var(--purple); font-family: var(--mono); font-size: 11px; }
.local-numbered h3 { margin: 0; font-size: 27px; letter-spacing: -0.045em; }
.local-numbered p { margin: 0; color: var(--muted); line-height: 1.7; }
.local-services > .pricing-button { margin-top: 34px; }
.area-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.area-grid a { min-height: 205px; display: grid; align-content: start; gap: 10px; padding: 28px; background: var(--paper); }
.area-grid a:hover { background: var(--purple); color: var(--paper); }
.area-grid span { color: var(--purple); font-family: var(--mono); font-size: 10px; text-transform: uppercase; }
.area-grid strong { font-size: 30px; letter-spacing: -0.05em; }
.area-grid p { margin: 6px 0 0; color: var(--muted); font-size: 14px; line-height: 1.6; }
.area-grid a:hover span, .area-grid a:hover p { color: #e5d9ec; }
.local-cta { background: var(--purple); color: var(--paper); text-align: center; }
.local-cta .eyebrow { color: var(--lilac); }
.local-cta h2 { margin-bottom: 24px; font-size: clamp(50px, 6vw, 88px); }
.local-cta > p:not(.eyebrow) { max-width: 680px; margin: 0 auto 32px; color: #e5d9ec; font-size: 18px; line-height: 1.7; }
.local-cta .button { margin-inline: auto; }

/* Homeowner Help */
.resources-hero { min-height: 0; display: grid; grid-template-columns: minmax(0, .78fr) minmax(460px, 1.22fr); gap: clamp(48px, 7vw, 110px); align-items: center; background: var(--purple); color: var(--paper); }
.resources-hero .eyebrow { color: var(--lilac); }
.resources-hero h1 { max-width: 650px; margin: 18px 0 25px; font-size: clamp(58px, 6.8vw, 96px); }
.resources-hero h1 em { color: var(--lilac); }
.resources-intro > p:not(.eyebrow) { max-width: 570px; margin: 0; color: #e8dfee; font-size: 17px; line-height: 1.7; }
.resources-intro .text-link { margin-top: 28px; color: var(--paper); border-color: rgba(255,255,255,.5); }
.resources-seasonal > .eyebrow { margin-bottom: 14px; color: #f2c75c; }
.resources-library { background: var(--mist); }
.resources-library-heading { margin-bottom: 46px; }
.resource-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1px; background: var(--line); }
.resource-card { min-height: 350px; display: flex; flex-direction: column; padding: 30px; background: var(--paper); transition: background .2s ease, color .2s ease; }
.resource-card:hover { background: var(--purple); color: var(--paper); }
.resource-card .eyebrow { color: var(--purple); }
.resource-card:hover .eyebrow, .resource-card:hover > p, .resource-card:hover footer span { color: var(--lilac); }
.resource-card h3 { margin: 20px 0 18px; font-size: clamp(28px, 2.5vw, 39px); letter-spacing: -.055em; line-height: 1.04; }
.resource-card > p { margin: 0; color: var(--muted); line-height: 1.65; }
.resource-card footer { display: flex; justify-content: space-between; gap: 18px; margin-top: auto; padding-top: 30px; font-family: var(--mono); font-size: 9px; text-transform: uppercase; }
.resource-card footer span { color: var(--muted); }
.resource-card footer b { font-weight: 500; white-space: nowrap; }
.resource-feature-card { min-height: 340px; padding: clamp(28px, 3vw, 42px); background: var(--ink); color: var(--paper); box-shadow: 18px 18px 0 rgba(43,7,79,.55); }
.resource-feature-card .eyebrow { color: #f2c75c; }
.resource-feature-card h3 { max-width: 760px; font-size: clamp(36px, 3.6vw, 54px); }
.resource-feature-card > p, .resource-feature-card footer span { color: #cbc4ce; }
.resource-article-hero { min-height: 0; display: grid; grid-template-columns: minmax(190px, .32fr) minmax(0, 1.68fr); gap: clamp(42px, 7vw, 110px); align-items: start; padding-top: clamp(54px, 6vw, 86px); padding-bottom: clamp(54px, 6vw, 86px); background: var(--paper); color: var(--ink); border-top: 8px solid var(--purple); border-bottom: 1px solid var(--line); }
.resource-article-meta { padding-top: 9px; }
.resource-article-hero .local-breadcrumb { margin-bottom: 30px; color: var(--muted); }
.resource-article-hero .eyebrow { color: var(--purple); line-height: 1.8; }
.resource-article-hero h1 { max-width: 1120px; margin: 0 0 22px; font-size: clamp(48px, 5.5vw, 82px); line-height: .98; }
.resource-deck { max-width: 790px; margin: 0; color: var(--muted); font-size: 18px; line-height: 1.65; }
.resource-reviewed { margin: 28px 0 0; color: var(--purple); font-family: var(--mono); font-size: 9px; line-height: 1.5; text-transform: uppercase; }
.resource-article-layout { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(260px, .55fr); gap: 9vw; align-items: start; background: var(--paper); }
.resource-prose { max-width: 790px; }
.resource-article-intro { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); margin-bottom: 54px; align-items: stretch; }
.resource-illustration { min-height: 100%; margin: 0; overflow: hidden; border: 1px solid var(--line); border-right: 0; background: #f4efe7; }
.resource-illustration img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.resource-article-intro .resource-illustration img { height: 100%; aspect-ratio: auto; }
.resource-answer { margin: 0; padding: 28px; border-left: 5px solid #f2c75c; background: #f8e7b4; }
.resource-answer span { display: block; margin-bottom: 12px; font-family: var(--mono); font-size: 10px; font-weight: 500; text-transform: uppercase; }
.resource-answer p { margin: 0; font-size: 22px; font-weight: 600; line-height: 1.55; }
.resource-emergency { margin: -25px 0 50px; padding: 24px 28px; background: #7d2d27; color: #fff; }
.resource-emergency strong { font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.resource-emergency p { margin: 10px 0 0; line-height: 1.65; }
.resource-prose > section { margin-bottom: 52px; }
.resource-prose > section h2, .resource-sources h2 { margin: 0 0 20px; font-size: clamp(31px, 3.5vw, 48px); }
.resource-prose > section p { margin: 0 0 18px; color: var(--muted); font-size: 17px; line-height: 1.8; }
.resource-sources { margin-top: 65px; padding-top: 34px; border-top: 1px solid var(--line); }
.resource-sources ul { margin: 0; padding: 0; list-style: none; }
.resource-sources a { display: flex; justify-content: space-between; gap: 20px; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--purple); font-family: var(--mono); font-size: 11px; text-transform: uppercase; }
.resource-aside { position: sticky; top: 130px; display: grid; gap: 36px; }
.resource-aside > div { padding: 24px; border: 1px solid var(--line); }
.resource-aside a { display: flex; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); color: var(--purple); font-size: 13px; line-height: 1.4; }
.resource-aside a:last-child { border-bottom: 0; }

@media (max-width: 950px) {
  .recovery-notice > div { align-items: flex-start; flex-direction: column; gap: 4px; }
  .site-header { flex-wrap: wrap; }
  .site-nav { order: 3; width: 100%; justify-content: center; border-top: 1px solid var(--line); padding-top: 8px; }
  .nav-dropdown-menu { left: auto; right: 0; transform: none; }
  .footer-nav { flex-wrap: wrap; justify-content: center; }
  .section-heading { grid-template-columns: 1fr; gap: 18px; }
  .section-heading .eyebrow { margin-bottom: 12px; }
  .section-heading > p:last-child { max-width: 620px; margin-top: 12px; }
  .service-credentials { grid-template-columns: 1fr; }
  .dealer-marks > span:first-child { border-left: 0; padding-left: 0; }
  .dealer-note { grid-template-columns: 1fr; gap: 12px; }
  .service-row { grid-template-columns: 0.2fr 0.8fr 1.2fr; }
  .service-row a { grid-column: 2 / -1; max-width: 250px; }
  .pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pricing-scope { grid-template-columns: 1fr; gap: 10px; }
  .tankless-heading { grid-template-columns: 1fr; gap: 18px; }
  .tankless-heading .eyebrow { margin-bottom: 12px; }
  .tankless-heading > p:last-child { max-width: 620px; margin-top: 12px; }
  .pricing-teaser, .recovery-pricing { gap: 6vw; }
  .local-section-heading { grid-template-columns: 1fr; gap: 18px; }
  .local-section-heading .eyebrow { margin-bottom: 10px; }
  .local-section-heading > p:last-child { max-width: 650px; margin-top: 10px; }
  .local-overview, .local-details, .local-decision, .local-trust, .local-related { gap: 6vw; }
  .story { grid-template-columns: 0.9fr 1.1fr; }
  .resource-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .resources-hero { grid-template-columns: minmax(0, .8fr) minmax(400px, 1.2fr); gap: 40px; }
  .resource-article-layout { gap: 5vw; }
  .proof, .contact { gap: 7vw; }
}

@media (max-width: 680px) {
  body { padding-bottom: 64px; }
  .section-pad { padding: 78px 22px; }
  .recovery-notice { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 14px; padding: 14px 18px; }
  .recovery-notice > div { grid-column: 1; }
  .recovery-notice > a { grid-column: 1; justify-self: start; }
  .recovery-notice button { grid-column: 2; grid-row: 1; align-self: start; }
  .site-header { gap: 12px; padding: 11px 18px; }
  .brand-logo { width: 46px; height: 39px; }
  .brand-name { font-size: 14px; }
  .brand-name small { max-width: 190px; font-size: 9px; }
  .header-call { display: none; }
  .site-nav { width: calc(100% - 36px); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; font-size: 10px; }
  .site-nav a { text-align: center; }
  .nav-dropdown { grid-column: 1 / -1; }
  .nav-dropdown-toggle { width: 100%; justify-content: center; }
  .nav-dropdown-menu { position: static; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); transform: none; margin-bottom: 7px; box-shadow: none; }
  .hero.section-pad { padding: 0; }
  .hero { min-height: 0; display: grid; grid-template-columns: minmax(0, 1fr); align-items: stretch; background: var(--purple); }
  .hero-visual { position: relative; inset: auto; width: 100%; aspect-ratio: 1200 / 514; background: var(--ink); }
  .hero-visual::after { background: linear-gradient(180deg, transparent 68%, rgba(43, 7, 79, 0.3) 100%); }
  .hero-visual img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
  .hero-copy { max-width: none; padding: 38px 22px 28px; }
  .hero .eyebrow { margin-bottom: 22px; }
  h1 { font-size: clamp(54px, 16vw, 74px); }
  .hero-intro { max-width: 360px; font-size: 18px; }
  .hero-actions { align-items: stretch; flex-direction: column; max-width: 270px; margin-top: 32px; }
  .button { width: 100%; }
  .text-link { align-self: flex-start; }
  .hero-foot { position: relative; left: auto; right: auto; bottom: auto; align-items: flex-start; flex-direction: column; gap: 5px; margin: 0 22px 22px; padding: 11px 13px; background: var(--purple-dark); border-color: rgba(255, 255, 255, 0.18); font-size: 11px; }
  .service-strip { display: none; }
  .section-heading { margin-bottom: 48px; }
  .service-area { grid-template-columns: 1fr; gap: 34px; }
  .service-area-heading h2 { font-size: 48px; }
  .section-heading h2 { font-size: 51px; }
  .service-credentials { margin-bottom: 0; padding: 22px 18px; }
  .dealer-marks { width: 100%; }
  .dealer-marks > span { min-width: 0; flex: 1; padding: 5px 14px; }
  .dealer-marks strong { font-size: 20px; }
  .capabilities { grid-template-columns: 1fr; }
  .capabilities > div { min-height: 0; padding: 30px 22px; }
  .dealer-note { margin-bottom: 44px; padding: 23px 22px; }
  .service-row { grid-template-columns: 42px 1fr; gap: 16px; min-height: 0; padding: 36px 0; }
  .service-row h3 { font-size: 35px; }
  .service-row p, .service-row a { grid-column: 2; }
  .service-row a { margin-top: 8px; }
  .pricing-grid { grid-template-columns: 1fr; }
  .condensation-drop { display: none; }
  .pricing-card { min-height: 0; padding: 30px 22px; }
  .pricing-size { margin-bottom: 26px; }
  .pricing-scope { padding: 22px 18px; }
  .pricing-footer { grid-template-columns: 1fr; gap: 28px; margin-top: 42px; }
  .pricing-terms { padding: 22px 0 0; border-top: 4px solid var(--purple); border-left: 0; }
  .pricing-teaser, .recovery-pricing { grid-template-columns: 1fr; gap: 38px; }
  .pricing-teaser h2, .recovery-pricing h2 { font-size: 48px; }
  .ac-pricing-card { min-height: 0; }
  .tankless-heading { margin-bottom: 42px; }
  .tankless-heading h2 { font-size: 51px; }
  .tankless-benefits { grid-template-columns: 1fr; }
  .tankless-benefits > div { min-height: 0; padding: 25px 22px; }
  .tankless-card { min-height: 0; }
  .furnace-pricing .pricing-card { min-height: 0; }
  .furnace-tier-guide { grid-template-columns: 1fr; }
  .pricing-hero { min-height: 0; }
  .pricing-hero h1 { font-size: 53px; }
  .pricing-hero p:not(.eyebrow) { font-size: 17px; }
  .story, .proof, .contact { grid-template-columns: 1fr; }
  .story-image { min-height: 420px; }
  .story-copy h2 { font-size: 52px; }
  .principles { grid-template-columns: 1fr; gap: 15px; }
  .proof { gap: 48px; }
  .proof-intro h2 { font-size: 44px; }
  .review-carousel { min-height: 0; align-items: flex-start; }
  .review-slide blockquote { font-size: 32px; }
  .contact { gap: 45px; }
  .contact h2 { font-size: 63px; }
  .contact-primary { padding: 22px 18px; }
  .contact-primary strong { font-size: 29px; }
  .contact-primary > span { flex-direction: column; gap: 8px; }
  .after-hours { padding: 23px 18px 25px; }
  .site-footer { align-items: flex-start; flex-direction: column; }
  .footer-nav { width: 100%; justify-content: space-between; }
  .footer-meta { justify-items: start; text-align: left; }
  .mobile-call { position: fixed; z-index: 50; left: 0; right: 0; bottom: 0; min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 14px 20px; background: var(--paper); color: var(--purple); border-top: 1px solid var(--line); font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; }
  .mobile-call span { color: var(--ink); font-family: var(--sans); font-size: 14px; }
  .recovery-hero { min-height: 0; }
  .recovery-hero h1 { font-size: 51px; }
  .recovery-hero > div > p:not(.eyebrow) { font-size: 17px; }
  .local-hero { min-height: 0; }
  .local-hero h1 { font-size: clamp(46px, 13vw, 65px); }
  .local-hero > div > p:not(.eyebrow, .local-breadcrumb) { font-size: 17px; }
  .light-commercial-hero { min-height: 650px; }
  .light-commercial-hero-copy { width: 100%; }
  /* Lock the narrow mobile view to the rooftop-equipment strip, not the panorama's centre. */
  .light-commercial-hero-photo img { object-position: 39% 54%; }
  .light-commercial-hero::after { background: linear-gradient(90deg, rgba(59, 11, 115, 0.97) 0%, rgba(59, 11, 115, 0.92) 58%, rgba(43, 7, 79, 0.55) 100%); }
  .local-overview, .local-details, .local-decision, .local-trust, .local-related { grid-template-columns: 1fr; gap: 38px; }
  .local-overview h2, .local-details h2, .local-decision h2, .local-trust h2, .local-related h2 { font-size: 45px; }
  .local-service-cards, .area-grid { grid-template-columns: 1fr; }
  .local-service-cards a, .area-grid a { min-height: 0; }
  .local-numbered article { grid-template-columns: 42px 1fr; gap: 16px; }
  .local-numbered h3 { font-size: 24px; }
  .resources-hero, .resource-article-hero { min-height: 0; }
  .resources-hero { grid-template-columns: 1fr; gap: 48px; }
  .resources-hero h1 { font-size: 61px; }
  .resource-article-layout { grid-template-columns: 1fr; gap: 40px; }
  .resource-grid { grid-template-columns: 1fr; }
  .resource-card, .resource-feature-card { min-height: 0; padding: 27px 22px; }
  .resource-card h3 { font-size: 34px; }
  .resource-feature-card h3 { font-size: 42px; }
  .resource-article-hero { grid-template-columns: 1fr; gap: 26px; padding-top: 42px; padding-bottom: 46px; }
  .resource-article-meta { padding-top: 0; }
  .resource-article-hero .local-breadcrumb { margin-bottom: 20px; }
  .resource-article-hero h1 { font-size: 46px; }
  .resource-deck { font-size: 17px; }
  .resource-article-intro { grid-template-columns: 1fr; margin-bottom: 42px; }
  .resource-illustration { border-right: 1px solid var(--line); border-bottom: 0; }
  .resource-article-intro .resource-illustration img { height: auto; aspect-ratio: 3 / 2; }
  .resource-answer { padding: 23px 19px; }
  .resource-answer p { font-size: 19px; }
  .resource-aside { position: static; }
  .local-numbered p { grid-column: 2; }
  .recovery-overview, .recovery-safety, .recovery-faq { grid-template-columns: 1fr; gap: 38px; }
  .recovery-faq-heading { position: static; }
  .recovery-faq h2 { font-size: 44px; }
  .faq-list summary { padding: 22px 46px 22px 0; font-size: 18px; }
  .faq-list summary::after { top: 18px; }
  .faq-answer { padding-right: 0; }
  .speed-cards { grid-template-columns: 1fr; }
  .speed-cards article { min-height: 0; padding: 30px 22px; }
  .pricing-scope-sidebar {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  height: 100%;
}

.pricing-scope-sidebar .pricing-button {
  margin-top: auto;
}
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .js .reveal { opacity: 1; transform: none; transition: none; }
  .status-dot, .service-strip::after, .review-slide.is-active, .water-heater-hero::before, .condensation-drop, .js .reveal.visible .temperature-word { animation: none; }
  .water-heater-hero::before { opacity: 0.34; transform: none; }
  .condensation-drop { opacity: 0.45; transform: none; }
  .button, .button > span, .text-link > span, .google-reviews-link > span, .contact-primary b, .contact-option > b, .service-row a span, .story-image img { transition: none; }
  .button:hover, .button:hover > span, .text-link:hover > span, .google-reviews-link:hover > span, .contact-primary:hover b, .contact-option:hover > b, .service-row a:hover span, .story-image:hover img { transform: none; }
}

/* Fall 2026 heating-service flyout */
.fall-service-promo { position: fixed; z-index: 60; right: clamp(18px, 2.4vw, 34px); bottom: clamp(18px, 2.4vw, 34px); width: min(390px, calc(100vw - 36px)); color: #2c1c1b; }
.fall-service-panel { position: relative; margin-bottom: 10px; overflow: hidden; padding: 30px 28px 23px; background: #fff7ea; border: 1px solid rgba(91, 42, 31, 0.25); box-shadow: 0 24px 62px rgba(33, 16, 16, 0.3); }
.fall-service-panel[hidden] { display: none; }
.fall-service-panel::before { content: ""; position: absolute; inset: 0 0 auto; height: 7px; background: linear-gradient(90deg, #7d2d27, #dc7046 48%, #efb55c); }
.fall-service-panel::after { content: ""; position: absolute; z-index: 0; width: 220px; height: 220px; right: -100px; top: -112px; border-radius: 50%; background: radial-gradient(circle, rgba(242, 157, 76, 0.38), rgba(208, 82, 53, 0.1) 50%, transparent 70%); animation: fall-service-glow 3.6s ease-in-out infinite; pointer-events: none; }
.fall-service-panel > * { position: relative; z-index: 1; }
.fall-service-close { position: absolute; z-index: 2; top: 15px; right: 14px; width: 34px; height: 34px; border: 0; padding: 0; background: transparent; color: #6a352c; cursor: pointer; font-size: 27px; line-height: 1; }
.fall-service-status { display: flex; align-items: center; gap: 8px; margin: 0 40px 15px 0; color: #7d2d27; font-family: var(--mono); font-size: 10px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; }
.fall-service-status span { width: 8px; height: 8px; flex: 0 0 auto; border-radius: 50%; background: #e16c3d; box-shadow: 0 0 0 5px rgba(225, 108, 61, 0.15); animation: fall-service-pulse 2.2s ease-out infinite; }
.fall-service-kicker { margin: 0 0 6px; color: #6f463e; font-family: var(--mono); font-size: 10px; font-weight: 500; text-transform: uppercase; }
.fall-service-panel h2 { margin: 0 0 11px; color: #7d2d27; font-size: 48px; letter-spacing: -0.065em; line-height: 0.95; }
.fall-service-lead { margin: 0 0 18px; color: #392321; font-size: 15px; line-height: 1.5; }
.fall-service-lead strong { color: #7d2d27; font-family: var(--mono); font-size: 14px; }
.fall-service-price { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 2px 14px; margin-bottom: 15px; padding: 13px 15px; background: #f4dcc2; border-left: 4px solid #dc7046; }
.fall-service-price span { font-family: var(--mono); font-size: 10px; font-weight: 500; text-transform: uppercase; }
.fall-service-price strong { grid-row: 1 / 3; grid-column: 2; color: #7d2d27; font-size: 31px; letter-spacing: -0.04em; }
.fall-service-price small { color: #71564f; font-size: 10px; }
.fall-service-deadline { margin: 0 0 16px; font-size: 12px; line-height: 1.5; }
.fall-service-call { min-height: 49px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 13px 16px; background: #7d2d27; color: #fff7ea; font-family: var(--mono); font-size: 12px; font-weight: 500; text-transform: uppercase; }
.fall-service-terms { margin: 13px 0 0; color: #705b55; font-size: 8px; line-height: 1.45; }
.fall-service-tab { width: 100%; min-height: 68px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 13px; border: 0; padding: 12px 16px; background: #4d211f; color: #fff7ea; box-shadow: 0 12px 32px rgba(33, 16, 16, 0.3); cursor: pointer; text-align: left; }
.fall-service-tab-dot { width: 12px; height: 12px; border-radius: 50%; background: #ef9a51; box-shadow: 0 0 18px rgba(239, 154, 81, 0.8); }
.fall-service-tab small, .fall-service-tab strong { display: block; }
.fall-service-tab small { margin-bottom: 3px; color: #efc7a4; font-family: var(--mono); font-size: 9px; font-weight: 500; text-transform: uppercase; }
.fall-service-tab strong { font-size: 17px; }
.fall-service-tab b { font-size: 24px; font-weight: 300; transition: transform 0.2s ease; }
.fall-service-promo.is-open .fall-service-tab b { transform: rotate(45deg); }
.fall-service-heat { position: absolute; z-index: 1; top: 15px; right: 58px; display: flex; gap: 5px; opacity: 0.4; }
.fall-service-heat i { width: 3px; height: 16px; border-radius: 50%; border-left: 2px solid #dc7046; transform: skewX(-12deg); animation: fall-service-rise 1.8s ease-in-out infinite; }
.fall-service-heat i:nth-child(2) { animation-delay: -0.55s; }
.fall-service-heat i:nth-child(3) { animation-delay: -1.1s; }
@keyframes fall-service-glow { 50% { opacity: 0.65; transform: scale(1.12); } }
@keyframes fall-service-pulse { 70% { box-shadow: 0 0 0 11px rgba(225, 108, 61, 0); } 100% { box-shadow: 0 0 0 0 rgba(225, 108, 61, 0); } }
@keyframes fall-service-rise { 50% { transform: translateY(-4px) skewX(12deg); opacity: 0.45; } }
@media (max-width: 680px) {
  .fall-service-promo { right: 12px; bottom: 76px; width: calc(100vw - 24px); }
  .fall-service-panel { max-height: calc(100vh - 164px); overflow-y: auto; padding: 25px 21px 19px; }
  .fall-service-panel h2 { font-size: 42px; }
  .fall-service-tab { min-height: 60px; padding: 9px 14px; }
}
@media (prefers-reduced-motion: reduce) {
  .fall-service-panel::after, .fall-service-status span, .fall-service-heat i { animation: none; }
  .fall-service-tab b { transition: none; }
}
