/* Current restaurant interiors: preserve the full portrait photos. */
.heading-block .venue-gallery-heading {
    margin: 0 0 24px;
}

.venue-gallery {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-bottom: 32px;
}

.venue-photo {
    min-width: 0;
    margin: 0;
}

.venue-photo a,
.venue-photo picture,
.venue-thumbnail picture,
.fbox-media picture {
    display: block;
}

.venue-photo a {
    border-radius: 4px;
    overflow: hidden;
}

.venue-photo img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 4;
}

.venue-photo figcaption {
    padding: 12px 4px 0;
    color: #555;
    font-size: 15px;
    line-height: 1.5;
    text-align: center;
}

.venue-photo a:focus-visible,
.venue-thumbnail:focus-visible {
    outline: 3px solid #26756b !important;
    outline-offset: 4px;
}

/* Landscape previews match the existing cards; the lightbox shows the full photo. */
.feature-box.media-box .fbox-media .venue-service-image {
    aspect-ratio: 8 / 5;
    object-fit: cover;
    object-position: center 66%;
}

.masonry-thumbs .venue-thumbnail img {
    aspect-ratio: 4 / 3;
    object-fit: cover;
    object-position: center 64%;
}

.venue-wine-intro {
    display: grid;
    grid-template-columns: minmax(0, 340px) minmax(0, 1fr);
    align-items: center;
    gap: 56px;
    max-width: 960px;
    margin: 0 auto 40px;
}

.venue-wine-copy {
    min-width: 0;
    margin: 0;
}

.venue-wine-copy p {
    margin: 24px 0 0;
    font-size: 20px;
    line-height: 1.6;
}

@media (max-width: 991px) {
    .venue-gallery { gap: 16px; }
    .venue-wine-intro {
        grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
        gap: 32px;
    }
}

@media (max-width: 767px) {
    #section-restaurant > .heading-block > span {
        max-width: calc(100% - 32px);
    }

    .venue-gallery {
        grid-template-columns: minmax(0, 1fr);
        gap: 28px;
        max-width: 420px;
        margin-right: auto;
        margin-left: auto;
    }

    .venue-wine-intro {
        grid-template-columns: minmax(0, 1fr);
        gap: 24px;
    }

    .venue-wine-intro > [data-lightbox] {
        width: 100%;
        max-width: 360px;
        margin: 0 auto;
    }

    .venue-wine-copy { text-align: center; }
    .venue-wine-copy::after { margin-right: auto; margin-left: auto; }
}
