.bp-lead-hunter,
.bp-lead-hunter * {
    box-sizing: border-box;
}

.bp-lead-hunter {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(7, 25, 44, 0.58);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.bp-lead-hunter.is-open {
    opacity: 1;
    visibility: visible;
}

.bp-lead-hunter__panel {
    position: relative;
    width: min(100%, 540px);
    overflow: hidden;
    border: 1px solid rgba(20, 72, 118, 0.14);
    border-radius: 22px;
    background: #fff;
    box-shadow: 0 24px 80px rgba(5, 28, 53, 0.26);
    color: #102f4f;
    transform: translateY(12px) scale(0.985);
    transition: transform 180ms ease;
}

.bp-lead-hunter.is-open .bp-lead-hunter__panel {
    transform: translateY(0) scale(1);
}

.bp-lead-hunter__panel::before {
    position: absolute;
    inset: 0 0 auto;
    height: 7px;
    background: linear-gradient(90deg, #117fe4 0 58%, #1599ef 58% 76%, #c9ebff 76% 88%, #117fe4 88%);
    content: '';
}

.bp-lead-hunter__panel::after {
    position: absolute;
    top: 34px;
    right: -54px;
    width: 190px;
    height: 190px;
    border: 1px solid rgba(17, 127, 228, 0.08);
    border-radius: 36px;
    box-shadow: 0 0 0 22px rgba(17, 127, 228, 0.035), 0 0 0 44px rgba(17, 127, 228, 0.025);
    transform: rotate(30deg);
    pointer-events: none;
    content: '';
}

.bp-lead-hunter__content {
    position: relative;
    z-index: 1;
    padding: 42px 48px 38px;
}

.bp-lead-hunter__close {
    position: absolute;
    z-index: 2;
    top: 20px;
    right: 20px;
    display: grid;
    width: 38px;
    height: 38px;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #eef6fd;
    color: #173f64;
    font: 400 26px/1 Arial, sans-serif;
    cursor: pointer;
    transition: background 150ms ease, color 150ms ease, transform 150ms ease;
}

.bp-lead-hunter__close:hover,
.bp-lead-hunter__close:focus-visible {
    background: #117fe4;
    color: #fff;
    outline: none;
    transform: rotate(4deg);
}

.bp-lead-hunter__eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    margin: 0 0 14px;
    padding: 5px 11px;
    border-radius: 999px;
    background: #eaf5ff;
    color: #1173c8;
    font: 700 12px/1.2 Arial, sans-serif;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.bp-lead-hunter h2 {
    max-width: 390px;
    margin: 0;
    color: #0b3156;
    font: 700 clamp(28px, 4vw, 36px)/1.12 Arial, sans-serif;
    letter-spacing: -0.025em;
}

.bp-lead-hunter__subtitle {
    max-width: 405px;
    margin: 15px 0 24px;
    color: #54708b;
    font: 400 17px/1.52 Arial, sans-serif;
}

.bp-lead-hunter__form {
    display: grid;
    gap: 13px;
}

.bp-lead-hunter__phone-label {
    display: block;
    color: #163c61;
    font: 700 14px/1.3 Arial, sans-serif;
}

.bp-lead-hunter__phone {
    width: 100%;
    min-height: 56px;
    margin-top: 8px;
    padding: 0 18px;
    border: 1px solid #b8ccde;
    border-radius: 12px;
    background: #fff;
    color: #0b3156;
    font: 600 18px/1 Arial, sans-serif;
    letter-spacing: 0.01em;
    outline: none;
    transition: border-color 150ms ease, box-shadow 150ms ease;
}

.bp-lead-hunter__phone::placeholder {
    color: #8aa0b4;
    font-weight: 400;
}

.bp-lead-hunter__phone:focus {
    border-color: #117fe4;
    box-shadow: 0 0 0 4px rgba(17, 127, 228, 0.12);
}

.bp-lead-hunter__consent {
    display: grid;
    grid-template-columns: 19px 1fr;
    gap: 9px;
    align-items: start;
    color: #627a91;
    font: 400 12px/1.45 Arial, sans-serif;
    cursor: pointer;
}

.bp-lead-hunter__consent input {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #117fe4;
}

.bp-lead-hunter__consent a {
    color: #1173c8;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.bp-lead-hunter__submit {
    width: 100%;
    min-height: 56px;
    margin-top: 2px;
    padding: 0 22px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(100deg, #117fe4, #1599ef);
    box-shadow: 0 10px 26px rgba(17, 127, 228, 0.24);
    color: #fff;
    font: 700 17px/1 Arial, sans-serif;
    cursor: pointer;
    transition: filter 150ms ease, transform 150ms ease, box-shadow 150ms ease;
}

.bp-lead-hunter__submit:hover,
.bp-lead-hunter__submit:focus-visible {
    filter: brightness(1.04);
    outline: none;
    transform: translateY(-1px);
    box-shadow: 0 13px 30px rgba(17, 127, 228, 0.3);
}

.bp-lead-hunter__submit:disabled {
    cursor: wait;
    filter: grayscale(0.2);
    opacity: 0.72;
    transform: none;
}

.bp-lead-hunter__note,
.bp-lead-hunter__status {
    margin: 0;
    text-align: center;
    font: 400 13px/1.45 Arial, sans-serif;
}

.bp-lead-hunter__note {
    color: #70869a;
}

.bp-lead-hunter__status {
    min-height: 19px;
    color: #58718a;
}

.bp-lead-hunter__status.is-error {
    color: #b42932;
}

.bp-lead-hunter__success {
    display: grid;
    min-height: 300px;
    align-content: center;
    justify-items: start;
}

.bp-lead-hunter__success-icon {
    display: grid;
    width: 52px;
    height: 52px;
    place-items: center;
    margin-bottom: 18px;
    border-radius: 50%;
    background: #e8f7ef;
    color: #16824f;
    font: 700 25px/1 Arial, sans-serif;
}

.bp-lead-hunter__success p {
    max-width: 370px;
    margin: 14px 0 0;
    color: #54708b;
    font: 400 17px/1.5 Arial, sans-serif;
}

.bp-lead-hunter__honeypot {
    position: absolute !important;
    left: -10000px !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

body.bp-lead-hunter-open {
    overflow: hidden;
}

@media (max-width: 640px) {
    .bp-lead-hunter {
        align-items: end;
        padding: 0;
    }

    .bp-lead-hunter__panel {
        width: 100%;
        max-height: calc(100vh - 24px);
        overflow-y: auto;
        border-right: 0;
        border-bottom: 0;
        border-left: 0;
        border-radius: 22px 22px 0 0;
        transform: translateY(32px);
    }

    .bp-lead-hunter__content {
        padding: 38px 24px calc(24px + env(safe-area-inset-bottom));
    }

    .bp-lead-hunter__close {
        top: 16px;
        right: 16px;
    }

    .bp-lead-hunter h2 {
        max-width: calc(100% - 42px);
        font-size: 28px;
    }

    .bp-lead-hunter__subtitle {
        margin-bottom: 20px;
        font-size: 16px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .bp-lead-hunter,
    .bp-lead-hunter__panel,
    .bp-lead-hunter__close,
    .bp-lead-hunter__submit {
        transition: none;
    }
}
