/**
 * Gravity Forms - Site-wide Theme Styles
 *
 * Comprehensive, site-wide styling for every Gravity Forms field type so that
 * forms match the Cosmick Media design language everywhere they appear:
 *
 *   - Form 2 : global "Get Started" modal (header.php, .get-started-form-wrapper)
 *   - Form 1 : page-contact.php, 404.php, single-service.php, single-area.php,
 *              page-business-card.php, single-team.php
 *
 * Supports BOTH Gravity Forms markup generations:
 *   - Modern (GF 2.5+ / orbital)  .gform-theme, .gform_fields grid,
 *                                 .gfield--type-*, .gform-field-label
 *   - Legacy                      .gform_legacy_markup_wrapper, .gform_body,
 *                                 .gfield_label, ul/li fields
 *
 * Everything is scoped under .gform_wrapper so it beats Gravity Forms' own
 * stylesheets on specificity rather than on !important. The handful of
 * !important declarations in this file are individually justified in a comment.
 *
 * NOTE: assets/css/modal-styles.css remains the modal's more specific layer and
 * owns the modal submit button's full width - this file deliberately does NOT
 * declare a width on the submit button so that layer still wins.
 *
 * NOTE: cosmick-modern.css forces *{font-family:Poppins!important} so no
 * font-family is declared here, and nothing relies on italics. Gravity Forms'
 * own icon FONT is a casualty of that rule, so GF glyphs are replaced with
 * inline SVG below.
 *
 * @package Cosmick_Media_Project_Theme
 */

