.tour-search-page,.tour-compare-page {
    --tour-ink:#0b1640;
    --tour-blue:#0646f4;
    --tour-muted:#3c4e73;
    --tour-tint:#e5effd;
    --tour-line:#dce5f2;
    --tour-card-shadow:0 2px 4px #0b23550c;
    background:linear-gradient(180deg,#f8fafc,#fff 36%);
}
.tour-search-page .tn-shell,.tour-compare-page .tn-shell {
    width:min(1240px, calc(100% - clamp(28px, 7vw, 96px)));
}
.tour-search-page :is(a,button,input,select,summary):focus-visible,
.tour-compare-page :is(a,button,input,[tabindex]):focus-visible {
    outline:2px solid var(--tour-blue);
    outline-offset:2px;
}
.tour-search-hero {
    display:grid;
    align-items:center;
    min-height:clamp(202px, 19.7vw, 268px);
    padding:28px 0 53px;
    background:#0a1b43 linear-gradient(90deg,#06153d 0%,#06153dbe 23%,#06153d30 59%,#06153d00 85%) center/cover;
    background-image:linear-gradient(90deg,#06153d 0%,#06153dbd 24%,#06153d30 59%,#06153d00 88%),url('../images/all-places-hero.png');
    background-position:center, center 49%;
    background-size:cover, 100% clamp(300px,31vw,440px);
    color:#fff;
}
.tour-search-hero .tn-shell { padding-inline:16px; }
.tour-search-hero h1 { color:inherit; margin:0 0 5px; font-size:clamp(1.85rem, 4.05vw, 3.45rem); letter-spacing:-.035em; }
.tour-search-hero p { margin:0; line-height:1.45; }
.tour-results-form {
    position:relative;
    z-index:5;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1.14fr) minmax(0,.98fr) auto;
    gap:clamp(10px, 2vw, 22px);
    margin:-36px 12px 0;
    padding:11px 17px 13px;
    border:1px solid #f1f4f9;
    border-radius:17px;
    background:#fff;
    box-shadow:0 7px 22px #1125471a;
}
.tour-results-form .tour-field > :is(label,span:first-child) { font-size:.76rem; }
.tour-search-page :is(input:not([type="checkbox"]),select,.tour-date-picker summary) {
    min-height:36px;
    border-color:#d4dfef;
    font-size:.84rem;
}
.tour-results-form > .tour-button { min-width:122px; }
.tour-location-field,.tour-date-picker { position:relative; min-width:0; }
.tour-location-field > i {
    position:absolute;
    z-index:1;
    inset-inline-start:12px;
    top:50%;
    transform:translateY(-50%);
    pointer-events:none;
    font-size:.9rem;
}
.tour-results-form .tour-location-field input[type="search"] { padding-inline-start:34px; }
.tour-date-picker summary {
    display:flex;
    gap:8px;
    align-items:center;
    padding:7px 10px;
    border:1px solid #d4dfef;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
    list-style:none;
}
.tour-date-picker summary::-webkit-details-marker { display:none; }
.tour-date-picker summary span { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tour-date-picker summary i:first-child { color:var(--tour-blue); }
.tour-date-picker summary i:last-child { font-size:.7rem; }
.tour-date-panel {
    position:absolute;
    inset-inline-end:0;
    top:calc(100% + 7px);
    display:grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:12px;
    width:clamp(270px, 31vw, 340px);
    padding:14px;
    border:1px solid var(--tour-line);
    border-radius:12px;
    background:#fff;
    box-shadow:0 8px 20px #10245126;
}
.tour-date-panel .tour-dates { grid-column:1/-1; gap:8px; }
.tour-date-panel .tour-dates label { display:grid; gap:4px; font-size:.8rem; }
.tour-date-panel .tour-button { min-height:34px; }
.tour-text-button {
    justify-self:start;
    padding:7px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--tour-blue);
    cursor:pointer;
    font:inherit;
    font-size:.85rem;
    font-weight:700;
}
.tour-text-button:hover { text-decoration:underline; }
.tour-text-button:disabled { opacity:.55; cursor:default; }
.tour-shortcuts {
    display:grid;
    grid-template-columns:repeat(5,minmax(0,1fr));
    gap:8px;
    margin:20px 0 22px;
    padding:0 12px 16px;
    border-bottom:1px solid var(--tour-line);
}
.tour-shortcuts a {
    display:flex;
    justify-content:center;
    align-items:center;
    gap:11px;
    min-height:38px;
    padding:7px 10px;
    border-radius:10px;
    white-space:nowrap;
    font-size:.88rem;
    font-weight:750;
}
.tour-shortcuts i { font-size:1.08rem; }
.tour-shortcuts a:is(:hover,[aria-current="true"]) { background:#e1ecfd; color:var(--tour-blue); text-decoration:none; }
.tour-search-layout {
    display:grid;
    grid-template-columns:minmax(188px,22%) minmax(0,1fr);
    align-items:start;
    gap:18px;
}
.tour-filters {
    display:grid;
    gap:16px;
    padding:14px 15px 16px;
    background:#f8fafc;
    border:1px solid var(--tour-line);
    border-radius:13px;
    box-shadow:var(--tour-card-shadow);
}
.tour-filter-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:6px;
    border-bottom:1px solid var(--tour-line);
    padding-bottom:12px;
}
.tour-filter-heading h2 { margin:0; font-size:1.08rem; letter-spacing:-.03em; }
.tour-filter-heading a { white-space:nowrap; font-size:.8rem; }
.tour-price-fields { gap:10px; }
.tour-price-fields label { display:grid; gap:4px; font-size:.77rem; color:var(--tour-muted); }
.tour-price-input { position:relative; min-width:0; }
.tour-price-input > span { position:absolute; inset-inline-start:9px; top:50%; transform:translateY(-50%); color:var(--tour-ink); pointer-events:none; }
.tour-price-input input[type="number"] { padding-inline-start:23px; }
.tour-filters .tour-check input,.tour-compare-option input { margin:0; }
.tour-filter-toggle { display:none; }
.tour-results-toolbar {
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px 18px;
    margin:-4px 0 18px;
}
.tour-results-heading { margin-inline-end:auto; }
.tour-result-count { font-size:clamp(1.5rem, 2.7vw, 2.15rem); margin:0 0 3px; line-height:1.1; letter-spacing:-.035em; scroll-margin-top:105px; }
.tour-results-heading p { margin:0; color:var(--tour-muted); font-size:.78rem; }
.tour-view-switch { display:flex; border:1px solid var(--tour-line); border-radius:9px; background:#fff; padding:2px; box-shadow:var(--tour-card-shadow); }
.tour-view-switch button {
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    padding:7px 12px;
    min-height:30px;
    border:0;
    border-radius:6px;
    background:transparent;
    color:var(--tour-ink);
    font:inherit;
    font-size:.8rem;
    font-weight:650;
    cursor:pointer;
}
.tour-view-switch button:is(:hover,[aria-pressed="true"]) { background:#e1ecfd; color:var(--tour-blue); }
.tour-sort { display:flex; align-items:center; gap:6px; color:var(--tour-muted); font-size:.78rem; }
.tour-sort select { width:auto; }
.tour-result-list { display:grid; gap:8px; }
.tour-result-list .tour-card {
    grid-template-columns:minmax(0,26%) minmax(0,1fr) minmax(0,28%);
    min-height:110px;
    padding:4px;
    box-shadow:var(--tour-card-shadow);
}
.tour-result-list .tour-card:has([data-tour-compare]:checked) { border-color:var(--tour-blue); }
.tour-result-list .tour-card-image { border-radius:9px; min-height:103px; }
.tour-result-list .tour-ad-label { inset:7px auto auto 7px; padding:3px 7px; border-radius:999px; line-height:1.15; }
.tour-compare-photo {
    position:absolute;
    top:7px;
    inset-inline-end:7px;
    display:grid;
    place-items:center;
    width:22px;
    height:22px;
    border:2px solid #fff;
    border-radius:6px;
    background:#fff;
    color:transparent;
    box-shadow:0 1px 5px #15274845;
    cursor:pointer;
    font-size:.72rem;
}
.tour-card:has([data-tour-compare]:checked) .tour-compare-photo { color:#fff; background:var(--tour-blue); }
.tour-card:has([data-tour-compare]:disabled) .tour-compare-photo { opacity:.6; cursor:default; }
.tour-result-list .tour-card-copy { display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:7px; padding:5px 14px 6px 20px; }
.tour-result-list .tour-card h3 { order:-1; margin:0; font-size:clamp(.96rem, 1.65vw, 1.16rem); line-height:1.14; letter-spacing:-.025em; }
.tour-result-list .tour-meta { gap:4px 12px; color:var(--tour-ink); }
.tour-result-list .tour-meta i { color:inherit; margin-inline-end:3px; }
.tour-result-list .tour-meta .tour-star,.tour-compare-card .tour-star { color:#aa6d00; }
.tour-result-list .tour-free { margin:0; color:#146420; }
.tour-result-list .tour-card-actions {
    display:grid;
    align-content:center;
    align-items:center;
    grid-template-columns:minmax(0,1fr);
    gap:6px;
    margin:5px 0;
    padding:0 12px 0 clamp(12px,2.3vw,27px);
    border-inline-start:1px solid var(--tour-line);
}
.tour-result-price { display:grid; align-content:center; gap:1px; font-size:.77rem; font-weight:650; line-height:1.05; }
.tour-result-price strong { font-size:clamp(1.1rem, 2.05vw, 1.42rem); letter-spacing:-.035em; overflow-wrap:anywhere; }
.tour-result-list .tour-card-view { min-height:30px; padding:4px 8px; font-size:.8rem; }
.tour-compare-option { font-size:.77rem; }
[data-tour-view="grid"] :is(.tour-result-list,.tour-shimmers) { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
[data-tour-view="grid"] .tour-result-list .tour-card { grid-template-columns:minmax(0,1fr); grid-template-rows:auto 1fr auto; padding:0; }
[data-tour-view="grid"] .tour-card-image { aspect-ratio:1.53; min-height:0; border-radius:0; }
[data-tour-view="grid"] .tour-card-copy { justify-content:space-between; padding:9px 13px; }
[data-tour-view="grid"] .tour-card h3 { margin-bottom:auto; font-size:clamp(.95rem, 1.5vw, 1.13rem); }
[data-tour-view="grid"] .tour-card-actions {
    grid-template-columns:minmax(0,1fr) auto;
    margin:0 12px;
    padding:9px 0;
    border-inline-start:0;
    border-top:1px solid var(--tour-line);
    column-gap:4px;
}
[data-tour-view="grid"] .tour-card-view { grid-column:2; grid-row:1; }
[data-tour-view="grid"] .tour-compare-option { grid-column:1/-1; }
[data-tour-view="grid"] .tour-shimmer-card { grid-template-columns:1fr; grid-template-rows:145px 1fr; min-height:240px; }
.tour-pagination { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:8px; margin-top:18px; }
.tour-pagination .tour-button { min-height:36px; box-shadow:var(--tour-card-shadow); font-size:.8rem; }
.tour-pagination .tour-button-outline { border-color:#cfdcf0; }
.tour-pagination .tour-page-number { min-width:40px; padding-inline:8px; }
.tour-pagination span.tour-page-number { cursor:default; }
.tour-compare-bar {
    display:flex;
    align-items:center;
    gap:12px 20px;
    position:sticky;
    z-index:3;
    bottom:8px;
    margin-top:16px;
    padding:10px 16px;
    border:1px solid #dbe8fb;
    border-radius:11px;
    background:#e5effd;
}
.tour-compare-bar > strong { white-space:nowrap; font-size:.9rem; }
.tour-compare-items { display:flex; flex:1; gap:10px 16px; min-width:0; margin:0; padding:0; list-style:none; }
.tour-compare-items li { display:grid; grid-template-columns:minmax(0,62px) minmax(0,1fr) auto; align-items:center; gap:6px; flex:0 1 220px; min-width:0; }
.tour-compare-thumb { display:block; aspect-ratio:1.65; overflow:hidden; border-radius:7px; background:#d4e3f8; }
.tour-compare-thumb img { display:block; width:100%; height:100%; object-fit:cover; }
.tour-compare-item-title { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; overflow:hidden; font-size:.74rem; font-weight:750; }
.tour-compare-items button,.tour-compare-remove {
    display:grid;
    place-items:center;
    width:26px;
    height:26px;
    padding:0;
    border:1px solid #e8eff9;
    border-radius:50%;
    background:#fff;
    color:var(--tour-blue);
    cursor:pointer;
    font:inherit;
    line-height:1;
}
.tour-compare-actions { display:flex; align-items:center; gap:8px; border-inline-start:1px solid #cedcf0; padding-inline-start:14px; }
.tour-compare-actions .tour-button { min-height:38px; white-space:nowrap; }
.tour-compare-hero {
    padding:16px clamp(14px, 2.3vw, 24px);
    border-radius:11px;
    background:linear-gradient(110deg,#e7f0fb,#edf5ff);
}
.tour-compare-title { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; }
.tour-compare-title h1,.tour-compare-hero > h1 { margin:0; letter-spacing:-.045em; }
.tour-compare-title strong {
    padding:6px 12px;
    border-radius:999px;
    background:#d1e4ff;
    color:var(--tour-blue);
    font-size:.82rem;
    white-space:nowrap;
}
.tour-compare-hero p { margin:6px 0 12px; color:var(--tour-muted); font-size:.92rem; }
.tour-compare-hero a,.tour-compare-table a { color:var(--tour-blue); font-size:.86rem; font-weight:750; }
.tour-compare-hero a i { margin-inline-end:4px; }
.tour-compare-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; margin:20px 0; }
.tour-compare-toolbar p { margin:0; color:var(--tour-muted); font-size:.82rem; }
.tour-compare-differences { display:flex; align-items:center; gap:12px; font-size:.82rem; cursor:pointer; }
.tour-compare-differences input {
    appearance:none;
    position:relative;
    width:44px;
    height:24px;
    margin:0;
    border:1px solid #a6adba;
    border-radius:999px;
    background:#c4cbd6;
    cursor:pointer;
}
.tour-compare-differences input::before {
    content:"";
    position:absolute;
    top:2px;
    inset-inline-start:2px;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#fff;
    box-shadow:0 1px 4px #1423483d;
}
.tour-compare-differences input:checked { background:var(--tour-blue); border-color:var(--tour-blue); }
.tour-compare-differences input:checked::before { inset-inline-start:auto; inset-inline-end:2px; }
.tour-comparison-scroll { overflow-x:auto; padding:2px 1px 6px; }
.tour-comparison-columns {
    --tour-comparison-gutter:13.4%;
    --tour-comparison-count:3;
    min-width:calc(108px + var(--tour-comparison-count) * 220px);
}
.tour-comparison-columns[data-column-count="2"] { --tour-comparison-count:2; }
.tour-comparison-columns[data-column-count="1"] { --tour-comparison-count:1; min-width:0; }
.tour-compare-cards {
    display:grid;
    grid-template-columns:repeat(var(--tour-comparison-count),minmax(0,1fr));
    gap:10px;
    margin-inline-start:var(--tour-comparison-gutter);
}
.tour-comparison-columns[data-column-count="1"] .tour-compare-cards { max-width:340px; margin-inline-start:0; }
.tour-compare-card {
    display:grid;
    grid-template-rows:auto 1fr auto auto auto;
    min-width:0;
    padding:7px 8px 12px;
    border:1px solid var(--tour-line);
    border-radius:13px;
    background:#fff;
    box-shadow:var(--tour-card-shadow);
}
.tour-compare-card .tour-card-image { aspect-ratio:2.05; border-radius:9px; }
.tour-compare-card .tour-compare-remove { position:absolute; top:6px; inset-inline-end:6px; box-shadow:0 1px 5px #14234825; }
.tour-compare-card .tour-compare-remove:hover,.tour-compare-items button:hover { background:var(--tour-tint); text-decoration:none; }
.tour-compare-card h2 { margin:8px 3px 4px; font-size:clamp(1rem,1.75vw,1.24rem); line-height:1.2; letter-spacing:-.026em; overflow-wrap:anywhere; }
.tour-compare-rating { margin:0 3px 7px; font-size:.82rem; }
.tour-compare-rating i { margin-inline-end:3px; }
.tour-compare-facts { display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin:0 3px; padding:9px 0; border-top:1px solid var(--tour-line); font-size:.83rem; }
.tour-compare-facts span + span { border-inline-start:1px solid var(--tour-line); padding-inline-start:12px; }
.tour-compare-facts i { margin-inline-end:4px; }
.tour-compare-card > .tour-button { margin:5px 3px 0; min-height:36px; }
.tour-comparison-group { margin-top:21px; }
.tour-comparison-group h2 { margin:0 0 9px; font-size:1.45rem; letter-spacing:-.035em; }
.tour-compare-table { table-layout:fixed; border-top:1px solid var(--tour-line); font-size:.83rem; line-height:1.36; }
.tour-comparison-label { width:var(--tour-comparison-gutter); }
.tour-compare-table thead :is(th,td) { padding:0; height:0; border:0; }
.tour-compare-table tbody th { background:#f0f5fd; font-weight:750; }
.tour-compare-table tbody td { overflow-wrap:anywhere; }
.tour-compare-table tbody td > span { white-space:pre-line; }
.tour-compare-table tbody td + td { border-inline-start:1px solid var(--tour-line); }
.tour-compare-table tbody :is(td,th) { padding:9px 11px; }
.tour-compare-table a { display:block; margin-top:12px; white-space:normal; }
@media (max-width:920px) {
    [data-tour-view="grid"] :is(.tour-result-list,.tour-shimmers) { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tour-compare-items li { grid-template-columns:minmax(0,42px) minmax(0,1fr) auto; }
}
@media (max-width:740px) {
    .tour-results-form { grid-template-columns:repeat(2,minmax(0,1fr)); margin-inline:0; gap:10px; }
    .tour-results-form > .tour-button { grid-column:1/-1; }
    .tour-shortcuts { display:flex; overflow:auto; padding-inline:3px; }
    .tour-shortcuts a { flex:1 0 auto; }
    .tour-search-layout { grid-template-columns:minmax(0,1fr); gap:15px; }
    .tour-filters { grid-template-columns:repeat(2,minmax(0,1fr)); grid-row:2; }
    .tour-filters .tour-filter-heading { grid-column:1/-1; }
    .tour-filters .tour-price-fields { grid-column:1/-1; }
    .tour-search-page[data-tour-filters="closed"] .tour-filters { display:none; }
    .tour-search-page[data-tour-filters="open"] .tour-filters { grid-row:1; }
    .tour-filter-toggle { display:inline-flex; min-height:34px; padding:5px 9px; }
    .tour-compare-bar { flex-wrap:wrap; gap:7px 12px; padding:8px 10px; }
    .tour-compare-items { order:1; flex-basis:100%; }
    .tour-compare-actions { margin-inline-start:auto; border:0; padding:0; }
    .tour-compare-table tbody th { position:sticky; inset-inline-start:0; }
}
@media (max-width:480px) {
    .tour-search-hero { background-position:center, 65% 45%; background-size:cover; }
    .tour-search-hero .tn-shell { padding-inline:0; }
    .tour-results-form { padding-inline:10px; }
    .tour-results-toolbar { gap:8px; }
    .tour-results-heading { flex-basis:100%; }
    .tour-sort { margin-inline-start:auto; }
    .tour-sort select { max-width:120px; padding-inline:5px; }
    .tour-view-switch button { padding-inline:7px; }
    .tour-result-list .tour-card { grid-template-columns:minmax(0,36%) minmax(0,1fr); }
    .tour-result-list .tour-card-copy { padding-inline:10px; }
    .tour-result-list .tour-card-actions { grid-column:1/-1; grid-template-columns:minmax(0,1fr) auto; margin:5px 7px 0; padding:6px 0 3px; border:0; border-top:1px solid var(--tour-line); }
    .tour-result-list .tour-card-view { grid-column:2; grid-row:1; }
    [data-tour-view="grid"] .tour-card-actions { margin-inline:8px; }
    [data-tour-view="grid"] .tour-card-copy { padding-inline:8px; }
    [data-tour-view="grid"] .tour-card-view { grid-column:1/-1; grid-row:auto; }
    .tour-compare-items li { grid-template-columns:minmax(0,1fr) auto; }
    .tour-compare-thumb { display:none; }
}
