/* =========================
   CONTACT
   ========================= */
.page-hero {
    padding-top: var(--space-4);
}

.page-hero__inner {
    text-align   : center;
    margin-inline: auto;
    max-width    : 52rem;
}


.contact-grid {
    display              : grid;
    grid-template-columns: 1fr 1.2fr;
    gap                  : var(--space-4);
    align-items          : start;
}

.contact-card h2 {
    margin-bottom: var(--space-2);
}

.contact-info {
    font-size: 16px;
    color    : var(--navy);
}

.contact-info p {
    margin: 0 0 var(--space-2);
}

.contact-info a {
    text-decoration      : underline;
    text-underline-offset: 3px;
    color                : var(--navy);
}

.contact-card--form {
    background   : var(--white);
    border       : 1px solid rgba(3, 29, 59, .12);
    border-radius: 26px;
    padding      : var(--space-4);
    box-shadow   : 0 8px 20px rgba(3, 29, 59, .06);
}

.contact-form {
    display: grid;
    gap    : var(--space-2);
}

.form-row {
    display              : grid;
    grid-template-columns: 1fr 1fr;
    gap                  : var(--space-2);
}

.field label {
    display      : block;
    font-size    : 13px;
    font-weight  : 700;
    color        : var(--navy);
    margin-bottom: 8px;
}

.field input,
.field textarea {
    width        : 100%;
    border       : 1px solid rgba(3, 29, 59, .18);
    border-radius: 14px;
    padding      : 12px 14px;
    font         : inherit;
    background   : var(--white);
    color        : var(--navy);
}

.field textarea {
    resize    : vertical;
    min-height: 160px;
}

.contact-form .btn {
    justify-self  : center;
    margin-top    : var(--space-2);
    padding-inline: 22px;
}

@media (max-width: 1024px) {
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact-card h2,
    .contact-info {
        text-align: center;
    }

    .contact-card--form {
        max-width    : 640px;
        margin-inline: auto;
        text-align   : left;
    }
}

@media (max-width: 520px) {
    .form-row {
        grid-template-columns: 1fr;
    }
}

.form-required {
    color: var(--muted);
}

#error {
    color: red;
    font-style: italic;
}