
.mobile-trip-nav {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    padding-bottom: env(safe-area-inset-bottom);
    border-top: 1px solid #ddd;
    box-shadow: none;
    transition: transform .3s ease;
}

.mobile-trip-nav.hidden {
    transform: translateY(100%);
}
@media (max-width: 767.98px) {
    .footer-section.vpt-mobile-trip-visible { margin-bottom: calc(5rem + env(safe-area-inset-bottom)); }
}

.mobile-trip-bookbar-price {
    display: flex;
    align-items: baseline;
    gap: .3rem;
    min-width: 0;
    line-height: 1.15;
    white-space: nowrap;
}

.mobile-trip-bookbar-label {
    font-size: .75rem;
}

.mobile-trip-bookbar-amount {
    font-weight: 700;
    font-size: 1rem;
    color: var(--bs-green-600);
}

.mobile-trip-bookbar-cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .25rem;
    flex: 0 0 auto;
    min-height: 2.25rem;
    padding: .25rem .55rem;
    font-size: .8rem;
    font-weight: 600;
    white-space: nowrap;
}

.mobile-trip-bookbar-cta i {
    font-size: .9rem;
}

@media (min-width: 768px) {
    .mobile-trip-nav {
        left: auto;
        right: 5px;
        bottom: 5px;
        width: auto;
        max-width: calc(100vw - 10px);
        padding-bottom: 0;
    }

    .mobile-trip-nav.hidden {
        transform: translateY(calc(100% + 5px));
    }
}

.trip-calendar-container .trip-list-price-prefix,
.trip-calendar-container .trip-list-price {
    color: var(--bs-green-600) !important;
}


.daily-booking-modal .daily-modal-price-list {
    display: grid;
    gap: .35rem;
}

.daily-booking-modal .daily-modal-price-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem;
}

.daily-booking-modal .daily-modal-price-label {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    color: var(--bs-secondary-color);
}

.daily-booking-modal .daily-modal-price-label i {
    font-size: 1rem;
}

.daily-booking-modal .daily-modal-price-amount {
    color: var(--bs-body-color);
    font-weight: 600;
    white-space: nowrap;
}

.daily-booking-modal .daily-date-picker {
    border: 1px solid var(--bs-border-color);
    padding: .75rem;
}

.daily-booking-modal .daily-modal-summary {
    border: 1px solid var(--bs-border-color);
    background: var(--bs-bg-1);
}

.daily-booking-modal .daily-modal-pax-input {
    max-width: 6.5rem;
    text-align: center;
    font-weight: 700;
}

.daily-booking-modal .daily-date-picker-head,
.daily-booking-modal .daily-date-weekdays,
.daily-booking-modal .daily-date-days {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: .25rem;
}

.daily-booking-modal .daily-date-picker-head {
    grid-template-columns: 2.25rem minmax(0, 1fr) 2.25rem;
    align-items: center;
    margin-bottom: .75rem;
    text-align: center;
}

.daily-booking-modal .daily-date-weekdays {
    margin-bottom: .35rem;
    color: var(--bs-secondary-color);
    font-size: .75rem;
    text-align: center;
}

.daily-booking-modal .daily-date-day {
    border: 0;
    min-height: 2.75rem;
    background: var(--bs-bg-1);
    color: var(--bs-body-color);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    line-height: 1.15;
}

.daily-booking-modal .daily-date-day-meta {
    display: inline-flex;
    align-items: center;
    gap: .12rem;
    font-size: .62rem;
    font-weight: 500;
    opacity: .72;
}

.daily-booking-modal .daily-date-day-meta i {
    font-size: .7rem;
    line-height: 1;
}

.daily-booking-modal .daily-date-day:hover:not(:disabled),
.daily-booking-modal .daily-date-day.is-selected {
    background: var(--bs-primary-bg);
    color: #fff;
}

.daily-booking-modal .daily-date-day:disabled {
    background: transparent;
    color: var(--bs-secondary-color);
    cursor: not-allowed;
    opacity: .45;
}

.daily-booking-modal .daily-date-day.is-tour-date:disabled,
.daily-booking-modal .daily-date-day.is-selected:disabled {
    background: var(--bs-primary-bg);
    color: #fff;
    opacity: 1;
}

/* VPT trip card structure adapted to the VPT light palette. */
.trip-calendar-panel {
    margin-bottom: 1rem;
    padding: 1rem;
    background: #fff;
    color: var(--vpt-text);
}
.trip-calendar-container .trip-standard-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(108px, auto);
    align-items: start;
    gap: .75rem;
}
.trip-calendar-container .trip-standard-main,
.trip-calendar-container .trip-standard-actions {
    min-width: 0;
}
.trip-calendar-container .trip-standard-price {
    margin-top: .3rem;
    font-size: 1.25rem;
    line-height: 1.25;
}
.trip-calendar-container .trip-standard-actions {
    display: flex;
    flex-direction: column;
    align-self: start;
    align-items: flex-end;
    gap: .55rem;
    text-align: right;
}
.trip-calendar-container .trip-standard-status {
    line-height: 1.25;
}
.trip-calendar-container .trip-standard-actions .btn {
    min-width: 108px;
    padding-inline: .75rem;
    white-space: nowrap;
}
.trip-calendar-container .trip-standard-item > .trip-booking-countdown {
    grid-column: 1 / -1;
}
.trip-calendar-container .trip-item:is(.trip-waitlist, .trip-sold-out) .trip-standard-main .fg-secondary {
    color: var(--vpt-text, #111) !important;
}

@keyframes trip-final-spot-blink {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.2; }
}
.trip-calendar-container .trip-booking-countdown-value {
    font-variant-numeric: tabular-nums;
}
.trip-calendar-container .trip-booking-countdown {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
}
.trip-calendar-container .trip-list-price-prefix,
.trip-calendar-container .trip-list-price {
    color: var(--bs-success-bg);
    line-height: 1.2;
}
.trip-calendar-container .trip-list-price-prefix {
    white-space: nowrap;
}
.trip-calendar-container .trip-list-price {
    font-size: 1.12rem;
    font-weight: 700;
    white-space: nowrap;
}
.trip-calendar-container .trip-booking-countdown-dot {
    width: 8px;
    height: 8px;
    flex-shrink: 0;
    background: currentColor;
    animation: trip-final-spot-blink 1.2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
    .trip-calendar-container .trip-booking-countdown-dot { animation: none; }
}
