:root {
    --rba-bg: #f5f7fb;
    --rba-surface: #ffffff;
    --rba-surface-soft: #f8fbff;
    --rba-text: #111827;
    --rba-muted: #5f6f85;
    --rba-border: #dbe3ef;
    --rba-border-strong: #c8d2e0;
    --rba-primary: #3046c7;
    --rba-primary-dark: #2437a8;
    --rba-primary-soft: rgba(48, 70, 199, 0.12);
    --rba-teal: #12a7b4;
    --rba-danger: #d92d20;
    --rba-success: #067647;
    --rba-shadow: 0 20px 50px rgba(15, 23, 42, 0.10);
    --rba-shadow-soft: 0 8px 14px rgba(15, 23, 42, 0.12);
    --rba-radius-lg: 18px;
    --rba-radius-md: 14px;
    --rba-radius-sm: 10px;
}

.req-bus-acct-bg-img {
    position: relative;
    background-image: url('/pages/business-solutions/images/business_request_form_background_1920.webp');
    background-position: center top;
    background-repeat: no-repeat;
    background-size: cover;
}

.req-bus-acct-bg-img::before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at top left, rgba(48, 70, 199, 0.08), transparent 32rem),
        linear-gradient(180deg, rgba(248, 250, 252, 0.92) 0%, rgba(245, 247, 251, 0.90) 100%);
    pointer-events: none;
}

.req-bus-acct-bg-img > .container {
    position: relative;
    z-index: 1;
}

.rba-page,
.rba-page * {
    box-sizing: border-box;
}

.rba-page {
    padding: 4px 0 18px;
    color: var(--rba-text);
}

.rba-shell {
    width: 100%;
    max-width: 1120px;
    margin: 10px auto 10px;
    background: var(--rba-surface);
    border: 1px solid #e6ebf2;
    border-radius: var(--rba-radius-lg);
    overflow: hidden;
    box-shadow: var(--rba-shadow);
}

