/* Gallery */
.pkg-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
@media (min-width: 720px) { .pkg-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 9.5rem; } }
.pkg-g-item { position: relative; overflow: hidden; border-radius: 1rem; background: #e9e1d3; aspect-ratio: 4 / 3; cursor: zoom-in; padding: 0; border: 0; }
.pkg-g-big { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
@media (min-width: 720px) { .pkg-g-item { aspect-ratio: auto; } .pkg-g-big { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; } }
.pkg-g-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.pkg-g-item:hover img { transform: scale(1.08); }
.pkg-g-item::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 55%, rgba(31,21,16,.55)); opacity: 0; transition: opacity .4s; }
.pkg-g-item:hover::after, .pkg-g-item:focus-visible::after { opacity: 1; }
.pkg-g-zoom { position: absolute; right: .8rem; bottom: .8rem; z-index: 2; width: 2.3rem; height: 2.3rem; display: grid; place-items: center; border-radius: 50%; color: #fff; background: rgba(255,255,255,.16); border: 1px solid rgba(255,255,255,.4); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); opacity: 0; transform: translateY(6px); transition: opacity .35s, transform .35s; }
.pkg-g-item:hover .pkg-g-zoom, .pkg-g-item:focus-visible .pkg-g-zoom { opacity: 1; transform: none; }
@media (hover: none) { .pkg-g-zoom { opacity: 1; transform: none; } }

/* Lightbox */
.pkg-lb { position: fixed; inset: 0; z-index: 200; display: flex; align-items: center; justify-content: center; padding: 3.5rem 1rem 2rem; background: rgba(20,13,9,.94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); }
.pkg-lb[hidden] { display: none; }
.pkg-lb-open { overflow: hidden; }
.pkg-lb-fig { margin: 0; max-width: min(1100px, 100%); text-align: center; }
.pkg-lb-fig img { max-width: 100%; max-height: 78vh; border-radius: .75rem; box-shadow: 0 30px 80px rgba(0,0,0,.6); opacity: 0; transform: scale(.98); transition: opacity .45s ease, transform .45s ease; }
.pkg-lb-fig img.is-in { opacity: 1; transform: none; }
.pkg-lb-fig figcaption { margin-top: 1rem; color: rgba(255,255,255,.78); font-size: .85rem; letter-spacing: .04em; }
.pkg-lb-close, .pkg-lb-nav { position: absolute; display: grid; place-items: center; color: #fff; background: rgba(255,255,255,.12); border: 1px solid rgba(255,255,255,.3); border-radius: 50%; transition: background .25s; }
.pkg-lb-close:hover, .pkg-lb-nav:hover { background: rgba(255,255,255,.26); }
.pkg-lb-close { top: 1rem; right: 1rem; width: 2.8rem; height: 2.8rem; }
.pkg-lb-nav { top: 50%; width: 3rem; height: 3rem; margin-top: -1.5rem; }
.pkg-lb-prev { left: .75rem; } .pkg-lb-next { right: .75rem; }
@media (min-width: 900px) { .pkg-lb-prev { left: 2rem; } .pkg-lb-next { right: 2rem; } }

/* Resort gallery: sixth tile spans two columns so the grid always fills its rows */
.rg-grid .pkg-g-item:nth-child(6) { grid-column: span 2; }
