.destinations-page { padding: 142px clamp(20px,4vw,64px) 52px; background:#f5f6f3; color:#15232a; }
.destinations-intro { display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:end; max-width:1440px; margin:0 auto 42px; }
.destinations-intro h1 { font-size:clamp(38px,4.5vw,68px); font-weight:550; line-height:1.04; letter-spacing:-.04em; margin:16px 0 0; }
.destinations-intro h1 em { font-style:normal; color:#387d89; }
.destinations-intro-copy { max-width:430px; justify-self:end; font-size:16px; line-height:1.7; }
.destinations-intro-copy p { margin:0 0 22px; color:#56656b; }
.destinations-window { display:inline-block; border:1px solid #c7d3d3; padding:8px 14px; border-radius:30px; font-size:12px; font-weight:650; }
.destinations-filters { max-width:1440px; margin:0 auto; padding:20px 22px; background:white; border:1px solid #dce3e1; display:grid; grid-template-columns:1.5fr 1fr 1fr auto; gap:22px; align-items:end; border-radius:10px 10px 0 0; }
.destinations-filters label { display:grid; gap:8px; color:#68787c; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.1em; min-width:0; }
.destinations-filters input,.destinations-filters select { width:100%; min-width:0; padding:8px 0; background:transparent; border:0; border-bottom:1px solid #c7d3d3; border-radius:0; color:#142d35; font-size:14px; min-height:40px; }
.destinations-filters button { min-height:44px; border:0; border-radius:5px; background:#eaf0ef; padding:10px 16px; color:#254b55; cursor:pointer; }
.destinations-explorer { display:grid; grid-template-columns:320px minmax(0,1fr); max-width:1440px; margin:auto; height:690px; border:1px solid #dce3e1; border-top:0; border-radius:0 0 10px 10px; overflow:hidden; background:#fff; }
.destinations-results { overflow-y:auto; overscroll-behavior:contain; min-width:0; }
.destinations-results-heading { display:grid; gap:8px; padding:24px 22px 16px; }
.destinations-results-heading strong { font-size:14px; }.destinations-results-heading span { color:#76868b; font-size:11px; }
.destinations-status { padding:0 22px 22px; color:#5e7076; font-size:14px; line-height:1.6; }
.destination-event { width:100%; display:flex; gap:14px; text-align:left; border:0; border-top:1px solid #e4eae8; padding:23px 22px; background:white; color:#18313b; cursor:pointer; }
@media(prefers-reduced-motion:no-preference) {
  .destination-event.is-entering { animation:destinationEventIn 720ms cubic-bezier(.22,1,.36,1) var(--event-enter-delay,0ms) both; }
  @keyframes destinationEventIn { from { opacity:0; transform:translate3d(0,18px,0); } to { opacity:1; transform:translate3d(0,0,0); } }
}
.destination-event:hover,.destination-event[aria-pressed="true"] { background:#edf5f4; }
.destination-event[aria-pressed="true"] { box-shadow:inset 3px 0 #237486; }
.destination-event-index { font-size:10px; padding-top:3px; color:#52919b; }
.destination-event-copy { display:grid; gap:8px; min-width:0; }
.destination-event-copy small { font-size:10px; text-transform:uppercase; letter-spacing:.06em; color:#527b83; }
.destination-event-copy strong { font-size:17px; line-height:1.25; font-weight:650; }
.destination-event-copy>span { font-size:11px; color:#597179; }.destination-event-copy .destination-event-summary { font-size:12px; line-height:1.5; color:#748389; }
.destinations-map-stage { position:relative; min-width:0; background:#bed8dd; }
#destinationsMap { width:100%; height:100%; }
.destinations-map-note { position:absolute; top:20px; left:20px; right:20px; background:#fff; padding:14px; border-radius:6px; font-size:13px; }
.destinations-map-legend { position:absolute; left:16px; bottom:32px; display:flex; flex-wrap:wrap; gap:14px; background:rgba(255,255,255,.94); border-radius:6px; padding:12px; font-size:10px; pointer-events:none; }
.destinations-map-legend span { display:flex; gap:6px; align-items:center; }.destinations-map-legend i { display:block; width:8px; height:8px; background:#176c7b; border-radius:50%; }.destinations-map-legend i.airport { border-radius:0; transform:rotate(45deg); background:#101820; }
.destination-details { position:absolute; top:14px; right:14px; bottom:40px; width:min(365px,calc(100% - 28px)); border-radius:8px; box-shadow:0 12px 50px #12303a40; background:#fff; overflow-y:auto; overscroll-behavior:contain; z-index:5; }
.destination-details[hidden],.destinations-page [hidden] { display:none!important; }
#destinationClose { position:sticky; top:10px; float:right; margin:10px 10px -54px 0; z-index:2; width:44px; height:44px; font-size:28px; border-radius:50%; background:#fff; border:1px solid #dee5e5; color:#18313b; cursor:pointer; }
.destination-gallery { display:grid; grid-template-columns:1fr 1fr; gap:3px; background:#ebf2f0; }
.destination-gallery figure { margin:0; min-width:0; }.destination-gallery img { width:100%; height:155px; object-fit:cover; display:block; }
.destination-gallery figcaption { padding:6px; font-size:8px; line-height:1.3; overflow-wrap:anywhere; }
.destination-image-note { margin:5px 18px; color:#7e8c90; font-size:9px; }
.destination-photo-missing { padding:50px 22px; background:linear-gradient(120deg,#d9e9e9,#adcdd2); color:#345e68; font-size:17px; }
.destination-detail-copy { padding:24px; }
.destination-tag { font-size:10px; font-weight:700; color:#427d86; letter-spacing:.09em; text-transform:uppercase; }
.destination-detail-copy h2 { margin:12px 0 14px; font-size:28px; line-height:1.1; font-weight:600; letter-spacing:-.025em; }
.destination-detail-copy p { font-size:13px; line-height:1.65; color:#5c6e76; }.destination-detail-copy .destination-dates { font-weight:650; color:#1d5663; }
.destination-place { margin-top:-6px; }
.destination-interest { padding:16px 0; border-top:1px solid #e3e9e7; margin-top:20px; }.destination-interest strong { font-size:11px; font-weight:650; }
.destination-arrival { background:#eef5f4; padding:20px; border-radius:6px; margin:6px 0 20px; }
.destination-arrival h3 { font-size:20px; margin:10px 0; line-height:1.15; }.destination-arrival .destination-airport-code { font-size:11px; font-weight:650; color:#276473; }
.destination-arrival small { display:block; font-size:10px; color:#61787e; line-height:1.5; margin-bottom:12px; }
.destination-source { color:#266a79; text-decoration:underline; text-underline-offset:3px; font-size:inherit; }.destination-detail-copy>.destination-source,.destination-arrival>.destination-source,.destination-interest>.destination-source { font-size:11px; }
.destination-enquire { justify-content:center; width:100%; margin-top:22px; }
.destination-retry { margin:0 22px 22px; padding:12px 20px; border:1px solid #9ebfc6; border-radius:5px; background:#f2f7f6; cursor:pointer; }
.destinations-footnote { display:flex; gap:30px; max-width:1440px; margin:20px auto 0; align-items:flex-start; color:#7a878c; font-size:10px; line-height:1.6; }
.destinations-footnote p { max-width:900px; margin:0; }.destinations-footnote>span { margin-left:auto; white-space:nowrap; }
.destinations-page :is(button,a,input,select):focus-visible { outline:2px solid #287989; outline-offset:3px; }
@media(max-width:1050px) { .destinations-explorer { grid-template-columns:280px minmax(0,1fr); }.destination-details { position:fixed; top:auto; bottom:18px; right:18px; max-height:78dvh; z-index:85; }.destinations-intro { gap:24px; } }
@media(max-width:700px) {
  .destinations-page { padding:104px 16px 32px; }.destinations-intro { grid-template-columns:1fr; gap:22px; margin-bottom:28px; }.destinations-intro-copy { justify-self:start; font-size:14px; }.destinations-intro h1 { font-size:38px; }
  .destinations-filters { grid-template-columns:1fr 1fr; padding:18px; gap:16px; }.destinations-search { grid-column:1/-1; }.destinations-filters>button { grid-column:1/-1; }
  .destinations-explorer { height:auto; display:flex; flex-direction:column; }.destinations-map-stage { order:-1; height:410px; }.destinations-results { max-height:470px; }
  .destination-details { left:12px; right:12px; width:auto; max-height:78dvh; bottom:max(12px,env(safe-area-inset-bottom)); }.destinations-footnote { flex-direction:column; gap:10px; }.destinations-footnote>span { margin-left:0; }
}
