/* =========================================================
   Horizonte Ambateño · Galería
   ========================================================= */
.gl-hero { position: relative; overflow: hidden; padding: calc(var(--header-h) + 60px) 0 40px; background: var(--cream); }
.gl-hero::after { content: ''; position: absolute; right: -160px; top: -200px; width: 540px; height: 540px; border-radius: 50%; border: 34px solid rgba(240, 168, 30, .1); }
.gl-hero .display { color: var(--forest); margin: 14px 0 12px; }
.gl-hero .display .script { font-size: 1.25em; }
.gl-filters { position: relative; z-index: 1; display: flex; gap: 8px; flex-wrap: wrap; margin-top: 28px; }
.gl-chip { padding: 10px 20px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #fff; color: var(--forest); box-shadow: inset 0 0 0 1px var(--line); transition: background .25s, color .25s; }
.gl-chip[aria-pressed="true"] { background: var(--forest); color: var(--cream); box-shadow: none; }

.gl-main { padding: 20px 0 110px; background: var(--cream); }
.gl-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 230px; grid-auto-flow: dense; gap: 16px; }
.gl-item { position: relative; margin: 0; overflow: hidden; border-radius: var(--r); background: var(--sand); cursor: zoom-in; box-shadow: var(--shadow-sm); animation: glIn .6s var(--ease) both; }
@keyframes glIn { from { opacity: 0; transform: scale(.96) translateY(14px); } }
.gl-item.wide { grid-column: span 2; }
.gl-item.tall { grid-row: span 2; }
.gl-item img, .gl-item svg { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.gl-item:hover img, .gl-item:hover svg { transform: scale(1.06); }
.gl-item figcaption { position: absolute; inset: auto 0 0 0; padding: 50px 18px 16px; color: #fff; font-weight: 600; font-size: 15px; background: linear-gradient(transparent, rgba(14, 51, 34, .85)); transform: translateY(8px); opacity: .92; transition: transform .4s var(--ease), opacity .4s; }
.gl-item:hover figcaption { transform: none; opacity: 1; }
.gl-item figcaption small { display: block; font-size: 10px; letter-spacing: .2em; text-transform: uppercase; color: var(--gold-2); }

.gl-cta { padding: 80px 0; background: var(--forest); color: var(--cream); }
.gl-cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; flex-wrap: wrap; }
.gl-cta h2 { margin: 0; font-family: var(--f-serif); font-size: clamp(2rem, 4.2vw, 3.4rem); font-weight: 600; }
.gl-cta .script { color: var(--gold-2); font-size: 1.2em; }
.gl-cta-actions { display: flex; gap: 12px; flex-wrap: wrap; }

.lightbox { position: fixed; inset: 0; z-index: 150; display: grid; grid-template-columns: 80px 1fr 80px; align-items: center; background: rgba(8, 26, 17, .94); backdrop-filter: blur(8px); animation: lbIn .3s ease; }
.lightbox[hidden] { display: none; }
@keyframes lbIn { from { opacity: 0; } }
.lb-stage { margin: 0; grid-column: 2; display: grid; justify-items: center; gap: 14px; touch-action: pan-y; }
.lb-media { width: min(100%, 1100px); max-height: 78vh; aspect-ratio: 4 / 3; border-radius: var(--r); overflow: hidden; background: var(--sand); }
.lb-media img, .lb-media svg { width: 100%; height: 100%; object-fit: contain; }
.lb-stage figcaption { color: var(--cream); font-size: 15px; text-align: center; }
.lb-stage figcaption small { display: block; color: var(--gold-2); letter-spacing: .2em; font-size: 11px; text-transform: uppercase; }
.lb-btn { width: 52px; height: 52px; border-radius: 50%; display: grid; place-items: center; justify-self: center; background: rgba(247, 243, 234, .1); color: var(--cream); transition: background .2s; }
.lb-btn:hover { background: rgba(247, 243, 234, .22); }
.lb-btn svg { width: 22px; height: 22px; }
.lb-close { position: absolute; top: 18px; right: 18px; }

@media (max-width: 960px) { .gl-grid { grid-template-columns: repeat(2, 1fr); grid-auto-rows: 200px; } }
@media (max-width: 560px) {
  .gl-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: 160px; gap: 10px; }
  .gl-item.wide { grid-column: span 2; }
  .gl-item figcaption { font-size: 13px; padding: 40px 12px 12px; }
  .lightbox { grid-template-columns: 1fr; padding: 16px; }
  .lb-stage { grid-column: 1; }
  .lb-prev, .lb-next { position: absolute; bottom: 24px; }
  .lb-prev { left: calc(50% - 64px); }
  .lb-next { right: calc(50% - 64px); }
}
