/* ══ GALERIE ══ */
body { padding-top: var(--nav-h); }

/* Cat Nav */
.cat-nav { background:var(--ink); border-bottom:1px solid var(--border-dark); position:sticky; top:var(--nav-h); z-index:50; }
.cat-nav-inner {
  max-width:1180px; margin:0 auto; padding:0 52px;
  display:flex; align-items:center; justify-content:space-between;
  overflow-x:auto; scrollbar-width:none;
}
.cat-nav-inner::-webkit-scrollbar { display:none; }
.cat-tabs { display:flex; }
.cat-tab {
  padding:18px 22px;
  font-family:var(--body); font-size:.66rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--text-on-dark-muted); background:none; border:none; cursor:pointer;
  position:relative; white-space:nowrap; transition:color .3s;
}
.cat-tab::after {
  content:''; position:absolute; bottom:0; left:0; right:0; height:1px;
  background:var(--gold); transform:scaleX(0); transform-origin:left;
  transition:transform .35s var(--ease-out);
}
.cat-tab:hover { color:var(--text-on-dark-sub); }
.cat-tab.active { color:var(--gold-pale); }
.cat-tab.active::after { transform:scaleX(1); }
.cat-total { font-size:.64rem; letter-spacing:.15em; text-transform:uppercase; color:var(--text-on-dark-muted); white-space:nowrap; padding-right:8px; }
.cat-total span { color:var(--gold); }

/* Category sections */
.cat-section { padding:68px 0 0; }
.cat-section + .cat-section { padding-top:76px; }

.cat-header {
  max-width:1180px; margin:0 auto; padding:0 52px 38px;
  display:flex; align-items:flex-end; justify-content:space-between; gap:24px;
}
.cat-header-left .cat-title {
  font-family:var(--display); font-size:clamp(2rem,3.5vw,2.8rem);
  color:var(--cream); font-weight:400; line-height:1.1;
}
.cat-header-left .cat-title em { color:var(--gold-light); font-style:italic; }
.cat-header-left .cat-desc { color:var(--text-on-dark-muted); font-size:.88rem; margin-top:10px; letter-spacing:.04em; }
.cat-big-num { font-family:var(--display); font-size:4rem; color:rgba(200,150,42,0.14); line-height:1; white-space:nowrap; }

/* Slider */
.slider-wrap { max-width:1180px; margin:0 auto; padding:0 52px; }
.slider-main { position:relative; overflow:hidden; background:var(--ink); }
.slider-track { display:flex; transition:transform .6s cubic-bezier(0.25,0.46,0.45,0.94); }
.slide { min-width:100%; position:relative; cursor:zoom-in; }
.slide img {
  width:100%; height:68vh; min-height:420px; max-height:700px;
  object-fit:cover; display:block;
  transition:transform .65s var(--ease-out), filter .4s;
  filter:brightness(.9) saturate(.95);
}
.slide:hover img { transform:scale(1.025); filter:brightness(.8) saturate(1.05); }
.slide-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(10,18,10,.8) 0%, transparent 55%);
  opacity:0; transition:opacity .4s;
}
.slide:hover .slide-overlay { opacity:1; }
.slide-info {
  position:absolute; bottom:28px; left:36px; right:36px;
  opacity:0; transform:translateY(10px);
  transition:opacity .35s .05s, transform .35s .05s;
}
.slide:hover .slide-info { opacity:1; transform:none; }
.slide-info .s-title { font-family:var(--display); font-size:1.5rem; color:var(--cream); display:block; margin-bottom:5px; }
.slide-info .s-cat { font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold); }
.slide-zoom {
  position:absolute; top:50%; left:50%;
  transform:translate(-50%,-50%) scale(.7);
  opacity:0; transition:opacity .35s, transform .35s; pointer-events:none;
}
.slide-zoom svg { width:42px; height:42px; color:rgba(255,255,255,.6); }
.slide:hover .slide-zoom { opacity:1; transform:translate(-50%,-50%) scale(1); }
.slide-line {
  position:absolute; bottom:0; left:0; width:0; height:2px;
  background:linear-gradient(90deg,var(--gold),rgba(200,150,42,.2));
  transition:width .6s var(--ease-out);
}
.slide:hover .slide-line { width:100%; }

.s-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:56px; height:56px;
  background:rgba(10,18,10,.75); border:1px solid rgba(200,150,42,.2);
  color:var(--cream); display:flex; align-items:center; justify-content:center;
  font-size:1.9rem; cursor:pointer; z-index:10;
  transition:background .25s, border-color .25s; user-select:none;
}
.s-arrow:hover { background:rgba(200,150,42,.18); border-color:var(--gold); }
.s-arrow.prev { left:20px; }
.s-arrow.next { right:20px; }
.s-counter {
  position:absolute; top:18px; right:20px;
  font-size:.62rem; letter-spacing:.18em; color:var(--text-on-dark-muted);
  background:rgba(10,18,10,.65); padding:6px 14px; z-index:5;
}

