/* ============================================================================
 *  Gallery page — masonry grid + lightbox
 *  Enqueued only on page-galeria via functions.php
 * ========================================================================== */


/* ===== Gallery hero ===== */
.gal-page-hero {
  padding:60px 0 56px;
  background:linear-gradient(180deg,var(--paper) 0%,var(--sand-2) 100%);
  position:relative;overflow:hidden;
}
.gal-page-hero::before {
  content:"";position:absolute;top:-100px;right:-100px;width:400px;height:400px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(127,169,216,0.15) 0%, transparent 70%);
}
.gal-page-hero .ah-title {
  margin-bottom:18px;
}
.gal-page-hero .ah-desc {
  margin-bottom:0;
}
.gal-page-hero .ah-meta {
  margin-top:28px;
}


/* ===== Filter chips bar ===== */
.gal-filter-bar {
  background:var(--white);
  border-bottom:1px solid var(--line);
  position:sticky;top:84px;z-index:30;
}
.gal-filter-inner {
  padding:18px 0;
  display:flex;align-items:center;gap:12px;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.gal-filter-inner::-webkit-scrollbar { display:none; }
.gal-filter-inner .chip { flex-shrink:0; }


/* ===== Masonry grid ===== */
.gal-page-section { padding:48px 0 80px; }

.gal-masonry {
  /* CSS columns give us masonry-like layout that works everywhere */
  column-count:3;
  column-gap:16px;
}
@media(max-width:980px){ .gal-masonry { column-count:2; } }
@media(max-width:560px){ .gal-masonry { column-count:1; } }

.gal-item {
  display:block;
  position:relative;
  margin:0 0 16px;
  border-radius:8px;
  overflow:hidden;
  break-inside:avoid;
  page-break-inside:avoid;          /* legacy */
  -webkit-column-break-inside:avoid;/* legacy */
  background:#0B2545;
  cursor:zoom-in;
  box-shadow:var(--shadow);
  transition:all .3s ease;
}
.gal-item:hover {
  transform:translateY(-4px);
  box-shadow:var(--shadow-lg);
}
.gal-item img {
  width:100%;
  height:auto;
  display:block;
  transition:transform .6s ease, filter .3s ease;
}
.gal-item:hover img {
  transform:scale(1.04);
  filter:brightness(0.92);
}

/* Caption overlay */
.gal-item .gal-cap {
  position:absolute;
  left:0;right:0;bottom:0;
  padding:16px 18px 14px;
  background:linear-gradient(180deg, transparent 0%, rgba(11,37,69,0.85) 100%);
  color:var(--white);
  pointer-events:none;
  opacity:0;
  transform:translateY(10px);
  transition:opacity .3s ease, transform .3s ease;
}
.gal-item:hover .gal-cap {
  opacity:1;transform:translateY(0);
}
.gal-cap .gal-cap-cat {
  display:inline-block;
  font-size:9.5px;letter-spacing:0.22em;text-transform:uppercase;font-weight:700;
  color:var(--accent);
  margin-bottom:4px;
}
.gal-cap .gal-cap-title {
  font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.2;
  color:var(--white);
}

/* Empty state */
.gal-empty {
  text-align:center;padding:80px 20px;
  color:var(--muted);
}
.gal-empty h3 {
  font-family:var(--serif);font-size:32px;color:var(--navy);margin-bottom:14px;
}


/* ===== Load more / pagination ===== */
.gal-load-more {
  text-align:center;
  margin-top:48px;
}
.gal-load-more .btn { min-width:200px; justify-content:center; }


/* ============================================================================
 *  Lightbox
 * ========================================================================== */
.lb {
  position:fixed; inset:0; z-index:9999;
  background:rgba(8,23,46,0.96);
  display:none;
  align-items:center; justify-content:center;
  opacity:0;
  transition:opacity .2s ease;
}
.lb.open {
  display:flex;
  opacity:1;
}

.lb-stage {
  position:relative;
  max-width:90vw;
  max-height:85vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
}
.lb-img {
  max-width:90vw;
  max-height:80vh;
  object-fit:contain;
  border-radius:6px;
  box-shadow:0 30px 80px rgba(0,0,0,0.6);
  background:#0B2545;
}
.lb-caption {
  margin-top:14px;
  text-align:center;
  color:#C9D4E2;
  font-family:var(--serif);
  font-style:italic;
  font-size:16px;
  max-width:720px;
  line-height:1.5;
}
.lb-caption .cat {
  display:block;
  font-family:var(--sans);
  font-style:normal;
  font-size:10px;letter-spacing:0.22em;text-transform:uppercase;font-weight:700;
  color:var(--accent);
  margin-bottom:6px;
}
.lb-counter {
  position:absolute;
  top:24px;left:50%;transform:translateX(-50%);
  color:#A7B7CC;
  font-size:12px;letter-spacing:0.16em;text-transform:uppercase;font-weight:500;
}

/* Close button */
.lb-close {
  position:absolute;
  top:20px;right:20px;
  width:48px;height:48px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:50%;
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  font-size:24px;
  transition:all .2s ease;
  z-index:10;
}
.lb-close:hover {
  background:rgba(200,147,47,0.2);
  border-color:var(--accent);
  transform:rotate(90deg);
}

/* Prev / Next arrows */
.lb-nav {
  position:absolute;top:50%;transform:translateY(-50%);
  width:56px;height:56px;
  background:rgba(255,255,255,0.08);
  border:1px solid rgba(255,255,255,0.18);
  border-radius:50%;
  color:var(--white);
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;
  transition:all .2s ease;
  z-index:10;
}
.lb-nav:hover {
  background:rgba(200,147,47,0.2);
  border-color:var(--accent);
}
.lb-prev { left:24px; }
.lb-next { right:24px; }
.lb-nav svg { width:24px; height:24px; }
.lb-nav:disabled {
  opacity:0.3;
  cursor:not-allowed;
  background:transparent;
  border-color:rgba(255,255,255,0.05);
}
.lb-nav:disabled:hover {
  background:transparent;
  border-color:rgba(255,255,255,0.05);
}

@media(max-width:768px){
  .lb-nav { width:44px; height:44px; }
  .lb-prev { left:8px; }
  .lb-next { right:8px; }
  .lb-close { top:12px; right:12px; width:40px; height:40px; font-size:20px; }
  .lb-caption { font-size:14px; padding:0 16px; }
}

/* Body scroll lock when lightbox open */
body.lb-open { overflow:hidden; }


/* Smooth fade-in for images */
@keyframes gal-fade-in {
  from { opacity:0; transform:translateY(8px); }
  to   { opacity:1; transform:translateY(0); }
}
.gal-item {
  animation:gal-fade-in .5s ease both;
}
.gal-item:nth-child(2)  { animation-delay:.05s; }
.gal-item:nth-child(3)  { animation-delay:.10s; }
.gal-item:nth-child(4)  { animation-delay:.15s; }
.gal-item:nth-child(5)  { animation-delay:.20s; }
.gal-item:nth-child(6)  { animation-delay:.25s; }
.gal-item:nth-child(7)  { animation-delay:.30s; }
.gal-item:nth-child(8)  { animation-delay:.35s; }
.gal-item:nth-child(9)  { animation-delay:.40s; }
.gal-item:nth-child(10) { animation-delay:.45s; }
@media (prefers-reduced-motion: reduce) {
  .gal-item { animation:none; }
}
