/* Predictable hidden behaviour */
[hidden] { display: none !important; }

/* Grid */
.gallery-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 1rem;
  margin-top: 1rem;
}
.gallery-item {
  width: 100%; height: 220px;
  object-fit: cover;
  border-radius: 10px;
  border: 2px solid var(--primary-color);
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  cursor: zoom-in;
  transition: transform .25s ease, box-shadow .25s ease;
}
.gallery-item:hover,
.gallery-item:focus {
  transform: scale(1.03);
  box-shadow: 0 8px 18px rgba(0,0,0,.65);
  outline: none;
}
.gallery-fallback { text-align: center; color: var(--accent-color); margin-top: 1rem; }

/* Lightbox */
.lightbox {
  position: fixed; inset: 0; z-index: 1000;
  background: rgba(0,0,0,.85);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  grid-template-rows: auto 1fr auto;
  align-items: center; justify-items: center;
  padding: 1rem;
}
.lightbox[aria-hidden="true"] { pointer-events: none; }
.lightbox img {
  grid-column: 1 / -1; grid-row: 2;
  max-width: 92vw; max-height: 82vh;
  border-radius: 10px;
  border: 2px solid var(--primary-color);
  box-shadow: 0 8px 24px rgba(0,0,0,.8);
  background: #000;
}
.lb-btn {
  position: absolute; top: 50%; transform: translateY(-50%);
  width: 46px; height: 46px; border-radius: 50%;
  border: 2px solid var(--primary-color);
  background: rgba(30,20,15,.6);
  color: var(--primary-color); font-size: 28px; line-height: 40px;
  cursor: pointer; user-select: none;
}
.lb-prev { left: 24px; }
.lb-next { right: 24px; }
.lb-close { top: 16px; right: 16px; transform: none; width: 40px; height: 40px; font-size: 26px; line-height: 34px; }

/* Section reveal */
.wrap.reveal { opacity: 0; transform: translateY(16px); transition: opacity .6s ease, transform .6s ease; }
.wrap.revealed { opacity: 1; transform: translateY(0); }

/* Small screens */
@media (max-width: 600px) {
  .gallery-item { height: 200px; }
  .lb-prev { left: 12px; }
  .lb-next { right: 12px; }
}
