

.gal-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin-bottom: 36px; }

.gal-feature { display: grid; grid-template-columns: 1.4fr 1fr; gap: 14px; margin-bottom: 14px; }
.gal-feature__big { border-radius: var(--radius-l); overflow: hidden; position: relative; min-height: 480px; }
.gal-feature__big img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; }
.gal-feature__big:hover img { transform: scale(1.05); }
.gal-feature__side { display: grid; gap: 14px; grid-template-rows: 1fr 1fr; }
.gal-feature__side .media-frame { height: 100%; }

.gal-rooms { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.gal-room { position: relative; border-radius: var(--radius-l); overflow: hidden; aspect-ratio: 4/5; }
.gal-room img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; }
.gal-room:hover img { transform: scale(1.07); }
.gal-room__cap { position: absolute; inset: auto 0 0 0; padding: 60px 24px 24px; background: linear-gradient(transparent, rgba(15,13,10,0.85)); color: #fff; }
.gal-room__cap h4 { font-family: var(--font-display); font-size: 1.2rem; margin: 0 0 6px; }
.gal-room__cap p { font-size: 0.8rem; margin: 0; opacity: 0.8; }

.gal-ceremony { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(28px,5vw,60px); align-items: center; }
.gal-ceremony__imgs { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gal-ceremony__imgs .media-frame { aspect-ratio: 3/4; }
.gal-ceremony__imgs .media-frame:nth-child(2) { margin-top: 40px; }

.gal-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 30px; text-align: center; }

.gal-trip { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.gal-trip .media-frame { aspect-ratio: 1; }

.gal-video { position: relative; border-radius: var(--radius-xl); overflow: hidden; min-height: 480px; background-size: cover; background-position: center; display: flex; align-items: center; justify-content: center; }
.gal-video .play-btn { width: 92px; height: 92px; font-size: 1.5rem; z-index: 2; }

@media (max-width: 900px) {
  .gal-feature { grid-template-columns: 1fr; }
  .gal-feature__big { min-height: 320px; }
  .gal-rooms { grid-template-columns: 1fr; }
  .gal-room { aspect-ratio: 16/10; }
  .gal-ceremony { grid-template-columns: 1fr; }
  .gal-stats { grid-template-columns: 1fr; gap: 20px; }
  .gal-trip { grid-template-columns: repeat(2,1fr); }
  .gal-video { min-height: 320px; }
}