/* ========================================
   Design Tokens
   On :root (not .gform_wrapper) because the jQuery UI datepicker is appended
   to <body>, outside the form wrapper, and still needs these values.
========================================== */
:root {
    --cmgf-primary: #ff675b;
    --cmgf-primary-dark: #f2675d;
    --cmgf-primary-deep: #d04d41;
    --cmgf-primary-light: #ff8a7a;
    --cmgf-secondary: #fdc785;
    --cmgf-charcoal: #3c3c3c;
    --cmgf-text: #333333;
    --cmgf-muted: #666666;
    --cmgf-bg-light: #f8f9fa;
    --cmgf-white: #ffffff;
    --cmgf-border: #e5e7eb;
    --cmgf-border-strong: #d1d5db;
    --cmgf-error: #ef4444;
    --cmgf-error-text: #b42318;
    --cmgf-error-bg: #fef2f2;
    --cmgf-success: #2ecc71;
    --cmgf-success-text: #15803d;
    --cmgf-success-bg: #f0fdf4;

    --cmgf-gradient: linear-gradient(135deg, #ff675b 0%, #ff8a7a 100%);
    --cmgf-radius: 10px;
    --cmgf-radius-sm: 6px;
    --cmgf-radius-lg: 14px;
    --cmgf-focus-ring: 0 0 0 3px rgba(255, 103, 91, 0.1);
    --cmgf-focus-ring-strong: 0 0 0 3px rgba(255, 103, 91, 0.15);
    --cmgf-tint: rgba(255, 103, 91, 0.05);
    --cmgf-tint-2: rgba(255, 103, 91, 0.08);
    --cmgf-transition: all 0.3s ease;
    --cmgf-control-size: 22px;
    --cmgf-field-gap: 25px;

    /* Inline SVG assets (no icon fonts - see file header) */
    --cmgf-icon-chevron: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%233c3c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 6l5 5 5-5'/%3E%3C/svg%3E");
    --cmgf-icon-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2.4 7.3l3.1 3.1 6.1-6.6'/%3E%3C/svg%3E");
    --cmgf-icon-dot: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14'%3E%3Ccircle cx='7' cy='7' r='3.6' fill='%23ffffff'/%3E%3C/svg%3E");
    --cmgf-icon-dash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23ffffff' stroke-width='2.4' stroke-linecap='round'%3E%3Cpath d='M3 7h8'/%3E%3C/svg%3E");
    --cmgf-icon-calendar: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.5' y='4' width='13' height='11.5' rx='2'/%3E%3Cpath d='M2.5 7.5h13M6 2.5v3M12 2.5v3'/%3E%3C/svg%3E");
    --cmgf-icon-clock: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 18 18' fill='none' stroke='%23666666' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='9' r='6.5'/%3E%3Cpath d='M9 5.5V9l2.5 1.6'/%3E%3C/svg%3E");
    --cmgf-icon-upload: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none' stroke='%23ff675b' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5V4.5'/%3E%3Cpath d='M8 8.5l4-4 4 4'/%3E%3Cpath d='M4 15.5v2.5a1.5 1.5 0 001.5 1.5h13a1.5 1.5 0 001.5-1.5v-2.5'/%3E%3C/svg%3E");
    --cmgf-icon-alert: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' viewBox='0 0 24 24' fill='none' stroke='%23ef4444' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.25'/%3E%3Cpath d='M12 7.5v6M12 16.4v.1'/%3E%3C/svg%3E");
    --cmgf-icon-alert-sm: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15' viewBox='0 0 24 24' fill='none' stroke='%23b42318' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.25'/%3E%3Cpath d='M12 7.5v6M12 16.4v.1'/%3E%3C/svg%3E");
    --cmgf-icon-success: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 24 24' fill='none' stroke='%232ecc71' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.25'/%3E%3Cpath d='M7.8 12.3l2.8 2.8 5.6-6'/%3E%3C/svg%3E");
    --cmgf-icon-close: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23b42318' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M3.5 3.5l7 7M10.5 3.5l-7 7'/%3E%3C/svg%3E");
    --cmgf-icon-trash: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 18 18' fill='none' stroke='%23666666' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 5.5h12M7 5.5V3.5h4v2M4.5 5.5l.8 9h7.4l.8-9'/%3E%3C/svg%3E");
    --cmgf-icon-plus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M7 3v8M3 7h8'/%3E%3C/svg%3E");
    --cmgf-icon-minus: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none' stroke='%23ffffff' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M3 7h8'/%3E%3C/svg%3E");
    --cmgf-icon-prev: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%233c3c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 3L5 8l5 5'/%3E%3C/svg%3E");
    --cmgf-icon-next: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%233c3c3c' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 3l5 5-5 5'/%3E%3C/svg%3E");
}

/* ========================================
   Gravity Forms Framework Token Mapping
   GF 2.7+ "orbital" builds many of its own controls from CSS custom
   properties. Re-pointing them at the Cosmick palette means even field types
   not explicitly restyled below inherit the house look.
========================================== */
.gform_wrapper,
.gform_wrapper.gform-theme,
.gform_wrapper.gform-theme--framework,
.gform_wrapper.gravity-theme {
    --gf-color-primary: #ff675b;
    --gf-color-primary-rgb: 255, 103, 91;
    --gf-color-primary-contrast: #ffffff;
    --gf-color-primary-darker: #f2675d;
    --gf-color-primary-lighter: #ff8a7a;
    --gf-color-secondary: #ffffff;
    --gf-color-secondary-contrast: #3c3c3c;
    --gf-color-out-ctrl-light-darker: #e5e7eb;
    --gf-color-out-ctrl-dark: #666666;
    --gf-color-out-ctrl-dark-darker: #3c3c3c;
    --gf-color-in-ctrl: #ffffff;
    --gf-color-in-ctrl-contrast: #333333;
    --gf-color-in-ctrl-primary: #ff675b;
    --gf-color-danger: #ef4444;
    --gf-color-danger-contrast: #ffffff;
    --gf-color-success: #2ecc71;
    --gf-radius: 10px;
    --gf-ctrl-radius: 10px;
    --gf-ctrl-border-color: #e5e7eb;
    --gf-ctrl-border-color-focus: #ff675b;
    --gf-ctrl-border-color-hover: #ff675b;
    --gf-ctrl-border-width: 2px;
    --gf-ctrl-bg-color: #ffffff;
    --gf-ctrl-color: #333333;
    --gf-ctrl-size-size-m: 22px;
    --gf-ctrl-checkbox-check-color: #ffffff;
    --gf-ctrl-radio-check-color: #ffffff;
    --gf-ctrl-label-color-primary: #3c3c3c;
    --gf-ctrl-label-color-secondary: #666666;
    --gf-ctrl-label-color-req: #ff675b;
    --gf-ctrl-desc-color: #666666;
    --gf-ctrl-btn-bg-color-primary: #ff675b;
    --gf-ctrl-btn-color-primary: #ffffff;
    --gf-ctrl-btn-border-color-primary: #ff675b;
    --gf-local-color: #333333;
    --gf-form-gap-x: 24px;
    --gf-form-gap-y: 0;
}

/* ========================================
   Wrapper & Form Reset
========================================== */
.gform_wrapper {
    max-width: 100%;
    margin: 0;
    color: var(--cmgf-text);
    font-size: 1rem;
    line-height: 1.6;
    text-align: left;
}

.gform_wrapper form,
.gform_wrapper .gform-theme--foundation {
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.gform_wrapper .gform_body,
.gform_wrapper .gform-body {
    margin: 0;
    padding: 0;
    background: transparent;
    width: 100%;
}

/* Form heading (shortcodes here pass title="false", but keep it sane anyway) */
.gform_wrapper .gform_heading {
    margin: 0 0 25px;
    padding: 0;
}

.gform_wrapper .gform_title {
    font-size: 1.75rem;
    line-height: 1.25;
    font-weight: 700;
    color: var(--cmgf-charcoal);
    /* style.css makes all headings uppercase / 68px / opacity .8 - undo it */
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0 0 10px;
    padding: 0;
}

.gform_wrapper .gform_description {
    display: block;
    font-size: 1rem;
    line-height: 1.6;
    color: var(--cmgf-muted);
    /* style.css sets p { margin-bottom: 35px } */
    margin: 0;
    padding: 0;
}

.gform_wrapper .gform_required_legend {
    font-size: 0.85rem;
    color: var(--cmgf-muted);
    margin: 0 0 18px;
    padding: 0;
}

/* Every form control shares the same box model */
.gform_wrapper input,
.gform_wrapper select,
.gform_wrapper textarea,
.gform_wrapper button {
    box-sizing: border-box;
}

/* ========================================
   Field Layout - Modern Markup (CSS grid)
========================================== */
.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    column-gap: 24px;
    row-gap: 0;
    margin: 0;
    padding: 0;
    list-style: none;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield {
    grid-column: span 12;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-full {
    grid-column: span 12;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-eleven-twelfths {
    grid-column: span 11;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-five-sixths {
    grid-column: span 10;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-three-quarters {
    grid-column: span 9;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-two-thirds {
    grid-column: span 8;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-seven-twelfths {
    grid-column: span 7;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-half {
    grid-column: span 6;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-five-twelfths {
    grid-column: span 5;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-third {
    grid-column: span 4;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-quarter {
    grid-column: span 3;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-one-sixth {
    grid-column: span 2;
}

.gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-one-twelfth {
    grid-column: span 1;
}

/* ========================================
   Field Layout - Legacy Markup (stacked list)
========================================== */
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields {
    /* flex rather than block so the legacy "CSS ready classes" (gf_left_half
       etc.) can share a row without inline-block whitespace throwing the
       widths out */
    display: flex;
    flex-wrap: wrap;
    column-gap: 20px;
    margin: 0;
    padding: 0;
    list-style: none;
    width: 100%;
}

.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gfield {
    display: block;
    flex: 1 1 100%;
    min-width: 0;
    list-style: none;
    margin-left: 0;
    /* !important: Gravity Forms' legacy stylesheet ships
       `.gform_wrapper ul.gform_fields li.gfield{padding-right:16px!important}`,
       which cannot be beaten by specificity alone. */
    padding-right: 0 !important;
    padding-left: 0;
}

.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gfield::before,
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gfield::after {
    content: none;
}

/* Legacy "CSS ready class" halves / thirds */
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_left_half,
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_right_half {
    flex: 1 1 calc(50% - 10px);
    max-width: calc(50% - 10px);
}

.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_left_third,
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_middle_third,
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_right_third {
    flex: 1 1 calc(33.333% - 14px);
    max-width: calc(33.333% - 14px);
}

/* ========================================
   Field Shell
========================================== */
.gform_wrapper .gform_fields .gfield {
    margin: 0 0 var(--cmgf-field-gap);
    padding: 0;
    background: transparent;
    border: 0;
    min-width: 0;
    max-width: 100%;
}

/* fieldset-based fields (checkbox / radio / name / address / time groups) */
.gform_wrapper .gform_fields fieldset.gfield {
    border: 0;
    margin-bottom: var(--cmgf-field-gap);
    padding: 0;
    min-width: 0;
}

.gform_wrapper .gform_fields .gfield:last-child {
    margin-bottom: 0;
}

.gform_wrapper .gform_fields .gfield .ginput_container {
    margin: 0;
    position: relative;
    max-width: 100%;
}

/* ========================================
   Labels, Required Asterisk & Descriptions
========================================== */
.gform_wrapper .gform_fields .gfield .gfield_label,
.gform_wrapper .gform_fields .gfield .gform-field-label,
.gform_wrapper .gform_fields .gfield legend.gfield_label,
.gform_wrapper .gform_fields .gfield > label {
    display: block;
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    color: var(--cmgf-charcoal);
    margin: 0 0 8px;
    padding: 0;
    /* style.css uppercases every heading and legend-ish element */
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    float: none;
    width: auto;
}

/* Sub-labels (First / Last, Street / City, HH / MM) */
.gform_wrapper .gform_fields .gfield .gform-field-label--type-sub,
.gform_wrapper .gform_fields .gfield .ginput_complex label,
.gform_wrapper .gform_fields .gfield .ginput_container_time label,
.gform_wrapper .gform_fields .gfield .gfield_time_hour label,
.gform_wrapper .gform_fields .gfield .gfield_time_minute label {
    display: block;
    font-size: 0.8rem;
    font-weight: 500;
    line-height: 1.3;
    color: var(--cmgf-muted);
    text-transform: none;
    letter-spacing: normal;
    margin: 6px 0 0;
    padding: 0;
}

/* Inline labels belong to checkbox / radio / consent rows - handled there */
.gform_wrapper .gform_fields .gfield .gform-field-label--type-inline {
    display: inline-block;
    font-weight: 500;
    margin: 0;
}

.gform_wrapper .gform_fields .gfield.hidden_label .gfield_label,
.gform_wrapper .gform_fields .gfield .screen-reader-text,
.gform_wrapper .gform_fields .gfield .gform-field-label--visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* Required asterisk - both generations */
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_asterisk,
.gform_wrapper .gfield_required .gfield_required_asterisk,
.gform_wrapper .gfield_required_text {
    color: var(--cmgf-primary);
    font-weight: 700;
    font-size: 1em;
    margin-left: 3px;
    text-decoration: none;
    border: 0;
}

/* Field descriptions */
.gform_wrapper .gform_fields .gfield .gfield_description,
.gform_wrapper .gform_fields .gfield .gform-field-description,
.gform_wrapper .gform_fields .gfield .gfield_consent_description {
    display: block;
    font-size: 0.875rem;
    line-height: 1.55;
    color: var(--cmgf-muted);
    text-transform: none;
    opacity: 1;
    margin: 8px 0 0;
    padding: 0;
    max-width: 100%;
}

.gform_wrapper .gform_fields .gfield .gfield_description p {
    margin: 0 0 8px;
}

.gform_wrapper .gform_fields .gfield .gfield_description p:last-child {
    margin-bottom: 0;
}

/* Description shown above the input */
.gform_wrapper .gform_fields .gfield.field_description_above .gfield_description {
    margin: 0 0 8px;
}

.gform_wrapper .gform_fields .gfield .gfield_consent_description {
    border: 1px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-bg-light);
    padding: 14px 16px;
    max-height: 180px;
    overflow-y: auto;
    margin-top: 12px;
}

/* ========================================
   Text Inputs, Textareas & Password
========================================== */
.gform_wrapper .gform_fields .gfield input[type="text"],
.gform_wrapper .gform_fields .gfield input[type="email"],
.gform_wrapper .gform_fields .gfield input[type="tel"],
.gform_wrapper .gform_fields .gfield input[type="url"],
.gform_wrapper .gform_fields .gfield input[type="number"],
.gform_wrapper .gform_fields .gfield input[type="password"],
.gform_wrapper .gform_fields .gfield input[type="search"],
.gform_wrapper .gform_fields .gfield input[type="date"],
.gform_wrapper .gform_fields .gfield input[type="time"],
.gform_wrapper .gform_fields .gfield input[type="month"],
.gform_wrapper .gform_fields .gfield input[type="week"],
.gform_wrapper .gform_fields .gfield input[type="datetime-local"],
.gform_wrapper .gform_fields .gfield textarea,
.gform_wrapper .gform_fields .gfield select {
    width: 100%;
    max-width: 100%;
    min-height: 0;
    padding: 14px 18px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius);
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 400;
    color: var(--cmgf-text);
    background: var(--cmgf-white);
    background-clip: padding-box;
    box-shadow: none;
    transition: var(--cmgf-transition);
    text-transform: none;
}

.gform_wrapper .gform_fields .gfield input[type="text"]:hover,
.gform_wrapper .gform_fields .gfield input[type="email"]:hover,
.gform_wrapper .gform_fields .gfield input[type="tel"]:hover,
.gform_wrapper .gform_fields .gfield input[type="url"]:hover,
.gform_wrapper .gform_fields .gfield input[type="number"]:hover,
.gform_wrapper .gform_fields .gfield input[type="password"]:hover,
.gform_wrapper .gform_fields .gfield textarea:hover,
.gform_wrapper .gform_fields .gfield select:hover {
    border-color: var(--cmgf-border-strong);
}

.gform_wrapper .gform_fields .gfield input[type="text"]:focus,
.gform_wrapper .gform_fields .gfield input[type="email"]:focus,
.gform_wrapper .gform_fields .gfield input[type="tel"]:focus,
.gform_wrapper .gform_fields .gfield input[type="url"]:focus,
.gform_wrapper .gform_fields .gfield input[type="number"]:focus,
.gform_wrapper .gform_fields .gfield input[type="password"]:focus,
.gform_wrapper .gform_fields .gfield input[type="search"]:focus,
.gform_wrapper .gform_fields .gfield input[type="date"]:focus,
.gform_wrapper .gform_fields .gfield input[type="time"]:focus,
.gform_wrapper .gform_fields .gfield textarea:focus,
.gform_wrapper .gform_fields .gfield select:focus {
    border-color: var(--cmgf-primary);
    outline: none;
    background: var(--cmgf-white);
    box-shadow: var(--cmgf-focus-ring);
}

.gform_wrapper .gform_fields .gfield input::placeholder,
.gform_wrapper .gform_fields .gfield textarea::placeholder {
    color: #9ca3af;
    opacity: 1;
}

.gform_wrapper .gform_fields .gfield input:disabled,
.gform_wrapper .gform_fields .gfield textarea:disabled,
.gform_wrapper .gform_fields .gfield select:disabled {
    background: var(--cmgf-bg-light);
    color: #9ca3af;
    cursor: not-allowed;
    border-color: var(--cmgf-border);
}

.gform_wrapper .gform_fields .gfield input[readonly] {
    background: var(--cmgf-bg-light);
}

/* Textarea */
.gform_wrapper .gform_fields .gfield textarea,
.gform_wrapper .gform_fields .gfield textarea.small,
.gform_wrapper .gform_fields .gfield textarea.medium,
.gform_wrapper .gform_fields .gfield textarea.large {
    min-height: 120px;
    height: auto;
    resize: vertical;
    display: block;
    line-height: 1.6;
}

.gform_wrapper .gform_fields .gfield textarea.small {
    min-height: 90px;
}

.gform_wrapper .gform_fields .gfield textarea.large {
    min-height: 160px;
}

/* Character / word counter GF prints under textareas */
.gform_wrapper .gform_fields .gfield .charleft,
.gform_wrapper .gform_fields .gfield .ginput_counter {
    display: block;
    font-size: 0.8rem;
    color: var(--cmgf-muted);
    margin: 6px 0 0;
    padding: 0;
    text-transform: none;
}

/* Number field - keep the native spinner but calm it down */
.gform_wrapper .gform_fields .gfield input[type="number"] {
    -moz-appearance: textfield;
    appearance: textfield;
}

.gform_wrapper .gform_fields .gfield input[type="number"]:focus {
    -moz-appearance: number-input;
}

/* Password strength indicator */
.gform_wrapper .gform_fields .gfield .gfield_password_strength,
.gform_wrapper .gform_fields .gfield .gform-password-strength {
    margin: 10px 0 0;
    padding: 10px 14px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-bg-light);
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cmgf-muted);
    text-transform: none;
}

.gform_wrapper .gform_fields .gfield .gform-password-strength .gform-password-strength__indicator {
    border-radius: 999px;
    height: 6px;
}

/* ========================================
   Select & Multi-Select
   Native select + inline SVG chevron (an icon font cannot be used because the
   theme forces font-family:Poppins on every element).
========================================== */
.gform_wrapper .gform_fields .gfield select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    padding-right: 46px;
    background-image: var(--cmgf-icon-chevron);
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 16px 16px;
    text-overflow: ellipsis;
}

.gform_wrapper .gform_fields .gfield select:focus {
    background-image: var(--cmgf-icon-chevron);
    background-repeat: no-repeat;
    background-position: right 18px center;
    background-size: 16px 16px;
}

.gform_wrapper .gform_fields .gfield select option {
    color: var(--cmgf-text);
    background: var(--cmgf-white);
    padding: 8px 10px;
}

.gform_wrapper .gform_fields .gfield select option:disabled {
    color: #9ca3af;
}

/* Multi-select: no chevron, taller box, padded options */
.gform_wrapper .gform_fields .gfield select[multiple],
.gform_wrapper .gform_fields .gfield .ginput_container_multiselect select {
    background-image: none;
    padding: 10px 12px;
    min-height: 150px;
    cursor: default;
    -webkit-appearance: none;
    appearance: none;
}

.gform_wrapper .gform_fields .gfield select[multiple] option {
    padding: 9px 12px;
    border-radius: var(--cmgf-radius-sm);
    margin-bottom: 2px;
}

.gform_wrapper .gform_fields .gfield select[multiple] option:checked {
    background: var(--cmgf-primary) linear-gradient(0deg, var(--cmgf-primary) 0%, var(--cmgf-primary) 100%);
    color: var(--cmgf-white);
}

/* GF "enhanced UI" (Chosen) selects */
.gform_wrapper .chosen-container {
    width: 100% !important; /* !important: Chosen writes an inline pixel width on the container at init */
    font-size: 1rem;
}

.gform_wrapper .chosen-container-single .chosen-single,
.gform_wrapper .chosen-container-multi .chosen-choices {
    height: auto;
    min-height: 54px;
    padding: 13px 46px 13px 18px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius);
    background: var(--cmgf-white);
    box-shadow: none;
    color: var(--cmgf-text);
    line-height: 1.5;
    transition: var(--cmgf-transition);
}

.gform_wrapper .chosen-container-active .chosen-single,
.gform_wrapper .chosen-container-active .chosen-choices {
    border-color: var(--cmgf-primary);
    box-shadow: var(--cmgf-focus-ring);
}

.gform_wrapper .chosen-container-single .chosen-single div b {
    background: var(--cmgf-icon-chevron) no-repeat center center;
    background-size: 16px 16px;
    width: 20px;
}

.gform_wrapper .chosen-container .chosen-drop {
    border: 2px solid var(--cmgf-primary);
    border-radius: 0 0 var(--cmgf-radius) var(--cmgf-radius);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.1);
}

.gform_wrapper .chosen-container .chosen-results li.highlighted {
    background: var(--cmgf-primary);
    color: var(--cmgf-white);
}

/* ========================================
   Checkboxes & Radios  (the centrepiece)
   The native control is restyled in place with appearance:none rather than
   hidden, so keyboard focus always lands on the thing you can actually see.
   Covers modern (.gchoice > div) and legacy (ul.gfield_checkbox > li) markup.
========================================== */

/* --- the choice list ------------------------------------------------ */
.gform_wrapper .gform_fields .gfield .gfield_checkbox,
.gform_wrapper .gform_fields .gfield .gfield_radio {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
    border: 0;
}

/* Multi-column choice layouts (legacy CSS ready classes) */
.gform_wrapper .gform_fields .gfield.gf_list_2col .gfield_checkbox,
.gform_wrapper .gform_fields .gfield.gf_list_2col .gfield_radio,
.gform_wrapper .gform_fields .gfield.gf_list_2col_vertical .gfield_checkbox {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 20px;
}

.gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_checkbox,
.gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_radio,
.gform_wrapper .gform_fields .gfield.gf_list_3col_vertical .gfield_checkbox {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 20px;
}

.gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_checkbox,
.gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_radio {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 20px;
}

.gform_wrapper .gform_fields .gfield.gf_list_inline .gfield_checkbox,
.gform_wrapper .gform_fields .gfield.gf_list_inline .gfield_radio {
    display: flex;
    flex-wrap: wrap;
    column-gap: 26px;
    row-gap: 6px;
}

/* --- the choice row ------------------------------------------------- */
.gform_wrapper .gform_fields .gfield .gchoice,
.gform_wrapper .gform_fields .gfield .gfield_checkbox > li,
.gform_wrapper .gform_fields .gfield .gfield_radio > li {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    position: relative;
    margin: 0;
    padding: 7px 10px;
    list-style: none;
    border-radius: var(--cmgf-radius-sm);
    background: transparent;
    transition: background-color 0.2s ease;
    overflow: visible;
    min-width: 0;
}

/* Pull the row padding back out so the controls stay flush with the field */
.gform_wrapper .gform_fields .gfield .gfield_checkbox > .gchoice,
.gform_wrapper .gform_fields .gfield .gfield_radio > .gchoice,
.gform_wrapper .gform_fields .gfield .gfield_checkbox > li,
.gform_wrapper .gform_fields .gfield .gfield_radio > li {
    margin-left: -10px;
    margin-right: -10px;
}

.gform_wrapper .gform_fields .gfield .gchoice:hover,
.gform_wrapper .gform_fields .gfield .gfield_checkbox > li:hover,
.gform_wrapper .gform_fields .gfield .gfield_radio > li:hover {
    background-color: var(--cmgf-tint);
}

/* --- the control ---------------------------------------------------- */
.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"],
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"],
.gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"],
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"],
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    flex: 0 0 var(--cmgf-control-size);
    width: var(--cmgf-control-size);
    height: var(--cmgf-control-size);
    min-width: var(--cmgf-control-size);
    max-width: var(--cmgf-control-size);
    margin: 0;
    padding: 0;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background-color: var(--cmgf-white);
    background-image: none;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 14px 14px;
    box-shadow: none;
    cursor: pointer;
    position: relative;
    /* Optically centre the 22px box on the first line of label text */
    top: 0;
    transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
    vertical-align: top;
}

/* Radios are round */
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"],
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"] {
    border-radius: 50%;
}

/* Hover (unchecked) */
.gform_wrapper .gform_fields .gfield .gchoice:hover input[type="checkbox"]:not(:checked),
.gform_wrapper .gform_fields .gfield .gchoice:hover input[type="radio"]:not(:checked),
.gform_wrapper .gform_fields .gfield .gfield_checkbox > li:hover input[type="checkbox"]:not(:checked),
.gform_wrapper .gform_fields .gfield .gfield_radio > li:hover input[type="radio"]:not(:checked),
.gform_wrapper .gform_fields .gfield .ginput_container_consent:hover input[type="checkbox"]:not(:checked),
.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:hover,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:hover,
.gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"]:hover {
    border-color: var(--cmgf-primary);
    background-color: var(--cmgf-white);
}

/* Checked - checkbox: coral fill + white SVG tick */
.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:checked,
.gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"]:checked,
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"]:checked {
    background-color: var(--cmgf-primary);
    border-color: var(--cmgf-primary);
    background-image: var(--cmgf-icon-check);
    background-size: 14px 14px;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Indeterminate (GF "select all" toggles use it) */
.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:indeterminate,
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"]:indeterminate {
    background-color: var(--cmgf-primary);
    border-color: var(--cmgf-primary);
    background-image: var(--cmgf-icon-dash);
}

/* Checked - radio: coral fill + white centre dot */
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:checked,
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"]:checked {
    background-color: var(--cmgf-primary);
    border-color: var(--cmgf-primary);
    background-image: var(--cmgf-icon-dot);
    background-size: 14px 14px;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Keyboard focus must stay obvious */
.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:focus,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:focus,
.gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"]:focus,
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"]:focus,
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"]:focus {
    outline: none;
    border-color: var(--cmgf-primary);
    box-shadow: var(--cmgf-focus-ring-strong);
}

.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:focus-visible,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:focus-visible,
.gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"]:focus-visible,
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"]:focus-visible,
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"]:focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    border-color: var(--cmgf-primary);
    box-shadow: var(--cmgf-focus-ring-strong);
}

