/* Venue page — scoped to .venue-page so it never affects the site header/footer */
.venue-page { color: var(--ink, #1d2b3a); line-height: 1.6; }
.venue-page *, .venue-page *::before, .venue-page *::after { box-sizing: border-box; }
.venue-page img { max-width: 100%; display: block; }
.v-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 20px; }

/* ===== Hero ===== */
.venue-banner {
    background: linear-gradient(135deg, var(--navy, #12263f) 0%, #0b5f8f 60%, var(--blue, #0b86c4) 100%);
    color: #fff; text-align: center; padding: 64px 0 56px;
}
.venue-banner__label {
    display: inline-block; font-size: .8rem; letter-spacing: .14em; text-transform: uppercase;
    color: var(--gold, #e8a838); font-weight: 700; margin-bottom: 10px;
}
.venue-banner h1 { margin: 0 0 10px; font-size: clamp(2rem, 4.5vw, 3.2rem); line-height: 1.15; }
.venue-banner__address { margin: 0 0 24px; font-size: 1.1rem; opacity: .92; }
.venue-banner__actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
.venue-banner__btn {
    display: inline-block; padding: 11px 24px; border-radius: 999px; font-weight: 600; text-decoration: none;
    background: var(--gold, #e8a838); color: #12263f; border: 2px solid var(--gold, #e8a838);
    transition: transform .15s, box-shadow .15s;
}
.venue-banner__btn:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(0, 0, 0, .25); }
.venue-banner__btn--outline { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .7); }

/* ===== Carousel ===== */
.v-carousel { position: relative; margin: -28px 0 0; }
.v-track {
    display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 4px 2px 6px;
    scrollbar-width: none; -ms-overflow-style: none;
}
.v-track::-webkit-scrollbar { display: none; }
.v-slide {
    position: relative; margin: 0; flex: 0 0 calc((100% - 28px) / 3); aspect-ratio: 4 / 3;
    border-radius: var(--radius, 14px); overflow: hidden; scroll-snap-align: start;
    box-shadow: var(--shadow-lg, 0 12px 28px rgba(18, 38, 63, .18)); background: #dfe8f0;
}
.v-slide img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.v-slide:hover img { transform: scale(1.06); }
.v-arrow {
    position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 44px; height: 44px;
    border: 0; border-radius: 50%; background: #fff; color: var(--navy, #12263f); font-size: 18px; cursor: pointer;
    box-shadow: 0 4px 14px rgba(0, 0, 0, .25); transition: background .2s, color .2s;
}
.v-arrow:hover, .v-arrow:focus-visible { background: var(--blue, #0b86c4); color: #fff; }
.v-arrow.prev { left: -8px; }
.v-arrow.next { right: -8px; }
.v-dots { display: flex; justify-content: center; gap: 8px; margin-top: 16px; }
.v-dots span {
    width: 10px; height: 10px; border-radius: 50%; background: var(--line, #cfdbe6); cursor: pointer; transition: all .25s;
}
.v-dots span.on { width: 26px; border-radius: 6px; background: var(--blue, #0b86c4); }

/* ===== Sections ===== */
.v-section { margin: 56px 0; }
.v-head { text-align: center; margin-bottom: 28px; }
.v-head h2 { margin: 0 0 6px; font-size: clamp(1.5rem, 3vw, 2rem); color: var(--navy, #12263f); }
.v-head h2::after {
    content: ""; display: block; width: 56px; height: 4px; border-radius: 2px; margin: 10px auto 0;
    background: var(--gold, #e8a838);
}
.v-head p { margin: 8px 0 0; color: var(--muted, #55657a); }

/* ===== Highlights grid ===== */
.v-grid {
    list-style: none; margin: 0; padding: 0; display: grid; gap: 16px;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); counter-reset: v;
}
.v-grid li {
    counter-increment: v; position: relative; background: #fff; border: 1px solid var(--line, #cfdbe6);
    border-radius: var(--radius, 14px); padding: 18px 18px 18px 64px; box-shadow: var(--shadow, 0 2px 10px rgba(18, 38, 63, .08));
    transition: transform .2s, box-shadow .2s, border-color .2s;
}
.v-grid li:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg, 0 12px 28px rgba(18, 38, 63, .18)); border-color: var(--blue, #0b86c4); }
.v-grid li::before {
    content: counter(v); position: absolute; left: 16px; top: 16px; width: 34px; height: 34px; border-radius: 50%;
    display: grid; place-items: center; font-weight: 700; font-size: .9rem; color: #fff;
    background: linear-gradient(135deg, var(--blue, #0b86c4), var(--navy, #12263f));
}
.v-grid strong { color: var(--blue-dark, #066a9b); }

/* ===== Map ===== */
.v-map {
    border-radius: var(--radius, 14px); overflow: hidden; box-shadow: var(--shadow-lg, 0 12px 28px rgba(18, 38, 63, .18));
    border: 1px solid var(--line, #cfdbe6);
}
.v-map iframe { display: block; width: 100%; height: 460px; border: 0; }

/* ===== Responsive ===== */
@media (max-width: 900px) { .v-slide { flex-basis: calc((100% - 14px) / 2); } }
@media (max-width: 767px) {
    .venue-banner { padding: 44px 0 48px; }
    .v-map iframe { height: 320px; }
    .v-arrow { width: 38px; height: 38px; }
    .v-arrow.prev { left: 4px; } .v-arrow.next { right: 4px; }
}
@media (max-width: 520px) { .v-slide { flex-basis: 100%; } .v-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) {
    .v-slide img, .v-grid li, .venue-banner__btn { transition: none; }
}