.tour-page,.tour-home {
    --tour-ink:#111c44;
    --tour-muted:#4b5d76;
    --tour-blue:#0849ed;
    --tour-line:#dbe5f2;
    --tour-tint:#edf5ff;
    --tour-radius:14px;
    color:var(--tour-ink);
}
.tour-page [hidden],.tour-home[hidden],.tour-home [hidden] { display:none!important; }
.tour-page h1,.tour-page h2,.tour-page h3,.tour-home h3 { color:var(--tour-ink); }
.tour-home { display:grid; gap:16px; margin-bottom:22px; }
.tour-home-finder,.tour-ideas,.tour-booking {
    border:1px solid var(--tour-line); border-radius:var(--tour-radius); padding:18px;
}
.tour-home-finder { background:linear-gradient(135deg,#f2f8fe,#e7f1ff); border-color:#c6dcfa; }
.tour-finder-heading { display:flex; align-items:center; gap:15px; margin-bottom:14px; }
.tour-finder-heading > i { color:var(--tour-blue); font-size:28px; transform:rotate(-10deg); }
.tour-finder-heading h3,.tour-ideas-title { margin:0; font-size:clamp(1.18rem,2.4vw,1.55rem); line-height:1.2; }
.tour-finder-heading p { color:var(--tour-muted); margin:.25rem 0 0; font-size:.9rem; }
.tour-search-fields {
    display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(240px,1.6fr) auto;
    gap:12px; align-items:end;
}
.tour-field,.tour-dates,.tour-price-fields { display:grid; gap:4px; min-width:0; }
.tour-field > span:first-child,.tour-dates legend,.tour-price-fields legend { font-size:.82rem; font-weight:700; }
.tour-dates,.tour-price-fields { grid-template-columns:repeat(2,minmax(0,1fr)); border:0; padding:0; margin:0; }
.tour-dates legend,.tour-price-fields legend { margin-bottom:4px; }
.tour-dates legend span { font-weight:400; color:var(--tour-muted); }
.tour-page input:not([type="checkbox"]),.tour-page select,.tour-home input,.tour-home select {
    display:block; width:100%; min-width:0; min-height:42px; padding:8px 10px; color:var(--tour-ink);
    background:#fff; border:1px solid #c8d8ee; border-radius:8px; font:inherit; font-size:.88rem;
}
.tour-input-icon { position:relative; min-width:0; }
.tour-input-icon > i { position:absolute; left:12px; top:50%; transform:translateY(-50%); color:var(--tour-blue); pointer-events:none; }
.tour-page .tour-input-icon :is(input,select),.tour-home .tour-input-icon select { padding-left:34px; }
.tour-button {
    min-height:42px; display:inline-flex; align-items:center; justify-content:center; gap:.45em;
    padding:8px 16px; border:1px solid var(--tour-blue); border-radius:8px; background:var(--tour-blue);
    color:#fff; font:inherit; font-size:.88rem; font-weight:700; text-align:center; text-decoration:none; cursor:pointer;
}
.tour-button:hover { color:#fff; background:#073bc0; text-decoration:none; }
.tour-button-outline { background:#fff; color:var(--tour-blue); }
.tour-button-outline:hover { color:var(--tour-blue); background:var(--tour-tint); }
.tour-ideas { background:#fff; box-shadow:0 3px 12px #142d5310; }
.tour-ideas-heading { display:flex; align-items:center; flex-wrap:wrap; gap:8px 14px; margin-bottom:14px; }
.tour-ideas-heading h3 { margin-right:auto; }
.tour-ideas-heading > a,.tour-filter-heading a { color:var(--tour-blue); font-size:.85rem; font-weight:700; }
.tour-ideas-heading .tour-area select { min-height:34px; padding-block:4px; }
.tour-ideas-grid,.tour-home .tour-shimmers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.tour-card { display:grid; min-width:0; background:#fff; border:1px solid var(--tour-line); border-radius:12px; overflow:hidden; box-shadow:0 3px 12px #142d530a; }
.tour-card-image { position:relative; display:grid; place-items:center; min-width:0; background:var(--tour-tint); color:var(--tour-blue); overflow:hidden; }
.tour-card-image img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; }
.tour-card-image > i { font-size:2rem; }
.tour-home .tour-card { grid-template-rows:auto 1fr auto; }
.tour-home .tour-card-image { aspect-ratio:2/1; }
.tour-ad-label { position:absolute; bottom:8px; left:8px; border-radius:6px; padding:3px 7px; background:#fff; color:var(--tour-ink); font-size:.72rem; font-weight:700; }
.tour-card-copy { min-width:0; padding:13px 14px 9px; }
.tour-meta { display:flex; flex-wrap:wrap; gap:4px 12px; color:var(--tour-muted); font-size:.79rem; align-items:center; }
.tour-meta i { color:var(--tour-blue); }
.tour-meta .tour-star { color:#a46b00; }
.tour-card h3 { margin:5px 0 3px; font-size:1.08rem; line-height:1.25; overflow-wrap:anywhere; }
.tour-card h3 a { color:inherit; }
.tour-card-copy p { color:var(--tour-muted); margin:5px 0; line-height:1.4; font-size:.88rem; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.tour-free { display:inline-block; margin-top:4px; color:#116341; font-size:.78rem; font-weight:700; }
.tour-card-actions { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:5px 14px 12px; }
.tour-price { display:inline-block; background:#e7f1ff; border-radius:7px; padding:5px 8px; color:#153c92; font-size:.95rem; }
.tour-home .tour-card-view { background:transparent; color:var(--tour-blue); padding:3px; margin-left:auto; border:0; min-height:34px; }
.tour-home .tour-card-view:hover { text-decoration:underline; }
.tour-page h1 { font-size:clamp(1.85rem,4.5vw,3rem); line-height:1.12; margin:.25rem 0 .6rem; overflow-wrap:anywhere; }
.tour-shell { padding-bottom:45px; }
.tour-breadcrumb { display:flex; flex-wrap:wrap; align-items:center; gap:9px; padding:16px 0; color:var(--tour-muted); font-size:.86rem; }
.tour-breadcrumb a { color:var(--tour-blue); }
.tour-check,.tour-compare-option { display:flex; align-items:center; gap:6px; font-size:.85rem; }
.tour-check input,.tour-compare-option input { accent-color:var(--tour-blue); width:16px; height:16px; }
.tour-message { margin:12px 0; padding:16px; border-radius:9px; background:#f2f6fb; color:var(--tour-muted); }
.tour-shimmers { display:grid; gap:12px; }
.tour-shimmer-card { display:grid; grid-template-columns:25% 1fr; gap:12px; min-height:140px; padding:12px; background:#fff; border:1px solid var(--tour-line); border-radius:12px; }
.tour-shimmer-card > div { display:grid; align-content:center; gap:9px; }
.tour-shimmer-card span { display:block; min-height:12px; border-radius:7px; background:linear-gradient(100deg,#eaf1fa 15%,#f6f9fd 48%,#eaf1fa 80%) 100%/230% 100%; animation:tour-shimmer 1.4s linear infinite; }
.tour-shimmer-card > div span:nth-child(2) { width:80%; }
.tour-shimmer-card > div span:nth-child(3) { width:45%; }
.tour-home .tour-shimmer-card { grid-template-columns:1fr; grid-template-rows:minmax(125px,auto) auto; min-height:220px; }
@keyframes tour-shimmer { to { background-position:-100% 0; } }
@media (prefers-reduced-motion:reduce) { .tour-shimmer-card span { animation:none; } }
.tour-detail-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(235px,29%); gap:22px; align-items:start; }
.tour-gallery { display:grid; grid-template-columns:minmax(0,2.6fr) minmax(0,1fr); grid-template-rows:repeat(2,minmax(0,1fr)); gap:5px; aspect-ratio:2.9; margin-bottom:14px; border-radius:var(--tour-radius); overflow:hidden; }
.tour-gallery img { width:100%; height:100%; object-fit:cover; }
.tour-gallery img:first-child { grid-row:span 2; }
.tour-gallery-single { grid-template-columns:1fr; }
.tour-booking { display:grid; gap:12px; background:#f7faff; }
.tour-booking .tour-price { justify-self:start; }
.tour-booking p,.tour-description,.tour-detail-section p { color:var(--tour-muted); margin:.6rem 0; }
.tour-detail-nav { display:flex; flex-wrap:wrap; gap:8px 18px; margin:18px 0 8px; }
.tour-detail-nav a { color:var(--tour-blue); font-weight:700; font-size:.88rem; }
.tour-detail-section { border-top:1px solid var(--tour-line); margin-top:12px; padding-top:13px; }
.tour-detail-section h2 { font-size:1.25rem; margin:0 0 8px; }
.tour-detail-section ul { padding-left:20px; }
.tour-table-wrap { overflow-x:auto; border:1px solid var(--tour-line); border-radius:12px; margin-top:18px; }
.tour-table { border-collapse:collapse; width:100%; font-size:.9rem; }
.tour-table :is(th,td) { text-align:left; vertical-align:top; padding:10px 12px; border-bottom:1px solid var(--tour-line); }
.tour-table thead th { background:#f5f8ff; }
@media (max-width:850px) {
    .tour-home .tour-search-fields { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .tour-detail-layout { grid-template-columns:1fr; }
    .tour-booking { grid-row:1; }
}
@media (max-width:610px) {
    .tour-home .tour-search-fields { grid-template-columns:1fr; }
    .tour-home-finder,.tour-ideas { padding:12px; }
    .tour-ideas-grid,.tour-home .tour-shimmers { grid-template-columns:none; grid-auto-columns:min(82%,310px); grid-auto-flow:column; overflow-x:auto; padding-bottom:7px; scroll-snap-type:x proximity; }
    .tour-ideas-grid .tour-card { scroll-snap-align:start; }
    .tour-gallery { aspect-ratio:2; }
}
 
.tour-field > label, .tour-area > label { font-size:.82rem; font-weight:700; }
.tour-area { display:grid; grid-template-columns:auto minmax(12rem,23rem) auto; gap:8px; align-items:center; justify-content:start; margin-bottom:12px; }
.tour-area .tn-location-picker,.tour-field .tn-location-picker { min-width:0; }
.tour-area .tn-location-picker input[type="search"],.tour-field .tn-location-picker input[type="search"] { padding-right:32px; }
.tour-detail-page { padding-top:6px; }
.tour-detail-back,.tour-mobile-booking,.tour-sticky-booking { display:none; }
.tour-detail-intro { display:grid; grid-template-columns:minmax(0,31fr) minmax(0,69fr); align-items:center; gap:24px; margin:12px 0 22px; }
.tour-detail-intro:not(:has([data-tour-gallery])) { grid-template-columns:1fr; }
.tour-detail-eyebrow { color:#8d5900; font-size:.73rem; font-weight:800; text-transform:uppercase; letter-spacing:.18em; margin:0 0 10px; }
.tour-detail-intro h1 { margin:0 0 13px; font-size:clamp(2rem,4.15vw,3.45rem); letter-spacing:-.045em; }
.tour-detail-meta { gap:6px 10px; }
.tour-detail-meta span + span { border-left:1px solid #c8d6e8; padding-left:10px; }
.tour-detail-summary { color:var(--tour-muted); margin:.8rem 0 0; line-height:1.5; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.tour-detail-intro .tour-gallery { margin:0; }
.tour-gallery-image { position:relative; overflow:hidden; min-width:0; min-height:0; border-radius:12px; background:var(--tour-tint); }
.tour-gallery-image:first-child { grid-row:span 2; }
.tour-gallery-image img { display:block; width:100%; height:100%; object-fit:cover; }
.tour-gallery-open { position:absolute; inset:0; cursor:pointer; background:none; border:0; padding:0; }
.tour-gallery-open span { position:absolute; right:10px; bottom:10px; color:var(--tour-ink); background:white; font-size:.83rem; font-weight:750; padding:8px 12px; border-radius:8px; box-shadow:0 1px 8px #11234b3d; }
.tour-gallery-open:focus-visible { outline:3px solid white; outline-offset:-5px; }
.tour-photo-dialog { width:min(840px,94vw); max-height:92dvh; padding:14px; border:1px solid var(--tour-line); border-radius:14px; color:var(--tour-ink); }
.tour-photo-dialog::backdrop { background:#071128d9; }
.tour-photo-dialog > form { display:flex; justify-content:flex-end; margin-bottom:8px; }
.tour-photo-dialog > img { display:block; width:100%; height:min(65dvh,580px); object-fit:contain; background:#0a1431; border-radius:8px; }
.tour-photo-controls { display:flex; align-items:center; justify-content:center; gap:12px; margin-top:10px; }
.tour-detail-page .tour-detail-nav { margin:0 0 24px; border-bottom:1px solid var(--tour-line); gap:4px; }
.tour-detail-page .tour-detail-nav a { padding:10px 18px; border-bottom:2px solid transparent; color:var(--tour-ink); }
.tour-detail-page .tour-detail-nav a:hover,.tour-detail-page .tour-detail-nav a:first-child { border-color:var(--tour-blue); color:var(--tour-blue); text-decoration:none; }
.tour-detail-page .tour-detail-layout { grid-template-columns:minmax(0,2fr) minmax(240px,1fr); gap:clamp(16px,3vw,36px); }
.tour-detail-main { min-width:0; }
.tour-detail-main > section { scroll-margin-top:90px; }
.tour-departures h2,.tour-included h2 { margin:0; font-size:clamp(1.3rem,2.5vw,1.9rem); letter-spacing:-.025em; }
.tour-departures > p { margin:4px 0 14px; color:var(--tour-muted); }
.tour-departures > .tour-departure-alert { display:flex; align-items:center; gap:9px; padding:10px 12px; border-radius:9px; background:#fff3dd; color:#754200; font-weight:650; }
.tour-departure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.tour-departure-card { display:flex; flex-direction:column; justify-content:space-between; gap:9px; min-height:148px; border:1px solid #c9d9ee; border-radius:12px; padding:13px 16px; background:linear-gradient(120deg,#f7faff,#ecf3fc); }
.tour-departure-info { min-width:0; }
.tour-departure-card h3 { font-size:1.12rem; margin:0 0 5px; }
.tour-departure-card h3 i,.tour-departure-card p i { color:var(--tour-ink); margin-right:6px; }
.tour-departure-card p { margin:4px 0; color:var(--tour-ink); font-size:.93rem; overflow-wrap:anywhere; }
.tour-departure-info > small { display:block; margin-top:8px; }
.tour-departure-card small { color:var(--tour-muted); }
.tour-departure-price { border-top:1px solid var(--tour-line); padding-top:8px; font-size:.82rem; }
.tour-departure-price span { display:flex; gap:6px; align-items:baseline; }
.tour-departure-price strong,.tour-sticky-booking strong { display:block; font-size:1.45rem; line-height:1.1; letter-spacing:-.04em; }
.tour-more { margin-top:10px; }
.tour-more > summary { cursor:pointer; font-weight:700; color:var(--tour-blue); }
.tour-more[open] > summary { margin-bottom:10px; }
.tour-included { margin:18px 0; }
.tour-inclusion-grid,.tour-highlight-notes { display:grid; padding:0; margin:8px 0 0; list-style:none; gap:8px; }
.tour-inclusion-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.tour-inclusion-grid li { display:grid; align-content:center; justify-items:center; gap:7px; padding:12px 9px; min-height:92px; border:1px solid var(--tour-line); border-radius:11px; background:#f3f7fd; text-align:center; font-size:.86rem; font-weight:700; overflow-wrap:anywhere; }
.tour-inclusion-grid i { color:#996600; font-size:1.35rem; }
.tour-highlight-notes { grid-template-columns:repeat(2,minmax(0,1fr)); }
.tour-highlight-notes li,.tour-cancellation-card { display:flex; align-items:flex-start; gap:12px; padding:13px; background:#edf4fc; border-radius:11px; color:var(--tour-muted); }
.tour-highlight-notes i,.tour-cancellation-card i { color:var(--tour-blue); font-size:1.3rem; }
.tour-highlight-notes .fa-leaf { color:#2e7344; }
.tour-highlight-notes li { font-size:.86rem; }
.tour-detail-page .tour-detail-section h2,.tour-cancellation-card h2 { margin:0; font-size:1.08rem; }
.tour-detail-page .tour-detail-section p,.tour-cancellation-card p { margin:3px 0 0; white-space:pre-line; }
.tour-icon-section { display:grid; grid-template-columns:38px minmax(0,1fr); align-items:start; gap:10px; }
.tour-icon-section > i { display:grid; place-items:center; width:38px; height:38px; border-radius:9px; background:#edf4fc; color:var(--tour-blue); }
.tour-detail-sidebar { display:grid; gap:14px; }
.tour-booking-price { font-size:.95rem; font-weight:700; }
.tour-booking-price strong { display:block; font-size:clamp(2rem,3.5vw,2.9rem); letter-spacing:-.05em; line-height:1.1; }
.tour-detail-sidebar .tour-booking p { margin:0; font-size:.88rem; }
.tour-cancellation-card p { font-size:.9rem; }
.tour-schedule-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; margin:9px 0 8px; }
.tour-schedule-days { display:flex; flex-wrap:wrap; gap:7px; }
.tour-schedule-date,.tour-schedule-toggle { min-height:34px; border:1px solid #c8d8ee; border-radius:8px; padding:6px 11px; background:#edf4fc; color:var(--tour-ink); font:inherit; font-size:.82rem; cursor:pointer; }
.tour-schedule-date[aria-pressed="true"] { background:var(--tour-blue); border-color:var(--tour-blue); color:#fff; }
.tour-schedule-date span { display:none; }
.tour-schedule-toggle { display:inline-flex; align-items:center; gap:7px; background:#fff; border-color:transparent; color:var(--tour-blue); font-weight:700; }
.tour-schedule-toggle:hover { text-decoration:underline; }
.tour-schedule-table { margin-top:8px; overflow:auto; border:1px solid #dce6f2; border-radius:8px; }
.tour-schedule .tour-table { font-size:.84rem; }
.tour-schedule .tour-table :is(th,td) { padding:5px 10px; }
.tour-schedule .tour-table th { background:#e5eefb; }
.tour-schedule .tour-table td:nth-child(-n+2) { white-space:nowrap; }
.tour-schedule .tour-table td:last-child { overflow-wrap:anywhere; }
.tour-schedule .tour-table tbody tr { background:#f7faff; }
.tour-schedule .tour-table tbody tr:nth-child(even of :not([hidden])) { background:#edf4fc; }
.tour-schedule .tour-table tbody tr:last-child td { border-bottom:0; }
@media (max-width:850px) {
    .tour-detail-intro { grid-template-columns:1fr; gap:14px; margin:15px 0; }
    .tour-detail-page .tour-detail-layout { grid-template-columns:1fr; }
    .tour-detail-sidebar,.tour-detail-breadcrumb,.tour-detail-page .tour-detail-nav { display:none; }
    .tour-schedule[data-tour-schedule-preview] .tour-schedule-table { display:none; }
    .tour-schedule-date span { display:block; font-size:.75rem; }
    .tour-schedule-toggle { border-color:#c8d8ee; }
    .tour-detail-back { display:inline-flex; align-items:center; gap:8px; margin-top:8px; color:var(--tour-blue); font-weight:700; }
    .tour-mobile-booking { display:grid; gap:5px; text-align:center; margin-top:14px; }
    .tour-mobile-booking p { margin:3px 0; color:var(--tour-muted); font-size:.86rem; }
    .tour-detail-page:has(.tour-sticky-booking) { padding-bottom:100px; }
    .tour-sticky-booking { display:flex; position:fixed; bottom:0; inset-inline:0; z-index:5; align-items:center; justify-content:space-between; gap:12px; padding:10px max(15px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-bottom)); border-top:1px solid var(--tour-line); background:#fff; box-shadow:0 -3px 14px #10275018; }
    .tour-sticky-booking > div { font-size:.8rem; color:var(--tour-muted); }
    .tour-sticky-booking strong { color:var(--tour-ink); }
    .tour-sticky-booking .tour-button { flex:0 1 54%; margin-left:auto; }
    .tour-detail-intro .tour-gallery { aspect-ratio:auto; grid-template-columns:repeat(2,minmax(0,1fr)); grid-template-rows:auto auto; }
    .tour-detail-intro .tour-gallery-single { grid-template-rows:auto; }
    .tour-gallery-image:first-child { grid-column:1/-1; grid-row:auto; aspect-ratio:2.65; }
    .tour-gallery-image:not(:first-child) { aspect-ratio:2.65; }
}
@media (max-width:610px) {
    .tour-area { grid-template-columns:minmax(0,1fr) auto; }
    .tour-area > label { grid-column:1/-1; }
    .tour-departure-grid,.tour-highlight-notes { grid-template-columns:1fr; }
    .tour-departure-card { flex-direction:row; min-height:0; }
    .tour-departure-price { border-top:0; border-left:1px solid var(--tour-line); flex:0 0 auto; padding:0 0 0 10px; align-self:center; }
    .tour-inclusion-grid li { padding:8px 5px; font-size:.76rem; }
}
