/* Shared photo-led design for the catalogue and tour detail. */
body.editorial.schedule-page { --bg:#f5f8fd; --bg-2:#eaf1fc; --surface:#fff; --ink:#172238; --ink-2:#43516a; --muted:#5d6b82; --accent:#2459ed; --action:#2459ed; --on-action:#fff; --line:#dbe3f0; --line-2:#bdcce2; --mono:var(--text); background:#f5f8fd; }
body.schedule-page .page-head { padding-block:clamp(28px,3vw,44px) 20px; background:radial-gradient(ellipse at 90% 0,#dce8ff,transparent 65%); }
body.schedule-page h1 { max-width:none; font-size:clamp(42px,5vw,72px); line-height:1.04; font-weight:500; letter-spacing:-.06em; margin:18px 0 24px; }
body.schedule-page .lead { max-width:55ch; font-size:18px; line-height:1.65; }
body.schedule-page .label { color:#2459ed; font-size:12px; letter-spacing:.05em; }
body.schedule-page .nav a { font-family:var(--text); font-size:13px; text-transform:none; letter-spacing:0; }
body.schedule-page .coords { display:none; }
body.schedule-page .btn { border-radius:14px; }
body.schedule-page .chips { gap:8px; margin-top:28px; }
body.schedule-page .chip { border:1px solid var(--line); border-radius:999px; background:white; font:400 14px/1.3 var(--text); text-transform:none; letter-spacing:0; min-height:44px; padding:12px 18px; }
body.schedule-page .chip.is-on { color:white; background:#2459ed; border-color:#2459ed; }
.journey-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
body.schedule-page .tl-month { grid-column:1/-1; margin:24px 0 0; border:0; font-size:26px; letter-spacing:-.03em; text-transform:none; }
.journey-card { display:flex; flex-direction:column; min-width:0; text-decoration:none; background:white; border:1px solid #dbe3f0; border-radius:26px; overflow:hidden; color:var(--ink); transition:box-shadow 250ms; }
.journey-image { position:relative; aspect-ratio:1.7; overflow:hidden; background:#eaf1fc; }
.journey-image img { width:100%; height:100%; object-fit:cover; transition:transform 600ms; }
.journey-date { position:absolute; top:20px; left:20px; color:white; background:rgba(13,32,61,.85); padding:9px 14px; border-radius:999px; font-size:13px; }
.journey-copy { padding:26px; display:flex; flex-direction:column; flex:1; }
.journey-copy h3 { font-size:clamp(24px,2.7vw,36px); font-weight:500; letter-spacing:-.04em; line-height:1.17; margin:12px 0; }
.journey-copy p { font-size:15px; line-height:1.65; color:var(--muted); margin:0 0 24px; }
.journey-bottom { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:auto; padding-top:18px; border-top:1px solid #e2e9f4; }
.journey-bottom b { font-weight:500; font-size:24px; }
.journey-bottom small { display:block; font-size:13px; color:var(--muted); margin-top:5px; }
.journey-arrow { display:grid; place-items:center; background:#2459ed; color:white; border-radius:50%; width:46px; height:46px; flex-shrink:0; font-size:24px; }
.journey-card:focus-visible { outline:3px solid #2459ed; outline-offset:4px; }
.journey-archive .journey-image { aspect-ratio:1.9; }
@media (min-width:1000px) {
  .journey-grid:not(.journey-archive) > .journey-card { grid-column:1/-1; display:grid; grid-template-columns:minmax(240px,.65fr) minmax(0,1.35fr); }
  .journey-grid:not(.journey-archive) > .journey-card .journey-image { aspect-ratio:auto; min-height:300px; }
  .journey-grid:not(.journey-archive) > .journey-card .journey-copy { padding:28px; }
}
body.schedule-page .section-tight { padding-block:32px; }
body.schedule-page .section-head h2 { font-size:clamp(32px,4vw,56px); font-weight:500; letter-spacing:-.05em; }
body.editorial.tour-page { background:#f5f8fd; }
body.tour-page .tour-top { padding-top:38px; padding-bottom:32px; }
body.tour-page .tour-top h1 { max-width:22ch; font-size:clamp(38px,5.4vw,76px); font-weight:500; letter-spacing:-.055em; line-height:1.07; }
body.tour-page .tour-strip { max-width:100%; gap:18px 30px; }
body.tour-page .tour-strip .lead { font-size:18px; max-width:65ch; line-height:1.65; }
body.tour-page .tour-when .num { font-size:36px; font-weight:500; }
body.tour-page .mosaic { height:clamp(340px,55vw,620px); border-radius:26px; gap:8px; box-shadow:none; }
.journey-nav { display:flex; flex-wrap:wrap; gap:8px; padding-block:24px; }
.journey-nav a { display:inline-flex; align-items:center; min-height:44px; padding:10px 18px; border:1px solid #dbe3f0; border-radius:999px; text-decoration:none; font-size:14px; background:white; }
.journey-nav a:last-child { background:#2459ed; color:white; border-color:#2459ed; }
body.tour-page .tour-body { padding-top:24px; gap:48px; }
#route-story, #trip-program, #pp-title { scroll-margin-top:110px; }
body.tour-page .block h2 { font-size:clamp(30px,3.2vw,46px); letter-spacing:-.045em; font-weight:500; }
body.tour-page .block { margin-bottom:48px; }
body.tour-page .timeline { border:0; }
body.tour-page .timeline li { padding:20px 0; gap:20px; border-color:#dbe3f0; }
body.tour-page .tl-time { color:#2459ed; font:500 15px/1.6 var(--text); }
body.tour-page .tl-text { font-size:16px; line-height:1.65; }
body.tour-page .lists > div { background:white; padding:24px; border-radius:22px; border:1px solid #dbe3f0; }
body.tour-page .book-card { border:1px solid #dbe3f0; border-top:3px solid #2459ed; box-shadow:0 12px 40px rgba(20,50,100,.07); }
body.tour-page .book-cover { max-height:200px; }
body.tour-page .mobile-bar { background:rgba(245,248,253,.97); border-top:1px solid #dbe3f0; backdrop-filter:blur(16px); }
@media (hover:hover) and (prefers-reduced-motion:no-preference) {
  .journey-card:hover { box-shadow:0 16px 44px rgba(20,50,100,.12); }
  .journey-card:hover img { transform:scale(1.04); }
}
@media (max-width:760px) {
  .journey-grid { grid-template-columns:1fr; gap:18px; }
  .journey-copy { padding:22px; }
  .journey-card { border-radius:22px; }
  body.schedule-page .section-head { flex-direction:column; align-items:start; gap:18px; }
  body.schedule-page .lead, body.tour-page .tour-strip .lead { font-size:16px; }
  body.tour-page .tour-top h1 { font-size:clamp(34px,8vw,48px); }
  body.tour-page .mosaic { height:380px; border-radius:20px; }
  .journey-nav { gap:6px; }
  .journey-nav a { font-size:12px; padding:9px 12px; }
  body.tour-page .tour-body { gap:24px; }
  body.tour-page .lists > div { padding:20px; }
}
@media (prefers-reduced-motion:reduce) { .journey-card, .journey-image img { transition:none; } }

/* Schedule is a decision page: facts and booking before the archive. */
body.schedule-page .page-head { padding-block:24px 8px; background:transparent; }
body.editorial.schedule-page .page-head h1 { max-width:none; font-size:clamp(30px,3.4vw,48px); letter-spacing:-.045em; line-height:1.12; margin:12px 0 16px; }
body.schedule-page .lead { max-width:75ch; font-size:16px; }
body.schedule-page .crumbs { margin-bottom:16px; }
body.schedule-page .chips { margin-top:18px; }
body.schedule-page .section-tight { padding-block:20px; }
body.schedule-page .tl-month { margin:0; font-size:22px; }
.journey-copy h3 { font-size:clamp(24px,2.3vw,32px); }
.journey-copy h3 a { color:inherit; text-decoration:none; }
.journey-copy h3 a:hover { text-decoration:underline; text-decoration-thickness:1px; }
.journey-copy p { margin-bottom:14px; }
.journey-facts { display:grid; grid-template-columns:1fr 1fr; gap:14px 24px; list-style:none; padding:0; margin:0 0 20px; }
.journey-facts li { display:grid; gap:3px; font-size:14px; line-height:1.4; }
.journey-facts li > span { color:var(--muted); font-size:12px; }
.journey-facts b { font-weight:500; }
.journey-book { font-size:14px; text-transform:none; letter-spacing:0; min-height:48px; white-space:normal; text-align:center; }
.journey-copy .journey-reassurance { font-size:12px; color:var(--muted); margin:12px 0 0; }
.schedule-help { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-block:24px; padding-block:24px; border-top:1px solid #dbe3f0; border-bottom:1px solid #dbe3f0; }
.schedule-help h2 { font-size:22px; font-weight:500; letter-spacing:-.025em; margin:0 0 8px; }
.schedule-help p { font-size:15px; color:var(--muted); max-width:65ch; margin:0; }
.schedule-help > a { flex-shrink:0; font-size:13px; }
@media (max-width:999px) {
  .journey-grid:not(.journey-archive) { grid-template-columns:1fr; }
  .journey-grid:not(.journey-archive) .journey-image { height:200px; aspect-ratio:auto; }
  .schedule-help { flex-direction:column; align-items:start; }
}
@media (max-width:760px) {
  .journey-grid:not(.journey-archive) .journey-image { height:160px; }
  .journey-copy { padding:20px; }
  .journey-bottom { flex-wrap:wrap; }
  .journey-book { width:100%; }
  .journey-facts { gap:12px; }
  .schedule-help > a { white-space:normal; max-width:100%; }
}
