.page-hero { position: relative; height: min(680px, 78vh); min-height: 530px; overflow: hidden; color: #fff; background: #0D472B; }
.page-hero:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(6,31,18,.8), rgba(6,31,18,.12)); }
.page-hero img { display: block; width: 100%; height: 100%; object-fit: cover; filter: brightness(.72) saturate(.7); }
.page-hero > div { position: absolute; z-index: 1; left: 10vw; bottom: 12%; }
.page-hero h1,.contact-page h1 { margin: 0; font-size: clamp(56px,7vw,104px); }
.page-hero h1 em,.contact-page h1 em { color: #dce0b6; }
.process { padding: 120px 14vw; background: #e8e5de; }
.process > h2,.gallery-intro h2,.services-page h2 { font-size: clamp(44px,5vw,70px); margin-bottom: 64px; }
.process-list { border-top: 1px solid rgba(13,71,43,.3); }
.process-list article { display: grid; grid-template-columns: 100px 1fr; gap: 24px; padding: 28px 0; border-bottom: 1px solid rgba(13,71,43,.3); }
.process-list span,.service-cards span { font-size: 12px; color: #627a62; }
.process-list h3,.service-cards h3 { margin: 0 0 10px; font: 600 29px 'Playfair Display',serif; }
.process-list p { max-width: 600px; margin: 0; font-size: 16px; }
.gallery-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; padding: 115px 14vw 70px; background: #e8e5de; }
.gallery-intro h2 { margin: 0; }.gallery-intro > p:last-child { margin: 14px 0 0; max-width: 430px; font-size: 17px; line-height: 1.7; }
.gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 0 5.5vw 110px; background: #e8e5de; }.gallery figure { margin: 0; }.gallery .gallery-wide { grid-column: 1 / -1; }.gallery img { display: block; width: 100%; height: 420px; object-fit: cover; }.gallery-wide img { height: min(60vw,680px); }.gallery figcaption { padding-top: 13px; font: 600 19px 'Playfair Display',serif; }
.services-page { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; padding: 120px 14vw; background: #e8e5de; }.services-page h2 { margin: 0; }.service-cards { border-top: 1px solid rgba(13,71,43,.3); }.service-cards article { padding: 24px 0; border-bottom: 1px solid rgba(13,71,43,.3); }.service-cards h3 { margin-top: 18px; }.service-cards p { max-width: 480px; margin: 0; }
.contact-page { min-height: calc(100vh - 180px); padding: 180px 14vw 110px; display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; background: #0D472B; color: #f1efe9; }.contact-page > div > p:not(.eyebrow) { max-width: 420px; margin-top: 30px; font-size: 17px; line-height: 1.7; }.phone { display: inline-block; margin-top: 24px; padding-bottom: 3px; border-bottom: 1px solid #f1efe9; font: 600 26px 'Playfair Display',serif; }.contact-page label { color: #f1efe9; }.contact-page input,.contact-page textarea { color: #f1efe9; border-bottom-color: rgba(241,239,233,.55); }.contact-page input::placeholder,.contact-page textarea::placeholder { color: rgba(241,239,233,.6); }

.faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: 10vw; padding: 120px 14vw; background: #0D472B; color: #f5f3ed; }
.faq h2 { margin: 0 0 28px; font-size: clamp(44px,5vw,70px); }
.faq h2 em { color: #dce0b6; }
.faq-intro > p:last-child { max-width: 370px; font-size: 17px; line-height: 1.7; color: rgba(245,243,237,.82); }
.faq-list { border-top: 1px solid rgba(245,243,237,.4); }
.faq details { padding: 22px 0; border-bottom: 1px solid rgba(245,243,237,.28); }
.faq summary { color: #f5f3ed; font-size: 24px; }
.faq summary b { color: #dce0b6; }
.faq details p { max-width: 540px; margin: 14px 30px 4px 0; color: rgba(245,243,237,.84); }

.project-overview-intro { display: grid; grid-template-columns: .75fr 1.25fr; gap: 8vw; padding: 115px 14vw 70px; background: #e8e5de; }
.project-overview-intro h2 { margin: 0; font-size: clamp(44px,5vw,70px); }
.project-overview-intro > p:last-child { max-width: 460px; margin: 14px 0 0; font-size: 17px; line-height: 1.7; }
.project-overview { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 0 5.5vw 110px; background: #e8e5de; }
.project-card { display: block; color: #0D472B; background: #f1efe9; padding-bottom: 26px; transition: transform .25s ease; }
.project-card:hover { transform: translateY(-4px); }
.project-card img { display: block; width: 100%; height: 420px; object-fit: cover; filter: saturate(.8); }
.project-card-wide { grid-column: 1 / -1; }
.project-card-wide img { height: min(56vw, 630px); }
.project-card span, .project-card p { display: block; margin: 22px 26px 0; font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.project-card h3 { margin: 9px 26px 0; font: 600 clamp(28px,3vw,43px)/1.08 'Playfair Display',serif; }
.project-card p { color: #6b8067; }
.project-card p b { margin-left: 8px; font-size: 16px; }

.project-hero { position: relative; height: min(720px,82vh); min-height: 540px; overflow: hidden; color: #fff; background: #0D472B; }
.project-hero:after { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg,rgba(6,31,18,.8),rgba(6,31,18,.12)); }
.project-hero img { display: block; width: 100%; height: 100%; object-fit: cover; filter: brightness(.72) saturate(.72); }
.project-hero > div { position: absolute; z-index: 1; left: 10vw; bottom: 12%; }
.project-hero h1 { margin: 0; font-size: clamp(56px,7vw,104px); }
.project-hero h1 em { color: #dce0b6; }
.project-hero-empty { min-height: 440px; height: min(540px,70vh); }
.project-story { display: grid; grid-template-columns: 1fr 1fr; gap: 10vw; padding: 115px 14vw; background: #e8e5de; }
.project-story h2 { margin: 0; font-size: clamp(44px,5vw,70px); }
.project-story > p { max-width: 480px; margin: 34px 0 0; font-size: 18px; line-height: 1.7; }
.project-photo-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 0 5.5vw 110px; background: #e8e5de; }
.project-photo-grid figure { margin: 0; }
.project-photo-grid .wide { grid-column: 1 / -1; }
.project-photo-grid img { display: block; width: 100%; height: 480px; object-fit: cover; }
.project-photo-grid .wide img { height: min(60vw,720px); }
.project-empty { padding: 115px 14vw; background: #e8e5de; }
.project-empty h2 { max-width: 650px; margin: 0 0 28px; font-size: clamp(44px,5vw,70px); }
.project-empty h2 em { color: #6c8367; }
.project-empty > p:not(.eyebrow) { max-width: 540px; margin-bottom: 32px; font-size: 18px; line-height: 1.7; }
.project-empty strong { font-size: .9em; }
.project-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 70px 14vw; background: #0D472B; color: #f1efe9; }
.project-cta p { margin: 0; font: 600 clamp(26px,3vw,42px)/1.15 'Playfair Display',serif; }
.project-cta .button-dark { flex: 0 0 auto; }
@media(max-width:760px){.page-hero,.project-hero{height:640px;min-height:0}.project-hero-empty{height:470px}.page-hero>div,.project-hero>div{left:7vw}.process,.gallery-intro,.services-page,.contact-page,.faq,.project-overview-intro,.project-story,.project-empty{padding:75px 7vw}.process-list article,.gallery-intro,.services-page,.contact-page,.faq,.project-overview-intro,.project-story{grid-template-columns:1fr;gap:30px}.process-list article{gap:10px}.gallery,.project-overview,.project-photo-grid{grid-template-columns:1fr;padding:0 7vw 75px}.gallery .gallery-wide,.project-card-wide,.project-photo-grid .wide{grid-column:auto}.gallery img,.gallery-wide img,.project-card img,.project-card-wide img,.project-photo-grid img,.project-photo-grid .wide img{height:390px}.contact-page{min-height:0;padding-top:150px}.contact-page h1{font-size:57px}.faq summary{font-size:21px}.project-card span,.project-card p,.project-card h3{margin-left:20px;margin-right:20px}.project-cta{display:block;padding:55px 7vw}.project-cta .button-dark{margin-top:25px}}
