/* Rich editorial layer: photography, layered compositions, numerals. Loads after editorial.css. */
:root{--gold:#B89B5E}
figure{margin:0}

/* Layered two-image composition */
.layered{position:relative;aspect-ratio:5/4;width:100%}
.layered img{position:absolute;object-fit:cover;display:block}
.layered .layer-a{left:0;top:0;width:72%;height:82%}
.layered .layer-b{right:0;bottom:0;width:52%;height:58%;border:10px solid #fff;box-sizing:border-box}
.layered::before{content:"";position:absolute;left:-18px;top:-18px;width:38%;height:46%;border-left:1px solid var(--gold);border-top:1px solid var(--gold);z-index:2;pointer-events:none}

/* Home intro → dark navy feature band, split */
body.home .intro{background:var(--navy-900);border:0;color:#fff}
body.home .intro-inner{display:grid;grid-template-columns:1fr 1.1fr;grid-template-rows:auto auto;gap:clamp(32px,5vw,80px) clamp(40px,6vw,104px);align-items:center}
body.home .intro-inner>div:first-child{grid-column:1;grid-row:1;align-self:end}
body.home .intro .layered{grid-column:2;grid-row:1/3}
body.home .intro .intro-copy{grid-column:1;grid-row:2;align-self:start;border-top:1px solid rgba(255,255,255,.25);padding-top:28px}
body.home .intro h2{color:#fff;font-size:clamp(2.4rem,4.4vw,3.8rem)}
body.home .intro-copy p{color:rgba(255,255,255,.86)}
body.home .intro .text-link{color:#fff}
body.home .intro .text-link:hover{color:var(--gold)}
body.home .intro .layered .layer-b{border-color:var(--navy-900)}

/* Section numerals */
.teaser-grid,.service-grid,.subtype-list,.type-tiles{counter-reset:n}
.teaser-card,.service-card,.subtype,.type-tile{counter-increment:n}
.service-card::after,.subtype .subtype-main::before{content:counter(n,decimal-leading-zero);display:block;font-family:var(--serif);font-size:clamp(2.6rem,4vw,3.6rem);line-height:1;color:var(--gold);margin-bottom:14px;font-weight:400}
.service-card{position:relative;display:flex;flex-direction:column}
.service-card::after{order:-1}

/* Home teasers → photo-backed grid with captions */
body.home .teaser-grid{grid-template-columns:repeat(4,1fr);gap:clamp(16px,2vw,28px)!important}
body.home .teaser-card{position:relative;display:flex;flex-direction:column}
body.home .teaser-photo{aspect-ratio:3/4!important;margin:0!important}
body.home .teaser-card h3{position:relative;margin:-64px 18px 0 0;background:#fff;padding:20px 20px 0 0!important;border-top:0!important;font-size:1.55rem;z-index:2}
body.home .teaser-card h3::before{content:counter(n,decimal-leading-zero);display:block;font-family:var(--serif);font-size:.95rem;color:var(--gold);letter-spacing:.08em;margin-bottom:8px}
body.home .teaser-card p{margin-top:10px}
body.home .teaser-card .text-link{margin-top:auto;align-self:flex-start}
body.home .teasers .section-head{display:block;border-bottom:1px solid var(--rule);padding-bottom:22px;max-width:none}

/* Property-type tiles → photo-backed with caption */
.type-tile.has-photo{position:relative;padding:0!important;border-top:0!important;overflow:hidden;color:#fff;min-height:440px;display:flex;flex-direction:column;justify-content:flex-end}
.type-tile.has-photo .tile-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.2,.6,.2,1)}
.type-tile.has-photo::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(7,30,61,.92) 0%,rgba(7,30,61,.55) 55%,rgba(7,30,61,.1) 100%)}
.type-tile.has-photo>*:not(.tile-photo){position:relative;z-index:2;padding-left:26px;padding-right:26px}
.type-tile.has-photo>*:last-child{padding-bottom:26px}
.type-tile.has-photo .type-tile-name,.type-tile.has-photo .type-tile-more{color:#fff}
.type-tile.has-photo .type-tile-name::before{content:counter(n,decimal-leading-zero);display:block;font-size:.95rem;color:var(--gold);letter-spacing:.08em;margin-bottom:8px}
.type-tile.has-photo .type-tile-intro,.type-tile.has-photo .type-tile-subs li{color:rgba(255,255,255,.85)}
.type-tile.has-photo .type-tile-subs{border-color:rgba(255,255,255,.25)}
.type-tile.has-photo .type-tile-subs li::before{background:var(--gold)}
.type-tile.has-photo:hover .tile-photo{transform:scale(1.03)}
.type-tile.has-photo:hover .type-tile-name{color:#fff}

/* Split intros on inner pages */
.split-intro{display:grid;grid-template-columns:1fr 1fr;gap:clamp(40px,6vw,104px);align-items:center;margin-bottom:clamp(48px,6vw,88px)}
.split-intro .section-head{margin-bottom:0}
.split-intro .type-page-intro{font-family:var(--serif);font-size:clamp(1.5rem,2.3vw,2rem);line-height:1.3;color:var(--navy-900)}

/* About split */
.about-head .layered{margin-top:40px;max-width:520px}
.about-inner{align-items:start}

/* Contact photo */
.contact-figure{margin:28px 0}
.contact-photo{width:100%;aspect-ratio:16/9;height:auto;object-fit:cover;display:block}

/* Photo-backed CTA band */
.cta-band{position:relative;background:var(--navy-900) url(/images/banner-river-dusk.webp) center 55%/cover no-repeat!important;padding:clamp(96px,11vw,160px) 0!important}
.cta-band::before{content:""!important;display:block!important;position:absolute;inset:0;background:rgba(7,30,61,.78);font-size:0;transform:none;top:0;right:0;width:auto}
.cta-inner{position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.3);padding-top:36px}
.cta-band h2{font-size:clamp(2.2rem,4vw,3.6rem)!important}

@media (max-width:980px){
 body.home .intro-inner,.split-intro{grid-template-columns:1fr}
 body.home .intro .layered{grid-column:1;grid-row:auto}
 body.home .intro-inner>div:first-child,body.home .intro .intro-copy{grid-column:1;grid-row:auto}
 body.home .teaser-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:600px){
 body.home .teaser-grid{grid-template-columns:1fr}
 body.home .teaser-photo{aspect-ratio:4/3!important}
 .layered::before{left:-8px;top:-8px}
 .type-tile.has-photo{min-height:380px}
}
body.home .teasers .section-head h2{font-size:clamp(2.4rem,4.4vw,3.8rem);margin-top:6px}
.site-nav a[aria-current="page"]:not(.btn),.site-nav .has-sub.is-current>.nav-item>a{color:var(--navy)!important}
.site-nav .btn[aria-current="page"]{background:var(--navy)!important;border-color:var(--navy)!important;color:#fff!important;box-shadow:none!important}

/* v4: cinematic home intro — full-bleed photo with overlapping navy panel */
body.home .intro{position:relative;background:var(--navy-900);padding:0!important;min-height:clamp(560px,52vw,760px);display:flex;align-items:flex-end;overflow:hidden}
body.home .intro-bg,body.home .intro-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
body.home .intro-inner{position:relative;z-index:2;display:block!important;width:100%}
body.home .intro-inner{background:transparent}
body.home .intro-inner>div:first-child,body.home .intro .intro-copy{background:var(--navy-900);max-width:600px;padding-left:clamp(28px,4vw,56px)!important;padding-right:clamp(28px,4vw,56px)!important;margin-left:0}
body.home .intro-inner>div:first-child{padding-top:clamp(40px,4.5vw,64px)!important;border-top:3px solid var(--gold)}
body.home .intro .intro-copy{border-top:0!important;padding-top:20px!important;padding-bottom:clamp(40px,4.5vw,64px)!important}
body.home .intro .intro-copy::before{content:"";display:block;width:56px;height:1px;background:rgba(255,255,255,.35);margin-bottom:22px}

/* About: panoramic strip */
.pano{position:relative;left:50%;width:100vw;margin:clamp(64px,8vw,112px) 0 clamp(64px,8vw,112px) -50vw}
.pano img{display:block;width:100%;height:clamp(320px,38vw,560px);object-fit:cover}
.about-head{position:relative}
.about-head h2{font-size:clamp(2.4rem,4.2vw,3.6rem)!important;line-height:1.05}

/* Inner split intro: single image */
.single img{display:block;width:100%;aspect-ratio:4/3;height:auto;object-fit:cover}
.single{position:relative}
.single::after{content:"";position:absolute;left:-16px;bottom:-16px;width:40%;height:40%;border-left:1px solid var(--gold);border-bottom:1px solid var(--gold);pointer-events:none}

@media (max-width:760px){
 body.home .intro{min-height:0;display:block}
 body.home .intro-bg{position:relative!important;height:340px!important;display:block}
 body.home .intro-bg img{position:absolute}
 body.home .intro-inner{margin-top:-80px;padding-left:16px;padding-right:16px}
 .single::after{left:-8px;bottom:-8px}
}
body:not(.home) .about .container{overflow:visible}
