/**
 * Sky GF Style - Frontend Styles
 *
 * @package Sky_GF_Style
 * @version 1.8.6
 */

/* ==========================================================================
   Base Wrapper Styles
   ========================================================================== */

.sky-gf-form-wrapper {
    position: relative;
    width: 100%;
    box-sizing: border-box;
}

.sky-gf-form-wrapper *,
.sky-gf-form-wrapper *::before,
.sky-gf-form-wrapper *::after {
    box-sizing: border-box;
}

/* ==========================================================================
   Placeholder Styles (Editor)
   ========================================================================== */

.sky-gf-form-placeholder,
.sky-gf-form-preview {
    padding: 40px;
    text-align: center;
    background: #f8f9fa;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    color: #6c757d;
}

.sky-gf-form-placeholder p,
.sky-gf-form-preview p {
    margin: 0;
    font-size: 14px;
}

/* ==========================================================================
   Form Container Reset
   ========================================================================== */

.sky-gf-form-wrapper .gform_wrapper {
    margin: 0;
    padding: 0;
}

.sky-gf-form-wrapper .gform_wrapper.gform_validation_error {
    /* Ensure validation styles don't break layout */
}

/* ==========================================================================
   Hide Required Legend Toggle
   ========================================================================== */

.sky-gf-form-wrapper.sky-gf-hide-required-legend .gform_required_legend,
.sky-gf-form-wrapper.sky-gf-hide-required-legend .gform-required-legend,
.sky-gf-form-wrapper.sky-gf-hide-required-legend .gfield_required_text,
.sky-gf-form-wrapper.sky-gf-hide-required-legend .gform_wrapper .gform_required_legend {
    display: none !important;
}

/* ==========================================================================
   Form Fields Container
   ========================================================================== */

.sky-gf-form-wrapper .gform_fields {
    list-style: none;
    margin: 0;
    padding: 0;
}

.sky-gf-form-wrapper .gfield {
    margin-bottom: 20px;
    padding: 0;
}

.sky-gf-form-wrapper .gfield:last-child {
    margin-bottom: 0;
}

/* Full spacing control reset - set consistent gaps, override GF defaults */
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gform_fields {
    grid-column-gap: 20px !important;
    column-gap: 20px !important;
    grid-row-gap: 0 !important;
    row-gap: 0 !important;
}

.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield {
    margin-top: 0 !important;
    padding: 0 !important;
}

/* Ensure input containers fill their parent grid cell */
.sky-gf-form-wrapper .ginput_container,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield .ginput_container {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.sky-gf-form-wrapper .gform_wrapper .gform_body {
    margin: 0;
    padding: 0;
}

.sky-gf-form-wrapper .gform_wrapper .gform_heading {
    margin-bottom: 0;
}

.sky-gf-form-wrapper .gform_wrapper .gsection {
    padding: 0;
    margin: 0;
    border: none;
}

/* ==========================================================================
   Gravity Forms Theme Override Reset
   Prevents gravity-theme and common theme selectors from overriding our
   custom select, checkbox, and radio styling.
   ========================================================================== */

/* --- Select Reset --- */
.sky-gf-form-wrapper .gform_wrapper select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_select 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='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
}

/* --- Checkbox Reset --- */
.sky-gf-form-wrapper .gform_wrapper input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield--type-consent input[type="checkbox"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    min-width: 0 !important;
    min-height: 0 !important;
}

/* --- Radio Reset --- */
.sky-gf-form-wrapper .gform_wrapper input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
}

/* ==========================================================================
   Input Field Base Styles (excluding select - has its own section)
   ========================================================================== */

.sky-gf-form-wrapper input[type="text"],
.sky-gf-form-wrapper input[type="email"],
.sky-gf-form-wrapper input[type="tel"],
.sky-gf-form-wrapper input[type="number"],
.sky-gf-form-wrapper input[type="password"],
.sky-gf-form-wrapper input[type="url"],
.sky-gf-form-wrapper input[type="date"],
.sky-gf-form-wrapper textarea {
    width: 100% !important;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    outline: none !important;
    -webkit-appearance: none;
}

/* Gravity-theme specificity: force text inputs to fill containers */
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]),
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container textarea {
    width: 100% !important;
    box-sizing: border-box !important;
}

.sky-gf-form-wrapper input[type="text"]:focus,
.sky-gf-form-wrapper input[type="email"]:focus,
.sky-gf-form-wrapper input[type="tel"]:focus,
.sky-gf-form-wrapper input[type="number"]:focus,
.sky-gf-form-wrapper input[type="password"]:focus,
.sky-gf-form-wrapper input[type="url"]:focus,
.sky-gf-form-wrapper input[type="date"]:focus,
.sky-gf-form-wrapper textarea:focus {
    outline: none !important;
    box-shadow: none;
}

