.zba-wrap {
    --zba-navy: #222222;
    --zba-blue: #444444;
    --zba-red: #222222;
    --zba-yellow: #eeeeee;
    --zba-ink: #222222;
    --zba-muted: #666666;
    --zba-line: #dddddd;
    color: var(--zba-ink);
    font-family: inherit;
    margin: 2rem auto;
    max-width: 980px;
}

.zba-form {
    background: #fff;
    border: 1px solid var(--zba-line);
    border-radius: 22px;
    box-shadow: 0 18px 55px rgba(28, 47, 73, .12);
    overflow: hidden;
}

.zba-heading {
    background: linear-gradient(135deg, #111111, #3a3a3a);
    border-bottom: 7px solid #bdbdbd;
    color: #fff;
    padding: clamp(1.6rem, 4vw, 3rem);
}

.zba-heading h2 {
    color: #fff;
    font-size: clamp(1.8rem, 4vw, 2.8rem);
    line-height: 1.1;
    margin: .2rem 0 .7rem;
}

.zba-heading p { margin: 0; max-width: 760px; }
.zba-heading .zba-eyebrow { color: var(--zba-yellow); font-size: .82rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }

.zba-form fieldset {
    border: 0;
    border-bottom: 1px solid var(--zba-line);
    margin: 0;
    padding: clamp(1.4rem, 4vw, 2.5rem);
}

.zba-form legend {
    color: var(--zba-navy);
    float: left;
    font-size: 1.25rem;
    font-weight: 800;
    margin: 0 0 1.2rem;
    width: 100%;
}

.zba-form legend + * { clear: both; }
.zba-grid { display: grid; gap: 1rem; width: 100%; }
.zba-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.zba-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.zba-grid + .zba-grid { margin-top: 1rem; }
.zba-grid--address .zba-field:last-child { grid-column: span 3; }

.zba-field { display: flex; flex-direction: column; gap: .42rem; margin: 0; }
.zba-field--wide { display: flex; margin: 0; padding: 0 clamp(1.4rem, 4vw, 2.5rem) clamp(1.4rem, 4vw, 2.5rem); }
fieldset .zba-field--wide { padding: 0; }
.zba-field > span { color: var(--zba-ink); font-size: .93rem; font-weight: 700; }
.zba-form em { color: var(--zba-red); font-style: normal; }

.zba-form input:not([type="checkbox"]),
.zba-form select,
.zba-form textarea {
    appearance: none;
    background: #fff;
    border: 1px solid #b9c8d9;
    border-radius: 10px;
    box-sizing: border-box;
    color: var(--zba-ink);
    font: inherit;
    min-height: 48px;
    padding: .72rem .85rem;
    width: 100%;
}

.zba-form select {
    background-image: linear-gradient(45deg, transparent 50%, var(--zba-navy) 50%), linear-gradient(135deg, var(--zba-navy) 50%, transparent 50%);
    background-position: calc(100% - 18px) 50%, calc(100% - 12px) 50%;
    background-repeat: no-repeat;
    background-size: 6px 6px, 6px 6px;
    padding-right: 2.7rem;
}

.zba-form textarea { min-height: 135px; resize: vertical; }
.zba-form input::placeholder,
.zba-form textarea::placeholder {
    color: #7c8797 !important;
    font-weight: 400 !important;
    opacity: 1;
}
.zba-form input:focus, .zba-form select:focus, .zba-form textarea:focus { border-color: var(--zba-blue); box-shadow: 0 0 0 3px rgba(34, 34, 34, .13); outline: 0; }
.zba-help { color: var(--zba-muted); font-size: .9rem; margin: .7rem 0 1.3rem; }

.zba-consent {
    align-items: flex-start;
    display: flex;
    gap: .75rem;
    line-height: 1.5;
    padding: clamp(1.4rem, 4vw, 2.5rem) clamp(1.4rem, 4vw, 2.5rem) 1rem;
}

.zba-consent input { flex: 0 0 auto; height: 20px; margin-top: .18rem; width: 20px; }
.zba-consent a { color: #075fb5; font-weight: 700; }

.zba-submit {
    background: var(--zba-red);
    border: 0;
    border-radius: 11px;
    box-shadow: 0 7px 18px rgba(34, 34, 34, .2);
    color: #fff;
    cursor: pointer;
    font: inherit;
    font-weight: 800;
    margin: .5rem clamp(1.4rem, 4vw, 2.5rem);
    padding: .9rem 1.5rem;
}

.zba-submit:hover { background: #000; transform: translateY(-1px); }
.zba-submit:disabled { cursor: wait; opacity: .65; transform: none; }
.zba-required { color: var(--zba-muted); font-size: .84rem; margin: 0; padding: .2rem clamp(1.4rem, 4vw, 2.5rem) 2.2rem; }
.zba-honeypot { height: 0; left: -10000px; overflow: hidden; position: absolute; width: 0; }

.zba-message {
    border: 1px solid;
    border-radius: 12px;
    display: grid;
    gap: .25rem;
    margin: 0 0 1rem;
    padding: 1rem 1.15rem;
}

.zba-message--success { background: #ecfdf3; border-color: #86d2a5; color: #14532d; }
.zba-message--error { background: #fff1f2; border-color: #f5a3aa; color: #8d1019; }
.zba-message ul { margin: .35rem 0 0 1.2rem; }

@media (max-width: 760px) {
    .zba-grid--2, .zba-grid--3 { grid-template-columns: 1fr; }
    .zba-grid--address .zba-field:last-child { grid-column: auto; }
    .zba-form { border-radius: 14px; }
    body:has(.zba-wrap) .custom-sticky-buttons { transform: scale(.78); transform-origin: right center; }
    body:has(.zba-wrap) .zba-form fieldset,
    body:has(.zba-wrap) .zba-consent { padding-right: 4rem; }
}
