/* Composition is chosen per story; image slots carry no presentation rules. */
.projectPhotoScene{box-sizing:border-box;min-height:min(760px,calc(100svh - 82px));padding:clamp(48px,5vw,76px) 5vw;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:5vw;position:relative;border-top:1px solid #8883}
.projectSceneCopy{min-width:0;max-width:650px}
.projectSceneCopy h2{margin:18px 0 24px!important;text-wrap:balance}
.projectSceneCopy p{font-size:clamp(17px,1.4vw,21px);line-height:1.6;max-width:52ch;margin:0 0 30px!important}
.projectPhotoScene figure{margin:0;min-width:0;width:100%;display:flex;align-items:center;justify-content:center}
.projectPhotoScene figure img{display:block;width:100%;height:auto;max-height:68svh;object-fit:contain;border-radius:3px}
.projectPhotoScene-portrait figure{max-width:460px;justify-self:center}
.projectPhotoScene-portrait figure img{width:auto;max-width:100%}
.projectPhotoScene-reverse{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)}
.projectPhotoScene-reverse figure{grid-column:1;grid-row:1}
.projectPhotoScene-reverse .projectSceneCopy{grid-column:2}
.projectPhotoScene-wide{grid-template-columns:1fr;gap:32px;min-height:0}
.projectPhotoScene-wide .projectSceneCopy{display:grid;grid-template-columns:1.15fr 1fr;gap:0 6vw;max-width:none;align-items:start}
.projectPhotoScene-wide .projectSceneCopy>span{grid-column:1/-1}
.projectPhotoScene-wide h2{grid-row:2/4;max-width:760px}
.projectPhotoScene-wide .projectSceneCopy>p{margin:18px 0 24px!important}
.projectPhotoScene-wide .projectSceneCopy>a{justify-self:start}
.projectPhotoScene-wide figure img{max-height:58svh;width:auto;max-width:100%;object-fit:contain}
.projectPhotoScene-inset{margin:clamp(24px,3vw,44px) 4vw;padding:clamp(32px,4vw,60px);min-height:0;border:1px solid #8883;gap:4vw}
.projectPhotoScene-inset figure img{max-height:58svh}
.projectPhotoScene .debtWarning{grid-column:1/-1;margin:0!important}
.projectPhotoScene :is(h2,p,a){position:relative;z-index:1}

/* A single landscape scene can carry a full photograph behind its copy. */
.projectPhotoScene-backdrop{isolation:isolate;overflow:hidden;grid-template-columns:1fr;min-height:clamp(520px,78svh,820px);color:#fffaf0;background:#12201d}
.projectPhotoScene-backdrop figure{position:absolute;inset:0;z-index:-2;max-width:none;height:100%;translate:none!important;animation:none!important;transform:none!important}
.projectPhotoScene-backdrop figure img{width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0}
.projectPhotoScene-backdrop:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#081511eb,#081511b8 47%,#08151122)}
.projectPhotoScene-backdrop .projectSceneCopy{max-width:650px}
.projectPhotoScene-backdrop :is(h2,p,.buildEyebrow,.legalLabel){color:#fffaf0!important}
.projectPhotoScene-backdrop :is(.buildAction,.legalAction){background:#fff8eb;color:#14221e;border-color:#fff8eb}
.projectPhotoScene-backdrop .debtWarning{color:#fffaf0!important}

/* Keep useful content dense enough that the last third is not empty text screens. */
.constructionDemo .buildSection,.legalDemo .legalScreen{padding-top:clamp(48px,5vw,76px);padding-bottom:clamp(48px,5vw,76px)}
.constructionDemo .buildFaq,.legalDemo .legalFaq,.constructionDemo .buildFinish,.legalDemo .legalFinish{min-height:0}
.constructionDemo .buildPhoto,.legalDemo .legalWidePhoto,.legalDemo .advocateMeetingPhoto{border-radius:3px}
.accountingHeroPortrait{width:100%;height:70svh;max-height:760px;overflow:hidden}
.legalDemo .accountingHeroPortrait img{object-fit:contain}
.legalDemo .advocatePortrait img,.legalDemo .advocatePortrait:after,.legalDemo .advocateMeetingPhoto img,.constructionDemo .renovationFrame,.constructionDemo .gardenPlacePhoto,.constructionDemo .buildHeroVisual>.buildPhoto{border-radius:4px}
.legalTopbar .legalHeaderOrder{border-radius:8px;white-space:normal}
.legalTopbar .legalHeaderLabel{font-size:13px;line-height:1.3;max-width:100px}

/* Heating retains its accepted hero; subsequent scenes use open image layouts. */
.constructionDemo .buildHero-heating{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;min-height:calc(100svh - 78px);color:#fffaf0;background:#102830}
.buildHero-heating .buildHeroVisual{position:absolute;inset:0;z-index:-2;width:100%;height:100%;min-height:0;transform:none!important}
.buildHero-heating .buildHeroVisual>.buildPhoto{width:100%;height:100%;object-fit:cover;border-radius:0}
.buildHero-heating:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#091b24ed,#091b24b8 50%,#091b2422)}
.buildHero-heating .buildHeroCopy{max-width:810px;width:100%;gap:32px}
.buildHero-heating :is(h1,p,.buildEyebrow,.buildTextLink){color:#fffaf0}
.buildHero-heating .buildHeroTicket{display:none}
.buildHero-heating .buildAction{background:#f1c194;color:#102830}

@media(max-width:760px){
 .projectPhotoScene,.projectPhotoScene-reverse{display:flex;flex-direction:column;align-items:stretch;min-height:0;padding:44px 6vw;gap:28px}
 .projectPhotoScene-wide .projectSceneCopy{display:block}
 .projectPhotoScene figure,.projectPhotoScene-portrait figure{align-self:center;max-width:100%}
 .projectPhotoScene figure img,.projectPhotoScene-wide figure img{width:100%;max-height:none;object-fit:contain}
 .projectPhotoScene-portrait figure{max-width:390px}
 .projectPhotoScene-inset{margin:20px 5vw;padding:30px 6vw}
 .projectPhotoScene h2{font-size:clamp(30px,8vw,46px)!important}
 .projectSceneCopy p{font-size:17px}
 .projectPhotoScene .debtWarning{font-size:14px}
 .projectPhotoScene-backdrop{min-height:580px;justify-content:center}
 .projectPhotoScene-backdrop:after{background:linear-gradient(90deg,#081511e8,#081511a6)}
 .projectPhotoScene-backdrop figure{height:100%;width:100%;max-width:none}
 .projectPhotoScene-backdrop figure img{height:100%;object-fit:cover}
 .accountingHeroPortrait{height:auto;max-height:none}
 .legalDemo .accountingHeroPortrait img{height:auto;width:100%}
 .constructionDemo .buildSection,.legalDemo .legalScreen{padding-top:44px;padding-bottom:44px}
 .legalTopbar{gap:10px}
 .legalTopbar .legalHeaderOrder{padding:8px 10px}
 .legalTopbar .legalHeaderLabel{max-width:65px;font-size:12px}
 .constructionDemo .buildHero-heating{min-height:720px}
 .buildHero-heating:after{background:linear-gradient(90deg,#091b24ed,#091b2499)}
 .buildHero-heating .buildHeroVisual>.buildPhoto{object-position:65% center}
}
