/**
 * Custom Gravity Forms styling
 *
 * This file contains custom styling for Gravity Forms to match the
 * clean, minimalist design with horizontal dividers.
 */

/* Form container */
.gform_wrapper {
    width: 100%;
    border: 1px solid #e6e6e6;
    border-radius: 0.25rem;
    overflow: hidden;
    margin: 0 !important;
}

/* Form fields container */
.gform_wrapper .gform_body {
    width: 100%;
}

/* Field container */
.gform_wrapper .gfield {
    margin: 0 !important;
    padding: 0 !important;
    border-bottom: 1px solid #e6e6e6;
}

.gform_wrapper .gfield:last-child {
    border-bottom: none;
}

/* Field label */
.gform_wrapper .gfield_label {
    display: block !important;
    color: #333 !important;
    font-size: 0.75rem !important;
    font-weight: 400 !important;
    padding: 0.5rem 1rem 0 !important;
    margin: 0 !important;
}

/* Required indicator */
.gform_wrapper .gfield_required {
    color: #D74F33 !important;
    margin-left: 0.125rem !important;
}

/* Input fields */
.gform_wrapper input[type="text"],
.gform_wrapper input[type="email"],
.gform_wrapper input[type="tel"],
.gform_wrapper input[type="date"],
.gform_wrapper select,
.gform_wrapper textarea {
    width: 100% !important;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    height: 2rem !important;
    line-height: 2rem !important;
    font-size: 1rem !important;
    background-color: transparent !important;
    color: #333 !important;
    box-shadow: none !important;
    margin: 0 !important;
}

.gform_wrapper input:focus,
.gform_wrapper select:focus,
.gform_wrapper textarea:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* Placeholder text */
.gform_wrapper input::placeholder {
    color: #999 !important;
    opacity: 1 !important;
}

/* Container for inputs */
.gform_wrapper .ginput_container {
    padding: 0 1rem 0.5rem !important;
    margin: 0 !important;
}

/* Name field (first, middle, last) */
.gform_wrapper .ginput_container_name,
.gform_wrapper.gravity-theme .ginput_container_name {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    width: 100% !important;
}

