/* ============================================================
   AURA — GALLERY CSS
   ============================================================ */

.gallery-wrap {
  padding: 160px var(--px) 120px;
  background: var(--bg);
}
@media (max-width: 768px) { .gallery-wrap { padding: 120px var(--px-sm) 80px; } }

.gallery-inner { max-width: var(--max-w); margin: 0 auto; }

/* Header */
.gallery-header {
  display: flex; flex-direction: column; align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 96px;
  border-bottom: 1px solid rgba(197,160,89,.1);
  padding-bottom: 48px;
}
@media (min-width: 768px) { .gallery-header { flex-direction: row; align-items: baseline; } }

.gallery-title {
  font-family: var(--font-serif);
  font-size: clamp(3rem, 7vw, 7rem);
  font-style: italic; margin-bottom: 16px;
}
.gallery-subtitle {
  font-size: 10px; text-transform: uppercase;
  letter-spacing: .8em; color: var(--gold); font-weight: 700;
}
.gallery-note {
  max-width: 260px; text-align: right;
  font-style: italic; font-size: 17px; line-height: 1.7; opacity: .4;
  display: none;
}
@media (min-width: 768px) { .gallery-note { display: block; } }

/* Grid */
.gallery-grid {
  display: grid; grid-template-columns: 1fr; gap: 32px;
}
@media (min-width: 768px) { .gallery-grid { grid-template-columns: repeat(12,1fr); gap: 48px; } }

.gallery-item {
  position: relative; overflow: hidden;
  border-radius: 1rem; cursor: crosshair;
}
.gallery-item img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform 2s, filter 2s;
  filter: grayscale(60%);
  display: block;
}
.gallery-item:hover img { transform: scale(1.1); filter: grayscale(0); }

.gallery-info {
  position: absolute; inset-x: 0; bottom: 0; padding: 32px;
  background: linear-gradient(to top, rgba(0,0,0,.85), rgba(0,0,0,.2), transparent);
  opacity: 0; transform: translateY(16px);
  transition: opacity .7s, transform .7s;
}
.gallery-item:hover .gallery-info { opacity: 1; transform: translateY(0); }
.gallery-info-cat {
  font-size: 10px; text-transform: uppercase;
  letter-spacing: .4em; color: var(--gold); margin-bottom: 8px; display: block;
}
.gallery-info-title { font-family: var(--font-serif); font-size: 24px; color: #fff; }

.gallery-corner {
  position: absolute; top: 24px; right: 24px;
  width: 32px; height: 32px;
  border-top: 1px solid rgba(255,255,255,.3);
  border-right: 1px solid rgba(255,255,255,.3);
  opacity: 0; transition: opacity .7s;
}
.gallery-item:hover .gallery-corner { opacity: 1; }

/* Aspect ratio helpers */
.g-tall   { aspect-ratio: 3/4; }
.g-wide   { aspect-ratio: 16/9; }
.g-square { aspect-ratio: 1; }

.g-col-4 { grid-column: span 1; }
@media (min-width: 768px) { .g-col-4 { grid-column: span 4; } }
.g-col-8 { grid-column: span 1; }
@media (min-width: 768px) { .g-col-8 { grid-column: span 8; } }

/* Curator note */
.curator-note {
  margin-top: 128px; padding: 80px 20px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.05);
  border-radius: 4rem; text-align: center;
}
.curator-note p {
  font-family: var(--font-serif); font-style: italic;
  font-size: clamp(1.2rem, 2vw, 1.8rem);
  opacity: .7; line-height: 1.7;
  max-width: 600px; margin: 0 auto 48px;
}
.curator-line { width: 1px; height: 80px; background: rgba(197,160,89,.3); margin: 0 auto; }
