.maidly-gallery__filters { display: flex; flex-wrap: wrap; justify-content: center; gap: .75rem; margin-block-end: 2rem; }
.maidly-gallery__filter { border: 1px solid #dce7e8; border-radius: 999px; background: #fff; color: #15323a; cursor: pointer; padding: .7rem 1.25rem; }
.maidly-gallery__filter.is-active, .maidly-gallery__filter:hover, .maidly-gallery__filter:focus-visible { border-color: #145667; background: #145667; color: #fff; }
.maidly-gallery__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; }
.maidly-gallery__item { position: relative; display: block; overflow: hidden; min-height: 19rem; border: 0; border-radius: 1.5rem; background: #eaf0f1; cursor: zoom-in; padding: 0; }
.maidly-gallery__item[hidden] { display: none; }
.maidly-gallery__image { width: 100%; height: 100%; min-height: 19rem; object-fit: cover; transition: transform 300ms ease; }
.maidly-gallery__item:hover .maidly-gallery__image, .maidly-gallery__item:focus-visible .maidly-gallery__image { transform: scale(1.04); }
.maidly-gallery__caption { position: absolute; inset-inline: 1rem; inset-block-end: 1rem; border-radius: .8rem; background: rgba(16, 67, 78, .9); color: #fff; padding: .6rem .9rem; text-align: start; }
.maidly-gallery__dialog { position: fixed; z-index: 99999; inset: 0; display: grid; place-items: center; padding: 1.5rem; }
.maidly-gallery__dialog[hidden] { display: none; }
.maidly-gallery__backdrop { position: absolute; inset: 0; border: 0; background: rgba(5, 24, 29, .88); cursor: zoom-out; }
.maidly-gallery__dialog-content { position: relative; z-index: 1; max-width: min(70rem, 94vw); max-height: 90vh; }
.maidly-gallery__dialog-image { display: block; max-width: 100%; max-height: 82vh; border-radius: 1.25rem; object-fit: contain; }
.maidly-gallery__dialog-title { margin: .7rem 0 0; color: #fff; text-align: center; }
.maidly-gallery__close { position: absolute; z-index: 2; inset-block-start: .75rem; inset-inline-end: .75rem; width: 2.75rem; height: 2.75rem; border: 0; border-radius: 50%; background: #fff; color: #15323a; cursor: pointer; font-size: 1.8rem; line-height: 1; }
.maidly-gallery-dialog-open { overflow: hidden; }

@media (max-width: 767px) {
	.maidly-gallery__grid { grid-template-columns: 1fr; }
	.maidly-gallery__item, .maidly-gallery__image { min-height: 16rem; }
}

@media (min-width: 768px) and (max-width: 1024px) {
	.maidly-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
	.maidly-gallery__image { transition: none; }
}
