/* Callback modal — site tokens */
.modal-backdrop.show {
    background-color: rgba(0, 0, 0, 0.45);
    backdrop-filter: blur(6px);
}

body .site-modal .modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl),
body #callBackModal .modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl),
body .bs4-modal .modal-dialog:not(.modal-sm):not(.modal-lg):not(.modal-xl) {
    max-width: min(var(--modal-dialog-max), calc(100% - 32px));
    margin: 1rem auto;
}

/* Bootstrap modal chrome (#callBackModal + bootstrap4_modal dialog) */
body #callBackModal.site-modal .modal-content,
body #callBackModal .modal-content,
body .site-modal .modal-content,
body .bs4-modal .modal-content {
    border: 1px solid var(--modal-border-soft);
    border-radius: 16px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22);
    overflow: hidden;
    background: var(--modal-bg);
}

body #callBackModal .modal-header,
body .site-modal .modal-header,
body .bs4-modal .modal-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    position: relative;
    padding: 1.25rem 2.5rem 1rem 1.25rem;
    border-bottom: 0;
    background: var(--modal-bg);
}

body #callBackModal .modal-title,
body .site-modal .modal-title,
body .bs4-modal .modal-title {
    width: 100%;
    margin: 0;
    text-align: center;
    font-family: var(--font-serif);
    font-size: clamp(24px, 2.8vw, 30px);
    font-weight: 700;
    line-height: 1.25;
    color: var(--modal-text);
}

body #callBackModal .modal-header .btn-close,
body .site-modal .modal-header .btn-close,
body .bs4-modal .modal-header .btn-close,
body .bs4-modal .modal-header .close {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    margin: 0;
    padding: 0.5rem;
    opacity: 0.45;
}

body #callBackModal .modal-header .btn-close:hover,
body #callBackModal .modal-header .btn-close:focus,
body .site-modal .modal-header .btn-close:hover,
body .site-modal .modal-header .btn-close:focus,
body .bs4-modal .modal-header .btn-close:hover,
body .bs4-modal .modal-header .btn-close:focus,
body .bs4-modal .modal-header .close:hover,
body .bs4-modal .modal-header .close:focus {
    opacity: 0.9;
    box-shadow: none;
}

body #callBackModal .modal-body,
body .site-modal .modal-body,
body .bs4-modal .modal-body {
    padding: 0 1.25rem 1.5rem;
    font-size: 16px;
    line-height: 1.5;
    color: var(--modal-text);
    background: var(--modal-bg);
}

/* Footer submit area (bootstrap4_modal clones submit here) */
body .bs4-modal .modal-footer {
    display: block;
    padding: 0 1.25rem 1.5rem;
    border-top: 0;
    background: var(--modal-bg);
}

/* Hide in-body actions once the submit is cloned to the footer */
body .bs4-modal:has(.modal-footer .btn) .modal-body .form-actions {
    display: none !important;
}

