.supernova, .jotform-form, .form-all {
    background-color: transparent !important;
    font-family: Open Sans, sans-serif !important;
}


form.jotform-form {
    padding: 0px 0px 60px 0px;
}


.error-navigation-container {
    position: absolute;
}

body 
 {
    color: #313131;
    background: none !important;
    font-family: Open Sans, sans-serif !important;
    
}

body p
 {
    
    font-family: Open Sans, sans-serif !important;
}


body a {
    text-decoration: underline;
}


.red-form-question {
    border: 1px solid red;
    padding: 20px;
    background: rgba(255, 0, 0, 0.1);
    margin-top: 40px;
}

.red-form-question > h3.form-header {
    margin-top: 0 !important;
    color: #313131;
}

.show-hide, .message {
   display: none; 
}

.form-label, .form-header, .custom-form .quote {
    font-family: 'Montserrat', sans-serif  !important;
}


/* ==========================================================================
   HEADINGS
   ========================================================================== */
.custom-form a {
    text-decoration : underline;
}

.custom-form h2.form-header {
    color : #2c5697 !important;
    font-size : 1.5rem;
    font-weight : 600;
    line-height : 2rem;
    margin : 1rem 0;
    box-sizing : border-box;
    display : table;
    max-width : 100%;
    padding : 0;
    white-space : normal;
    margin-top : 0px;
}


.header-default h2 + .form-subHeader {
    color: #313131;
    line-height: 1.5rem;
    font-size: 1rem !important;    
}

/* ==========================================================================
   QUOTE
   ========================================================================== */
   

.custom-form .quote {
    position : relative;
    background-color : #f9f9f9;
    color : #2c5697;
    font-size : 18px;
    font-weight : 600;
    line-height : 24px;
    margin : 1rem 0;
    padding : .875rem 1.875rem;
}


.custom-form .quote:before {
    content : "";
    position : absolute;
    top : 0;
    bottom : 0;
    left : 0;
    width : 5px;
    background-color : #bad80a;
}

/* ==========================================================================
   LABELS
   ========================================================================== */
.custom-form .form-label {
    display : block;
    font-size : .91rem;
    font-weight : 600;
    line-height : 1.25rem;
    margin-bottom : .5rem;
    color : #313131;
}

.custom-form .form-label .form-required {
    color : #d9312d;
    text-decoration : underline dotted;
    border-bottom : none;
    -webkit-text-decoration : underline dotted;
}

/* Sub-labels */
.custom-form .form-sub-label-container {
    display : flex;
    flex-direction : column-reverse;
}

.custom-form .form-sub-label {
    margin : 0 0 .75rem 2px;
    font-size : .9rem !important;
    font-weight : 400 !important;
    line-height : 1.1rem !important;
    color : #313131;
}

/* ==========================================================================
   INPUTS
   ========================================================================== */
.custom-form .form-dropdown,
.custom-form .form-textbox,
.custom-form .form-textarea,
.custom-form input[type="text"],
.custom-form input[type="email"],
.custom-form input[type="tel"],
.custom-form textarea,
.custom-form select {
    border : 1px solid #d1d1d1;
    border-radius : .3125rem;
    color : #313131;
    font-size : 1rem;
    font-weight : 400;
    line-height : 1.5rem;
    margin-bottom : 0;
    max-width : 33.125rem;
    padding : .75rem 1rem;
    width : 100%;
    box-shadow : none;
    outline : none;
}

.custom-form .form-dropdown,
.custom-form .form-textbox,
.custom-form input[type="text"],
.custom-form input[type="email"],
.custom-form input[type="tel"],
.custom-form select {
    height : unset !important;
}

/* General input text */
.custom-form form :is(input, textarea, select) {
    color : #313131;
}

/* Required/invalid */
.custom-form .form-dropdown:required:invalid {
    color : #313131;
    font-weight : 400;
}

/* Global spacing you set later (kept as final authority) */
.custom-form input,
.custom-form select,
.custom-form textarea,
.custom-form .jfUpload-wrapper {
    margin-top: 10px !important;
}

/* Keep flat/locked states */
.custom-form .form-dropdown:hover,
.custom-form .form-textbox:hover,
.custom-form .form-textarea:hover,
.custom-form .form-dropdown:focus,
.custom-form .form-textbox:focus,
.custom-form .form-textarea:focus,
.custom-form .form-dropdown:active,
.custom-form .form-textbox:active,
.custom-form .form-textarea:active,
.custom-form input:hover,
.custom-form input:focus,
.custom-form input:active,
.custom-form textarea:hover,
.custom-form textarea:focus,
.custom-form textarea:active,
.custom-form select:hover,
.custom-form select:focus,
.custom-form select:active,
.custom-form .signature-pad-passive:hover,
.custom-form .signature-pad-passive:focus,
.custom-form .signature-wrapper:hover,
.custom-form .signature-wrapper:focus {
    border-color : #d1d1d1 !important;
    border-width : 1px;
    box-shadow : none !important;
    outline : none !important;
    background-color : transparent !important;
    cursor : text;
}

