/* Gallery Grid */
.homesite-gallery-grid {
display: flex;
flex-direction: column;
/* display: grid;
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); */
gap: 10px;
}

.homesite-gallery-item img {
display: block;
width: 100%;
/* aspect-ratio: 1/1;
object-fit: cover; */
cursor: pointer;
transition: opacity 0.2s;
}

.homesite-gallery-item img:hover { opacity: 0.8; }

/* Modal Core */
.hs-modal {
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
visibility: hidden;
opacity: 0;
transition: opacity 0.3s, visibility 0.3s;
}

.hs-modal[aria-hidden="false"] {
visibility: visible;
opacity: 1;
}

.hs-modal__overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.9);
}

/* Slides */
.hs-modal__stage {
position: relative;
width: 90%;
height: 80vh;
}

.hs-modal__slide {
position: absolute;
inset: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
opacity: 0;
transition: opacity 0.4s;
pointer-events: none;
}

.hs-modal__slide.is-active {
opacity: 1;
pointer-events: auto;
}

.hs-modal__slide img {
max-width: 100%;
max-height: 70vh;
box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}

.hs-modal__slide figcaption {
color: #fff;
margin-top: 15px;
font-size: 0.9rem;
text-align: center;
}

/* UI Elements */
.hs-modal__close,
.hs-modal__nav {
position: absolute;
background: none;
border: none;
color: white;
font-size: 2rem;
cursor: pointer;
z-index: 10;
padding: 20px;
}

.hs-modal__close { top: 20px; right: 20px; }
.hs-modal__nav--prev { left: 20px; top: 50%; transform: translateY(-50%); }
.hs-modal__nav--next { right: 20px; top: 50%; transform: translateY(-50%); }