* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:var(--space-3); }
body { margin:0; background:var(--brand-turquoise); color:var(--white); font-family:var(--catalog-reading); -webkit-font-smoothing:antialiased; }
body.modal-open { overflow:hidden; }
button,input,select { font:inherit; }
button,a,input,select,summary { -webkit-tap-highlight-color:transparent; }
button,a { color:inherit; }
a { text-decoration:none; }
button { cursor:pointer; }
:focus-visible { outline:2px solid var(--white); outline-offset:5px; }
[hidden] { display:none!important; }
.sr-only,.skip-link:not(:focus) { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
.skip-link:focus { position:fixed; top:0; left:0; z-index:30; padding:var(--space-2); background:var(--white); color:var(--brand-ink); }
.tour-wrap { max-width:var(--journal-width); margin-inline:auto; padding-inline:var(--gutter); }
.tour-header { display:flex; gap:var(--space-5); align-items:center; min-height:96px; }
.tour-brand { display:flex; align-items:center; gap:var(--space-1); font:400 16px/1.2 var(--editorial); letter-spacing:.12em; }
.tour-brand img { object-fit:contain; filter:url(#tour-brand-opacity); }
.tour-brand small { display:block; margin-top:4px; font-size:9px; letter-spacing:.4em; }
.tour-header nav { display:flex; gap:var(--space-4); margin-left:auto; font-size:var(--feedback-caption-size); }
.tour-home { padding:12px 18px; border:1px solid var(--feedback-panel-rule); border-radius:var(--radius-button); font-size:var(--feedback-caption-size); white-space:nowrap; }
.tour-home span { margin-left:var(--space-1); }
.tour-opening { display:grid; grid-template-columns:1fr 1.1fr; gap:var(--space-5); align-items:center; padding-top:var(--space-5); padding-bottom:var(--feedback-section-gap); }
.tour-eyebrow { font-size:11px; letter-spacing:.12em; line-height:1.5; margin:0 0 var(--space-3); }
.tour-opening h1 { font:400 clamp(42px,4.5vw,68px)/1.12 var(--editorial); letter-spacing:var(--heading-tracking); margin:0 0 var(--space-4); }
.tour-opening-copy > p:not(.tour-eyebrow) { max-width:37ch; font-size:var(--text-sm); line-height:1.7; margin:0 0 var(--space-4); }
.tour-opening-photo { position:relative; aspect-ratio:1.15; border-radius:var(--brand-panel-radius); overflow:hidden; }
.tour-opening-photo img { width:100%; height:100%; object-fit:cover; object-position:60% center; }
.tour-opening-photo::after { content:''; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,var(--photo-control-surface)); pointer-events:none; }
.tour-opening-photo span { position:absolute; z-index:1; left:var(--space-3); bottom:var(--space-3); font-size:12px; text-shadow:var(--photo-text-shadow); }
.tour-button { display:inline-flex; align-items:center; justify-content:center; gap:var(--space-3); border:0; border-radius:var(--radius-button); padding:16px 24px; min-height:var(--action-height); background:var(--white); color:var(--brand-ink); font-size:var(--feedback-caption-size); font-weight:600; }
.tour-collection { padding-bottom:var(--feedback-section-gap); }
.tour-collection-heading { margin-bottom:var(--space-4); max-width:65ch; }
.tour-collection-heading h2,.tour-hotel-links h2 { font:400 var(--text-section)/1.2 var(--editorial); margin:0 0 var(--space-2); }
.tour-collection-heading p { margin:0; font-size:var(--feedback-caption-size); line-height:1.7; color:var(--feedback-secondary); }
.tour-countries { display:flex; flex-wrap:wrap; gap:var(--space-1); padding:0; border:0; margin:0 0 var(--space-3); }
.tour-countries label { position:relative; }
.tour-countries input { position:absolute; width:1px; height:1px; opacity:0; }
.tour-countries label > span { display:flex; gap:var(--space-2); align-items:center; border:1px solid var(--feedback-panel-rule); padding:12px 20px; border-radius:var(--radius-button); cursor:pointer; font-size:var(--feedback-caption-size); min-height:46px; }
.tour-countries small { font-size:11px; }
.tour-countries input:checked + span { color:var(--brand-ink); background:var(--white); border-color:var(--white); }
.tour-countries input:focus-visible + span { outline:2px solid var(--white); outline-offset:4px; }
.tour-filter-fields { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:var(--space-3); background:var(--feedback-panel); padding:var(--space-3); border-radius:var(--feedback-card-radius); color:var(--brand-ink); }
.tour-filter-fields label { display:grid; gap:var(--space-1); color:var(--catalog-muted); font-size:12px; }
.tour-filter-fields input,.tour-filter-fields select { width:100%; min-height:44px; border:0; border-bottom:1px solid var(--catalog-rule); color:var(--brand-ink); background:transparent; padding:8px 0; border-radius:0; font-size:var(--feedback-caption-size); }
.tour-filter-fields :focus-visible { outline-color:var(--brand-turquoise); outline-offset:3px; }
.tour-results-meta { display:flex; justify-content:space-between; align-items:center; min-height:64px; gap:var(--space-2); font-size:12px; }
.tour-results-meta p { margin:0; }
.tour-results-meta button { background:transparent; border:0; color:var(--white); padding:12px 0; text-decoration:underline; text-underline-offset:4px; }
.tour-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--space-4) var(--space-3); }
.tour-card { min-width:0; background:var(--feedback-panel); color:var(--brand-ink); border-radius:var(--feedback-card-radius); overflow:hidden; box-shadow:var(--feedback-card-shadow); display:flex; flex-direction:column; }
.tour-card-photo { position:relative; display:block; overflow:hidden; aspect-ratio:1.42; }
.tour-card-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform var(--duration-photo) var(--ease-out); }
.tour-country-tag { position:absolute; left:var(--space-2); top:var(--space-2); background:var(--white); color:var(--brand-ink); border-radius:var(--radius-button); font-size:11px; padding:7px 12px; }
.tour-card-body { padding:var(--space-3); display:flex; flex-direction:column; flex:1; }
.tour-card-location { font-size:11px; margin:0 0 var(--space-1); color:var(--catalog-muted); }
.tour-card h3 { font:400 clamp(21px,1.8vw,27px)/1.3 var(--editorial); margin:0 0 var(--space-3); }
.tour-card-facts,.tour-card-party { margin:0 0 7px; font-size:13px; line-height:1.55; }
.tour-card-party { color:var(--catalog-muted); margin-bottom:var(--space-3); }
.tour-card-price { border-top:1px solid var(--founder-line); padding-top:var(--space-2); margin-top:auto; display:grid; gap:5px; }
.tour-card-price > span,.tour-card-price small { font-size:11px; color:var(--catalog-muted); }
.tour-card-price strong { font-size:26px; font-weight:600; font-variant-numeric:tabular-nums; letter-spacing:-.025em; }
.tour-card-action { min-height:44px; display:flex; align-items:center; justify-content:center; padding:12px; margin-top:var(--space-3); border:1px solid var(--catalog-rule); border-radius:var(--radius-button); font-weight:600; font-size:13px; }
.tour-card :focus-visible,.tour-dialog :focus-visible { outline-color:var(--brand-turquoise); outline-offset:-4px; }
.tour-empty { padding:var(--space-5) 0; }
.tour-empty h3 { font:400 var(--feedback-title-size)/1.2 var(--editorial); }
.tour-empty p { line-height:1.7; }
.tour-hotel-links { display:grid; grid-template-columns:1.3fr 1fr; gap:var(--space-5); align-items:center; border-top:1px solid var(--feedback-panel-rule); margin-top:var(--feedback-section-gap); padding-top:var(--space-5); }
.tour-hotel-links h2 { font-size:var(--text-card); }
.tour-hotel-links p { font-size:var(--feedback-caption-size); line-height:1.7; margin-bottom:0; }
.tour-hotel-links nav { display:grid; gap:var(--space-2); }
.tour-hotel-links nav a { display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); padding:18px 20px; border:1px solid var(--feedback-panel-rule); border-radius:var(--feedback-card-radius); font-size:var(--feedback-caption-size); }
.tour-footer { border-top:1px solid var(--feedback-panel-rule); display:flex; flex-wrap:wrap; gap:var(--space-4); padding-block:var(--space-5); font-size:var(--feedback-caption-size); }
.tour-footer nav { display:flex; flex-wrap:wrap; gap:var(--space-3); margin-left:auto; }
.tour-footer .footer-contact { flex-basis:100%; padding-top:var(--space-3); }
.tour-dialog { border:0; border-radius:var(--brand-panel-radius); padding:0; width:min(1120px,calc(100% - 48px)); max-height:90dvh; overflow:auto; background:var(--feedback-panel); color:var(--brand-ink); box-shadow:var(--shadow-dialog); }
.tour-dialog::backdrop { background:var(--modal-backdrop); }
.tour-close { position:sticky; z-index:3; top:var(--space-2); float:right; margin:var(--space-2) var(--space-2) -60px 0; width:44px; height:44px; border:1px solid var(--founder-line); border-radius:var(--radius-round); background:var(--white); color:var(--brand-ink); font-size:28px; }
#tour-detail { display:grid; grid-template-columns:1fr 1.1fr; }
.tour-detail-photo { min-height:100%; }
.tour-detail-photo img { position:sticky; top:0; width:100%; height:90dvh; object-fit:cover; display:block; }
.tour-detail-body { padding:var(--space-5) var(--space-4); }
.tour-detail-body .tour-eyebrow { padding-right:var(--space-4); font-size:10px; color:var(--catalog-muted); }
.tour-detail-body h2 { font:400 var(--feedback-title-size)/1.2 var(--editorial); margin:0 0 var(--space-3); overflow-wrap:anywhere; }
.tour-detail-description { font-size:var(--feedback-caption-size); line-height:1.7; }
.tour-detail-facts { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-3); margin:var(--space-4) 0; }
.tour-detail-facts div { min-width:0; }
.tour-detail-facts dt { font-size:11px; color:var(--catalog-muted); margin-bottom:6px; }
.tour-detail-facts dd { margin:0; font-size:13px; line-height:1.6; overflow-wrap:anywhere; }
.tour-detail-price { border-top:1px solid var(--founder-line); padding-top:var(--space-3); margin-bottom:var(--space-3); }
.tour-detail-price > span { font-size:12px; display:block; }
.tour-detail-price strong { display:block; font-size:36px; letter-spacing:-.03em; margin-top:var(--space-1); }
.tour-detail-price p,.tour-contact-note { font-size:12px; line-height:1.7; color:var(--catalog-muted); }
.tour-detail-body .tour-button { background:var(--brand-turquoise); color:var(--white); width:100%; }
.tour-source-details { margin-top:var(--space-4); border-top:1px solid var(--founder-line); font-size:12px; line-height:1.7; }
.tour-source-details summary { padding:var(--space-2) 0; cursor:pointer; }
.tour-source-details a,.tour-hotel-detail-link { text-decoration:underline; text-underline-offset:4px; }
.tour-hotel-detail-link { display:block; margin-top:var(--space-3); font-size:12px; line-height:1.7; }
@media(hover:hover){.tour-card-photo:hover img{transform:scale(1.035)}.tour-card-action:hover{background:var(--brand-turquoise);color:var(--white)}.tour-button:hover{background:var(--brand-light);color:var(--brand-ink)}}
@media(max-width:1000px){.tour-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tour-opening{gap:var(--space-4)}.tour-header nav{display:none}.tour-home{margin-left:auto}}
@media(max-width:700px){
  .tour-header{min-height:80px;gap:var(--space-2)}.tour-brand{font-size:12px}.tour-brand img{width:38px;height:34px}.tour-home{font-size:12px;padding:10px 14px}
  .tour-opening{grid-template-columns:1fr;gap:var(--space-4);padding-top:var(--space-3)}.tour-opening h1{font-size:40px}.tour-opening-copy>p:not(.tour-eyebrow){font-size:var(--feedback-caption-size)}.tour-opening-photo{aspect-ratio:1.35;order:2}.tour-eyebrow{font-size:9px}
  .tour-countries{gap:6px}.tour-countries label>span{padding:11px 13px;gap:8px;font-size:12px}.tour-filter-fields{grid-template-columns:1fr 1fr;gap:var(--space-2);padding:var(--space-2)}.tour-search{grid-column:1/-1}.tour-filter-fields select{font-size:12px}
  .tour-grid{grid-template-columns:1fr;gap:var(--space-3)}.tour-card-photo{aspect-ratio:1.4}.tour-card h3{font-size:25px}.tour-card-body{padding:var(--space-3)}.tour-hotel-links{grid-template-columns:1fr;gap:var(--space-3)}
  .tour-footer{padding-bottom:100px}.tour-footer nav{margin-left:0}.tour-dialog{width:calc(100% - 20px);max-height:94dvh;border-radius:var(--feedback-card-radius)}#tour-detail{grid-template-columns:1fr}.tour-detail-photo img{position:static;height:240px}.tour-detail-body{padding:var(--space-3)}.tour-detail-body h2{font-size:29px}.tour-detail-body .tour-eyebrow{padding-right:0}.tour-close{top:12px;margin-top:12px}.tour-detail-price strong{font-size:32px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
