@media(min-width:1600px){.hero-inner{padding-inline:55px}.hero h1{font-size:clamp(6.4rem,6.6vw,8rem)}}
@media(max-width:1160px){.desktop-nav{gap:14px}.brand{min-width:182px}.brand-type b{font-size:20px}.brand-mark{width:38px}.header-cta{padding:9px 12px}.footer-grid{gap:32px}}
@media(max-width:990px){.site-header{height:80px;padding-inline:20px}.site-header.is-scrolled,.site-header.menu-open{height:78px}.desktop-nav,.site-header>.header-cta{display:none}.menu-toggle{display:flex}.mobile-nav:not([hidden]){display:block}.intro-grid{gap:48px}.intro-photo img{height:460px}.service-feature-grid{grid-template-columns:1fr 1fr}.service-cover{min-height:470px}.service-cover.mini{min-height:223px}.values-band,.principles,.contact-steps{gap:18px}.service-row{gap:40px}.service-row-img img,.service-row-img.tall img{height:440px}.service-row-img.short img{height:390px}.service-dark-grid{gap:40px}.work-card{grid-column:span 6}.work-card.wide,.work-card.narrow{grid-column:span 6}.work-card .work-photo,.work-card.wide .work-photo,.work-card.narrow .work-photo{height:430px}.footer-grid{grid-template-columns:1fr 1fr;row-gap:45px}.contact-info{gap:20px}}
@media(max-width:720px){.container{padding-inline:19px}.section{padding-block:79px}.section-sm{padding-block:65px}.section-head{display:block;margin-bottom:31px}.section-head p,.section-head .inline-link{margin-top:18px}.hero{min-height:550px;height:100svh;background-position:64% center}.hero::before{background:linear-gradient(90deg,rgba(12,25,17,.85) 0%,rgba(12,25,17,.64) 60%,rgba(12,25,17,.32))}.hero-inner{padding-inline:19px;padding-top:80px}.hero h1{font-size:clamp(2.8rem,10.4vw,5rem);line-height:1.04;margin-bottom:30px;letter-spacing:-.057em;max-width:590px}.hero-actions .btn{min-width:0!important;flex:1;padding:13px 15px}.hero .hero-actions{max-width:440px;gap:8px}.intro-grid,.services-intro,.service-row,.service-dark-grid,.about-manifesto,.about-milestones,.contact-info,.region-grid,.photo-details{grid-template-columns:1fr;gap:34px}.intro-photo{order:2}.intro-photo img{height:auto;max-height:680px;aspect-ratio:4/5;object-fit:cover}.intro-photo::after{right:-7px;bottom:-9px}.intro-copy{max-width:none}.service-feature-grid{grid-template-columns:1fr;gap:14px}.feature-stack{gap:14px}.service-cover{min-height:480px}.service-cover.mini{min-height:360px}.service-cover .service-overlay{padding:25px}.service-cover.mini .service-overlay h3{font-size:1.6rem}.values-band,.principles,.contact-steps{grid-template-columns:1fr;gap:35px}.value-item{padding-top:20px}.quote-line{margin-bottom:47px}.work-showcase,.before-after{grid-template-columns:1fr;gap:22px}.work-showcase .showcase-large{height:auto;aspect-ratio:4/5}.work-showcase .showcase-right img{height:auto;aspect-ratio:4/3}.work-showcase .showcase-note{min-height:200px}.process-item{grid-template-columns:55px 1fr;gap:8px 16px}.process-item p{grid-column:2}.image-callout{min-height:540px}.image-callout h2{font-size:clamp(2.2rem,8vw,3.9rem)}.faq-list details p{padding-right:8px}.cta-content{display:block}.cta-content .btn{margin-top:30px}.cta-section{padding-block:84px}.service-row{padding-block:50px}.service-row.reverse .service-row-img{order:0}.service-row-img img,.service-row-img.tall img,.service-row-img.short img{height:auto;aspect-ratio:4/5;max-height:700px}.number-huge{font-size:7rem}.service-dark-photos{grid-template-columns:1fr;gap:15px}.service-dark-photos img,.service-dark-photos img:nth-child(2){height:auto;aspect-ratio:4/5;margin:0}.portfolio-intro{display:block}.portfolio-intro p{margin-top:20px}.work-grid{grid-template-columns:1fr;gap:32px}.work-card,.work-card.wide,.work-card.narrow{grid-column:1}.work-card .work-photo,.work-card.wide .work-photo,.work-card.narrow .work-photo{height:auto;aspect-ratio:4/5}.before-after img{height:auto;aspect-ratio:4/5}.about-photos{grid-template-columns:1fr}.about-photos img,.about-photos img:nth-child(2){height:auto;aspect-ratio:4/5}.principle h3{margin-top:30px}.about-milestones img,.photo-details img{height:auto;aspect-ratio:4/5}.contact-info{gap:14px}.contact-card.primary{min-height:360px}.contact-card.secondary{gap:30px}.map-wrap,.map-wrap iframe{height:390px;min-height:390px}.map-meta{display:block}.map-meta .inline-link{margin-top:15px}.footer-grid{grid-template-columns:1fr 1fr;gap:35px 18px}.footer-brand{grid-column:1/-1}.footer-bottom{align-items:flex-start;flex-direction:column;gap:4px;padding-block:21px}.float-actions{bottom:15px;right:13px}.float-actions a{width:46px;height:46px}.city-map-art{min-height:285px}}
@media(max-width:400px){.site-header{padding-inline:14px}.brand{gap:8px;min-width:0}.brand-mark{width:33px;height:40px}.brand-type b{font-size:19px}.brand-type small{font-size:9px}.hero h1{font-size:clamp(2.65rem,10.5vw,3.3rem)}.hero-inner{padding-inline:17px}.btn{font-size:12px}.hero-actions{gap:7px}.container{padding-inline:17px}.section{padding-block:67px}.cta-section{padding-block:65px}.footer-grid{grid-template-columns:1fr 1fr}.contact-phone{font-size:clamp(1.72rem,8.5vw,2.5rem)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}.js-motion .reveal{opacity:1;transform:none}}

