/**
 * Program Page sidebar contact form (Gravity Forms)
 * Scoped to .y-page-sidebar-form so other forms on the site are unaffected.
 * Mobile first. Breakpoints: 640px, 1024px.
 */

/* Box */
.y-page-sidebar-form {
    background: #e7e9ec;
    border-top: 4px solid #006b6b;
    box-shadow: none;
    border-radius: 6px;
    padding: 20px 18px 24px;
    margin-bottom: 24px;
    box-sizing: border-box;
}

.y-page-sidebar-form .gform_wrapper {
    margin: 0;
    padding: 0;
    max-width: 100%;
}

/* Title and description */
.y-page-sidebar-form .gform_heading {
    margin: 0 0 16px;
    text-align:center;
}

.y-page-sidebar-form .gform_title {
    margin: 0 0 6px;
    font-size: 22px;
    line-height: 1.25;
    font-weight: 700;
    color: #006b6b;
    text-wrap: balance; /* evens out line lengths so no single word wraps alone */
}

.y-page-sidebar-form .gform_description {
    display: block;
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
    color: #333333;
}

/* Field list: always one column in the sidebar */
.y-page-sidebar-form .gform_fields {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.y-page-sidebar-form .gfield {
    grid-column: 1 / -1;
    margin: 0;
    padding: 0;
    min-width: 0;
    border: 0;
}

/* Labels */
.y-page-sidebar-form .gfield_label,
.y-page-sidebar-form legend.gfield_label {
    display: block;
    margin: 0 0 6px;
    padding: 0;
    font-size: 15px;
    line-height: 1.3;
    font-weight: 600;
    color: #1a1a1a;
}

.y-page-sidebar-form .gfield_required {
    margin-left: 3px;
    color: #b3261e;
    font-weight: 400;
}

.y-page-sidebar-form .gfield_required .gfield_required_text {
    font-size: 13px;
}

/* Complex fields (Name, Address): sub-fields stack */
.y-page-sidebar-form .ginput_complex {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
}

.y-page-sidebar-form .ginput_complex > span {
    display: block;
    flex: 0 0 100%;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
    padding: 0;
}

.y-page-sidebar-form .ginput_complex > span input {
    width: 100% !important;
}

.y-page-sidebar-form .ginput_complex label {
    display: block;
    margin: 4px 0 0;
    font-size: 13px;
    color: #555555;
}

/* Inputs */
.y-page-sidebar-form input[type="text"],
.y-page-sidebar-form input[type="email"],
.y-page-sidebar-form input[type="tel"],
.y-page-sidebar-form input[type="url"],
.y-page-sidebar-form input[type="number"],
.y-page-sidebar-form input[type="date"],
.y-page-sidebar-form select,
.y-page-sidebar-form textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 46px!important;
    min-height: 0;
    box-sizing: border-box;
    margin: 0;
    padding: 0 12px!important;
    font-family: inherit;
    font-size: 16px; /* 16px prevents iOS zoom on focus */
    line-height: 44px;
    color: #1a1a1a;
    background: #ffffff;
    border: 1px solid #b8b8b8;
    border-radius: 4px;
    box-shadow: none;
    transition: border-color 0.15s ease;
}

.y-page-sidebar-form textarea {
    height: 140px;
    min-height: 120px;
    padding: 10px 12px;
    line-height: 1.4;
    resize: vertical;
}

.y-page-sidebar-form select {
    appearance: none;
    padding-right: 36px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23006b6b' d='M6 8 0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
}

.y-page-sidebar-form input::placeholder,
.y-page-sidebar-form textarea::placeholder {
    color: #8a8a8a;
    opacity: 1;
}

.y-page-sidebar-form input:focus,
.y-page-sidebar-form select:focus,
.y-page-sidebar-form textarea:focus {
    outline: 2px solid #0060af;
    outline-offset: 0;
    border-color: #0060af;
    box-shadow: none;
}

/* Checkboxes and radios */
.y-page-sidebar-form .gfield_checkbox,
.y-page-sidebar-form .gfield_radio {
    margin: 0;
    padding: 0;
}

.y-page-sidebar-form .gchoice {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 0 8px;
}

.y-page-sidebar-form .gchoice input[type="checkbox"],
.y-page-sidebar-form .gchoice input[type="radio"] {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
    margin: 2px 0 0;
    accent-color: #0060af;
}

