:root {
  --ink:#12364b; --muted:#607586; --blue:#087da7; --red:#cf253a;
  --orange:#ed7415; --green:#078043; --line:#d8e7ee; --paper:#eaf6ff;
  --shadow:0 8px 28px #154b7410;
  font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink); background:var(--paper); font-synthesis:none;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:radial-gradient(ellipse at 4% 5%,#fff 0,transparent 44%),linear-gradient(135deg,#e4f5ff,#dceeff 48%,#edfaff); }
button,input,select { font:inherit; }
button,a,input,select { -webkit-tap-highlight-color:transparent; }
button,a { touch-action:manipulation; }
button { color:inherit; border:0; background:none; cursor:pointer; }
button:disabled { cursor:default; opacity:.45; }
a { color:inherit; text-decoration:none; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:3px solid #007eaa; outline-offset:4px; }
[hidden] { display:none!important; }
svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
span[data-icon] { display:inline-flex; align-items:center; justify-content:center; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.shell { width:min(1240px,calc(100% - 64px)); margin-inline:auto; }
.skip { position:absolute; left:20px; top:-100px; padding:14px; background:#fff; z-index:20; }
.skip:focus { top:10px; }
h1,h2,h3,h4,p { margin-top:0; }
.eyebrow { color:#a63326; font-size:10px; line-height:1.5; font-weight:750; letter-spacing:1.6px; }
.eyebrow>span { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--orange); margin-right:5px; }
.topbar { background:#ffffffed; border-bottom:1px solid var(--line); }
.topbar-inner { min-height:100px; display:flex; align-items:center; gap:28px; }
.brand { display:flex; align-items:center; gap:16px; }
.official-logo { width:80px; height:88px; object-fit:contain; display:block; }
.brand-product { font-size:18px; font-weight:750; letter-spacing:-.5px; border-left:1px solid var(--line); padding-left:18px; }
.brand-product small { display:block; font-size:8px; letter-spacing:1.4px; color:var(--muted); margin-top:7px; }
.topbar nav { margin-left:auto; display:flex; align-items:center; gap:25px; font-size:12px; font-weight:650; }
.nav-current { padding:39px 0; position:relative; }
.nav-current:after { content:""; position:absolute; bottom:0; left:0; width:100%; height:3px; border-radius:3px; background:var(--orange); }
.saved-nav { display:flex; align-items:center; gap:7px; min-height:44px; padding:0; }
.saved-nav svg { width:17px; height:17px; }
.saved-nav b { background:#edf5fb; border-radius:6px; padding:3px 6px; font-size:10px; }
.saved-nav[aria-pressed=true] { color:var(--red); }
.share-catalog { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--green); color:white; border-radius:9px; padding:12px 15px; min-height:44px; font-size:12px; font-weight:700; white-space:nowrap; }
.share-catalog:hover,.whatsapp-button:hover { background:#056734; }
.share-catalog svg { width:17px; height:17px; }
.hero { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(260px,1fr); align-items:center; gap:38px; padding-block:32px; }
.hero-cover { width:100%; height:auto; display:block; border-radius:18px; box-shadow:0 10px 35px #17486d1c; border:1px solid #fff; }
.hero-copy .eyebrow { margin-bottom:12px; font-size:9px; }
h1 { font-size:clamp(30px,3vw,43px); font-weight:780; line-height:1.13; letter-spacing:-1.5px; margin-bottom:16px; }
h1 em { color:var(--red); font-style:normal; }
.hero-text { font-size:14px; line-height:1.75; color:#4c6a7f; margin-bottom:22px; }
.hero-action { display:inline-flex; align-items:center; justify-content:center; gap:20px; padding:13px 17px; background:var(--red); color:white; min-height:46px; font-size:12px; font-weight:700; border-radius:8px; }
.hero-action:hover,.card-open:hover,.primary-button:hover { background:#ad1b2d; }
.hero-action svg { width:16px; height:16px; }
.hero-stats { display:flex; align-items:center; flex-wrap:wrap; gap:20px; font-size:11px; color:var(--muted); margin-top:20px; }
.hero-stats b { font-size:18px; color:var(--ink); margin-right:3px; }
.catalog-section { padding:28px 0 30px; border-top:1px solid #cbe3f1; background:linear-gradient(150deg,#dff2ff 0%,#edf8ff 38%,#d8ebfc 100%); min-height:500px; }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin-bottom:20px; }
.section-heading .eyebrow { margin-bottom:5px; font-size:9px; color:#376580; }
.section-heading h2 { font-size:30px; letter-spacing:-.9px; line-height:1.2; margin:0; }
.snapshot { display:flex; align-items:center; gap:7px; font-size:11px; color:#4e7085; line-height:1.5; }
.snapshot i { width:6px; height:6px; background:var(--green); border-radius:50%; flex-shrink:0; }
.sync-banner { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; padding:13px 16px; margin-bottom:14px; background:#ffffffd9; border:1px solid #ccdfeb; border-radius:11px; }
.sync-copy { display:flex; align-items:center; gap:11px; min-width:0; }
.sync-indicator { width:32px; height:32px; background:#e3f4e9; border-radius:50%; color:var(--green); flex-shrink:0; }
.sync-indicator svg { width:16px; height:16px; }
.sync-copy strong { font-size:11px; font-weight:700; display:block; }
.sync-copy p { font-size:10px; color:var(--muted); margin:4px 0 0; line-height:1.5; }
.sync-now { display:flex; align-items:center; gap:8px; background:#fff; border:1px solid #bdd6e4; color:#17657b; font-size:11px; font-weight:650; padding:10px 12px; border-radius:7px; white-space:nowrap; min-height:42px; }
.sync-now:hover:not(:disabled) { background:#e8f6ff; }
.sync-now svg { width:14px; height:14px; }
.sync-banner progress { width:100%; height:4px; border:0; margin:0; border-radius:4px; accent-color:var(--blue); }
.sync-banner[data-state=running] .sync-indicator svg { animation:spin 2s linear infinite; }
.sync-banner[data-state=failed] { background:#fff8ef; border-color:#eecfab; }
.sync-banner[data-state=failed] .sync-indicator { background:#ffead2; color:#9b5c2c; }
@keyframes spin { to { transform:rotate(360deg); } }
.search-panel { background:white; border:1px solid #cddfeb; box-shadow:var(--shadow); border-radius:16px; padding:20px 22px; }
.search-row { display:flex; align-items:stretch; gap:12px; }
.search-box { display:flex; align-items:center; gap:12px; border:1px solid #cfdee9; border-radius:9px; min-height:49px; padding:0 15px; flex:1; min-width:0; background:#f8fcff; }
.search-box svg { color:var(--blue); }
.search-box input { width:100%; min-width:0; border:0; outline:none; background:transparent; font-size:14px; padding:12px 0; color:var(--ink); }
.search-box:focus-within { outline:2px solid var(--blue); outline-offset:2px; }
.search-box input:focus-visible { outline:0; }
.search-box kbd { font-size:11px; color:#748899; background:white; border:1px solid var(--line); border-radius:4px; padding:2px 5px; }
.filter-toggle { display:flex; align-items:center; justify-content:center; gap:8px; border:1px solid #cfdee9; border-radius:9px; padding:0 16px; font-size:12px; font-weight:650; min-height:49px; white-space:nowrap; }
.filter-toggle[aria-expanded=true] { background:#edf7ff; border-color:#97bed7; }
.filter-toggle svg { width:17px; height:17px; }
#filter-badge:not(:empty) { color:white; background:var(--blue); border-radius:10px; padding:1px 5px; font-size:10px; }
.collection-shortcuts { display:flex; gap:12px; flex-wrap:wrap; margin-top:18px; }
.collection-shortcuts button { display:flex; align-items:center; gap:9px; border:1px solid #e3a266; border-radius:9px; padding:11px 15px; min-height:52px; font-size:13px; font-weight:750; color:#8c3800; background:#fff3e5; text-align:left; }
.collection-shortcuts svg { width:19px; height:19px; flex-shrink:0; }
.collection-shortcuts small { display:block; font-size:10px; font-weight:550; margin-top:4px; line-height:1.4; }
.collection-shortcuts b { background:#fff; color:#854015; border-radius:5px; padding:3px 7px; font-size:11px; margin-left:3px; }
#capodanni-quick { background:#fff0f2; border-color:#e3a2ad; color:#b52035; }
#capodanni-quick[aria-pressed=true] { background:var(--red); border-color:var(--red); color:white; }
#week-quick[aria-pressed=true] { background:var(--orange); border-color:var(--orange); color:#3c1900; }
.departure-switch { display:flex; gap:12px; margin:14px 0 20px; }
.departure-switch button { display:flex; justify-content:center; align-items:center; gap:9px; border:1px solid #cbdce8; border-radius:9px; padding:12px 16px; min-height:48px; font-size:13px; font-weight:750; background:#fff; }
.departure-switch svg { width:17px; height:17px; }
.departure-switch b { padding:3px 7px; border-radius:5px; font-size:11px; background:#ffffffb3; color:var(--ink); }
#all-quick[aria-pressed=true] { background:var(--red); border-color:var(--red); color:white; box-shadow:0 3px 10px #cf253a25; }
#confirmed-quick { background:#e4f5e9; border-color:#9ed5b1; color:#066832; }
#confirmed-quick:hover { background:#d4eedc; }
#confirmed-quick[aria-pressed=true] { background:var(--green); border-color:var(--green); color:white; box-shadow:0 3px 10px #07804325; }
.month-heading { display:flex; justify-content:space-between; align-items:center; margin:0 0 10px; gap:14px; }
.month-heading>span { font-size:9px; font-weight:750; letter-spacing:1px; color:#4b6a7d; }
.text-button { display:inline-flex; align-items:center; gap:7px; color:#315f7a; padding:5px 0; font-size:11px; min-height:30px; }
.text-button:hover { color:var(--red); }
.text-button svg { width:13px; height:13px; }
.months { display:flex; gap:8px; flex-wrap:wrap; }
.month { border:1px solid #d4e1e9; border-radius:8px; padding:9px 12px; text-align:left; display:flex; align-items:center; gap:13px; min-height:51px; font-size:13px; font-weight:650; transition:background .15s; }
.month small { display:block; font-size:9px; font-weight:500; color:#748895; margin-top:4px; }
.month-count { font-size:10px; background:#edf5fb; padding:3px 6px; border-radius:4px; }
.month.active { background:var(--red); border-color:var(--red); color:white; }
.month.active small { color:#fff; }
.month.active .month-count { background:#ffffff30; }
.month:hover:not(.active) { border-color:var(--orange); background:#fff5e9; }
.advanced { display:grid; grid-template-columns:1fr 1fr 1.6fr 1.2fr 1.2fr; gap:14px; margin-top:22px; padding-top:19px; border-top:1px solid var(--line); }
.advanced label { display:flex; flex-direction:column; gap:7px; font-size:11px; font-weight:650; min-width:0; }
.advanced input,.advanced select { width:100%; min-width:0; height:44px; padding:9px 10px; border:1px solid #cfdfe9; border-radius:7px; background:white; font-size:12px; color:var(--ink); }
.advanced [aria-invalid=true] { border-color:var(--red); }
.filter-help { grid-column:1/-1; font-size:11px; color:var(--muted); margin:0; display:flex; align-items:center; gap:7px; line-height:1.6; }
.filter-help svg { width:14px; height:14px; }
.validation { font-size:12px; color:#ad1b2d; margin:15px 0 0; padding:12px; border-radius:7px; background:#fff0f2; }
.quick-row { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:14px; }
.quick-filters { display:flex; gap:10px; }
.quick-filters button { display:flex; align-items:center; gap:7px; background:#ffffffbd; border:1px solid #c8dce9; border-radius:7px; padding:9px 12px; font-size:11px; min-height:40px; }
.quick-filters button[aria-pressed=true] { background:var(--red); border-color:var(--red); color:white; }
.quick-filters svg { width:15px; height:15px; }
.quick-row>p { font-size:10px; color:#59788c; margin:0; }
.active-filters { display:flex; gap:8px; flex-wrap:wrap; }
.active-filters:not(:empty) { margin-top:14px; }
.active-chip { display:flex; align-items:center; gap:7px; background:#fff; border:1px solid #bdd8e8; color:#285974; border-radius:20px; font-size:10px; padding:6px 10px; min-height:32px; }
.active-chip svg { width:12px; height:12px; }
.selection-share-bar { display:flex; justify-content:space-between; align-items:center; gap:18px; padding:14px 17px; margin-top:20px; border:1px solid #a7cbdf; border-radius:11px; background:linear-gradient(110deg,#fff,#e8f6ff); }
.selection-share-bar p { margin:0; font-size:12px; line-height:1.6; color:#365d75; }
.selection-share-bar button { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:12px 16px; border-radius:8px; background:#07598a; color:white; font-size:12px; font-weight:750; min-height:45px; flex-shrink:0; }
.selection-share-bar svg { width:17px; height:17px; }
button:disabled { cursor:default; opacity:.5; }
.results-heading { display:flex; justify-content:space-between; align-items:center; gap:20px; margin:26px 0 18px; }
.results-heading h3 { font-size:22px; letter-spacing:-.5px; margin-bottom:6px; line-height:1.3; }
#result-count { font-size:12px; color:#52748a; margin:0; }
.results-tools { display:flex; align-items:center; gap:10px; }
.icon-button { display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px; border-radius:7px; }
.icon-button:hover { background:#e4f1fa; }
.sort-label select { background:#ffffffc9; color:var(--ink); border:1px solid #bdd7e8; padding:10px; border-radius:7px; font-size:11px; min-height:40px; }
.view-toggle { display:flex; align-items:center; background:#ffffff9c; padding:3px; border:1px solid #c7dce9; border-radius:7px; }
.view-toggle button { display:flex; align-items:center; justify-content:center; width:34px; height:32px; border-radius:4px; color:#5b7d92; }
.view-toggle button.active { background:#dceefb; color:#175675; }
.view-toggle svg,.export svg { width:17px; height:17px; }
.results { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.travel-card { min-width:0; border:1px solid #c4dce9; border-radius:14px; background:#183b50; overflow:hidden; box-shadow:0 4px 16px #154b7412; cursor:pointer; transition:transform .18s,box-shadow .18s; }
.travel-card:hover { transform:translateY(-3px); box-shadow:0 10px 28px #154b7430; }
.travel-card:focus-within { outline:3px solid var(--blue); outline-offset:3px; }
.card-visual { position:relative; aspect-ratio:4/3; overflow:hidden; isolation:isolate; }
.card-image-button { position:absolute; inset:0; height:100%; width:100%; padding:0; display:block; }
.card-image-button:focus-visible { outline-offset:-5px; }
.card-image { width:100%; height:100%; object-fit:cover; object-position:center 42%; display:block; transition:transform .35s; }
.travel-card:hover .card-image { transform:scale(1.035); }
.card-shade { position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 0%,transparent 42%,#061a3226 62%,#03172a94 82%,#03172ad9 100%); }
.card-date-band { position:absolute; top:12px; left:12px; right:59px; width:max-content; max-width:calc(100% - 71px); display:flex; align-items:center; gap:6px; padding:7px 9px; background:#ff8a24; color:#321100; border-radius:6px; font-size:10px; line-height:1.5; font-weight:800; pointer-events:none; box-shadow:0 2px 8px #05243b1c; }
.card-date-band svg { width:13px; height:13px; }
.travel-card[data-status=confirmed] .card-date-band { background:var(--green); color:#fff; }
.travel-card[data-status=full] .card-date-band { background:var(--red); color:#fff; }
.card-heart { position:absolute; top:10px; right:10px; width:40px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#fffffff2; box-shadow:0 2px 9px #05243b26; }
.card-heart svg { width:18px; height:18px; }
.card-heart[aria-pressed=true] { color:var(--red); background:#fff1f3; }
.card-heart[aria-pressed=true] svg { fill:#ffd8df; }
.card-caption { position:absolute; bottom:14px; left:14px; right:14px; display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:end; pointer-events:none; }
.card-title { color:#fff; font-size:19px; line-height:1.25; font-weight:800; letter-spacing:-.35px; margin:0; min-width:0; text-shadow:0 1px 3px #001020e0,0 2px 10px #00102099; }
.card-title button { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; text-align:left; padding:2px 0; font:inherit; color:inherit; pointer-events:auto; }
.cover-price { padding:9px 10px 8px; border-radius:8px; background:#fff; color:var(--red); text-align:right; box-shadow:0 3px 12px #02162930; min-width:74px; }
.cover-price strong { display:block; font-size:24px; line-height:1.1; font-weight:850; letter-spacing:-.7px; white-space:nowrap; }
.cover-price span { display:block; font-size:8px; color:#536b7d; margin-top:4px; letter-spacing:.2px; }
.cover-price strong:first-child { max-width:130px; }
.cover-price.price-request strong { font-size:16px; letter-spacing:-.3px; }
.destination { font-size:9px; line-height:1.5; font-weight:650; letter-spacing:.6px; color:#52778d; text-transform:uppercase; }
.badge { display:inline-flex; align-items:center; gap:4px; font-size:9px; line-height:1.3; border-radius:5px; padding:4px 6px; font-weight:700; white-space:nowrap; }
.badge svg { width:12px; height:12px; }
.badge.scheduled { background:#fff0dd; color:#8b3b00; }
.badge.confirmed { background:#dff5e5; color:#086834; }
.badge.full { background:#ffe5e9; color:#ac1429; }
.price { display:flex; flex-direction:column; gap:3px; }
.price-label { font-size:8px; color:#607586; line-height:1.4; }
.price strong { display:flex; flex-wrap:wrap; align-items:baseline; gap:7px; color:var(--red); font-size:26px; line-height:1.15; font-weight:800; letter-spacing:-.6px; }
.price s { color:#7b8d98; font-size:11px; font-weight:500; letter-spacing:0; }
.promo-note { font-size:9px; line-height:1.5; color:#934000; }
.results.list-view { grid-template-columns:minmax(0,1fr); }
.list-view .card-visual { aspect-ratio:3.5; min-height:230px; max-height:330px; }
.list-view .card-caption { left:23px; right:23px; bottom:22px; gap:25px; }
.list-view .card-title { font-size:27px; max-width:650px; }
.list-view .cover-price { padding:12px 16px; }
.list-view .cover-price strong { font-size:32px; }
.empty-state { grid-column:1/-1; text-align:center; padding:55px 20px; background:#ffffffd9; border:1px dashed #a9cadf; border-radius:14px; }
.empty-icon { display:inline-flex; color:var(--blue); background:#e0f1fe; padding:14px; border-radius:50%; margin-bottom:17px; }
.empty-state h4 { font-size:21px; margin-bottom:12px; }
.empty-state p { color:var(--muted); font-size:13px; line-height:1.8; max-width:480px; margin-inline:auto; }
.empty-state button { color:white; background:var(--red); border-radius:7px; padding:12px 17px; font-size:12px; font-weight:650; min-height:44px; }
.loading-card { height:370px; border-radius:13px; background:linear-gradient(110deg,#ffffff70 25%,#ffffffd9 45%,#ffffff70 65%); background-size:300% 100%; animation:shimmer 2s linear infinite; }
@keyframes shimmer { to { background-position:-150% 0; } }
.catalog-bottom { display:flex; justify-content:space-between; align-items:center; gap:18px; margin-top:26px; }
.catalog-bottom p { display:flex; align-items:start; gap:7px; font-size:10px; line-height:1.7; color:#54758b; margin:0; }
.catalog-bottom p svg { width:14px; height:14px; margin-top:2px; }
.catalog-bottom .text-button { white-space:nowrap; }
.footer { display:flex; align-items:center; flex-wrap:wrap; gap:22px; padding-block:23px; font-size:10px; color:#52748b; }
.footer>a { display:inline-flex; gap:5px; align-items:center; }
.footer>a:first-of-type { margin-left:auto; }
.footer svg { width:12px; height:12px; }
.footer-dot { color:var(--orange); padding:0 5px; }
#agency-access { font-size:10px; }
dialog { border:0; border-radius:17px; padding:0; color:var(--ink); box-shadow:0 24px 100px #0f304c55; max-height:90dvh; overscroll-behavior:contain; }
dialog::backdrop { background:#0c2a44b3; backdrop-filter:blur(4px); }
.detail-dialog { width:min(940px,calc(100% - 40px)); max-width:none; background:white; }
.dialog-close { position:sticky; top:12px; margin:12px 12px -44px auto; display:flex; z-index:5; background:#fff; color:var(--red); width:42px; height:42px; border:1px solid #d4e4ee; border-radius:50%; box-shadow:0 2px 12px #12364b1c; }
.detail-intro { display:block; background:linear-gradient(130deg,#ecf8ff,#dceefe); border-bottom:1px solid var(--line); }
.detail-image { height:280px; position:relative; overflow:hidden; }
.detail-cover { width:100%; height:100%; object-fit:cover; object-position:center 42%; display:block; }
.official-poster-link { position:absolute; bottom:15px; right:18px; display:inline-flex; align-items:center; gap:6px; padding:9px 12px; border-radius:7px; font-size:10px; font-weight:650; background:#fffffff2; color:#254f69; min-height:36px; box-shadow:0 2px 12px #05243b22; }
.official-poster-link svg { width:12px; height:12px; }
.detail-heading { padding:25px 36px 26px; min-width:0; text-align:center; }
.detail-heading h2 { font-size:32px; line-height:1.22; font-weight:800; letter-spacing:-.7px; margin:10px auto 14px; max-width:780px; text-wrap:balance; }
.detail-heading p { font-size:16px; line-height:1.7; color:#526f82; margin:14px auto 0; max-width:720px; }
.detail-content { padding:26px 36px 32px; }
.detail-facts { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; padding-bottom:22px; margin-bottom:22px; border-bottom:1px solid var(--line); }
.detail-facts>div { font-size:9px; line-height:1.5; color:var(--muted); letter-spacing:.5px; }
.detail-facts strong { display:block; color:var(--ink); font-size:14px; line-height:1.5; letter-spacing:0; margin-top:6px; }
.booking-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:20px 0 14px; }
.booking-summary .price strong { font-size:34px; }
.participants-field { display:flex; flex-direction:column; gap:6px; font-size:11px; font-weight:650; }
.participants-field select { color:var(--ink); border:1px solid #c7dce9; border-radius:7px; min-height:44px; padding:8px 12px; background:white; }
.source-note { font-size:11px; line-height:1.75; color:#5f7788; margin:14px 0 0; }
.booking-actions { display:grid; grid-template-columns:1fr 1.2fr; gap:12px; margin:18px 0 10px; }
.whatsapp-button,.site-button,.primary-button { display:inline-flex; align-items:center; justify-content:center; gap:9px; min-height:48px; border-radius:8px; padding:12px 16px; font-size:13px; font-weight:700; text-align:center; }
.whatsapp-button { background:var(--green); color:white; border:1px solid var(--green); }
.whatsapp-button svg { width:21px; height:21px; }
.site-button { background:#fff1df; color:#873800; border:1px solid #db7a32; }
.site-button:hover { background:#ffe2ba; }
.primary-button { background:var(--red); color:white; }
.booking-note { font-size:11px; line-height:1.7; color:#5f7788; margin:0 0 16px; }
.detail-secondary { display:flex; gap:22px; flex-wrap:wrap; padding:3px 0 20px; }
.detail-save,.detail-share { display:inline-flex; align-items:center; justify-content:center; gap:7px; font-size:12px; min-height:42px; padding:8px 0; color:#35657f; }
.detail-save svg,.detail-share svg { width:17px; height:17px; }
.detail-save[aria-pressed=true] { color:var(--red); }
.detail-save[aria-pressed=true] svg { fill:#ffe2e7; }
.detail-description { border-top:3px solid var(--orange); padding-top:24px; margin-top:0; }
.detail-description>h3 { font-size:12px; letter-spacing:1.4px; text-transform:uppercase; text-align:center; color:#54758a; margin:0 0 15px; }
.program-content { overflow-wrap:normal; word-break:normal; hyphens:none; }
.program-heading { text-align:center; padding:5px 0 25px; margin-bottom:27px; border-bottom:1px solid var(--line); }
.program-title { font-size:30px; line-height:1.25; font-weight:800; letter-spacing:-.6px; color:var(--ink); margin:0 auto 13px; max-width:780px; text-wrap:balance; }
.program-subtitle { font-size:17px; line-height:1.65; font-weight:550; color:#405f72; max-width:710px; margin:0 auto; text-align:center; text-wrap:balance; }
.program-kicker { font-size:10px; line-height:1.6; font-weight:800; letter-spacing:.8px; color:#086834; margin:0 0 10px; }
.program-section { margin:0 0 24px; }
.program-section h4 { font-size:16px; line-height:1.6; font-weight:800; margin:0 0 10px; text-transform:none; text-align:left; }
.program-section p { font-size:14px; line-height:1.85; color:#405f72; margin:0 0 13px; text-align:left; hyphens:none; word-break:normal; overflow-wrap:normal; text-wrap:pretty; }
.program-day p,.program-intro p,.program-itinerary p,.program-info p,.program-notes p { text-align:justify; text-align-last:start; text-justify:inter-word; }
.program-intro { padding-bottom:4px; }
.program-date p { font-weight:750; color:var(--ink); }
.program-day { padding:2px 0 2px 18px; border-left:3px solid #b7d9ef; margin-bottom:30px; }
.program-day h4 { color:#175e83; font-size:18px; line-height:1.5; margin-bottom:12px; }
.program-rate,.program-promo { background:#f3f9fe; border:1px solid #d7e8f3; border-radius:9px; padding:14px 17px; margin-bottom:12px; }
.program-rate h4,.program-promo h4 { font-size:12px; margin-bottom:5px; color:#4d6d81; }
.program-rate p:last-child,.program-promo p:last-child { margin-bottom:0; }
.program-amount { font-weight:800; color:#ac2032; white-space:nowrap; }
.program-included,.program-excluded { border:1px solid; border-radius:11px; padding:20px 22px; }
.program-included { background:#edf8f0; border-color:#b9ddc5; }
.program-excluded { background:#fff4e8; border-color:#edcfaa; }
.program-notes { border-top:1px solid var(--line); padding-top:20px; }
.program-included h4 { color:#086834; }
.program-excluded h4 { color:#a04400; }
.program-list { margin:12px 0 0; padding-left:20px; color:#314f60; }
.program-list li { padding-left:3px; margin:0 0 9px; font-size:14px; line-height:1.75; text-align:left; overflow-wrap:normal; word-break:normal; }
.program-list li:last-child { margin-bottom:0; }
.program-list li::marker { color:#267347; }
.program-excluded .program-list li::marker { color:#a04400; }
.program-key { font-weight:750; color:#193e50; }
.program-expired { background:#f7f8fa; border-color:#dce3e9; }
.program-expired .program-amount { color:#6c7e89; }
.program-expired .expired-promo-label { font-size:12px; line-height:1.7; color:#5c7180; margin-bottom:9px; }
.detail-booking-end { margin-top:30px; padding:23px; border:1px solid #c7dfed; border-radius:12px; background:linear-gradient(125deg,#eef9ff,#e3f1fc); }
.detail-booking-end .eyebrow { font-size:9px; color:#376580; margin-bottom:7px; }
.detail-booking-end h3 { font-size:23px; letter-spacing:-.5px; margin-bottom:18px; }
.booking-recap { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.booking-recap>div:first-child { min-width:0; }
.booking-recap>div:first-child strong { display:block; font-size:14px; line-height:1.6; }
.booking-recap>div:first-child span { display:block; font-size:12px; color:#506f83; margin-top:4px; }
.booking-people-end { margin-top:20px; max-width:320px; }
.booking-people-end .participants-field { font-size:12px; }
.booking-people-end select { min-height:48px; font-size:15px; }
.detail-booking-end .booking-note { margin-bottom:0; }
.sources-dialog { width:min(730px,calc(100% - 32px)); }
.sources-inner { padding:42px 30px 30px; }
.sources-inner h2 { font-size:27px; margin-bottom:20px; }
.sources-inner p,.sources-inner li { font-size:13px; line-height:1.9; color:#506c7e; }
.sources-inner li { margin-bottom:9px; }
.sources-inner a { color:var(--blue); text-decoration:underline; text-underline-offset:3px; }
.sources-inner ul { padding-left:20px; }
.sources-links { display:flex; flex-wrap:wrap; gap:8px 14px; font-size:11px; margin-block:20px; }
.share-dialog { width:min(540px,calc(100% - 32px)); }
.share-inner { padding:42px 28px 28px; }
.share-inner h2 { font-size:25px; margin-right:15px; }
.share-inner p { font-size:13px; line-height:1.7; color:var(--muted); }
.share-inner label { font-size:11px; font-weight:650; display:block; margin:22px 0 8px; }
.share-inner input { width:100%; font-size:12px; border:1px solid #c7dce9; border-radius:7px; padding:12px; min-height:44px; color:var(--ink); background:#f8fcff; }
.share-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:18px; }
.share-actions>* { flex:1 1 180px; font-size:12px; }
.share-preview { border:1px solid #c8dce9; border-radius:10px; overflow:hidden; background:#f7fbff; }
.share-preview img { display:block; width:100%; height:auto; aspect-ratio:1200/628; object-fit:cover; }
.share-preview>div { padding:13px 15px; }
.share-preview strong { display:block; font-size:15px; line-height:1.4; overflow-wrap:anywhere; }
.share-preview span { display:block; margin-top:5px; font-size:11px; line-height:1.6; color:#506f83; overflow-wrap:anywhere; }
.share-inner .share-preview-note { font-size:10px; line-height:1.6; margin:16px 0 0; }
#toast { position:fixed; bottom:24px; left:50%; transform:translate(-50%,20px); max-width:calc(100% - 32px); width:max-content; background:#12364bf5; color:white; padding:13px 20px; border-radius:10px; font-size:12px; line-height:1.5; text-align:center; opacity:0; pointer-events:none; transition:opacity .2s,transform .2s; z-index:100; box-shadow:0 5px 20px #12364b25; }
#toast.visible { opacity:1; transform:translate(-50%,0); }
@media(min-width:1200px) {
  .results { grid-template-columns:repeat(4,minmax(0,1fr)); }
}
@media(max-width:1000px) {
  .topbar-inner { gap:20px; }
  .brand-product { font-size:16px; padding-left:13px; }
  .topbar nav { gap:18px; }
  .nav-current { display:none; }
  .hero { gap:25px; grid-template-columns:minmax(0,1.45fr) minmax(250px,1fr); }
  .hero-copy .eyebrow { font-size:8px; letter-spacing:1.1px; }
  h1 { font-size:32px; }
  .hero-text { font-size:12px; }
  .hero-stats { gap:12px; font-size:10px; }
  .hero-stats b { font-size:16px; }
  .results { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .advanced { grid-template-columns:1fr 1fr 1.5fr; }
}
@media(max-width:760px) {
  .shell { width:calc(100% - 32px); }
  .topbar-inner { min-height:80px; gap:12px; }
  .official-logo { width:64px; height:72px; }
  .brand { gap:10px; }
  .brand-product { font-size:14px; padding-left:12px; }
  .brand-product small { font-size:6px; letter-spacing:1px; }
  .topbar nav { gap:0; }
  .saved-nav>span:nth-child(2) { display:none; }
  .share-catalog { width:42px; padding:10px; flex-shrink:0; }
  .share-catalog>span:last-child { display:none; }
  .hero { display:block; padding-block:20px; }
  .hero-cover { border-radius:12px; }
  .hero-copy { display:grid; grid-template-columns:1fr auto; gap:8px 16px; align-items:center; padding-top:18px; }
  .hero-copy .eyebrow,.hero-text { display:none; }
  .hero h1 { font-size:25px; margin:0; letter-spacing:-.8px; }
  .hero h1 br { display:none; }
  .hero h1 em { display:block; }
  .hero-action { font-size:11px; padding:11px 12px; gap:10px; }
  .hero-stats { grid-column:1/-1; margin-top:3px; font-size:10px; gap:20px; }
  .hero-stats b { font-size:14px; }
  .catalog-section { padding-top:22px; }
  .section-heading { align-items:center; gap:12px; margin-bottom:16px; }
  .section-heading h2 { font-size:26px; }
  .section-heading .eyebrow { font-size:7px; letter-spacing:1.1px; }
  .snapshot { max-width:130px; font-size:9px; }
  .sync-banner { padding:12px; gap:10px; }
  .sync-copy { gap:9px; flex:1 1 180px; }
  .sync-indicator { width:29px; height:29px; }
  .sync-copy strong { font-size:10px; line-height:1.5; }
  .sync-copy p { font-size:9px; }
  .sync-now { font-size:10px; margin-left:38px; }
  .search-panel { padding:14px; border-radius:12px; }
  .search-row { gap:8px; }
  .search-box { gap:8px; padding-inline:10px; }
  .search-box input { font-size:12px; }
  .search-box kbd { display:none; }
  .filter-toggle { font-size:10px; padding-inline:10px; gap:5px; }
  .filter-toggle svg { width:15px; height:15px; }
  .departure-switch { gap:8px; margin:14px 0 17px; }
  .collection-shortcuts { gap:8px; margin-top:14px; }
  .collection-shortcuts button { flex:1 1 140px; padding:10px; font-size:11px; gap:7px; }
  .collection-shortcuts svg { width:16px; height:16px; }
  .collection-shortcuts small { font-size:9px; }
  .collection-shortcuts b { margin-left:auto; font-size:10px; padding:3px 5px; }
  .departure-switch button { flex:1; padding:10px 9px; font-size:11px; gap:6px; min-width:0; }
  .departure-switch button svg { display:none; }
  .departure-switch b { font-size:10px; padding:3px 5px; }
  .month-heading { gap:8px; }
  .month-heading>span { font-size:8px; letter-spacing:.8px; }
  .month-heading .text-button { font-size:10px; }
  .months { flex-wrap:nowrap; overflow-x:auto; padding:3px 3px 9px; margin:0 -3px -4px; scrollbar-width:thin; scrollbar-color:#bed5e7 transparent; }
  .month { flex-shrink:0; font-size:12px; gap:10px; padding:9px 11px; }
  .month small { font-size:9px; }
  .advanced { grid-template-columns:1fr 1fr; gap:13px 10px; margin-top:17px; padding-top:16px; }
  .advanced .destination-field { grid-column:1/-1; }
  .advanced input,.advanced select { font-size:12px; }
  .filter-help { align-items:start; font-size:10px; }
  .filter-help svg { margin-top:2px; }
  .quick-row { gap:10px; }
  .quick-row>p { text-align:right; font-size:9px; max-width:150px; line-height:1.6; }
  .quick-filters button { font-size:10px; padding:8px 10px; }
  .results-heading { gap:12px; margin-top:24px; align-items:start; }
  .selection-share-bar { flex-direction:column; align-items:stretch; padding:13px; gap:11px; margin-top:16px; }
  .selection-share-bar p { font-size:11px; text-align:center; }
  .selection-share-bar button { width:100%; font-size:12px; }
  .results-heading h3 { font-size:20px; }
  #result-count { font-size:11px; line-height:1.6; }
  .results-tools { gap:6px; }
  .sort-label select { font-size:10px; max-width:150px; padding:9px 7px; }
  .view-toggle { display:none; }
  .export { width:30px; height:40px; }
  .results { gap:14px; }
  .card-title { font-size:20px; }
  .card-caption { bottom:15px; left:15px; right:15px; gap:12px; }
  .cover-price strong { font-size:26px; }
  .card-date-band { font-size:10px; }
  .list-view .card-visual { aspect-ratio:4/3; min-height:0; max-height:none; }
  .list-view .card-title { font-size:20px; }
  .list-view .card-caption { bottom:15px; left:15px; right:15px; gap:12px; }
  .list-view .cover-price { padding:9px 10px 8px; }
  .list-view .cover-price strong { font-size:26px; }
  .travel-card { border-radius:12px; }
  .catalog-bottom { align-items:start; gap:10px; }
  .catalog-bottom p { font-size:9px; }
  .catalog-bottom .text-button { font-size:9px; }
  .footer { gap:12px; font-size:9px; line-height:1.7; }
  .footer>span { width:100%; }
  .footer>a:first-of-type { margin-left:0; }
  #agency-access { margin-left:auto; font-size:9px; }
  .detail-dialog { width:100%; height:100dvh; max-height:100dvh; border-radius:0; margin:0; }
  .detail-image { height:220px; }
  .detail-heading { padding:21px 20px 23px; }
  .detail-heading h2 { font-size:26px; line-height:1.3; letter-spacing:-.4px; }
  .detail-heading p { font-size:15px; line-height:1.7; }
  .detail-content { padding:22px 20px 28px; }
  .detail-facts { grid-template-columns:1fr 1fr; gap:16px; }
  .detail-facts>div:last-child { grid-column:1/-1; }
  .detail-facts strong { font-size:13px; }
  .booking-summary { gap:15px; }
  .booking-summary .price strong { font-size:31px; }
  .booking-actions { grid-template-columns:1fr; gap:9px; }
  .booking-actions a { min-height:48px; font-size:13px; }
  .detail-secondary { gap:18px; }
  .detail-save,.detail-share { font-size:11px; }
  .detail-description>h3 { font-size:11px; }
  .program-title { font-size:26px; letter-spacing:-.4px; }
  .program-subtitle { font-size:16px; }
  .program-section p { font-size:14px; line-height:1.85; hyphens:none; }
  .program-section h4 { font-size:16px; }
  .program-day h4 { font-size:17px; }
  .program-day { padding-left:0; border-left:0; }
  .program-included,.program-excluded { padding:18px 16px; }
  .program-rate,.program-promo { padding:13px 14px; }
  .program-rate h4,.program-promo h4 { font-size:12px; }
  .detail-booking-end { padding:19px 16px; margin-inline:-2px; }
  .detail-booking-end h3 { font-size:21px; }
  .booking-recap { align-items:start; flex-direction:column; gap:14px; }
  .booking-recap .price strong { font-size:28px; }
  .booking-people-end { max-width:none; }
  .sources-inner { padding:40px 22px 24px; }
  .sources-inner h2 { font-size:24px; }
  .share-inner { padding:40px 22px 24px; }
  .share-inner h2 { font-size:23px; }
}
@media(max-width:559px) {
  .results { grid-template-columns:minmax(0,1fr); }
  .results-heading { flex-wrap:wrap; }
  .results-tools { margin-left:auto; }
}
@media(max-width:380px) {
  .brand-product { font-size:13px; padding-left:9px; }
  .brand-product small { display:none; }
  .brand { gap:8px; }
  .topbar-inner { gap:9px; }
  .hero h1 { font-size:23px; }
  .hero-action { font-size:10px; padding-inline:10px; }
  .hero-action svg { width:14px; }
  .departure-switch button { font-size:10px; padding-inline:8px; gap:5px; }
  .detail-heading h2 { font-size:19px; }
  .detail-content { padding-inline:17px; }
  .card-title,.list-view .card-title { font-size:18px; }
  .cover-price strong,.list-view .cover-price strong { font-size:24px; }
  .card-caption,.list-view .card-caption { left:13px; right:13px; bottom:13px; gap:9px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*:before,*:after { animation:none!important; transition:none!important; }
}
.agency-nav{display:inline-flex;align-items:center;gap:7px;font-size:11px!important;color:#426c89!important;white-space:nowrap}.agency-nav svg{width:14px;height:14px}.booking-note a{color:#156f96;text-decoration:underline}[data-book-whatsapp][aria-disabled=true]{opacity:.7;cursor:wait}@media(max-width:760px){.agency-nav{display:none!important}}