.rba-panel-header {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 18px;
    min-height: 132px;
    padding: 26px 28px;
    color: #ffffff;
    border-bottom: 1px solid rgba(18, 29, 78, 0.18);
    background:
        radial-gradient(circle at 90% 24%, rgba(255, 255, 255, 0.24), transparent 18%),
        radial-gradient(circle at 82% 84%, rgba(255, 255, 255, 0.12), transparent 20%),
        linear-gradient(120deg, #2f3fb8 0%, #0065c8 58%, #12a7b4 100%);
}

.rba-panel-header::after {
    content: "";
    position: absolute;
    right: 28px;
    top: 22px;
    width: 150px;
    height: 90px;
    opacity: 0.18;
    background-image: radial-gradient(circle, #ffffff 1.5px, transparent 1.5px);
    background-size: 14px 14px;
    pointer-events: none;
}

.rba-panel-header > * {
    position: relative;
    z-index: 1;
}

.rba-panel-header .rba-info-icon {
    color: #ffffff;
    width: auto;
    height: auto;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
    font-size: 3.75rem;
    line-height: 1;
}

.rba-panel-header .rba-info-title {
    color: #ffffff;
}

.rba-panel-header .rba-info-copy {
    color: rgba(255, 255, 255, 0.92);
}

.rba-panel-header .rba-required-pill {
    color: #0f2d63;
    background: rgba(255, 255, 255, 0.92);
    border-color: rgba(255, 255, 255, 0.98);
}

.rba-hero {
    position: relative;
    display: flex;
    align-items: center;
    gap: 22px;
    min-height: 150px;
    padding: 34px 38px;
    color: #ffffff;
    background:
        radial-gradient(circle at 92% 22%, rgba(255, 255, 255, 0.24), transparent 18%),
        radial-gradient(circle at 86% 82%, rgba(255, 255, 255, 0.12), transparent 17%),
        linear-gradient(120deg, #2f3fb8 0%, #0065c8 56%, #12a7b4 100%);
}

.rba-hero::after {
    content: "";
    position: absolute;
    right: 26px;
    top: 24px;
    width: 150px;
    height: 90px;
    opacity: 0.18;
    background-image: radial-gradient(circle, #ffffff 1.5px, transparent 1.5px);
    background-size: 14px 14px;
    pointer-events: none;
}

.rba-hero-icon {
    position: relative;
    z-index: 1;
    flex: 0 0 auto;
    width: 72px;
    height: 72px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22);
}

.rba-hero-icon svg {
    width: 42px;
    height: 42px;
    display: block;
}

.rba-hero-copy {
    position: relative;
    z-index: 1;
}

.rba-hero h1 {
    margin: 0 0 7px;
    color: #ffffff;
    font-size: clamp(1.65rem, 2.8vw, 2.35rem);
    line-height: 1.16;
    font-weight: 750;
    letter-spacing: -0.02em;
}

.rba-hero p {
    margin: 0;
    color: rgba(255, 255, 255, 0.94);
    font-size: clamp(1.08rem, 1.75vw, 1.2rem);
    line-height: 1.5;
}

.rba-content {
    padding: 34px;
}

.rba-message-stack {
    margin-bottom: 28px;
}

.rba-client-validation-message {
    margin-bottom: 16px;
}

.rba-message-stack:empty {
    display: none;
}

.rba-message-stack .row {
    margin: 0;
}

.rba-message-stack [class*="col-"] {
    float: none;
    width: 100%;
    padding: 0;
}

.rba-info-card,
.rba-form-card,
.rba-trust-card {
    background: var(--rba-surface);
    border: 1px solid #e5eaf2;
    border-radius: 8px;
    box-shadow: var(--rba-shadow-soft);
}

.rba-info-card {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    padding: 22px 26px;
    margin-bottom: 28px;
}

.rba-info-icon {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rba-primary);
    background: var(--rba-primary-soft);
    border: 1px solid rgba(48, 70, 199, 0.22);
    font-weight: 800;
    font-size: 1.25rem;
    line-height: 1;
}

.rba-info-title {
    margin: 0 0 8px;
    color: var(--rba-text);
    font-weight: 700;
    font-size: 17px;
    line-height: 1.45;
}

.rba-info-copy {
    margin: 0;
    color: var(--rba-muted);
    font-size: 13px;
    line-height: 1.65;
}

.rba-form-card {
    padding: 28px;
    margin-bottom: 28px;
}

.rba-section-title {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 24px;
}

.rba-section-number {
    flex: 0 0 auto;
    display: inline-flex;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--rba-primary);
    color: #ffffff;
    font-size: 1.2rem;
    font-weight: 800;
    box-shadow: 0 8px 16px rgba(48, 70, 199, 0.22);
}

.rba-section-title h2 {
    margin: 0;
    color: var(--rba-text);
    font-size: clamp(1.24rem, 1.7vw, 1.5rem);
    line-height: 1.25;
    font-weight: 750;
    letter-spacing: -0.01em;
}

.rba-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 24px 32px;
}

.rba-col-12 {
    grid-column: span 12;
}

.rba-col-8 {
    grid-column: span 8;
}

.rba-col-6 {
    grid-column: span 6;
}

.rba-col-4 {
    grid-column: span 4;
}

.rba-col-3 {
    grid-column: span 3;
}

.rba-field {
    min-width: 0;
}

.rba-field label {
    display: block;
    margin: 0 0 8px;
    color: #172033;
    font-weight: 650;
    font-size: 15px;
    line-height: 1.4;
}

.rba-required-pill {
    display: inline-flex;
    align-items: center;
    margin-left: 8px;
    padding: 0.15rem 0.5rem;
    border: 1px solid rgba(48, 70, 199, 0.18);
    border-radius: 2px;
    background: #eef3ff;
    color: #2f3fb8;
    font-size: 0.72em;
    line-height: 1;
    font-weight: 700;
    letter-spacing: 0.02em;
    vertical-align: middle;
}