.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:disabled,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:disabled {
    background-color: var(--cmgf-bg-light);
    border-color: var(--cmgf-border);
    cursor: not-allowed;
}

/* --- the choice label ---------------------------------------------- */
.gform_wrapper .gform_fields .gfield .gfield_checkbox label,
.gform_wrapper .gform_fields .gfield .gfield_radio label,
.gform_wrapper .gform_fields .gfield .gchoice label {
    flex: 1 1 auto;
    min-width: 0;
    display: block;
    margin: 0;
    padding: 0;
    /* 0.95rem x 1.45 = ~22px, matching the control height, so single-line
       labels sit dead level with the box and long labels wrap cleanly
       without sliding underneath it. */
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--cmgf-text);
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    user-select: none;
    overflow-wrap: break-word;
    transition: color 0.2s ease;
    max-width: 100%;
    float: none;
    text-align: left;
}

.gform_wrapper .gform_fields .gfield .gfield_checkbox label:hover,
.gform_wrapper .gform_fields .gfield .gfield_radio label:hover,
.gform_wrapper .gform_fields .gfield .gchoice label:hover {
    color: var(--cmgf-charcoal);
}

.gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:checked + label,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:checked + label,
.gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"]:checked + label,
.gform_wrapper .gform_fields .gfield .gchoice input[type="radio"]:checked + label {
    color: var(--cmgf-charcoal);
    font-weight: 600;
}

