.asw-widget { margin: 1.5rem 0; max-width: 100%; }
.asw-widget [hidden], .asw-lightbox [hidden] { display: none !important; }
.asw-slide { margin: 0 0 1rem; text-align: center; }
.asw-slide > img, .asw-slide > a > img { display: block; width: 100%; height: auto; max-height: var(--asw-image-height, 75vh); object-fit: contain; margin: auto; }
.asw-slide-content img { max-width: 100%; height: auto; }
.asw-slide figcaption { padding: .65rem .25rem; line-height: 1.5; }
.asw-controls { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .7rem; }
.asw-controls button, .asw-thumbs button { border: 1px solid currentColor; border-radius: .25rem; background: transparent; color: inherit; padding: .4rem .8rem; cursor: pointer; min-height: 2.75rem; }
.asw-controls button:focus-visible, .asw-thumbs button:focus-visible, .asw-slide a:focus-visible { outline: 3px solid #2b6ba1; outline-offset: 3px; }
.asw-thumbs { display: flex; gap: .4rem; overflow-x: auto; padding: .65rem .15rem; }
.asw-thumbs button { flex: 0 0 auto; padding: .2rem; opacity: .65; }
.asw-thumbs button[aria-current="true"] { opacity: 1; outline: 2px solid currentColor; outline-offset: 1px; }
.asw-thumbs img { display: block; width: 80px; height: 60px; object-fit: cover; }
.asw-lightbox { box-sizing: border-box; width: min(96vw, 1400px); max-width: 96vw; max-height: 95vh; padding: .8rem; border: 0; border-radius: .3rem; background: #141414; color: #fff; overflow: auto; }
.asw-lightbox::backdrop { background: rgb(0 0 0 / .8); }
.asw-lightbox-toolbar { display: flex; justify-content: flex-end; gap: .5rem; margin-bottom: .5rem; }
.asw-lightbox-toolbar button { min-width: 2.75rem; min-height: 2.75rem; border: 1px solid #ccc; border-radius: .2rem; color: #fff; background: #252525; font-size: 1.4rem; cursor: pointer; }
.asw-lightbox-toolbar button:focus-visible { outline: 3px solid #8dc7ff; outline-offset: 2px; }
.asw-lightbox-media { display: flex; justify-content: center; align-items: center; }
.asw-lightbox-media img, .asw-lightbox-media video { display: block; max-width: 100%; max-height: 76vh; object-fit: contain; }
.asw-lightbox-media iframe { width: 100%; height: min(70vh, 700px); border: 0; }
.asw-lightbox-caption { margin: .7rem 0 .2rem; text-align: center; white-space: pre-line; }
.asw-map-frame, .asw-map-native { display: block; width: 100%; height: var(--asw-map-height, 450px); border: 0; }
.asw-map-points { padding-left: 1.3rem; }
.asw-map-points li { margin-bottom: .6rem; }
.asw-unavailable { padding: .8rem 1rem; border-left: 3px solid #9c825a; background: #f6f2eb; }
@media (max-width: 600px) {
  .asw-lightbox { width: 98vw; max-width: 98vw; padding: .5rem; }
  .asw-map-frame, .asw-map-native { height: min(var(--asw-map-height, 450px), 70vh); }
}