.rba-input-wrap {
    position: relative;
}

.rba-input-wrap input,
.rba-input-wrap select,
.rba-input-wrap textarea {
    width: 100%;
    min-height: 56px;
    border: 1px solid var(--rba-border-strong);
    border-radius: 8px;
    background: #ffffff;
    color: #172033;
    font-size: 1.5rem;
    line-height: 1.4;
    padding: 14px 18px;
    box-shadow: 0 1px 0 rgba(15, 23, 42, 0.02);
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        background-color 0.15s ease;
}

.rba-input-wrap textarea {
    min-height: 132px;
    resize: vertical;
}

.rba-input-wrap select {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 44px;
    background-image:
        linear-gradient(45deg, transparent 50%, #64748b 50%),
        linear-gradient(135deg, #64748b 50%, transparent 50%);
    background-position:
        calc(100% - 20px) 22px,
        calc(100% - 15px) 22px;
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
}

.rba-input-wrap input::placeholder,
.rba-input-wrap textarea::placeholder {
    color: #98a4b5;
    opacity: 1;
}

.rba-input-wrap input:focus,
.rba-input-wrap select:focus,
.rba-input-wrap textarea:focus {
    border-color: #1f6fd1;
    box-shadow: 0 0 0 4px rgba(31, 111, 209, 0.14);
    outline: none;
}

.rba-control-invalid {
    border-radius: 8px;
}

.rba-control-invalid input,
.rba-control-invalid select,
.rba-control-invalid textarea,
.rba-field-invalid .rba-radio-group,
.rba-field-invalid .rba-checkbox-group {
    border-color: var(--rba-danger);
}

.rba-field-invalid .rba-radio-group,
.rba-field-invalid .rba-checkbox-group {
    padding: 10px 12px;
    border: 1px solid var(--rba-danger);
    border-radius: 8px;
    background: #fff8f7;
}

.rba-control-invalid input:focus,
.rba-control-invalid select:focus,
.rba-control-invalid textarea:focus {
    border-color: var(--rba-danger);
    box-shadow: 0 0 0 4px rgba(217, 45, 32, 0.14);
}

.rba-input-wrap input:disabled,
.rba-input-wrap select:disabled,
.rba-input-wrap textarea:disabled {
    background: #f1f5f9;
    color: #64748b;
    cursor: not-allowed;
}

.rba-help {
    margin: 8px 0 0;
    color: var(--rba-muted);
    font-size: 1.3rem;
    line-height: 1.5;
}

.rba-page .text-danger {
    margin: 8px 0 0;
    color: var(--rba-danger);
    font-size: 0.98rem;
    line-height: 1.5;
}

.rba-page .text-danger strong {
    font-weight: 650;
}

.rba-client-field-note {
    margin: 8px 0 0;
    color: var(--rba-danger);
    font-size: 0.98rem;
    line-height: 1.5;
    font-weight: 650;
}

.rba-page .alert,
.rba-page .alert-danger,
.rba-page .alert-success {
    border-radius: 12px;
    border: 1px solid #e5eaf2;
    box-shadow: var(--rba-shadow-soft);
    margin-bottom: 0;
}

.rba-page .alert-danger {
    border-color: rgba(217, 45, 32, 0.18);
    background: #fef3f2;
    color: #8a1c16;
}

.rba-page .alert-success {
    border-color: rgba(6, 118, 71, 0.18);
    background: #ecfdf3;
    color: var(--rba-success);
}

.rba-checkbox-group,
.rba-radio-group {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 18px;
}

.rba-field .rba-check-option {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
    width: 100%;
    padding: 12px 14px;
    margin: 0;
    border: 1px solid var(--rba-border);
    border-radius: 8px;
    background: #ffffff;
    color: #172033;
}

.rba-field .rba-check-option input {
    flex: 0 0 auto;
    margin-top: 0;
}

.rba-field .rba-check-option span {
    display: block;
    flex: 1 1 auto;
    color: #172033;
    font-weight: 500;
    font-size: 1.5rem;
    line-height: 1.4;
}

@media (min-width: 1400px) {
    .rba-info-title {
        font-size: 18px;
    }

    .rba-info-copy {
        font-size: 14px;
    }

    .rba-field label {
        font-size: 16px;
    }

    .rba-input-wrap input,
    .rba-input-wrap select,
    .rba-input-wrap textarea {
        min-height: 58px;
        font-size: 1.6rem;
    }

    .rba-page .text-danger {
        font-size: 1.02rem;
    }

    .rba-section-title h2 {
        font-size: 1.56rem;
    }
}

.rba-captcha-wrap {
    padding: 18px;
    border: 1px solid var(--rba-border);
    border-radius: 8px;
    background: var(--rba-surface-soft);
}

.rba-captcha-media {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.rba-captcha-wrap .captcha-image {
    display: block;
    max-width: 100%;
    height: auto;
    border: 1px solid var(--rba-border);
    border-radius: 10px;
    background: #ffffff;
    padding: 6px 10px;
}

.rba-captcha-refresh {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: 1px solid var(--rba-border);
    border-radius: 10px;
    background: #ffffff;
    color: var(--rba-primary);
    min-height: 42px;
    padding: 0 14px;
    font-weight: 700;
    cursor: pointer;
    transition:
        border-color 0.15s ease,
        box-shadow 0.15s ease,
        color 0.15s ease;
}

.rba-captcha-refresh:hover,
.rba-captcha-refresh:focus {
    color: var(--rba-primary-dark);
    border-color: #9fb6d8;
    box-shadow: 0 0 0 4px rgba(31, 111, 209, 0.12);
    outline: none;
}

.rba-trust-card {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 22px;
    padding: 24px;
    margin-bottom: 22px;
    background: linear-gradient(180deg, #fbfdff 0%, #f8fbff 100%);
}

.rba-trust-item {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    min-width: 0;
}

.rba-trust-icon {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    color: var(--rba-primary);
    background: var(--rba-primary-soft);
}

.rba-trust-icon svg {
    width: 21px;
    height: 21px;
    display: block;
}

.rba-trust-item strong,
.rba-trust-item span {
    display: block;
}

.rba-trust-item strong {
    margin-bottom: 5px;
    color: #172033;
    font-size: 1.3rem;
    line-height: 1.35;
}

.rba-trust-item span {
    color: #526174;
    font-size: 1.2rem;
    line-height: 1.45;
}

.rba-submit-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding-top: 2px;
    text-align: center;
}

.rba-submit-btn {
    min-height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 0 34px;
    border: 0;
    border-radius: 10px;
    background: var(--rba-primary);
    color: #ffffff;
    font-weight: 800;
    font-size: 1.5rem;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 10px 20px rgba(48, 70, 199, 0.22);
    transition:
        background-color 0.15s ease,
        transform 0.15s ease,
        box-shadow 0.15s ease;
}

.rba-submit-btn:hover,
.rba-submit-btn:focus {
    background: var(--rba-primary-dark);
    color: #ffffff;
    box-shadow: 0 12px 24px rgba(48, 70, 199, 0.26);
}

.rba-submit-btn:focus {
    outline: 3px solid rgba(48, 70, 199, 0.28);
    outline-offset: 2px;
}

.rba-submit-btn:active {
    transform: translateY(1px);
}

.rba-submit-btn[disabled] {
    opacity: 0.88;
    cursor: wait;
    transform: none;
}

.rba-submit-note {
    margin: 0;
    color: var(--rba-muted);
    font-size: 0.9rem;
    line-height: 1.45;
    text-align: center;
}

.rba-hidden-honeypot {
    position: absolute !important;
    left: -10000px !important;
    top: auto !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
}

@media (max-width: 991px) {
    .rba-page {
        padding: 0 0 10px;
    }

    .rba-content {
        padding: 26px;
    }

    .rba-grid {
        gap: 22px;
    }

    .rba-col-3,
    .rba-col-4 {
        grid-column: span 6;
    }

    .rba-trust-card {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 767px) {
    .rba-page {
        padding: 0 0 10px;
    }

    .rba-shell {
        border-radius: 14px;
    }

    .rba-hero {
        min-height: auto;
        padding: 24px 20px;
        gap: 14px;
        align-items: flex-start;
    }

    .rba-hero::after {
        right: -18px;
        top: 16px;
        width: 120px;
        height: 80px;
    }

    .rba-hero-icon {
        width: 54px;
        height: 54px;
        border-radius: 13px;
    }

    .rba-hero-icon svg {
        width: 32px;
        height: 32px;
    }

    .rba-hero h1 {
        font-size: 1.35rem;
    }

    .rba-hero p {
        font-size: 1rem;
    }

    .rba-content {
        padding: 18px;
    }

    .rba-panel-header {
        min-height: auto;
        padding: 22px 18px;
        gap: 12px;
    }

    .rba-panel-header::after {
        right: -18px;
        top: 12px;
        width: 120px;
        height: 80px;
    }

    .rba-panel-header .rba-info-icon {
        font-size: 2.25rem;
    }

    .rba-info-card {
        padding: 18px;
        gap: 13px;
        margin-bottom: 20px;
        border-radius: 8px;
    }

    .rba-info-icon {
        width: 38px;
        height: 38px;
        font-size: 1.05rem;
    }

    .rba-info-title {
        font-size: 16px;
    }

    .rba-info-copy {
        font-size: 14px;
    }

    .rba-form-card {
        padding: 18px;
        margin-bottom: 20px;
        border-radius: 8px;
    }

    .rba-section-title {
        gap: 10px;
        margin-bottom: 20px;
    }

    .rba-section-number {
        width: 32px;
        height: 32px;
        font-size: 0.94rem;
    }

    .rba-section-title h2 {
        font-size: 1.12rem;
    }

    .rba-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .rba-col-12,
    .rba-col-8,
    .rba-col-6,
    .rba-col-4,
    .rba-col-3 {
        grid-column: 1 / -1;
    }

    .rba-field label {
        font-size: 15px;
    }

    .rba-input-wrap input,
    .rba-input-wrap select,
    .rba-input-wrap textarea {
        min-height: 48px;
        font-size: 1rem;
        padding-top: 11px;
        padding-bottom: 11px;
    }

    .rba-help {
        font-size: 0.95rem;
    }

    .rba-field .rba-check-option span {
        font-size: 1rem;
        line-height: 1.35;
    }

    .rba-trust-card {
        padding: 18px;
        gap: 16px;
        border-radius: 8px;
    }

    .rba-trust-item strong {
        font-size: 1rem;
    }

    .rba-trust-item span {
        font-size: 0.92rem;
    }

    .rba-submit-row {
        display: block;
    }

    .rba-submit-btn {
        width: 100%;
        min-height: 52px;
    }

    .rba-submit-note {
        margin-top: 12px;
        text-align: center;
        font-size: 0.9rem;
    }

    .rba-captcha-media {
        align-items: stretch;
    }

    .rba-captcha-refresh {
        width: 100%;
        justify-content: center;
    }
}

@media (max-width: 380px) {
    .rba-content {
        padding: 14px;
    }

    .rba-panel-header {
        padding: 18px 14px;
    }

    .rba-panel-header .rba-info-icon {
        font-size: 2rem;
    }

    .rba-hero {
        padding: 20px 16px;
    }

    .rba-form-card,
    .rba-info-card,
    .rba-trust-card {
        padding: 15px;
    }

    .rba-field label {
        font-size: 14px;
    }
}