/* "Other" free-text choice sits inline with its radio */
.gform_wrapper .gform_fields .gfield .gchoice input.gchoice_other_control,
.gform_wrapper .gform_fields .gfield .gfield_radio input[type="text"],
.gform_wrapper .gform_fields .gfield .gchoice input[type="text"] {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
    max-width: 100%;
    padding: 8px 12px;
    font-size: 0.9rem;
    border-radius: var(--cmgf-radius-sm);
}

/* ========================================
   Consent Field
========================================== */
.gform_wrapper .gform_fields .gfield .ginput_container_consent {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 7px 10px;
    margin: 0 -10px;
    border-radius: var(--cmgf-radius-sm);
    transition: background-color 0.2s ease;
}

.gform_wrapper .gform_fields .gfield .ginput_container_consent:hover {
    background-color: var(--cmgf-tint);
}

.gform_wrapper .gform_fields .gfield .gfield_consent_label,
.gform_wrapper .gform_fields .gfield .ginput_container_consent label {
    flex: 1 1 auto;
    min-width: 0;
    display: block;
    margin: 0;
    padding: 0;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1.45;
    color: var(--cmgf-text);
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    overflow-wrap: break-word;
    text-align: left;
}

.gform_wrapper .gform_fields .gfield .gfield_consent_label a,
.gform_wrapper .gform_fields .gfield .gfield_checkbox label a,
.gform_wrapper .gform_fields .gfield .gchoice label a {
    color: var(--cmgf-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gform_wrapper .gform_fields .gfield .gfield_consent_label a:hover {
    color: var(--cmgf-primary-deep);
}

/* A consent field's own label is usually redundant next to the inline text */
.gform_wrapper .gform_fields .gfield--type-consent .gfield_label {
    margin-bottom: 4px;
}

/* ========================================
   Composite Fields - Name, Address
========================================== */
.gform_wrapper .gform_fields .gfield .ginput_complex {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
    margin: 0;
    padding: 0;
    width: 100%;
}

.gform_wrapper .gform_fields .gfield .ginput_complex > span,
.gform_wrapper .gform_fields .gfield .ginput_complex > .ginput_left,
.gform_wrapper .gform_fields .gfield .ginput_complex > .ginput_right {
    display: block;
    flex: 1 1 calc(50% - 10px);
    min-width: 0;
    margin: 0;
    padding: 0;
    width: auto;
}

.gform_wrapper .gform_fields .gfield .ginput_complex > .ginput_full,
.gform_wrapper .gform_fields .gfield .ginput_complex > span.address_line_1,
.gform_wrapper .gform_fields .gfield .ginput_complex > span.address_line_2 {
    flex: 1 1 100%;
}

/* Prefix / suffix are narrow by nature */
.gform_wrapper .gform_fields .gfield .ginput_complex > span.name_prefix,
.gform_wrapper .gform_fields .gfield .ginput_complex > span.name_suffix {
    flex: 0 1 110px;
}

/* Address: city / state / zip read better as thirds */
.gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_city,
.gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_state,
.gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_zip {
    flex: 1 1 calc(33.333% - 14px);
}

.gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_country {
    flex: 1 1 100%;
}

/* Legacy name/address markup used floats and inline widths */
.gform_wrapper.gform_legacy_markup_wrapper .gform_fields .gfield .ginput_complex > span {
    float: none;
}

.gform_wrapper .gform_fields .gfield .clear-multi {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
}

/* ========================================
   Date & Time Fields
========================================== */
.gform_wrapper .gform_fields .gfield .ginput_container_date input {
    background-image: var(--cmgf-icon-calendar);
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 18px 18px;
    padding-right: 46px;
}

/* GF's own datepicker trigger image is replaced by the field background icon */
.gform_wrapper .gform_fields .gfield .ginput_container_date img.ui-datepicker-trigger,
.gform_wrapper .gform_fields .gfield .ginput_container_date .ui-datepicker-trigger {
    display: none;
}

/* Date drop-down variant (month / day / year selects) */
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_dropdown_month,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_dropdown_day,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_dropdown_year,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_month,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_day,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_year {
    display: inline-block;
    vertical-align: top;
    width: auto;
    min-width: 92px;
    margin: 0 10px 0 0;
}

.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_month input,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_day input,
.gform_wrapper .gform_fields .gfield .ginput_container_date .gfield_date_year input {
    background-image: none;
    padding-right: 18px;
    text-align: center;
}

/* Time field: HH : MM AM/PM */
.gform_wrapper .gform_fields .gfield--type-time .ginput_complex,
.gform_wrapper .gform_fields .gfield .ginput_container_time {
    display: inline-flex;
    align-items: flex-start;
    gap: 0;
    vertical-align: top;
    width: auto;
}

.gform_wrapper .gform_fields .gfield .gfield_time_hour,
.gform_wrapper .gform_fields .gfield .gfield_time_minute {
    display: inline-block;
    vertical-align: top;
    width: 84px;
    margin: 0;
}

.gform_wrapper .gform_fields .gfield .gfield_time_hour input,
.gform_wrapper .gform_fields .gfield .gfield_time_minute input {
    width: 100%;
    text-align: center;
    padding-left: 10px;
    padding-right: 10px;
    background-image: none;
}

.gform_wrapper .gform_fields .gfield .hour_minute_colon {
    display: inline-block;
    vertical-align: top;
    width: 20px;
    padding: 14px 0 0;
    margin: 0;
    text-align: center;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--cmgf-muted);
    line-height: 1.5;
}

.gform_wrapper .gform_fields .gfield .gfield_time_ampm {
    display: inline-block;
    vertical-align: top;
    margin: 0 0 0 12px;
}

.gform_wrapper .gform_fields .gfield .gfield_time_ampm select {
    width: auto;
    min-width: 92px;
}

.gform_wrapper .gform_fields .gfield .ginput_container_time input[type="time"] {
    background-image: var(--cmgf-icon-clock);
    background-repeat: no-repeat;
    background-position: right 16px center;
    background-size: 18px 18px;
    padding-right: 46px;
}

/* ========================================
   File Upload (single + multi-file drag & drop)
========================================== */
.gform_wrapper .gform_fields .gfield .ginput_container_fileupload {
    width: 100%;
}

.gform_wrapper .gform_fields .gfield input[type="file"] {
    display: block;
    width: 100%;
    max-width: 100%;
    padding: 11px 16px;
    border: 2px dashed var(--cmgf-border);
    border-radius: var(--cmgf-radius);
    background: var(--cmgf-bg-light);
    font-size: 0.95rem;
    color: var(--cmgf-muted);
    line-height: 1.5;
    cursor: pointer;
    transition: var(--cmgf-transition);
}

.gform_wrapper .gform_fields .gfield input[type="file"]:hover {
    border-color: var(--cmgf-primary);
    background: var(--cmgf-tint);
}

.gform_wrapper .gform_fields .gfield input[type="file"]:focus {
    outline: none;
    border-color: var(--cmgf-primary);
    box-shadow: var(--cmgf-focus-ring);
}

.gform_wrapper .gform_fields .gfield input[type="file"]::file-selector-button {
    margin-right: 14px;
    padding: 9px 18px;
    border: 0;
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-gradient);
    color: var(--cmgf-white);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
    transition: var(--cmgf-transition);
}

.gform_wrapper .gform_fields .gfield input[type="file"]::-webkit-file-upload-button {
    margin-right: 14px;
    padding: 9px 18px;
    border: 0;
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-primary);
    color: var(--cmgf-white);
    font-size: 0.9rem;
    font-weight: 600;
    cursor: pointer;
}

.gform_wrapper .gform_fields .gfield input[type="file"]:hover::file-selector-button {
    box-shadow: 0 6px 16px rgba(255, 103, 91, 0.3);
}

/* Multi-file drag & drop zone */
.gform_wrapper .gform_fields .gfield .gform_drop_area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    text-align: center;
    padding: 40px 24px 36px;
    border: 2px dashed var(--cmgf-border-strong);
    border-radius: var(--cmgf-radius-lg);
    background: var(--cmgf-bg-light) var(--cmgf-icon-upload) no-repeat center 26px;
    background-size: 40px 40px;
    padding-top: 84px;
    color: var(--cmgf-muted);
    transition: var(--cmgf-transition);
    margin: 0;
}

.gform_wrapper .gform_fields .gfield .gform_drop_area:hover,
.gform_wrapper .gform_fields .gfield .gform_drop_area.gform_drop_area_hover,
.gform_wrapper .gform_fields .gfield .gform_drop_area.drag-over {
    border-color: var(--cmgf-primary);
    background-color: var(--cmgf-tint);
}

.gform_wrapper .gform_fields .gfield .gform_drop_instructions {
    display: block;
    font-size: 1rem;
    font-weight: 500;
    color: var(--cmgf-charcoal);
    text-transform: none;
    margin: 0;
}

.gform_wrapper .gform_fields .gfield .gform_button_select_files,
.gform_wrapper .gform_fields .gfield button.gform_button_select_files {
    display: inline-block;
    padding: 12px 26px;
    border: 2px solid var(--cmgf-primary);
    border-radius: var(--cmgf-radius);
    background: var(--cmgf-white);
    color: var(--cmgf-primary);
    font-size: 0.95rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    transition: var(--cmgf-transition);
    width: auto;
    box-shadow: none;
}

.gform_wrapper .gform_fields .gfield .gform_button_select_files:hover {
    background: var(--cmgf-primary);
    color: var(--cmgf-white);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(255, 103, 91, 0.25);
}

