.ke-place-gallery { max-width:50rem; margin-top:2.25rem; padding-top:1.35rem; border-top:1px solid var(--ke-rule); }
.ke-place-gallery > header { display:flex; align-items:end; justify-content:space-between; gap:1rem; margin-bottom:.8rem; }
.ke-place-gallery .ke-eyebrow { margin:0 0 .2rem; }
.ke-place-gallery h2 { margin:0; color:var(--ke-blue); font-size:1.25rem; }
.ke-place-gallery__count { margin:0; color:#626b97; font-size:.82rem; font-weight:800; white-space:nowrap; }
.ke-place-gallery__viewport { position:relative; overflow:hidden; border-radius:var(--ke-card-radius); background:var(--ke-mist); }
.ke-place-gallery__track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
.ke-place-gallery__track::-webkit-scrollbar { display:none; }
.ke-place-gallery__slide { flex:0 0 100%; width:100%; margin:0; scroll-snap-align:start; }
.ke-place-gallery__slide img { display:block; width:100%; height:clamp(14rem,34vw,23rem); object-fit:cover; }
.ke-place-gallery__slide figcaption { padding:.6rem .8rem; color:var(--ke-ink); font-size:.82rem; background:#fff; }
.ke-place-gallery__controls { position:absolute; right:.7rem; bottom:.7rem; display:flex; gap:.4rem; }
.ke-place-gallery__controls button { display:grid; width:2.35rem; height:2.35rem; padding:0; place-items:center; border:0; border-radius:999px; background:rgba(53,58,144,.92); color:#fff; font:inherit; font-size:1.1rem; font-weight:800; cursor:pointer; }
.ke-place-gallery__controls button:hover,.ke-place-gallery__controls button:focus-visible { background:var(--ke-orange); color:var(--ke-blue-deep); }
@media (max-width:599px) { .ke-place-gallery { margin-top:1.75rem; padding-top:1.05rem; } .ke-place-gallery__slide img { height:clamp(13rem,65vw,19rem); } }
