
/* ---- project pages ---- */
.pj-hero{position:relative;min-height:72svh;display:flex;align-items:flex-end;background:var(--forest);color:#fff;overflow:hidden;padding-top:120px}
.pj-hero .bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.55;transform:scale(1.06);animation:kb 8s ease-out forwards}
.pj-hero .scrim{position:absolute;inset:0;background:linear-gradient(to top,rgba(8,28,21,.94) 0%,rgba(15,36,25,.3) 55%,rgba(15,36,25,.45) 100%)}
.pj-hero .inner{position:relative;z-index:2;width:100%;padding-bottom:clamp(44px,7vh,90px)}
.pj-hero h1{color:#fff;margin:20px 0 16px;max-width:16ch}
.pj-hero .lede{color:rgba(250,248,241,.82);max-width:52ch}
.pj-stats{display:flex;flex-wrap:wrap;gap:clamp(24px,4vw,64px);margin-top:38px}
.pj-stats .stat b{font-family:var(--ff-display);font-weight:300;font-size:clamp(30px,3.4vw,46px);color:var(--sage);display:block;line-height:1}
.pj-stats .stat small{font-family:var(--ff-label);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:rgba(250,248,241,.65);display:block;margin-top:8px}
.pj-story{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(30px,5vw,80px);align-items:start}
.pj-story .copy p{margin-bottom:1.2em}
.pj-story .visual{position:relative;border-radius:24px;overflow:hidden}
.pj-story .visual img{width:100%;height:100%;object-fit:cover;display:block}
.pj-story .visual::after{content:"";position:absolute;inset:0;border-radius:24px;box-shadow:inset 0 0 0 1px rgba(15,36,25,.08)}
@media(max-width:900px){.pj-story{grid-template-columns:1fr}}
.ba-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2.4vw,28px)}
.ba-grid figure{border-radius:20px;overflow:hidden;position:relative;background:var(--pine)}
.ba-grid img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1s var(--ease)}
.ba-grid figure:hover img{transform:scale(1.04)}
.ba-tag{position:absolute;top:16px;left:16px;background:rgba(15,36,25,.82);color:var(--sage);font-family:var(--ff-label);font-size:11px;letter-spacing:.24em;text-transform:uppercase;padding:8px 16px;border-radius:100px}
.ba-tag.after{background:var(--sage);color:var(--forest)}
@media(max-width:700px){.ba-grid{grid-template-columns:1fr}}
.gal-grid{columns:3;column-gap:clamp(14px,1.8vw,24px)}
.gal-grid a{display:block;margin-bottom:clamp(14px,1.8vw,24px);border-radius:18px;overflow:hidden;position:relative;break-inside:avoid;background:var(--pine)}
.gal-grid img{width:100%;display:block;transition:transform 1s var(--ease),filter .6s}
.gal-grid a:hover img{transform:scale(1.045)}
.gal-grid a::after{content:"⤢";position:absolute;right:14px;bottom:12px;width:36px;height:36px;border-radius:50%;background:rgba(15,36,25,.7);color:var(--sage);display:flex;align-items:center;justify-content:center;font-size:15px;opacity:0;transition:opacity .4s}
.gal-grid a:hover::after{opacity:1}
@media(max-width:1000px){.gal-grid{columns:2}}
@media(max-width:560px){.gal-grid{columns:1}}
#lightbox{position:fixed;inset:0;background:rgba(8,20,14,.94);z-index:300;display:none;align-items:center;justify-content:center;padding:4vw;cursor:zoom-out}
#lightbox.open{display:flex}
#lightbox img{max-width:100%;max-height:92vh;border-radius:14px;box-shadow:0 30px 90px rgba(0,0,0,.55)}
#lightbox .lb-x{position:absolute;top:22px;right:26px;width:48px;height:48px;border-radius:50%;border:1px solid rgba(250,248,241,.3);background:transparent;color:var(--ivory);font-size:20px;cursor:pointer}
#lightbox .lb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:54px;height:54px;border-radius:50%;border:1px solid rgba(250,248,241,.3);background:rgba(15,36,25,.5);color:var(--ivory);font-size:20px;cursor:pointer}
#lightbox .lb-arrow.prev{left:22px}#lightbox .lb-arrow.next{right:22px}
.pj-cta{text-align:center;max-width:760px;margin:0 auto}
.pj-cta .actions{display:flex;gap:18px;justify-content:center;flex-wrap:wrap;margin-top:34px}

.pj-stats .stat b span{font-family:inherit;font-size:inherit;letter-spacing:normal;text-transform:none;display:inline;margin:0;color:inherit}.pj-story{align-items:stretch}.pj-story .visual{min-height:420px}.pj-story .visual img{height:100%;object-fit:cover}

/* GALERÍA SIN HUECOS */
.gal-grid{columns:unset!important;column-gap:unset!important;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,3vw,42px)}
.gal-grid a{margin-bottom:0;aspect-ratio:4/3}
.gal-grid img{height:100%;object-fit:cover}
.gal-grid a:nth-child(3n+2):last-child{grid-column:span 2;aspect-ratio:8/3}
.gal-grid a:nth-child(3n+1):last-child:not(:first-child){grid-column:span 3;aspect-ratio:12/5}
@media(max-width:900px){.gal-grid{grid-template-columns:repeat(2,1fr)}
.gal-grid a:nth-child(3n+2):last-child,.gal-grid a:nth-child(3n+1):last-child:not(:first-child){grid-column:auto;aspect-ratio:4/3}
.gal-grid a:nth-child(2n+1):last-child:not(:first-child){grid-column:span 2;aspect-ratio:8/3}}

/* BEACH DRIVE GALERÍA EDITORIAL */
.gal-grid.bd-gal{display:grid;grid-template-columns:1fr 1fr;gap:clamp(22px,3vw,42px)}
.gal-grid.bd-gal a{aspect-ratio:4/3;margin:0}
.gal-grid.bd-gal a.full{grid-column:1/-1;aspect-ratio:16/8.5}
.gal-grid.bd-gal a.fly{aspect-ratio:3/4;background:#F5F1E8}
.gal-grid.bd-gal a.fly img{object-fit:contain}
.gal-grid.bd-gal img{height:100%;object-fit:cover}
@media(max-width:700px){.gal-grid.bd-gal{grid-template-columns:1fr}.gal-grid.bd-gal a.full{grid-column:auto;aspect-ratio:16/10}}

/* EO COLLECTION SPLIT */
.eo-split{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(28px,4vw,70px);align-items:center}
.eo-split+.eo-split{margin-top:clamp(50px,7vw,90px)}
.eo-split .poster{border-radius:22px;overflow:hidden;box-shadow:0 30px 70px rgba(15,36,25,.14);border:1px solid rgba(15,36,25,.08)}
.eo-split .poster img{width:100%;display:block}
.eo-split.alt .poster{order:2}
.eo-split h3{font-family:var(--ff-display);font-weight:300;font-size:clamp(26px,2.6vw,38px);color:var(--forest);margin-bottom:16px;line-height:1.12}
.eo-split p{margin-bottom:1.1em}
.eo-split .plus-list li{margin-bottom:8px;color:#142219}.eo-split .plus-list li::before,.eo-split .plus-list li::marker{color:var(--forest)}
@media(max-width:820px){.eo-split{grid-template-columns:1fr}.eo-split.alt .poster{order:0}}
