/* Shared venue layout. Scoped to preserve all other public pages. */
.hero-band.is-venue-profile { padding: calc(1.3rem + var(--hero-header-offset, 0px)) 0 2.2rem; }
.is-venue-profile .venue-profile-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .85fr); gap: 3rem; align-items: center; min-height: 0; }
.is-venue-profile .hero-copy { max-width: none; }
.is-venue-profile .hero-title { font-size: clamp(2.6rem, 5vw, 4.25rem); line-height: 1.06; letter-spacing: -.04em; }
.venue-profile-breadcrumb { color: var(--muted); font-size: .82rem; margin-bottom: 1.8rem; }
.venue-profile-breadcrumb a, .venue-profile-nav a, .venue-profile-panel a, .venue-profile-source a { color: var(--accent); text-underline-offset: 4px; }
.venue-profile-breadcrumb span { margin: 0 .4rem; }
.venue-profile-kind { color: var(--muted); font-size: .88rem; margin: 0 0 .5rem; }
.venue-profile-lead { font-size: 1.18rem; line-height: 1.65; max-width: 48ch; margin: 0 0 1.6rem; }
.venue-profile-actions { display: flex; gap: .65rem; flex-wrap: wrap; }
.venue-profile-photo { width: 100%; height: 280px; object-fit: cover; border-radius: 12px; display: block; }
.venue-page.is-enriched { padding-top: 0; }
.venue-profile-nav { display: flex; gap: 1.6rem; padding: 1.25rem 0; border-bottom: 1px solid var(--line); overflow-x: auto; }
.venue-profile-nav a { font-size: .88rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.venue-profile-grid { display: grid; grid-template-columns: minmax(0, 1fr) 310px; gap: 3rem; padding-top: 2.25rem; }
.venue-profile-main { min-width: 0; }
.venue-profile-main section, .venue-profile-contact { scroll-margin-top: 1.5rem; }
.venue-profile-heading { font-size: 1.7rem; font-weight: 800; letter-spacing: -.025em; line-height: 1.2; margin: 0 0 1.2rem; }
.is-enriched .events-section-title { font-size: 1.25rem; }
.is-enriched .events-section-count { font-size: .8rem; }
.is-enriched .events-rail { grid-auto-columns: minmax(15.5rem, calc((100% - 1.05rem) / 2)); }
.venue-profile-about { border-top: 1px solid var(--line); margin-top: 2.2rem; padding-top: 1.8rem; }
.venue-profile-about > p { line-height: 1.7; margin-bottom: 1rem; max-width: 65ch; }
.venue-profile-company { margin-top: 1.7rem; }
.venue-profile-company h3 { font-size: 1.2rem; font-weight: 700; margin-bottom: .9rem; }
.venue-profile-company dl { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: .6rem .8rem; font-size: .88rem; }
.venue-profile-company dt { color: var(--muted); }
.venue-profile-company dd { margin: 0; overflow-wrap: anywhere; }
.venue-profile-about > .venue-profile-source { color: var(--muted); font-size: .75rem; margin-top: 1.7rem; }
.venue-profile-sidebar { display: grid; gap: 1.25rem; align-self: start; min-width: 0; }
.venue-profile-panel { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 1.6rem; }
.venue-profile-panel h2 { font-size: 1.3rem; font-weight: 800; line-height: 1.2; margin: 0 0 1rem; }
.venue-profile-panel p { margin-bottom: .7rem; }
.venue-profile-contact dt { color: var(--muted); font-size: .75rem; margin-top: 1rem; }
.venue-profile-contact dd { font-size: .93rem; line-height: 1.6; margin: .15rem 0 0; overflow-wrap: anywhere; }
.venue-profile-hours { border-top: 1px solid var(--line); margin-top: 1.5rem; padding-top: 1.4rem; }
.venue-profile-hours h3 { font-size: 1.05rem; font-weight: 700; margin-bottom: .85rem; }
.venue-profile-hours-row { display: flex; justify-content: space-between; gap: .75rem; margin-bottom: .5rem; font-size: .81rem; }
.venue-profile-beer-name { font-size: 1rem; font-weight: 650; }
.venue-profile-panel .venue-profile-beer-serving { color: var(--muted); font-size: .82rem; margin-bottom: .5rem; }
.venue-profile-panel .venue-profile-beer-amount { color: var(--accent); font-size: 2.25rem; font-weight: 800; line-height: 1.2; letter-spacing: -.035em; margin: .7rem 0; }
.venue-profile-beer-basis { font-size: .82rem; line-height: 1.6; }
.venue-profile-panel .venue-profile-small { color: var(--muted); font-size: .75rem; line-height: 1.65; margin-top: .7rem; }
.venue-profile-price-note { border-top: 1px solid var(--line); color: var(--muted); font-size: .75rem; padding-top: .9rem; margin-top: 1.1rem; }
.venue-profile-more { display: inline-block; font-size: .88rem; font-weight: 650; margin-top: .3rem; }
.venue-profile-nav a:focus-visible, .venue-profile-panel a:focus-visible, .venue-profile-source a:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; }
@media (max-width: 900px) {
    .is-venue-profile .venue-profile-hero-grid { gap: 1.5rem; }
    .venue-profile-grid { grid-template-columns: minmax(0, 1fr) 270px; gap: 1.5rem; }
    .venue-profile-panel { padding: 1.25rem; }
    .venue-profile-photo { height: 250px; }
    .venue-profile-lead { font-size: 1.06rem; }
}
@media (max-width: 700px) {
    .is-venue-profile .venue-profile-hero-grid, .venue-profile-grid { grid-template-columns: minmax(0, 1fr); }
    .venue-profile-photo { height: 220px; }
    .venue-profile-grid { gap: 1.8rem; padding-top: 1.7rem; }
    .venue-profile-nav { gap: 1.3rem; }
    .venue-profile-company dl { grid-template-columns: 110px minmax(0, 1fr); }
    .venue-profile-heading { font-size: 1.5rem; }
}

.is-venue-profile .venue-profile-hero-grid.has-no-photo { grid-template-columns: minmax(0, 1fr); }
.venue-profile-verification { margin: .8rem 0; color: var(--accent); font-size: .85rem; }

/* Soften the cropped rail edge toward the practical-information column. */
@media (min-width: 701px) {
    .venue-profile-main .events-rail.has-more-events {
        -webkit-mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 56px), transparent 100%);
        mask-image: linear-gradient(to right, #000 0, #000 calc(100% - 56px), transparent 100%);
    }
    .venue-profile-main .events-rail:focus-within {
        -webkit-mask-image: none;
        mask-image: none;
    }
}

.venue-gallery { min-width:0; position:relative; }
.venue-gallery-track { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; scrollbar-width:none; border-radius:12px; }
.venue-gallery-track::-webkit-scrollbar { display:none; }
.venue-gallery-track .venue-profile-photo { flex:0 0 100%; min-width:100%; scroll-snap-align:start; }
.venue-gallery-dots { position:absolute; bottom:10px; left:50%; transform:translateX(-50%); display:flex; gap:2px; padding:2px 5px; border-radius:999px; background:rgba(255,255,255,.88); box-shadow:0 1px 8px rgba(0,0,0,.1); }
.venue-gallery-dots[hidden] { display:none; }
.venue-gallery-dots button { display:grid; place-items:center; width:28px; height:28px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.venue-gallery-dots button::before { content:""; width:7px; height:7px; border-radius:50%; background:#85958e; }
.venue-gallery-dots button[aria-pressed="true"]::before { background:#123f31; }
.venue-gallery-dots button:focus-visible { outline:2px solid #123f31; outline-offset:1px; }
