.search_form__field_suggestions .loader {
    display: none;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 50px;
    margin: 0;
    z-index: 1001;
}

.location-group .location.search_form__field--is_loading + .search_form__field_suggestions .loader {
    display: block;
}

.responsive-form .input-container.datepicker:has(input[required]:user-valid):after,
.responsive-form .input-container.datepicker:has(textarea[required]:user-valid):after {
    content: none;
}


.search_form__field_suggestions {
    position: absolute;
    left: 0;
    width: 100%;
    min-height: 44px;
    max-height: 190px;
    background-color: #fff;
    border: 3px solid var(--zest-green);
    opacity: 0;
    visibility: hidden;
    overflow-y: scroll;
    font-size: 0;
    transition: all 200ms ease-out;
    z-index: 1000;
    top: 100%;
    border-bottom-left-radius: 4px;
    border-bottom-right-radius: 4px;
    box-shadow: 0 2px 2px 1px #00000033;
    border-top: none;
}

.location-group .location.search_form__field--show_suggestions + .search_form__field_suggestions {
    opacity: 1;
    visibility: visible;
    width: auto;
    min-width: 100%;
    max-width: 100%;
    white-space: nowrap;
    z-index: 1000;
    box-sizing: border-box;
}


.field_suggestions__suggestion {
    display: block;
    max-width: 100%;
    min-width: 100%;
    padding: 10px 20px 10px 52px;
    background-color: #fff;
    color: var(--zest-purple);
    border: none;
    border-bottom: 1px solid var(--zest-green);
    font-family: "Clear Sans", Arial, Helvetica;
    font-size: 14px;
    font-weight: normal;
    line-height: 18px;
    text-align: left;
    position: relative;
    z-index: 1;
}

.field_suggestions__suggestion:hover {
    background-color: var(--zest-confirm-muted);
    cursor: pointer;
}

.field_suggestions__suggestion span {
    display: block;
    font-size: smaller;
}

.field_suggestions__suggestion mark {
    background-color: #ff0;
    color: var(--zest-purple);
    font-weight: normal;
    font-style: normal;
}

.field_suggestions__suggestion::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 17px;
    display: block;
    width: 18px;
    height: 18px;
    margin-top: -9px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: contain;
}

.field_suggestions__suggestion.field_suggestions__suggestion--airport::after {
    background-image: url(/images/icons/plane_navy_light.svg);
}

.field_suggestions__suggestion.field_suggestions__suggestion--station::after {
    background-image: url("/images/icons/station_navy_light.svg");
}

.field_suggestions__suggestion.field_suggestions__suggestion--city::after {
    background-image: url("/images/icons/city_navy_light.svg");
}


.responsive-form .form-container {
    container-type: inline-size;
    container-name: quoteForm;
    padding: 0;
    margin: 0;
}

.responsive-form .form-container .input-container {
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    margin-bottom: 0;
    max-width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    position: relative;
    padding: 24px 24px 0 42px;
    cursor: pointer;
}

.responsive-form .form-container .date-time-group .input-container {
    border: none;
    box-shadow: none;
    border-radius: 0;
    margin-bottom: 0;
    padding-right: 0;
    height: 76px;
    cursor: pointer;
}

.responsive-form .form-container .input-container input,
.responsive-form .form-container .input-container select {
    height: 100%;
    width: 100%;
    border: none;
    background-color: transparent;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
}

.responsive-form .form-container .location input {
    background-color: transparent;
}

.responsive-form .form-container .input-container select {
    background-size: 10px;
    margin-left: 18px;
}

.responsive-form .input-container select {
    background-position: calc(100% - 42px) 43px;
}

.responsive-form label.input-container.location.return.relative:after {
    border-style: solid;
    border-width: 2px 2px 0 0;
    content: "";
    display: inline-block;
    height: 6px;
    right: 29px;
    position: absolute;
    transform: rotate(135deg);
    vertical-align: top;
    width: 6px;
    z-index: 0;
    top: 42px;
}

.responsive-form .form-container .input-container > span {
    position: absolute;
    top: 23px;
    font-size: 12px;
    color: var(--zest-purple);
    pointer-events: none;
    transition: all .2s ease;
    z-index: 2;
    left: 42px;
    padding: 0;
}


.responsive-form .form-container .drivers-age .input-container::before {
    background-image: url('/images/icons/person-icon.svg');
}

