.visit-gallery { min-width: 0; }
.gallery-stage { position: relative; min-height: 0; overflow: hidden; border-radius: 12px; background: var(--paper); }
.gallery-track { display: flex; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-slide { flex: 0 0 100%; min-width: 0; scroll-snap-align: start; scroll-snap-stop: always; }
.visit-photo .gallery-slide img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 0; }
.gallery-arrow { position: absolute; z-index: 1; top: 50%; transform: translateY(-50%); width: 44px; height: 44px; border: 0; border-radius: 0; color: #ffffffe6; background: transparent; font: 34px/1 Arial, sans-serif; padding: 0; box-shadow: none; text-shadow: 0 1px 4px #000c, 0 0 8px #0008; }
.gallery-prev { left: 2px; }
.gallery-next { right: 2px; }
.gallery-arrow:disabled { opacity: .2; }
.gallery-counter { position: absolute; right: 8px; bottom: 8px; padding: 3px 9px; border-radius: 14px; background: #102a22dc; color: white; font-size: 11px; pointer-events: none; }
.gallery-caption { overflow-wrap: anywhere; }
.food-card .compact-photo { margin: 14px 0; }
.place-card-button { display: flex; align-items: flex-start; gap: 11px; }
.place-card-copy { flex: 1; min-width: 0; }
.place-number { position: relative; width: 48px; height: 48px; overflow: hidden; }
.place-number img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.place-number-label { position: relative; z-index: 1; }
.place-number.has-photo::after { content: ""; position: absolute; inset: 0; background: linear-gradient(transparent, #0004); }
.place-number.has-photo .place-number-label { color: #ffffffd9; font-size: 22px; font-weight: 600; text-shadow: 0 2px 4px #000d, 0 0 9px #000b; }
.day-stops .meal-photo { margin: 9px 0 7px; }
.day-stops .meal-photo img { max-height: 180px; aspect-ratio: 16 / 10; object-fit: cover; }
.day-options { margin-top: 10px; margin-bottom: 0; }
@media screen {
  html[data-phone-landscape] .detail-visual > .visit-gallery { flex: 1; min-height: 0; }
  html[data-phone-landscape] .detail-visual > .visit-gallery .gallery-stage { flex: 1; min-height: 0; }
  html[data-phone-landscape] .detail-visual > .visit-gallery .gallery-track,
  html[data-phone-landscape] .detail-visual > .visit-gallery .gallery-slide { height: 100%; min-height: 0; }
  html[data-phone-landscape] .detail-visual > .visit-gallery .gallery-slide img { height: 100%; width: 100%; min-height: 0; object-fit: contain; aspect-ratio: auto; }
}
