.building-credit,.case-permalink{grid-column:1/-1;font-size:14px;line-height:1.6;padding:0 0 12px;margin:0}.building-credit a{text-decoration:underline}.case-permalink{font-weight:700}.case-detail-page .case-summary{cursor:default}.case-detail-page .case-toggle{display:none}.case-detail-page h1{font-size:clamp(1.7rem,4vw,3rem)}.case-detail-page .case-details{display:grid}.recovery-directory{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.recovery-directory a{padding:18px;background:white;border:1px solid var(--line);font-weight:650}.recovered-content .inner-hero{padding:56px 0;background:var(--sky)}.recovered-content .inner-hero-grid{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:40px}.recovered-content h1 em{font-style:normal;color:var(--blue-deep)}.recovered-content .inner-lead{font-size:1.2rem;line-height:1.6;max-width:650px}.recovered-content img{max-width:100%;height:auto}.recovered-content .service-photo img,.recovered-content .about-photo img{width:100%;max-height:390px;object-fit:cover}.recovered-content figure{margin:0}.recovered-content figcaption{font-size:14px;padding:10px 0;color:var(--ink-2)}.recovered-content .brief-panel{display:grid;gap:16px;background:white;border:1px solid var(--line);padding:24px;margin:0}.recovered-content dt{font-size:14px;color:var(--blue-deep);font-weight:700}.recovered-content dd{margin:4px 0 0}.recovered-content .service-facts{padding-top:25px}.recovered-content .service-facts .brief-panel{grid-template-columns:repeat(3,1fr)}.recovered-content .page-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:54px;padding-top:50px;padding-bottom:50px}.recovered-content .prose-section,.recovered-content .service-local,.recovered-content .page-faq{margin-bottom:50px}.recovered-content h2{font-size:clamp(1.6rem,3vw,2.5rem)}.recovered-content h3{font-size:1.15rem}.recovered-content .scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-top:25px}.recovered-content .scope-index{color:var(--blue-deep);font-weight:700}.recovered-content .work-steps{padding:0;list-style:none;display:grid;gap:20px}.recovered-content .work-steps li{display:flex;gap:20px;border-top:1px solid var(--line);padding-top:16px}.recovered-content .work-steps li>span{font-weight:700;color:var(--blue-deep)}.recovered-content .service-sidebar nav,.recovered-content .sidebar-contact{padding:25px;background:var(--mist);margin-bottom:25px}.recovered-content .service-sidebar nav a{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid var(--line);font-size:16px}.recovered-content .service-sidebar h2{font-size:1.3rem}.recovered-content .text-project{display:block;padding:25px;background:var(--sky);margin-bottom:40px}.recovered-content details{border-top:1px solid var(--line);padding:18px 0}.recovered-content summary{cursor:pointer;font-weight:700}.recovered-content summary span{float:right}.recovered-content details p{padding-top:15px}.recovered-content .page-cta{background:var(--ink);color:white;padding:48px 0}.recovered-content .page-cta .wrap{display:flex;justify-content:space-between;gap:30px;align-items:center}.recovered-content .cta-phone{display:block;margin-top:16px}.recovered-content .about-story,.recovered-content .about-links,.recovered-content .local-coverage-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px;align-items:center}.recovered-content .soft-section,.recovered-content .local-coverage{background:var(--mist);padding:55px 0}.recovered-content .local-links a{display:block;padding:15px;border-bottom:1px solid var(--line)}.recovered-content .area-grid,.recovered-content .coverage-grid,.recovered-content .town-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.recovered-content .area-card,.recovered-content .town-card{padding:25px;background:var(--mist);border:1px solid var(--line)}.form-status{padding:16px;border-left:4px solid var(--blue-deep);background:var(--sky)}.form-status[data-error=true]{border-color:#b42626;background:#fff1f1}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.form-card input[type=file]{max-width:100%;font-size:14px}.prose{max-width:900px}.prose li{margin-bottom:30px}.case-summary:focus-visible{outline:3px solid var(--blue-deep);outline-offset:-3px}
.recovered-content .area-hub-grid,.recovered-content .area-service-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.recovered-content .area-town,.recovered-content .area-service-cards>a,.recovered-content .area-service-cards>article{display:block;padding:25px;border:1px solid var(--line);background:white}.recovered-content .area-town span{display:block}.recovered-content .area-project-photo{max-width:680px;margin:25px 0}.recovered-content .area-project-photo img{max-height:440px;width:100%;object-fit:contain}.recovered-content .local-content,.recovered-content .area-sector-copy{max-width:900px}.recovered-content .breadcrumbs{display:flex;flex-wrap:wrap;gap:8px}.recovered-content .area-more-services{display:flex;flex-wrap:wrap;gap:15px}.recovered-content .area-source{font-size:14px}.recovered-content .button-dark{background:var(--blue-deep);color:white}
@media(max-width:850px){.recovery-directory,.recovered-content .area-hub-grid,.recovered-content .area-service-cards,.recovered-content .area-grid,.recovered-content .coverage-grid,.recovered-content .town-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recovered-content .page-layout{grid-template-columns:1fr}.recovered-content .inner-hero-grid,.recovered-content .about-story,.recovered-content .about-links,.recovered-content .local-coverage-grid{grid-template-columns:1fr}.recovered-content .page-cta .wrap{display:block}.recovered-content .page-cta .wrap>div+div{margin-top:25px}}
@media(max-width:550px){.recovery-directory,.recovered-content .area-hub-grid,.recovered-content .area-service-cards,.recovered-content .scope-grid,.recovered-content .service-facts .brief-panel,.recovered-content .area-grid,.recovered-content .coverage-grid,.recovered-content .town-grid{grid-template-columns:1fr}.recovered-content .inner-hero{padding:32px 0}.main-nav.is-open{max-height:80vh;overflow-y:auto}}
.breadcrumbs,.breadcrumbs a{color:#476174}.page-hero .breadcrumbs,.page-hero .breadcrumbs a{color:inherit}.case-detail-page .case-details h2{font-size:1.4rem;line-height:1.3}.case-detail-page .case-details h3{font-size:1.05rem}.case-card[hidden]{display:none!important}.case-toggle{display:grid;place-items:center}.viewer-help,.viewer-count{font-size:14px}
@media(max-width:550px){.case-summary{grid-template-columns:minmax(0,1fr) auto}.case-summary>img{grid-column:1/-1;width:100%;height:210px;object-fit:cover}.case-summary>div{padding:16px}.case-summary>.case-toggle{margin-right:16px}.case-detail-page .case-summary{grid-template-columns:1fr}.case-detail-page .case-summary>div{padding:20px}}

/* Integrated landing heroes: photographs sit behind the existing page introduction. */
.photo-hero.page-hero,.recovered-content .photo-hero.inner-hero{position:relative;isolation:isolate;overflow:hidden;background:#102536;color:#fff;min-height:580px;padding:48px 0 64px;display:flex;align-items:center}
.photo-hero .photo-hero-media{position:absolute;inset:0;z-index:-2;display:block}
.photo-hero .photo-hero-media img,.recovered-content .photo-hero .photo-hero-media img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:var(--hero-focus,50% 55%)}
.photo-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(7,20,29,.9) 0%,rgba(7,20,29,.76) 32%,rgba(7,20,29,.35) 63%,rgba(7,20,29,.1) 100%)}
.photo-hero>.wrap{position:relative}
.photo-hero h1{font-size:clamp(2.65rem,4.4vw,4.6rem);max-width:720px;text-wrap:balance;text-shadow:0 2px 14px #0003}
.photo-hero .lead,.recovered-content .photo-hero .inner-lead{color:#fff;max-width:600px;margin:24px 0 0;font-size:1.2rem;line-height:1.6}
.photo-hero .breadcrumbs,.photo-hero .breadcrumbs a{color:#f1f6f9}
.photo-hero .kicker,.photo-hero .eyebrow,.recovered-content .photo-hero h1 em{color:#9de7f6}
.recovered-content .photo-hero .inner-hero-grid{display:block}
.recovered-content .photo-hero .brief-panel{display:flex;flex-wrap:wrap;gap:18px 32px;max-width:720px;margin:28px 0 0;padding:20px 0 0;border:0;border-top:1px solid #ffffff60;background:transparent;color:#fff}
.recovered-content .photo-hero .brief-panel dt{color:#bcebf5}
.photo-hero--services{--hero-focus:50% 68%}
.photo-hero--projects{--hero-focus:50% 65%}
.photo-hero--sectors{--hero-focus:50% 32%}
.photo-hero--areas{--hero-focus:50% 20%}
.photo-hero--about{--hero-focus:60% 58%}
@media(max-width:650px){
 .photo-hero.page-hero,.recovered-content .photo-hero.inner-hero{min-height:610px;padding:32px 0 42px;align-items:flex-end}
 .photo-hero::before{background:linear-gradient(180deg,rgba(7,20,29,.25),rgba(7,20,29,.65) 28%,rgba(7,20,29,.9) 75%)}
 .photo-hero h1{font-size:clamp(2.35rem,9.5vw,3.4rem)}
 .photo-hero .lead,.recovered-content .photo-hero .inner-lead{font-size:1.0625rem;line-height:1.55;margin-top:20px}
 .photo-hero .breadcrumbs{margin-bottom:26px}
 .photo-hero .kicker,.photo-hero .eyebrow{font-size:.8rem;letter-spacing:.08em}
 .photo-hero--services{--hero-focus:64% 50%}.photo-hero--projects{--hero-focus:64% 50%}
 .photo-hero--sectors{--hero-focus:58% 26%}.photo-hero--areas{--hero-focus:50% 45%}.photo-hero--about{--hero-focus:63% 50%}
 .recovered-content .photo-hero .brief-panel{gap:12px 22px;font-size:.94rem}
}

.photo-hero--about h1{text-wrap:initial;font-size:clamp(2.35rem,4vw,3.8rem)}
.photo-hero .hero-nowrap{white-space:nowrap}

/* User-approved final couple portrait; retain the full photograph without cropping. */
.recovered-content .about-story--portrait{align-items:start}
.recovered-content .approved-couple img{display:block;width:100%;height:auto;border-radius:8px}
.recovered-content .approved-couple figcaption{padding:10px 0;font-size:1rem;color:var(--ink-2)}
.recovered-content .about-story--portrait .about-person{grid-column:1 / -1}

/* Original van surroundings with a smaller subject on wide screens. */
.photo-hero--about .photo-hero-media{background:url('/assets/landing/about-context.jpg') center 65% / cover no-repeat}
.photo-hero--about .photo-hero-media::before{content:"";position:absolute;inset:0;background:#102536c9;backdrop-filter:blur(16px)}
.recovered-content .photo-hero--about .photo-hero-media img{position:relative;width:55%;margin-left:auto;object-position:50% 70%;mask-image:linear-gradient(90deg,transparent,#000 22%)}
@media(max-width:850px){
 .photo-hero--about .photo-hero-media{background:none}
 .photo-hero--about .photo-hero-media::before{display:none}
 .recovered-content .photo-hero--about .photo-hero-media img{width:100%;object-position:50% 65%;mask-image:none}
}

/* Compact geographic overview, with equal typographic town links instead of cards. */
.coverage-overview{padding-top:64px;padding-bottom:64px}
.coverage-heading{margin-bottom:30px}.coverage-heading h2{margin-bottom:14px}.coverage-heading>p:last-child{color:#476174;max-width:600px}
.coverage-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:52px;align-items:center}
.coverage-map{display:block;width:100%;height:auto;overflow:hidden}
.coverage-basemap{opacity:.55}.coverage-outline{fill:#129bd324;stroke:#087eae;stroke-width:2.5;stroke-dasharray:7 5;stroke-linejoin:round}
.coverage-pin{fill:#087eae;stroke:white;stroke-width:2}.coverage-label{font:600 15px Arial,sans-serif;fill:#102536;stroke:#fff;stroke-width:4;paint-order:stroke}
.coverage-number{display:none}.coverage-map a:hover .coverage-pin,.coverage-map a:focus .coverage-pin{fill:#102536}.coverage-map a:focus{outline:none}.coverage-map a:focus .coverage-pin{stroke:#102536;stroke-width:4}
.coverage-note{margin:14px 0 8px;font-size:.94rem;color:#476174;display:flex;gap:10px;align-items:center}.coverage-note>span{width:24px;height:12px;border:2px dashed #087eae;background:#129bd324;flex:none}
.coverage-credit{font-size:.875rem;color:#526978;margin:0}
.coverage-towns ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:4px 24px}
.coverage-towns a{display:flex;align-items:baseline;gap:10px;min-height:52px;padding:9px 0;text-decoration:none;font-size:clamp(1.05rem,1.5vw,1.5rem);font-weight:650;line-height:1.35;letter-spacing:-.025em}
.town-index{font-size:.8rem;font-weight:400;color:#587080;letter-spacing:0}.coverage-towns a:hover,.coverage-towns a:focus-visible{color:var(--blue-deep);text-decoration:underline;text-underline-offset:6px}
.coverage-photo-credit{position:absolute;bottom:14px;right:24px;font-size:.8rem;color:white;z-index:1;background:#1025368c;padding:3px 8px;text-decoration:none}
.photo-hero--areas{--hero-focus:50% 50%}
.town-services>p{max-width:700px;margin-top:20px}.town-services nav{display:flex;flex-wrap:wrap;gap:18px 38px;margin-top:28px}.town-services nav a{font-size:1.15rem;padding:8px 0}
@media(min-width:1081px){.nav-submenu--areas{width:450px!important;max-height:70vh;overflow-y:auto}.nav-submenu--areas:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.nav-submenu--areas>li:first-child{grid-column:1/-1}}
@media(max-width:1080px){.nav-submenu--areas:not([hidden]){display:grid;grid-template-columns:1fr 1fr;gap:0 10px}.nav-submenu--areas>li:first-child{grid-column:1/-1}.nav-submenu--areas a{font-size:.9rem}}
@media(max-width:850px){.coverage-layout{grid-template-columns:1fr;gap:28px}.coverage-geography{max-width:620px;width:100%;margin-inline:auto}.coverage-overview{padding-top:42px;padding-bottom:48px}.coverage-towns a{font-size:1.3rem}.coverage-towns ol{gap:4px 26px}}
@media(max-width:550px){.coverage-label{display:none}.coverage-number{display:block;font:700 23px Arial,sans-serif;fill:white}.coverage-pin{r:19;stroke-width:2}.coverage-note{font-size:.875rem}.coverage-towns a{font-size:1.05rem;min-height:48px;gap:7px}.coverage-towns ol{gap:0 16px}.coverage-photo-credit{left:14px;right:auto;bottom:12px;font-size:.75rem}.photo-hero--areas{--hero-focus:50% 50%}}

/* One discreet attribution destination in each footer. */
.footer-photo-credits{padding-top:12px;padding-bottom:20px;font-size:.8rem;line-height:1.5}
.footer-photo-credits a{color:#c3d1d7;text-decoration:underline;text-underline-offset:3px}

/* Numbered service overview: copy and bullets beside real project photography. */
.service-detail.service-detail--illustrated{grid-template-columns:58px minmax(0,1fr) minmax(0,.95fr);gap:36px;align-items:start;padding:56px 0}
.service-detail-copy ul{margin-top:24px;padding-left:18px}.service-detail-photo{margin:0;align-self:center}.service-detail-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:5px}.service-detail-photo--portrait{justify-self:center;width:min(100%,330px)}.service-detail-photo--portrait img{aspect-ratio:3/4;object-fit:contain}
@media(max-width:900px){.service-detail.service-detail--illustrated{grid-template-columns:42px minmax(0,1fr);gap:20px}.service-detail-photo{grid-column:2;max-width:620px}.service-detail-copy ul{grid-column:auto}}
@media(max-width:550px){.service-detail.service-detail--illustrated{grid-template-columns:minmax(0,1fr);padding:36px 0;gap:18px}.service-detail-photo{grid-column:1}.service-detail-photo--portrait{width:280px;max-width:100%}.service-detail-copy ul{margin-top:18px}}

/* Full equipment photographs in the editorial service overview. */
.service-detail-photo{width:min(100%,380px);justify-self:center}.service-detail-photo img{height:auto;aspect-ratio:auto;object-fit:initial}.service-detail-photo--portrait{width:min(100%,330px)}

/* The air-conditioning service photograph is deliberately shown in full. */
#air-conditioning .service-detail-photo{width:min(100%,560px);background:#eaf8fc}
#air-conditioning .service-detail-photo img{width:100%;height:auto;aspect-ratio:16/9;object-fit:contain}

/* Homepage: preserve the portrait installation instead of zooming it to banner width. */
.hero .hero-media img{position:absolute;right:0;top:0;width:auto;height:100%;max-width:none;object-fit:initial}
.hero .hero-media::after{background:linear-gradient(90deg,#091c29 0%,#091c29 35%,rgba(9,28,41,.82) 49%,rgba(9,28,41,.12) 75%,rgba(9,28,41,.04))}
.hero h1{max-width:760px;font-size:clamp(2.4rem,4.6vw,4.5rem)}
.hero .lead{max-width:650px}
.hero .hero-index{bottom:22px}
@media(max-width:760px){
.hero .hero-media img{width:100%;height:auto;max-width:100%}
.hero .hero-media::after{background:linear-gradient(180deg,rgba(9,28,41,.08) 0%,rgba(9,28,41,.08) 25%,rgba(9,28,41,.74) 48%,#091c29 67%)}
.hero .hero-body{padding-top:340px;padding-bottom:42px}
.hero h1{font-size:clamp(2.35rem,8.8vw,3.6rem);line-height:1.08}
.hero .lead{font-size:1.05rem}
}
.hero .hero-media img{mask-image:linear-gradient(90deg,transparent,#000 24%)}@media(max-width:760px){.hero .hero-media img{mask-image:none}}

/* Subject-preserving image layouts: natural proportions, without letterbox panels. */
.recovered-content .service-photo{justify-self:center;width:min(100%,380px)}
.recovered-content .service-photo img{max-height:none;height:auto;object-fit:initial}
.image-block img{height:auto;object-fit:initial}
.service-card .service-image{height:auto;aspect-ratio:auto;object-fit:initial}
.project-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;align-items:start}
.project-card:nth-child(n){grid-column:auto;grid-row:auto}
.project-card img{display:block;height:auto;object-fit:initial}.project-card:hover img{transform:none}
.case-summary>img{height:auto;object-fit:initial}
@media(max-width:650px){.project-grid{grid-template-columns:1fr}.project-card{max-width:390px;width:100%;justify-self:center}}
@media(max-width:550px){.case-summary>img{height:auto;width:min(100%,360px);justify-self:center}}
@media(max-width:760px){.hero .hero-media img{mask-image:linear-gradient(#000 80%,transparent)}}

/* Retain complete equipment in integrated section banners. */
.photo-hero--services .photo-hero-media img,.photo-hero--projects .photo-hero-media img,.photo-hero--sectors .photo-hero-media img{position:absolute;right:0;top:0;height:100%;width:auto;object-fit:initial;mask-image:linear-gradient(90deg,transparent,#000 23%)}
@media(max-width:650px){.photo-hero--services .photo-hero-media img,.photo-hero--projects .photo-hero-media img,.photo-hero--sectors .photo-hero-media img{width:100%;height:auto;mask-image:linear-gradient(#000 76%,transparent)}.photo-hero--sectors.page-hero{padding-top:340px;min-height:780px}}

/* Sector photography in open editorial rows. */
.sector-image-context{color:var(--ink-2);margin:0 0 12px}
.sector-grid{display:block}.sector-card.sector-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:48px 0;background:transparent}
.sector-feature .sector-photo{margin:0}.sector-photo img{display:block;width:100%;height:auto;border-radius:5px}.sector-feature h2{font-size:clamp(1.8rem,2.6vw,2.7rem)}.sector-feature ul{margin-top:20px}
@media(max-width:760px){.sector-card.sector-feature{grid-template-columns:1fr;gap:26px;padding:36px 0}.sector-feature .sector-photo{grid-row:1}.sector-image-context{font-size:.95rem}}

/* Complete coverage: equal numbered locations tied to the alphabetical list. */
.coverage-map--complete .coverage-number{display:block;font:700 18px Arial,sans-serif;fill:#fff}.coverage-map--complete .coverage-pin{r:17;stroke-width:2}.coverage-leader{stroke:#087eae;stroke-width:1.5}.coverage-location{fill:#087eae}.coverage-towns a{font-size:clamp(1rem,1.25vw,1.25rem);min-height:40px;padding:6px 0}.coverage-layout{align-items:center}
.area-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 28px}.area-list a{color:#fff;font-size:1.05rem;padding:8px 0;text-decoration:none;border-bottom:1px solid #ffffff30}.area-list a:hover,.area-list a:focus-visible{text-decoration:underline;text-underline-offset:5px}
@media(max-width:650px){.area-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 20px}.area-list a{font-size:1rem}.coverage-towns a{font-size:1rem;min-height:44px}.coverage-map--complete .coverage-number{font-size:18px}.coverage-map--complete .coverage-pin{r:17}}

/* Direct links from each service to its existing detail pages */
.service-context-links{display:flex;flex-wrap:wrap;gap:4px 24px;margin-top:22px}.service-context-links a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;font-weight:650;text-decoration:underline;text-underline-offset:5px;color:var(--blue-deep,#087eae)}.service-context-links a:hover{text-decoration-thickness:2px}.complementary-services{padding-top:38px;border-top:1px solid #d8e1e5}.complementary-services h2{font-size:28px}.complementary-services .service-context-links{margin-top:12px}