@media(max-width:990px){.mobile-nav{max-height:calc(100dvh - 78px);overflow-y:auto;overscroll-behavior:contain}}


/* ================================================
   Visual QA pass — premium responsive refinements
   ================================================ */
:root{--radius:12px;--radius-lg:20px;--page:1280px}
body{font-size:16px;line-height:1.7}
p{line-height:1.74}
h1,h2,h3{overflow-wrap:normal;text-wrap:pretty}
.section{padding-block:clamp(80px,8vw,120px)}
.container>*{min-width:0}
.section-head{align-items:end}
.section-head h2{font-size:clamp(2.1rem,4.1vw,4.05rem)}
.eyebrow{letter-spacing:.13em;font-size:12px}
.btn{border-radius:5px;font-size:13.5px;min-height:54px}
.site-header{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.site-header.is-scrolled,.site-header.menu-open{background:rgba(20,34,26,.97)}
/* Service feature cards: one large hero at left and two stacked at right. */
.service-feature-grid{grid-template-columns:minmax(0,1.16fr) minmax(0,.84fr);align-items:stretch;gap:22px}
.service-feature-grid>.service-cover{min-width:0;min-height:560px;height:100%}
.service-feature-grid>.feature-stack{min-width:0;grid-template-columns:minmax(0,1fr);grid-template-rows:repeat(2,minmax(0,1fr));gap:22px}
.service-feature-grid .feature-stack>.service-cover{min-height:0;height:100%}
.service-cover .service-overlay{z-index:1}
.service-cover img{z-index:-2}
.service-cover::before{z-index:-1}
.service-cover .service-overlay h3{max-width:520px;line-height:1.14}
.service-cover.mini .service-overlay h3{font-size:clamp(1.45rem,2vw,2.12rem)}
.service-cover.mini .service-overlay{padding:28px}
.service-feature-grid .inline-link{margin-top:4px}
/* Stronger headings with comfortable line-height on complex pages. */
.service-row-text h2{font-size:clamp(2.1rem,3.4vw,3.45rem)}
.service-row,.about-manifesto,.region-grid,.photo-details{min-width:0}
.service-row>*{min-width:0}
.work-grid>*{min-width:0}
.work-card figcaption{padding-top:18px}
/* Render all content immediately, including if scroll observers are delayed. */
.js-motion .reveal,.js-motion .reveal.is-visible{opacity:1;transform:none}
.js-motion .reveal.is-visible{animation:gentle-in .5s cubic-bezier(.2,1,.4,1) both}
@keyframes gentle-in {from{opacity:.86;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.js-motion .reveal.is-visible{animation:none}}
@media(min-width:991px){
  .service-feature-grid>.feature-stack{height:560px}
  .service-feature-grid>.service-cover{height:560px}
}
@media(max-width:990px){
 .service-feature-grid{grid-template-columns:minmax(0,1fr) minmax(0,.84fr);gap:16px}
 .service-feature-grid>.service-cover,.service-feature-grid>.feature-stack{height:520px;min-height:520px}
 .service-feature-grid>.feature-stack{grid-template-rows:repeat(2,minmax(0,1fr))}
 .service-cover.mini .service-overlay{padding:20px}
 .service-cover.mini .service-overlay h3{font-size:clamp(1.28rem,2.7vw,1.8rem)}
 .service-cover.mini .service-overlay .inline-link{font-size:11px}
}
@media(max-width:720px){
 .site-header{height:73px;padding-inline:16px}
 .site-header.is-scrolled,.site-header.menu-open{height:73px}
 .brand{min-width:0;gap:8px}
 .brand-mark{width:34px;height:43px}
 .brand-type b{font-size:19px}
 .brand-type small{font-size:9px}
 .container{padding-inline:20px}
 .section{padding-block:76px}
 .hero{min-height:550px}
 .hero-inner{padding-inline:20px;padding-top:75px}
 .hero h1{font-size:clamp(2.45rem,9.5vw,4.3rem);letter-spacing:-.055em;line-height:1.06;overflow-wrap:break-word}
 .hero-actions .btn{min-height:52px}
 .service-feature-grid{grid-template-columns:minmax(0,1fr);gap:16px}
 .service-feature-grid>.service-cover{height:auto;min-height:420px;aspect-ratio:4/4.4}
 .service-feature-grid>.feature-stack{height:auto;min-height:0;grid-template-columns:minmax(0,1fr);grid-template-rows:none;gap:16px}
 .service-feature-grid>.feature-stack>.service-cover{height:auto;min-height:340px;aspect-ratio:4/3.5}
 .service-cover .service-overlay,.service-cover.mini .service-overlay{padding:26px}
 .service-cover.mini .service-overlay h3{font-size:clamp(1.6rem,6.5vw,2.25rem)}
 .service-cover .service-overlay h3{font-size:clamp(1.8rem,7.1vw,2.3rem)}
 .section-head h2{font-size:clamp(2.1rem,8vw,3.5rem)}
 .service-row-img img,.service-row-img.tall img,.service-row-img.short img{aspect-ratio:4/4.2}
 .service-row.reverse .service-row-img{order:0}
 .footer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:380px){
 .container{padding-inline:16px}
 .hero-inner{padding-inline:16px}
 .hero h1{font-size:clamp(2.15rem,9.5vw,3rem)}
 .hero .hero-actions{gap:8px}
 .hero-actions .btn{padding-inline:9px;font-size:12px}
 .brand-type b{font-size:17px}
 .section-head h2{font-size:clamp(1.95rem,8vw,2.8rem)}
 .service-feature-grid>.service-cover{min-height:390px}
 .service-feature-grid>.feature-stack>.service-cover{min-height:300px}
 .footer-grid{grid-template-columns:1fr 1fr;column-gap:14px}
}
/* Mobile overflow fix: intrinsic aspect ratios must not widen grid tracks. */
@media(max-width:720px){
  .service-feature-grid,
  .service-feature-grid > *,
  .service-feature-grid .service-cover{min-width:0;max-width:100%;width:100%}
  .service-feature-grid > .service-cover{height:440px;min-height:0;aspect-ratio:auto}
  .service-feature-grid > .feature-stack{height:auto;min-height:0}
  .service-feature-grid > .feature-stack > .service-cover{height:335px;min-height:0;aspect-ratio:auto}
  .service-cover .service-overlay h3{overflow-wrap:break-word}
}
@media(max-width:380px){
  .service-feature-grid > .service-cover{height:405px}
  .service-feature-grid > .feature-stack > .service-cover{height:310px}
}

/* Mobile menu CTA: compact, aligned action — overrides generic menu anchor styles. */
@media (max-width: 990px) {
  .mobile-nav .btn.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto;
    min-width: 0;
    min-height: 46px;
    margin: 24px 0 0 10px;
    padding: 11px 20px;
    gap: 10px;
    border: 1px solid transparent;
    border-radius: 6px;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.2;
    letter-spacing: .01em;
    text-align: center;
    white-space: nowrap;
    box-shadow: 0 5px 14px rgba(0, 0, 0, .10);
  }
  .mobile-nav .btn.btn-primary svg {
    display: block;
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
  }
}
