:root{
  --nxs-ivory:#F6F1E7;
  --nxs-beige:#EAE0CC;
  --nxs-walnut:#6B4429;
  --nxs-olive:#454F3D;
  --nxs-gold:#B08A4E;
  --nxs-gold-light:#D3AF77;
  --nxs-charcoal:#2A2620;
  --nxs-charcoal-soft:#4A453C;
  --nxs-serif:'Fraunces', serif;
  --nxs-sans:'Sora', sans-serif;
}

.nxs-empty{ padding:40px; text-align:center; color:var(--nxs-charcoal-soft); }

/* ---- Buttons ---- */
.nxs-btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:16px 34px; font-family:var(--nxs-sans); font-size:.82rem;
  letter-spacing:.08em; text-transform:uppercase; border-radius:2px; cursor:pointer;
  border:1px solid var(--nxs-charcoal); background:transparent; color:var(--nxs-charcoal);
  transition:all .4s ease; text-decoration:none;
  margin:0; box-sizing:border-box; line-height:1.2; font-weight:400;
  -webkit-appearance:none; appearance:none; vertical-align:middle;
}
.nxs-btn-solid{ background:var(--nxs-charcoal); color:var(--nxs-ivory); }
.nxs-btn-ghost{ border-color:rgba(246,241,231,.55); color:var(--nxs-ivory); }
.nxs-btn-ghost:hover{ background:rgba(246,241,231,.12); }
.nxs-btn-solid:hover{ background:var(--nxs-walnut); }

/* ---- Hero (with adjustable overlay) ---- */
.nxs-hero{ position:relative; min-height:60vh; display:flex; align-items:flex-end; overflow:hidden; color:var(--nxs-ivory); }
.nxs-hero-bg{ position:absolute; inset:0; background-size:cover; background-position:center; z-index:0; }
.nxs-hero-overlay{ position:absolute; inset:0; z-index:1; }
.nxs-hero-content{ position:relative; z-index:2; padding:0 6vw 50px; max-width:900px; }
.nxs-hero-eyebrow{ font-size:.72rem; letter-spacing:.32em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:14px; }
.nxs-hero-headline{ font-family:var(--nxs-serif); font-size:clamp(2.3rem,5.4vw,4.2rem); line-height:1.08; margin:0 0 18px; color:#F6F1E7; }
.nxs-hero-sub{ font-size:1.05rem; max-width:600px; color:rgba(246,241,231,.88) !important; margin:0; }

/* ---- Gallery Section (mobile-first, matching reference exactly) ---- */
.nxs-gallery-section{ padding:80px 6vw; background:var(--nxs-ivory); }
.nxs-gal-head{ max-width:640px; margin:0 auto 30px; }
.nxs-gal-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold) !important; margin-bottom:10px; }
.nxs-gal-head h2{ font-family:var(--nxs-serif); font-size:clamp(1.9rem,3.4vw,2.7rem); margin:0; color:var(--nxs-charcoal); }

.nxs-gal-filters{ display:flex; flex-wrap:wrap; gap:10px; max-width:1280px; margin:0 auto 34px; }
.nxs-gal-filter{
  padding:9px 20px; font-family:var(--nxs-sans); font-size:.76rem; letter-spacing:.08em; text-transform:uppercase;
  background:none; border:1px solid rgba(42,38,32,.25); border-radius:20px; color:var(--nxs-charcoal-soft);
  cursor:pointer; transition:all .3s ease; -webkit-appearance:none; appearance:none;
}
.nxs-gal-filter:hover{ border-color:var(--nxs-gold); color:var(--nxs-gold); }
.nxs-gal-filter.is-active{ border-color:var(--nxs-gold); color:var(--nxs-gold); }

.nxs-gal-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; max-width:1280px; margin:0 auto; }
@media(min-width:800px){ .nxs-gal-grid{ grid-template-columns:repeat(4,1fr); grid-auto-rows:180px; } }
.nxs-gal-item{ overflow:hidden; position:relative; }
.nxs-gal-item img{ width:100% !important; height:100% !important; object-fit:cover !important; transition:transform 1s cubic-bezier(.22,1,.36,1); display:block; }
.nxs-gal-item:hover img{ transform:scale(1.07); }
.nxs-gal-trigger{
  display:block; width:100%; height:100%; padding:0; margin:0; border:none; background:none;
  cursor:zoom-in; -webkit-appearance:none; appearance:none; box-sizing:border-box;
}
@media(min-width:800px){
  .nxs-gal-tall{ grid-row:span 2; }
  .nxs-gal-wide{ grid-column:span 2; }
}

/* ---- Lightbox ---- */
.nxs-lightbox{
  display:none; position:fixed; inset:0; z-index:9999;
  background:rgba(20,16,10,.94); align-items:center; justify-content:center;
}
.nxs-lightbox.is-open{ display:flex; }
.nxs-lightbox-img{ max-width:88vw; max-height:86vh; object-fit:contain; box-shadow:0 20px 60px rgba(0,0,0,.5); }
.nxs-lightbox-close{
  position:absolute; top:20px; right:24px; width:44px; height:44px; border-radius:50%;
  background:rgba(246,241,231,.12); border:1px solid rgba(246,241,231,.3); color:var(--nxs-ivory);
  font-size:1.6rem; line-height:1; cursor:pointer; -webkit-appearance:none; appearance:none;
}
.nxs-lightbox-close:hover{ background:rgba(246,241,231,.22); }
.nxs-lightbox-prev, .nxs-lightbox-next{
  position:absolute; top:50%; transform:translateY(-50%); width:52px; height:52px; border-radius:50%;
  background:rgba(246,241,231,.12); border:1px solid rgba(246,241,231,.3); color:var(--nxs-ivory);
  font-size:1.8rem; line-height:1; cursor:pointer; -webkit-appearance:none; appearance:none;
}
.nxs-lightbox-prev:hover, .nxs-lightbox-next:hover{ background:rgba(246,241,231,.22); }
.nxs-lightbox-prev{ left:20px; }
.nxs-lightbox-next{ right:20px; }
@media(max-width:600px){
  .nxs-lightbox-prev, .nxs-lightbox-next{ width:40px; height:40px; font-size:1.4rem; }
  .nxs-lightbox-prev{ left:8px; } .nxs-lightbox-next{ right:8px; }
  .nxs-lightbox-close{ top:12px; right:12px; }
}

/* ---- CTA Banner ---- */
.nxs-cta-banner{ padding:100px 6vw; text-align:center; background:#2A2620; }
.nxs-cta-inner{ max-width:640px; margin:0 auto; }
.nxs-cta-eyebrow{ font-size:.72rem; letter-spacing:.3em; text-transform:uppercase; color:var(--nxs-gold-light) !important; margin-bottom:14px; }
.nxs-cta-headline{ font-family:var(--nxs-serif); font-size:clamp(1.8rem,3.2vw,2.5rem); margin:0 0 30px; color:#F6F1E7; }
