/* PV_BOOKING_PICKERS_CSS_20260826 */

.pv-booking-search-card {
    width: 100%;
    padding: .9rem;
    border: 1px solid var(--bs-border-color);
    border-radius: 0;
    background: rgba(255,255,255,.97);
    box-shadow: 0 .35rem 1.1rem rgba(0,0,0,.10);
}

.pv-booking-search-grid {
    display: grid;
    grid-template-columns:
        minmax(210px, 1.35fr)
        minmax(145px, 1fr)
        minmax(120px, .78fr)
        minmax(145px, 1fr)
        minmax(120px, .78fr)
        auto;
    gap: .65rem;
    align-items: end;
}

.pv-booking-search-field { min-width: 0; }

.pv-booking-search-field label {
    display: block;
    margin: 0 0 .28rem;
    color: var(--bs-secondary-color);
    font-size: .78rem;
    font-weight: 600;
    line-height: 1.15;
}

.pv-booking-search-field .form-select,
.pv-picker-trigger,
.pv-booking-search-submit {
    height: 52px;
    min-height: 52px;
    border-radius: 0;
}

.pv-booking-search-field .form-select,
.pv-picker-trigger {
    width: 100%;
    border: 1px solid var(--bs-border-color);
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    box-shadow: none;
    font-size: .98rem;
    font-weight: 500;
}

.pv-picker-trigger {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .6rem;
    padding: .375rem .75rem;
    text-align: left;
    cursor: pointer;
}

.pv-picker-trigger:not(.has-value) {
    color: var(--bs-secondary-color);
    font-weight: 400;
}

.pv-picker-trigger:hover { border-color: #aeb6bf; }

.pv-picker-trigger:focus-visible,
.pv-booking-search-field .form-select:focus {
    border-color: var(--bs-primary);
    outline: 0;
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb), .12);
}

.pv-picker-trigger.is-invalid {
    border-color: var(--bs-danger);
    box-shadow: 0 0 0 .12rem rgba(var(--bs-danger-rgb), .10);
}

.pv-booking-search-submit {
    padding-inline: 1.2rem;
    white-space: nowrap;
    font-weight: 600;
}

.pv-picker-overlay {
    position: fixed;
    inset: 0;
    z-index: 3000;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    background: rgba(15,23,42,.42);
}

.pv-picker-overlay.is-open { display: flex; }

.pv-picker-dialog {
    width: min(420px, calc(100vw - 2rem));
    max-height: min(720px, calc(100vh - 2rem));
    overflow: hidden;
    background: var(--bs-body-bg);
    border: 1px solid var(--bs-border-color);
    border-radius: 0;
    box-shadow: 0 1.2rem 3rem rgba(0,0,0,.24);
}

.pv-picker-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
    min-height: 58px;
    padding: .7rem .85rem;
    border-bottom: 1px solid var(--bs-border-color);
}

.pv-picker-title {
    min-width: 0;
    font-weight: 700;
    color: var(--bs-emphasis-color);
}

.pv-picker-icon-button {
    width: 42px;
    height: 42px;
    flex: 0 0 42px;
    border: 1px solid var(--bs-border-color);
    border-radius: 0;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
}

.pv-picker-body {
    max-height: calc(100vh - 150px);
    overflow: auto;
    padding: .9rem;
    overscroll-behavior: contain;
}

.pv-date-monthbar {
    display: grid;
    grid-template-columns: 44px 1fr 44px;
    align-items: center;
    gap: .5rem;
    margin-bottom: .75rem;
}

.pv-date-monthlabel {
    text-align: center;
    font-weight: 700;
}

.pv-date-weekdays,
.pv-date-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .25rem;
}

.pv-date-weekdays { margin-bottom: .25rem; }

.pv-date-weekdays span {
    padding: .25rem 0;
    text-align: center;
    color: var(--bs-secondary-color);
    font-size: .72rem;
    font-weight: 700;
}

.pv-date-day {
    aspect-ratio: 1 / 1;
    min-height: 40px;
    border: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--bs-body-color);
    font-weight: 500;
}

.pv-date-day:hover:not(:disabled) {
    background: var(--bs-tertiary-bg);
    border-color: var(--bs-border-color);
}

.pv-date-day.is-today { border-color: var(--bs-primary); }

