/* DUO Residence — static landing */
:root{
  --bg:#f2ece1; --fg:#2b2a27; --graphite:#4b4a46; --muted:#7a7871;
  --card:#faf6ec; --secondary:#eae2d2; --border:#d9d0bd;
  --gold:#c9a45c; --gold-soft:#e6d3a3;
  --whatsapp:#25d366; --whatsapp-hover:#1fb457;
  --shadow-card:0 18px 40px -25px rgba(0,0,0,.35);
  --shadow-btn:0 10px 30px -15px rgba(0,0,0,.4);
  --font-display:"Cormorant Garamond","Times New Roman",serif;
  --font-sans:"Inter","Helvetica Neue",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;border:0 solid var(--border)}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;line-height:1.5;overflow-x:hidden}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{background:none;font:inherit;color:inherit;cursor:pointer;border:0}
::selection{background:var(--gold-soft);color:var(--fg)}
h1,h2,h3,.font-display{font-family:var(--font-display);font-weight:400;letter-spacing:-.01em;line-height:1.1}
em{font-style:italic}
.container{max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.container{padding:0 40px}}
.eyebrow{font-family:var(--font-sans);font-size:.72rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500}
.eyebrow-gold{color:var(--gold)}
.hairline{display:inline-block;width:2.5rem;height:1px;background:var(--gold);vertical-align:middle;margin-right:.75rem}
.text-graphite{color:var(--graphite)}
.text-gold{color:var(--gold)}
.text-gold-soft{color:var(--gold-soft)}
.text-muted{color:var(--muted)}

/* Reveal */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .9s cubic-bezier(.22,1,.36,1),transform .9s cubic-bezier(.22,1,.36,1)}
.reveal.is-in{opacity:1;transform:none}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.625rem;font-weight:500;letter-spacing:.02em;padding:14px 24px;font-size:13px;transition:all .3s ease;white-space:nowrap;cursor:pointer;border-radius:2px}
.btn-lg{padding:20px 32px;font-size:14px}
.btn-primary{background:var(--fg);color:var(--bg);box-shadow:var(--shadow-btn)}
.btn-primary:hover{background:var(--graphite);transform:translateY(-2px)}
.btn-outline{border:1px solid var(--fg);color:var(--fg)}
.btn-outline:hover{background:var(--fg);color:var(--bg)}
.btn-wa{background:var(--whatsapp);color:#fff;box-shadow:0 16px 40px -12px rgba(37,211,102,.55)}
.btn-wa:hover{background:var(--whatsapp-hover);transform:translateY(-2px)}
.btn .arrow{transition:transform .3s}
.btn:hover .arrow{transform:translateX(4px)}
.pulse-gold{box-shadow:0 0 0 0 rgba(37,211,102,.6);animation:pulseGold 2.4s cubic-bezier(.66,0,0,1) infinite}
@keyframes pulseGold{to{box-shadow:0 0 0 18px transparent}}
.icon{width:16px;height:16px;flex-shrink:0}

/* Nav */
.nav{position:fixed;inset:0 0 auto 0;z-index:40;transition:all .5s ease;padding:20px 0;background:transparent}
.nav.scrolled{background:rgba(242,236,225,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(217,208,189,.6);padding:12px 0}
.nav-inner{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.nav-inner{padding:0 40px}}
.nav-logo{height:32px;width:auto}
@media(min-width:768px){.nav-logo{height:40px}}
.nav-links{display:none;gap:36px;font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.nav-links a{transition:color .3s}
.nav-links a:hover{color:var(--fg)}
@media(min-width:768px){.nav-links{display:flex}.nav-wa{display:inline-flex!important}}
.nav-wa{display:none}

/* Hero */
.hero{position:relative;min-height:100%;padding-top:96px}
@media(min-width:768px){.hero{padding-top:112px}}
.hero-grid{display:grid;gap:48px;max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.hero-grid{grid-template-columns:1.05fr 1fr;gap:64px;padding:32px 40px 0}}
.hero-copy{display:flex;flex-direction:column;justify-content:center}
h1.hero-title{margin-top:24px;font-size:42px;letter-spacing:-.02em;line-height:1.05}
@media(min-width:640px){h1.hero-title{font-size:54px}}
@media(min-width:768px){h1.hero-title{font-size:64px}}
@media(min-width:1024px){h1.hero-title{font-size:68px}}
.hero-desc{margin-top:28px;max-width:560px;color:var(--muted);font-size:16px;line-height:1.65}
@media(min-width:768px){.hero-desc{font-size:17px}}
.hero-cards{margin-top:36px;display:grid;gap:12px}
@media(min-width:640px){.hero-cards{grid-template-columns:repeat(3,1fr)}}
.hero-card{border:1px solid rgba(227,223,214,.7);background:rgba(255,255,255,.6);backdrop-filter:blur(4px);padding:20px;border-radius:2px;transition:all .3s}
.hero-card:hover{transform:translateY(-4px);border-color:rgba(201,164,92,.6);box-shadow:0 18px 40px -25px rgba(0,0,0,.35)}
.hero-card-top{font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted)}
.hero-card-strong{margin-top:8px;font-family:var(--font-display);font-size:30px;color:var(--fg)}
.hero-card-sub{margin-top:4px;font-size:12px;color:var(--muted)}
.hero-cta{margin-top:36px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.hero-meta{margin-top:40px;display:flex;align-items:center;gap:24px;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}
.hero-meta span.dot{width:1px;height:12px;background:var(--border);display:none}
@media(min-width:640px){.hero-meta span.dot{display:block}}
.hero-image-wrap{position:relative}
.hero-image{position:relative;aspect-ratio:4/5;overflow:hidden}
.hero-image img{width:100%;height:100%;object-fit:cover}
.hero-image::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.3),transparent 50%);pointer-events:none}
.hero-badge{position:absolute;bottom:-24px;left:-24px;width:224px;border:1px solid var(--border);background:var(--bg);padding:20px;box-shadow:0 30px 60px -30px rgba(0,0,0,.35);display:none}
@media(min-width:640px){.hero-badge{display:block}}
.hero-badge-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.24em;color:var(--gold)}
.hero-badge-title{margin-top:8px;font-family:var(--font-display);font-size:20px;line-height:1.2}
.hero-badge-loc{margin-top:12px;display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}
.hero-scroll{margin-top:64px;display:flex;justify-content:center;padding-bottom:40px;color:rgba(122,120,113,.6)}
.hero-scroll svg{animation:bounce 2s infinite}
@keyframes bounce{0%,100%{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:translateY(0);animation-timing-function:cubic-bezier(0,0,.2,1)}}

