/* Shared bounds use fixed/fluid gutters, never viewport-percent padding in a capped box. */
:root{--content-max:1760px;--frame-max:2240px;--gutter:clamp(20px,4vw,88px);--frame-gutter:clamp(12px,1.6vw,44px);--layout-width:var(--content-max);--layout-gutter:0px}
body{min-width:320px;overflow-wrap:break-word}
#main :is(.section,.inner-heading,.projects-intro,.services-editorial,.services-technology,.company-opening,.case-heading,.visual-gallery-opening,.map-opening),.footer-main{width:calc(100% - 2 * var(--gutter));max-width:var(--content-max);margin-inline:auto;padding-inline:0}
#main :is(.section,.inner-heading,.projects-intro,.services-editorial,.services-technology,.company-opening,.case-heading,.visual-gallery-opening)>*,.footer-main>*{min-width:0}
#main[data-page=home] .hero,#main .company-cover,#main .company-outlook,#main .case-hero,#main .project-atlas,.cta-section,#main .services-opening{width:calc(100% - 2 * var(--frame-gutter));max-width:var(--frame-max);margin-inline:auto}
.utility,.header{padding-inline:max(var(--gutter),calc((100% - var(--frame-max))/2 + var(--gutter)))}
.header .brand{width:clamp(215px,19vw,310px);max-width:none;flex:0 0 auto;animation:none;transform:none}
.header .brand:before,.header .brand:after{display:none}
.header .brand img,.header .brand:hover img,.header .brand:focus-visible img{animation:none;transform:none;filter:none;transition:none}
#main[data-page=home] .hero{height:clamp(650px,calc(100svh - 150px),1060px);min-height:0;max-height:none;display:flex;align-items:center}
#main[data-page=home] .hero-content{width:100%;max-width:none;padding:clamp(42px,5vw,112px) clamp(28px,5%,120px) 140px}
#main[data-page=home] .hero h1{font-size:clamp(64px,6.15vw,142px);max-width:16ch;line-height:1.04;overflow-wrap:normal}
#main[data-page=home] .hero-copy{font-size:clamp(14px,1.02vw,20px);max-width:42ch;margin-top:clamp(22px,2vw,36px)}
#main[data-page=home] .hero-widget{right:clamp(24px,3vw,72px);bottom:clamp(24px,3vw,60px);width:clamp(260px,19vw,360px);border-radius:14px}
#main[data-page=home] .hero-pagination{right:clamp(30px,3.5vw,80px);bottom:clamp(240px,17vw,300px)}
#main[data-page=home] .hero-bottom{left:clamp(28px,5%,120px);bottom:clamp(25px,3vw,56px);font-size:clamp(8px,.6vw,11px)}
.energy-strip{width:calc(100% - 2 * var(--gutter));max-width:var(--content-max);margin-inline:auto}
#main .projects-intro>p{margin-inline:auto}
.footer-bottom{width:calc(100% - 2 * var(--gutter));max-width:var(--content-max);margin-inline:auto;flex-wrap:wrap;align-items:center;font-size:11px}
.footer-bottom>div{flex-wrap:wrap;align-items:center}
.footer-main{gap:clamp(24px,3vw,72px);grid-template-columns:1.2fr .8fr .9fr 1.1fr}
.footer-col a,.footer-col p{overflow-wrap:anywhere}
.agency-credit{width:calc(100% - 2 * var(--gutter));max-width:var(--content-max);margin:auto;padding:18px 0 25px;border-top:1px solid var(--line);font-size:clamp(11px,.75vw,14px);line-height:1.8;color:var(--muted);text-align:center}
.agency-credit a{color:var(--ink);text-underline-offset:4px}.agency-credit a:hover{text-decoration:underline;color:var(--red)}
.cta-section{padding:clamp(36px,4vw,80px) clamp(28px,5%,112px);border-radius:24px}
.glass-atlas .atlas-stage{height:clamp(430px,36vw,800px)}
.glass-atlas .atlas-fallback img{opacity:1;filter:drop-shadow(0 3px #8e1218) drop-shadow(0 8px #9c171b) drop-shadow(0 16px 15px #8e121825)}
.glass-atlas .atlas-fallback-svg path{fill:#cb2428;stroke:#fff;stroke-opacity:.65;filter:drop-shadow(0 3px #8e1218)}
.glass-atlas .atlas-fallback-svg path.province-selected{fill:#e0272c;stroke-opacity:1;filter:drop-shadow(0 23px 6px #8e121855)}
.atlas-fallback-svg{transform:rotateX(24deg) rotateZ(-1deg)}
.atlas-city-labels{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.atlas-city-name{position:absolute;left:0;top:0;color:white;font-family:DM,Arial,sans-serif;font-size:var(--city-font,9px);font-weight:500;line-height:1;white-space:nowrap;text-shadow:0 1px 3px #69080a,0 0 2px #69080a;transform:translate(-50%,-50%);will-change:translate}
.atlas-city-name.is-selected{font-weight:700;z-index:2}
.atlas-fallback-svg .province-label-selected{transform:translateY(-27px)}
.atlas-fallback-svg text{fill:#fff;stroke:none;font-family:DM,Arial,sans-serif;font-size:8px;font-weight:500;text-anchor:middle;dominant-baseline:middle;pointer-events:none;paint-order:stroke;stroke:#85151a;stroke-width:.35px}
.atlas-top,.atlas-bottom{gap:20px;flex-wrap:wrap}
.atlas-location-list{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.map-opening{padding-block:clamp(28px,3vw,58px) 0}
.map-opening>.breadcrumb{margin-bottom:30px}
.map-opening-grid{display:grid;grid-template-columns:1.5fr .7fr;align-items:end;gap:clamp(30px,6vw,150px)}
.map-opening h1{font-size:clamp(48px,5.5vw,108px);font-weight:400;line-height:1.06;letter-spacing:-.06em}
.map-opening h1 .serif{color:var(--red)}
.map-opening-aside>p{font-size:clamp(14px,1vw,19px);line-height:1.8;max-width:32ch;color:var(--muted)}
.map-metrics{display:flex;gap:40px;margin-top:25px}
.map-metrics>span{display:flex;gap:12px;align-items:baseline;font-size:12px;color:var(--muted)}
.map-metrics strong{font-family:Manrope;font-size:clamp(36px,3vw,58px);font-weight:400;color:var(--red);letter-spacing:-.06em}
.map-explorer-toolbar{display:grid;grid-template-columns:1fr minmax(140px,.5fr) minmax(220px,.8fr);gap:30px;align-items:center;border-top:1px solid var(--line);margin-top:38px;padding:22px 0}
.map-explorer-toolbar>span{display:flex;align-items:center;gap:30px;font-size:10px;letter-spacing:.08em}.map-explorer-toolbar>span>b{font-size:24px;font-weight:400;color:var(--red)}
.map-explorer-toolbar .field{margin:0;min-width:0}.map-explorer-toolbar label{font-size:10px}.map-explorer-toolbar select{padding:12px 36px 12px 14px;border-radius:9px;min-width:0;max-width:100%;font-size:13px}
.map-explorer .project-atlas{border-radius:22px;border-color:#e8d0d1}
.map-explorer .atlas-stage{height:clamp(440px,38vw,850px)}
.map-explorer .atlas-top{padding-block:20px}
.map-project-directory .section-head{border-top:1px solid var(--line);padding-top:28px}
.map-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.map-directory-card{min-width:0;border-bottom:1px solid var(--line);padding-bottom:18px}
.map-directory-select{border:0;padding:0;background:none;text-align:left;width:100%;display:grid;grid-template-columns:90px minmax(0,1fr) 20px;gap:18px;align-items:center}
.map-directory-select>img{width:90px;height:104px;object-fit:cover;border-radius:8px}.map-directory-select>span{min-width:0}.map-directory-select small{display:block;font-size:8px;color:var(--muted);line-height:1.6}.map-directory-select strong{display:block;font-family:Manrope;font-size:clamp(25px,2vw,36px);letter-spacing:-.04em;font-weight:400;margin:8px 0}.map-directory-select em{font-size:12px;font-style:normal;color:var(--muted)}.map-directory-select>b{font-size:20px;font-weight:400;color:var(--red)}
.map-directory-select.active strong{color:var(--red)}
.map-directory-card>a{display:flex;justify-content:space-between;align-items:center;font-size:11px;margin-top:18px}.map-directory-card>a:hover{color:var(--red)}
@media(min-width:1600px){
 :root{--content-max:1920px;--frame-max:2560px}
 #main .section-head h2,#main .collection-heading h2{font-size:clamp(58px,3.6vw,84px);max-width:15ch}
 #main .section-head>p,.visual-journal .section-head>div:last-child>p{font-size:clamp(16px,.95vw,20px);max-width:34ch}
 #main .inner-heading h1,.services-opening h1,.company-title h1{font-size:clamp(88px,5.8vw,128px)}
 #main .inner-heading>p{font-size:18px;max-width:58ch}
 #main .eyebrow,.cta-section .eyebrow{font-size:11px}
 #main .button,.header-cta{font-size:14px;min-height:56px}
 #main .text-link{font-size:14px}
 .desktop-nav>a,.nav-dropdown>a{font-size:14px}
 .header{height:112px}.header.scrolled{height:90px}.utility{font-size:12px}
 .solution-visual{height:clamp(250px,19vw,390px)}
 .solution-content{padding:32px}.solution-content h3{font-size:clamp(30px,2vw,44px)!important}.solution-content p{font-size:16px;max-width:43ch}
 .home-about .brand-plaque h3{font-size:40px}.home-about .about-body h2{font-size:clamp(46px,3vw,68px)}.home-about .about-body p{font-size:17px;max-width:65ch}
 #main[data-page=home] .about-photo{height:clamp(340px,24vw,520px)}
 .home-project-wall .project-image{height:clamp(280px,20vw,420px)}.home-project-wall .project-card:first-child .project-image{height:clamp(570px,39vw,850px)}
 .home-project-wall .project-info h3{font-size:30px}.home-project-wall .project-card:first-child .project-info h3{font-size:36px}.home-project-wall .project-info p{font-size:15px}
 .process-photo{min-height:600px}.process-edition .step{padding:34px 0}.process-edition .step h3{font-size:32px}.process-edition .step p{font-size:16px;max-width:45ch}
 .project-ledger .editorial-image{height:clamp(520px,34vw,750px)}.project-ledger .editorial-copy h3{font-size:clamp(70px,5.5vw,118px)}.project-ledger .editorial-title{font-size:17px;max-width:38ch}.project-ledger .editorial-client{font-size:20px}
 .services-opening-image{min-height:740px}.service-chapter-image{height:clamp(400px,25vw,560px)}.service-chapter-description>p{font-size:17px}.service-chapter-description li{font-size:14px}.service-chapter-heading h2{font-size:52px}
 .services-index h2{font-size:42px}.services-index>div>p,.services-index nav>a{font-size:14px}
 .company-cover{height:clamp(620px,36vw,820px)}.company-outlook{height:650px}.company-story-copy>p,.company-lead p{font-size:18px}
 .faq-list summary{font-size:20px}.faq-list details>p{font-size:17px;max-width:75ch}
 .visual-tile>strong{font-size:30px}.visual-category{font-size:10px}.footer-col h4{font-size:12px}.footer-col a,.footer-col p,.footer-brand p{font-size:15px}
 .solar-viewport{height:clamp(440px,30vw,660px)}.calc-bespoke .calc-controls,.calc-bespoke .calc-result{padding:40px}.calc-bespoke .calc-controls label{font-size:14px}
 .contact-edition .contact-aside{padding:44px}.contact-edition .contact-aside h3{font-size:56px}.contact-edition .contact-aside>p{font-size:17px;max-width:38ch}.contact-form-panel{padding:46px}.contact-form-panel label{font-size:14px}
}
@media(min-width:2400px){:root{--content-max:2240px;--frame-max:2880px;--gutter:112px}.glass-atlas .atlas-stage{height:900px}.map-explorer .atlas-stage{height:940px}.map-directory-grid{gap:45px}.footer-main{padding-block:72px 45px}}
@media(max-width:1180px){.desktop-nav{display:none}.menu-button{display:flex}.header .brand{width:250px}.footer-main{grid-template-columns:repeat(3,minmax(0,1fr))}.footer-brand{grid-column:1/-1;display:flex;justify-content:space-between;gap:24px;align-items:center}.map-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){#main[data-page=home] .hero h1{font-size:clamp(62px,8.3vw,82px)}.map-opening-grid{grid-template-columns:1fr;gap:24px}.map-opening-aside{display:flex;justify-content:space-between;gap:30px;align-items:center}.map-metrics{margin:0}.map-explorer-toolbar{grid-template-columns:1fr 1.4fr;gap:16px}.map-explorer-toolbar>span{grid-column:1/-1}.atlas-location-list{grid-template-columns:repeat(3,minmax(0,1fr))}.glass-atlas .atlas-story-copy{min-width:0}}
@media(max-width:700px){
 :root{--gutter:22px;--frame-gutter:10px}
 .header,.utility{padding-inline:var(--gutter)}.header .brand{width:min(225px,calc(100vw - 150px));max-width:none}.header .header-cta{display:none}
 #main[data-page=home] .hero{height:clamp(620px,calc(100svh - 112px),860px);min-height:0;border-radius:25px}
 #main[data-page=home] .hero-content{padding:36px 24px 260px;align-self:start}
 #main[data-page=home] .hero h1{font-size:clamp(39px,10.4vw,68px);max-width:16ch;line-height:1.08}
 #main[data-page=home] .hero .eyebrow{font-size:7px;letter-spacing:.045em;max-width:30ch;line-height:1.7;margin-bottom:22px}
 #main[data-page=home] .hero-copy{font-size:13px;max-width:34ch;margin-top:22px}
 #main[data-page=home] .hero-actions{gap:18px;margin-top:24px}
 #main[data-page=home] .hero-widget{width:calc(100% - 48px);right:24px;bottom:44px;padding:19px 20px;border-radius:14px;min-height:0}
 #main[data-page=home] .hero-widget h3{font-size:23px;max-width:230px;padding-right:28px}
 #main[data-page=home] .hero-widget .eyebrow{font-size:6px;max-width:none;margin-bottom:9px}
 #main[data-page=home] .hero-widget .circle{right:18px;bottom:18px}
 #main[data-page=home] .hero-pagination{bottom:190px;right:24px}
 #main[data-page=home] .hero-bottom{left:24px;bottom:14px;font-size:5px;gap:7px;max-width:calc(100% - 48px);flex-wrap:wrap}
 #main[data-page=home] .orbit{display:none}
 #main .section-head h2{font-size:clamp(32px,8.4vw,44px)}
 .footer-main{grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 22px}.footer-brand{display:block}.footer-main .footer-brand p{margin-top:20px}.footer-bottom{font-size:10px;gap:18px;align-items:start}.footer-bottom>div{gap:16px;line-height:1.8}.footer-bottom>span{line-height:1.8}
 .cta-section{padding:32px 25px;border-radius:20px}.agency-credit{font-size:10px;padding:17px 0 24px}
 .glass-atlas .atlas-stage,.map-explorer .atlas-stage{height:clamp(300px,72vw,460px)}.atlas-top{padding:16px;gap:15px}.atlas-controls{flex-wrap:wrap;justify-content:start;width:auto}.atlas-controls button{font-size:9px;padding:9px 11px}
 .atlas-location-list{grid-template-columns:repeat(2,minmax(0,1fr))}.atlas-location-list button{padding:17px 14px;font-size:12px}.atlas-bottom{padding:17px;gap:13px}.atlas-city-name{font-size:6px}.atlas-city-name:not(.is-project):not(.is-selected){display:none}
 .map-opening{padding-top:27px}.map-opening>.breadcrumb{margin-bottom:26px}.map-opening h1{font-size:clamp(39px,9.8vw,64px)}.map-opening-aside{align-items:start;gap:20px}.map-opening-aside>p{font-size:12px;max-width:25ch}.map-metrics{gap:18px}.map-metrics>span{display:block;font-size:10px}.map-metrics strong{font-size:34px;display:block;margin-bottom:6px}.map-explorer-toolbar{margin-top:27px;padding:20px 0;grid-template-columns:1fr;gap:16px}.map-explorer-toolbar>span{font-size:8px;justify-content:space-between}.map-explorer-toolbar .field{display:grid;grid-template-columns:85px minmax(0,1fr);gap:15px;align-items:center}.map-explorer-toolbar label{margin:0;font-size:10px}.map-explorer-toolbar select{font-size:12px;min-height:44px}
 .map-directory-grid{grid-template-columns:1fr;gap:22px}.map-directory-select{grid-template-columns:90px minmax(0,1fr) 20px}.map-directory-select strong{font-size:29px}.map-directory-select em{font-size:12px}.map-project-directory .section-head>p{font-size:12px}
}
@media(max-width:380px){:root{--gutter:18px}.header .brand{width:calc(100vw - 145px)}#main[data-page=home] .hero-content{padding-inline:20px}#main[data-page=home] .hero h1{font-size:38px}#main[data-page=home] .hero-actions{gap:14px}#main[data-page=home] .hero-actions .button{font-size:10px}#main[data-page=home] .hero-actions .text-link{font-size:9px}.map-opening-aside{display:block}.map-metrics{margin-top:18px}.map-metrics>span{display:flex}.map-metrics strong{margin:0}}