/* ==========================================================================
   ERROR STATES
   ========================================================================== */
.custom-form .form-line-error {
    background-color : unset;
}

/* (kept exactly as you had, including the newline/descendant structure) */
.custom-form .form-sub-label
.custom-form .form-line-error input:not(#coupon-input),
.custom-form .form-line-error textarea,
.custom-form .form-line-error .form-validation-error {
    border : 2px solid #d9312d;
    color : #d9312d;
    box-shadow : none;
}

.custom-form .form-line-error .form-validation-error:hover {
    border-color : #d9312d;
    box-shadow : none;
}

.custom-form .form-error-message {
    color : #d9312d;
    background-color : #fff;
    display : block;
    font-size : .8rem;
    font-weight : 600;
    line-height : .875rem;
    background-image : unset;
}

.custom-form .form-line-error .form-error-message,
.custom-form .form-line-active {
    background-color : unset;
    clear : unset;
    float : unset;
}

/* Error navigation visuals */
.custom-form .error-navigation-inner {
    max-width : 100%;
    padding : 20px;
}

.custom-form .error-navigation-message strong {
    background-color : unset;
    color : #fff;
    font-size : unset;
    font-weight : unset;
    padding : unset;
    border-radius : unset;
}

/* ==========================================================================
   RADIO / CHECKBOX
   ========================================================================== */
.custom-form .form-checkbox + label:before,
.custom-form .form-checkbox + span:before,
.custom-form .form-radio + label:before,
.custom-form .form-radio + span:before {
    content : "";
    display : block;
    position : absolute;
    top : .1875rem;
    left : 0;
    width : 1.125rem;
    height : 1.125rem;
    margin-right : 1rem;
    flex-shrink : 0;
    background-color : #f9f9f9;
    border : .0625rem solid #d1d1d1;
    transition : none;
}

.custom-form .form-radio + label:after,
.custom-form .form-radio + span:after {
    content : "";
    position : absolute;
    top : .5rem;
    left : .3125rem;
    width : .5rem;
    height : .5rem;
    border-radius : 50%;
    background-color : #2c5697;
    display : none;
}

.custom-form .form-radio:checked + label:after,
.custom-form .form-radio:checked + span:after {
    display : block;
}

/* Label styling */
.custom-form .form-radio-item label,
.custom-form .form-checkbox-item label,
.custom-form .form-radio + label,
.custom-form .form-checkbox + label {
    display : block;
    position : relative;
    padding-left : 1.875rem;
    margin-left : .625rem;
    font-size : 1rem;
    font-weight : 400;
    line-height : 1.5rem;
    color : #313131;
    cursor : pointer;
    -webkit-user-select : none;
    -moz-user-select : none;
    user-select : none;
    align-items : center;
}

/* You set these later unscoped; kept as-is but consolidated */
.custom-form .form-radio-item .form-radio + label,
.custom-form .form-radio-item .form-radio + span,
.custom-form .form-checkbox-item .form-checkbox + label,
.custom-form .form-checkbox-item .form-checkbox + span {
    margin-top: 10px !important;
    margin-bottom: 0 !important;
}

/* Final effective spacing for items (you later override to 0) */
.custom-form .form-radio-item,
.custom-form .form-checkbox-item {
    margin-bottom : 0 !important;
}

/* No hover effect on boxes */
.custom-form .form-checkbox:hover + label:before,
.custom-form .form-checkbox:hover + span:before,
.custom-form .form-radio:hover + label:before,
.custom-form .form-radio:hover + span:before {
    border-color : #d1d1d1;
    box-shadow : none;
}

/* ==========================================================================
   STRUCTURE / LAYOUT
   ========================================================================== */
.custom-form .form-all {
    border-radius : 0;
    box-shadow : unset;
    background-color : #fff;
    border : 0;
    display : flex;
    /* flex-direction : column-reverse; */
    margin : 0 auto;
}

.custom-form ul.form-section {
    padding : 0;
}

@media screen and (max-width:480px){
    .custom-form ul.form-section {
        margin : 0;
        padding : 0;
    }
}

.custom-form .form-header-group {
    border-bottom : 0;
    padding : 0 0 14px 0;
    margin : 0;
}

/* final effective padding for .form-line (you overrode earlier 12px) */
.custom-form .form-line {
    padding: 0 0 30px 0;
    margin : 0 0;
}

.custom-form li[data-type=control_head] {
    padding: 24px 0 0 0;
}

/* Section 70 panel */
.custom-form #section_70 {
    background-color : rgba(128,128,128,.1);
    border : 1px solid rgb(128,128,128);
    padding : 20px;
}