.responsive-form .form-container .input-container::before {
    content: "";
    position: absolute;
    top: 21px;
    left: 21px;
    width: 16px;
    height: 16px;
    transform: none;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    pointer-events: none;
    z-index: 2;
}

.responsive-form .form-container .pickup-location .input-container::before,
.responsive-form .form-container .return-location-wrapper .input-container::before {
    background-image: url('/images/icons/location.svg');
}

.responsive-form .form-container .date .input-container.datepicker::before {
    background-image: url('/images/icons/calendar-icon.svg');
}


.responsive-form .form-container .date-time-group .input-container.time-select::before {
    background-image: url('/images/icons/clock-icon.svg');
    filter: brightness(0) saturate(100%) invert(48%) sepia(96%) saturate(361%) hue-rotate(100deg) brightness(90%) contrast(92%);
}


.responsive-form .form-container .new-form-grid:has(#search_different_return_location:checked) .location-group.return-location {
    position: relative;
    width: 100%;
}

.responsive-form .form-container .new-form-grid:has(#search_different_return_location:checked) .return-location-wrapper {
    overflow: unset;
    display: flex;
}


.responsive-form .form-container .new-form-grid {
    display: grid;
    grid-template-columns: 0.95fr 0.9fr 0.9fr 0.45fr 0.25fr;
    gap: 12px;
    align-items: stretch;
}

.responsive-form .form-container .pickup-location {
    grid-column: 1;
    grid-row: 1;
}

.responsive-form .form-container .return-location-wrapper {
    grid-column: 1;
    grid-row: 3;
}

.responsive-form .form-container .checkbox-row-wrapper {
    grid-column: 1 / span 2;
    grid-row: 2;
    display: flex;
    gap: 16px;
    z-index: 10;
    align-self: flex-start;
}


.responsive-form .form-container .return-checkbox-standalone {
    width: auto;
    grid-column: unset;
    grid-row: unset;
}

.responsive-form .form-container .pickup-date-time {
    grid-column: 2;
    grid-row: 1;
}

.responsive-form .form-container .return-date-time {
    grid-column: 3;
    grid-row: 1;
}

.responsive-form .form-container .drivers-age {
    grid-column: 4;
    grid-row: 1;
}

.responsive-form .form-container .search-button {
    grid-column: 5;
    grid-row: 1;
    height: 100%;
    min-height: 80px;
    padding: 18px 12px;
    margin-top: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    max-width: 100%;
}

.responsive-form .form-container .search-button span {
    background-image: url(/images/icons/search-icon.svg);
    background-size: 24px;
    width: 24px;
    height: 24px;
    filter: brightness(0) saturate(100%) invert(14%) sepia(36%) saturate(948%) hue-rotate(207deg) brightness(92%) contrast(91%);

}

.responsive-form .button span::after, .responsive-form .button span::before,
.responsive-form .form-container .search-button b.text {
    display: none;
}


.responsive-form .form-container .date-time-group {
    background-color: white;
    border-radius: 4px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 0;
    position: relative;
}

.responsive-form .form-container .date-time-group .pickup,
.responsive-form .form-container .date-time-group .return {
    border-top: 2px solid var(--dark-grey);
    border-left: 2px solid var(--dark-grey);
    border-bottom: 2px solid var(--dark-grey);
    border-radius: 4px 0 0 4px;
}

.responsive-form .form-container .date-time-group .time-select {
    border-top: 2px solid var(--dark-grey);
    border-right: 2px solid var(--dark-grey);
    border-bottom: 2px solid var(--dark-grey);
    border-radius: 0 4px 4px 0;
    height: 80px;
}


.responsive-form .form-container .pickup-date-time::after,
.responsive-form .form-container .return-date-time::after {
    content: '';
    position: absolute;
    left: calc(1.1 / 2 * 100%);
    top: 10px;
    bottom: 10px;
    width: 2px;
    background-color: var(--dark-grey);
    transform: translateX(-50%);
}

.input-container:has(input[required]:user-invalid):after,
.input-container:has(input[required]:user-invalid):after,
.input-container:has(input[required]:user-valid):after,
.input-container:has(textarea[required]:user-valid):after {
    display: none;
}


