.project-hero,.project-note,.project-back{padding-inline:max(24px,calc((100vw - 1240px)/2))}.project-hero{display:grid;grid-template-columns:minmax(0,44%) minmax(0,56%);min-height:650px;background:var(--cream)}.project-copy{align-self:center;padding:70px clamp(38px,6vw,90px) 70px 0}.project-copy h1{margin:0 0 29px;font-size:clamp(48px,5.3vw,76px);line-height:.93}.project-copy p:not(.overline){max-width:430px;margin:0 0 32px;color:#5a504a;font-size:16px;line-height:1.75}.project-hero figure{display:flex;align-self:center;flex-direction:column;height:535px;margin:24px 24px 24px 0;background:#eee8e1;box-shadow:0 14px 32px rgba(57,43,31,.10)}.project-hero img{display:block;min-width:0;width:100%;height:calc(100% - 58px);object-fit:contain;object-position:center}.project-hero figcaption{padding:17px 20px 18px;color:var(--forest);background:#fffdf9;font:700 15px Manrope,Arial,sans-serif;line-height:1.45}.project-note{display:grid;grid-template-columns:.68fr 1.32fr;gap:52px;padding-top:110px;padding-bottom:105px;background:var(--sage)}.project-note h2{margin:0;font-size:clamp(40px,4.4vw,66px);line-height:.93}.project-note h2 em{color:var(--red)}.project-note div{display:grid;grid-template-columns:1fr .72fr;gap:46px}.project-note div p{align-self:end;max-width:375px;margin:0;color:#4f625b;font-size:16px;line-height:1.75}.project-back{margin:0;padding-top:34px;padding-bottom:42px;background:var(--paper)}.project-back a{color:var(--forest);font:800 11px Manrope,Arial,sans-serif;letter-spacing:.08em;text-transform:uppercase}@media(max-width:760px){.project-hero{grid-template-columns:1fr}.project-copy{padding:64px 20px 40px}.project-copy h1{font-size:clamp(44px,13vw,58px)}.project-hero figure{height:390px;margin:0 20px 20px}.project-note{grid-template-columns:1fr;gap:25px;padding-top:75px;padding-bottom:75px}.project-note div{grid-template-columns:1fr;gap:24px}.project-back{padding-top:28px;padding-bottom:34px}}
.project-gallery{display:grid;grid-template-columns:1.08fr 1fr 1fr;gap:18px;padding:105px max(24px,calc((100vw - 1240px)/2));background:var(--paper)}.project-gallery-heading{grid-column:1/-1;display:flex;justify-content:space-between;align-items:end;gap:42px;margin-bottom:34px}.project-gallery-heading h2{margin:0;font-size:clamp(40px,4.4vw,66px);line-height:.93}.project-gallery-heading h2 em{color:var(--red)}.project-gallery figure{display:flex;flex-direction:column;margin:0;background:#eee5dc}.project-gallery img{display:block;width:100%;height:390px;padding:12px;background:#f7f3ee;object-fit:contain;object-position:center}.project-gallery .project-plan img{background:#f9f8f5}.project-gallery figcaption{min-height:86px;padding:18px 18px 20px;color:var(--ink);background:#fffdf9;font:700 16px Manrope,Arial,sans-serif;line-height:1.48}@media(max-width:760px){.project-gallery{grid-template-columns:1fr;gap:13px;padding-top:75px;padding-bottom:75px}.project-gallery-heading{display:block;margin-bottom:20px}.project-gallery-heading .overline{margin-bottom:18px}.project-gallery img{height:360px}.project-gallery figcaption{min-height:0;font-size:15px}}

/* A permanent breathing space keeps captions from ever touching photos. */
.project-hero figure{gap:16px;background:var(--paper)}.project-hero img{height:calc(100% - 90px)}.project-hero figcaption{margin:0 16px 16px}.project-gallery figure{gap:14px;background:var(--paper)}.project-gallery figcaption{margin:0 14px 14px}
.project-hero figure:not(:has(figcaption)) img{height:100%}

/* Portrait work photos use a narrower frame, so the entire image reads larger. */
@media (min-width: 761px) {.project-hero{grid-template-columns:minmax(0,55%) minmax(0,45%)}.project-copy h1{max-width:450px;font-size:clamp(40px,4.2vw,60px);line-height:.98}.project-hero figure{width:min(100%,460px);height:560px;justify-self:end}}
@media (min-width: 761px) {.project-hero-landscape{grid-template-columns:minmax(0,48%) minmax(0,52%)}.project-hero-landscape figure{width:min(100%,670px);height:370px}.project-hero-landscape img{height:calc(100% - 90px)}}
@media (min-width: 761px) {.project-hero-landscape{display:block;min-height:0;padding-top:78px;padding-bottom:78px}.project-hero-landscape .project-copy{max-width:640px;padding:0 0 48px}.project-hero-landscape figure{width:min(100%,760px);height:520px;margin:0;justify-self:start}.project-hero-landscape img{height:calc(100% - 90px)}}
/* Wide furniture projects use a centered editorial composition. */
.project-hero-landscape .project-copy{margin-inline:auto;text-align:center}.project-hero-landscape .project-copy p:not(.overline){margin-right:auto;margin-left:auto}.project-hero-landscape figure{margin-right:auto;margin-left:auto}
.project-hero-landscape .project-copy h1{margin-right:auto;margin-left:auto;text-align:center}
.project-carousel{position:relative;width:min(100%,760px);height:520px;margin-inline:auto;overflow:hidden;background:#f7f3ee;box-shadow:0 14px 32px rgba(57,43,31,.10);touch-action:pan-y}.project-carousel img{position:absolute;inset:0;display:block;width:100%;height:100%;padding:12px;object-fit:contain;opacity:0;transform:translateX(7%);transition:opacity .42s ease,transform .5s cubic-bezier(.2,.8,.2,1);pointer-events:none}.project-carousel img.is-active{opacity:1;transform:translateX(0)}.carousel-handle{position:absolute;z-index:2;top:50%;left:50%;display:grid;width:62px;height:62px;padding:0;place-items:center;border:1px solid rgba(32,51,46,.25);border-radius:50%;background:rgba(255,253,249,.92);color:var(--forest);box-shadow:0 7px 18px rgba(32,51,46,.14);font:400 28px Manrope,Arial,sans-serif;cursor:grab;transform:translate(-50%,-50%);transition:transform .2s ease,background .2s ease}.carousel-handle:hover{background:#fff}.carousel-handle:active{cursor:grabbing;transform:translate(-50%,-50%) scale(.94)}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}@media(max-width:760px){.project-carousel{width:100%;height:380px}.carousel-handle{width:54px;height:54px;font-size:24px}}
.project-hero:not(.project-hero-landscape) .project-carousel{align-self:center;margin:24px 24px 24px 0;width:calc(100% - 24px)}@media(max-width:760px){.project-hero:not(.project-hero-landscape) .project-carousel{width:auto;margin:0 20px 20px}}
.service-price{margin:22px auto 24px!important;color:var(--red)!important;font:800 15px/1.7 Manrope,Arial,sans-serif!important}.service-details{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;padding:100px max(24px,calc((100vw - 1240px)/2));background:var(--sage)}.service-details h2,.service-works h2{margin:0;font-size:clamp(38px,4.2vw,62px);line-height:.96}.service-details h2 em,.service-works h2 em{color:var(--red)}.service-details ul{margin:0;padding:0;list-style:none;border-top:1px solid rgba(37,52,48,.25)}.service-details li{display:grid;grid-template-columns:170px 1fr;gap:20px;padding:22px 0;border-bottom:1px solid rgba(37,52,48,.25)}.service-details strong{font:800 12px Manrope,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}.service-details span{font:600 15px/1.65 Manrope,Arial,sans-serif}.service-works{padding:104px max(24px,calc((100vw - 1240px)/2));background:var(--paper)}.service-works>p{margin-bottom:20px}.service-works>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:42px}.service-works a{display:block;background:#f7f3ee;color:var(--ink)}.service-works img{display:block;width:100%;height:410px;padding:12px;object-fit:contain}.service-works span{display:block;padding:17px 20px 20px;font:800 12px Manrope,Arial,sans-serif;letter-spacing:.06em;text-transform:uppercase}@media(max-width:760px){.service-details{grid-template-columns:1fr;gap:34px;padding-top:75px;padding-bottom:75px}.service-details li{grid-template-columns:1fr;gap:8px}.service-works{padding-top:75px;padding-bottom:75px}.service-works>div{grid-template-columns:1fr;margin-top:30px}.service-works img{height:355px}}
.project-video{display:grid;grid-template-columns:.68fr 1.32fr;gap:52px;padding:104px max(24px,calc((100vw - 1240px)/2));background:var(--sage)}.project-video h2{margin:0;font-size:clamp(40px,4.4vw,66px);line-height:.93}.project-video h2 em{color:var(--red)}.project-video figure{margin:0;background:var(--paper);box-shadow:0 12px 28px rgba(44,35,27,.08)}.project-video video{display:block;width:100%;max-height:550px;background:#1e2926}.project-video figcaption{padding:18px 20px 20px;color:var(--ink);font:700 16px Manrope,Arial,sans-serif;line-height:1.48}@media(max-width:760px){.project-video{grid-template-columns:1fr;gap:25px;padding-top:75px;padding-bottom:75px}.project-video figcaption{font-size:15px}}
.project-photo-pair{padding:0 max(24px,calc((100vw - 1240px)/2)) 105px;background:var(--paper)}.project-photo-pair img{display:block;width:min(100%,760px);margin-inline:auto;background:#f7f3ee;object-fit:contain}@media(max-width:760px){.project-photo-pair{padding-bottom:75px}.project-photo-pair img{width:100%}}
.service-faq{display:grid;grid-template-columns:.82fr 1.18fr;gap:60px;padding:104px max(24px,calc((100vw - 1240px)/2));background:#f4e8dc}.service-faq h2{margin:0;font-size:clamp(38px,4.2vw,62px);line-height:.96}.service-faq h2 em{color:var(--red)}.service-faq>div{border-top:1px solid rgba(37,52,48,.25)}.service-faq details{border-bottom:1px solid rgba(37,52,48,.25)}.service-faq summary{position:relative;padding:24px 38px 24px 0;color:var(--forest);font:800 17px/1.45 Manrope,Arial,sans-serif;cursor:pointer;list-style:none}.service-faq summary::-webkit-details-marker{display:none}.service-faq summary::after{position:absolute;right:0;content:'+';font-size:26px;font-weight:400}.service-faq details[open] summary::after{content:'−'}.service-faq details p{max-width:630px;margin:0;padding:0 38px 27px 0;color:#5a504a;font:500 16px/1.8 Manrope,Arial,sans-serif}.service-faq details a{color:var(--red);text-decoration:underline;text-underline-offset:3px}@media(max-width:760px){.service-faq{grid-template-columns:1fr;gap:34px;padding-top:75px;padding-bottom:75px}.service-faq summary{padding-top:20px;padding-bottom:20px;font-size:16px}.service-faq details p{padding-bottom:22px;font-size:15px}}
