:root {
    --bl-navy: var(--bac-navy, #172b3b);
    --bl-blue: #37668f;
    --bl-red: var(--bac-red, #c1251e);
    --bl-red-dark: var(--bac-red-dark, #a01e18);
    --bl-text: #222;
    --bl-muted: #5f6b7a;
    --bl-border: #d5dce6;
    --bl-error: #b42318;
    --bl-success: #1e7b45;
}

.bl-form-wrap {
    color: var(--bl-text);
    font-family: inherit;
}

.bl-form-wrap--inline {
    background: #fff;
    border-top: 4px solid var(--bl-red);
    box-shadow: 0 4px 20px rgba(23, 43, 59, .1);
    padding: 28px;
    border-radius: 6px;
}

.bl-form__title {
    color: var(--bl-navy);
    font-size: 1.5rem;
    line-height: 1.25;
    margin: 0 0 6px;
}

.bl-form__intro {
    color: var(--bl-muted);
    margin: 0 0 18px;
}

.bl-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 16px;
}

.bl-field {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bl-field--full {
    grid-column: 1 / -1;
}

.bl-field label {
    font-size: .875rem;
    font-weight: 600;
    color: var(--bl-navy);
}

.bl-field input[type="text"],
.bl-field input[type="tel"],
.bl-field input[type="email"],
.bl-field select,
.bl-field textarea {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--bl-border);
    border-radius: 4px;
    padding: 11px 12px;
    font: inherit;
    font-size: 1rem;
    color: var(--bl-text);
    background: #fff;
}

.bl-field input:focus,
.bl-field select:focus,
.bl-field textarea:focus {
    outline: 2px solid var(--bl-blue);
    outline-offset: 1px;
    border-color: var(--bl-blue);
}

.bl-field [aria-invalid="true"] {
    border-color: var(--bl-error);
}

.bl-field--check {
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
}

.bl-field--check input {
    margin-top: 3px;
    width: 18px;
    height: 18px;
    accent-color: var(--bl-red);
    flex-shrink: 0;
}

.bl-field--check label {
    font-weight: 400;
    color: var(--bl-muted);
}

.bl-hp {
    position: absolute !important;
    left: -9999px !important;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.bl-status {
    margin: 14px 0 0;
    font-weight: 600;
}

.bl-status:empty {
    display: none;
}

.bl-status.is-error {
    color: var(--bl-error);
}

.bl-status.is-success {
    color: var(--bl-success);
    background: #ecf7f0;
    border-left: 4px solid var(--bl-success);
    padding: 12px 14px;
}

.bl-submit {
    margin-top: 16px;
    width: 100%;
    background: var(--bl-red);
    color: #fff;
    border: 0;
    border-radius: 999px;
    padding: 14px 20px;
    font: inherit;
    font-size: 1.05rem;
    font-weight: 700;
    cursor: pointer;
    transition: background-color .15s ease;
}

.bl-submit:hover,
.bl-submit:focus-visible {
    background: var(--bl-red-dark);
}

.bl-trust {
    margin: 10px 0 0;
    text-align: center;
    color: var(--bl-muted);
    font-size: .8rem;
}

.bl-submit[disabled] {
    opacity: .7;
    cursor: wait;
}

.bl-note {
    margin: 12px 0 0;
    text-align: center;
    color: var(--bl-muted);
    font-size: .9rem;
}

.bl-note a {
    color: var(--bl-navy);
    font-weight: 700;
}

.bl-form.is-sent .bl-grid,
.bl-form.is-sent .bl-submit {
    display: none;
}

.bl-launcher {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 990;
    display: flex;
    gap: 10px;
}

.bl-launcher__call,
.bl-launcher__open {
    display: inline-flex;
    box-sizing: border-box;
    font-family: inherit;
    line-height: 1.2;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 999px;
    padding: 13px 20px;
    font: inherit;
    font-weight: 700;
    font-size: 1rem;
    text-decoration: none;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .2);
}

.bl-launcher__call {
    display: none;
    background: var(--bl-navy);
    color: #fff;
}

.bl-launcher__open {
    background: var(--bl-red);
    color: #fff;
}

.bl-launcher__open:hover,
.bl-launcher__open:focus-visible {
    background: var(--bl-red-dark);
}

.bl-launcher--mobile {
    display: none;
}

.bl-modal {
    width: min(640px, calc(100% - 24px));
    max-height: calc(100vh - 24px);
    border: 0;
    border-top: 4px solid var(--bl-red);
    border-radius: 8px;
    padding: 28px;
    overflow: auto;
}

.bl-modal::backdrop {
    background: rgba(23, 43, 59, .65);
}

.bl-modal__close {
    position: absolute;
    top: 8px;
    right: 10px;
    border: 0;
    background: transparent;
    color: var(--bl-muted);
    font-size: 2rem;
    line-height: 1;
    cursor: pointer;
    padding: 4px 8px;
}

body.bl-modal-open {
    overflow: hidden;
}

@media (max-width: 768px) {
    .bl-grid {
        grid-template-columns: 1fr;
    }

    .bl-form-wrap--inline,
    .bl-modal {
        padding: 22px 18px;
    }

    .bl-launcher,
    .bl-launcher--mobile {
        display: flex;
        left: 0;
        right: 0;
        bottom: 0;
        gap: 0;
        box-shadow: 0 -2px 12px rgba(0, 0, 0, .15);
    }

    .bl-launcher__call,
    .bl-launcher__open {
        flex: 1;
        border-radius: 0;
        box-shadow: none;
        padding: 15px 10px;
    }

    .bl-launcher__call {
        display: inline-flex;
    }

    body.bl-has-launcher {
        padding-bottom: 54px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bl-submit {
        transition: none;
    }
}