.gform_wrapper .gform_fields .gfield .gform_button_select_files:focus-visible {
    outline: none;
    box-shadow: var(--cmgf-focus-ring-strong);
}

.gform_wrapper .gform_fields .gfield .gform_fileupload_rules,
.gform_wrapper .gform_fields .gfield .gform_fileupload_multifile .gform_fileupload_rules,
.gform_wrapper .gform_fields .gfield .gfield_fileupload_filesize {
    display: block;
    font-size: 0.8rem;
    line-height: 1.5;
    color: var(--cmgf-muted);
    margin: 10px 0 0;
    text-transform: none;
}

/* Uploaded file list */
.gform_wrapper .gform_fields .gfield .ginput_preview_list,
.gform_wrapper .gform_fields .gfield .ginput_preview {
    list-style: none;
    margin: 14px 0 0;
    padding: 0;
    display: grid;
    gap: 8px;
}

.gform_wrapper .gform_fields .gfield .ginput_preview_list li,
.gform_wrapper .gform_fields .gfield .ginput_preview {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 12px 14px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-white);
    font-size: 0.9rem;
    color: var(--cmgf-text);
}

.gform_wrapper .gform_fields .gfield .gfield_fileupload_filename,
.gform_wrapper .gform_fields .gfield .ginput_preview strong {
    flex: 1 1 auto;
    min-width: 0;
    overflow-wrap: break-word;
    font-weight: 500;
}

.gform_wrapper .gform_fields .gfield .gform_delete,
.gform_wrapper .gform_fields .gfield .gform_delete_file,
.gform_wrapper .gform_fields .gfield button.gform_delete_file {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--cmgf-border);
    border-radius: 50%;
    background: var(--cmgf-white) var(--cmgf-icon-trash) no-repeat center center;
    background-size: 16px 16px;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    transition: var(--cmgf-transition);
}

.gform_wrapper .gform_fields .gfield .gform_delete_file:hover,
.gform_wrapper .gform_fields .gfield .gform_delete:hover {
    border-color: var(--cmgf-error);
    background-color: var(--cmgf-error-bg);
}

/* Upload progress */
.gform_wrapper .gform_fields .gfield .gform_progress,
.gform_wrapper .gform_fields .gfield .gform_progress_wrapper {
    margin: 10px 0 0;
    width: 100%;
}

.gform_wrapper .gform_fields .gfield .gform_progress_bar {
    height: 8px;
    border-radius: 999px;
    background: var(--cmgf-border);
    overflow: hidden;
    border: 0;
    box-shadow: none;
}

.gform_wrapper .gform_fields .gfield .gform_progress_bar > span,
.gform_wrapper .gform_fields .gfield .gform_progress_bar_percentage {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--cmgf-gradient);
}

/* ========================================
   List Field
========================================== */
.gform_wrapper .gform_fields .gfield .ginput_container_list {
    width: 100%;
    overflow-x: auto;
}

.gform_wrapper .gform_fields .gfield table.gfield_list {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 8px;
    margin: 0;
    background: transparent;
    border: 0;
}

.gform_wrapper .gform_fields .gfield table.gfield_list thead th,
.gform_wrapper .gform_fields .gfield .gfield_list_header .gfield_header_item {
    padding: 0 10px 4px 0;
    text-align: left;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--cmgf-charcoal);
    text-transform: none;
    letter-spacing: normal;
    background: transparent;
    border: 0;
}

.gform_wrapper .gform_fields .gfield table.gfield_list td,
.gform_wrapper .gform_fields .gfield .gfield_list_group_item {
    padding: 0 10px 0 0;
    vertical-align: middle;
    background: transparent;
    border: 0;
}

.gform_wrapper .gform_fields .gfield table.gfield_list td:last-child,
.gform_wrapper .gform_fields .gfield .gfield_list_icons {
    padding-right: 0;
    white-space: nowrap;
    width: 1%;
}

.gform_wrapper .gform_fields .gfield .gfield_list_icons img {
    display: none;
}

.gform_wrapper .gform_fields .gfield .add_list_item,
.gform_wrapper .gform_fields .gfield .delete_list_item,
.gform_wrapper .gform_fields .gfield button.add_list_item,
.gform_wrapper .gform_fields .gfield button.delete_list_item {
    display: inline-block;
    width: 30px;
    height: 30px;
    padding: 0;
    margin: 0 0 0 6px;
    border: 0;
    border-radius: 50%;
    background-color: var(--cmgf-primary);
    background-image: var(--cmgf-icon-plus);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 14px 14px;
    font-size: 0;
    line-height: 0;
    color: transparent;
    cursor: pointer;
    transition: var(--cmgf-transition);
    box-shadow: none;
    vertical-align: middle;
}

.gform_wrapper .gform_fields .gfield .delete_list_item,
.gform_wrapper .gform_fields .gfield button.delete_list_item {
    background-color: var(--cmgf-muted);
    background-image: var(--cmgf-icon-minus);
}

.gform_wrapper .gform_fields .gfield .add_list_item:hover {
    background-color: var(--cmgf-primary-dark);
    transform: scale(1.08);
}

.gform_wrapper .gform_fields .gfield .delete_list_item:hover {
    background-color: var(--cmgf-error);
    transform: scale(1.08);
}

.gform_wrapper .gform_fields .gfield .add_list_item:focus-visible,
.gform_wrapper .gform_fields .gfield .delete_list_item:focus-visible {
    outline: none;
    box-shadow: var(--cmgf-focus-ring-strong);
}

/* ========================================
   Section Breaks & HTML Blocks
   style.css applies uppercase + 60px + 27px bottom padding to every h3 and
   a 35px bottom margin to every p, so these must be fully re-declared.
========================================== */
.gform_wrapper .gform_fields .gfield.gsection,
.gform_wrapper .gform_fields .gfield--type-section {
    margin: 10px 0 var(--cmgf-field-gap);
    padding: 22px 0 0;
    border: 0;
    border-top: 1px solid var(--cmgf-border);
    background: transparent;
}

.gform_wrapper .gform_fields .gfield.gsection:first-child,
.gform_wrapper .gform_fields .gfield--type-section:first-child {
    margin-top: 0;
    padding-top: 0;
    border-top: 0;
}

.gform_wrapper .gform_fields .gsection_title,
.gform_wrapper .gform_fields .gfield--type-section .gfield_label,
.gform_wrapper .gform_fields h1.gsection_title,
.gform_wrapper .gform_fields h2.gsection_title,
.gform_wrapper .gform_fields h3.gsection_title,
.gform_wrapper .gform_fields h4.gsection_title {
    display: block;
    font-size: 1.25rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--cmgf-charcoal);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0;
    padding: 0;
    position: static;
    border: 0;
}

.gform_wrapper .gform_fields .gsection_title::before,
.gform_wrapper .gform_fields .gsection_title::after {
    content: none;
    display: none;
}

.gform_wrapper .gform_fields .gsection_description {
    display: block;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--cmgf-muted);
    text-transform: none;
    opacity: 1;
    margin: 8px 0 0;
    padding: 0;
    max-width: 100%;
}

/* A coral accent rule under the section title keeps the house look */
.gform_wrapper .gform_fields .gfield.gsection .gsection_title,
.gform_wrapper .gform_fields .gfield--type-section .gsection_title {
    padding-bottom: 10px;
    background-image: linear-gradient(90deg, #ff675b 0%, #fdc785 100%);
    background-repeat: no-repeat;
    background-position: left bottom;
    background-size: 48px 3px;
}

/* HTML block */
.gform_wrapper .gform_fields .gfield.gfield_html,
.gform_wrapper .gform_fields .gfield--type-html {
    margin-bottom: var(--cmgf-field-gap);
    padding: 0;
    font-size: 1rem;
    line-height: 1.65;
    color: var(--cmgf-text);
    max-width: 100%;
}

.gform_wrapper .gform_fields .gfield_html p,
.gform_wrapper .gform_fields .gfield--type-html p {
    margin: 0 0 14px;
    text-transform: none;
}

.gform_wrapper .gform_fields .gfield_html p:last-child,
.gform_wrapper .gform_fields .gfield--type-html p:last-child {
    margin-bottom: 0;
}

.gform_wrapper .gform_fields .gfield_html h1,
.gform_wrapper .gform_fields .gfield_html h2,
.gform_wrapper .gform_fields .gfield_html h3,
.gform_wrapper .gform_fields .gfield_html h4,
.gform_wrapper .gform_fields .gfield--type-html h1,
.gform_wrapper .gform_fields .gfield--type-html h2,
.gform_wrapper .gform_fields .gfield--type-html h3,
.gform_wrapper .gform_fields .gfield--type-html h4 {
    font-size: 1.2rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--cmgf-charcoal);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0 0 10px;
    padding: 0;
}

.gform_wrapper .gform_fields .gfield_html ul,
.gform_wrapper .gform_fields .gfield_html ol,
.gform_wrapper .gform_fields .gfield--type-html ul,
.gform_wrapper .gform_fields .gfield--type-html ol {
    margin: 0 0 14px 20px;
    padding: 0;
}

.gform_wrapper .gform_fields .gfield_html li,
.gform_wrapper .gform_fields .gfield--type-html li {
    margin: 0 0 6px;
    line-height: 1.6;
    list-style: disc;
}

.gform_wrapper .gform_fields .gfield_html a,
.gform_wrapper .gform_fields .gfield--type-html a {
    color: var(--cmgf-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ========================================
   Multi-Page Forms - Progress Bar & Steps
========================================== */
.gform_wrapper .gf_progressbar_wrapper {
    margin: 0 0 30px;
    padding: 0;
    width: 100%;
}

.gform_wrapper .gf_progressbar_title {
    display: block;
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--cmgf-charcoal);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0 0 10px;
    padding: 0;
}

.gform_wrapper .gf_progressbar {
    height: 10px;
    border-radius: 999px;
    background: var(--cmgf-border);
    overflow: hidden;
    box-shadow: none;
    border: 0;
    padding: 0;
    margin: 0;
    width: 100%;
}

.gform_wrapper .gf_progressbar_percentage {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--cmgf-gradient);
    text-align: right;
    transition: width 0.4s ease;
    position: relative;
}