.sky-gf-form-wrapper input[type="text"]:focus-visible,
.sky-gf-form-wrapper input[type="email"]:focus-visible,
.sky-gf-form-wrapper input[type="tel"]:focus-visible,
.sky-gf-form-wrapper input[type="number"]:focus-visible,
.sky-gf-form-wrapper input[type="password"]:focus-visible,
.sky-gf-form-wrapper input[type="url"]:focus-visible,
.sky-gf-form-wrapper input[type="date"]:focus-visible,
.sky-gf-form-wrapper textarea:focus-visible {
    outline: none !important;
}

/* ==========================================================================
   Textarea Styles
   ========================================================================== */

.sky-gf-form-wrapper textarea {
    resize: vertical;
    min-height: 100px;
}

/* ==========================================================================
   Select Dropdown Styles
   ========================================================================== */

.sky-gf-form-wrapper select,
.sky-gf-form-wrapper .gform_wrapper select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield select {
    display: block !important;
    width: 100% !important;
    height: 42px;
    cursor: pointer;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-color: #fff;
    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='%23333' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 12px center !important;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    padding-left: 12px;
    padding-right: 36px !important;
    line-height: 40px;
    color: #333;
    /* No font-size here: let the select inherit the SAME sizing as text inputs
       (the All-Fields typography selector includes <select>, else the theme's
       input font-size). Forcing font-size:inherit pulled the field wrapper's
       larger size, making dropdown text bigger than the inputs. */
    font-family: inherit;
    transition: border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.sky-gf-form-wrapper select:focus,
.sky-gf-form-wrapper .gform_wrapper select:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme select:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield select:focus {
    outline: none !important;
    border-color: #007bff;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25);
}

.sky-gf-form-wrapper select:hover,
.sky-gf-form-wrapper .gform_wrapper select:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme select:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield select:hover {
    border-color: #999;
}

/* ==========================================================================
   Radio & Checkbox Styles
   ========================================================================== */

.sky-gf-form-wrapper .gfield_radio,
.sky-gf-form-wrapper .gfield_checkbox,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.sky-gf-form-wrapper .gchoice,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox .gchoice,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio .gchoice {
    display: flex !important;
    align-items: center !important;
    gap: 5px;
    margin-bottom: 8px;
}

.sky-gf-form-wrapper .gchoice:last-child,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice:last-child {
    margin-bottom: 0;
}

/* Ensure choice labels are properly aligned */
.sky-gf-form-wrapper .gchoice label,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice label,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox .gchoice label,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio .gchoice label {
    cursor: pointer;
    margin: 0 !important;
    padding: 0 !important;
    line-height: normal !important;
}

.sky-gf-form-wrapper input[type="radio"],
.sky-gf-form-wrapper input[type="checkbox"] {
    cursor: pointer;
    flex-shrink: 0;
}

/* Custom Checkbox Styling */
.sky-gf-form-wrapper input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox input[type="checkbox"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="checkbox"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 16px !important;
    height: 16px !important;
    border: 1px solid #ccc !important;
    border-radius: 0px !important;
    background-color: #fff !important;
    position: relative !important;
    transition: all 0.2s ease-in-out;
    box-sizing: border-box !important;
    flex-shrink: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Checkbox Checked State */
.sky-gf-form-wrapper input[type="checkbox"]:checked,
.sky-gf-form-wrapper .gform_wrapper input[type="checkbox"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox input[type="checkbox"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="checkbox"]:checked {
    background-color: #007bff !important;
    border-color: #007bff !important;
}

/* Checkbox Checkmark - scales with checkbox size */
.sky-gf-form-wrapper input[type="checkbox"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper input[type="checkbox"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_checkbox input[type="checkbox"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="checkbox"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: 45% !important;
    width: 30% !important;
    height: 55% !important;
    border: solid #fff !important;
    border-width: 0 2px 2px 0 !important;
    transform: translate(-50%, -50%) rotate(45deg) !important;
    display: block !important;
}

/* Checkbox Focus State */
.sky-gf-form-wrapper input[type="checkbox"]:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"]:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25) !important;
}

/* Checkbox Hover State */
.sky-gf-form-wrapper input[type="checkbox"]:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"]:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:hover {
    border-color: #999 !important;
}

.sky-gf-form-wrapper input[type="checkbox"]:checked:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="checkbox"]:checked:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:checked:hover {
    background-color: #0056b3 !important;
    border-color: #0056b3 !important;
}

/* Custom Radio Button Styling */
.sky-gf-form-wrapper input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio input[type="radio"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="radio"] {
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
    border: 1px solid #ccc !important;
    border-radius: 50% !important;
    background-color: #fff !important;
    position: relative !important;
    transition: all 0.2s ease-in-out;
    box-sizing: border-box !important;
    padding: 0 !important;
    margin: 0 !important;
}

/* Radio Button Checked State */
.sky-gf-form-wrapper input[type="radio"]:checked,
.sky-gf-form-wrapper .gform_wrapper input[type="radio"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio input[type="radio"]:checked,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="radio"]:checked {
    background-color: #fff !important;
    border-color: #007bff !important;
}

/* Radio Button Inner Dot */
.sky-gf-form-wrapper input[type="radio"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper input[type="radio"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_radio input[type="radio"]:checked::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gchoice input[type="radio"]:checked::after {
    content: '' !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 10px !important;
    height: 10px !important;
    background-color: #007bff !important;
    border-radius: 50% !important;
    transform: translate(-50%, -50%) !important;
    display: block !important;
}

/* Radio Button Focus State */
.sky-gf-form-wrapper input[type="radio"]:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:focus,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:focus {
    outline: none !important;
    box-shadow: 0 0 0 2px rgba(0, 123, 255, 0.25) !important;
}

/* Radio Button Hover State */
.sky-gf-form-wrapper input[type="radio"]:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:hover {
    border-color: #999 !important;
}

.sky-gf-form-wrapper input[type="radio"]:checked:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:checked:hover,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked:hover {
    border-color: #0056b3 !important;
}

.sky-gf-form-wrapper input[type="radio"]:checked:hover::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme input[type="radio"]:checked:hover::after,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked:hover::after {
    background-color: #0056b3 !important;
}

/* ==========================================================================
   File Upload Styles
   ========================================================================== */

.sky-gf-form-wrapper .ginput_container_fileupload {
    position: relative;
}

.sky-gf-form-wrapper .gform_drop_area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 120px;
    border: 2px dashed #ccc;
    border-radius: 8px;
    background: #fafafa;
    transition: all 0.2s ease-in-out;
}

.sky-gf-form-wrapper .gform_drop_area:hover {
    border-color: #999;
    background: #f5f5f5;
}

.sky-gf-form-wrapper .gform_button_select_files {
    cursor: pointer;
}

/* ==========================================================================
   Submit Button Styles
   ========================================================================== */

.sky-gf-form-wrapper .gform_footer {
    margin-top: 20px;
}

.sky-gf-form-wrapper .gform_button,
.sky-gf-form-wrapper input[type="submit"],
.sky-gf-form-wrapper button[type="submit"] {
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    display: inline-block;
}

/* ==========================================================================
   Validation & Error Styles
   ========================================================================== */

.sky-gf-form-wrapper .gfield_error {
    /* Error field container */
}

.sky-gf-form-wrapper .validation_message {
    margin-top: 5px;
    font-size: 13px;
}

.sky-gf-form-wrapper .validation_error,
.sky-gf-form-wrapper .gform_validation_errors {
    padding: 15px;
    margin-bottom: 20px;
    border-radius: 4px;
}

/* ==========================================================================
   Success/Confirmation Styles
   ========================================================================== */

.sky-gf-form-wrapper .gform_confirmation_message {
    padding: 20px;
    border-radius: 4px;
}

/* ==========================================================================
   Dark Mode Base Styles
   ========================================================================== */

.sky-gf-form-wrapper.sky-gf-dark-mode {
    /* Dark mode transition */
    transition: background-color 0.3s ease, color 0.3s ease;
}

.sky-gf-form-wrapper.sky-gf-dark-mode input,
.sky-gf-form-wrapper.sky-gf-dark-mode textarea,
.sky-gf-form-wrapper.sky-gf-dark-mode select {
    transition: all 0.2s ease-in-out;
}

/* Dark mode select dropdown arrow and colors */
.sky-gf-form-wrapper.sky-gf-dark-mode select,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper select,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme select,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield select {
    background-color: #1f2937 !important;
    border-color: #4b5563 !important;
    color: #f9fafb !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='%23ffffff' d='M6 8L1 3h10z'/%3E%3C/svg%3E") !important;
}

/* Dark mode checkbox styles */
.sky-gf-form-wrapper.sky-gf-dark-mode input[type="checkbox"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme input[type="checkbox"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield input[type="checkbox"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield_checkbox input[type="checkbox"] {
    background-color: #374151 !important;
    border-color: #4b5563 !important;
}

.sky-gf-form-wrapper.sky-gf-dark-mode input[type="checkbox"]:checked,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme input[type="checkbox"]:checked,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield input[type="checkbox"]:checked {
    background-color: #6366f1 !important;
    border-color: #6366f1 !important;
}

/* Dark mode radio styles */
.sky-gf-form-wrapper.sky-gf-dark-mode input[type="radio"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme input[type="radio"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield input[type="radio"],
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield_radio input[type="radio"] {
    background-color: #374151 !important;
    border-color: #4b5563 !important;
}

.sky-gf-form-wrapper.sky-gf-dark-mode input[type="radio"]:checked,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme input[type="radio"]:checked,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked {
    border-color: #6366f1 !important;
}

.sky-gf-form-wrapper.sky-gf-dark-mode input[type="radio"]:checked::after,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme input[type="radio"]:checked::after,
.sky-gf-form-wrapper.sky-gf-dark-mode .gform_wrapper.gravity-theme .gfield input[type="radio"]:checked::after {
    background-color: #6366f1 !important;
}

/* Dark mode choice labels */
.sky-gf-form-wrapper.sky-gf-dark-mode .gchoice label,
.sky-gf-form-wrapper.sky-gf-dark-mode .gfield_radio label,
.sky-gf-form-wrapper.sky-gf-dark-mode .gfield_checkbox label {
    color: #d1d5db;
}

/* ==========================================================================
   Responsive Styles
   ========================================================================== */

@media (max-width: 767px) {
    .sky-gf-form-wrapper .ginput_complex,
    .sky-gf-form-wrapper .ginput_container_address,
    .sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex,
    .sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address {
        display: flex !important;
        flex-direction: column !important;
        gap: 15px !important;
    }

    .sky-gf-form-wrapper .ginput_complex > span,
    .sky-gf-form-wrapper .ginput_container_address > span,
    .sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex > span,
    .sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address > span,
    .sky-gf-form-wrapper .ginput_complex .ginput_left,
    .sky-gf-form-wrapper .ginput_complex .ginput_right,
    .sky-gf-form-wrapper .ginput_container_address .ginput_left,
    .sky-gf-form-wrapper .ginput_container_address .ginput_right {
        flex: 0 0 100% !important;
        width: 100% !important;
        padding: 0 !important;
    }

    .sky-gf-form-wrapper .gform_button,
    .sky-gf-form-wrapper input[type="submit"],
    .sky-gf-form-wrapper button[type="submit"] {
        width: 100%;
    }
}

/* ==========================================================================
   Hidden Fields
   ========================================================================== */

.sky-gf-form-wrapper .gfield_visibility_hidden {
    display: none !important;
}

.sky-gf-form-wrapper input[type="hidden"] {
    display: none !important;
}

/* ==========================================================================
   Section Break Styles
   ========================================================================== */

.sky-gf-form-wrapper .gsection {
    padding: 20px 0;
    border-bottom: 1px solid #eee;
    margin-bottom: 20px;
}

.sky-gf-form-wrapper .gsection_title {
    font-weight: 600;
    margin-bottom: 5px;
}

.sky-gf-form-wrapper .gsection_description {
    font-size: 14px;
    opacity: 0.8;
}

/* ==========================================================================
   Multi-page Form Styles
   ========================================================================== */

.sky-gf-form-wrapper .gform_page_footer {
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin-top: 20px;
}

.sky-gf-form-wrapper .gform_previous_button,
.sky-gf-form-wrapper .gform_next_button {
    cursor: pointer;
}

/* ==========================================================================
   Progress Bar Styles
   ========================================================================== */

.sky-gf-form-wrapper .gf_progressbar_wrapper {
    margin-bottom: 20px;
}

.sky-gf-form-wrapper .gf_progressbar {
    height: 8px;
    background: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
}

.sky-gf-form-wrapper .gf_progressbar_percentage {
    height: 100%;
    background: #007bff;
    transition: width 0.3s ease;
}

/* ==========================================================================
   Accessibility
   ========================================================================== */

/* Focus visible - only for non-input elements like buttons */
.sky-gf-form-wrapper button:focus-visible,
.sky-gf-form-wrapper [type="submit"]:focus-visible {
    outline: 2px solid currentColor;
    outline-offset: 2px;
}

/* Screen reader only */
.sky-gf-form-wrapper .gform_hidden,
.sky-gf-form-wrapper .screen-reader-text {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* ==========================================================================
   Button Hover Animations
   ========================================================================== */

/* Lift Up Effect */
.sky-gf-btn-hover-lift .sky-gf-form-wrapper .gform_button,
.sky-gf-btn-hover-lift .sky-gf-form-wrapper input[type="submit"],
.sky-gf-btn-hover-lift .sky-gf-form-wrapper button[type="submit"] {
    transition: all 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.sky-gf-btn-hover-lift .sky-gf-form-wrapper .gform_button:hover,
.sky-gf-btn-hover-lift .sky-gf-form-wrapper input[type="submit"]:hover,
.sky-gf-btn-hover-lift .sky-gf-form-wrapper button[type="submit"]:hover {
    transform: translateY(-3px);
}

/* Scale Effect */
.sky-gf-btn-hover-scale .sky-gf-form-wrapper .gform_button,
.sky-gf-btn-hover-scale .sky-gf-form-wrapper input[type="submit"],
.sky-gf-btn-hover-scale .sky-gf-form-wrapper button[type="submit"] {
    transition: all 0.2s ease-in-out, transform 0.2s ease-in-out;
}

.sky-gf-btn-hover-scale .sky-gf-form-wrapper .gform_button:hover,
.sky-gf-btn-hover-scale .sky-gf-form-wrapper input[type="submit"]:hover,
.sky-gf-btn-hover-scale .sky-gf-form-wrapper button[type="submit"]:hover {
    transform: scale(1.05);
}

/* Push Down Effect */
.sky-gf-btn-hover-push .sky-gf-form-wrapper .gform_button,
.sky-gf-btn-hover-push .sky-gf-form-wrapper input[type="submit"],
.sky-gf-btn-hover-push .sky-gf-form-wrapper button[type="submit"] {
    transition: all 0.2s ease-in-out, transform 0.1s ease-in-out;
}

.sky-gf-btn-hover-push .sky-gf-form-wrapper .gform_button:hover,
.sky-gf-btn-hover-push .sky-gf-form-wrapper input[type="submit"]:hover,
.sky-gf-btn-hover-push .sky-gf-form-wrapper button[type="submit"]:hover {
    transform: translateY(2px);
}

/* ==========================================================================
   Field Focus State Enhancement (Pure CSS - no JavaScript required)
   ========================================================================== */

.sky-gf-form-wrapper .gfield:focus-within {
    /* Add subtle indicator for focused fields */
}

.sky-gf-form-wrapper .gfield:focus-within .gfield_label {
    /* Optional: highlight label on focus */
}

/* ==========================================================================
   File Upload Drag State (Native browser styling)
   ========================================================================== */

.sky-gf-form-wrapper .gform_drop_area:hover {
    border-color: #6366f1;
    background-color: rgba(99, 102, 241, 0.05);
}

/* ==========================================================================
   Complex Field Layout
   Reset GF's explicit width/margin on sub-fields and use flex + gap instead.
   This prevents extra right-side spacing on same-row fields.
   Target both .ginput_complex and .ginput_container_address since GF 2.5+
   may use either class structure for address fields.
   ========================================================================== */

/* Force address and complex fields to span full grid width in GF 2.5+ gravity-theme grid */
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield--type-address,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield.gfield--input-type-address,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield--type-name,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield.gfield--input-type-name {
    grid-column: 1 / -1 !important;
}

/* Override GF 2.5+ grid layout on address containers - use flex instead */
.sky-gf-form-wrapper .ginput_container_address,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield .ginput_container_address {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    width: 100% !important;
    grid-template-columns: none !important;
}

.sky-gf-form-wrapper .ginput_complex,
.sky-gf-form-wrapper .ginput_container_address,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 20px !important;
    margin: 0 !important;
    padding: 0 !important;
}

/* Remove GF 2.5+ .gform-grid-row wrapper from layout so sub-fields
   become direct flex children of the container */
.sky-gf-form-wrapper .ginput_complex > .gform-grid-row,
.sky-gf-form-wrapper .ginput_container_address > .gform-grid-row,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex > .gform-grid-row,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address > .gform-grid-row {
    display: contents !important;
}

/* Hide any br, hr, or clear elements that GF inserts between sub-fields */
.sky-gf-form-wrapper .ginput_complex > br,
.sky-gf-form-wrapper .ginput_complex > .gf_clear,
.sky-gf-form-wrapper .ginput_complex > .gf_clear_complex,
.sky-gf-form-wrapper .ginput_container_address > br,
.sky-gf-form-wrapper .ginput_container_address > .gf_clear,
.sky-gf-form-wrapper .ginput_container_address > .gf_clear_complex {
    display: none !important;
}

/* Reset all complex field sub-spans - remove GF's width/margin and use flex */
.sky-gf-form-wrapper .ginput_complex > span,
.sky-gf-form-wrapper .ginput_container_address > span,
.sky-gf-form-wrapper .ginput_container_address span[class*="address_"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex > span,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address > span,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address span[class*="address_"] {
    flex: 1 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Named sub-field spans - override GF's explicit width calculations */
.sky-gf-form-wrapper .ginput_complex .name_first,
.sky-gf-form-wrapper .ginput_complex .name_last,
.sky-gf-form-wrapper .ginput_complex .name_middle,
.sky-gf-form-wrapper .ginput_complex .name_prefix,
.sky-gf-form-wrapper .ginput_complex .name_suffix,
.sky-gf-form-wrapper .ginput_complex .ginput_left,
.sky-gf-form-wrapper .ginput_complex .ginput_right,
.sky-gf-form-wrapper .ginput_complex .ginput_full,
.sky-gf-form-wrapper .ginput_complex .address_line_1,
.sky-gf-form-wrapper .ginput_complex .address_line_2,
.sky-gf-form-wrapper .ginput_complex .address_city,
.sky-gf-form-wrapper .ginput_complex .address_state,
.sky-gf-form-wrapper .ginput_complex .address_zip,
.sky-gf-form-wrapper .ginput_complex .address_country,
.sky-gf-form-wrapper .ginput_container_address .ginput_left,
.sky-gf-form-wrapper .ginput_container_address .ginput_right,
.sky-gf-form-wrapper .ginput_container_address .ginput_full,
.sky-gf-form-wrapper .ginput_container_address .address_line_1,
.sky-gf-form-wrapper .ginput_container_address .address_line_2,
.sky-gf-form-wrapper .ginput_container_address .address_city,
.sky-gf-form-wrapper .ginput_container_address .address_state,
.sky-gf-form-wrapper .ginput_container_address .address_zip,
.sky-gf-form-wrapper .ginput_container_address .address_country,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .name_first,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .name_last,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .ginput_left,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .ginput_right,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .ginput_left,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .ginput_right,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_city,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_state,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_zip,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_country {
    flex: 1 !important;
    width: auto !important;
    max-width: none !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Override GF 2.5+ grid column sizing classes on address sub-fields */
.sky-gf-form-wrapper .ginput_container_address .gform-grid-col,
.sky-gf-form-wrapper .ginput_complex .gform-grid-col,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .gform-grid-col,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .gform-grid-col {
    flex: 1 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    grid-column: unset !important;
}

/* Full-width sub-fields should span the entire row */
.sky-gf-form-wrapper .ginput_complex .ginput_full,
.sky-gf-form-wrapper .ginput_complex .address_line_1,
.sky-gf-form-wrapper .ginput_complex .address_line_2,
.sky-gf-form-wrapper .ginput_container_address .ginput_full,
.sky-gf-form-wrapper .ginput_container_address .address_line_1,
.sky-gf-form-wrapper .ginput_container_address .address_line_2,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .ginput_full,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .ginput_full,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_line_1,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_line_2,
.sky-gf-form-wrapper .ginput_container_address .gform-grid-col--size-100,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .gform-grid-col--size-100 {
    flex: 0 0 100% !important;
    width: 100% !important;
}

/* Hide address sub-fields that GF has disabled */
.sky-gf-form-wrapper .ginput_container_address > span[style*="display:none"],
.sky-gf-form-wrapper .ginput_container_address > span[style*="display: none"],
.sky-gf-form-wrapper .ginput_complex > span[style*="display:none"],
.sky-gf-form-wrapper .ginput_complex > span[style*="display: none"],
.sky-gf-form-wrapper .ginput_container_address span[class*="address_"][style*="display:none"],
.sky-gf-form-wrapper .ginput_container_address span[class*="address_"][style*="display: none"] {
    display: none !important;
    flex: 0 0 0px !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Nuclear fallback: address_city and address_zip use calc for exact 50/50 split.
   This guarantees alignment even if hidden sub-fields exist in the DOM.
   Uses calc(50% - 10px) = half container minus half of 20px gap */
.sky-gf-form-wrapper .ginput_container_address .address_city,
.sky-gf-form-wrapper .ginput_container_address .address_zip,
.sky-gf-form-wrapper .ginput_complex .address_city,
.sky-gf-form-wrapper .ginput_complex .address_zip,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_city,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_address .address_zip,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .address_city,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_complex .address_zip {
    flex: 0 0 calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
    max-width: calc(50% - 10px) !important;
}

/* ==========================================================================
   Loading State (Gravity Forms native spinner)
   ========================================================================== */

.sky-gf-form-wrapper .gform_ajax_spinner {
    display: inline-block;
    margin-left: 10px;
    vertical-align: middle;
}

/* ==========================================================================
   Consent Field Styling
   ========================================================================== */

.sky-gf-form-wrapper .gfield--type-consent .ginput_container {
    display: flex;
    align-items: flex-start;
    gap: 10px;
}

.sky-gf-form-wrapper .gfield--type-consent input[type="checkbox"] {
    margin-top: 4px !important;
}

/* ==========================================================================
   Date Picker Enhancement - Force full width
   ========================================================================== */

/* Force date field to span full grid width in GF 2.5+ gravity-theme grid */
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield--type-date,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield.gfield--input-type-date {
    grid-column: 1 / -1 !important;
}

/* Single date text input - force 100% width */
.sky-gf-form-wrapper .ginput_container_date input,
.sky-gf-form-wrapper .ginput_container_date input[type="text"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date input,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date input[type="text"],
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield .ginput_container_date input {
    width: 100% !important;
}

/* Date dropdown containers - flex layout for equal distribution */
.sky-gf-form-wrapper .ginput_container_date .gfield_date_dropdown_day,
.sky-gf-form-wrapper .ginput_container_date .gfield_date_dropdown_month,
.sky-gf-form-wrapper .ginput_container_date .gfield_date_dropdown_year,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date .gfield_date_dropdown_day,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date .gfield_date_dropdown_month,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date .gfield_date_dropdown_year {
    display: inline-block;
    flex: 1 !important;
    width: auto !important;
    min-width: 0 !important;
    margin-right: 5px;
}

.sky-gf-form-wrapper .ginput_container_date .gfield_date_dropdown_year,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date .gfield_date_dropdown_year {
    margin-right: 0;
}

/* Date picker dropdowns - full width within their container */
.sky-gf-form-wrapper .gfield_date_dropdown_day select,
.sky-gf-form-wrapper .gfield_date_dropdown_month select,
.sky-gf-form-wrapper .gfield_date_dropdown_year select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_date_dropdown_day select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_date_dropdown_month select,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .gfield_date_dropdown_year select {
    width: 100% !important;
    min-width: 0 !important;
}

/* Date field container - use flex for dropdown layout */
.sky-gf-form-wrapper .ginput_container_date,
.sky-gf-form-wrapper .gform_wrapper.gravity-theme .ginput_container_date {
    display: flex !important;
    width: 100% !important;
}

/* ==========================================================================
   Time Field Enhancement
   ========================================================================== */

.sky-gf-form-wrapper .gfield_time_hour,
.sky-gf-form-wrapper .gfield_time_minute,
.sky-gf-form-wrapper .gfield_time_ampm {
    display: inline-block;
    width: auto;
    min-width: 60px;
}

/* Time AM/PM dropdown */
.sky-gf-form-wrapper .gfield_time_ampm select {
    width: auto !important;
    min-width: 60px;
}

/* ==========================================================================
   Print Styles
   ========================================================================== */

@media print {
    .sky-gf-form-wrapper {
        background: none !important;
        box-shadow: none !important;
    }

    .sky-gf-form-wrapper .gform_button,
    .sky-gf-form-wrapper input[type="submit"],
    .sky-gf-form-wrapper button[type="submit"] {
        display: none !important;
    }
}

/* ==========================================================================
   Field Icons - JS wrapper + self-contained SVG mask icons
   JS creates .sky-gf-icon-wrap around each input for consistent positioning.
   Icons are inline SVG data URIs applied via mask-image and colored with
   background-color — no Font Awesome / external font dependency.
   SVG paths: Font Awesome Free 6.5.1 solid (user f007, envelope f0e0,
   phone f095), CC BY 4.0 — https://fontawesome.com/license/free
   ========================================================================== */

.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-wrap::before {
    content: "" !important;
    position: absolute !important;
    left: 12px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 14px !important;
    height: 14px !important;
    background-color: #6b7280 !important;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center;
    mask-position: center;
    -webkit-mask-size: contain;
    mask-size: contain;
    pointer-events: none !important;
    z-index: 10 !important;
}

/* Name field icon - User */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name .sky-gf-icon-wrap::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath d='M224 256A128 128 0 1 0 224 0a128 128 0 1 0 0 256zm-45.7 48C79.8 304 0 383.8 0 482.3C0 498.7 13.3 512 29.7 512l388.6 0c16.4 0 29.7-13.3 29.7-29.7C448 383.8 368.2 304 269.7 304l-91.4 0z'/%3E%3C/svg%3E");
}

/* Email field icon - Envelope */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email .sky-gf-icon-wrap::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48L48 64zM0 176L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-208L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z'/%3E%3C/svg%3E");
}

/* Phone field icon - Phone handset */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone .sky-gf-icon-wrap::before {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E%3Cpath d='M164.9 24.6c-7.7-18.6-28-28.5-47.4-23.2l-88 24C12.1 30.2 0 46 0 64C0 311.4 200.6 512 448 512c18 0 33.8-12.1 38.6-29.5l24-88c5.3-19.4-4.6-39.7-23.2-47.4l-96-40c-16.3-6.8-35.2-2.1-46.3 11.6L304.7 368C234.3 334.7 177.3 277.7 144 207.3L193.3 167c13.7-11.2 18.4-30 11.6-46.3l-40-96z'/%3E%3C/svg%3E");
}

/* Dark mode icon colors */
.sky-gf-form-wrapper.sky-gf-dark-mode.sky-gf-icons-enabled .sky-gf-icon-wrap::before {
    background-color: #9ca3af !important;
}

/* ==========================================================================
   Input Padding - BULLETPROOF selectors for all input types
   These selectors have maximum specificity to prevent theme/plugin overrides
   ========================================================================== */

/* Base input padding for icon fields - targets all input types */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name input,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input {
    padding-left: 40px !important;
}

/* Explicit input type selectors for maximum specificity */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input[type="email"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input[type="tel"] {
    padding-left: 40px !important;
}

/* Ultra-high specificity selectors - prevents ANY theme override */
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-name input,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-email input,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-phone input,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-name input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-email input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-email input[type="email"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-phone input[type="text"],
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-container-phone input[type="tel"] {
    padding-left: 40px !important;
}

/* Target Gravity Forms specific input classes */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name input.large,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name input.medium,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-name input.small,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input.large,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input.medium,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-email input.small,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input.large,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input.medium,
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-container-phone input.small {
    padding-left: 40px !important;
}

/* ==========================================================================
   JS Icon Wrapper System - wrapper provides positioning context for CSS icons
   ========================================================================== */

/* Icon wrapper - positioned relative for ::before icon placement */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-icon-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
}

/* High specificity wrapper selectors */
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-wrap,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .ginput_container .sky-gf-icon-wrap {
    position: relative !important;
    display: block !important;
    width: 100% !important;
}

/* Hide JS-created icon element - we use CSS ::before instead for reliability */
.sky-gf-form-wrapper.sky-gf-icons-enabled .sky-gf-field-icon {
    display: none !important;
}

/* Input padding for icon fields - BULLETPROOF */
.sky-gf-form-wrapper.sky-gf-icons-enabled input.sky-gf-has-icon {
    padding-left: 40px !important;
}

/* High specificity input padding selectors */
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield input.sky-gf-has-icon,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .sky-gf-icon-wrap input.sky-gf-has-icon,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .ginput_container input.sky-gf-has-icon,
.sky-gf-form-wrapper.sky-gf-icons-enabled .gfield .ginput_container .sky-gf-icon-wrap input.sky-gf-has-icon {
    padding-left: 40px !important;
}

/* Target specific input types with icon class */
.sky-gf-form-wrapper.sky-gf-icons-enabled input[type="text"].sky-gf-has-icon,
.sky-gf-form-wrapper.sky-gf-icons-enabled input[type="email"].sky-gf-has-icon,
.sky-gf-form-wrapper.sky-gf-icons-enabled input[type="tel"].sky-gf-has-icon {
    padding-left: 40px !important;
}

/* ==========================================================================
   Arrow Button - two-tone submit button with arrow square
   Enabled via the widget's "Arrow Button Style" toggle. The widget wraps the
   GF submit button in .sky-gfs-arrow-wrap and appends .sky-gfs-arrow-icon
   SERVER-SIDE via the gform_submit_button filter (input elements cannot hold
   children/pseudo-elements). On hover the bar and square swap colours and
   the arrow rotates from ↗ to →.
   Colours are driven by widget controls via CSS variables.
   ========================================================================== */

.sky-gf-form-wrapper.sky-gfs-arrow-button {
    --sky-gfs-btn-primary: #e0913c;
    --sky-gfs-btn-secondary: #0a0a0a;
    --sky-gfs-btn-text: #ffffff;
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap {
    position: relative;
    display: inline-block;
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap input[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap button[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap .gform_button {
    background-color: var(--sky-gfs-btn-primary) !important;
    background-image: none !important;
    color: var(--sky-gfs-btn-text) !important;
    border: none !important;
    border-radius: 0 !important;
    font-weight: 600 !important;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    padding: 24px 110px 24px 44px !important;
    cursor: pointer;
    transition: background-color 0.25s ease;
    box-shadow: none !important;
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-icon {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    width: 52px;
    height: 52px;
    max-height: calc(100% - 14px);
    background-color: var(--sky-gfs-btn-secondary);
    color: var(--sky-gfs-btn-text);
    display: flex;
    align-items: center;
    justify-content: center;
    pointer-events: none;
    transition: background-color 0.25s ease;
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-icon svg {
    width: 20px;
    height: 20px;
    transition: transform 0.25s ease;
}

/* Hover: bar and square swap colours, arrow rotates ↗ → */
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:hover input[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:hover button[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:hover .gform_button,
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:focus-within input[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:focus-within button[type="submit"],
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:focus-within .gform_button {
    background-color: var(--sky-gfs-btn-secondary) !important;
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:hover .sky-gfs-arrow-icon,
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:focus-within .sky-gfs-arrow-icon {
    background-color: var(--sky-gfs-btn-primary);
}

.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:hover .sky-gfs-arrow-icon svg,
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap:focus-within .sky-gfs-arrow-icon svg {
    transform: rotate(45deg);
}

/* Presets defer to the arrow button when both are active */
.sky-gf-form-wrapper[class*="sky-gfs-preset-"].sky-gfs-arrow-button .sky-gfs-arrow-wrap .gform_button,
.sky-gf-form-wrapper[class*="sky-gfs-preset-"].sky-gfs-arrow-button .sky-gfs-arrow-wrap input[type="submit"],
.sky-gf-form-wrapper[class*="sky-gfs-preset-"].sky-gfs-arrow-button .sky-gfs-arrow-wrap button[type="submit"] {
    border-radius: 0 !important;
}

/* On submit, Gravity Forms injects its AJAX spinner right after the submit
   button — i.e. inside .sky-gfs-arrow-wrap. The wrap is inline-block, so an
   in-flow inline spinner widens it and pushes the absolutely-positioned arrow
   square off the button (it detaches to the right). Take the spinner out of
   flow and pin it inside the bar's right padding, just left of the square, so
   the wrap width always equals the button. */
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap .gform_ajax_spinner,
.sky-gf-form-wrapper.sky-gfs-arrow-button .sky-gfs-arrow-wrap .gform-loader {
    position: absolute;
    right: 72px;
    top: 50%;
    transform: translateY(-50%);
    margin: 0 !important;
}
