
/* ---------- Lightbox ---------- */
.c-lightbox{
  position: fixed; inset:0; z-index: 300;
  display:flex; align-items:center; justify-content:center;
  background: rgba(6,12,24,.92);
  opacity:0; visibility:hidden;
  transition: opacity .35s var(--ease-out), visibility .35s;
}
.c-lightbox.is-open{ opacity:1; visibility:visible; }

.c-lightbox__figure{
  position:relative; max-width: min(92vw, 1200px); max-height: 86vh;
  transform: scale(.96); transition: transform .35s var(--ease-out);
}
.c-lightbox.is-open .c-lightbox__figure{ transform: scale(1); }
.c-lightbox__figure img{
  display:block; max-width:100%; max-height:86vh; width:auto; height:auto;
  border-radius: var(--radius-sm); box-shadow: 0 12px 28px rgba(0,0,0,.4);
}
.c-lightbox__caption{
  margin-top: var(--space-3); text-align:center; color: rgba(255,255,255,.75); font-size:.85rem;
}

.c-lightbox__close, .c-lightbox__prev, .c-lightbox__next{
  position:fixed; display:flex; align-items:center; justify-content:center;
  width:48px; height:48px; border-radius:0;
  background: rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.2); color:#fff;
  transition: background .3s, transform .3s;
}
.c-lightbox__close:hover, .c-lightbox__prev:hover, .c-lightbox__next:hover{ background: rgba(255,255,255,.18); }
.c-lightbox__close{ top: var(--space-6); right: var(--space-6); }
.c-lightbox__prev{ left: var(--space-6); top:50%; transform: translateY(-50%); }
.c-lightbox__next{ right: var(--space-6); top:50%; transform: translateY(-50%); }
.c-lightbox__prev:hover, .c-lightbox__next:hover{ transform: translateY(-50%) scale(1.06); }

.c-lightbox__counter{
  position:fixed; bottom: var(--space-6); left:50%; transform:translateX(-50%);
  color: rgba(255,255,255,.6); font-size:.8rem; letter-spacing:.05em;
}

/* ---------- Responsive ---------- */
@media (max-width:1200px){
  .c-gallery{
    grid-template-columns:repeat(auto-fit,minmax(380px,1fr));
  }
}

@media (max-width:768px){
  .c-gallery{
    grid-template-columns:1fr;
    gap:20px;
  }

  .c-gallery__item{
    aspect-ratio:16/10;
  }

  .c-lightbox__prev,
  .c-lightbox__next,
  .c-lightbox__close{
    width:40px;
    height:40px;
  }

  .c-lightbox__prev{left:12px;}
  .c-lightbox__next{right:12px;}
  .c-lightbox__close{top:12px;right:12px;}
}
/* ======================================================================
   GALLERY — Uniform rectangular gallery
   ====================================================================== */

.c-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(480px,1fr));
  gap:28px;
}

.c-gallery__item{
  position:relative;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius: var(--radius-md);
  cursor:zoom-in;
  background:var(--gray-100);
  border: 1px solid var(--gray-200);
  transition: border-color .3s var(--ease-out);
}

.c-gallery__item:hover{
  border-color: var(--gray-300);
}

.c-gallery__item img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  transition:transform .5s var(--ease-out);
}

.c-gallery__item:hover img{
  transform:scale(1.03);
}

.c-gallery__item::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(8,18,38,.6));
  opacity:0;
  transition:opacity .3s;
}

.c-gallery__item:hover::after{
  opacity:1;
}

.c-gallery__caption{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  padding:18px 22px;
  color:#fff;
  font-size:.95rem;
  font-weight:600;

  opacity:0;
  transform:translateY(10px);
  transition:.35s;
}

.c-gallery__item:hover .c-gallery__caption{
  opacity:1;
  transform:translateY(0);
}