/* Section */
.section{padding:56px 0}
@media(min-width:768px){.section{padding:128px 0}}
.section-dark{background:var(--fg);color:var(--bg)}
.section-alt{background:rgba(242,240,235,.6)}
.section-head{max-width:640px;margin:0 auto;text-align:center}
.section-head.left{margin:0;text-align:left}
.section-title{margin-top:16px;font-size:36px;line-height:1.15}
@media(min-width:768px){.section-title{font-size:48px}}

/* Differentials grid */
.diff-grid{margin-top:64px;display:grid;gap:1px;background:var(--border)}
@media(min-width:640px){.diff-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.diff-grid{grid-template-columns:repeat(3,1fr)}}
.diff-card{display:flex;flex-direction:column;gap:16px;background:var(--bg);padding:32px;transition:background .5s;height:100%}
.diff-card:hover{background:var(--secondary)}
.diff-card svg{width:28px;height:28px;color:var(--gold);transition:transform .5s}
.diff-card:hover svg{transform:scale(1.1)}
.diff-card-title{font-family:var(--font-display);font-size:24px}
.diff-card-desc{margin-top:8px;font-size:14px;color:var(--muted)}
.quote{max-width:768px;margin:64px auto 0;text-align:center}
.quote p{font-family:var(--font-display);font-size:24px;font-style:italic;line-height:1.5;color:var(--graphite)}
@media(min-width:768px){.quote p{font-size:30px}}
.quote-cta{margin-top:40px;display:flex;justify-content:center}

/* Location */
.loc-grid{display:grid;gap:48px;max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.loc-grid{grid-template-columns:repeat(2,1fr);gap:64px;padding:0 40px}}
.loc-desc{margin-top:24px;max-width:420px;color:var(--muted)}
.loc-list{margin-top:40px;display:grid;grid-template-columns:1fr;gap:16px;list-style:none}
@media(min-width:640px){.loc-list{grid-template-columns:repeat(2,1fr)}}
.loc-list li{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid rgba(227,223,214,.7);padding-bottom:12px;font-size:14px}
.loc-list svg{margin-top:2px;color:var(--gold)}
.map-wrap{position:relative;aspect-ratio:4/5;overflow:hidden;border:1px solid var(--border);box-shadow:0 40px 80px -40px rgba(0,0,0,.3)}
.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(85%) contrast(1.05)}
.map-badge{position:absolute;left:24px;top:24px;border:1px solid rgba(201,164,92,.4);background:rgba(250,249,246,.95);backdrop-filter:blur(8px);padding:12px 16px;pointer-events:none}
.map-badge-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}
.map-badge-title{margin-top:4px;font-family:var(--font-display);font-size:18px}
.map-badge-sub{font-size:12px;color:var(--muted)}
.section-cta{margin-top:40px}