.custom-form #section_70 select {
    background-color : #fff;
}

/* Links in text controls */
.custom-form li[data-type=control_text] div [data-component=text] a {
    text-decoration : underline;
    color : #2c5697;
}

.custom-form legend {
    text-align : left !important;
    font-weight : 400 !important;
    margin-top : 20px;
    margin-bottom : 10px;
    width : 100%;
}

.custom-form .a11y_requirement_desc_line {
    margin : 0;
}

/* Top spacing reset for first two rows */
.custom-form .page-section>li:first-child:not(.form-line-column):not([data-type=control_head]):not([data-type=control_payment]):not([data-type=control_text]):not([data-type=control_button]):not([data-type=control_collapse]),
.custom-form .page-section>li:nth-child(2):not(.form-line-column):not([data-type=control_head]):not([data-type=control_payment]):not([data-type=control_text]):not([data-type=control_button]):not([data-type=control_collapse]) {
    margin-top : 0;
}


/* Ensure error nav sits above 
.custom-form .form-all .error-navigation-container {
    position : relative !important;
    z-index : 1;
    background-color : #b00;
    margin : 20px 0;
}
*/


/* hide error nav that sits above */
.custom-form .form-all .error-navigation-container {
    position: absolute;
    z-index : 1;
    background-color : #b00;
    margin : 20px 0;
    display:none;
}

/* ==========================================================================
   BUTTONS
   ========================================================================== */
.custom-form .formFooter-button,
.custom-form .form-all button.preview-submission-button.checkedSubmit,
.custom-form .submit-button {
    border-color : #2c5697 !important;
    background-color : #2c5697 !important;
    border : .125rem solid #2c5697 !important;
    border-radius : 1.25rem;
    color : #fff;
    cursor : pointer;
    display : inline-block;
    font-size : .875rem;
    font-weight : 600;
    line-height : 1.25rem;
    padding : .5625rem 1.4375rem;
    text-decoration : none;
    transition : all .25s ease;
    min-width : unset;
}

.custom-form .formFooter-button:hover,
.custom-form .form-all button.preview-submission-button.checkedSubmit:hover,
.custom-form .submit-button:hover {
    background-color : #fff !important;
    border-color : #bad80a !important;
    color : #2c5697 !important;
}

.custom-form .formFooter-button:focus,
.custom-form .form-all button.preview-submission-button.checkedSubmit:focus,
.custom-form .submit-button:focus {
    border-color : #bad80a !important;
    box-shadow : unset !important;
}

/* Button containers */
.custom-form .form-buttons-wrapper,
.custom-form .form-submit-clear-wrapper {
    display : flex;
    flex-wrap : wrap;
    justify-content : unset;
    position : relative;
    margin : unset;
    padding : unset;
    border-top : unset;
    row-gap : unset;
    padding-top : 20px;
}

.custom-form .jf-form-buttons:not(.form-pagebreak-back) {
    margin-left : unset;
}

/* ==========================================================================
   CONSOLIDATED — focus/hover + error handling (keeps coupon excluded)
   ========================================================================== */

/* Normal fields: focus glow */
.custom-form .form-line:not(.form-line-error) :is(textarea, select):focus,
.custom-form .form-line:not(.form-line-error) input:not(#coupon-input):focus {
    border-width : 1px !important;
    border-color : #d1d1d1 !important;
    box-shadow : 0 0 4px #e7e7e7 !important;
    outline : 0 !important;
}

/* Normal fields: hover stays flat */
.custom-form .form-line:not(.form-line-error) :is(textarea, select):hover,
.custom-form .form-line:not(.form-line-error) input:not(#coupon-input):hover {
    border-width : 1px !important;
    border-color : #d1d1d1 !important;
    box-shadow : none !important;
    outline : 0 !important;
}

/* Normal fields: keep focus glow even while hovering */
.custom-form .form-line:not(.form-line-error) :is(textarea, select):hover:focus,
.custom-form .form-line:not(.form-line-error) input:not(#coupon-input):hover:focus {
    border-width : 1px !important;
    border-color : #d1d1d1 !important;
    box-shadow : 0 0 4px #e7e7e7 !important;
    outline : 0 !important;
}