/* Thumbs */
.thumbs-wrap { margin-top:8px; overflow:hidden; }
.thumbs-track { display:flex; gap:6px; }
.thumb {
  flex-shrink:0; width:calc((100% - 5*6px)/6);
  aspect-ratio:4/3; overflow:hidden; cursor:pointer;
  opacity:.35; transition:opacity .3s; outline:2px solid transparent; outline-offset:-2px;
}
.thumb img { width:100%; height:100%; object-fit:cover; transition:transform .4s; }
.thumb:hover { opacity:.72; }
.thumb:hover img { transform:scale(1.06); }
.thumb.active { opacity:1; outline-color:var(--gold); }

/* Sep */
.cat-sep { max-width:1180px; margin:76px auto 0; padding:0 52px; }
.cat-sep hr { border:none; border-top:1px solid var(--border-dark); }

/* CTA */
.gallery-cta {
  background:var(--cedar); padding:76px 52px; text-align:center; margin-top:88px;
  position:relative; overflow:hidden;
}
.gallery-cta::before {
  content:''; position:absolute; inset:0;
  background:radial-gradient(ellipse at center, rgba(200,150,42,.1) 0%, transparent 70%);
}
.gallery-cta > * { position:relative; z-index:1; }
.gallery-cta .cta-line { width:1px; height:60px; background:linear-gradient(to bottom,transparent,var(--gold),transparent); margin:0 auto 30px; }
.gallery-cta h2 { color:var(--cream); margin-bottom:16px; }
.gallery-cta p  { color:var(--text-on-dark-sub); font-size:1rem; margin-bottom:30px; }

/* Lightbox */
.lb {
  position:fixed; inset:0; z-index:1000;
  background:rgba(6,10,6,0);
  display:flex; align-items:center; justify-content:center;
  pointer-events:none; transition:background .4s;
}
.lb.open { background:rgba(6,10,6,.97); pointer-events:all; }
.lb-close {
  position:fixed; top:20px; right:24px;
  background:none; border:none; cursor:pointer;
  color:var(--text-on-dark-muted); z-index:10; padding:6px;
  transition:color .25s, transform .3s;
}
.lb-close:hover { color:var(--cream); transform:rotate(90deg); }
.lb-close svg { width:22px; height:22px; }
.lb-img-wrap {
  max-width:92vw; max-height:88vh;
  opacity:0; transform:scale(.94);
  transition:opacity .35s .1s, transform .35s .1s;
}
.lb.open .lb-img-wrap { opacity:1; transform:scale(1); }
.lb-img-wrap img { max-width:92vw; max-height:88vh; object-fit:contain; display:block; transition:opacity .25s, transform .25s; }
.lb-img-wrap img.fading { opacity:0; transform:scale(.97); }

.lb-arr {
  position:fixed; top:50%; transform:translateY(-50%);
  background:rgba(10,18,10,.7); border:1px solid rgba(200,150,42,.2);
  color:var(--cream); width:56px; height:56px;
  display:flex; align-items:center; justify-content:center;
  font-size:2rem; cursor:pointer; z-index:1010;
  transition:background .25s, border-color .25s, opacity .3s;
  opacity:0; pointer-events:none;
}
.lb.open .lb-arr { opacity:1; pointer-events:all; }
.lb-arr:hover { background:rgba(200,150,42,.18); border-color:var(--gold); }
.lb-arr.prev { left:12px; }
.lb-arr.next { right:12px; }

.lb-cap {
  position:fixed; bottom:22px; left:50%; transform:translateX(-50%);
  text-align:center; pointer-events:none;
  opacity:0; transition:opacity .3s;
}
.lb.open .lb-cap { opacity:1; }
.lb-cap strong { font-family:var(--display); font-size:1.15rem; color:var(--cream); display:block; margin-bottom:4px; font-weight:400; }
.lb-cap span { font-size:.64rem; letter-spacing:.16em; color:var(--text-on-dark-muted); }

/* Responsive */
@media (max-width:960px) {
  .cat-nav-inner, .cat-header, .slider-wrap, .cat-sep { padding-left:24px; padding-right:24px; }
  .slide img { height:55vw; min-height:280px; }
  .thumb { width:calc((100% - 3*6px)/4); }
  .cat-big-num { display:none; }
}
@media (max-width:580px) {
  .slide img { height:72vw; }
  .thumb { width:calc((100% - 2*6px)/3); }
  .lb-arr { width:44px; height:44px; font-size:1.5rem; }
  .gallery-cta { padding:56px 24px; }
}