/* Apartments */
.apt-grid{margin-top:56px;display:grid;gap:40px}
@media(min-width:1024px){.apt-grid{grid-template-columns:1.35fr 1fr;gap:56px}}
.apt-photos{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:768px){.apt-photos{gap:16px}}
.apt-photo{overflow:hidden}
.apt-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s}
.apt-photo:hover img{transform:scale(1.05)}
.apt-photo.hero{grid-column:span 2;}
.apt-photo.sq{aspect-ratio:1/1}
.apt-features{list-style:none;display:grid;grid-template-columns:1fr;gap:20px 32px}
@media(min-width:640px){.apt-features{grid-template-columns:repeat(2,1fr)}}
.apt-features li{display:flex;align-items:flex-start;gap:12px;font-size:14px}
.apt-features svg{margin-top:2px;color:var(--gold);flex-shrink:0}
.apt-quote{margin-top:40px;border-left:2px solid var(--gold);padding-left:20px}
.apt-quote p{font-size:15px;line-height:1.65;color:var(--muted)}

/* Leisure */
.leisure-head{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:24px}
@media(min-width:768px){.leisure-head{flex-direction:row;align-items:flex-end}}
.leisure-head h2{color:var(--bg)}
.leisure-meta{display:flex;align-items:center;gap:8px;font-size:12px;text-transform:uppercase;letter-spacing:.2em;color:rgba(250,249,246,.6)}
.leisure-meta svg{color:var(--gold)}
.leisure-grid{margin-top:56px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px;grid-auto-rows:180px}
@media(min-width:768px){.leisure-grid{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:16px}}
.leisure-tile{position:relative;overflow:hidden}
.leisure-tile.big{grid-column:span 2;grid-row:span 2}
.leisure-tile img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s}
.leisure-tile:hover img{transform:scale(1.1)}
.leisure-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.7),rgba(0,0,0,.1) 50%,transparent);pointer-events:none}
.leisure-cap{position:absolute;left:20px;right:20px;bottom:16px;z-index:2}
.leisure-cap-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold)}
.leisure-cap-title{margin-top:2px;font-family:var(--font-display);font-size:20px;color:#fff}
@media(min-width:768px){.leisure-cap-title{font-size:24px}}
.leisure-foot{margin-top:56px;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid rgba(250,249,246,.15);padding-top:32px}
.leisure-foot p{max-width:420px;font-size:14px;color:rgba(250,249,246,.7)}

/* Security */
.sec-grid{margin-top:56px;display:grid;gap:16px}
@media(min-width:640px){.sec-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sec-grid{grid-template-columns:repeat(4,1fr)}}
.sec-card{border:1px solid var(--border);background:var(--card);padding:32px;transition:all .5s;height:100%}
.sec-card:hover{transform:translateY(-4px);border-color:var(--gold);box-shadow:0 30px 60px -40px rgba(0,0,0,.4)}
.sec-icon{width:48px;height:48px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);transition:all .5s}
.sec-card:hover .sec-icon{border-color:var(--gold);background:rgba(201,164,92,.1)}
.sec-icon svg{color:var(--gold);width:20px;height:20px}
.sec-card-title{margin-top:24px;font-family:var(--font-display);font-size:24px}
.sec-card-desc{margin-top:8px;font-size:14px;color:var(--muted)}

