/* Shared restaurant introduction: text stays in flow over its image. */
.restaurant-intro-overlay {
    position: relative;
    isolation: isolate;
    display: grid;
    grid-template-columns: 55% 45%;
    align-items: center;
    box-sizing: border-box;
    width: 100%;
    max-width: 1140px;
    margin: 24px auto;
    padding: 0;
    background: transparent;
    text-align: left;
}
.restaurant-intro-overlay > .restaurant-intro-overlay__image {
    grid-column: 1;
    grid-row: 1;
    display: block;
    width: 100%;
    height: clamp(340px, 40vw, 500px);
    max-width: 100%;
    object-fit: cover;
}
.restaurant-intro-overlay .restaurant-intro-overlay__text {
    grid-column: 2;
    grid-row: 1;
    position: relative;
    z-index: 1;
    box-sizing: border-box;
    width: calc(100% + 60px);
    margin-left: -60px;
    padding: clamp(24px, 3vw, 40px);
    background: rgba(0, 0, 0, .82);
    color: #fff;
    overflow-wrap: anywhere;
}
.restaurant-intro-overlay[data-image-position="right"] { grid-template-columns: 45% 55%; }
.restaurant-intro-overlay[data-image-position="right"] > .restaurant-intro-overlay__image { grid-column: 2; }
.restaurant-intro-overlay[data-image-position="right"] > .restaurant-intro-overlay__text {
    grid-column: 1;
    margin-left: 0;
    margin-right: -60px;
}
.restaurant-intro-overlay .restaurant-intro-overlay__text h2 {
    margin: 0 0 18px;
    color: var(--classic-color-1, #d47742) !important;
}
.restaurant-intro-overlay .restaurant-intro-overlay__body,
.restaurant-intro-overlay .restaurant-intro-overlay__body p { color: #fff; }
.restaurant-intro-overlay__body > :last-child { margin-bottom: 0; }
.restaurant-intro-overlay .restaurant-intro-overlay__video {
    position: relative;
    display: inline-flex;
    margin-top: 20px;
    top: auto;
    left: auto;
    right: auto;
    bottom: auto;
    transform: none;
}
@media (max-width: 767px) {
    .restaurant-intro-overlay,
    .restaurant-intro-overlay[data-image-position="right"] {
        grid-template-columns: minmax(0, 1fr);
        margin: 16px auto;
    }
    .restaurant-intro-overlay > .restaurant-intro-overlay__image,
    .restaurant-intro-overlay[data-image-position="right"] > .restaurant-intro-overlay__image {
        grid-column: 1;
        grid-row: 1;
        height: 320px;
    }
    .restaurant-intro-overlay .restaurant-intro-overlay__text,
    .restaurant-intro-overlay[data-image-position="right"] > .restaurant-intro-overlay__text {
        grid-column: 1;
        grid-row: 2;
        width: calc(100% - 32px);
        margin: -40px 16px 0;
    }
}