/* Error fields — always 2px red, no glow */
.custom-form .form-line-error :is(textarea, select, .form-validation-error) {
    border : 2px solid #d9312d !important;
    box-shadow : none !important;
}

.custom-form .form-line-error input:not(#coupon-input) {
    border : 2px solid #d9312d !important;
    box-shadow : none !important;
}

.custom-form .form-line-error :is(textarea, select, .form-validation-error):is(:hover, :focus),
.custom-form .form-line-error input:not(#coupon-input):is(:hover, :focus) {
    border : 2px solid #d9312d !important;
    box-shadow : none !important;
    outline : none !important;
}

/* ==========================================================================
   ERROR NAV BUTTON
   ========================================================================== */
.custom-form .error-navigation-container button {
    height : 40px;
    padding : .5625rem 1.4375rem;
    border : 0;
    background-color : #fff;
    color : #2c3345;
    font-size : .875rem;
    font-weight : 600;
    line-height : 1.25rem;
    text-decoration : none;
    transition : all .25s ease;
    min-width : unset;
    border : .125rem solid #fff !important;
    border-radius : 1.25rem;
}

.custom-form .error-navigation-container button:hover,
.custom-form .error-navigation-container button:focus {
    background-color : #b00 !important;
    border-color : #fff !important;
    color : #fff !important;
}

/* ==========================================================================
   WIDTHS / LAYOUT HELPERS
   ========================================================================== */
.custom-form li.form-line:not(.form-line-column) .form-input-wide[data-layout=half],
.custom-form li.form-line .form-input-wide {
    width : 100% !important;
}

