/* Travel listing: the muted blue from the Airplane brand palette. */
.trips-list { --trip-blue: #21526d; --trip-soft: #edf3f6; --trip-line: #dfe8ed; }
body.trips-list { background: #f6f8fa; color: #21526d; }
.trips-list .trips-page { max-width: 1320px; padding-top: 28px; padding-bottom: 64px; }
.trips-hero { position: relative; isolation: isolate; overflow: hidden; border-radius: 28px; background: var(--trip-blue); min-height: 340px; display: flex; align-items: center; }
.trips-hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 55%; z-index: -2; }
.trips-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, #153c52 0%, rgba(33,82,109,.92) 32%, rgba(33,82,109,.2) 100%); }
.trips-hero__content { padding: 48px; max-width: 690px; color: white; }
.trips-eyebrow { display: inline-flex; align-items: center; gap: 8px; font-size: 10px; letter-spacing: .17em; font-weight: 600; margin-bottom: 20px; }
.trips-eyebrow .material-symbols-outlined { font-size: 20px; }
.trips-hero h1 { font-size: clamp(30px, 4vw, 48px); line-height: 1.16; font-weight: 700; letter-spacing: -.04em; margin: 0 0 18px; }
.trips-hero p { max-width: 470px; color: #e0eaf0; font-size: 13px; line-height: 1.8; margin: 0; }
.trips-list #trip-filter { margin-top: 24px; }
.trips-list .trips-search { background: white; border: 1px solid var(--trip-line); box-shadow: 0 8px 28px rgba(33,82,109,.04); padding: 24px; border-radius: 22px; }
.trips-search label { color: #587080; font-size: 12px; margin-bottom: 8px; }
.trips-list .tdd-btn { background: #f4f7f9; border: 1px solid var(--trip-line); color: var(--trip-blue); border-radius: 12px; min-height: 46px; font-size: 13px; padding: 12px 14px; }
.trips-list .tdd-list { border-color: var(--trip-line); color: var(--trip-blue); }
.trips-list .tdd-opt:hover { background: var(--trip-soft); }
.trips-list .tdd-chev { color: var(--trip-blue); }
.trips-list .trips-search__submit, .trips-list .trips-filters__submit { background: var(--trip-blue); color: white; min-height: 46px; border-radius: 12px; box-shadow: none; font-size: 13px; }
.trips-list .trips-search__submit:hover, .trips-list .trips-filters__submit:hover { background: #183f55; }
.trips-list .trips-layout { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; }
.trips-list .trips-results, .trips-list .trips-filters { grid-column: auto; min-width: 0; }
.trips-results__heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.trips-kicker { display: block; color: #6b818e; font-size: 9px; font-weight: 600; letter-spacing: .13em; margin-bottom: 8px; }
.trips-results__heading h2 { font-size: 21px; font-weight: 700; color: var(--trip-blue); letter-spacing: -.03em; display: flex; align-items: center; gap: 10px; }
.trips-results__heading h2 span { font-size: 11px; letter-spacing: normal; background: #e7eef2; border-radius: 8px; padding: 5px 8px; }
.trips-list .trips-card-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.trips-list .trip-card { padding: 10px; border: 1px solid var(--trip-line); border-radius: 22px; box-shadow: 0 3px 12px rgba(33,82,109,.025); display: flex; flex-direction: column; transition: box-shadow .2s, border-color .2s; }
.trips-list .trip-card:hover { border-color: #b8cdd9; box-shadow: 0 12px 30px rgba(33,82,109,.1); }
.trips-list .trip-card__image { height: 235px; border-radius: 15px; margin-bottom: 0; }
.trip-card__image-link { display: block; height: 100%; }
.trip-card__image-action { z-index: 1; }
.trip-card__image-action a { background: rgba(255,255,255,.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border-color: rgba(255,255,255,.25); border-radius: 10px; padding: 10px; }
.trip-card__image-action a:hover { background: rgba(255,255,255,.2); }
.trip-card__content { padding: 18px 10px 10px; display: flex; flex-direction: column; flex: 1; }
.trip-card__content h3 { color: #21526d; line-height: 1.5; min-height: 48px; font-size: 16px; }
.trip-card__content h3 a:hover { color: var(--trip-blue); }
.trip-card__content [class*="text-[#1E4F6B]"] { color: var(--trip-blue); }
.trip-card__price { margin-top: auto; padding-top: 15px; border-color: var(--trip-line); }
.trip-card__price > div > span:first-child { font-size: 18px; color: var(--trip-blue); }
.trips-list .trips-filters { background: white; color: var(--trip-blue); padding: 24px; border: 1px solid var(--trip-line); border-radius: 22px; box-shadow: none; position: sticky; top: 100px; }
.trips-filters h3 { font-weight: 700; font-size: 15px; }
.trips-filters h4 { font-size: 12px; }
.trips-filters .material-symbols-outlined { color: var(--trip-blue); }
.trips-filters .border-b, .trips-filters .border-t { border-color: var(--trip-line); }
.trips-filters #days-out { background: var(--trip-soft); color: var(--trip-blue); }
.trips-filters input[type="range"] { accent-color: var(--trip-blue); }
.trips-list .trips-custom { border-radius: 28px; min-height: 260px; box-shadow: none; }
.trips-custom h2 { text-transform: none; font-size: clamp(24px, 3vw, 36px); letter-spacing: -.035em; }
.trips-custom > .absolute.bg-gradient-to-r { background: linear-gradient(90deg, rgba(21,60,82,.94), rgba(33,82,109,.45)); }
.trips-list button:focus-visible, .trips-list a:focus-visible, .trips-list select:focus-visible { outline: 3px solid #8eaebb; outline-offset: 3px; }
@media (max-width: 1023px) {
    .trips-list .trips-layout { grid-template-columns: minmax(0, 1fr); }
    .trips-list .trips-filters { position: static; }
    .trips-hero__content { padding: 36px; }
}
@media (max-width: 639px) {
    .trips-list .trips-page { padding-top: 20px; }
    .trips-hero { min-height: 310px; border-radius: 22px; }
    .trips-hero__content { padding: 28px 24px; }
    .trips-hero::before { background: linear-gradient(90deg, rgba(21,60,82,.95), rgba(33,82,109,.65)); }
    .trips-hero p { font-size: 12px; }
    .trips-eyebrow { font-size: 8px; letter-spacing: .1em; }
    .trips-list .trips-search { padding: 18px; }
    .trips-results__heading { align-items: flex-start; flex-direction: column; gap: 14px; }
    .trips-list .trips-card-grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .trips-list .trip-card__image { height: 230px; }
    .trips-list .trips-custom { padding: 24px; }
}
@media (prefers-reduced-motion: reduce) {
    .trips-list .trip-card, .trips-list .trip-card img { transition: none; }
    .trips-list .trip-card:hover img { transform: none; }
}

/* Compact three-column results with filters opened on demand. */
.trips-list .trips-layout { grid-template-columns: minmax(0,1fr); position: relative; }
.trips-list .trips-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.trips-list .trip-card__image { height: 190px; }
.trips-list .trip-card { padding: 8px; border-radius: 18px; }
.trips-list .trip-card__content { padding: 14px 8px 8px; }
.trips-list .trip-card__content h3 { font-size: 14px; min-height: 42px; }
.trips-list .trip-card__price > div > span:first-child { font-size: 16px; }
.trips-results { scroll-margin-top: 110px; }
.trips-filter-toggle { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #bed5e2; padding: 10px 16px; border-radius: 12px; background: #eaf3f8; color: #21526d; font-size: 12px; font-weight: 600; }
.trips-filter-toggle:hover,.trips-filter-toggle[aria-expanded="true"] { background: #dceef7; border-color: #7bb9d5; }
.trips-filter-toggle .material-symbols-outlined { font-size: 20px; }
.trips-list .trips-filters { position: absolute; right: 0; top: 62px; width: 320px; max-width: 100%; z-index: 40; box-shadow: 0 16px 45px rgba(20,52,72,.18); background: #fff; }
.trips-list .trips-filters[hidden] { display: none; }
.trips-list #trip-filter-panel { background-color: #fff; color: #183f55; border-color: #b8cedb; box-shadow: 0 18px 48px rgba(15,40,57,.24); backdrop-filter: none; -webkit-backdrop-filter: none; }
#trip-filter-panel .tdd-list { background-color: #fff; border-color: #bfd4e0; }
#trip-filter-panel .tdd-btn { background-color: #f1f6f9; border-color: #bfd4e0; color: #183f55; }
#trip-filter-panel h4 { color: #294f64; font-weight: 600; }
#trip-filter-panel h3 { color: #183f55; font-size: 17px; }
#trip-filter-panel .trips-filters__submit, #trip-filter .trips-search__submit { background-color: #21526d; color: #fff; }
#trip-filter-panel .trips-filters__submit:hover, #trip-filter .trips-search__submit:hover { background-color: #183f55; }
#trip-filter-panel .border-b, #trip-filter-panel .border-t { border-color: #c9dbe6; }
#trip-filter-panel .trips-filter-reset { color: #315d76; font-size: 12px; }
#trip-filter-close { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: #edf4f8; }
.trips-filter-reset { display: block; font-size: 11px; color: #52768a; text-decoration: underline; text-underline-offset: 3px; }
.trips-pagination-row { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 28px; padding-top: 22px; border-top: 1px solid #dce7ee; }
.trips-pagination-row > p { font-size: 12px; color: #627e90; }
.trips-pagination { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.trips-pagination a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #cfdee7; border-radius: 10px; background: #f3f8fb; color: #21526d; font-size: 12px; font-weight: 600; }
.trips-pagination a:hover { border-color: #8cbcd3; background: #e3f0f7; }
.trips-pagination a[aria-current="page"] { background: #21526d; color: #fff; border-color: #21526d; }
.trips-pagination span { font-size: 12px; color: #6c8797; }
@media (max-width: 1023px) { .trips-list .trips-card-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 639px) {
 .trips-list .trips-card-grid { grid-template-columns: minmax(0,1fr); }
 .trips-results__heading { flex-direction: row; align-items: center; flex-wrap: wrap; }
 .trips-results__heading h2 { font-size: 17px; }
 .trips-filter-toggle { padding: 10px 12px; }
 .trips-list .trips-filters { top: 66px; }
 .trips-list .trip-card__image { height: 205px; }
}

/* Clear, keyboard-accessible travel filters. */
.trips-list .trip-select { width: 100%; min-width: 0; min-height: 46px; border: 1px solid var(--trip-line); border-radius: 12px; background-color: #f4f7f9; color: #21526d; padding: 10px 32px 10px 12px; font: inherit; font-size: 13px; }
.trips-list input.trip-select { padding-right: 12px; }
.trip-month-range { margin-top: 8px; }
.trip-month-range summary { width: fit-content; color: #fff; font-size: 12px; cursor: pointer; }
.trip-month-range summary:focus-visible { outline: 2px solid #fff; outline-offset: 4px; border-radius: 3px; }
.trip-month-range[open] summary { margin-bottom: 10px; }
.trip-result-actions { display: flex; align-items: end; gap: 12px; }
.trip-active-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 22px; }
.trip-active-filters a { display: inline-flex; align-items: center; gap: 10px; border: 1px solid #c8dce7; border-radius: 30px; background: #edf5f9; padding: 8px 12px; color: #21526d; font-size: 12px; }
.trip-active-filters a:hover { background: #dcecf5; }
.trip-active-filters a span { font-size: 18px; line-height: 1; }
.trip-active-filters .trip-clear-all { background: transparent; border-color: transparent; text-decoration: underline; }
#trip-filter-panel label { display: block; color: #587080; font-size: 12px; }
#trip-filter-panel .trip-promo-option { display: flex; align-items: center; gap: 10px; min-height: 44px; color: #21526d; cursor: pointer; }
.trip-promo-option input { accent-color: #21526d; width: 18px; height: 18px; }
.trips-list input:focus-visible { outline: 3px solid #8eaebb; outline-offset: 3px; }
@media (max-width: 639px) {
 .trip-result-actions { width: 100%; justify-content: space-between; align-items: center; }
 .trips-filter-toggle { flex-shrink: 0; }
 .trips-list .trips-filters { position: static; width: 100%; grid-row: 1; }
}

.trip-month-label { display: block; color: rgba(255,255,255,.85); font-size: 11px; margin: 0 0 5px; }

/* Keep the three primary filters aligned; optional months sit below the row. */
.trips-search-fields { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; align-items: end; }
.trips-search-fields > div { min-width: 0; }
.trips-search-fields label { display: block; }
.trips-search-fields .trips-search__submit { width: 100%; }
.trips-search .trip-month-range { margin-top: 12px; max-width: 360px; }
.trips-search .trip-month-range summary { color: #21526d; }
.trips-search .trip-month-range summary:focus-visible { outline-color: #8eaebb; }
@media (min-width: 640px) {
    .trips-search-fields { grid-template-columns: repeat(3,minmax(0,1fr)); }
    .trips-search-fields .trips-search__submit { grid-column: 1 / -1; }
}
@media (min-width: 1024px) {
    .trips-search-fields { grid-template-columns: repeat(3,minmax(0,1fr)) auto; }
    .trips-search-fields .trips-search__submit { grid-column: auto; width: auto; }
}

.trip-detail-flow { max-width: 1100px; margin-inline: auto; }
.trip-detail-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 20px; }
.trip-detail-card { display: block; overflow: hidden; border: 1px solid #dfe8ed; border-radius: 20px; background: #fff; color: #21526d; }
.trip-detail-card:hover { box-shadow: 0 8px 24px rgba(33,82,109,.12); }
.trip-detail-card img { width: 100%; height: 190px; object-fit: cover; }
.trip-detail-card > div { padding: 20px; }
.trip-detail-card h4 { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
.trip-detail-card p { font-size: 12px; line-height: 1.7; color: #587080; }
.trip-video-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; }
.trip-video { width: 100%; aspect-ratio: 16 / 9; border: 0; border-radius: 20px; }
.trip-booking form { max-width: 720px; margin-inline: auto; }
@media (max-width: 767px) { .trip-detail-cards { grid-template-columns: repeat(2,minmax(0,1fr)); } .trip-video-grid { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 479px) { .trip-detail-cards { grid-template-columns: minmax(0,1fr); } }

.trip-detail-empty { color: #587080; font-size: 13px; line-height: 1.7; padding: 16px 20px; border: 1px dashed #cadbe5; border-radius: 16px; background: #f7fbfd; }

.trip-review-details summary { cursor: pointer; font-weight: 600; color: #21526d; font-size: 14px; }

.trip-detail-card p { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }

/* Hotel options within a trip: clear selected state and a readable photo card. */
#trip-hotels{padding:26px;border:1px solid #dce7ed;border-radius:24px;background:linear-gradient(135deg,#f8fbfdde,#eef5f8bb);color:#203f52;scroll-margin-top:110px}
.trip-hotel-heading{display:flex;align-items:flex-start;gap:14px;margin-bottom:22px}.trip-hotel-heading>.material-symbols-outlined{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;background:#e1edf3;color:#21526d;font-size:25px;flex-shrink:0}.trip-hotel-heading h3{font-size:22px;font-weight:700;line-height:1.5;letter-spacing:-.025em}.trip-hotel-heading p{font-size:11px;line-height:1.9;color:#748b99;max-width:600px;margin-top:6px}
#trip-hotels .trip-hotel-tabs{display:flex;gap:10px;overflow:auto;padding:3px 3px 14px;margin:0 -3px;scrollbar-width:thin}
#trip-hotels .hotel-tab{display:flex;align-items:center;gap:10px;flex-shrink:0;border:1px solid #d3e2eb;background:#ffffffc9;color:#637f8f;border-radius:13px;padding:12px 15px;text-align:left;font-size:11px;line-height:1.8;font-weight:600;transition:background .2s,border-color .2s;max-width:300px}
#trip-hotels .hotel-tab>span:last-child{overflow-wrap:anywhere}.hotel-tab small{display:block;font-size:10px;letter-spacing:2px;color:#b68a49;margin-top:2px}
#trip-hotels .trip-hotel-tab-check{display:grid;place-items:center;width:24px;height:24px;border:1px solid #c7d9e4;border-radius:50%;color:transparent;font-size:15px;flex-shrink:0}
#trip-hotels .hotel-tab[aria-pressed=true]{background:#e4eff5;border-color:#749eb4;color:#21526d;box-shadow:inset 0 0 0 1px #749eb430}
#trip-hotels .hotel-tab[aria-pressed=true] .trip-hotel-tab-check{background:#21526d;border-color:#21526d;color:white}
#trip-hotels .hotel-tab:hover{border-color:#749eb4}.trip-hotel-choice :is(button,a):focus-visible{outline:3px solid #7ebddf;outline-offset:3px}
#trip-hotels .hotel-panel{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:0;border:1px solid #dbe6ed;border-radius:20px;overflow:hidden;background:#ffffffde;box-shadow:0 8px 24px #21526d08;margin-top:4px;min-width:0}
#trip-hotels .hotel-panel[hidden]{display:none!important}
.trip-hotel-gallery{position:relative;background:#e6eff4;min-width:0;min-height:260px}.trip-hotel-cover{width:100%;height:100%;min-height:260px;object-fit:cover;position:absolute;inset:0}.trip-hotel-no-photo{display:grid;place-items:center;width:100%;height:100%;min-height:260px;background:linear-gradient(140deg,#e0edf3,#c7dce7)}.trip-hotel-no-photo span{font-size:65px;color:#6892a9}
.trip-hotel-previews{position:absolute;bottom:14px;left:14px;right:14px;display:flex;gap:8px}.trip-hotel-previews img{width:72px;height:54px;border:3px solid #fff;border-radius:9px;object-fit:cover;box-shadow:0 4px 12px #17374b30}
.trip-hotel-info{padding:24px;min-width:0;display:flex;flex-direction:column}.trip-hotel-meta{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;margin-bottom:14px}.trip-hotel-selected{display:inline-flex;align-items:center;gap:5px;background:#eaf5ef;color:#39745e;font-size:10px;font-weight:600;border-radius:999px;padding:5px 9px}.trip-hotel-selected .material-symbols-outlined{font-size:15px}.trip-hotel-rating{font-size:13px;letter-spacing:2px;color:#b68a49}
.trip-hotel-info h4{font-size:19px;line-height:1.65;color:#21526d;font-weight:700;overflow-wrap:anywhere;letter-spacing:-.02em}.trip-hotel-location{display:flex;align-items:flex-start;gap:5px;font-size:10px;line-height:1.8;color:#8094a0;margin-top:8px}.trip-hotel-location .material-symbols-outlined{font-size:16px;flex-shrink:0}.trip-hotel-description{font-size:11px;line-height:1.95;color:#718997;margin-top:16px;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.trip-hotel-amenities{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 0;padding:0;list-style:none}.trip-hotel-amenities li{display:inline-flex;align-items:center;gap:4px;border:1px solid #dfebf0;background:#f5f9fb;border-radius:8px;padding:5px 7px;font-size:9px;line-height:1.7;color:#648293}.trip-hotel-amenities .material-symbols-outlined{font-size:13px;color:#448575}
.trip-hotel-footer{border-top:1px solid #e2ebf0;padding-top:16px;margin-top:auto}.trip-hotel-info>.trip-hotel-footer{margin-top:20px}.trip-hotel-footer a{display:inline-flex;align-items:center;justify-content:space-between;gap:14px;border:1px solid #c7dbe6;border-radius:10px;background:#eef5f8;color:#21526d;font-size:11px;font-weight:600;min-height:40px;padding:10px 13px}.trip-hotel-footer a:hover{background:#e1edf3}.trip-hotel-footer .material-symbols-outlined{font-size:17px}
@media(max-width:1000px){#trip-hotels .hotel-panel{grid-template-columns:1fr 1fr}.trip-hotel-info{padding:20px}.trip-hotel-heading h3{font-size:20px}}
@media(max-width:640px){#trip-hotels{padding:18px;border-radius:20px}.trip-hotel-heading{gap:11px;margin-bottom:18px}.trip-hotel-heading h3{font-size:18px}.trip-hotel-heading>.material-symbols-outlined{width:38px;height:38px;font-size:22px;border-radius:11px}.trip-hotel-heading p{font-size:10px}#trip-hotels .hotel-panel{grid-template-columns:1fr}.trip-hotel-gallery{min-height:225px;height:225px}.trip-hotel-cover{min-height:0}.trip-hotel-info{padding:20px}.trip-hotel-info h4{font-size:18px}#trip-hotels .hotel-tab{max-width:250px;padding:10px 12px}.trip-hotel-footer a{width:100%}}
@media(prefers-reduced-motion:reduce){#trip-hotels *{transition:none!important}}

/* Booking is adjacent to the overview and route, below the full-width gallery. */
.trip-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:28px;align-items:start}
.trip-detail-content{min-width:0}.trip-detail-layout #trip-overview,.trip-detail-layout #trip-route{padding:24px;border:1px solid #dae6ed;border-radius:22px;background:#ffffffb8}
.trip-detail-layout #trip-overview h3,.trip-detail-layout #trip-route h3{font-size:21px;line-height:1.6;margin-bottom:14px}
#trip-booking.trip-booking{color:#24485e;background:linear-gradient(145deg,#ffffffeb,#edf5f9eb);border:1px solid #d2e2ec;border-radius:24px;padding:24px;box-shadow:0 8px 28px #1e4f6b0d;scroll-margin-top:110px;min-width:0}
.trip-booking-heading{display:flex;align-items:center;gap:10px}.trip-booking-heading>.material-symbols-outlined{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#e1edf4;color:#21526d;font-size:23px;flex-shrink:0}.trip-booking-heading h3{font-size:21px;font-weight:700;line-height:1.5;letter-spacing:-.025em}
#trip-booking .trip-booking-intro{font-size:11px;color:#758d9b;line-height:1.95;margin-top:13px}
.trip-booking-price{display:flex;flex-direction:column;gap:4px;text-align:left;background:linear-gradient(120deg,#e8f2f7,#e4f0eb);border:1px solid #d8e7ec;padding:17px;border-radius:15px;margin:20px 0}
#trip-booking .trip-booking-price>span:first-child{font-size:10px;color:#6e8999;opacity:1}.trip-booking-price>span:last-child{font-size:27px!important;line-height:1.5;color:#21526d;letter-spacing:-.03em}
#trip-booking form{margin:0;max-width:none}#trip-booking form>label{font-size:11px;color:#627f91;margin-bottom:8px}
#trip-booking :is(input:not([type=hidden]):not([type=file]):not([type=radio]):not([type=checkbox]),select,textarea){background:#fff;border:1px solid #d8e5ed;border-radius:11px;font-size:11px;min-height:42px;color:#24485e;font-family:inherit}
#trip-booking input::placeholder,#trip-booking textarea::placeholder{color:#93a6b2;font-size:10px}
#trip-booking form>p{font-size:10px;color:#8297a4;line-height:1.9}
#trip-booking form button[type=submit],#trip-booking>div>a[href^="login"]{background:#21526d;color:#fff;border-radius:12px;box-shadow:0 4px 12px #21526d18;font-size:11px;letter-spacing:0;text-transform:none;min-height:46px;transform:none}
#trip-booking form button[type=submit]:hover{background:#173f58}
#trip-booking #tripDepartureBtn{border:1px solid #d8e5ed;border-radius:11px;min-height:42px;color:#24485e}#trip-booking #tripDepartureList{color:#24485e}
#trip-booking>div:last-child{border-top:1px solid #d8e5ed;margin-top:22px;padding-top:18px}
#trip-booking>div:last-child>a{min-height:42px;border-radius:11px;font-size:10px;box-shadow:none;transform:none}#trip-booking>div:last-child>a[href^="tel:"]{color:#21526d;border:1px solid #cedfe8;background:#e8f1f6}
#trip-booking>div:has(>a[href^="login"]){background:#f1f7fa;border:1px solid #dae7ee;color:#648192;font-size:11px}
#trip-booking :is(input,select,textarea,button,a):focus-visible{outline:3px solid #7ebddf;outline-offset:3px}
.trip-detail-layout .trip-detail-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.trip-detail-layout .trip-video-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.trip-detail-layout #trip-hotels{padding:20px}.trip-detail-layout #trip-hotels .hotel-panel{grid-template-columns:1fr}.trip-detail-layout .trip-hotel-gallery{height:230px;min-height:230px}.trip-detail-layout .trip-hotel-cover{min-height:0}
@media(max-width:1050px){.trip-detail-layout{grid-template-columns:1fr}.trip-detail-layout #trip-booking{max-width:680px;width:100%;margin-inline:auto}.trip-detail-layout #trip-hotels .hotel-panel{grid-template-columns:1fr 1fr}.trip-detail-layout .trip-hotel-gallery{height:auto;min-height:260px}.trip-detail-layout .trip-video-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.trip-detail-layout{gap:24px}.trip-detail-layout #trip-overview,.trip-detail-layout #trip-route{padding:20px}.trip-detail-layout #trip-overview h3,.trip-detail-layout #trip-route h3{font-size:19px}#trip-booking.trip-booking{padding:22px;border-radius:20px}.trip-detail-layout #trip-hotels .hotel-panel{grid-template-columns:1fr}.trip-detail-layout .trip-hotel-gallery{height:225px;min-height:225px}.trip-detail-layout .trip-video-grid{grid-template-columns:1fr}}
@media(max-width:479px){.trip-detail-layout .trip-detail-cards{grid-template-columns:1fr}}
#trip-booking :is(input:not([type=hidden]):not([type=file]):not([type=radio]):not([type=checkbox]),select,textarea){min-width:0;width:100%}#trip-booking form>.grid>div{min-width:0}
.trip-booking-pax{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0}.trip-booking-pax label{font-size:11px;line-height:1.7;color:#627f91}#trip-booking .trip-booking-pax input{width:88px}

/* Schedule dates and day/night duration remain readable on small cards. */
.trip-card-meta>div{flex-wrap:wrap;gap:6px 12px}
.trip-card-calendar{position:relative;margin:0 0 12px;font-size:11px;color:#1e4f6b}
.trip-card-calendar summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;padding:9px 10px;background:#eff6fa;border:1px solid #dbe8ef;border-radius:9px;font-weight:600}
.trip-card-calendar summary::-webkit-details-marker{display:none}.trip-card-calendar summary>span:last-child{margin-left:auto}
.trip-card-dates{padding:8px;background:#fff;border:1px solid #e0eaf0;border-radius:10px;margin-top:6px;max-height:220px;overflow:auto}
.trip-card-dates a{display:flex;justify-content:space-between;gap:6px;flex-wrap:wrap;padding:9px 4px;border-bottom:1px solid #edf2f5}.trip-card-dates small{color:#78909d;font-size:10px}.trip-card-dates p{font-size:10px;padding:5px}
.trip-photo-mosaic{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:186px 186px;gap:12px}
.trip-photo-tile{position:relative;overflow:hidden;border:0;border-radius:20px;background:#edf3f7;padding:0;cursor:zoom-in;min-width:0}.trip-photo-tile:first-child{grid-row:1/3}
.trip-photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .2s}.trip-photo-tile:hover img{transform:scale(1.03)}.trip-photo-tile>span{position:absolute;bottom:12px;right:12px;background:#183f56b3;color:white;padding:6px 10px;border-radius:8px;font-size:10px}
.trip-photo-count-1{grid-template-columns:1fr}.trip-photo-count-2 .trip-photo-tile:last-child{grid-row:1/3}
#trip-itinerary .itin-item{overflow:hidden;background:transparent}#trip-itinerary .trip-itinerary-photos{display:grid;grid-template-columns:minmax(0,1fr);gap:0;width:100%;background:transparent}#trip-itinerary .trip-itinerary-photos button{display:block;width:100%;min-width:0;height:auto;max-height:none;aspect-ratio:auto;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;cursor:zoom-in;line-height:0}#trip-itinerary .trip-itinerary-photos img{display:block;width:100%;max-width:none;height:auto;max-height:none;margin:0;padding:0;border:0;border-radius:0;object-fit:cover}
#tripPhotoViewer{position:fixed;margin:auto;padding:12px;border:0;border-radius:18px;max-width:94vw;max-height:92dvh;background:#fff}#tripPhotoViewer::backdrop{background:#092332cc}#tripPhotoViewer>img{max-width:90vw;max-height:85dvh;object-fit:contain}#tripPhotoViewer .trip-photo-close{position:absolute;right:16px;top:16px;width:36px;height:36px;border-radius:50%;background:#fff;color:#1e4f6b;box-shadow:0 2px 12px #183f5633;font-size:26px}
@media(max-width:767px){.trip-photo-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:220px 110px;gap:8px}.trip-photo-tile{border-radius:14px}.trip-photo-tile:first-child{grid-column:1/3;grid-row:1}.trip-photo-count-1{grid-template-rows:240px}.trip-photo-count-2 .trip-photo-tile:last-child{grid-row:2;grid-column:1/3}.trip-card-meta{font-size:10px}.trip-card-calendar summary{padding:8px;font-size:10px}}
#trip-booking .trip-booking-pax{padding-bottom:0}
#tripBookingFields .trip-booking-pax + .grid{margin-top:24px}

/* One card style for regular trips and offers. */
.trip-card-discount-badge{position:absolute;left:10px;top:10px;padding:6px 10px;border-radius:8px;background:#fff;color:#dc343d;font-size:10px;font-weight:700;box-shadow:0 2px 8px #0001;pointer-events:none}
.trips-list .trip-card-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:5px 9px;margin:0 0 12px;font-size:13px}.trips-list .trip-card-price strong{font-size:14px;color:#21526d}.trips-list .trip-card-price>span{font-size:10px;color:#7d939f}.trips-list .trip-card-price--discount s{color:#dc343d;font-size:11px}.trips-list .trip-card-price.trip-card-price--discount>strong{color:#21526d}

.trip-passenger-picker{position:relative;min-width:0;margin:8px 0 18px}.trip-passenger-heading{display:block;margin-bottom:6px;color:#627f91;font-size:11px}

#trip-booking .trip-document-label{display:block;margin:0 0 6px;color:#627f91;font-size:11px;line-height:1.6}



.trip-loan-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:16px}.trip-loan-provider{padding:20px;border:1px solid #dfe9ee;border-radius:20px;background:#f7fafc;min-width:0}.trip-loan-provider-heading{display:flex;align-items:center;gap:12px;margin-bottom:12px}.trip-loan-provider-heading img{max-width:96px;max-height:36px;object-fit:contain}.trip-loan-provider h4{margin:0;font-size:15px;font-weight:700;color:#21526d}.trip-loan-provider-terms{white-space:pre-line;overflow-wrap:anywhere;font-size:13px;line-height:1.8;color:#475569}.trip-loan-provider>a{display:inline-block;margin-top:12px;color:#21526d;font-size:12px;font-weight:600}
.trip-loan-provider{padding:22px}.trip-loan-provider-terms{font-size:14px;line-height:1.85}.trip-loan-provider-heading{flex-wrap:wrap}.trip-loan-provider>a{min-height:44px;display:inline-flex;align-items:center;font-size:13px}.trip-loan-provider>a:focus-visible{outline:3px solid #8ebbd1;outline-offset:3px;border-radius:5px}
@media(max-width:767px){.trip-loan-list{grid-template-columns:1fr;gap:14px}.trip-loan-provider{padding:18px}}

@media(max-width:540px){.trip-detail-card img{height:160px}.trip-detail-card>div{padding:14px}.trip-detail-card h4{font-size:14px;line-height:1.5}.trip-detail-card p{font-size:12px}.trip-detail-layout{min-width:0}.trip-detail-layout>div{min-width:0}}

#trip-booking .trip-document-preview{display:block;margin-top:8px}#trip-booking .trip-document-preview[hidden]{display:none}#trip-booking .trip-document-preview img{display:block;width:100%;height:100px;object-fit:contain;border-radius:8px;background:#fff}#trip-booking .trip-document-status{font-size:11px;line-height:1.6;color:#e1f1fa;margin-top:6px}#trip-booking .trip-document-status:empty{display:none}#trip-booking .trip-document-cancel{font-size:11px;text-decoration:underline;color:#fff}

#trip-booking .trip-booking-documents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}#trip-booking .trip-booking-document{min-width:0}#trip-booking .trip-document-number{display:block;width:100%;min-width:0;padding:11px 14px;border:1px solid #d8e5ed;border-radius:14px;background:#fff;color:#21526d;font-size:13px}#trip-booking .trip-document-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}#trip-booking .trip-document-actions>input{display:none!important}#trip-booking .trip-document-actions>:is(button,label){display:inline-flex;position:static;align-items:center;justify-content:center;flex:0 0 36px;width:36px;min-width:36px;height:36px;min-height:36px;margin:0;padding:0;border:1px solid #d3e2eb;border-radius:10px;background:#f4f9fc;color:#21526d;cursor:pointer}#trip-booking .trip-document-actions .material-symbols-outlined{font-size:20px;line-height:1}#trip-booking .trip-document-actions>:is(button,label):focus-visible{outline:2px solid #92c0d7;outline-offset:2px}#trip-booking .trip-document-preview img[hidden],#trip-booking .trip-document-preview span[hidden]{display:none}#trip-booking .trip-document-preview{overflow:hidden;border-radius:10px;font-size:11px;overflow-wrap:anywhere}#trip-booking .trip-document-preview img{height:110px}#trip-booking .trip-booking-document>.private-number-field{display:block;width:100%;min-width:0}#trip-booking .trip-document-status{color:#e4f1f7;font-size:11px!important;line-height:1.6!important}

/* Itinerary photos fill their strip without inherited button/image framing. */
#trip-itinerary .trip-itinerary-photos{padding:0;margin:0;border:0;border-radius:0;background:transparent;gap:0}
#trip-itinerary .trip-itinerary-photos>button{padding:0!important;margin:0!important;min-height:0;border:0;background:transparent;border-radius:0;box-shadow:none;line-height:0}
#trip-itinerary .trip-itinerary-photos>button>img{display:block;width:100%;height:auto;margin:0!important;padding:0!important;border:0;border-radius:0;box-shadow:none;vertical-align:top}