.gform_wrapper .name_first,
.gform_wrapper .name_middle,
.gform_wrapper .name_last,
.gform_wrapper.gravity-theme .name_first,
.gform_wrapper.gravity-theme .name_middle,
.gform_wrapper.gravity-theme .name_last {
    flex: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.gform_wrapper .name_first,
.gform_wrapper.gravity-theme .name_first {
    width: 40% !important;
    padding-right: 1rem !important;
}

.gform_wrapper .name_middle,
.gform_wrapper.gravity-theme .name_middle {
    width: 20% !important;
    padding-right: 1rem !important;
}

.gform_wrapper .name_last,
.gform_wrapper.gravity-theme .name_last {
    width: 40% !important;
}

/* Select dropdown styling */
.gform_wrapper select {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23333333' d='M6 8.825L1.175 4 2.05 3.125 6 7.075 9.95 3.125 10.825 4z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 0.5rem center !important;
    background-size: 0.75rem !important;
    padding-right: 1.5rem !important;
}

/* Submit button */
.gform_wrapper .gform_footer {
    padding: 1rem !important;
    margin: 0 !important;
    text-align: left !important;
}

.gform_wrapper .gform_button {
    background-color: #28244D !important;
    color: white !important;
    border: none !important;
    border-radius: 0.25rem !important;
    padding: 0.5rem 1.5rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
    cursor: pointer !important;
    margin: 0 !important;
}

.gform_wrapper .gform_button:hover {
    background-color: #1e1b3a !important;
}

/* Validation error messages */
.gform_wrapper .validation_error {
    color: #D74F33 !important;
    margin-bottom: 1rem !important;
}

.gform_wrapper .validation_message {
    color: #D74F33 !important;
    font-size: 0.75rem !important;
    margin-top: 0.25rem !important;
}

/* Fix the grid layout */
.gform_wrapper.gravity-theme .gform_fields {
    grid-row-gap: 0 !important;
    grid-column-gap: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Fix field heights */
.gform_wrapper .gfield {
    min-height: 4rem !important;
}

/* Hide descriptions */
.gform_wrapper .gfield_description {
    display: none !important;
}

/* Fix any Gravity Forms specific styling */
.gform_wrapper.gravity-theme input[type="text"],
.gform_wrapper.gravity-theme input[type="email"],
.gform_wrapper.gravity-theme input[type="tel"],
.gform_wrapper.gravity-theme input[type="date"],
.gform_wrapper.gravity-theme select,
.gform_wrapper.gravity-theme textarea {
    padding: 0 !important;
}

/* Fix the address field */
.gform_wrapper .ginput_complex {
    display: flex !important;
    flex-wrap: wrap !important;
}

.gform_wrapper .ginput_complex span {
    flex: 1 1 100% !important;
    padding: 0 !important;
    margin-bottom: 0.5rem !important;
}

.gform_wrapper .ginput_complex .ginput_full {
    flex: 1 1 100% !important;
}

.gform_wrapper .ginput_complex .ginput_left {
    flex: 1 1 50% !important;
    padding-right: 0.5rem !important;
}

.gform_wrapper .ginput_complex .ginput_right {
    flex: 1 1 50% !important;
    padding-left: 0.5rem !important;
}

/* Fix the date field */
.gform_wrapper .ginput_container_date input {
    width: 100% !important;
}

/* Fix the phone field */
.gform_wrapper .ginput_container_phone input {
    width: 100% !important;
}

/* Fix the email field */
.gform_wrapper .ginput_container_email input {
    width: 100% !important;
}

/* Fix the name field */
.gform_wrapper .ginput_container_name span,
.gform_wrapper.gravity-theme .ginput_container_name span {
    margin-right: 0 !important;
    margin-bottom: 0 !important;
    display: inline-block !important;
    vertical-align: top !important;
}

/* Override Gravity Forms grid layout for name fields */
.gform_wrapper.gravity-theme .ginput_container_name {
    grid-template-columns: 40% 20% 40% !important;
    grid-gap: 0 !important;
}

/* Fix for Gravity Forms name field layout */
.gform_wrapper.gravity-theme .ginput_complex.ginput_container_name {
    display: flex !important;
    flex-wrap: nowrap !important;
}

/* Fix the spacing between fields */
.gform_wrapper.gravity-theme .gfield + .gfield {
    margin-top: 0 !important;
}

/* Fix the form wrapper */
.gform_wrapper.gravity-theme {
    margin: 0 !important;
}

/* Fix for Gravity Forms name field layout in grid mode */
.gform_wrapper.gravity-theme .gform_fields.grid_layout .gfield.gfield--width-full {
    grid-column: 1 / -1 !important;
}

/* Fix for Gravity Forms name field spans */
.gform_wrapper.gravity-theme .ginput_container_name span.name_first,
.gform_wrapper.gravity-theme .ginput_container_name span.name_middle,
.gform_wrapper.gravity-theme .ginput_container_name span.name_last {
    display: inline-block !important;
    margin-bottom: 0 !important;
}

/* Fix for Gravity Forms name field inputs */
.gform_wrapper.gravity-theme .ginput_container_name input {
    margin: 0 !important;
    height: 2rem !important;
    line-height: 2rem !important;
}

/* Fix the form body */
.gform_wrapper.gravity-theme .gform_body {
    margin: 0 !important;
}

/* Fix the form fields */
.gform_wrapper.gravity-theme .gfield {
    padding: 0 !important;
}

/* Fix the form labels */
.gform_wrapper.gravity-theme .gfield_label {
    margin-bottom: 0 !important;
}

/* Fix the form inputs */
.gform_wrapper.gravity-theme .ginput_container {
    margin-top: 0 !important;
}

/* Fix the form footer */
.gform_wrapper.gravity-theme .gform_footer {
    padding: 1rem !important;
    margin: 0 !important;
}

/* Fix the form button */
.gform_wrapper.gravity-theme .gform_button {
    margin: 0 !important;
}

/* Fix the form validation */
.gform_wrapper.gravity-theme .gfield_validation_message {
    padding: 0 1rem !important;
    margin: 0 !important;
    border: none !important;
    background: transparent !important;
}

/* Mobile-specific border radius fixes - EXCLUDE footer form */
@media (max-width: 1023px) {
    /* Remove border radius from form container on mobile - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) {
        border-radius: 0 !important;
        border: none !important;
    }

    /* Fix first field - should have rounded top corners - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) .gfield:first-child {
        border-top-left-radius: 0.5rem !important;
        border-top-right-radius: 0.5rem !important;
        border-bottom-left-radius: 0 !important;
        border-bottom-right-radius: 0 !important;
        border: 1px solid #e6e6e6 !important;
        border-bottom: 1px solid #e6e6e6 !important;
    }

    /* Fix middle fields - should have no rounded corners - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) .gfield:not(:first-child):not(:last-child) {
        border-radius: 0 !important;
        border-left: 1px solid #e6e6e6 !important;
        border-right: 1px solid #e6e6e6 !important;
        border-bottom: 1px solid #e6e6e6 !important;
        border-top: none !important;
    }

    /* Fix last field - should have rounded bottom corners - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) .gfield:last-child {
        border-bottom-left-radius: 0.5rem !important;
        border-bottom-right-radius: 0.5rem !important;
        border-top-left-radius: 0 !important;
        border-top-right-radius: 0 !important;
        border-left: 1px solid #e6e6e6 !important;
        border-right: 1px solid #e6e6e6 !important;
        border-bottom: 1px solid #e6e6e6 !important;
        border-top: none !important;
    }

    /* Special case: if there's only one field, it should have all rounded corners - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) .gfield:first-child:last-child {
        border-radius: 0.5rem !important;
        border: 1px solid #e6e6e6 !important;
    }

    /* Remove form footer border on mobile - make submit button appear outside form - EXCLUDE footer form */
    .gform_wrapper:not(.mora_subscribe_wrapper) .gform_footer {
        border: none !important;
        border-radius: 0 !important;
        margin-top: 1rem !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}
