.gallery-page { padding: 70px 0 100px; background: #fff; }
.gallery-filters { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 38px; }
.gallery-filters button { padding: 10px 18px; border: 1px solid #ded8cd; border-radius: 999px; background: #fff; color: #344454; font-size: 13px; font-weight: 700; transition: .2s; }
.gallery-filters button:hover, .gallery-filters button.active { border-color: #c9952e; background: #c9952e; color: #fff; }
.gallery-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.gallery-card { position: relative; overflow: hidden; min-height: 260px; padding: 0; border: 0; border-radius: 14px; background: #f4eee2; cursor: pointer; }
.gallery-card img { width: 100%; height: 100%; min-height: 260px; display: block; object-fit: cover; transition: transform .45s ease; }
.gallery-card::after { content: ""; position: absolute; inset: 45% 0 0; background: linear-gradient(transparent, rgba(6,36,67,.72)); }
.gallery-card span { position: absolute; z-index: 1; right: 18px; bottom: 15px; left: 18px; color: #fff; font-size: 13px; font-weight: 700; text-align: left; }
.gallery-card:hover img { transform: scale(1.045); }
.gallery-card[hidden] { display: none; }
.gallery-empty { padding: 70px 20px; border: 1px solid #e7e1d6; border-radius: 18px; background: #fbf8f1; text-align: center; }
.gallery-empty h2, .gallery-section-heading h2 { color: #062443; font-family: "Playfair Display", serif; }
.page-gallery-section { padding: 78px 0 95px; background: #fbf8f1; }
.gallery-section-heading { max-width: 700px; margin-bottom: 32px; }
.gallery-section-heading p { margin: 0 0 5px; color: #c9952e; font-size: 11px; font-weight: 700; letter-spacing: .17em; }
.gallery-section-heading h2 { margin: 0; font-size: 40px; }
.gallery-section-heading div { margin-top: 10px; color: #637080; }
.gallery-lightbox { width: min(1100px, calc(100% - 32px)); max-width: none; padding: 0; border: 0; border-radius: 16px; background: transparent; overflow: visible; }
.gallery-lightbox::backdrop { background: rgba(2,18,34,.88); backdrop-filter: blur(4px); }
.gallery-lightbox img { width: 100%; max-height: 84vh; display: block; border-radius: 16px; object-fit: contain; background: #071a2d; }
.gallery-lightbox-close { position: absolute; z-index: 2; top: -16px; right: -12px; width: 42px; height: 42px; border: 2px solid #fff; border-radius: 50%; background: #c9952e; color: #fff; font-size: 27px; line-height: 1; cursor: pointer; }
@media (max-width: 900px) { .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .gallery-page, .page-gallery-section { padding: 55px 0 70px; } .gallery-grid { grid-template-columns: 1fr; } .gallery-card, .gallery-card img { min-height: 240px; } .gallery-filters { justify-content: flex-start; } }
