.contactFormV2 {
    width: 100%;
    background-color: var(--cf2-section-bg, #d9dae3);
}

.contactFormV2--top-none {
    margin-top: 0;
}

.contactFormV2--top-small {
    margin-top: 15px;
}

.contactFormV2--top-medium {
    margin-top: 30px;
}

.contactFormV2--top-large {
    margin-top: 45px;
}

.contactFormV2--top-xlarge {
    margin-top: 75px;
}

.contactFormV2--bottom-none {
    margin-bottom: 0;
}

.contactFormV2--bottom-small {
    margin-bottom: 15px;
}

.contactFormV2--bottom-medium {
    margin-bottom: 30px;
}

.contactFormV2--bottom-large {
    margin-bottom: 45px;
}

.contactFormV2--bottom-xlarge {
    margin-bottom: 75px;
}

.contactFormV2__container {
    padding-top: 56px;
    padding-bottom: 62px;
}

.contactFormV2__inner {
    min-width: 0;
}

.contactFormV2--width-narrow .contactFormV2__inner {
    max-width: 760px;
}

.contactFormV2--width-default .contactFormV2__inner {
    max-width: 1000px;
}

.contactFormV2--width-wide .contactFormV2__inner {
    max-width: 1300px;
}

.contactFormV2--width-full .contactFormV2__inner {
    max-width: none;
}

.contactFormV2__heading {
    margin: 0 0 22px;
    line-height: 1.2;
    color: var(--cf2-heading-color, #000000);
    font-family: "Pastiche Grotesque", "Open Sans", sans-serif;
}

.contactFormV2__intro {
    margin: 0 0 38px;
    line-height: 1.45;
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
}

.contactFormV2__intro p {
    margin: 0 0 16px;
}

.contactFormV2__intro p:last-child {
    margin-bottom: 0;
}

.contactFormV2__intro a {
    color: inherit;
    text-decoration: underline;
}

.contactFormV2__after {
    margin: 34px 0 0;
    line-height: 1.45;
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
}

.contactFormV2__after p {
    margin: 0 0 14px;
}

.contactFormV2__after p:last-child {
    margin-bottom: 0;
}

.contactFormV2__after a {
    color: inherit;
    text-decoration: underline;
}

.contactFormV2__notice {
    margin: 0;
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
}

/* ---------------------------------------------------------------------------
   Gravity Forms
   Scoped as `body .contactFormV2` so it matches the specificity of the shared
   .gravityForm rules without ever colliding with them (this block does not use
   that class). !important mirrors where Gravity Forms itself forces values.
   --------------------------------------------------------------------------- */

body .contactFormV2 .gform_wrapper {
    margin: 0;
}

body .contactFormV2 .gform_wrapper .gform_fields {
    grid-row-gap: 22px;
    grid-column-gap: 22px;
}

body .contactFormV2 .gform_wrapper .gfield {
    margin: 0;
}

/* Gravity Forms normally hides these itself, but this site disables GF's own
   stylesheet, so they would otherwise render as a visible empty field. */
body .contactFormV2 .gform_wrapper .gform_validation_container,
body .contactFormV2 .gform_wrapper .gfield--type-honeypot {
    display: none !important;
}

/* Field layout ------------------------------------------------------------- */

.contactFormV2--layout-two-column .gform_wrapper .gform_fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.contactFormV2--layout-two-column .gform_wrapper .gfield {
    grid-column: span 1;
    max-width: none;
}

/* Many existing forms use empty HTML fields as manual spacers for a one-column
   layout. In two-column mode the grid gap does that job, so they are dropped —
   otherwise each spacer eats a cell and every real field lands on its own row. */
.contactFormV2--layout-two-column .gform_wrapper .gfield--type-html {
    display: none;
}

/* Fields that should always run the full width. Consent and captcha stay at
   half width so they sit side by side, as per the design. */
.contactFormV2--layout-two-column .gform_wrapper .gfield--type-textarea,
.contactFormV2--layout-two-column .gform_wrapper .gfield--type-section,
.contactFormV2--layout-two-column .gform_wrapper .gfield--type-page {
    grid-column: 1 / -1;
}

.contactFormV2--layout-one-column .gform_wrapper .gform_fields {
    display: grid;
    grid-template-columns: 1fr;
}

.contactFormV2--layout-one-column .gform_wrapper .gfield {
    grid-column: 1 / -1;
}

/* Labels ------------------------------------------------------------------- */

body .contactFormV2 .gform_wrapper .gfield_label {
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
    font-weight: 600;
    margin: 0 0 8px;
}

body .contactFormV2 .gform_wrapper .gform_required_legend {
    display: none;
}

/* Inputs ------------------------------------------------------------------- */

body .contactFormV2 .gform_wrapper input[type="text"],
body .contactFormV2 .gform_wrapper input[type="email"],
body .contactFormV2 .gform_wrapper input[type="tel"],
body .contactFormV2 .gform_wrapper input[type="url"],
body .contactFormV2 .gform_wrapper input[type="number"],
body .contactFormV2 .gform_wrapper select,
body .contactFormV2 .gform_wrapper textarea {
    width: 100% !important;
    margin: 0;
    box-shadow: none;
    color: var(--cf2-field-text, #000000);
    background-color: var(--cf2-field-bg, transparent);
    border: 1px solid var(--cf2-field-border, #9a9a9a);
    font-family: "Open Sans", sans-serif;
    line-height: 1.4;
    transition: border-color 0.2s ease;
}

body .contactFormV2 .gform_wrapper input[type="text"],
body .contactFormV2 .gform_wrapper input[type="email"],
body .contactFormV2 .gform_wrapper input[type="tel"],
body .contactFormV2 .gform_wrapper input[type="url"],
body .contactFormV2 .gform_wrapper input[type="number"],
body .contactFormV2 .gform_wrapper select {
    height: auto !important;
    min-height: 48px;
    padding: 10px 14px !important;
}

body .contactFormV2 .gform_wrapper textarea {
    min-height: 130px;
    padding: 12px 14px !important;
}

body .contactFormV2 .gform_wrapper input::placeholder,
body .contactFormV2 .gform_wrapper textarea::placeholder {
    color: var(--cf2-placeholder, #9a9a9a);
    opacity: 1;
}

body .contactFormV2 .gform_wrapper input:focus,
body .contactFormV2 .gform_wrapper select:focus,
body .contactFormV2 .gform_wrapper textarea:focus {
    outline: none;
    border-color: var(--cf2-field-text, #000000);
}

/* Field styles ------------------------------------------------------------- */

.contactFormV2--fields-underlined .gform_wrapper input[type="text"],
.contactFormV2--fields-underlined .gform_wrapper input[type="email"],
.contactFormV2--fields-underlined .gform_wrapper input[type="tel"],
.contactFormV2--fields-underlined .gform_wrapper select,
.contactFormV2--fields-underlined .gform_wrapper textarea {
    border-width: 0 0 1px 0;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.contactFormV2--radius-none .gform_wrapper input,
.contactFormV2--radius-none .gform_wrapper select,
.contactFormV2--radius-none .gform_wrapper textarea {
    border-radius: 0;
}

.contactFormV2--radius-small .gform_wrapper input,
.contactFormV2--radius-small .gform_wrapper select,
.contactFormV2--radius-small .gform_wrapper textarea {
    border-radius: 4px;
}

.contactFormV2--radius-medium .gform_wrapper input,
.contactFormV2--radius-medium .gform_wrapper select,
.contactFormV2--radius-medium .gform_wrapper textarea {
    border-radius: 10px;
}

.contactFormV2--radius-pill .gform_wrapper input,
.contactFormV2--radius-pill .gform_wrapper select {
    border-radius: 999px;
}

.contactFormV2--radius-pill .gform_wrapper textarea {
    border-radius: 18px;
}

/* Consent / checkbox ------------------------------------------------------- */

body .contactFormV2 .gform_wrapper .gfield--type-consent .gfield_label,
body .contactFormV2 .gform_wrapper .gfield--type-consent legend {
    display: none;
}

body .contactFormV2 .gform_wrapper .ginput_container_consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
}

body .contactFormV2 .gform_wrapper .ginput_container_consent input[type="checkbox"] {
    flex: 0 0 auto;
    width: 22px !important;
    height: 22px;
    min-height: 0;
    margin: 2px 0 0;
    padding: 0 !important;
    border: 1px solid var(--cf2-field-border, #9a9a9a);
    background-color: var(--cf2-field-bg, transparent);
    border-radius: 0;
    appearance: none;
    -webkit-appearance: none;
    cursor: pointer;
}

body .contactFormV2 .gform_wrapper .ginput_container_consent input[type="checkbox"]:checked {
    background-color: var(--cf2-field-text, #000000);
    border-color: var(--cf2-field-text, #000000);
}

body .contactFormV2 .gform_wrapper .ginput_container_consent label,
body .contactFormV2 .gform_wrapper .gfield_consent_description {
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
    line-height: 1.35;
    margin: 0;
    padding: 0;
    border: 0;
    max-height: none;
    overflow: visible;
}

/* Submit ------------------------------------------------------------------- */

body .contactFormV2 .gform_wrapper .gform_footer {
    margin: 30px 0 0;
    padding: 0;
    display: flex;
}

.contactFormV2--btn-align-left .gform_wrapper .gform_footer {
    justify-content: flex-start;
}

.contactFormV2--btn-align-center .gform_wrapper .gform_footer {
    justify-content: center;
}

.contactFormV2--btn-align-right .gform_wrapper .gform_footer {
    justify-content: flex-end;
}

body .contactFormV2 .gform_wrapper .gform_footer .gform_button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: auto !important;
    min-height: 54px;
    min-width: 260px;
    margin: 0;
    padding: 10px 32px !important;
    border-radius: 999px;
    border: 2px solid var(--cf2-btn-border, #000000);
    background-color: var(--cf2-btn-bg, #ffffff);
    color: var(--cf2-btn-text, #000000);
    font-family: "Pastiche Grotesque", "Open Sans", sans-serif;
    line-height: 1.2;
    cursor: pointer;
    transition: background-color 0.3s ease, color 0.3s ease;
}

body .contactFormV2 .gform_wrapper .gform_footer .gform_button:hover {
    background-color: var(--cf2-btn-text, #000000);
    color: var(--cf2-btn-bg, #ffffff);
}

.contactFormV2--btn-filled .gform_wrapper .gform_footer .gform_button {
    border-color: var(--cf2-btn-bg, #ffffff);
}

/* Validation --------------------------------------------------------------- */

body .contactFormV2 .gform_wrapper .validation_message {
    color: #cb5748;
    font-family: "Open Sans", sans-serif;
    font-size: 15px;
    margin-top: 6px;
    padding: 0;
    border: 0;
    background: none;
}

body .contactFormV2 .gform_wrapper .gfield_error input,
body .contactFormV2 .gform_wrapper .gfield_error textarea,
body .contactFormV2 .gform_wrapper .gfield_error select {
    border-color: #cb5748;
}

body .contactFormV2 .gform_wrapper .gform_submission_error {
    color: #cb5748;
    font-family: "Open Sans", sans-serif;
    margin-bottom: 22px;
}

body .contactFormV2 .gform_confirmation_message {
    color: var(--cf2-text-color, #000000);
    font-family: "Open Sans", sans-serif;
    line-height: 1.45;
}

/* Typography scales -------------------------------------------------------- */

.contactFormV2--heading-size-small .contactFormV2__heading {
    font-size: 26px;
}

.contactFormV2--heading-size-default .contactFormV2__heading {
    font-size: 34px;
}

.contactFormV2--heading-size-large .contactFormV2__heading {
    font-size: 42px;
}

.contactFormV2--heading-size-xlarge .contactFormV2__heading {
    font-size: 52px;
}

.contactFormV2--intro-size-small .contactFormV2__intro,
.contactFormV2--intro-size-small .contactFormV2__after {
    font-size: 16px;
}

.contactFormV2--intro-size-default .contactFormV2__intro,
.contactFormV2--intro-size-default .contactFormV2__after {
    font-size: 20px;
}

.contactFormV2--intro-size-large .contactFormV2__intro,
.contactFormV2--intro-size-large .contactFormV2__after {
    font-size: 23px;
}

.contactFormV2--intro-size-xlarge .contactFormV2__intro,
.contactFormV2--intro-size-xlarge .contactFormV2__after {
    font-size: 26px;
}

.contactFormV2--field-size-small .gform_wrapper input,
.contactFormV2--field-size-small .gform_wrapper select,
.contactFormV2--field-size-small .gform_wrapper textarea,
.contactFormV2--field-size-small .gform_wrapper .gfield_label {
    font-size: 15px !important;
}

.contactFormV2--field-size-default .gform_wrapper input,
.contactFormV2--field-size-default .gform_wrapper select,
.contactFormV2--field-size-default .gform_wrapper textarea,
.contactFormV2--field-size-default .gform_wrapper .gfield_label {
    font-size: 17px !important;
}

.contactFormV2--field-size-large .gform_wrapper input,
.contactFormV2--field-size-large .gform_wrapper select,
.contactFormV2--field-size-large .gform_wrapper textarea,
.contactFormV2--field-size-large .gform_wrapper .gfield_label {
    font-size: 20px !important;
}

.contactFormV2--field-size-xlarge .gform_wrapper input,
.contactFormV2--field-size-xlarge .gform_wrapper select,
.contactFormV2--field-size-xlarge .gform_wrapper textarea,
.contactFormV2--field-size-xlarge .gform_wrapper .gfield_label {
    font-size: 22px !important;
}

.contactFormV2--field-weight-normal .gform_wrapper input,
.contactFormV2--field-weight-normal .gform_wrapper select,
.contactFormV2--field-weight-normal .gform_wrapper textarea {
    font-weight: 400;
}

.contactFormV2--field-weight-medium .gform_wrapper input,
.contactFormV2--field-weight-medium .gform_wrapper select,
.contactFormV2--field-weight-medium .gform_wrapper textarea {
    font-weight: 500;
}

.contactFormV2--field-weight-semibold .gform_wrapper input,
.contactFormV2--field-weight-semibold .gform_wrapper select,
.contactFormV2--field-weight-semibold .gform_wrapper textarea {
    font-weight: 600;
}

.contactFormV2--field-weight-bold .gform_wrapper input,
.contactFormV2--field-weight-bold .gform_wrapper select,
.contactFormV2--field-weight-bold .gform_wrapper textarea {
    font-weight: 700;
}

.contactFormV2--consent-size-small .gform_wrapper .ginput_container_consent label,
.contactFormV2--consent-size-small .gform_wrapper .gfield_consent_description {
    font-size: 13px !important;
}

.contactFormV2--consent-size-default .gform_wrapper .ginput_container_consent label,
.contactFormV2--consent-size-default .gform_wrapper .gfield_consent_description {
    font-size: 15px !important;
}

.contactFormV2--consent-size-large .gform_wrapper .ginput_container_consent label,
.contactFormV2--consent-size-large .gform_wrapper .gfield_consent_description {
    font-size: 17px !important;
}

.contactFormV2--consent-size-xlarge .gform_wrapper .ginput_container_consent label,
.contactFormV2--consent-size-xlarge .gform_wrapper .gfield_consent_description {
    font-size: 19px !important;
}

.contactFormV2--consent-weight-normal .gform_wrapper .ginput_container_consent label {
    font-weight: 400;
}

.contactFormV2--consent-weight-medium .gform_wrapper .ginput_container_consent label {
    font-weight: 500;
}

.contactFormV2--consent-weight-semibold .gform_wrapper .ginput_container_consent label {
    font-weight: 600;
}

.contactFormV2--consent-weight-bold .gform_wrapper .ginput_container_consent label {
    font-weight: 700;
}

.contactFormV2--btn-font-small .gform_wrapper .gform_footer .gform_button {
    font-size: 16px;
}

.contactFormV2--btn-font-default .gform_wrapper .gform_footer .gform_button {
    font-size: 19px;
}

.contactFormV2--btn-font-large .gform_wrapper .gform_footer .gform_button {
    font-size: 22px;
}

.contactFormV2--btn-font-xlarge .gform_wrapper .gform_footer .gform_button {
    font-size: 25px;
}

.contactFormV2--btn-weight-normal .gform_wrapper .gform_footer .gform_button {
    font-weight: 400;
}

.contactFormV2--btn-weight-medium .gform_wrapper .gform_footer .gform_button {
    font-weight: 500;
}

.contactFormV2--btn-weight-semibold .gform_wrapper .gform_footer .gform_button {
    font-weight: 600;
}

.contactFormV2--btn-weight-bold .gform_wrapper .gform_footer .gform_button {
    font-weight: 700;
}

.contactFormV2--heading-weight-normal .contactFormV2__heading {
    font-weight: 400;
}

.contactFormV2--heading-weight-medium .contactFormV2__heading {
    font-weight: 500;
}

.contactFormV2--heading-weight-semibold .contactFormV2__heading {
    font-weight: 600;
}

.contactFormV2--heading-weight-bold .contactFormV2__heading {
    font-weight: 700;
}

.contactFormV2--intro-weight-normal .contactFormV2__intro {
    font-weight: 400;
}

.contactFormV2--intro-weight-medium .contactFormV2__intro {
    font-weight: 500;
}

.contactFormV2--intro-weight-semibold .contactFormV2__intro {
    font-weight: 600;
}

.contactFormV2--intro-weight-bold .contactFormV2__intro {
    font-weight: 700;
}

@media (max-width: 1299px) {
    .contactFormV2__container {
        padding-top: 46px;
        padding-bottom: 52px;
    }

    .contactFormV2__intro {
        margin-bottom: 30px;
    }

    .contactFormV2--heading-size-small .contactFormV2__heading {
        font-size: 24px;
    }

    .contactFormV2--heading-size-default .contactFormV2__heading {
        font-size: 30px;
    }

    .contactFormV2--heading-size-large .contactFormV2__heading {
        font-size: 36px;
    }

    .contactFormV2--heading-size-xlarge .contactFormV2__heading {
        font-size: 44px;
    }

    .contactFormV2--intro-size-small .contactFormV2__intro,
    .contactFormV2--intro-size-small .contactFormV2__after {
        font-size: 15px;
    }

    .contactFormV2--intro-size-default .contactFormV2__intro,
    .contactFormV2--intro-size-default .contactFormV2__after {
        font-size: 18px;
    }

    .contactFormV2--intro-size-large .contactFormV2__intro,
    .contactFormV2--intro-size-large .contactFormV2__after {
        font-size: 20px;
    }

    .contactFormV2--intro-size-xlarge .contactFormV2__intro,
    .contactFormV2--intro-size-xlarge .contactFormV2__after {
        font-size: 23px;
    }
}

@media (max-width: 767px) {
    .contactFormV2--top-small {
        margin-top: 10px;
    }

    .contactFormV2--top-medium {
        margin-top: 20px;
    }

    .contactFormV2--top-large {
        margin-top: 25px;
    }

    .contactFormV2--top-xlarge {
        margin-top: 40px;
    }

    .contactFormV2--bottom-small {
        margin-bottom: 10px;
    }

    .contactFormV2--bottom-medium {
        margin-bottom: 20px;
    }

    .contactFormV2--bottom-large {
        margin-bottom: 25px;
    }

    .contactFormV2--bottom-xlarge {
        margin-bottom: 40px;
    }

    .contactFormV2__container {
        padding-top: 32px;
        padding-bottom: 36px;
    }

    .contactFormV2__heading {
        margin-bottom: 16px;
    }

    .contactFormV2__intro {
        margin-bottom: 24px;
    }

    /* Always stack on mobile, whatever the desktop layout setting. */
    .contactFormV2--layout-two-column .gform_wrapper .gform_fields {
        grid-template-columns: 1fr;
    }

    .contactFormV2--layout-two-column .gform_wrapper .gfield {
        grid-column: 1 / -1;
    }

    body .contactFormV2 .gform_wrapper .gform_footer .gform_button {
        width: 100% !important;
        min-width: 0;
        min-height: 48px;
    }

    .contactFormV2--heading-size-small .contactFormV2__heading {
        font-size: 21px;
    }

    .contactFormV2--heading-size-default .contactFormV2__heading {
        font-size: 25px;
    }

    .contactFormV2--heading-size-large .contactFormV2__heading {
        font-size: 29px;
    }

    .contactFormV2--heading-size-xlarge .contactFormV2__heading {
        font-size: 33px;
    }
}