.custom-form .form-line:not(.fixed-width) .form-dropdown,
.custom-form .form-line:not(.fixed-width) .form-spinner,
.custom-form .form-line:not(.fixed-width) .form-textarea,
.custom-form .form-line:not(.fixed-width) .form-textbox:not(.time-dropdown):not(#productSearch-input),
.custom-form .form-line:not(.fixed-width) .signature-pad-passive,
.custom-form .form-textarea {
    width : calc(50% - 14px) !important;
    max-width : unset !important;
    min-width : unset !important;
}

@media (max-width: 1199px){
    .custom-form .form-line:not(.fixed-width) .form-dropdown,
    .custom-form .form-line:not(.fixed-width) .form-spinner,
    .custom-form .form-line:not(.fixed-width) .form-textarea,
    .custom-form .form-line:not(.fixed-width) .form-textbox:not(.time-dropdown):not(#productSearch-input),
    .custom-form .form-line:not(.fixed-width) .signature-pad-passive,
    .custom-form .form-textarea {
        width : 100% !important;
        max-width : unset !important;
        min-width : unset !important;
    }
}

/* keep both max-width intentions (your last one was fit-content) */
.custom-form .form-line:not(.fixed-width) .form-dropdown {
    width : auto !important;
    min-width : 100%;
    max-width : 100%;
    max-width: fit-content !important;
}

/* ==========================================================================
   UPLOAD (MULTIPLE)
   ========================================================================== */
.custom-form .form-line-column.form-line-column-clear {
    flex : 0 0 100%;
}

.custom-form .form-line-column.form-line-column-clear .jfUpload-wrapper {
    width : calc(50% - 14px) !important;
}

@media (max-width: 1199px){
    .custom-form .form-line-column.form-line-column-clear .jfUpload-wrapper {
        width : 100% !important;
    }
}

.custom-form li.form-line[data-type="control_fileupload"] {
    width: 100%;
}

/* Consolidated (was duplicated + one selector was a typo) */
.custom-form .form-line-column.form-line-column-clear .jfQuestion-fields .jfField,
.custom-form li.form-line[data-type="control_fileupload"] .jfQuestion-fields .jfField,
.custom-form li[data-type="control_fileupload"] .jfField {
    display: flex;
    flex-direction: column-reverse;
}

.custom-form .form-line-column.form-line-column-clear .jfQuestion-fields .jfField .jfUpload-wrapper {
    margin-top : 10px;
}

.custom-form li[data-type="control_fileupload"] .jfUpload-wrapper {
    width: 100%;
}

@media (min-width: 1199px) {
    .custom-form li[data-type="control_fileupload"] .jfUpload-wrapper {
        max-width: calc(50% - 14px) !important;
    }
}

/* ==========================================================================
   TEXTAREA LIMIT / COUNTER
   ========================================================================== */
.custom-form .form-textarea-limit > span {
    display: flex;
    flex-direction: column-reverse;
}

.custom-form .form-textarea-limit-indicator label,
.custom-form .form-textarea-limit-indicator span {
    margin: 0 0 0 2px;
    font-size: .9rem !important;
    font-weight: 400 !important;
    line-height: 1.1rem !important;
    color: #313131;
    float: none !important;
}

.custom-form .form-textarea-limit-indicator {
    margin-top: 0 !important;
    margin-bottom: .75rem !important;
}

/* ==========================================================================
   TIME CONTROL
   ========================================================================== */
.custom-form li.form-line[data-type="control_time"] > .form-input-wide > [data-wrapper-react="true"] {
    display: flex;
    align-items: flex-end;
}

.custom-form li.form-line[data-type=control_time] .time-wrapper .form-sub-label-container {
    flex-direction: column-reverse;
}

/* ==========================================================================
   MISC
   ========================================================================== */
.custom-form .calendar.popup {
    max-width: 531px !important;
    margin-top: -112px !important;
}

.calendar.popup
 {
    margin-top: -113px !important;
    max-width: 531px !important;
    z-index: 3 !important;
}

/* ==========================================================================
   Dropdown with search
   ========================================================================== */

.custom-form .jfDropdownV2 {
    display: inline-block;
    max-width: 100%;
    font-size: 1em;
    color: inherit;
}

.custom-form .jfDropdownV2-header:focus, .custom-form .jfDropdownV2-header:focus-visible, .custom-form .jfDropdownV2-header:focus-within {
    border-color: #d1d1d1;
    box-shadow: 0 0 4px #e7e7e7;
    outline: 0;
}


.custom-form .jfDropdownV2.isOpen > .jfDropdownV2-header {
    border-color: #d1d1d1;
    box-shadow: 0 0 4px #e7e7e7;
    outline: 0;
}




.custom-form .jfDropdownV2-header {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: nowrap;
    flex-wrap: nowrap;
    gap: 4px;
    height: unset;
    border: 1px solid #b8bdc9;
    border-radius: 4px;
    cursor: pointer;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
    background-repeat: no-repeat;
    background-position: right .625em center;
    background-size: .625em;
    border: 1px solid #d1d1d1;
    border-radius: .3125rem;
    color: #313131;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5rem;
    margin-bottom: .5rem;
    max-width: 33.125rem;
    padding: .75rem 1rem;
    width: 100%;
    margin-top: 10px;
}

.custom-form .jfDropdownV2-popup {
    top: calc(100% - 10px);
    max-width: 33.125rem;
    border: 1px solid #000;
    border-radius: 0;
    box-shadow: none;    
}

.custom-form .jfDropdownV2-optionText {
    font-size: 1rem;
}

.custom-form .jfDropdownV2-optionList {
    padding: 0;
}

.custom-form .jfDropdownV2--single .jfDropdownV2-option.isSelected {
    background: #1967D2;
    color: #fff;
    font-weight: 500;
}


.custom-form .jfDropdownV2-option.isActive, .custom-form .jfDropdownV2-option:hover {
    background: #1967D2;
    color: #fff;
    font-weight: 500;
}



.custom-form .jfDropdownV2-searchWrapper .jfDropdownV2-search {
    padding: 4px 8px;
    margin-bottom: unset !important;
    margin-top: unset !important;
    border-width: 1px !important;
    border-color: #fff !important;
    box-shadow: unset !important;
    outline: 0 !important;
    background-color: #fff !important;    
}

.custom-form .form-line:not(.form-line-error) input.jfDropdownV2-search:not(#coupon-input):hover:focus, .custom-form .form-line:not(.form-line-error) input.jfDropdownV2-search:not(#coupon-input):focus {
    box-shadow: none !important;
}

.custom-form .jfDropdownV2-searchWrapper {
    padding: 0 12px;
    height: 60px;
    background: #2c5697;
}


.custom-form .jfDropdownV2-searchIcon {
    width: 18px;
    height: 18px;
    border: 1.5px solid #fff;
    margin-right: 7px;
}

.custom-form .jfDropdownV2-searchIcon:after {
    left: 15px;
    top: 12px;
    width: 9px;
    height: 1.5px;
    background: #fff;
}

.custom-form .jfDropdownV2-searchClear {
    margin-left: 5px;
    color: #fff;  
    height: 23px;
}

.custom-form .jfDropdownV2-searchClear:after, .custom-form .jfDropdownV2-searchClear:before {
    width: 21px;
}


.custom-form .jfDropdownV2-searchClear:focus-visible, .custom-form .jfDropdownV2-searchClear:hover {
    color: #fff; 
    background: none; 
    outline: none;
}