.y-page-sidebar-form .gchoice label {
    margin: 0;
    font-size: 15px;
    line-height: 1.4;
    color: #1a1a1a;
}

/* Field descriptions */
.y-page-sidebar-form .gfield_description:not(.validation_message) {
    margin: 6px 0 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #555555;
}

/* Submit */
.y-page-sidebar-form .gform_footer {
    margin: 18px 0 0;
    padding: 0;
}

/*
 * Covers the classic footer button, multi-page footers, and the newer
 * Gravity Forms "Submit" field placed inside the field list.
 * !important is used because Gravity Forms' and the theme's own button
 * styles load with higher specificity and were overriding these rules.
 */
.y-page-sidebar-form .gform_wrapper .gform_footer input[type="submit"],
.y-page-sidebar-form .gform_wrapper .gform_footer button[type="submit"],
.y-page-sidebar-form .gform_wrapper .gform_page_footer input[type="submit"],
.y-page-sidebar-form .gform_wrapper .gfield--type-submit input[type="submit"],
.y-page-sidebar-form .gform_wrapper input.gform_button,
.y-page-sidebar-form .gform_wrapper button.gform_button {
    display: inline-block !important;
    width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 16px 30px !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.02em !important;
    text-transform: none !important;
    text-decoration: none !important;
    color: #ffffff !important;
    background: #0060af !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 999px !important;
    box-shadow: none !important;
    text-shadow: none !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    transition: background-color 0.15s ease;
}

.y-page-sidebar-form .gform_wrapper .gform_footer input[type="submit"]:hover,
.y-page-sidebar-form .gform_wrapper .gform_page_footer input[type="submit"]:hover,
.y-page-sidebar-form .gform_wrapper .gfield--type-submit input[type="submit"]:hover,
.y-page-sidebar-form .gform_wrapper .gform_button:hover {
    color: #ffffff !important;
    background: #004d8c !important;
}

.y-page-sidebar-form .gform_wrapper .gform_footer input[type="submit"]:focus-visible,
.y-page-sidebar-form .gform_wrapper .gfield--type-submit input[type="submit"]:focus-visible,
.y-page-sidebar-form .gform_wrapper .gform_button:focus-visible {
    outline: 2px solid #0060af !important;
    outline-offset: 3px !important;
}

.y-page-sidebar-form .gform_ajax_spinner {
    margin: 10px auto 0;
    display: block;
}

/* Validation */
.y-page-sidebar-form .gform_validation_errors {
    margin: 0 0 16px;
    padding: 12px 14px;
    background: #fdecea;
    border: 1px solid #b3261e;
    border-radius: 4px;
}

.y-page-sidebar-form .gform_validation_errors .gform_submission_error {
    margin: 0;
    font-size: 15px;
    line-height: 1.4;
    font-weight: 600;
    color: #b3261e;
}

.y-page-sidebar-form .gform_validation_errors ol {
    margin: 8px 0 0 18px;
    padding: 0;
    font-size: 14px;
}

.y-page-sidebar-form .gform_validation_errors a {
    color: #b3261e;
}

.y-page-sidebar-form .gfield_error input,
.y-page-sidebar-form .gfield_error select,
.y-page-sidebar-form .gfield_error textarea {
    border-color: #b3261e;
}

.y-page-sidebar-form .validation_message {
    margin: 6px 0 0;
    padding: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #b3261e;
    background: none;
    border: 0;
}

/* Confirmation */
.y-page-sidebar-form .gform_confirmation_message {
    margin: 0;
    padding: 14px 16px;
    font-size: 16px;
    line-height: 1.5;
    color: #004f4f;
    background: #ffffff;
    border-left: 4px solid #006b6b;
    border-radius: 4px;
}

/* Hide honeypot (Gravity Forms anti-spam field) */
.y-page-sidebar-form .gform_validation_container,
.y-page-sidebar-form .gfield--type-honeypot {
    display: none !important;
}

/* 640px and up */
@media (min-width: 640px) {
    .y-page-sidebar-form {
        padding: 24px 22px 28px;
    }
}

/* 1024px and up: sidebar is a narrow column next to the content */
@media (min-width: 1024px) {
    .y-page-sidebar-form {
        padding: 22px 20px 26px;
    }

    .y-page-sidebar-form .gform_title {
        font-size: 20px;
    }
}
