.contact-body {
    background:
        radial-gradient(circle at 12% 9%, rgba(89, 101, 220, .11), transparent 27rem),
        radial-gradient(circle at 90% 28%, rgba(25, 163, 125, .08), transparent 25rem),
        var(--canvas);
}

.contact-page {
    width: min(100% - 2rem, 68rem);
    margin-inline: auto;
    padding-block: clamp(2.5rem, 7vw, 5.5rem);
}

.contact-hero {
    max-width: 46rem;
    margin-bottom: clamp(1.75rem, 4vw, 3rem);
}

.contact-hero h1 {
    margin: .45rem 0 .85rem;
    font-size: clamp(2.35rem, 7vw, 4.7rem);
    line-height: .98;
    letter-spacing: -.055em;
}

.contact-hero > p:last-child {
    max-width: 42rem;
    margin: 0;
    color: var(--ink-soft);
    font-size: clamp(1rem, 2vw, 1.15rem);
    line-height: 1.65;
}

.contact-success {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .85rem;
    align-items: start;
    margin-bottom: 1rem;
    padding: 1rem 1.1rem;
    border: 1px solid color-mix(in srgb, var(--success) 28%, var(--line));
    border-radius: 1rem;
    background: color-mix(in srgb, var(--success-soft) 74%, white);
}

.contact-success > span {
    width: 2rem;
    height: 2rem;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: var(--success);
    color: white;
    font-weight: 800;
}

.contact-success h2,
.contact-success p {
    margin: 0;
}

.contact-success h2 {
    font-size: 1rem;
}

.contact-success p {
    margin-top: .18rem;
    color: var(--ink-soft);
    font-size: .83rem;
}

.contact-layout {
    display: grid;
    gap: 1rem;
}

.contact-direct,
.contact-form-card {
    min-width: 0;
    border: 1px solid var(--line);
    border-radius: 1.25rem;
}

.contact-direct {
    align-self: start;
    padding: clamp(1.35rem, 4vw, 2rem);
    background: var(--navy);
    color: #d9dfeb;
    box-shadow: 0 24px 58px rgba(14, 23, 38, .13);
}

.contact-direct__kicker {
    color: #aeb8ca;
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.contact-direct h2 {
    margin: .5rem 0 .7rem;
    color: white;
    font-size: clamp(1.45rem, 4vw, 2.1rem);
}

.contact-direct > p {
    margin: 0;
    color: #bec7d6;
    font-size: .88rem;
    line-height: 1.65;
}

.contact-direct__email {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: .75rem;
    align-items: center;
    margin-top: 1.4rem;
    padding: .9rem;
    border: 1px solid #344055;
    border-radius: .85rem;
    background: rgba(255, 255, 255, .06);
    color: white;
    text-decoration: none;
}

.contact-direct__email:hover {
    border-color: #5965dc;
    background: rgba(255, 255, 255, .1);
    color: white;
}

.contact-direct__email svg {
    width: 1.35rem;
    height: 1.35rem;
    fill: none;
    stroke: #aeb7ff;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.contact-direct__email span,
.contact-direct__email small,
.contact-direct__email strong {
    display: block;
    min-width: 0;
}

.contact-direct__email small {
    margin-bottom: .1rem;
    color: #aeb8ca;
    font-size: .66rem;
}

.contact-direct__email strong {
    overflow-wrap: anywhere;
    font-size: .87rem;
}

.contact-direct__note {
    display: grid;
    gap: .28rem;
    margin-top: 1.4rem;
    padding-top: 1.25rem;
    border-top: 1px solid #293447;
}

.contact-direct__note strong {
    color: white;
    font-size: .83rem;
}

.contact-direct__note span {
    color: #aeb8ca;
    font-size: .73rem;
    line-height: 1.55;
}

.contact-form-card {
    padding: clamp(1.2rem, 4vw, 2rem);
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 24px 65px rgba(20, 29, 48, .09);
}

.contact-form-card__heading {
    margin-bottom: 1.25rem;
}

.contact-form-card__heading > span {
    color: var(--brand-dark);
    font-size: .7rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.contact-form-card__heading h2 {
    margin: .35rem 0 0;
    font-size: clamp(1.45rem, 4vw, 2rem);
}

.contact-form .form-group {
    margin-bottom: .95rem;
}

.contact-form .form-group small {
    color: var(--faint);
    font-size: .7rem;
    line-height: 1.45;
}

.contact-form textarea {
    min-height: 10rem;
}

.contact-form-trap {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
}

.contact-turnstile {
    display: grid;
    justify-items: center;
    gap: .45rem;
    min-width: 0;
    margin-block: .25rem 1rem;
    padding: .9rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: .8rem;
    background: var(--surface-soft);
}

.contact-turnstile .cf-turnstile {
    width: min(100%, 32rem);
    min-width: 0;
}

.contact-turnstile small {
    color: var(--faint);
    font-size: .68rem;
    text-align: center;
}

.contact-form__actions {
    display: grid;
    gap: .75rem;
}

.contact-form__actions p {
    margin: 0;
    color: var(--faint);
    font-size: .68rem;
    line-height: 1.5;
}

.contact-unavailable {
    padding: 1rem;
    border: 1px solid #f0d4a6;
    border-radius: .8rem;
    background: #fffaf1;
}

.contact-unavailable strong {
    color: #80520b;
}

.contact-unavailable p {
    margin: .35rem 0 0;
    color: #6f5227;
    font-size: .83rem;
    line-height: 1.55;
}

@media (min-width: 48rem) {
    .contact-layout {
        grid-template-columns: minmax(16rem, .72fr) minmax(0, 1.28fr);
        gap: 1.2rem;
        align-items: start;
    }

    .contact-form__row {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: .85rem;
    }

    .contact-form__actions {
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
    }
}

@media (max-width: 31rem) {
    .contact-page {
        width: min(100% - 1rem, 68rem);
        padding-block: 1.5rem 2.5rem;
    }

    .contact-hero h1 {
        font-size: 2.35rem;
    }

    .contact-direct,
    .contact-form-card {
        border-radius: 1rem;
    }

    .contact-form__actions .button {
        width: 100%;
    }
}
