/* Additive page system. The established palette, fonts and square controls stay in architecture.css. */
.navigation-links a[aria-current=page]{color:var(--action);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:8px}
.navigation-links{gap:24px}.site-navigation{gap:28px}
.link-arrow{display:inline-block;margin-left:.4em;font-family:var(--font-body);font-weight:400}
.introduction-grid{max-width:920px}.introduction-grid h2{max-width:18ch}
.introduction-copy{max-width:65ch;margin-top:28px;font-size:20px;color:var(--secondary)}
.introduction-copy .text-link{margin-top:14px}
.company-introduction{padding-bottom:0}
.service-row dt a{display:inline-block;min-height:44px;line-height:1.4;text-decoration:none}
.service-row dt a:hover{text-decoration:underline}
.service-row .link-arrow{font-size:20px}
.catalog-more{margin-top:34px}
.work-perspectives{padding-block:0 clamp(76px,8vw,120px)}
.perspective-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:32px;align-items:start}
.perspective{text-decoration:none;min-width:0}
.perspective figure{overflow:hidden;background:var(--pale)}
.perspective img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform 450ms cubic-bezier(.16,1,.3,1)}
.perspective--wide img{aspect-ratio:3/2}
.perspective:last-child{margin-top:96px}
.perspective>span{display:block;padding-top:18px;font-size:23px;line-height:1.3}
.perspective:hover img{transform:scale(1.025)}
.perspective:hover>span{text-decoration:underline;text-underline-offset:6px}
.process-intro>.text-link{margin-top:24px}
.breadcrumbs{padding-top:28px;padding-bottom:12px;font-size:14px;color:var(--secondary)}
.breadcrumbs ol{display:flex;flex-wrap:wrap;gap:6px 12px;list-style:none;margin:0;padding:0}
.breadcrumbs li{display:flex;align-items:center;gap:12px}
.breadcrumbs li+li::before{content:'/';color:var(--secondary)}
.breadcrumbs a{display:inline-flex;min-height:36px;align-items:center}
.page-hero{padding-bottom:0}
.page-hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));align-items:center;min-height:465px}
.page-hero-copy{position:relative;z-index:1;grid-area:1/1/2/8;background:var(--white);padding:38px 44px 40px 0}
.page-hero h1,.contact-page-heading h1{font-size:clamp(3rem,5.4vw,5.25rem);font-weight:400;line-height:1.06;letter-spacing:-.035em}
.page-hero h1 span{display:block}.page-hero h1 span:first-child{color:var(--action)}
.page-hero-copy>p{max-width:39ch;margin-top:25px;font-size:20px;line-height:1.5;color:var(--secondary)}
.page-hero-copy>.text-link{margin-top:24px}
.page-hero-photo{grid-area:1/7/2/-1;height:465px;background:var(--pale);overflow:hidden}
.page-hero-photo img{width:100%;height:100%;object-fit:cover}
.editorial-intro{max-width:900px}.editorial-intro h2{max-width:20ch}
.editorial-intro>p{max-width:65ch;margin-top:26px;font-size:20px;color:var(--secondary)}
.editorial-intro>.text-link{margin-top:24px}
.panoramic-photo img{width:100%;aspect-ratio:12/5;object-fit:cover}
.company-facts{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:100px}
.company-facts h2{max-width:12ch}
.company-facts p{max-width:46ch;margin-top:24px;color:var(--secondary)}
.company-facts h3,.contact-location h3{font-size:17px;margin-bottom:14px}
address{font-style:normal;color:var(--secondary)}
.fact-contact{margin-top:36px}
.company-facts a{overflow-wrap:anywhere}
.project-close{background:var(--pale)}
.project-close h2{max-width:18ch}.project-close p{margin-top:24px;color:var(--secondary);max-width:60ch;font-size:19px}
.project-close .button{margin-top:30px}
.service-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:74px 48px}
.service-tile{min-width:0}.service-image-link{display:block;overflow:hidden}
.service-tile figure{background:var(--pale);overflow:hidden}
.service-tile img{width:100%;aspect-ratio:8/5;object-fit:cover}
.service-tile h2{max-width:none;margin-top:24px;font-size:clamp(1.6rem,2.5vw,2.25rem);line-height:1.22;letter-spacing:-.02em}
.service-tile h2 a{display:block;min-height:44px;text-decoration:none}
.service-tile h2 a:hover{text-decoration:underline}
.service-tile p{max-width:54ch;margin-top:12px;font-size:17px;color:var(--secondary)}
.scope-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(48px,9vw,136px)}
.scope-intro>p{max-width:48ch;margin-top:26px;font-size:20px;color:var(--secondary)}
.scope-sections section+section{margin-top:32px;padding-top:28px;border-top:1px solid var(--line)}
.scope-sections h3{font-size:23px;font-weight:400;line-height:1.3}
.scope-sections p{max-width:52ch;margin-top:14px;font-size:17px;color:var(--secondary)}
.prepare-layout{max-width:900px}
.prepare-layout h2{max-width:18ch}.prepare-layout p{max-width:60ch;margin-top:26px;color:var(--secondary);font-size:20px}
.prepare-layout .button{margin-top:26px}
.related-service{padding-block:66px}.related-service>p{font-size:16px;color:var(--secondary);margin-bottom:16px}
.related-service h2{max-width:24ch;font-size:clamp(2rem,3.5vw,3.25rem)}
.related-service h2 a{text-decoration:none}.related-service h2 a:hover{text-decoration:underline}
.related-service>.text-link{margin-top:18px}
.project-checklist{padding-left:24px;margin:24px 0 0;color:var(--secondary)}
.project-checklist li{padding-block:7px;font-size:18px}
.contact-page-heading{padding-top:36px;padding-bottom:62px}
.contact-page-heading h1{max-width:13ch;color:var(--action)}
.contact-page-heading p{max-width:50ch;margin-top:26px;color:var(--secondary);font-size:20px}
.contact-page-details{padding-bottom:12px}
.contact-page-details .office-contact h2,.contact-page-details .person-contact h2{font-size:17px;font-weight:400;line-height:1.5;letter-spacing:0;max-width:none;margin-bottom:18px}
.contact-location{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:center;gap:80px}
.contact-location img{width:100%;aspect-ratio:5/4;object-fit:cover}
.contact-location h2{max-width:14ch;font-size:clamp(2.5rem,3.7vw,3.5rem)}
.contact-location p{margin-top:24px;max-width:40ch;color:var(--secondary)}
.contact-location h3{margin-top:32px}
.faq-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px}
.faq-list details{border-top:1px solid var(--line)}
.faq-list summary{cursor:pointer;list-style:disclosure-closed;padding:22px 0;font-size:20px;font-weight:400;color:var(--action)}
.faq-list details[open] summary{list-style:disclosure-open}
.faq-list summary:hover{text-decoration:underline;text-underline-offset:5px}
.faq-list summary:focus-visible{outline:3px solid var(--ink);outline-offset:5px}
.faq-list p{padding-bottom:24px;max-width:58ch;font-size:17px;color:var(--secondary)}
.site-footer{padding-top:60px}
.footer-directory{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.65fr) minmax(0,1fr) minmax(0,1.15fr);gap:36px}
.footer-logo{display:block;width:190px;margin-bottom:20px}
.footer-area{font-size:15px;line-height:1.7;margin-top:20px;color:var(--secondary)}
.footer-directory h2{font-size:16px;font-weight:600;letter-spacing:0;line-height:1.4;margin-bottom:16px}
.footer-directory ul{list-style:none;margin:0;padding:0}
.footer-directory li a{display:inline-flex;align-items:center;min-height:36px;font-size:15px;text-decoration:none}
.footer-directory a:hover{text-decoration:underline}
.footer-office>a{display:block;min-height:36px;padding-top:5px;font-size:15px;overflow-wrap:anywhere}
.footer-office .footer-hq{margin-top:25px;margin-bottom:12px}
.footer-office address{font-size:15px;line-height:1.6}
.footer-bottom{display:flex;justify-content:space-between;gap:30px;margin-top:50px;padding-top:24px;border-top:1px solid var(--line);font-size:13px;color:var(--secondary)}
.footer-bottom a{flex-shrink:0;min-height:36px}
@media(max-width:1100px){.navigation-links{gap:18px}.site-navigation{gap:20px}.site-header-inner{gap:24px}.brand{width:180px}.page-hero h1{font-size:clamp(2.75rem,5.4vw,4.5rem)}.page-hero-copy{padding-right:30px}.footer-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 60px}.contact-location{gap:48px}.company-facts{gap:60px}}
@media(min-width:768px) and (max-width:960px){.site-header-inner{position:relative;min-height:80px;flex-wrap:wrap;padding-block:12px}.menu-toggle{display:inline-flex}.site-navigation{flex:1 0 100%;flex-wrap:wrap;padding-top:14px}.navigation-links{flex:1 0 100%;justify-content:space-between;gap:12px}.has-menu-js .site-navigation{position:absolute;inset:100% 0 auto;display:grid;padding:16px 20px 20px;border:1px solid var(--line);background:var(--white)}.has-menu-js .site-navigation:not([data-open=true]){display:none}}
@media(max-width:767px){
 .site-header-inner{gap:0 18px}.navigation-links{display:grid;grid-template-columns:1fr;gap:0}.navigation-links a{min-height:48px;font-size:18px}.site-navigation{gap:12px}
 .has-menu-js .site-navigation{max-height:calc(100dvh - 100px);overflow-y:auto}
 .company-introduction{padding-top:52px}.introduction-copy{font-size:18px;margin-top:22px}.introduction-grid h2{max-width:17ch}
 .perspective-grid{grid-template-columns:1fr;gap:32px}.perspective:last-child{margin-top:0}.perspective img,.perspective--wide img{aspect-ratio:4/3}.perspective>span{font-size:22px;padding-top:15px}.work-perspectives{padding-bottom:66px}
 .breadcrumbs{padding-top:18px;padding-bottom:6px;font-size:13px}.breadcrumbs ol{gap:2px 8px}.breadcrumbs li{gap:8px}
 .page-hero-grid{display:flex;flex-direction:column;min-height:0;align-items:stretch}
 .page-hero-copy{padding:26px 0 32px}.page-hero h1,.contact-page-heading h1{font-size:clamp(2.6rem,10.8vw,4.25rem);line-height:1.07}
 .page-hero-copy>p{font-size:18px;margin-top:22px;max-width:36ch}.page-hero-copy>.text-link{margin-top:18px}
 .page-hero-photo{height:auto;aspect-ratio:4/3}.page-hero-photo img{aspect-ratio:4/3}
 .editorial-intro>p{font-size:18px;margin-top:22px}.panoramic-photo img{aspect-ratio:4/3}
 .company-facts,.scope-layout,.prepare-layout,.contact-location,.faq-layout{grid-template-columns:1fr;gap:36px}
 .company-facts h2{max-width:17ch}.company-facts p{margin-top:20px}
 .service-directory{grid-template-columns:1fr;gap:48px}.service-tile h2{font-size:27px;margin-top:20px}.service-tile p{margin-top:9px}.service-tile img{aspect-ratio:4/3}
 .scope-intro>p,.prepare-layout p{font-size:18px;margin-top:20px}.scope-sections h3{font-size:23px}.prepare-layout h2{max-width:17ch}
 .related-service{padding-block:52px}.related-service h2{font-size:32px}
 .contact-page-heading{padding-top:28px;padding-bottom:42px}.contact-page-heading p{font-size:18px;margin-top:22px}.contact-page-details{padding-bottom:0}
 .contact-location h2{font-size:36px}.contact-location h3{margin-top:26px}
 .faq-list summary{font-size:19px;padding-block:22px}.faq-layout{gap:28px}
 .footer-directory{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 28px}.footer-identity,.footer-office{grid-column:1/-1}.footer-logo{width:180px}.footer-directory li a{min-height:44px;line-height:1.45;padding-block:5px}.footer-bottom{flex-direction:column;gap:18px;margin-top:36px}.footer-bottom p{max-width:48ch}.footer-bottom a{align-self:start}
}
@media(prefers-reduced-motion:reduce){.perspective img{transition:none}.perspective:hover img{transform:none}}