.gform_wrapper .gf_progressbar_percentage span {
    display: inline-block;
    font-size: 0;
    line-height: 0;
    color: transparent;
}

/* Percentage read-out moved beside the title instead of inside the bar */
.gform_wrapper .gf_progressbar_wrapper .gf_progressbar_title span {
    font-weight: 700;
    color: var(--cmgf-primary);
}

/* Step indicator */
.gform_wrapper .gf_page_steps {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 28px;
    margin: 0 0 28px;
    padding: 0 0 18px;
    border-bottom: 1px solid var(--cmgf-border);
    width: 100%;
}

.gform_wrapper .gf_step {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 0;
    padding: 0;
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--cmgf-muted);
    opacity: 1;
    list-style: none;
    width: auto;
}

.gform_wrapper .gf_step_number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid var(--cmgf-border);
    background: var(--cmgf-white);
    color: var(--cmgf-muted);
    font-size: 0.85rem;
    font-weight: 700;
    line-height: 1;
}

.gform_wrapper .gf_step_label {
    text-transform: none;
    letter-spacing: normal;
}

.gform_wrapper .gf_step.gf_step_active {
    color: var(--cmgf-charcoal);
    font-weight: 600;
}

.gform_wrapper .gf_step.gf_step_active .gf_step_number {
    background: var(--cmgf-gradient);
    border-color: var(--cmgf-primary);
    color: var(--cmgf-white);
    box-shadow: 0 4px 12px rgba(255, 103, 91, 0.3);
}

.gform_wrapper .gf_step.gf_step_completed .gf_step_number {
    background: var(--cmgf-primary) var(--cmgf-icon-check) no-repeat center center;
    background-size: 14px 14px;
    border-color: var(--cmgf-primary);
    color: transparent;
    font-size: 0;
}

/* ========================================
   Footer, Submit & Page Buttons
   NOTE: no `width` is declared on the submit button - modal-styles.css owns
   the modal's full-width button and must keep winning there.
========================================== */
.gform_wrapper .gform_footer,
.gform_wrapper .gform-footer,
.gform_wrapper .gform_page_footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 14px;
    margin: 28px 0 0;
    padding: 0;
    clear: both;
}

.gform_wrapper .gform_footer input[type="submit"],
.gform_wrapper .gform_footer .gform_button,
.gform_wrapper .gform_footer button.gform_button,
.gform_wrapper .gform_page_footer input[type="submit"],
.gform_wrapper .gform_page_footer .gform_next_button,
.gform_wrapper .gform_page_footer .gform_button {
    display: inline-block;
    padding: 16px 40px;
    border: none;
    border-radius: var(--cmgf-radius);
    background: var(--cmgf-gradient);
    color: var(--cmgf-white);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
    text-decoration: none;
    text-shadow: none;
    cursor: pointer;
    transition: var(--cmgf-transition);
    box-shadow: none;
    max-width: 100%;
}

.gform_wrapper .gform_footer input[type="submit"]:hover,
.gform_wrapper .gform_footer .gform_button:hover,
.gform_wrapper .gform_page_footer input[type="submit"]:hover,
.gform_wrapper .gform_page_footer .gform_next_button:hover,
.gform_wrapper .gform_page_footer .gform_button:hover {
    background: var(--cmgf-gradient);
    color: var(--cmgf-white);
    transform: translateY(-2px);
    box-shadow: 0 10px 25px rgba(255, 103, 91, 0.3);
}

.gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.gform_wrapper .gform_footer .gform_button:focus-visible,
.gform_wrapper .gform_page_footer input[type="submit"]:focus-visible,
.gform_wrapper .gform_page_footer .gform_next_button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px rgba(255, 103, 91, 0.35);
}

.gform_wrapper .gform_footer input[type="submit"]:active,
.gform_wrapper .gform_footer .gform_button:active,
.gform_wrapper .gform_page_footer .gform_next_button:active {
    transform: translateY(0);
    box-shadow: 0 4px 12px rgba(255, 103, 91, 0.25);
}

.gform_wrapper .gform_footer input[type="submit"]:disabled,
.gform_wrapper .gform_footer .gform_button:disabled {
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Secondary button: Previous */
.gform_wrapper .gform_page_footer .gform_previous_button,
.gform_wrapper .gform_page_footer input.gform_previous_button,
.gform_wrapper .gform-theme-button--secondary {
    display: inline-block;
    /* 14px + 2px border matches the 16px padding of the primary button so the
       pair sits on the same baseline */
    padding: 14px 32px;
    border: 2px solid var(--cmgf-border-strong);
    border-radius: var(--cmgf-radius);
    background: var(--cmgf-white);
    color: var(--cmgf-charcoal);
    font-size: 1.1rem;
    font-weight: 600;
    line-height: 1.3;
    text-transform: none;
    letter-spacing: normal;
    cursor: pointer;
    transition: var(--cmgf-transition);
    box-shadow: none;
}

.gform_wrapper .gform_page_footer .gform_previous_button:hover,
.gform_wrapper .gform-theme-button--secondary:hover {
    border-color: var(--cmgf-primary);
    color: var(--cmgf-primary);
    background: var(--cmgf-tint);
}

.gform_wrapper .gform_page_footer .gform_previous_button:focus-visible,
.gform_wrapper .gform-theme-button--secondary:focus-visible {
    outline: none;
    box-shadow: var(--cmgf-focus-ring-strong);
}

/* "Save and Continue Later" link */
.gform_wrapper .gform_save_link,
.gform_wrapper .gform_page_footer .gform_save_link {
    display: inline-block;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    color: var(--cmgf-primary);
    font-size: 0.95rem;
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 3px;
    text-transform: none;
    cursor: pointer;
    box-shadow: none;
}

.gform_wrapper .gform_save_link:hover {
    color: var(--cmgf-primary-deep);
}

/* "Save and Continue" email confirmation panel */
.gform_wrapper .form_saved_message,
.gform_wrapper .form_saved_message_sent {
    background: var(--cmgf-bg-light);
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-lg);
    padding: 26px 28px;
    color: var(--cmgf-text);
}

.gform_wrapper .form_saved_message p,
.gform_wrapper .form_saved_message_sent p {
    margin: 0 0 12px;
}

/* ========================================
   Validation - Summary, Field State, Messages
========================================== */

/* Top-of-form summary: modern (.gform_validation_errors) + legacy (.validation_error) */
.gform_wrapper .gform_validation_errors,
.gform_wrapper div.validation_error,
.gform_wrapper .validation_error {
    display: block;
    width: auto;
    max-width: 100%;
    margin: 0 0 25px;
    padding: 20px 22px 20px 56px;
    border: 2px solid var(--cmgf-error);
    border-left-width: 5px;
    border-radius: var(--cmgf-radius);
    background-color: var(--cmgf-error-bg);
    background-image: var(--cmgf-icon-alert);
    background-repeat: no-repeat;
    background-position: 20px 21px;
    background-size: 22px 22px;
    box-shadow: none;
    color: var(--cmgf-error-text);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.55;
    text-align: left;
    text-transform: none;
    letter-spacing: normal;
    clear: both;
}

.gform_wrapper .gform_validation_errors > h2,
.gform_wrapper .gform_validation_errors .gform_submission_error {
    display: block;
    font-size: 1rem;
    line-height: 1.5;
    font-weight: 700;
    color: var(--cmgf-error-text);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0;
    padding: 0;
}

.gform_wrapper .gform_validation_errors .gform_submission_error .gform-icon {
    display: none;
}

.gform_wrapper .gform_validation_errors .gform_validation_error_summary,
.gform_wrapper .gform_validation_errors ol,
.gform_wrapper .gform_validation_errors ul {
    margin: 12px 0 0;
    padding: 0 0 0 20px;
    border: 0;
    background: transparent;
    list-style: disc;
}

.gform_wrapper .gform_validation_errors .gform_validation_error_summary li,
.gform_wrapper .gform_validation_errors ol li {
    margin: 0 0 6px;
    padding: 0;
    font-size: 0.925rem;
    font-weight: 500;
    line-height: 1.5;
    color: var(--cmgf-error-text);
    list-style: disc;
}

.gform_wrapper .gform_validation_errors .gform_validation_error_summary li a {
    color: var(--cmgf-error-text);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.gform_wrapper .gform_validation_errors .gform_validation_error_summary li a:hover {
    color: #7f1d1d;
}

/* Per-field error state */
.gform_wrapper .gform_fields .gfield.gfield_error {
    background: transparent;
    border: 0;
    padding: 0;
    /* !important: Gravity Forms' legacy stylesheet sets
       `li.gfield.gfield_error{margin-bottom:6px!important}` on error fields,
       which collapses the 25px field rhythm. */
    margin-bottom: var(--cmgf-field-gap) !important;
}

.gform_wrapper .gform_fields .gfield.gfield_error .gfield_label,
.gform_wrapper .gform_fields .gfield.gfield_error .gform-field-label,
.gform_wrapper .gform_fields .gfield.gfield_error legend.gfield_label {
    color: var(--cmgf-error-text);
}

.gform_wrapper .gform_fields .gfield.gfield_error input[type="text"],
.gform_wrapper .gform_fields .gfield.gfield_error input[type="email"],
.gform_wrapper .gform_fields .gfield.gfield_error input[type="tel"],
.gform_wrapper .gform_fields .gfield.gfield_error input[type="url"],
.gform_wrapper .gform_fields .gfield.gfield_error input[type="number"],
.gform_wrapper .gform_fields .gfield.gfield_error input[type="password"],
.gform_wrapper .gform_fields .gfield.gfield_error textarea,
.gform_wrapper .gform_fields .gfield.gfield_error select {
    border-color: var(--cmgf-error);
    background-color: var(--cmgf-error-bg);
}

.gform_wrapper .gform_fields .gfield.gfield_error input[type="text"]:focus,
.gform_wrapper .gform_fields .gfield.gfield_error input[type="email"]:focus,
.gform_wrapper .gform_fields .gfield.gfield_error input[type="tel"]:focus,
.gform_wrapper .gform_fields .gfield.gfield_error textarea:focus,
.gform_wrapper .gform_fields .gfield.gfield_error select:focus {
    border-color: var(--cmgf-error);
    box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.12);
}

