/* Callback form only: other Contact Form 7 forms keep their own appearance. */
html.puls-callback-open,
html.puls-callback-open body { overflow: hidden; }
.puls-callback-modal {
    z-index: 100000;
    background: rgba(15, 35, 51, .52);
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
    padding: 0 !important;
    overscroll-behavior: contain;
}
.puls-callback-modal, .puls-callback-modal * { box-sizing: border-box; }
.puls-callback-modal .modal-dialog {
    display: flex;
    align-items: center;
    width: calc(100% - 32px);
    max-width: 480px;
    min-height: calc(100% - 48px);
    margin: 24px auto;
}
.puls-callback-modal .modal-dialog::before { display: none; }
.puls-callback-modal .modal-content {
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 24px;
    box-shadow: 0 24px 80px rgba(10, 35, 55, .22);
    padding: 36px;
    color: #17374b;
    font-family: Montserrat, sans-serif;
}
.puls-callback-modal.show .modal-content { animation: callback-enter .2s ease-out; }
.puls-callback-modal .modal-header {
    display: block;
    position: relative;
    padding: 0 30px 0 0;
    border: 0;
}
.puls-callback-modal .modal-title {
    margin: 0;
    color: #17374b;
    font-size: 28px;
    font-weight: 700;
    line-height: 1.25;
    letter-spacing: -.035em;
}
.puls-callback-modal .callback-description {
    margin: 14px 0 0;
    color: #617380;
    font-size: 14px;
    line-height: 1.65;
}
.puls-callback-modal .close {
    position: absolute;
    top: -16px;
    right: -16px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #f0f5f8;
    color: #617380;
    opacity: 1;
    text-shadow: none;
    font: 28px/1 Arial, sans-serif;
    cursor: pointer;
    transition: background .15s, color .15s;
}
.puls-callback-modal .close:hover { background: #e3edf3; color: #17374b; }
.puls-callback-modal .close:focus-visible { outline: 3px solid #188cd8; outline-offset: 3px; }
.puls-callback-modal .modal-body { padding: 28px 0 0; }
.puls-callback-modal .wpcf7-form { margin: 0; max-width: none; font-family: inherit; }
.puls-callback-modal .wpcf7-form p { margin: 0 0 20px; padding: 0; }
.puls-callback-modal .wpcf7-form br { display: none; }
.puls-callback-modal .wpcf7-form label {
    display: block;
    margin: 0;
    color: #334f60;
    font-size: 13px;
    line-height: 1.5;
    font-weight: 600;
}
.puls-callback-modal .wpcf7-form-control-wrap { display: block; margin: 8px 0 0; }
.puls-callback-modal .wpcf7-form input[type="text"],
.puls-callback-modal .wpcf7-form input[type="tel"] {
    width: 100%;
    height: 54px;
    margin: 0;
    padding: 0 16px;
    border: 1px solid #dce5eb;
    border-radius: 12px;
    background: #f7f9fb;
    color: #17374b;
    font: 400 16px/1.5 Montserrat, sans-serif;
    box-shadow: none;
    transition: border-color .15s, background .15s, box-shadow .15s;
}
.puls-callback-modal .wpcf7-form input::placeholder { color: #7b8b97; opacity: 1; }
.puls-callback-modal .wpcf7-form input:focus {
    outline: none;
    border-color: #188cd8;
    background: #fff;
    box-shadow: 0 0 0 3px rgba(24, 140, 216, .12);
}
.puls-callback-modal .wpcf7-form input[aria-invalid="true"] {
    border-color: #d8a5a0;
    background: #fff8f7;
}
.puls-callback-modal .wpcf7-form input[aria-invalid="true"]:focus {
    box-shadow: 0 0 0 3px rgba(180, 75, 65, .09);
}
.puls-callback-modal .wpcf7-form > p:last-of-type { position: relative; margin: 26px 0 0; }
.puls-callback-modal .wpcf7-form input[type="submit"] {
    width: 100%;
    min-height: 54px;
    margin: 0;
    padding: 15px 40px;
    border: 0;
    border-radius: 12px;
    background: #188cd8;
    color: #fff;
    font: 600 15px/1.5 Montserrat, sans-serif;
    cursor: pointer;
    transform: none;
    transition: background .15s;
}
.puls-callback-modal .wpcf7-form input[type="submit"]:hover { background: #117bbf; transform: none; }
.puls-callback-modal .wpcf7-form input[type="submit"]:focus-visible { outline: 3px solid #17374b; outline-offset: 3px; }
.puls-callback-modal .wpcf7-form.submitting input[type="submit"] { opacity: .65; cursor: wait; }
.puls-callback-modal .wpcf7-spinner { position: absolute; top: 15px; right: 10px; margin: 0; }
.puls-callback-modal .wpcf7-not-valid-tip,
.puls-callback-modal .callback-field-error {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    margin-top: 8px;
    color: #a0443b;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.5;
}
.puls-callback-modal .wpcf7-not-valid-tip::before,
.puls-callback-modal .callback-field-error::before {
    content: '!';
    flex: 0 0 15px;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    border: 1px solid currentColor;
    border-radius: 50%;
    font: 600 10px/13px Montserrat, sans-serif;
    text-align: center;
}
.puls-callback-modal .wpcf7-form.invalid .wpcf7-response-output,
.puls-callback-modal .wpcf7-form.sent .wpcf7-response-output { display: none; }
.puls-callback-modal .wpcf7-response-output {
    margin: 18px 0 0;
    padding: 14px 16px;
    border: 0 !important;
    border-radius: 10px;
    background: #fff3f1;
    color: #93453d;
    font-size: 13px;
    line-height: 1.6;
}
.puls-callback-modal .callback-success-content { padding-top: 44px; text-align: center; }
.puls-callback-modal .callback-success-content .close { top: 16px; right: 16px; }
.puls-callback-modal .callback-success-icon {
    display: grid;
    place-items: center;
    width: 76px;
    height: 76px;
    margin: 0 auto 24px;
    border-radius: 50%;
    color: #258266;
    background: #eaf6ef;
}
.puls-callback-modal .callback-success-icon svg { width: 34px; height: 34px; }
.puls-callback-modal .callback-success-content .callback-description { margin: 14px 0 28px; }
.puls-callback-modal .callback-done {
    width: 100%;
    min-height: 52px;
    padding: 14px 24px;
    border: 0;
    border-radius: 12px;
    background: #188cd8;
    color: #fff;
    font: 600 15px/1.5 Montserrat, sans-serif;
    cursor: pointer;
}
.puls-callback-modal .callback-done:hover { background: #117bbf; }
.puls-callback-modal .callback-done:focus-visible { outline: 3px solid #17374b; outline-offset: 3px; }
@keyframes callback-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width: 575px) {
    .puls-callback-modal .modal-dialog { margin: 16px auto; min-height: calc(100% - 32px); }
    .puls-callback-modal .modal-content { padding: 28px 24px; border-radius: 20px; }
    .puls-callback-modal .modal-title { font-size: 25px; }
    .puls-callback-modal .close { top: -12px; right: -12px; }
}
@media (max-height: 600px) {
    .puls-callback-modal .modal-dialog { margin: 16px auto; min-height: calc(100% - 32px); }
    .puls-callback-modal .modal-content { padding-top: 24px; padding-bottom: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .puls-callback-modal.show .modal-content { animation: none; }
    .puls-callback-modal * { transition: none !important; }
}
