.psa-wrap {
    --psa-navy: #282554;
    --psa-blue: #1676e8;
    --psa-red: #ed0611;
    --psa-yellow: #ffeb0b;
    --psa-ink: #172b46;
    --psa-muted: #5f6f82;
    --psa-line: #d8e1ec;
    color: var(--psa-ink);
    font-family: inherit;
    margin: 2rem auto;
    max-width: 980px;
}

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

.psa-heading {
    background: linear-gradient(135deg, var(--psa-navy), #173e67);
    border-bottom: 7px solid var(--psa-yellow);
    color: #fff;
    padding: clamp(1.6rem, 4vw, 3rem);
}

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

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

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

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

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

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

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

.psa-form select {
    background-image: linear-gradient(45deg, transparent 50%, var(--psa-navy) 50%), linear-gradient(135deg, var(--psa-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;
}

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

.psa-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;
}

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

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

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

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

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

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