body #callBackModal .block,
body .bs4-modal .block {
    position: static;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

body #callBackModal .modal-body .block-title,
body #callBackModal .modal-body .webform-submission-form > h2,
body .bs4-modal .modal-body .block-title,
body .bs4-modal .modal-body .webform-submission-form > h2 {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

body #callBackModal .modal-body a,
body .site-modal .modal-body a,
body .bs4-modal .modal-body a {
    color: var(--modal-brand);
    text-decoration: underline;
}

body #callBackModal .modal-body a:hover,
body .site-modal .modal-body a:hover,
body .bs4-modal .modal-body a:hover {
    color: var(--modal-brand-hover);
}

/* Shared form scope for site modals */
:is(
    #callBackModal,
    .site-modal,
    .bs4-modal,
    .ui-dialog.site-ui-modal,
    .ui-dialog:has(.webform-submission-form:not(.site-contacts-webform))
) {
    & .form-item:not(.form-type-checkbox):not(.form-type-webform-markup) {
        margin-bottom: 1rem;
    }

    & .form-item:not(.form-type-checkbox):not(.form-type-webform-markup) > label {
        display: inline-block;
        margin-bottom: 0.35rem;
        font-size: 14px;
        font-weight: 500;
        color: var(--modal-text);
    }

    & :is(.form-text, .form-email, .form-tel, textarea,
        input[type="text"], input[type="email"], input[type="tel"]) {
        box-sizing: border-box;
        width: 100%;
        border: 1px solid var(--modal-border-field);
        border-radius: 8px;
        padding: 0.65rem 0.85rem;
        font-size: 16px;
        line-height: 1.35;
        color: var(--modal-text);
        background: var(--modal-bg);
        box-shadow: none;
    }

    & :is(.form-text, .form-email, .form-tel, textarea,
        input[type="text"], input[type="email"], input[type="tel"]):focus {
        border-color: var(--modal-brand);
        box-shadow: var(--modal-focus-ring);
        outline: 0;
    }

    & textarea {
        min-height: 6rem;
        resize: vertical;
    }

    /* checkbox */
    & :is(.form-item.form-type-checkbox, .js-form-type-checkbox) {
        display: flex;
        flex-flow: row wrap;
        align-items: flex-start;
        gap: 0.65rem;
        margin-bottom: 1rem;
    }

    & :is(.form-item.form-type-checkbox, .js-form-type-checkbox) > .form-check {
        display: flex;
        flex-flow: row nowrap;
        align-items: flex-start;
        gap: 0.65rem;
        width: 100%;
        margin: 0;
        padding-left: 0;
    }

    & :is(
        .form-item.form-type-checkbox > input[type="checkbox"],
        .form-item.form-type-checkbox .form-checkbox,
        .form-item.form-type-checkbox .form-check-input,
        .form-check .form-check-input
    ) {
        flex: 0 0 1.1rem;
        width: 1.1rem;
        height: 1.1rem;
        min-width: 1.1rem;
        margin: 0.12rem 0 0;
        border: 1px solid var(--modal-border-field);
        border-radius: 4px;
        cursor: pointer;
    }

    & :is(
        .form-item.form-type-checkbox > label,
        .form-item.form-type-checkbox label.option,
        .form-item.form-type-checkbox .form-check-label,
        .form-item.form-type-checkbox > .description
    ) {
        flex: 1 1 0;
        min-width: 0;
        margin: 0;
        padding: 0;
        font-size: 14px;
        font-weight: 400;
        line-height: 1.35;
        color: var(--modal-text);
    }

    & .form-item.form-type-checkbox .form-item--error-message {
        flex: 1 1 100%;
        width: 100%;
        order: 10;
        margin: 0.25rem 0 0;
    }

    & :is(
        .form-item.form-type-checkbox > input[type="checkbox"]:checked,
        .form-check-input:checked
    ) {
        background-color: var(--modal-brand);
        border-color: var(--modal-brand);
    }

    /* submit */
    & :is(.form-actions, .webform-actions) {
        width: 100%;
        margin-top: 0.85rem;
        margin-bottom: 0;
    }

    & :is(
        .webform-button--submit,
        .form-actions input[type="submit"],
        .form-actions button,
        .btn.btn-primary,
        .button--primary
    ) {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        box-sizing: border-box;
        width: 100%;
        min-height: 52px;
        padding: 14px 22px;
        border: 1.5px solid var(--modal-brand) !important;
        border-radius: 80px;
        background: var(--modal-brand) !important;
        box-shadow: none !important;
        font-family: var(--font-serif);
        font-size: 16px;
        font-weight: 700;
        line-height: 1.25;
        color: #fff !important;
        cursor: pointer;
    }

    & :is(
        .webform-button--submit,
        .form-actions input[type="submit"],
        .form-actions button,
        .btn.btn-primary,
        .button--primary
    ):hover {
        background: #fff !important;
        border-color: var(--modal-brand) !important;
        color: var(--modal-brand) !important;
    }

    & .form-item--error-message {
        color: var(--modal-error);
        font-size: 12px;
        line-height: 1.25;
        font-weight: 400;
    }

    & :is(.description, .webform-element-description) {
        font-size: 14px;
        color: var(--modal-text);
        opacity: 0.85;
    }
}

/* Drupal ajax dialog chrome */
body .ui-dialog:is(
    .site-ui-modal,
    .site-callback-dialog,
    :has(.webform-submission-form:not(.site-contacts-webform))
) {
    position: fixed !important;
    top: 50% !important;
    left: 50% !important;
    transform: translate(-50%, -50%) !important;
    width: min(var(--modal-dialog-max), calc(100% - 32px)) !important;
    max-width: min(var(--modal-dialog-max), calc(100% - 32px)) !important;
    padding: 0 !important;
    border: 1px solid var(--modal-border-soft) !important;
    border-radius: 16px !important;
    background: var(--modal-bg) !important;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.22) !important;
    overflow: hidden !important;
    z-index: 1260 !important;

    & .ui-dialog-titlebar {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: relative !important;
        margin: 0 !important;
        padding: 1.25rem 2.5rem 1rem 1.25rem !important;
        border: 0 !important;
        background: var(--modal-bg) !important;
    }

    & .ui-dialog-title {
        float: none !important;
        width: 100% !important;
        margin: 0 !important;
        text-align: center !important;
        font-family: var(--font-serif) !important;
        font-size: clamp(24px, 2.8vw, 30px) !important;
        font-weight: 700 !important;
        line-height: 1.25 !important;
        color: var(--modal-text) !important;
    }

    & .ui-dialog-titlebar-close {
        position: absolute;
        right: 1rem;
        top: 50%;
        transform: translateY(-50%);
        width: 2rem;
        height: 2rem;
        margin: 0;
        padding: 0;
        border: 0;
        background: transparent;
        opacity: 0.45;
    }

    & .ui-dialog-titlebar-close:hover {
        opacity: 0.9;
    }

    & .ui-dialog-content {
        padding: 0 1.25rem 1.5rem !important;
        border: 0 !important;
        background: var(--modal-bg) !important;
        color: var(--modal-text) !important;
        overflow: auto;
        max-height: calc(100vh - 120px);
    }

    & .ui-dialog-buttonpane {
        display: none !important;
    }
}

body .ui-widget-overlay.site-modal-backdrop {
    background: rgba(0, 0, 0, 0.45) !important;
    backdrop-filter: blur(6px);
    opacity: 1 !important;
    z-index: 1255 !important;
}
