/* Последний защитный слой адаптивности клиентских страниц. */
.site-content,
.site-content > *,
.site-content form,
.site-content fieldset,
.site-content section,
.site-content article {
    min-width: 0;
}

.site-content img,
.site-content video,
.site-content canvas,
.site-content svg {
    max-width: 100%;
}

.site-content input,
.site-content select,
.site-content textarea,
.site-content button {
    max-width: 100%;
}

.site-content [class*="table-wrap"],
.site-content [class*="table-container"] {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 820px) {
    html,
    body,
    .page-layout,
    .site-content {
        max-width: 100%;
        overflow-x: hidden;
    }

    .page-layout {
        width: calc(100% - 16px);
        margin: 16px auto;
    }

    .site-content {
        width: 100%;
        min-width: 0;
    }

    .site-content > * {
        width: 100%;
        max-width: 100%;
    }

    .site-content :where(
        h1, h2, h3, h4, p, span, strong, small, label, a, button, td, th, dd
    ) {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .site-content :where(
        [class*="modal-window"],
        [class*="modal-dialog"],
        [class$="-dialog"],
        .booking-modal
    ) {
        width: min(100%, calc(100vw - 16px));
        max-width: calc(100vw - 16px);
        max-height: calc(100dvh - 16px);
    }

    .site-content table {
        display: block;
        max-width: 100%;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
}

@media (max-width: 520px) {
    .page-layout {
        width: calc(100% - 8px);
        margin-block: 8px;
    }

    .site-content :where(
        [class*="modal-window"],
        [class*="modal-dialog"],
        [class$="-dialog"],
        .booking-modal
    ) {
        width: calc(100vw - 8px);
        max-width: calc(100vw - 8px);
        max-height: calc(100dvh - 8px);
        padding: clamp(14px, 4vw, 22px);
        border-radius: 16px;
    }

    .site-content :where(
        [class*="filters"],
        [class*="fields-row"],
        [class*="form-row"]
    ) {
        grid-template-columns: minmax(0, 1fr);
    }
}