.gform_wrapper .gform_fields .gfield.gfield_error .gfield_checkbox input[type="checkbox"],
.gform_wrapper .gform_fields .gfield.gfield_error .gfield_radio input[type="radio"],
.gform_wrapper .gform_fields .gfield.gfield_error .ginput_container_consent input[type="checkbox"] {
    border-color: var(--cmgf-error);
}

/* Inline message under the field */
.gform_wrapper .gform_fields .gfield .validation_message,
.gform_wrapper .gform_fields .gfield .gfield_validation_message,
.gform_wrapper .gform_fields .gfield .gfield_description.validation_message,
.gform_wrapper .gform_fields .gfield .instruction.validation_message {
    display: block;
    margin: 8px 0 0;
    padding: 0 0 0 21px;
    border: 0;
    background-color: transparent;
    background-image: var(--cmgf-icon-alert-sm);
    background-repeat: no-repeat;
    background-position: left 2px;
    background-size: 15px 15px;
    color: var(--cmgf-error-text);
    font-size: 0.875rem;
    font-weight: 500;
    line-height: 1.5;
    text-transform: none;
    letter-spacing: normal;
    max-width: 100%;
}

.gform_wrapper .gform_fields .gfield .validation_message a {
    color: var(--cmgf-error-text);
    text-decoration: underline;
}

/* GF 2.7 "live" / inline validation icons use the broken icon font */
.gform_wrapper .gform_fields .gfield .gfield_validation_message .gform-icon,
.gform_wrapper .gform_fields .gfield .validation_message .gform-icon {
    display: none;
}

/* ========================================
   Gravity Forms Icon Font Neutraliser
   GF ships its UI glyphs as an icon FONT. cosmick-modern.css forces
   *{font-family:Poppins!important} site-wide, so those glyphs render as
   random latin characters. Kill the glyph; the SVG backgrounds above supply
   the real iconography.
   !important is unavoidable: GF declares the glyph through `content` on a
   long tail of per-icon classes at varying (and sometimes equal) specificity.
========================================== */
.gform_wrapper .gform-icon::before,
.gform_wrapper .gform-icon::after,
.gform_wrapper [class*="gform-icon--"]::before,
.gform_wrapper [class*="gform-icon--"]::after {
    content: "" !important;
    font-size: 0 !important;
    display: none !important;
}

.gform_wrapper .gform-icon,
.gform_wrapper [class*="gform-icon--"] {
    font-size: 0;
    line-height: 0;
    color: transparent;
}

/* ========================================
   AJAX Confirmation & Spinner
========================================== */
.gform_confirmation_wrapper,
.gform_wrapper .gform_confirmation_wrapper {
    margin: 0;
    padding: 28px 30px 28px 70px;
    border: 2px solid var(--cmgf-success);
    border-left-width: 5px;
    border-radius: var(--cmgf-radius-lg);
    background-color: var(--cmgf-success-bg);
    background-image: var(--cmgf-icon-success);
    background-repeat: no-repeat;
    background-position: 26px 28px;
    background-size: 28px 28px;
    box-shadow: none;
    text-align: left;
}

.gform_confirmation_message,
.gform_wrapper .gform_confirmation_message,
.gform_confirmation_wrapper .gform_confirmation_message {
    display: block;
    font-size: 1.05rem;
    line-height: 1.7;
    font-weight: 500;
    color: var(--cmgf-text);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0;
    padding: 0;
}

.gform_confirmation_message p,
.gform_confirmation_wrapper p {
    /* style.css: p { margin-bottom: 35px } */
    margin: 0 0 14px;
    text-transform: none;
}

.gform_confirmation_message p:last-child,
.gform_confirmation_wrapper p:last-child {
    margin-bottom: 0;
}

.gform_confirmation_message h1,
.gform_confirmation_message h2,
.gform_confirmation_message h3,
.gform_confirmation_message h4 {
    font-size: 1.4rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--cmgf-charcoal);
    text-transform: none;
    letter-spacing: normal;
    opacity: 1;
    margin: 0 0 12px;
    padding: 0;
}

.gform_confirmation_message a {
    color: var(--cmgf-primary);
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* AJAX spinner - GF ships a gif (legacy) or an empty span (orbital) */
.gform_wrapper .gform_ajax_spinner {
    display: inline-block;
    width: 24px;
    height: 24px;
    margin: 0 0 0 14px;
    vertical-align: middle;
    opacity: 0.9;
}

.gform_wrapper .gform-loader,
.gform_wrapper .gform_footer .gform-loader {
    display: inline-block;
    width: 24px;
    height: 24px;
    margin: 0 0 0 14px;
    vertical-align: middle;
    border: 3px solid rgba(255, 103, 91, 0.25);
    border-top-color: var(--cmgf-primary);
    border-radius: 50%;
    background: none;
    animation: cmgf-spin 0.7s linear infinite;
}

@keyframes cmgf-spin {
    to {
        transform: rotate(360deg);
    }
}

/* The whole form dims slightly while an AJAX submit is in flight */
.gform_wrapper.gform_wrapper--submitting form {
    opacity: 0.65;
    pointer-events: none;
    transition: opacity 0.2s ease;
}

/* ========================================
   Honeypot & Hidden Fields
   !important throughout: a visible honeypot both looks broken and defeats
   Gravity Forms' spam protection, and GF/anti-spam add-ons also write inline
   styles here. This must never lose.
========================================== */
.gform_wrapper .gfield_visibility_hidden,
.gform_wrapper .gform_fields .gfield_visibility_hidden,
.gform_wrapper .gform_validation_container,
.gform_wrapper .gform_fields .gform_validation_container,
.gform_wrapper .gfield--type-honeypot,
.gform_wrapper li.gform_validation_container,
.gform_wrapper .gform_hidden,
.gform_wrapper input.gform_hidden,
.gform_wrapper .gfield.gform_hidden,
.gform_wrapper .gfield--type-hidden {
    display: none !important;
    position: absolute !important;
    left: -9999px !important;
    visibility: hidden !important;
    height: 0 !important;
    width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
}

/* ========================================
   jQuery UI / GF Datepicker
   Lives on <body>, outside .gform_wrapper, hence the id scope.
========================================== */
#ui-datepicker-div,
#ui-datepicker-div.gform-theme-datepicker {
    width: 300px;
    padding: 14px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-lg);
    background: var(--cmgf-white);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.14);
    font-size: 0.9rem;
    color: var(--cmgf-text);
    z-index: 100000;
}

#ui-datepicker-div .ui-datepicker-header {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 10px;
    padding: 0 0 10px;
    border: 0;
    border-bottom: 1px solid var(--cmgf-border);
    background: transparent;
}

#ui-datepicker-div .ui-datepicker-title {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 0;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--cmgf-charcoal);
    text-transform: none;
    line-height: 1.3;
}

#ui-datepicker-div .ui-datepicker-title select {
    padding: 6px 10px;
    border: 2px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background: var(--cmgf-white);
    font-size: 0.85rem;
    color: var(--cmgf-charcoal);
    width: auto;
}

#ui-datepicker-div .ui-datepicker-prev,
#ui-datepicker-div .ui-datepicker-next {
    position: static;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    top: auto;
    left: auto;
    right: auto;
    border: 1px solid var(--cmgf-border);
    border-radius: var(--cmgf-radius-sm);
    background-color: var(--cmgf-white);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: 16px 16px;
    cursor: pointer;
    font-size: 0;
    color: transparent;
    overflow: hidden;
    transition: var(--cmgf-transition);
}

#ui-datepicker-div .ui-datepicker-prev {
    background-image: var(--cmgf-icon-prev);
}

#ui-datepicker-div .ui-datepicker-next {
    background-image: var(--cmgf-icon-next);
}

#ui-datepicker-div .ui-datepicker-prev:hover,
#ui-datepicker-div .ui-datepicker-next:hover {
    border-color: var(--cmgf-primary);
    background-color: var(--cmgf-tint);
}

#ui-datepicker-div .ui-datepicker-prev span,
#ui-datepicker-div .ui-datepicker-next span {
    display: none;
}

#ui-datepicker-div table.ui-datepicker-calendar {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 0.85rem;
}

#ui-datepicker-div table.ui-datepicker-calendar th {
    padding: 6px 0;
    border: 0;
    background: transparent;
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--cmgf-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    text-align: center;
}

#ui-datepicker-div table.ui-datepicker-calendar td {
    padding: 2px;
    border: 0;
    background: transparent;
    text-align: center;
}

#ui-datepicker-div table.ui-datepicker-calendar td a,
#ui-datepicker-div table.ui-datepicker-calendar td span {
    display: block;
    padding: 7px 0;
    border: 0;
    border-radius: var(--cmgf-radius-sm);
    background: transparent;
    color: var(--cmgf-text);
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}

#ui-datepicker-div table.ui-datepicker-calendar td a:hover {
    background: var(--cmgf-tint-2);
    color: var(--cmgf-primary);
}

#ui-datepicker-div table.ui-datepicker-calendar td.ui-datepicker-today a {
    background: var(--cmgf-bg-light);
    color: var(--cmgf-charcoal);
    font-weight: 700;
    box-shadow: inset 0 0 0 1px var(--cmgf-border);
}

#ui-datepicker-div table.ui-datepicker-calendar td.ui-datepicker-current-day a,
#ui-datepicker-div table.ui-datepicker-calendar td a.ui-state-active {
    background: var(--cmgf-primary);
    color: var(--cmgf-white);
    font-weight: 700;
    box-shadow: 0 4px 12px rgba(255, 103, 91, 0.3);
}

#ui-datepicker-div table.ui-datepicker-calendar td.ui-datepicker-unselectable span {
    color: #c3c6cc;
}

