.media-gallery { margin-block:28px; min-width:0; }
.media-gallery-heading { margin:0 0 18px; }
.media-gallery-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.media-gallery-grid figure { margin:0; min-width:0; }
.site .media-gallery-item { display:block; position:relative; padding:0; margin:0; overflow:hidden; background:var(--forest,#18372e); color:#fff7eb; border-radius:4px; aspect-ratio:4/3; }
.media-gallery-item img { width:100%; height:100%; object-fit:cover; }
.media-gallery-item:focus-visible { outline:3px solid var(--coral,#ff7a45); outline-offset:3px; }
.media-gallery-placeholder { display:grid; place-items:center; width:100%; height:100%; font-size:32px; }
.media-gallery-play { position:absolute; bottom:10px; left:10px; padding:5px 8px; background:#18372e; color:#fff7eb; font-size:12px; }
.media-gallery figcaption { margin-top:8px; font-size:13px; line-height:1.5; overflow-wrap:anywhere; }
.media-gallery-dialog { position:fixed; inset:0; margin:auto; width:min(1000px,94vw); max-width:94vw; max-height:94dvh; padding:44px 16px 16px; border:0; border-radius:8px; background:#12251f; color:#fff7eb; overflow:auto; }
.media-gallery-dialog::backdrop { background:rgb(0 0 0 / .8); }
.media-gallery-stage { display:flex; align-items:center; justify-content:center; min-height:100px; }
.media-gallery-stage img,.media-gallery-stage video { display:block; max-width:100%; max-height:68dvh; object-fit:contain; }
.media-gallery-stage iframe { width:100%; aspect-ratio:16/9; border:0; }
.site .media-gallery-dialog .media-gallery-caption { text-transform:none; letter-spacing:normal; color:inherit; margin:12px 0; font-size:15px; line-height:1.5; overflow-wrap:anywhere; }
.media-gallery-controls { display:flex; align-items:center; justify-content:center; gap:24px; }
.media-gallery-dialog button { border:1px solid #fff7eb; border-radius:4px; color:inherit; background:transparent; min-width:44px; min-height:44px; cursor:pointer; }
.media-gallery-dialog .media-gallery-close { position:absolute; right:5px; top:0; border:0; font-size:28px; }
.media-gallery-dialog button:focus-visible { outline:3px solid #ff7a45; outline-offset:2px; }
.site .map-details .map-detail { overflow-y:auto; }
.map-detail>img { flex-shrink:0; }
.map-detail .media-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.map-detail .media-gallery-heading { font-size:20px; }
.map-detail .media-gallery-item { font-weight:400; }
@media(max-width:600px) { .media-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; } }
