/* Venue pages (Phase 3, D-112…D-115): header facts, getting there, practical info, report form. Loaded only on /venues/{slug}. */
.venue-head { display: grid; gap: var(--s-4); }
@media (min-width: 720px) { .venue-head:has(.venue-photo) { grid-template-columns: minmax(0, 320px) minmax(0, 1fr); align-items: start; } }
.venue-photo { margin: 0; }
.venue-photo img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--r-xl, 20px); background: var(--surface-2); }
.venue-photo figcaption { margin-top: var(--s-1); }
.venue-address { font-style: normal; color: var(--text-2); }

.venue-map { position: relative; height: 240px; overflow: hidden; border-radius: var(--r-xl, 20px); background: var(--surface-2); border: 1px solid var(--line); }
.venue-map img { position: absolute; width: 256px; height: 256px; max-width: none; }
.venue-pin { position: absolute; left: 50%; top: 50%; width: 22px; height: 22px; margin: -22px 0 0 -11px; border-radius: 50% 50% 50% 0; transform: rotate(-45deg);
  background: var(--accent); border: 3px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.35); }

.venue-getting-there h3 { font-size: var(--fs-lg); margin: 0; }
.venue-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0; }
.venue-list li { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr) auto; gap: var(--s-1) var(--s-3); align-items: baseline;
  padding: var(--s-2) 0; border-bottom: 1px solid var(--line); min-height: 44px; }
.venue-list.venue-zones li { grid-template-columns: minmax(0, 1fr); }
.venue-mode { font-size: var(--fs-sm); font-weight: 600; color: var(--text-2); }
.venue-what { display: flex; flex-wrap: wrap; gap: 0 var(--s-2); min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 559px) {
  .venue-list li { grid-template-columns: minmax(0, 1fr); }
}
.venue-sources { margin: 0; }

.venue-facts { display: grid; gap: var(--s-3); margin: 0; }
.venue-facts > div { display: grid; gap: var(--s-1); }
.venue-facts dt { font-weight: 600; }
.venue-facts dd { margin: 0; overflow-wrap: anywhere; }
.venue-source { display: inline; }

.venue-report form { max-width: 560px; }
.venue-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