/* ========================================
   Responsive
========================================== */
@media (max-width: 991px) {
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields {
        column-gap: 18px;
    }

    .gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_radio,
    .gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_radio {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 767px) {
    /* Bigger choice controls for touch - set through the token so every rule
       that sizes from it (including the compatibility shim) follows */
    .gform_wrapper,
    .gform_wrapper.gform-theme,
    .gform_wrapper.gravity-theme {
        --cmgf-control-size: 24px;
    }

    /* Everything stacks */
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields {
        grid-template-columns: 1fr;
        column-gap: 0;
    }

    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-full,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-eleven-twelfths,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-five-sixths,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-three-quarters,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-two-thirds,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-seven-twelfths,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-half,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-five-twelfths,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-third,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-quarter,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-one-sixth,
    .gform_wrapper:not(.gform_legacy_markup_wrapper) .gform_fields > .gfield--width-one-twelfth {
        grid-column: 1 / -1;
    }

    .gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_left_half,
    .gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_right_half,
    .gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_left_third,
    .gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_middle_third,
    .gform_wrapper.gform_legacy_markup_wrapper .gform_fields > li.gf_right_third {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .gform_wrapper .gform_fields .gfield {
        margin-bottom: 22px;
    }

    /* 1rem = 16px keeps iOS from zooming the viewport on focus */
    .gform_wrapper .gform_fields .gfield input[type="text"],
    .gform_wrapper .gform_fields .gfield input[type="email"],
    .gform_wrapper .gform_fields .gfield input[type="tel"],
    .gform_wrapper .gform_fields .gfield input[type="url"],
    .gform_wrapper .gform_fields .gfield input[type="number"],
    .gform_wrapper .gform_fields .gfield input[type="password"],
    .gform_wrapper .gform_fields .gfield textarea,
    .gform_wrapper .gform_fields .gfield select {
        font-size: 1rem;
        padding: 13px 16px;
    }

    .gform_wrapper .gform_fields .gfield select {
        padding-right: 42px;
        background-position: right 14px center;
    }

    /* Choice lists: one per row, 44px tap targets */
    .gform_wrapper .gform_fields .gfield .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield .gfield_radio,
    .gform_wrapper .gform_fields .gfield.gf_list_2col .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield.gf_list_2col .gfield_radio,
    .gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield.gf_list_3col .gfield_radio,
    .gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_checkbox,
    .gform_wrapper .gform_fields .gfield.gf_list_4col .gfield_radio {
        grid-template-columns: 1fr;
        gap: 4px;
    }

    .gform_wrapper .gform_fields .gfield .gchoice,
    .gform_wrapper .gform_fields .gfield .gfield_checkbox > li,
    .gform_wrapper .gform_fields .gfield .gfield_radio > li,
    .gform_wrapper .gform_fields .gfield .ginput_container_consent {
        min-height: 44px;
        padding: 10px;
        gap: 14px;
    }

    .gform_wrapper .gform_fields .gfield .gfield_checkbox label,
    .gform_wrapper .gform_fields .gfield .gfield_radio label,
    .gform_wrapper .gform_fields .gfield .gchoice label,
    .gform_wrapper .gform_fields .gfield .gfield_consent_label {
        font-size: 1rem;
        line-height: 1.5;
        padding-top: 0;
    }

    .gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"],
    .gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"],
    .gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"],
    .gform_wrapper .gform_fields .gfield .gchoice input[type="checkbox"],
    .gform_wrapper .gform_fields .gfield .gchoice input[type="radio"] {
        flex-basis: 24px;
        width: 24px;
        height: 24px;
        min-width: 24px;
        max-width: 24px;
        background-size: 15px 15px;
    }

    /* Composite fields stack */
    .gform_wrapper .gform_fields .gfield .ginput_complex > span,
    .gform_wrapper .gform_fields .gfield .ginput_complex > .ginput_left,
    .gform_wrapper .gform_fields .gfield .ginput_complex > .ginput_right,
    .gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_city,
    .gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_state,
    .gform_wrapper .gform_fields .gfield .ginput_container_address > span.address_zip,
    .gform_wrapper .gform_fields .gfield .ginput_complex > span.name_prefix,
    .gform_wrapper .gform_fields .gfield .ginput_complex > span.name_suffix {
        flex: 1 1 100%;
    }

    .gform_wrapper .gform_fields .gfield .ginput_complex {
        gap: 14px;
    }

    /* Buttons go full width and stack */
    .gform_wrapper .gform_footer,
    .gform_wrapper .gform_page_footer {
        flex-direction: column;
        align-items: stretch;
        margin-top: 24px;
    }

    .gform_wrapper .gform_footer input[type="submit"],
    .gform_wrapper .gform_footer .gform_button,
    .gform_wrapper .gform_page_footer input[type="submit"],
    .gform_wrapper .gform_page_footer .gform_next_button,
    .gform_wrapper .gform_page_footer .gform_previous_button {
        width: 100%;
        padding: 15px 24px;
        font-size: 1.05rem;
        text-align: center;
    }

    .gform_wrapper .gform_page_footer .gform_save_link {
        text-align: center;
        padding: 6px 0;
    }

    .gform_wrapper .gform_ajax_spinner,
    .gform_wrapper .gform-loader {
        margin: 12px auto 0;
        display: block;
    }

    /* Validation panels tighten up */
    .gform_wrapper .gform_validation_errors,
    .gform_wrapper div.validation_error,
    .gform_wrapper .validation_error {
        padding: 16px 16px 16px 48px;
        background-position: 16px 17px;
        font-size: 0.95rem;
    }

    .gform_confirmation_wrapper,
    .gform_wrapper .gform_confirmation_wrapper {
        padding: 22px 20px 22px 20px;
        background-position: 20px 22px;
        background-size: 24px 24px;
        padding-top: 58px;
    }

    /* Multi-page steps wrap compactly */
    .gform_wrapper .gf_page_steps {
        gap: 8px 16px;
    }

    .gform_wrapper .gf_step {
        font-size: 0.8rem;
    }

    .gform_wrapper .gf_step_number {
        flex-basis: 28px;
        width: 28px;
        height: 28px;
        font-size: 0.78rem;
    }

    /* Drop zone shrinks */
    .gform_wrapper .gform_fields .gfield .gform_drop_area {
        padding: 70px 16px 26px;
        background-position: center 22px;
        background-size: 34px 34px;
    }

    /* Time field keeps its row */
    .gform_wrapper .gform_fields .gfield .gfield_time_hour,
    .gform_wrapper .gform_fields .gfield .gfield_time_minute {
        width: 74px;
    }

    /* Datepicker fits narrow screens */
    #ui-datepicker-div,
    #ui-datepicker-div.gform-theme-datepicker {
        width: calc(100vw - 32px);
        max-width: 300px;
    }
}

@media (max-width: 480px) {
    .gform_wrapper .gform_fields .gfield .gform_drop_instructions {
        font-size: 0.95rem;
    }

    .gform_wrapper .gform_fields .gsection_title,
    .gform_wrapper .gform_fields h3.gsection_title {
        font-size: 1.15rem;
    }
}

/* ========================================
   Reduced Motion
========================================== */
@media (prefers-reduced-motion: reduce) {
    .gform_wrapper *,
    .gform_wrapper *::before,
    .gform_wrapper *::after,
    #ui-datepicker-div *,
    .gform_confirmation_wrapper * {
        transition-duration: 0.01ms !important; /* !important: overrides the per-component transitions declared above */
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
    }

    .gform_wrapper .gform_footer input[type="submit"]:hover,
    .gform_wrapper .gform_footer .gform_button:hover,
    .gform_wrapper .gform_page_footer .gform_next_button:hover,
    .gform_wrapper .gform_fields .gfield .gform_button_select_files:hover,
    .gform_wrapper .gform_fields .gfield .add_list_item:hover,
    .gform_wrapper .gform_fields .gfield .delete_list_item:hover {
        transform: none;
    }

    .gform_wrapper .gform-loader {
        animation: none;
        border-top-color: var(--cmgf-primary);
    }
}

/* ========================================
   Print
========================================== */
@media print {
    .gform_wrapper {
        color: #000;
    }

    .gform_wrapper .gform_fields .gfield {
        margin-bottom: 14px;
        page-break-inside: avoid;
        break-inside: avoid;
    }

    .gform_wrapper .gform_fields .gfield .gfield_label,
    .gform_wrapper .gform_fields .gfield .gform-field-label {
        color: #000;
    }

    .gform_wrapper .gform_fields .gfield input[type="text"],
    .gform_wrapper .gform_fields .gfield input[type="email"],
    .gform_wrapper .gform_fields .gfield input[type="tel"],
    .gform_wrapper .gform_fields .gfield input[type="url"],
    .gform_wrapper .gform_fields .gfield textarea,
    .gform_wrapper .gform_fields .gfield select {
        border: 1px solid #999;
        border-radius: 4px;
        background: transparent;
        box-shadow: none;
        color: #000;
    }

    .gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"],
    .gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"],
    .gform_wrapper .gform_fields .gfield .ginput_container_consent input[type="checkbox"] {
        border: 1px solid #333;
        background-color: transparent;
    }

    .gform_wrapper .gform_fields .gfield .gfield_checkbox input[type="checkbox"]:checked,
    .gform_wrapper .gform_fields .gfield .gfield_radio input[type="radio"]:checked {
        background-color: #333;
    }

    .gform_wrapper .gform_footer,
    .gform_wrapper .gform_page_footer,
    .gform_wrapper .gform_ajax_spinner,
    .gform_wrapper .gform-loader,
    .gform_wrapper .gform_fields .gfield .gform_drop_area,
    .gform_wrapper .gform_fields .gfield .add_list_item,
    .gform_wrapper .gform_fields .gfield .delete_list_item,
    #ui-datepicker-div {
        display: none;
    }

    .gform_wrapper .gform_validation_errors,
    .gform_wrapper div.validation_error,
    .gform_confirmation_wrapper {
        border: 1px solid #333;
        background: transparent;
        color: #000;
        padding: 12px 14px;
    }
}