.pv-date-day.is-selected {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.pv-date-day:disabled {
    color: var(--bs-secondary-color);
    opacity: .35;
}

.pv-time-section + .pv-time-section { margin-top: 1rem; }

.pv-time-section-title {
    margin-bottom: .5rem;
    color: var(--bs-secondary-color);
    font-size: .8rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.pv-time-hours {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: .4rem;
}

.pv-time-minutes {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: .5rem;
}

.pv-time-choice {
    min-height: 44px;
    border: 1px solid var(--bs-border-color);
    border-radius: 0;
    background: var(--bs-body-bg);
    color: var(--bs-body-color);
    font-weight: 600;
}

.pv-time-choice:hover { background: var(--bs-tertiary-bg); }

.pv-time-choice.is-selected {
    background: var(--bs-primary);
    border-color: var(--bs-primary);
    color: #fff;
}

.pv-picker-footer {
    display: flex;
    justify-content: flex-end;
    gap: .5rem;
    padding: .75rem .9rem;
    border-top: 1px solid var(--bs-border-color);
}

.pv-picker-footer .btn {
    min-height: 44px;
    border-radius: 0;
}

@media (max-width: 1199.98px) {
    .pv-booking-search-grid {
        grid-template-columns:
            minmax(180px, 1.2fr)
            minmax(135px, 1fr)
            minmax(110px, .75fr)
            minmax(135px, 1fr)
            minmax(110px, .75fr);
    }
    .pv-booking-search-submit {
        grid-column: 1 / -1;
        width: 100%;
    }
}

@media (max-width: 767.98px) {
    .pv-booking-search-card { padding: .75rem; }

    .pv-booking-search-grid {
        grid-template-columns: minmax(0, 1fr) 118px;
        gap: .65rem;
    }

    .pv-booking-search-airport,
    .pv-booking-search-submit {
        grid-column: 1 / -1;
    }

    .pv-booking-search-field .form-select,
    .pv-picker-trigger,
    .pv-booking-search-submit {
        height: 50px;
        min-height: 50px;
    }

    .pv-picker-overlay {
        align-items: flex-end;
        padding: 0;
    }

    .pv-picker-dialog {
        width: 100%;
        max-height: 86vh;
        border-left: 0;
        border-right: 0;
        border-bottom: 0;
    }

    .pv-picker-body { max-height: calc(86vh - 120px); }
    .pv-date-day { min-height: 42px; }
}

@media (max-width: 380px) {
    .pv-booking-search-grid {
        grid-template-columns: minmax(0, 1fr) 106px;
    }
    .pv-time-hours {
        grid-template-columns: repeat(4, 1fr);
    }
}


/* PV_PICKER_PARKVISTA_LOOK_FIX3_20260826
 * Nur Optik. Picker-Logik und Tastatursperre bleiben unverändert.
 */
.pv-booking-search-card {
    padding: 1rem !important;
    border: 1px solid #cbd3dc !important;
    border-radius: 1rem !important;
    background: rgba(255,255,255,.97) !important;
    box-shadow: 0 .5rem 1.6rem rgba(15,23,42,.14) !important;
}

.pv-booking-search-grid {
    gap: .75rem !important;
}

.pv-booking-search-field label {
    margin-bottom: .3rem !important;
    color: var(--pv-navy, #052b5c) !important;
    font-size: .79rem !important;
    font-weight: 600 !important;
}

.pv-booking-search-field .form-select,
.pv-picker-trigger {
    min-height: 54px !important;
    height: 54px !important;
    border: 2px solid #d6dbe1 !important;
    border-radius: .55rem !important;
    background-color: #fff !important;
    color: var(--bs-body-color, #212529) !important;
    box-shadow: none !important;
}

.pv-booking-search-field .form-select:hover,
.pv-picker-trigger:hover {
    border-color: #bcc5cf !important;
}

.pv-booking-search-field .form-select:focus,
.pv-picker-trigger:focus-visible {
    border-color: var(--bs-primary, #0d6efd) !important;
    box-shadow: 0 0 0 .15rem rgba(var(--bs-primary-rgb, 13,110,253), .10) !important;
}

.pv-picker-trigger:not(.has-value) {
    color: #6c757d !important;
}

.pv-picker-trigger i {
    color: var(--pv-navy, #052b5c) !important;
    font-size: 1rem;
}

.pv-booking-search-submit {
    min-height: 54px !important;
    height: 54px !important;
    padding-inline: 1.25rem !important;
    border-radius: .55rem !important;
    background: var(--pv-dark, #20252a) !important;
    border-color: var(--pv-dark, #20252a) !important;
    color: #fff !important;
    font-weight: 600 !important;
    box-shadow: none !important;
}

.pv-booking-search-submit:hover,
.pv-booking-search-submit:focus {
    filter: brightness(.94);
}

/* Date-/Timepicker selbst wieder in derselben Formsprache. */
.pv-picker-dialog {
    border: 1px solid #cbd3dc !important;
    border-radius: 1rem !important;
    box-shadow: 0 1.2rem 3rem rgba(15,23,42,.24) !important;
}

.pv-picker-head {
    background: #f8f9fa;
}

.pv-picker-title,
.pv-date-monthlabel {
    color: var(--pv-navy, #052b5c) !important;
}

.pv-picker-icon-button,
.pv-time-choice {
    border: 1px solid #d6dbe1 !important;
    border-radius: .5rem !important;
    background: #fff !important;
}

.pv-picker-icon-button:hover,
.pv-time-choice:hover {
    background: #f1f3f5 !important;
}

.pv-date-day {
    border-radius: .5rem !important;
}

.pv-date-day.is-today {
    border-color: var(--pv-navy, #052b5c) !important;
}

.pv-date-day.is-selected,
.pv-time-choice.is-selected {
    background: var(--pv-navy, #052b5c) !important;
    border-color: var(--pv-navy, #052b5c) !important;
    color: #fff !important;
}

.pv-picker-footer .btn {
    border-radius: .5rem !important;
}

.pv-picker-footer .btn-dark {
    background: var(--pv-dark, #20252a) !important;
    border-color: var(--pv-dark, #20252a) !important;
}

@media (max-width: 767.98px) {
    .pv-booking-search-card {
        padding: .8rem !important;
        border-radius: .85rem !important;
    }

    .pv-booking-search-grid {
        gap: .65rem !important;
    }

    .pv-booking-search-field .form-select,
    .pv-picker-trigger,
    .pv-booking-search-submit {
        min-height: 50px !important;
        height: 50px !important;
    }

    .pv-picker-dialog {
        border-radius: 1rem 1rem 0 0 !important;
    }
}


/* PV_AIRPORT_MODAL_PICKER_FIX4_20260826 */

.pv-airport-trigger {
    cursor: pointer;
}

.pv-airport-trigger > i {
    font-size: 1rem;
    transition: transform .15s ease;
}

.pv-airport-trigger:hover > i {
    transform: translateY(1px);
}

.pv-airport-picker-dialog {
    width: min(520px, calc(100vw - 2rem)) !important;
}

.pv-airport-picker-body {
    padding: .7rem !important;
}

.pv-airport-list {
    display: flex;
    flex-direction: column;
    gap: .45rem;
}

.pv-airport-option {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) 34px;
    align-items: center;
    gap: .75rem;
    width: 100%;
    min-height: 64px;
    padding: .7rem .8rem;
    border: 1px solid #d6dbe1;
    border-radius: .6rem;
    background: #fff;
    color: var(--bs-body-color, #212529);
    text-align: left;
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease;
}

.pv-airport-option:hover,
.pv-airport-option:focus-visible {
    border-color: var(--bs-primary, #0d6efd);
    background: var(--bs-primary-bg-subtle, #e7f1ff);
    outline: 0;
}

.pv-airport-option.is-selected {
    border-color: var(--pv-navy, #052b5c);
    background: #f4f7fb;
}

.pv-airport-option-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: .55rem;
    background: #eef3f8;
    color: var(--pv-navy, #052b5c);
    font-size: 1.15rem;
}

.pv-airport-option-name {
    min-width: 0;
    color: var(--pv-navy, #052b5c);
    font-size: 1rem;
    font-weight: 600;
}

.pv-airport-option-check {
    visibility: hidden;
    color: var(--bs-success, #198754);
    font-size: 1.1rem;
}

.pv-airport-option.is-selected .pv-airport-option-check {
    visibility: visible;
}

/* Datepicker: Vor/Zurück wesentlich klarer und größer. */
.pv-date-monthbar .pv-picker-icon-button {
    width: 52px !important;
    height: 52px !important;
    flex: 0 0 52px !important;
    border: 2px solid #cbd3dc !important;
    border-radius: .6rem !important;
    color: var(--pv-navy, #052b5c) !important;
    font-size: 1.75rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
}

.pv-date-monthbar .pv-picker-icon-button:hover,
.pv-date-monthbar .pv-picker-icon-button:focus-visible {
    border-color: var(--pv-navy, #052b5c) !important;
    background: #eef3f8 !important;
    outline: 0;
}

.pv-picker-head [data-pv-picker-close] {
    width: 48px !important;
    height: 48px !important;
    flex: 0 0 48px !important;
    font-size: 1.7rem !important;
    font-weight: 700 !important;
}

@media (max-width: 767.98px) {
    .pv-airport-picker-dialog {
        width: 100% !important;
    }

    .pv-airport-picker-body {
        padding: .65rem !important;
    }

    .pv-airport-option {
        min-height: 68px;
        padding: .75rem .8rem;
        border-radius: .65rem;
    }

    .pv-airport-option-name {
        font-size: 1.02rem;
    }

    .pv-date-monthbar .pv-picker-icon-button {
        width: 54px !important;
        height: 54px !important;
        flex-basis: 54px !important;
        font-size: 1.85rem !important;
    }
}


/* PV_OWN_PICKER_REFINEMENT_20260828
 * Eigener ParkVista Picker:
 * Desktop zwei Monate, Smartphone ein Monat mit Scroll-Snap.
 * Gleiche Monatsnavigation, Stundenrad + vier Minutenbuttons.
 */

.pv-picker-dialog.is-date-picker {
    width: min(820px, calc(100vw - 2rem)) !important;
}

.pv-picker-dialog.is-time-picker {
    width: min(420px, calc(100vw - 2rem)) !important;
}

.pv-picker-body.is-date-picker {
    overflow: hidden;
}

.pv-date-monthbar {
    grid-template-columns: 54px minmax(0, 1fr) 54px !important;
    gap: .75rem !important;
    margin-bottom: .8rem !important;
}

.pv-date-monthbar .pv-date-nav-button {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
    flex: 0 0 54px !important;
    padding: 0 !important;
    border: 2px solid #cbd3dc !important;
    border-radius: .6rem !important;
    background: #fff !important;
    color: var(--pv-navy, #052b5c) !important;
    font-size: 2rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.pv-date-monthbar .pv-date-nav-button:hover,
.pv-date-monthbar .pv-date-nav-button:focus-visible {
    border-color: var(--pv-navy, #052b5c) !important;
    background: #eef3f8 !important;
    outline: 0;
}

.pv-date-monthlabel {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pv-date-range-separator {
    padding-inline: .25rem;
    color: var(--bs-secondary-color, #6c757d);
}

.pv-date-months {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem;
}

.pv-date-month {
    min-width: 0;
}

.pv-date-month-title {
    margin-bottom: .45rem;
    color: var(--pv-navy, #052b5c);
    text-align: center;
    font-weight: 700;
}

.pv-date-day.is-outside:not(.is-selected) {
    color: #adb5bd !important;
    opacity: .65;
}

.pv-date-day.is-outside:disabled {
    opacity: .28;
}

/* Stunden als eigenes kompaktes Scrollrad. */
.pv-time-hour-wheel {
    position: relative;
    height: 224px;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-snap-type: y mandatory;
    padding-block: 88px;
    border: 1px solid #d6dbe1;
    border-radius: .7rem;
    background:
        linear-gradient(
            to bottom,
            rgba(248,249,250,.94),
            rgba(255,255,255,0) 34%,
            rgba(255,255,255,0) 66%,
            rgba(248,249,250,.94)
        ),
        #fff;
    scrollbar-width: thin;
}

.pv-time-hour-option {
    display: flex;
    align-items: center;
    justify-content: center;
    width: calc(100% - 1rem);
    height: 44px;
    min-height: 44px;
    margin: 0 .5rem;
    padding: 0;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    border: 0;
    border-radius: .55rem;
    background: transparent;
    color: var(--bs-body-color, #212529);
    font-size: 1.15rem;
    font-weight: 650;
}

.pv-time-hour-option:hover,
.pv-time-hour-option:focus-visible {
    background: #f1f3f5;
    outline: 0;
}

.pv-time-hour-option.is-selected {
    background: var(--pv-navy, #052b5c);
    color: #fff;
}

.pv-time-minute-section {
    margin-top: .85rem !important;
}

.pv-time-optional {
    color: var(--bs-secondary-color, #6c757d);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
}

.pv-time-minutes {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: .55rem !important;
}

.pv-time-minutes .pv-time-choice {
    min-height: 48px;
    font-size: 1rem;
}

/* Smartphone: immer nur ein Monat im sichtbaren Monatsfenster.
 * Nach oben/unten scrollen rastet am nächsten Monat ein.
 */
@media (max-width: 767.98px) {
    .pv-picker-dialog.is-date-picker,
    .pv-picker-dialog.is-time-picker {
        width: 100% !important;
    }

    .pv-picker-body.is-date-picker {
        padding: .7rem !important;
    }

    .pv-date-monthbar {
        grid-template-columns: 50px minmax(0, 1fr) 50px !important;
        gap: .5rem !important;
        margin-bottom: .55rem !important;
    }

    .pv-date-monthbar .pv-date-nav-button {
        width: 50px !important;
        height: 50px !important;
        min-width: 50px !important;
        min-height: 50px !important;
        flex-basis: 50px !important;
        font-size: 1.9rem !important;
    }

    .pv-date-range-separator,
    .pv-date-next-label {
        display: none;
    }

    .pv-date-monthlabel {
        font-size: .9rem;
    }

    .pv-date-months {
        display: flex;
        flex-direction: column;
        gap: 0;
        height: min(430px, calc(86dvh - 190px));
        overflow-y: auto;
        overscroll-behavior-y: contain;
        scroll-snap-type: y mandatory;
        scrollbar-width: thin;
    }

    .pv-date-month {
        flex: 0 0 100%;
        min-height: 100%;
        padding: .1rem .15rem .55rem;
        scroll-snap-align: start;
        scroll-snap-stop: always;
    }

    .pv-date-month-title {
        position: sticky;
        top: 0;
        z-index: 2;
        margin-bottom: .35rem;
        padding: .2rem 0 .4rem;
        background: var(--bs-body-bg, #fff);
    }

    .pv-date-day {
        min-height: 40px !important;
    }

    .pv-time-hour-wheel {
        height: 220px;
    }
}


/* PV_SEARCH_PICKER_SWIPE_REFINEMENT_20260828
 * Kalender ruhiger, mobil frei durch Monate wischen,
 * Desktop-Monate weiter auseinander, Airport-X gleich groß.
 */

/* Zwischen den Pfeilen steht bewusst kein zweiter Monatsname mehr. */
.pv-date-monthbar-spacer {
    min-width: 0;
}

/* Desktop: die zwei Monatsblöcke optisch klarer trennen. */
@media (min-width: 768px) {
    .pv-date-months {
        column-gap: 3rem !important;
    }
}

/* Schließen beim Flughafen genauso groß wie bei Datum/Uhrzeit. */
.pv-picker-head [data-pv-airport-close] {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    flex: 0 0 48px !important;
    padding: 0 !important;
    border: 1px solid #cbd3dc !important;
    border-radius: .6rem !important;
    font-size: 1.7rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

/* Auf dem Smartphone bleibt jeder Monat eine eigene Snap-Seite.
   Die JS-Logik liefert nun alle bis zum zulässigen Maximaldatum. */
@media (max-width: 767.98px) {
    .pv-date-monthbar {
        margin-bottom: .35rem !important;
    }

    .pv-date-months {
        scroll-behavior: smooth;
        scroll-snap-type: y mandatory !important;
    }

    .pv-date-month {
        scroll-snap-align: start !important;
        scroll-snap-stop: always !important;
    }

    .pv-picker-head [data-pv-airport-close] {
        width: 48px !important;
        height: 48px !important;
        min-width: 48px !important;
        min-height: 48px !important;
        flex-basis: 48px !important;
    }
}


/* PV_SEARCH_LABELS_INSIDE_FIELDS_V2_CSS_20260830
 * Labels direkt IM Eingabeelement.
 * Der aktuelle Serverstand verwendet bereits die gewünschten Werte:
 * Flughafen, TT.MM.JJJJ und hh:mm – daran wird nichts geändert.
 */
.pv-booking-search-inline-labels .pv-booking-search-field {
    position: relative;
}

.pv-booking-search-inline-labels .pv-booking-search-field > label {
    position: absolute !important;
    z-index: 4;
    top: .42rem;
    left: .78rem;
    max-width: calc(100% - 3.1rem);
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden;
    color: var(--pv-navy, #052b5c) !important;
    font-size: .66rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-overflow: ellipsis;
    white-space: nowrap;
    pointer-events: none;
}

.pv-booking-search-inline-labels .pv-picker-trigger {
    min-height: 60px !important;
    height: 60px !important;
    padding: 1.32rem .75rem .36rem .75rem !important;
    align-items: flex-end !important;
}

.pv-booking-search-inline-labels .pv-picker-trigger > [data-pv-picker-text],
.pv-booking-search-inline-labels .pv-picker-trigger > [data-pv-airport-text] {
    min-width: 0;
    overflow: hidden;
    line-height: 1.15;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pv-booking-search-inline-labels .pv-picker-trigger > i {
    align-self: center;
    margin-top: .42rem;
}

.pv-booking-search-inline-labels .pv-booking-search-submit {
    min-height: 60px !important;
    height: 60px !important;
}

@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        top: .48rem;
        left: .8rem;
        font-size: .69rem !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 62px !important;
        height: 62px !important;
        padding: 1.42rem .8rem .38rem .8rem !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 58px !important;
        height: 58px !important;
    }
}

/* PV_SEARCH_RESPONSIVE_LABEL_LAYOUT_20260830
 * Desktop:
 *   Label klassisch oberhalb des Feldes.
 *
 * Smartphone:
 *   Label klein im Feld.
 *   Anreise: Datum | Uhrzeit
 *   Rückreise: Datum | Uhrzeit
 *   Datum bewusst breiter als Uhrzeit.
 */

/* Desktop / Tablet breit: klassische Labels oberhalb. */
@media (min-width: 768px) {
    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: static !important;
        z-index: auto;
        display: block !important;
        max-width: none;
        margin: 0 0 .3rem !important;
        padding: 0 !important;
        overflow: visible;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .79rem !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;
        text-overflow: clip;
        white-space: normal;
        pointer-events: auto;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 54px !important;
        height: 54px !important;
        padding: .375rem .75rem !important;
        align-items: center !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center;
        margin-top: 0;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 54px !important;
        height: 54px !important;
    }
}

/* Smartphone: Label bleibt im Feld, Datum + Uhrzeit bilden je eine Zeile. */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 2.15fr)
            minmax(102px, 1fr) !important;
        gap: .62rem !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-airport,
    .pv-booking-search-inline-labels .pv-booking-search-submit {
        grid-column: 1 / -1;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field {
        position: relative;
        min-width: 0;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: absolute !important;
        z-index: 4;
        top: .46rem;
        left: .78rem;
        max-width: calc(100% - 2.8rem);
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .68rem !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        text-overflow: ellipsis;
        white-space: nowrap;
        pointer-events: none;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 62px !important;
        height: 62px !important;
        padding: 1.38rem .72rem .36rem .72rem !important;
        align-items: flex-end !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center;
        margin-top: .38rem;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 58px !important;
        height: 58px !important;
    }
}

/* Sehr schmale Geräte: Uhrzeit bleibt kompakt, Datum bekommt den Rest. */
@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1fr)
            104px !important;
    }
}

/* PV_MOBILE_DATE_TIME_PAIRS_GRAY_CARD_20260830
 *
 * Gewünschte Endfassung:
 * Desktop: Labels oberhalb der Felder.
 * Smartphone: Labels im Feld.
 * Smartphone Zeile 1: Anreise-Datum breit | Uhrzeit schmal.
 * Smartphone Zeile 2: Rückreise-Datum breit | Uhrzeit schmal.
 * Umfeld der weißen Felder: sehr helles Grau.
 */

/* Nur das Umfeld leicht grau, Eingabefelder selbst bleiben weiß. */
.pv-booking-search-card {
    background: #f3f4f6 !important;
}

.pv-booking-search-card .pv-picker-trigger,
.pv-booking-search-card .form-select {
    background-color: #fff !important;
}

/* Desktop: klassische Labels über dem Feld. */
@media (min-width: 768px) {
    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: static !important;
        z-index: auto !important;
        display: block !important;
        max-width: none !important;
        margin: 0 0 .3rem !important;
        padding: 0 !important;
        overflow: visible !important;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .79rem !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;
        text-overflow: clip !important;
        white-space: normal !important;
        pointer-events: auto !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 54px !important;
        height: 54px !important;
        padding: .375rem .75rem !important;
        align-items: center !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center !important;
        margin-top: 0 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 54px !important;
        height: 54px !important;
    }
}

/* Smartphone: Datum + Uhrzeit jeweils als Paar. */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1.9fr)
            minmax(108px, 1fr) !important;
        gap: .6rem !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-airport,
    .pv-booking-search-inline-labels .pv-booking-search-submit {
        grid-column: 1 / -1 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field {
        position: relative !important;
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: absolute !important;
        z-index: 4 !important;
        top: .46rem !important;
        left: .78rem !important;
        max-width: calc(100% - 2.8rem) !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .68rem !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        pointer-events: none !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 62px !important;
        height: 62px !important;
        padding: 1.38rem .72rem .36rem .72rem !important;
        align-items: flex-end !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center !important;
        margin-top: .38rem !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 58px !important;
        height: 58px !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1fr)
            104px !important;
    }
}

/* PV_MOBILE_ARRIVAL_RETURN_PAIRS_SILVER_20260830
 *
 * Desktop:
 *   klassische Labels oberhalb.
 *
 * Smartphone:
 *   Flughafen volle Breite
 *   Anreise:    Datum breit | Uhrzeit schmal
 *   Rückreise:  Datum breit | Uhrzeit schmal
 *   Suchbutton volle Breite
 *
 * Das Umfeld ist dezent silbergrau; Eingabefelder bleiben weiß.
 */

.pv-booking-search-card {
    background: #eef0f2 !important;
}

.pv-booking-search-card .pv-picker-trigger,
.pv-booking-search-card .form-select {
    background: #ffffff !important;
}

@media (min-width: 768px) {
    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: static !important;
        z-index: auto !important;
        display: block !important;
        max-width: none !important;
        margin: 0 0 .3rem !important;
        padding: 0 !important;
        overflow: visible !important;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .79rem !important;
        font-weight: 600 !important;
        line-height: 1.15 !important;
        text-overflow: clip !important;
        white-space: normal !important;
        pointer-events: auto !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 54px !important;
        height: 54px !important;
        padding: .375rem .75rem !important;
        align-items: center !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center !important;
        margin-top: 0 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 54px !important;
        height: 54px !important;
    }
}

@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        display: grid !important;
        grid-template-columns:
            minmax(0, 1.75fr)
            minmax(108px, 1fr) !important;
        grid-auto-flow: row !important;
        gap: .6rem !important;
    }

    /* 1: Flughafen */
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(1) {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    /* 2 + 3: Anreise Datum | Uhrzeit */
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    /* 4 + 5: Rückreise Datum | Uhrzeit */
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    /* Button immer darunter über volle Breite. */
    .pv-booking-search-inline-labels > .pv-booking-search-submit {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field {
        position: relative !important;
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-field > label {
        position: absolute !important;
        z-index: 4 !important;
        top: .46rem !important;
        left: .78rem !important;
        max-width: calc(100% - 2.8rem) !important;
        margin: 0 !important;
        padding: 0 !important;
        overflow: hidden !important;
        color: var(--pv-navy, #052b5c) !important;
        font-size: .68rem !important;
        font-weight: 700 !important;
        line-height: 1 !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
        pointer-events: none !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger {
        min-height: 62px !important;
        height: 62px !important;
        padding: 1.38rem .72rem .36rem .72rem !important;
        align-items: flex-end !important;
    }

    .pv-booking-search-inline-labels .pv-picker-trigger > i {
        align-self: center !important;
        margin-top: .38rem !important;
    }

    .pv-booking-search-inline-labels .pv-booking-search-submit {
        min-height: 58px !important;
        height: 58px !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1fr)
            102px !important;
    }
}

/* PV_MOBILE_DATE_WIDER_THAN_TIME_20260830
 * Smartphone:
 * - Datum deutlich breiter
 * - Uhrzeit schmäler
 * - gilt für Anreise und Rückreise
 * Desktop bleibt unberührt.
 */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1fr)
            96px !important;
        gap: .6rem !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4) {
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        width: 96px !important;
        min-width: 96px !important;
        max-width: 96px !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3) .pv-picker-trigger,
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) .pv-picker-trigger {
        padding-left: .62rem !important;
        padding-right: .62rem !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1fr)
            90px !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        width: 90px !important;
        min-width: 90px !important;
        max-width: 90px !important;
    }
}

/* PV_MOBILE_DATE_SLIGHTLY_WIDER_TIME_NARROWER_FULLWIDTH_20260830
 * Smartphone:
 * - je Zeile wieder volle Breite
 * - Datum nur etwas breiter als Uhrzeit
 * - Anreise und Rückreise jeweils als Paar
 * Desktop bleibt unberührt.
 */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        width: 100% !important;
        max-width: 100% !important;
        display: grid !important;
        grid-template-columns: minmax(0, 1.35fr) minmax(0, 0.8fr) !important;
        gap: .75rem !important;
        align-items: stretch !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        grid-column: auto !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4) {
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        min-width: 0 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field .pv-picker-trigger,
    .pv-booking-search-inline-labels > .pv-booking-search-field input,
    .pv-booking-search-inline-labels > .pv-booking-search-field select {
        width: 100% !important;
        min-width: 0 !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns: minmax(0, 1.28fr) minmax(0, 0.82fr) !important;
        gap: .6rem !important;
    }
}

/* PV_MOBILE_FIELD_WIDTHS_FULL_CORRECT_20260830
 *
 * Korrektur nach der vorherigen 96px-Variante:
 * Die Uhrzeitfelder hatten noch width/min-width/max-width: 96px !important.
 * Diese festen Breiten werden hier mit gleicher/höherer Spezifität aufgehoben.
 *
 * Ergebnis mobil:
 *   Anreise:   Datum ~60% | Uhrzeit ~40%
 *   Rückreise: Datum ~60% | Uhrzeit ~40%
 * Beide Zeilen nutzen zusammen wieder 100% der verfügbaren Formularbreite.
 */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns:
            minmax(0, 1.5fr)
            minmax(0, 1fr) !important;
        gap: .65rem !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4),
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(2) .pv-picker-trigger,
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(3) .pv-picker-trigger,
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(4) .pv-picker-trigger,
    .pv-booking-search-inline-labels > .pv-booking-search-field:nth-of-type(5) .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1.45fr)
            minmax(0, 1fr) !important;
    }
}

/* PV_SEARCH_DATE_WIDER_PAIR_GAP_WARMER_20260830
 *
 * Feinschliff:
 * - Datum etwas breiter als Uhrzeit
 * - Anreise Datum + Uhrzeit enger zusammen
 * - Rückreise Datum + Uhrzeit enger zusammen
 * - zwischen den beiden Paaren etwas mehr Luft
 * - mobil beide Paare weiterhin über die volle verfügbare Breite
 * - Umfeld warmes Fast-Weiß #FFF4E8
 */

.pv-booking-search-card {
    background: var(--pv-search-card-background, #FFF4E8) !important;
}

/* Desktop: klassische Labels oberhalb, Paarbildung deutlicher. */
@media (min-width: 1200px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(210px, 1.35fr)
            minmax(160px, 1.10fr)
            minmax(108px, .70fr)
            minmax(160px, 1.10fr)
            minmax(108px, .70fr)
            auto !important;
        column-gap: .40rem !important;
    }

    /*
     * Mehr Abstand nur VOR einer neuen logischen Gruppe.
     * Innerhalb Datum/Uhrzeit bleibt der kleinere .40rem-Abstand.
     */
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4),
    .pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        margin-left: .32rem !important;
    }
}

/* Mittlere Desktop-/Tabletbreite: gleiche Logik etwas kompakter. */
@media (min-width: 768px) and (max-width: 1199.98px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(180px, 1.25fr)
            minmax(145px, 1.05fr)
            minmax(105px, .68fr)
            minmax(145px, 1.05fr)
            minmax(105px, .68fr) !important;
        column-gap: .40rem !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) {
        margin-left: .28rem !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        margin-left: 0 !important;
    }
}

/* Smartphone: volle Breite, Datum nur etwas breiter als Uhrzeit. */
@media (max-width: 767.98px) {
    .pv-booking-search-inline-labels {
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns:
            minmax(0, 1.48fr)
            minmax(0, 1fr) !important;
        column-gap: .42rem !important;
        row-gap: .58rem !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3),
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4),
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) .pv-picker-trigger,
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) .pv-picker-trigger,
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) .pv-picker-trigger,
    .pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: none !important;
    }
}

@media (max-width: 380px) {
    .pv-booking-search-inline-labels {
        grid-template-columns:
            minmax(0, 1.42fr)
            minmax(0, 1fr) !important;
        column-gap: .36rem !important;
    }
}

/* PV_MOBILE_SEARCH_WIDTHS_FINAL_65_35_20260830
 *
 * FINALER Mobile-Override.
 * Bewusst höhere Spezifität als die älteren Versuche.
 *
 * 100 % verfügbare Zeilenbreite:
 *   Datum   = 65 %
 *   Uhrzeit = 35 %
 * abzüglich nur des kleinen Zwischenraums.
 */
@media (max-width: 767.98px) {
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;
        grid-template-columns:
            minmax(0, 13fr)
            minmax(0, 7fr) !important;
        column-gap: .38rem !important;
        row-gap: .58rem !important;
        grid-auto-flow: row !important;
        align-items: stretch !important;
    }

    /* Flughafen volle Breite */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(1) {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    /* Anreise: Datum 65 % | Uhrzeit 35 % */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    /* Rückreise: Datum 65 % | Uhrzeit 35 % */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    /* Button volle Breite */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
    }

    /*
     * Alle alten festen width/min-width/max-width-Werte neutralisieren.
     * Die Grid-Spalten allein bestimmen jetzt die Breite.
     */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        flex: none !important;
        box-sizing: border-box !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* PV_ONLY_MOBILE_DATE_TIME_WIDTHS_20260830
 * AUSSCHLIESSLICH Smartphone.
 * Desktop/Tablet ab 768px bleiben unangetastet.
 */
@media (max-width: 767.98px) {

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;

        /* Datum ca. 64 %, Uhrzeit ca. 36 % */
        grid-template-columns:
            minmax(0, 1.78fr)
            minmax(0, 1fr) !important;

        column-gap: .38rem !important;
        row-gap: .58rem !important;
        grid-auto-flow: row !important;
    }

    /* Flughafen volle Breite */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(1) {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    /* Anreise: Datum breit | Uhrzeit schmal */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    /* Rückreise: Datum breit | Uhrzeit schmal */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    /* Button volle Breite */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
    }

    /* Alte feste Breiten neutralisieren */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        margin: 0 !important;
        flex: none !important;
        box-sizing: border-box !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) .pv-picker-trigger,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}

/* PV_MOBILE_BOOTSTRAP_DATE_TIME_7_5_CSS_20260830
 *
 * Mobile ONLY:
 * Bootstrap determines the widths:
 *   col-7 = Datum
 *   col-5 = Uhrzeit
 *
 * Desktop from 768px upward goes back to the existing CSS grid,
 * and Bootstrap width/flex/padding effects are neutralized there.
 */

/* Desktop: existing layout wins; Bootstrap classes have no sizing effect. */
@media (min-width: 768px) {
    body.pv-home-public
    .pv-booking-search-grid.pv-booking-search-inline-labels.row {
        display: grid !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        --bs-gutter-x: 0;
        --bs-gutter-y: 0;
    }

    body.pv-home-public
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .pv-booking-search-field,
    body.pv-home-public
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .pv-booking-search-submit {
        width: auto !important;
        max-width: none !important;
        flex: none !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
}

/* Smartphone: real Bootstrap row/columns, no custom grid widths. */
@media (max-width: 767.98px) {
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row {
        display: flex !important;
        flex-wrap: wrap !important;
        width: auto !important;
        max-width: none !important;
        grid-template-columns: none !important;
        grid-auto-flow: initial !important;
        margin-left: calc(-.5 * var(--bs-gutter-x)) !important;
        margin-right: calc(-.5 * var(--bs-gutter-x)) !important;
        column-gap: 0 !important;
        row-gap: 0 !important;
        --bs-gutter-x: .5rem;
        --bs-gutter-y: .55rem;
    }

    /*
     * Remove every old fixed width/max-width/mobile-grid override.
     * Bootstrap's col-7 / col-5 now owns the width.
     */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .pv-booking-search-field,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .pv-booking-search-submit {
        min-width: 0 !important;
        max-width: 100% !important;
        margin: 0 !important;
        grid-column: auto !important;
        grid-row: auto !important;
        box-sizing: border-box !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .col-7 {
        flex: 0 0 auto !important;
        width: 58.33333333% !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .col-5 {
        flex: 0 0 auto !important;
        width: 41.66666667% !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .col-12 {
        flex: 0 0 auto !important;
        width: 100% !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels.row
    > .pv-booking-search-field
    > .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* PV_MOBILE_CUSTOM_GRID_FINAL_20260830
 *
 * NUR SMARTPHONE.
 * Zurück zur eigenen CSS-Grid-Version.
 *
 * Aufbau:
 *   Flughafen          100 %
 *   Anreise Datum      62 % | Uhrzeit 38 %
 *   Rückreise Datum    62 % | Uhrzeit 38 %
 *   Suchbutton         100 %
 *
 * Desktop wird durch diesen Block nicht verändert.
 */
@media (max-width: 767.98px) {
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels {
        display: grid !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;

        /* sichtbar verschieden, aber Uhrzeit nicht zu schmal */
        /* PV_MOBILE_DATE_WIDTH_64_36_20260830 */
        grid-template-columns:
            minmax(0, 1.78fr)
            minmax(0, 1fr) !important;

        column-gap: .38rem !important;
        row-gap: .58rem !important;
        grid-auto-flow: row !important;
        align-items: stretch !important;
    }

    /* Flughafen */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(1) {
        grid-column: 1 / -1 !important;
        grid-row: 1 !important;
    }

    /* Anreise: Datum | Uhrzeit */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2) {
        grid-column: 1 !important;
        grid-row: 2 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3) {
        grid-column: 2 !important;
        grid-row: 2 !important;
    }

    /* Rückreise: Datum | Uhrzeit */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4) {
        grid-column: 1 !important;
        grid-row: 3 !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        grid-column: 2 !important;
        grid-row: 3 !important;
    }

    /* Button */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        grid-column: 1 / -1 !important;
        grid-row: 4 !important;
    }

    /*
     * Sämtliche alte feste Breiten neutralisieren.
     * Nur die zwei Grid-Spalten bestimmen die Feldbreite.
     */
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field,
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-submit {
        min-width: 0 !important;
        max-width: none !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        flex: none !important;
        box-sizing: border-box !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(2),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(3),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(4),
    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field:nth-of-type(5) {
        width: 100% !important;
    }

    body.pv-home-public
    .pv-booking-search-card
    .pv-booking-search-grid.pv-booking-search-inline-labels
    > .pv-booking-search-field
    > .pv-picker-trigger {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
}