/* ==========================================================
   Page Contact EC14 — Formidable Forms
========================================================== */

body.page-contact {
    --ec14-border: #dedede;
}

body.page-contact .content-area {
    padding-top: 44px;
    padding-bottom: 72px;
    background: var(--ec14-surface);
}

body.page-contact .entry-content {
    margin-top: 0;
}

.ec14-contact-intro {
    width: min(100% - 32px, 940px);
    margin: 0 auto 28px;
    text-align: center;
}

.ec14-contact-intro h1 {
    margin: 0;
    color: var(--ec14-text);
    font-size: clamp(34px, 4vw, 48px);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.03em;
}

.ec14-contact-intro h1::after {
    display: block;
    width: 54px;
    height: 2px;
    margin: 18px auto 0;
    background: var(--ec14-gold);
    content: "";
}

.ec14-contact-intro p {
    max-width: 680px;
    margin: 20px auto 0;
    color: var(--ec14-muted);
    font-size: 16px;
    line-height: 1.65;
}

body.page-contact .frm_forms {
    width: min(100% - 32px, 940px);
    margin: 0 auto;
    padding: clamp(28px, 4vw, 46px);
    background: #fff;
    border: 1px solid #e7e7e7;
    border-radius: 6px;
    box-shadow: 0 10px 30px rgba(20, 20, 20, .045);
}

body.page-contact .frm_forms .frm_form_field {
    margin-bottom: 21px;
}

body.page-contact .frm_forms .frm_primary_label,
body.page-contact .frm_forms label {
    color: #343a43;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.4;
}

body.page-contact .frm_forms .frm_required {
    color: var(--ec14-red);
}

body.page-contact .frm_forms .frm_description,
body.page-contact .frm_forms .frm_opt_container + .frm_description {
    margin-top: 7px;
    color: var(--ec14-muted);
    font-size: 12px;
}

body.page-contact .frm_forms input[type="text"],
body.page-contact .frm_forms input[type="email"],
body.page-contact .frm_forms input[type="tel"],
body.page-contact .frm_forms input[type="url"],
body.page-contact .frm_forms input[type="number"],
body.page-contact .frm_forms select,
body.page-contact .frm_forms textarea {
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    background: #fafafa;
    border: 1px solid #d8dadd;
    border-radius: 3px;
    color: var(--ec14-text);
    font-size: 15px;
    line-height: 1.45;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}

body.page-contact .frm_forms textarea {
    min-height: 150px;
    resize: vertical;
}

body.page-contact .frm_forms input:focus,
body.page-contact .frm_forms select:focus,
body.page-contact .frm_forms textarea:focus {
    outline: none;
    background: #fff;
    border-color: var(--ec14-gold);
    box-shadow: 0 0 0 3px rgba(198, 161, 91, .17);
}

body.page-contact .frm_forms .frm_combo_inputs_container {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

body.page-contact .frm_forms .frm_combo_inputs_container > * {
    min-width: 0;
}

body.page-contact .frm_forms .frm_submit {
    margin-top: 26px;
}

body.page-contact .frm_forms .frm_button_submit,
body.page-contact .frm_forms button[type="submit"] {
    min-width: 190px;
    min-height: 46px;
    margin: 0;
    padding: 11px 26px;
    background: var(--ec14-red) !important;
    border: 1px solid var(--ec14-red) !important;
    border-radius: 3px !important;
    color: #fff !important;
    font-size: 14px;
    font-weight: 650;
    line-height: 1.3;
    text-transform: none;
    box-shadow: none !important;
    transition: background-color .18s ease, border-color .18s ease;
}

body.page-contact .frm_forms .frm_button_submit:hover,
body.page-contact .frm_forms button[type="submit"]:hover {
    background: var(--ec14-red-dark) !important;
    border-color: var(--ec14-red-dark) !important;
}

body.page-contact .frm_forms .frm_error {
    margin-top: 6px;
    color: var(--ec14-red);
    font-size: 12px;
    font-weight: 600;
}

body.page-contact .frm_forms .frm_blank_field input,
body.page-contact .frm_forms .frm_blank_field textarea,
body.page-contact .frm_forms .frm_blank_field select {
    border-color: var(--ec14-red);
}

body.page-contact .frm_forms .frm_error_style,
body.page-contact .frm_forms .frm_message {
    margin: 0 0 24px;
    padding: 14px 16px;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.5;
}

body.page-contact .frm_forms .frm_error_style {
    background: #fff5f6;
    border: 1px solid #e2b9bf;
    color: var(--ec14-red);
}

body.page-contact .frm_forms .frm_message {
    background: #f2f7f3;
    border: 1px solid #bfd1c4;
    color: #356548;
}

@media (max-width: 640px) {
    body.page-contact .content-area {
        padding-top: 24px;
        padding-bottom: 46px;
    }

    .ec14-contact-intro {
        width: calc(100% - 20px);
        margin-bottom: 20px;
    }

    .ec14-contact-intro h1 {
        font-size: 32px;
    }

    .ec14-contact-intro p {
        margin-top: 16px;
        font-size: 14px;
    }

    body.page-contact .frm_forms {
        width: calc(100% - 20px);
        padding: 22px 16px;
    }

    body.page-contact .frm_forms .frm_combo_inputs_container {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    body.page-contact .frm_forms .frm_form_field {
        margin-bottom: 18px;
    }

    body.page-contact .frm_forms textarea {
        min-height: 132px;
    }

    body.page-contact .frm_forms .frm_button_submit,
    body.page-contact .frm_forms button[type="submit"] {
        width: 100%;
    }

    body.page-contact .frm_forms .g-recaptcha {
        max-width: 100%;
        overflow: hidden;
    }
}

@media (prefers-reduced-motion: reduce) {
    body.page-contact .frm_forms input,
    body.page-contact .frm_forms select,
    body.page-contact .frm_forms textarea,
    body.page-contact .frm_forms button {
        transition: none;
    }
}