/* Conditions */
.cond-wrap{padding:0 20px}
@media(min-width:1024px){.cond-wrap{padding:0 40px}}
.cond{position:relative;overflow:hidden;border:1px solid var(--border);background:linear-gradient(135deg,var(--bg),var(--secondary),var(--bg));padding:32px;max-width:1200px;margin:0 auto}
@media(min-width:768px){.cond{padding:64px}}
@media(min-width:1024px){.cond{padding:80px}}
.cond::before{content:"";position:absolute;right:-96px;top:-96px;width:288px;height:288px;border-radius:50%;background:rgba(201,164,92,.1);filter:blur(60px);pointer-events:none}
.cond::after{content:"";position:absolute;left:-96px;bottom:-96px;width:288px;height:288px;border-radius:50%;background:rgba(201,164,92,.05);filter:blur(60px);pointer-events:none}
.cond-grid{position:relative;display:grid;gap:48px}
@media(min-width:1024px){.cond-grid{grid-template-columns:1.1fr 1fr;align-items:center}}
.cond-title{margin-top:16px;font-size:36px;line-height:1.05}
@media(min-width:768px){.cond-title{font-size:60px}}
.cond-desc{margin-top:24px;max-width:520px;color:var(--muted)}
@media(min-width:768px){.cond-desc{font-size:18px}}
.cond-price-block{margin-top:40px;display:flex;flex-direction:column;gap:24px}
.cond-price-label{font-size:11px;text-transform:uppercase;letter-spacing:.24em;color:var(--gold)}
.cond-price{margin-top:8px;font-family:var(--font-display);font-size:60px;line-height:1;color:var(--fg)}
@media(min-width:768px){.cond-price{font-size:72px}}
.cond-price span{color:var(--gold)}
.cond-cols{display:grid;gap:16px}
@media(min-width:640px){.cond-cols{grid-template-columns:repeat(2,1fr)}}
.cond-col{border-top:2px solid var(--gold);padding-top:16px}
.cond-col-label{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}
.cond-col-strong{margin-top:4px;font-family:var(--font-display);font-size:28px}
.cond-side{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
@media(min-width:1024px){.cond-side{align-items:flex-end}}
.cond-note{width:100%;max-width:384px;border:1px solid var(--border);background:var(--bg);padding:24px}
.cond-note-eyebrow{display:flex;align-items:center;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}
.cond-note-desc{margin-top:12px;font-size:14px;color:var(--muted)}
.cond-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--whatsapp);color:#fff;padding:24px 32px;font-size:16px;font-weight:500;width:100%;transition:all .3s}
@media(min-width:1024px){.cond-cta{width:auto}}
.cond-cta:hover{background:var(--whatsapp-hover);transform:translateY(-2px)}
.cond-cta .arrow{transition:transform .3s}
.cond-cta:hover .arrow{transform:translateX(4px)}
.cond-foot{max-width:384px;font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted);text-align:left}
@media(min-width:1024px){.cond-foot{text-align:right}}

/* Benefits */
.ben-grid{display:grid;gap:48px;max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.ben-grid{grid-template-columns:1fr 1.2fr;gap:64px;padding:0 40px}}
.ben-desc{margin-top:24px;max-width:420px;color:var(--muted)}
.ben-list{list-style:none;display:grid;gap:16px}
.ben-item{display:flex;align-items:center;gap:16px;border-bottom:1px solid rgba(227,223,214,.7);background:rgba(255,255,255,.7);backdrop-filter:blur(4px);padding:20px 24px;transition:all .3s}
.ben-item:hover{transform:translateX(4px);border-color:var(--gold)}
.ben-check{width:32px;height:32px;border-radius:50%;background:rgba(201,164,92,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.ben-check svg{color:var(--gold);width:16px;height:16px}
.ben-label{font-family:var(--font-display);font-size:20px}

/* FAQ */
.faq{max-width:768px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.faq{padding:0 40px}}
.faq-list{margin-top:56px;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-item:last-child{border-bottom:0}
.faq-btn{display:flex;width:100%;align-items:center;justify-content:space-between;gap:24px;padding:24px 0;text-align:left;transition:color .3s}
.faq-btn:hover{color:var(--gold)}
.faq-q{font-family:var(--font-display);font-size:20px}
@media(min-width:768px){.faq-q{font-size:24px}}
.faq-toggle{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border:1px solid var(--border);color:var(--gold);flex-shrink:0}
.faq-toggle svg{width:16px;height:16px}
.faq-toggle .minus{display:none}
.faq-item.open .faq-toggle .plus{display:none}
.faq-item.open .faq-toggle .minus{display:block}
.faq-panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows .5s}
.faq-item.open .faq-panel{grid-template-rows:1fr}
.faq-panel-inner{overflow:hidden}
.faq-panel p{padding:0 56px 24px 0;font-size:15px;line-height:1.65;color:var(--muted)}
.faq-cta{margin-top:48px;text-align:center}

/* Final CTA */
.final{position:relative;overflow:hidden}
.final-inner{position:relative;min-height:80vh;width:100%}
.final-inner>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.final-inner::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.6) 50%,rgba(0,0,0,.3));pointer-events:none}
.final-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;max-width:900px;margin:0 auto;padding:96px 20px;text-align:center;color:#fff}
@media(min-width:1024px){.final-content{padding:96px 40px}}
.final-content h2{margin-top:16px;font-size:36px;line-height:1.05;color:#fff}
@media(min-width:768px){.final-content h2{font-size:60px}}
@media(min-width:1024px){.final-content h2{font-size:72px}}
.final-desc{margin:24px auto 0;max-width:560px;font-size:16px;color:rgba(255,255,255,.8)}
@media(min-width:768px){.final-desc{font-size:18px}}
.final-cta{margin-top:40px;display:flex;flex-direction:column;align-items:center;gap:16px}
@media(min-width:640px){.final-cta{flex-direction:row;justify-content:center}}
.final-btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;background:var(--whatsapp);color:#fff;padding:24px 40px;font-size:16px;font-weight:500;transition:all .3s}
.final-btn:hover{background:var(--whatsapp-hover);transform:translateY(-2px)}
.final-alt{font-size:14px;color:rgba(255,255,255,.7);text-decoration:underline;text-underline-offset:8px;transition:color .3s}
.final-alt:hover{color:var(--gold-soft)}

/* Footer */
.foot{border-top:1px solid var(--border);background:var(--bg);padding:64px 0 112px}
@media(min-width:768px){.foot{padding:64px 0}}
.foot-grid{display:grid;gap:40px;max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.foot-grid{grid-template-columns:repeat(3,1fr);padding:0 40px}}
.foot-logo{height:48px;width:auto}
.foot p.foot-desc{margin-top:16px;max-width:320px;font-size:14px;color:var(--muted)}
.foot-eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.2em;color:var(--gold)}
.foot-text{margin-top:12px;font-size:14px}
.foot-copy{max-width:1200px;margin:56px auto 0;padding:24px 20px 0;border-top:1px solid var(--border);font-size:12px;color:var(--muted)}
@media(min-width:1024px){.foot-copy{padding:24px 40px 0}}

