/* Keep booking controls aligned across cruise grids and carousels. */
.swiper-wrapper:has(> .swiper-slide > .w-full.flex.flex-col.h-full.min-h-0) {
    align-items: stretch !important;
}

.swiper-slide:has(> .w-full.flex.flex-col.h-full.min-h-0) {
    display: flex !important;
    height: auto !important;
}

.swiper-slide:has(> .w-full.flex.flex-col.h-full.min-h-0) > * {
    width: 100%;
}

.swiper-slide > .w-full.flex.flex-col.h-full.min-h-0 {
    height: 100% !important;
}

/* A long route name must not make one booking block taller than the rest. */
.swiper-slide > .w-full.flex.flex-col.h-full.min-h-0
    > div.mt-3.rounded-xl
    > div.flex.items-center:first-child
    > span.min-w-0 {
    display: flex;
    min-width: 0;
    align-items: center;
    overflow: hidden;
    white-space: nowrap;
}

.swiper-slide > .w-full.flex.flex-col.h-full.min-h-0
    > div.mt-3.rounded-xl
    > div.flex.items-center:first-child
    > span.min-w-0
    > span:first-child {
    flex: 0 0 auto;
}

.swiper-slide > .w-full.flex.flex-col.h-full.min-h-0
    > div.mt-3.rounded-xl
    > div.flex.items-center:first-child
    > span.min-w-0
    > span.ml-1 {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
