/* AIRCONIC shared visual system. Load after the page/component styles.
   Layout variants retain their markup, image framing and interaction behavior. */:root{--navy:#073b68;--blue:#0a5d9a;--ink:#173247;--muted:#5b6d79;--line:#dce5eb;--surface:#f4f7f9;--max:1280px;--radius:12px;--header:56px;--layout-gutter:20px;--section-space:48px;--intro-top:40px;--intro-bottom:32px;--title-copy-gap:24px;--heading-space:32px;--function-heading-space:40px;--layout-gap:32px;--item-gap:28px;--footer-space:24px;--copy-size:16px;--lead-size:16px;--copy-leading:1.6;--legal-leading:1.65;--title-size:clamp(36px, 8vw, 42px);--section-title-size:clamp(28px, 6.5vw, 34px);--compact-title-size:26px;--item-title-size:21px;--content-icon-size:32px}@media (min-width: 701px){:root{--header:68px;--layout-gutter:24px;--section-space:64px;--intro-top:48px;--intro-bottom:40px;--heading-space:36px;--function-heading-space:48px;--layout-gap:40px;--item-gap:32px;--footer-space:28px;--lead-size:17px;--title-size:clamp(42px, 5.4vw, 54px);--section-title-size:clamp(32px, 3.8vw, 38px);--compact-title-size:28px;--item-title-size:22px;--content-icon-size:36px}}@media (min-width: 1000px){:root{--header:76px;--layout-gutter:56px;--section-space:88px;--intro-top:64px;--intro-bottom:48px;--heading-space:48px;--function-heading-space:64px;--layout-gap:64px;--item-gap:36px;--footer-space:32px;--copy-size:17px;--lead-size:18px;--title-size:clamp(48px, 4.2vw, 64px);--section-title-size:clamp(34px, 2.9vw, 44px);--compact-title-size:30px}}@media (min-width: 1000px) and (max-width: 1199px){:root{--layout-gutter:40px}}@media (max-width: 360px){:root{--layout-gutter:16px}}/* One outer edge; prose and legal content keep intentional reading widths. */body{color:var(--ink);background:#fff;font-size:var(--copy-size)}.container,.header-inner,.page-contact .contact-intro,.page-contact .contact-layout,.page-contact .contact-footer-inner,.page-climate .climate-inquiry{width:min(calc(100% - 2 * var(--layout-gutter)), var(--max));margin-inline:auto}.header-inner,.page-contact .contact-intro,.page-contact .contact-layout,.page-contact .contact-footer-inner,.page-climate .climate-inquiry{max-width:var(--max)}/* Keep the divider inside the header without reducing its centering area. */.site-header{border-bottom:0;box-shadow:inset 0 -1px 0 #edf1f5}.header-inner{height:var(--header);padding-block:0;align-items:center}/* A compact phone header keeps the wordmark and menu centered without extra white space. */@media (max-width: 700px){.brand{height:var(--header)}/* Use the header's vertical centering without an optical offset. */.site-header .brand,.site-header .menu-toggle{position:relative;top:0}}.prose{max-width:850px}.legal{max-width:1040px}.prose.container,.legal.container{max-width:var(--max)}.prose-body{max-width:850px}.legal-body{max-width:1040px}.prose-body,.legal-body{display:flow-root}.prose-body > :first-child,.legal-body > :first-child{margin-top:0}/* Keep every navigation item reachable on short phone and tablet screens. */@media (max-width: 1180px){.site-header nav.is-open{max-height:calc(100vh - var(--header));max-height:calc(100dvh - var(--header));overflow-y:auto;overscroll-behavior:contain;padding-bottom:calc(20px + env(safe-area-inset-bottom))}}/* Section and introductory spacing have a single owner at each breakpoint. */.section,.business-qualifications,.page-climate .climate-overview,.page-climate .climate-functions,.page-climate .climate-installation,.page-climate .climate-process,.page-climate .climate-faq,.page-climate .climate-inquiry{padding-block:var(--section-space)}.hero,.page-home .hero,.page-climate .climate-hero,.page-intro,.contact-intro{padding-block:var(--intro-top) var(--intro-bottom)}.page-home .hero > .hero-copy,.page-climate .climate-hero > .hero-copy{align-self:start}.legal{padding-top:var(--intro-top)}/* These white sections directly continue the preceding white content. */.page-home .team-section,.page-detail .detail-layout,.page-climate .climate-process,.page-services .business-qualifications + .service-team-section{padding-top:0}.section-heading,.section-heading-row .section-heading,.page-climate .section-heading,.page-climate .climate-overview > .section-heading,.page-climate .climate-process .section-heading,.page-climate .climate-inquiry .consultation-intro{margin-bottom:var(--heading-space)}.section-heading{max-width:820px}.page-climate .climate-functions .section-heading{margin-bottom:var(--function-heading-space)}/* Type roles: page title, section title, compact section title, item title. */h1,h2,h3{color:var(--navy);font-weight:650}h1,.hero h1,.page-home .hero h1,.page-climate .climate-hero h1,.page-intro h1,.contact-intro h1,.legal h1{font-size:var(--title-size);line-height:1.1;letter-spacing:-.04em}.page-home .hero h1 em{font-size:inherit}.hero h1,.page-home .hero h1,.page-climate .climate-hero h1,.page-intro h1,.contact-intro h1{margin-bottom:var(--title-copy-gap)}h2,.business-qualifications h2{font-size:var(--section-title-size);line-height:1.18;letter-spacing:-.035em}.section-heading h2,.page-climate .section-heading h2{margin:0}.split-content h2,.team-section h2,.craft-story h2,.team-gallery-section h2{margin-bottom:24px}.detail-main h2,.service-directory h2,.page-climate .climate-room-choice h2,.page-climate .climate-system-choice h2{font-size:var(--compact-title-size);line-height:1.25;letter-spacing:-.025em;margin-bottom:24px}.aside-callout h2{font-size:26px;line-height:1.3}h3,.decision-grid h3,.function-grid h3,.process h3,.vertical-process h3,.editorial-points h3,.service-feature h3,.service-stack h3,.business-qualifications h3,.page-climate .climate-overview .decision-grid h3,.page-climate .climate-functions .function-grid h3,.page-climate .climate-process .process h3{font-size:var(--item-title-size);line-height:1.35;letter-spacing:-.025em;margin-bottom:12px}p{line-height:var(--copy-leading)}.hero-lead,.page-intro .hero-lead,.contact-intro .hero-lead{font-size:var(--lead-size);line-height:var(--copy-leading);max-width:60ch}.contact-intro > .hero-lead:last-child{margin-top:0;font-size:var(--lead-size);line-height:var(--copy-leading);max-width:60ch}.large-copy,.split-content p:not(.eyebrow),.team-section p:not(.eyebrow),.craft-story p,.team-gallery-section p:not(.eyebrow),.service-feature p,.service-stack p,.service-directory p,.decision-grid p,.function-grid p,.process p,.vertical-process p,.editorial-points p,.region-overview p,.detail-main p,.prose p,.faq details > p,.page-climate .climate-overview .decision-grid p,.page-climate .climate-functions .function-grid p,.page-climate .climate-system-choice > div > p,.page-climate .climate-installation p,.page-climate .climate-process .process p,.page-climate .climate-faq .faq details > p{color:var(--muted);font-size:var(--copy-size);line-height:var(--copy-leading)}.business-qualifications p,.aside-callout p{line-height:var(--copy-leading)}.detail-main p,.prose p{max-width:68ch}.check-list > li,.page-climate .climate-installation .check-list > li{font-size:var(--copy-size);line-height:var(--copy-leading)}.faq summary,.page-climate .climate-faq .faq summary{padding-block:24px;font-size:var(--copy-size);line-height:1.5}/* Existing column counts remain page-specific; their spacing is shared. */.hero,.page-home .hero,.page-climate .climate-hero,.split-content,.team-section,.craft-story,.team-gallery-section,.service-showcase,.system-choice,.faq-layout,.region-overview,.detail-layout,.business-qualifications .qualifications-layout,.page-climate .climate-system-choice,.page-climate .climate-installation,.page-climate .climate-faq .faq-layout{gap:var(--layout-gap)}.decision-grid,.function-grid,.process,.page-climate .climate-overview .decision-grid,.page-climate .climate-functions .function-grid,.page-climate .climate-process .process{gap:var(--item-gap)}.page-climate .climate-room-choice{margin-top:var(--heading-space);padding-top:var(--heading-space)}.page-climate .climate-system-choice{margin-top:var(--heading-space);padding-top:var(--heading-space)}.decision-grid > article > .icon,.function-grid > article > .icon,.process li > .icon,.vertical-process li > .icon,.editorial-points article > .icon,.business-qualifications .qualification-facts article > .icon,.page-climate .climate-overview .decision-grid > article > .icon,.page-climate .climate-functions .function-grid > article > .icon,.page-climate .climate-process .process li > .icon{width:var(--content-icon-size);height:var(--content-icon-size);color:var(--navy)}/* Shared surfaces and radii; image proportions/positions remain untouched. */.button,.air-inquiry .air-inquiry-primary,.air-inquiry input,.air-inquiry textarea{border-radius:6px}.hero-photo,.page-home .home-team-hero .hero-photo,.home-team-photo img,.photo > img,.service-team-section > .photo > img,.team-gallery-section .natural-photo > img,.craft-story .photo > img,.craft-story > picture > img,.craft-story > img,.detail-aside .photo > img,.team-portraits img,.service-feature > img,.air-region-map,.air-inquiry-panel,.air-inquiry .air-inquiry-option,.page-climate .climate-hero .hero-photo,.page-climate .climate-installation .photo > img,.page-climate .climate-system-choice .split-diagram{border-radius:12px}.button,.hero-actions > .button,.air-inquiry .air-inquiry-primary{font-size:16px;line-height:1.4}.text-link,.hero-actions > .text-link,.faq-layout .text-link,.page-climate .climate-system-choice .text-link{font-size:16px;line-height:1.5}.aside-callout,.contact-details{background:var(--surface);border-color:var(--line);box-shadow:none}.page-climate .climate-system-choice .split-diagram{background:#fff;border-color:var(--line)}.air-region-map{--map-paper:var(--surface);--map-ink:var(--navy)}.air-region-map-radius,.air-region-map-inner-radius{stroke:var(--line)}.air-region-map-leader{stroke:var(--muted)}.air-region-map-dot{fill:var(--blue)}.air-region-map-dot-major,.air-region-map-dot-hub{fill:var(--navy)}.air-region-map-label-hub > span{color:var(--muted)}/* The call to action and legal footer are the same components on every page. */.cta-band{padding-block:var(--section-space);background:var(--navy)}.cta-band h2{font-size:var(--section-title-size);line-height:1.2;margin-bottom:20px}.cta-band p:not(.eyebrow){font-size:var(--lead-size);line-height:var(--copy-leading)}.footer-clean,.page-contact .site-footer .footer-clean{padding-block:var(--footer-space)}.footer-clean nav,.page-contact .site-footer .footer-clean nav{font-size:14px;gap:24px}.footer-clean p{font-size:14px;line-height:1.6}/* Contact keeps its three/two/one-column information layout on the same edge. */.page-contact .contact-footer{margin-top:var(--section-space);padding-block:var(--section-space)}.page-contact .contact-footer-inner{gap:var(--layout-gap)}.page-contact .contact-footer-column > h2{font-size:24px;line-height:1.3;margin-bottom:24px}.page-contact .contact-footer p,.page-contact .contact-footer address,.page-contact .contact-footer nav,.page-contact .contact-footer-communications,.page-contact .contact-footer .contact-email-reveal,.page-contact .contact-footer .contact-email-address{font-size:var(--copy-size);line-height:var(--copy-leading)}.page-contact .contact-footer-hours .contact-footer-appointment{font-size:15px;line-height:var(--copy-leading)}/* Long legal copy stays readable; existing wrapping and table semantics stay. */.legal{font-size:16px;line-height:var(--legal-leading)}.legal p{font-size:16px;line-height:var(--legal-leading);max-width:75ch}.legal h1{line-height:1.1;margin-bottom:var(--title-copy-gap)}.legal h2{font-size:var(--compact-title-size);line-height:1.3;margin-block:36px 18px}.legal h3{font-size:21px;line-height:1.35;margin-block:28px 14px}.legal table{font-size:14.5px;line-height:var(--legal-leading)}.legal th,.legal td{padding:12px}/* Compact icon/text rows already own their vertical spacing internally. */@media (max-width: 999px){.page-climate .climate-overview .decision-grid{gap:0}.page-climate .climate-overview .decision-grid > article{grid-template-columns:var(--content-icon-size) minmax(0, 1fr)}.page-climate .climate-overview .decision-grid h3{margin-bottom:0}}@media (max-width: 700px){.page-climate .climate-process .process{gap:0}.page-climate .climate-functions .function-grid h3,.page-climate .climate-process .process h3{margin-bottom:0}.legal th,.legal td{padding:8px 6px}}/* A welcoming photo-first home introduction on smaller screens.
   The original team picture remains fully visible; desktop keeps its layout. */@media (max-width: 999px){.page-home .hero{grid-template-columns:minmax(0, 1fr);align-items:start;gap:24px;padding-block:24px 32px}.page-home .home-team-hero{order:-1;justify-self:center;width:100%;max-width:760px}.page-home .home-team-hero picture{display:block}.page-home .home-team-hero .hero-photo{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;object-position:50% 50%;border-radius:12px}.page-home .hero > .hero-copy{justify-self:center;width:100%;max-width:760px}.page-home .hero h1{font-size:clamp(34px, 4.5vw, 42px);line-height:1.12;margin-bottom:20px}.page-home .hero-lead{font-size:16px;line-height:1.6;max-width:60ch;margin:0}.page-home .hero-actions{margin-top:24px;gap:16px}.page-home .hero .local-proof{display:none}}@media (max-width: 700px){.page-home .hero{width:100%;max-width:none;padding-block:0 24px}.page-home .home-team-hero{max-width:none}.page-home .home-team-hero .hero-photo{border-radius:0}.page-home .hero > .hero-copy{max-width:none;padding-inline:var(--layout-gutter)}.page-home .hero h1{font-size:clamp(29px, 8vw, 34px)}.page-home .hero-actions{margin-top:20px;align-items:stretch}.page-home .hero-actions > .button{width:100%;min-height:56px;padding-block:15px}}