/* Mobile bar */
.mbar{position:fixed;inset:auto 0 0 0;z-index:50;border-top:1px solid var(--border);background:rgba(242,236,225,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding:12px 16px}
@media(min-width:768px){.mbar{display:none}}
.mbar-inner{display:flex;align-items:center;justify-content:space-between;gap:12px}
.mbar-label{font-size:9px;text-transform:uppercase;letter-spacing:.2em;color:var(--muted)}
.mbar-price{font-family:var(--font-display);font-size:18px}
.mbar-btn{display:inline-flex;align-items:center;gap:8px;background:var(--whatsapp);color:#fff;padding:14px 20px;font-size:13px;font-weight:500;box-shadow:0 8px 20px -8px rgba(37,211,102,.6)}

/* Gallery */
.gallery{max-width:1200px;margin:0 auto;padding:0 20px}
@media(min-width:1024px){.gallery{padding:0 40px}}
.gallery-grid{margin-top:56px;display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:14px}}
@media(min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr);gap:16px}}
.gallery-item{position:relative;overflow:hidden;aspect-ratio:4/5;cursor:zoom-in;background:var(--secondary)}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s cubic-bezier(.22,1,.36,1)}
.gallery-item:hover img{transform:scale(1.06)}
.gallery-item::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.55),rgba(0,0,0,.05) 45%,transparent);opacity:.6;transition:opacity .5s;pointer-events:none}
.gallery-item:hover::after{opacity:.9}
.gallery-cap{position:absolute;left:20px;bottom:16px;z-index:2;transform:translateY(8px);opacity:0;transition:transform .5s,opacity .5s}
.gallery-item:hover .gallery-cap{transform:none;opacity:1}
.gallery-cap-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.22em;color:var(--gold)}
.gallery-cap-title{margin-top:2px;font-family:var(--font-display);font-size:20px;color:#fff}
.gallery-cta{margin-top:48px;display:flex;justify-content:center}

/* Lightbox */
.lightbox{position:fixed;inset:0;z-index:70;background:rgba(20,18,14,.94);display:none;align-items:center;justify-content:center;padding:20px}
.lightbox.open{display:flex}
.lightbox-img{max-width:min(1200px,94vw);max-height:86vh;object-fit:contain;box-shadow:0 40px 80px -20px rgba(0,0,0,.6)}
.lightbox-btn{position:absolute;top:20px;right:20px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.2);transition:all .3s}
.lightbox-btn:hover{background:rgba(255,255,255,.15);border-color:var(--gold)}
.lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.08);color:#fff;border:1px solid rgba(255,255,255,.2);transition:all .3s}
.lightbox-nav:hover{background:rgba(255,255,255,.15);border-color:var(--gold)}
.lightbox-nav.prev{left:20px}
.lightbox-nav.next{right:20px}
.lightbox-cap{position:absolute;left:0;right:0;bottom:24px;text-align:center;color:rgba(255,255,255,.7);font-size:12px;letter-spacing:.2em;text-transform:uppercase}
.lightbox-cap b{color:var(--gold);font-weight:500;margin-right:12px}
body.lb-open{overflow:hidden}

