/* Project page (Concept D). Shares site.css; hero and CTA follow the homepage. */
.phero{position:relative;min-height:clamp(640px,84vh,880px);display:flex;flex-direction:column;justify-content:flex-end;color:#f6f5f1;isolation:isolate;background:#04180f;--focus:var(--green-soft)}
.phero__bg{position:absolute;inset:0;z-index:-2;overflow:hidden;display:flex;justify-content:center}
/* Native width is 1536px: the image is never rendered wider than that. */
.phero__bg img{width:100%;max-width:1536px;height:100%;object-fit:cover;object-position:50% 48%}
.phero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(5,20,14,.5) 0%,rgba(5,20,14,0) 18%,rgba(5,20,14,0) 50%,rgba(5,20,14,.62) 78%,rgba(5,20,14,.9) 100%),linear-gradient(90deg,rgba(5,20,14,.5) 0%,rgba(5,20,14,.15) 48%,rgba(5,20,14,0) 70%)}
@media (min-width:1537px){.phero__bg img{-webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent)}}
.phero__main{padding-top:clamp(110px,13vw,180px);padding-bottom:clamp(36px,4.6vw,64px)}
.phero .lab{color:#cfe3d6;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.phero h1{font-size:clamp(48px,8.2vw,132px);margin-top:20px;text-shadow:0 2px 34px rgba(0,0,0,.4)}
.phero h1 span{display:block}
.phero__foot{display:flex;justify-content:space-between;align-items:flex-end;gap:20px 32px;flex-wrap:wrap;margin-top:clamp(24px,3vw,42px);padding-top:clamp(20px,2.4vw,30px);border-top:1px solid rgba(246,245,241,.35)}
.phero__foot p{font-size:19px;color:#e8efe9}
.phero__foot .loc{font-weight:600;letter-spacing:.2em;text-transform:uppercase;font-size:13.5px}

.pback{padding-top:28px}
.pback a{display:inline-block;font-weight:600;font-size:13px;letter-spacing:.16em;text-transform:uppercase;border-bottom:1px solid var(--rule);padding-bottom:4px}
.pback a:hover{border-color:var(--gd)}

.pinfo{padding-top:clamp(56px,7vw,104px)}
.pinfo__g{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:24px;row-gap:36px;align-items:start}
.pinfo .lab{grid-column:1 / span 3;padding-top:14px;border-top:1px solid var(--ink)}
.pinfo .st{grid-column:4 / span 9;font-family:var(--font-display);font-stretch:75%;font-weight:800;text-transform:uppercase;font-size:clamp(30px,4.4vw,64px);line-height:.98;letter-spacing:-.005em;text-wrap:balance}
.pinfo .st em{font-style:normal;color:var(--gd)}
.spec{grid-column:4 / span 9;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--rule)}
.spec div{padding:22px 0 0}
.spec dt{font-weight:600;font-size:12.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted)}
.spec dd{margin-top:8px;font-size:18px;line-height:1.35;font-weight:500}

.pgal{padding-top:clamp(56px,7vw,104px)}
.pgal__head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 32px;flex-wrap:wrap;margin-bottom:clamp(24px,3vw,40px)}
.pgal__head h2{font-size:clamp(40px,6.6vw,100px)}
.row{display:flex;gap:clamp(12px,1.8vw,24px);margin-top:clamp(12px,1.8vw,24px)}
.row:first-of-type{margin-top:0}
.row figure{margin:0;min-width:0}
/* Equal-height rows: flex-grow follows the aspect ratio (4:3 landscape = 16, 3:4 portrait = 9) */
.row .l{flex:16 1 0}
.row .p{flex:9 1 0}
.row .l img{aspect-ratio:4/3}
.row .p img{aspect-ratio:3/4}
.row img{width:100%;height:auto;object-fit:cover;background:var(--sand)}
.row--2 .l{flex:1 1 0}
.row--3 .p{flex:1 1 0}
.row--mix{align-items:flex-start}
figcaption{margin-top:12px;font-size:14.5px;line-height:1.45;color:var(--muted)}
.pnote{margin-top:clamp(28px,3vw,44px);font-size:15px;color:var(--muted);max-width:640px}

.pnext{padding-top:clamp(56px,7vw,104px);padding-bottom:clamp(56px,7vw,104px)}
.pnext .g{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;border-top:1px solid var(--ink);padding-top:26px}

.cta{position:relative;isolation:isolate;color:#f6f5f1;padding-block:clamp(80px,11vw,160px) clamp(64px,8vw,112px);background:var(--night);--focus:var(--green-soft)}
.cta h2{font-size:clamp(48px,9vw,148px);max-width:1200px;margin-top:18px}
.cta h2 em{font-style:normal;color:var(--green)}
.cta__row{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);column-gap:48px;align-items:end;margin-top:clamp(28px,4vw,52px)}
.cta .s{font-size:20px;color:#dfe6e1;max-width:520px;margin-bottom:28px}
.cta .ct{font-size:19px;line-height:1.9;color:#dfe6e1}
.cta .ct a{border-bottom:1px solid rgba(255,255,255,.4)}

@keyframes up{from{opacity:.01;transform:translateY(30px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .phero .lab{animation:up .9s var(--ease) both}
  .phero h1 span{animation:up 1s .1s var(--ease) both}
  .phero__foot{animation:up 1s .35s var(--ease) both}
}
@media (max-width:980px){
  .pinfo .lab,.pinfo .st,.spec{grid-column:1 / -1}
  .spec{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:6px}
  .cta__row{grid-template-columns:1fr;row-gap:28px}
}
@media (max-width:700px){
  .phero{min-height:clamp(600px,150vw,760px)}
  .phero__bg img{object-position:46% 40%}
  .phero__foot{flex-direction:column;align-items:flex-start}
  .row--2{flex-direction:column}
  .row--3{flex-wrap:wrap}
  .row--3 .p{flex:1 1 calc(50% - 8px)}
  .row--3 .p:first-child{flex-basis:100%}
  .row--mix{flex-wrap:wrap}
  .row--mix .l{flex:1 1 100%}
  .row--mix .p{flex:1 1 calc(50% - 8px)}
}

/* Single-photo project page (Chesapeake Landing). Native width 1919px: never rendered wider. */
.phero--plain{min-height:0;background:linear-gradient(180deg,#04180f 0%,#072b1b 100%)}
.phero--plain .phero__main{padding-top:clamp(120px,14vw,190px);padding-bottom:clamp(40px,5vw,72px)}
.pfeat{margin:0;background:var(--night);display:flex;justify-content:center}
.pfeat img{display:block;width:100%;max-width:1919px;height:auto;aspect-ratio:1919/820;background:var(--sand)}
@media (max-width:700px){.pfeat img{aspect-ratio:16/10;object-fit:cover;object-position:22% 50%}}