@container quoteForm (max-width: 1000px) {

    .return-location-wrapper .location-group.return-location > label.input-container.location.return.relative {
        display: flex;
        width: calc(100vw - 63px);
    }

    .responsive-form .form-container .new-form-grid {
        grid-template-columns: 1fr 1fr;
        grid-template-rows: auto auto auto auto auto auto;
        gap: 12px;
        align-items: stretch;
    }


    .responsive-form .form-container .pickup-location {
        grid-column: 1/span 3;
        grid-row: 1;
    }

    .responsive-form .form-container .checkbox-row-wrapper {
        display: contents;
        margin-top: 0;
    }

    .responsive-form .form-container .return-checkbox-standalone {
        grid-column: 1 / span 2;
        grid-row: 2;
        margin-top: 0;
        text-align: left;
    }

    .responsive-form .form-container .return-location-wrapper {
        grid-column: 1 / span 2;
        grid-row: 3;
        grid-row-end: auto;
    }

    .responsive-form .form-container .pickup-date-time {
        grid-column: 1;
        grid-row: 4;
    }

    .responsive-form .form-container .return-date-time {
        grid-column: 2;
        grid-row: 4;
    }

    .responsive-form .form-container .drivers-age {
        grid-column: 1;
        grid-row: 7;
    }


    .responsive-form .form-container .search-button {
        grid-column: 2;
        grid-row: 7;
        grid-row-end: auto;
    }

    .responsive-form .form-container .search-button span {
        background-image: none;
        width: auto;
    }

    .responsive-form .form-container .search-button span b {
        margin-right: 16px;
        font-size: 18px;
    }

    .responsive-form .form-container .search-button b.text {
        display: block;
    }


    .responsive-form .form-container .search-button span::before,
    .responsive-form .form-container .search-button span::after {
        display: block;
    }


}


@container quoteForm (max-width: 600px) {
    .responsive-form .form-container .pickup-date-time::after,
    .responsive-form .form-container .return-date-time::after {
        left: calc(1 / 2 * 100%);
    }

    .responsive-form .form-container .new-form-grid {
        grid-template-columns: 1fr 1fr 1fr;


    }

    .responsive-form .form-container .pickup-location {
        grid-column: 1/span 3;
        grid-row: 1;
    }


    .responsive-form .form-container .return-checkbox-standalone {
        grid-column: 1 / span 3;
        grid-row: 2;
        margin-top: 0;
    }

    .responsive-form .form-container .return-location-wrapper {
        grid-column: 1 / span 3;
        grid-row: 3;
    }

    .responsive-form .form-container .pickup-date-time {
        grid-column: 1 / span 3;
        grid-row: 4;
    }

    .responsive-form .form-container .return-date-time {
        grid-column: 1 / span 3;
        grid-row: 5;
    }


    .responsive-form .form-container .drivers-age {
        grid-column: 1;
        grid-row: 7;
    }


    .responsive-form .form-container .search-button {
        grid-column: 2 /span 2;
        grid-row: 7;
    }

    .responsive-form .form-container .pickup-date-time,
    .responsive-form .form-container .return-date-time {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 0;
    }

}

@container quoteForm (max-width: 400px) {
    .responsive-form .form-container .drivers-age {
        grid-column: 1/ 3 span;
        grid-row: 7;
    }

    .responsive-form .form-container .search-button {
        grid-column: 1/ 3 span;
        grid-row: 8;
    }
}


.return-checkbox-standalone .return-checkbox-wrapper {
    position: static;
    bottom: unset;
    right: unset;
    white-space: normal;
}

.return-checkbox-standalone {
    display: inline-block;
}


.return-location-wrapper {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s ease-out, padding-top 0.4s ease-out, padding-bottom 0.4s ease-out, margin-bottom 0.4s ease-out;
    padding-top: 0;
    padding-bottom: 0;
    margin-bottom: 0;
    display: none;
}

.return-location-wrapper:has(.location.search_form__field--show_suggestions) {
    overflow: visible;
}


.responsive-form .form-container .new-form-grid:has(#search_different_return_location:checked) .return-location-wrapper {
    max-height: 200px;

}


.return-location-wrapper .location-group.return-location {
    display: block;
}

.return-location-wrapper .location-group.return-location > label.input-container.location.return.relative {
    display: flex;
    width: 100%;
}


.quote-form > label.location, .quote-form > div.location {
    position: relative;
}

/*date picker*/


.remodal {
    max-width: 410px;
}

