.booking-notice {
    position: fixed;
    inset: 0;
    margin: auto;
    width: min(36rem, calc(100vw - 2rem));
    max-height: calc(100dvh - 2rem);
    box-sizing: border-box;
    padding: 2.75rem 1.5rem 1.5rem;
    border: 0;
    border-radius: 12px;
    background: #fff;
    color: #242321;
    font-family: inherit;
}
.booking-notice::backdrop { background: rgb(0 0 0 / 65%); }
.booking-notice__close {
    position: absolute;
    top: .35rem;
    right: .5rem;
    width: 2.25rem;
    height: 2.25rem;
    cursor: pointer;
    background: transparent;
    color: inherit;
    border: 0;
    font-size: 1.7rem;
}
.booking-notice__image {
    display: block;
    max-width: 100%;
    max-height: calc(100dvh - 7rem);
    width: auto;
    height: auto;
    margin: auto;
    object-fit: contain;
}
.booking-notice__text { white-space: pre-wrap; overflow-wrap: anywhere; }
.booking-notice__link { color: #a33b1b; text-decoration: underline; }

.booking-notice--image {
    width: fit-content;
    max-width: calc(100vw - 2rem);
    max-height: calc(100dvh - 2rem);
    padding: 0;
    background: transparent;
    border-radius: 0;
    overflow: hidden;
}
.booking-notice--image picture,
.booking-notice--image picture img {
    display: block;
}
.booking-notice--image .booking-notice__image {
    max-width: min(36rem, calc(100vw - 2rem));
    max-height: calc(100dvh - 2rem);
}
.booking-notice--image .booking-notice__close {
    z-index: 1;
    display: grid;
    place-items: center;
    top: 4.7%;
    right: 5.2%;
    transform: translate(50%, -50%);
    width: 2.75rem;
    height: 2.75rem;
    padding: 0;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 10px rgb(0 0 0 / 28%);
    line-height: 1;
}

@media (max-width: 600px) {
    .booking-notice--image .booking-notice__close { top: 4.4%; right: 7.8%; }
}
