.table-scroll {
  overflow-x: auto;
  border: 1px solid var(--line);
  border-radius: 6px;
}
.table-scroll table {
  width: 100%;
  border-collapse: collapse;
  background: var(--panel);
}
.table-scroll th,
.table-scroll td {
  padding: 14px 16px;
  border-bottom: 1px solid var(--line);
  text-align: left;
  white-space: nowrap;
}
.table-scroll tbody tr:last-child th,
.table-scroll tbody tr:last-child td {
  border-bottom: 0;
}
.parking-discounts {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 16px;
}
.article-photo-gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
.article-photo-gallery figure { margin: 0; }
.article-photo-gallery figure:first-child { grid-column: 1 / -1; }
.article-photo-gallery img {
  width: 100%;
  aspect-ratio: 4 / 3;
  border-radius: 6px;
  object-fit: cover;
}
.article-photo-gallery figcaption {
  margin-top: 7px;
  color: var(--muted);
  font-size: .84rem;
}
.itinerary-stay-section { margin-top: 34px; }
.itinerary-stay-section > h2 { margin: 7px 0 0; font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1.22; }
.itinerary-stay-intro { max-width:61ch; margin: 12px 0 22px; color: oklch(0.34 0.055 157); }
.journey-spread { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(340px, .92fr); gap: clamp(24px, 5vw, 58px); align-items: start; margin: 28px 0 54px; padding: clamp(22px, 4vw, 42px); border-top: 5px solid var(--forest-dark); background: oklch(0.97 0.012 104); }
.journey-copy > h2 { max-width:11ch; margin: 7px 0 0; color: var(--forest-dark); font-size: clamp(2.1rem, 4.2vw, 3.6rem); letter-spacing: -.035em; line-height: 1.05; text-wrap: balance; }
.journey-copy > p { max-width:52ch; margin: 16px 0 0; color: oklch(0.31 0.04 157); font-size: 1rem; line-height: 1.72; }
.journey-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 26px 0 0; border-top: 1px solid oklch(0.56 0.07 158); border-left: 1px solid oklch(0.56 0.07 158); }
.journey-metrics div { padding: 12px 14px; border-right: 1px solid oklch(0.56 0.07 158); border-bottom: 1px solid oklch(0.56 0.07 158); }
.journey-metrics dt { color: oklch(0.33 0.05 157); font-size: .76rem; font-weight: 700; }
.journey-metrics dd { margin: 4px 0 0; color: var(--forest-dark); font-size: .98rem; font-weight: 800; }
.journey-bases { display: grid; grid-column: 1 / -1; gap: 0; margin: 2px 0 0; padding: 0; list-style: none; border-top: 1px solid oklch(0.56 0.07 158); }
.journey-bases li { display: grid; grid-template-columns: minmax(104px, .48fr) minmax(82px, .42fr) minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 11px 0; border-bottom: 1px solid oklch(0.56 0.07 158); }
.journey-bases span { color: oklch(0.33 0.05 157); font-size: .76rem; font-weight: 700; }
.journey-bases strong { color: var(--forest-dark); font-size: .92rem; }
.journey-bases p { margin: 0; color: var(--text); font-size: .87rem; line-height: 1.4; }
.journey-bases p small { display: block; margin-top: 2px; color: oklch(0.33 0.05 157); font-size: .76rem; }
.journey-links { display: flex; flex-wrap: wrap; gap: 5px 10px; }
.journey-bases a { color: var(--forest-dark); font-size: .77rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.swiss-route-map { margin: 0; padding: 2px 0 0; }
.swiss-route-map figcaption h3 { margin: 5px 0 0; color: var(--forest-dark); font-size: clamp(1.25rem, 2.6vw, 1.75rem); line-height: 1.25; }
.swiss-route-map figcaption > p:last-child { margin: 7px 0 0; color: oklch(0.34 0.055 157); font-size: .86rem; line-height: 1.55; }
.route-map-key { display: flex; flex-wrap: wrap; gap: 7px 12px; margin: 13px 0 0; padding: 0; list-style: none; color: oklch(0.3 0.05 157); font-size: .71rem; }
.route-map-key li { display: inline-flex; gap: 4px; align-items: center; white-space: nowrap; }
.route-map-key b { display: grid; width: 17px; height: 17px; place-items: center; border: 1px solid var(--forest-dark); border-radius: 50%; background: var(--paper); font-size: .64rem; }
.route-leg-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 5px 14px; margin: 13px 0 0; padding: 12px 0 0 20px; border-top: 1px solid oklch(0.66 0.075 158); color: var(--forest-dark); font-size: .73rem; }
.route-leg-links a { color: var(--forest-dark); font-weight: 750; text-decoration: underline; text-underline-offset: 3px; }
.swiss-route-map-canvas { position: relative; height: min(390px, 50vw); min-height: 330px; margin-top: 12px; overflow: hidden; border: 1px solid oklch(0.66 0.075 158); background: oklch(0.945 0.018 152); }
.swiss-route-map-canvas svg { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; }
.swiss-route-land { fill: oklch(0.86 0.055 153); stroke: oklch(0.42 0.07 157); stroke-width: .55; }
.swiss-route-lake { fill: oklch(0.76 0.075 228); opacity: .78; }
.is-europe-route .europe-route-land { fill: oklch(0.94 0.018 153); stroke-width: .35; }
.is-europe-route .europe-route-land:nth-of-type(1) { fill: oklch(0.89 0.035 245); }
.is-europe-route .europe-route-land:nth-of-type(2) { fill: oklch(0.88 0.05 155); }
.is-europe-route .europe-route-land:nth-of-type(3), .is-europe-route .europe-route-land:nth-of-type(4) { fill: oklch(0.9 0.045 75); }
.is-europe-route .swiss-map-neighbor { fill: oklch(0.31 0.055 157); font-size: 3.5px; font-weight: 800; }
.swiss-route-segment { fill: none; stroke: oklch(0.31 0.115 158); stroke-width: 1.45; stroke-linecap: round; }
.swiss-route-segment.is-airport { stroke: oklch(0.46 0.14 28); stroke-dasharray: 2.4 2.1; }
#swiss-route-arrow path { fill: oklch(0.31 0.115 158); }
#swiss-route-airport-arrow path { fill: oklch(0.46 0.14 28); }
.swiss-map-neighbor { fill: oklch(0.45 0.025 157); font-size: 3.1px; font-weight: 650; }
.swiss-map-region { fill: oklch(0.38 0.055 157); font-size: 2.7px; font-weight: 800; }
.swiss-route-stop { position: absolute; z-index: 2; width: 0; height: 0; color: var(--forest-dark); }
.swiss-route-stop.stop-1 { left: 69%; top: 27%; }
.swiss-route-stop.stop-2 { left: 57%; top: 43%; }
.swiss-route-stop.stop-3 { left: 47%; top: 58%; }
.swiss-route-stop.stop-4 { left: 46%; top: 82%; }
.swiss-route-stop.stop-5 { left: 22%; top: 67%; }
.swiss-route-stop.stop-6 { left: 10%; top: 69%; }
.swiss-route-stop.stop-7 { left: 5%; top: 64%; }
.swiss-route-stop.stop-8 { left: 73%; top: 24%; }
.swiss-route-stop.stop-9 { left: 82%; top: 18%; }
.swiss-route-stop b { position: absolute; display: grid; width: 24px; height: 24px; place-items: center; transform: translate(-50%, -50%); border: 2px solid var(--forest-dark); border-radius: 50%; background: var(--paper); font-size: .72rem; }
.route-stop-label { position: absolute; left: 16px; top: -19px; display: grid; min-width: max-content; padding: 4px 6px; background: oklch(0.97 0.012 104 / .94); line-height: 1.15; }
.route-stop-label strong { font-size: .75rem; }
.route-stop-label small { margin-top: 2px; color: oklch(0.35 0.045 157); font-size: .62rem; font-weight: 700; }
.swiss-route-stop.stop-1 .route-stop-label { right: 16px; left: auto; text-align: right; }
.swiss-route-stop.stop-2 .route-stop-label { top: -25px; }
.swiss-route-stop.stop-3 .route-stop-label { top: -10px; }
.swiss-route-stop.stop-4 .route-stop-label { top: -14px; }
.swiss-route-stop.stop-5 .route-stop-label { top: -37px; }
.swiss-route-stop.stop-6 .route-stop-label { top: 14px; left: 12px; }
.swiss-route-stop.stop-7 .route-stop-label { top: -42px; left: -4px; }
.swiss-route-stop.stop-8 .route-stop-label { top: 14px; right: 12px; left: auto; text-align: right; }
.swiss-route-stop.stop-9 .route-stop-label { top: -40px; right: 10px; left: auto; text-align: right; }
.is-europe-route .swiss-route-stop.stop-1 { left: 20%; top: 23%; }
.is-europe-route .swiss-route-stop.stop-2 { left: 52%; top: 42%; }
.is-europe-route .swiss-route-stop.stop-3 { left: 56%; top: 38%; }
.is-europe-route .swiss-route-stop.stop-4 { left: 75%; top: 67%; }
.is-europe-route .swiss-route-stop.stop-5 { left: 83%; top: 84%; }
.is-europe-route .swiss-route-stop.stop-1 .route-stop-label { right: auto; left: 16px; text-align: left; }
.is-europe-route .swiss-route-stop.stop-2 .route-stop-label { top: 12px; right: 10px; left: auto; text-align: right; }
.is-europe-route .swiss-route-stop.stop-3 .route-stop-label { top: -43px; }
.is-europe-route .swiss-route-stop.stop-4 .route-stop-label { top: -18px; }
.is-europe-route .swiss-route-stop.stop-5 .route-stop-label { top: -42px; right: 10px; left: auto; text-align: right; }
.swiss-route-stop.is-final b { border-color: oklch(0.5 0.13 28); color: oklch(0.38 0.11 28); }
.swiss-route-direction { position: absolute; right: 3%; bottom: 3%; z-index: 2; padding: 5px 7px; background: oklch(0.97 0.012 104 / .92); color: oklch(0.3 0.05 157); font-size: .68rem; font-weight: 750; }
.itinerary-detail-heading { margin: 0 0 20px; }
.itinerary-detail-heading h2 { margin: 6px 0 0; color: var(--forest-dark); font-size: clamp(1.55rem, 3vw, 2.25rem); line-height: 1.2; text-wrap: balance; }
.itinerary-detail-heading > p:last-child { max-width:58ch; margin: 9px 0 0; color: oklch(0.34 0.055 157); }
.travel-reading-layout .schedule-list.schedule-with-stay { gap: 0; border-top: 2px solid var(--forest-dark); }
@media (min-width: 961px) {
  .travel-reading-layout { grid-template-columns: minmax(0, 980px) 280px; gap: 48px; max-width: 1380px; }
  .travel-reading-layout .article-main { max-width: none; }
}
.travel-reading-layout .schedule-list.schedule-with-stay > div { grid-template-columns: minmax(0, 1fr) minmax(210px, .52fr); gap: 22px; align-items: stretch; border: 0; border-bottom: 1px solid oklch(0.74 0.07 158 / 0.42); border-radius: 0; padding: 20px 0; background: transparent; }
.travel-reading-layout .schedule-list.schedule-with-stay > div.has-day-image { grid-template-columns: minmax(260px, .78fr) minmax(0, 1.22fr); gap: 26px; }
.travel-reading-layout .schedule-list.schedule-with-stay > div.has-no-day-visual { grid-template-columns: 1fr; }
.day-visual-column { display: grid; align-self: stretch; align-content: start; gap: 10px; min-width: 0; }
.day-illustration { align-self: start; margin: 0; overflow: hidden; border: 1px solid oklch(0.66 0.075 158); background: oklch(0.95 0.018 150); }
.day-illustration img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: contain; }
.day-reference-rail { display: grid; gap: 10px; padding: 12px 13px; border: 1px solid oklch(0.71 0.065 158); background: oklch(0.975 0.014 150); }
.day-rail-note { margin: 0; color: var(--text); font-size: .78rem; line-height: 1.5; }
.day-rail-note b { display: block; width: fit-content; margin-bottom: 5px; padding: 3px 6px; background: oklch(0.9 0.075 87); color: oklch(0.35 0.08 52); font-size: .67rem; }
.day-reference-rail nav { display: grid; gap: 5px; padding-top: 9px; border-top: 1px solid oklch(0.76 0.055 158); }
.day-reference-rail nav strong { color: oklch(0.34 0.06 157); font-size: .7rem; }
.day-reference-rail a { width: fit-content; color: var(--forest-dark); font-size: .78rem; font-weight: 800; line-height: 1.35; text-decoration: underline; text-underline-offset: 3px; }
.schedule-route > strong { color: var(--forest-dark); font-size: 1rem; }
.travel-reading-layout .schedule-route > p { margin: 7px 0 0; color: var(--text); font-size: .96rem; line-height: 1.65; }
.day-flex-status { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px; align-items: start; margin: 9px 0 0 !important; padding: 7px 8px; border: 1px solid oklch(0.74 0.07 158 / .55); background: oklch(0.975 0.012 150); font-size: .76rem !important; line-height: 1.45 !important; }
.day-flex-status b { color: oklch(0.4 0.04 157); }
.day-flex-status.is-active { border-color: oklch(0.61 0.105 157); background: oklch(0.94 0.04 150); }
.day-flex-status.is-active b { color: var(--forest-dark); }
.day-context { margin-top: 14px; padding: 12px 14px; border-top: 1px solid oklch(0.67 0.075 158); border-bottom: 1px solid oklch(0.67 0.075 158); background: oklch(0.975 0.014 94); }
.day-context b { color: var(--forest-dark); font-size: .78rem; }
.travel-reading-layout .day-context p { margin: 5px 0 0; color: var(--text); font-size: .84rem; line-height: 1.58; }
.day-transit { display: grid; grid-template-columns: 76px minmax(0, 1fr); gap: 10px; margin-top: 14px; padding: 10px 0; border-top: 1px solid oklch(0.74 0.07 158 / .42); border-bottom: 1px solid oklch(0.74 0.07 158 / .42); }
.day-transit b { color: oklch(0.35 0.07 157); font-size: .78rem; }
.travel-reading-layout .day-transit p { margin: 0; color: var(--text); font-size: .83rem; line-height: 1.55; }
.day-transit a, .day-spots a { color: var(--forest-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.day-spots { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 0; padding: 0; list-style: none; }
.day-spots li { display: grid; min-width: min(100%, 150px); flex: 1 1 150px; gap: 3px; padding: 9px 10px; border: 1px solid oklch(0.74 0.07 158 / .55); background: oklch(0.985 0.008 150); }
.day-spots a { width: fit-content; font-size: .82rem; }
.day-spots a span { display: block; margin-top: 2px; color: oklch(0.38 0.06 157); font-size: .63rem; text-decoration: none; }
.day-spots small { color: oklch(0.37 0.04 157); font-size: .73rem; line-height: 1.45; }
.day-food { display: grid; grid-template-columns: 82px minmax(0, 1fr); gap: 9px 16px; align-items: start; margin-top: 14px; padding: 13px 0; border-top: 1px solid oklch(0.61 0.105 157); border-bottom: 1px solid oklch(0.74 0.07 158 / .42); }
.day-food p { margin: 0; }
.travel-reading-layout .day-food > div { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.day-food-kicker { color: oklch(0.42 0.11 28); font-size: .72rem !important; font-weight: 850; letter-spacing: .04em; }
.day-food strong, .day-food-place > span { display: block; color: var(--forest-dark); font-size: .86rem; line-height: 1.4; }
.travel-reading-layout .day-food div > p { margin-top: 4px; color: var(--text); font-size: .78rem; line-height: 1.5; }
.travel-reading-layout .day-food > .day-food-place { grid-column: 2; display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 12px; padding-top: 9px; border-top: 1px solid oklch(0.78 0.045 158); }
.day-food-place small { display: block; margin-top: 3px; color: oklch(0.37 0.04 157); font-size: .72rem; line-height: 1.4; }
.day-food nav { grid-row: 1 / 3; grid-column: 2; display: flex; flex-wrap: wrap; gap: 4px 11px; justify-content: flex-end; margin-top: 0; }
.day-food a { color: var(--forest-dark); font-size: .74rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.travel-reading-layout .day-food-tip { grid-column: 2 / -1; color: oklch(0.38 0.045 157); font-size: .73rem; line-height: 1.45; }
.itinerary-food-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid oklch(0.74 0.07 158 / .42); color: oklch(0.36 0.045 157); font-size: .82rem; line-height: 1.55; }
.swiss-booking-guide { display: grid; grid-template-columns: minmax(230px, .7fr) minmax(0, 1.3fr); gap: 28px; margin: 0 0 48px; padding: 26px 28px; border-top: 4px solid oklch(0.5 0.13 28); border-bottom: 1px solid oklch(0.66 0.075 158); background: oklch(0.965 0.018 153); }
.swiss-booking-guide h2 { margin: 6px 0 0; color: var(--forest-dark); font-size: clamp(1.45rem, 2.6vw, 2rem); line-height: 1.2; }
.swiss-booking-guide > div > p:not(.eyebrow) { margin: 10px 0 16px; color: oklch(0.34 0.05 157); font-size: .9rem; line-height: 1.65; }
.swiss-booking-guide ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid oklch(0.66 0.075 158); border-left: 1px solid oklch(0.66 0.075 158); }
.swiss-booking-guide li { padding: 12px; border-right: 1px solid oklch(0.66 0.075 158); border-bottom: 1px solid oklch(0.66 0.075 158); }
.swiss-booking-guide li strong { color: var(--forest-dark); font-size: .86rem; }
.swiss-booking-guide li p { margin: 5px 0 0; color: var(--text); font-size: .79rem; line-height: 1.5; }
.swiss-booking-guide > small { grid-column: 1 / -1; color: oklch(0.37 0.04 157); font-size: .72rem; }
.swiss-flex-plan { display: grid; grid-template-columns: minmax(230px, .78fr) minmax(0, 1.22fr); gap: 26px; margin: 0 0 48px; padding: 26px 28px; border-top: 4px solid var(--forest-dark); border-bottom: 1px solid oklch(0.66 0.075 158); background: oklch(0.97 0.018 94); }
.swiss-flex-plan h2 { margin: 6px 0 0; color: var(--forest-dark); font-size: clamp(1.45rem, 2.6vw, 2rem); line-height: 1.2; }
.swiss-flex-plan > div > p:not(.eyebrow), .swiss-flex-plan-notes p { margin: 10px 0 0; color: var(--text); font-size: .86rem; line-height: 1.6; }
.swiss-flex-plan-notes { display: grid; gap: 12px; }
.swiss-flex-plan-notes p { margin: 0; }
.swiss-flex-plan-notes strong { display: block; margin-bottom: 3px; color: var(--forest-dark); }
.swiss-flex-plan a { width: fit-content; color: var(--forest-dark); font-size: .84rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.swiss-pass-comparison { margin: -22px 0 48px; padding: 28px; border: 1px solid oklch(0.66 0.075 158); background: oklch(0.985 0.012 150); }
.swiss-pass-comparison header { max-width: 760px; }
.swiss-pass-comparison h2 { margin: 6px 0 0; color: var(--forest-dark); font-size: clamp(1.5rem, 2.7vw, 2.1rem); line-height: 1.2; }
.swiss-pass-comparison header > p:last-child { margin: 10px 0 0; color: var(--text); font-size: .92rem; line-height: 1.65; }
.swiss-pass-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 22px; }
.swiss-pass-options article { padding: 18px; border-top: 4px solid var(--forest); background: var(--paper); box-shadow: 0 8px 24px oklch(0.3 0.03 157 / .07); }
.swiss-pass-options article:first-child { border-top-color: var(--coral); }
.swiss-pass-options span { display: inline-block; padding: 4px 7px; background: oklch(0.93 0.04 70); color: oklch(0.36 0.08 40); font-size: .69rem; font-weight: 800; }
.swiss-pass-options h3 { margin: 10px 0 3px; color: var(--forest-dark); font-size: 1.08rem; }
.swiss-pass-options strong { color: var(--forest-dark); font-size: .9rem; }
.swiss-pass-options p { margin: 9px 0 0; color: var(--text); font-size: .82rem; line-height: 1.58; }
.swiss-pass-practical { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-top: 18px; padding-top: 18px; border-top: 1px solid oklch(0.7 0.06 158); }
.swiss-pass-practical p { margin: 0; color: var(--text); font-size: .82rem; line-height: 1.58; }
.swiss-pass-practical strong { display: block; margin-bottom: 4px; color: var(--forest-dark); }
.swiss-pass-comparison nav { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 18px; }
.swiss-pass-comparison nav a { color: var(--forest-dark); font-size: .82rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.pass-cost-check { margin-top: 18px; overflow-x: auto; border-top: 1px solid oklch(0.7 0.06 158); }
.pass-cost-check table { width: 100%; min-width: 650px; border-collapse: collapse; font-size: .77rem; }
.pass-cost-check th, .pass-cost-check td { padding: 10px 12px 10px 0; border-bottom: 1px solid oklch(0.76 0.05 158); text-align: left; vertical-align: top; }
.pass-cost-check thead th { color: oklch(0.38 0.055 157); font-size: .68rem; letter-spacing: .025em; }
.pass-cost-check tbody th { color: var(--forest-dark); white-space: nowrap; }
.pass-cost-check a { color: var(--forest-dark); font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.jungfrau-ticket-plan { margin: 0 0 48px; padding: 28px 0 0; border-top: 4px solid oklch(0.46 0.12 228); }
.jungfrau-ticket-plan header { max-width: 760px; }
.jungfrau-ticket-plan h2 { margin: 6px 0 0; color: var(--forest-dark); font-size: clamp(1.5rem, 2.7vw, 2.1rem); line-height: 1.2; }
.jungfrau-ticket-plan header > p:last-child { margin: 9px 0 0; color: var(--text); font-size: .9rem; line-height: 1.6; }
.jungfrau-ticket-plan ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; margin: 22px 0 0; padding: 0; list-style: none; border-top: 1px solid oklch(0.67 0.075 158); }
.jungfrau-ticket-plan li { position: relative; padding: 18px 22px 18px 0; border-bottom: 1px solid oklch(0.74 0.07 158); }
.jungfrau-ticket-plan li + li { padding-left: 22px; border-left: 1px solid oklch(0.74 0.07 158); }
.jungfrau-ticket-plan li::after { position: absolute; top: 25px; right: -7px; z-index: 1; content: '→'; color: var(--coral); font-weight: 900; }
.jungfrau-ticket-plan li:last-child::after { content: none; }
.jungfrau-ticket-plan li span { display: block; color: oklch(0.38 0.055 157); font-size: .7rem; font-weight: 800; }
.jungfrau-ticket-plan li strong { display: block; margin-top: 7px; color: var(--forest-dark); font-size: .92rem; }
.jungfrau-ticket-plan li p { margin: 6px 0 0; color: var(--text); font-size: .78rem; line-height: 1.5; }
.jungfrau-ticket-plan footer { display: flex; flex-wrap: wrap; gap: 7px 16px; align-items: baseline; margin-top: 14px; }
.jungfrau-ticket-plan footer p { flex-basis: 100%; margin: 0; color: oklch(0.38 0.045 157); font-size: .78rem; line-height: 1.5; }
.jungfrau-ticket-plan footer a { color: var(--forest-dark); font-size: .78rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.schedule-stay { display: grid; grid-template-columns: minmax(92px, .45fr) minmax(0, 1.55fr); gap: 5px 14px; margin-top: 14px; padding: 13px 14px; border: 1px solid oklch(0.66 0.075 158); background: oklch(0.975 0.02 150); }
.schedule-stay span { color: oklch(0.34 0.055 157); font-size: .77rem; font-weight: 800; }
.schedule-stay strong { color: var(--forest-dark); font-size: .94rem; line-height: 1.35; }
.schedule-stay small { grid-column: 2; color: oklch(0.34 0.055 157); font-size: .82rem; }
.schedule-stay-links { grid-column: 2; display: flex; flex-wrap: wrap; gap: 5px 12px; margin-top: 3px; }
.schedule-stay a { width: fit-content; color: var(--forest-dark); font-size: .84rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.itinerary-stay-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid oklch(0.74 0.07 158 / 0.42); color: oklch(0.36 0.045 157); font-size: .88rem; }

/* The long itinerary reads like an editorial spread, not a stack of UI cards. */
.journey-metrics { border-left: 0; }
.journey-metrics div { padding-inline: 0 18px; border-right: 0; }
.swiss-booking-guide,
.swiss-flex-plan { border-right: 0; border-left: 0; background: transparent; }
.swiss-booking-guide ul { border-left: 0; }
.swiss-booking-guide li { padding-inline: 0 18px; border-right: 0; }
.swiss-pass-comparison { border-right: 0; border-left: 0; padding-inline: 0; background: transparent; }
.swiss-pass-options { gap: 0; border-top: 1px solid oklch(0.7 0.06 158); }
.swiss-pass-options article { border-top: 0; border-bottom: 1px solid oklch(0.7 0.06 158); padding: 20px 22px 20px 0; background: transparent; box-shadow: none; }
.swiss-pass-options article + article { border-left: 1px solid oklch(0.7 0.06 158); padding-right: 0; padding-left: 22px; }
.day-illustration { border: 0; }
.day-reference-rail { padding: 11px 0 0; border: 0; border-top: 1px solid oklch(0.71 0.065 158); background: transparent; }
.day-flex-status { display: flex; gap: 7px; width: fit-content; padding: 0; border: 0; background: transparent; }
.day-flex-status b { padding: 2px 6px; border-radius: 999px; background: oklch(0.92 0.03 150); }
.day-flex-status.is-active { border: 0; background: transparent; }
.day-flex-status.is-active b { background: oklch(0.88 0.075 150); }
.day-context { padding: 12px 0 12px 16px; border: 0; border-left: 3px solid oklch(0.61 0.105 157); background: transparent; }
.day-transit { border-bottom: 0; }
.day-spots { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 18px; border-top: 1px solid oklch(0.74 0.07 158 / .55); }
.day-spots li { min-width: 0; padding: 10px 0; border: 0; border-bottom: 1px solid oklch(0.74 0.07 158 / .55); background: transparent; }
.schedule-stay { grid-template-columns: minmax(92px, .4fr) minmax(0, 1.6fr); padding: 12px 0 0; border: 0; border-top: 1px solid oklch(0.61 0.105 157); background: transparent; }
.editorial-field-guide { margin-top: 64px; padding: 34px 0 0; border-top: 4px solid var(--forest-dark); }
.editorial-field-guide > header { display: grid; grid-template-columns: minmax(180px, .45fr) minmax(0, 1.55fr); gap: 7px 28px; align-items: start; }
.editorial-field-guide > header .eyebrow { grid-row: 1 / 3; margin-top: 7px; }
.editorial-field-guide > header h2 { margin: 0; color: var(--forest-dark); font-size: clamp(1.7rem, 3vw, 2.5rem); letter-spacing: -.025em; line-height: 1.15; }
.editorial-field-guide > header > p:last-child { max-width: 60ch; margin: 0; color: oklch(0.36 0.045 157); font-size: .9rem; line-height: 1.65; }
.field-guide-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 34px; margin-top: 30px; border-top: 1px solid oklch(0.65 0.07 158); }
.field-guide-columns > article { padding-top: 22px; }
.field-guide-columns > article + article { padding-left: 34px; border-left: 1px solid oklch(0.74 0.06 158); }
.field-guide-columns h3,
.field-guide-footnotes h3 { margin: 0 0 15px; color: var(--forest-dark); font-size: 1.05rem; }
.field-note { padding: 13px 0; border-top: 1px solid oklch(0.78 0.045 158); }
.field-note:first-of-type { border-top: 0; }
.field-note strong,
.field-place-list strong { color: var(--forest-dark); font-size: .88rem; }
.travel-reading-layout .field-note p,
.travel-reading-layout .field-place-list p,
.travel-reading-layout .field-guide-footnotes p { margin: 4px 0 0; font-size: .82rem; line-height: 1.6; }
.field-place-list { margin: 0; padding: 0; list-style: none; counter-reset: field-place; }
.field-place-list li { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: start; padding: 11px 0; border-top: 1px solid oklch(0.78 0.045 158); counter-increment: field-place; }
.field-place-list li:first-child { border-top: 0; }
.field-place-list strong::before { margin-right: 7px; color: oklch(0.48 0.08 157); content: counter(field-place, decimal-leading-zero); font-size: .67rem; }
.field-place-list a,
.field-guide-footnotes a { color: var(--forest-dark); font-size: .76rem; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
.field-guide-footnotes { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(240px, .7fr); gap: 34px; margin-top: 24px; padding-top: 22px; border-top: 1px solid oklch(0.65 0.07 158); }
.field-guide-footnotes nav { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 12px; }
.field-guide-footnotes blockquote { margin: 0; padding: 0 0 0 18px; border-left: 3px solid var(--coral); }
.field-guide-footnotes blockquote strong { color: oklch(0.42 0.11 28); font-size: .76rem; }
.has-integrated-field-guide .article-toc,
.has-integrated-field-guide .article-overview,
.has-integrated-field-guide .article-final-check { border-right: 0; border-left: 0; border-radius: 0; background: transparent; box-shadow: none; }
.has-integrated-field-guide .info-list { gap: 0; border-top: 1px solid oklch(0.72 0.055 158); }
.has-integrated-field-guide .info-list > div { border: 0; border-bottom: 1px solid oklch(0.78 0.045 158); border-radius: 0; padding-inline: 0; background: transparent; box-shadow: none; }
.travel-reading-layout .schedule-list.schedule-with-stay .day-visual-column,
.travel-reading-layout .schedule-list.schedule-with-stay .schedule-route,
.travel-reading-layout .schedule-list.schedule-with-stay .day-context,
.travel-reading-layout .schedule-list.schedule-with-stay .day-transit,
.travel-reading-layout .schedule-list.schedule-with-stay .day-reference-rail,
.travel-reading-layout .schedule-list.schedule-with-stay .day-food,
.travel-reading-layout .schedule-list.schedule-with-stay .schedule-stay,
.travel-reading-layout .schedule-list.schedule-with-stay .day-spots li { border-radius: 0; background: transparent; box-shadow: none; }
.travel-reading-layout .schedule-list.schedule-with-stay .day-visual-column,
.travel-reading-layout .schedule-list.schedule-with-stay .schedule-route { border: 0; }
.travel-reading-layout .schedule-list.schedule-with-stay .day-context { border: 0; border-left: 3px solid oklch(0.61 0.105 157); }
.travel-reading-layout .schedule-list.schedule-with-stay .day-transit { border-right: 0; border-bottom: 0; border-left: 0; }
.travel-reading-layout .schedule-list.schedule-with-stay .day-reference-rail { border-right: 0; border-bottom: 0; border-left: 0; }
.travel-reading-layout .schedule-list.schedule-with-stay .schedule-stay { border-right: 0; border-bottom: 0; border-left: 0; }
.travel-reading-layout .schedule-list.schedule-with-stay .day-spots li { border-right: 0; border-left: 0; }
@media (max-width: 620px) {
  .parking-discounts,
  .article-photo-gallery { grid-template-columns: 1fr; }
  .article-photo-gallery figure:first-child { grid-column: auto; }
  .travel-reading-layout .schedule-list.schedule-with-stay > div { grid-template-columns: 1fr; gap: 12px; padding: 18px 0; }
  .travel-reading-layout .schedule-list.schedule-with-stay > div.has-day-image { grid-template-columns: 1fr; gap: 12px; }
  .day-illustration { width: 100%; }
  .day-illustration img { width: 100%; height: auto; max-height: none; }
  .day-spots { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .editorial-field-guide > header,
  .field-guide-columns,
  .field-guide-footnotes { grid-template-columns: 1fr; }
  .editorial-field-guide > header .eyebrow { grid-row: auto; }
  .field-guide-columns > article + article { padding-left: 0; border-left: 0; }
  .field-guide-footnotes { gap: 24px; }
  .swiss-booking-guide { grid-template-columns: 1fr; padding: 22px 18px; }
  .swiss-flex-plan { grid-template-columns: 1fr; padding: 22px 18px; }
  .swiss-pass-comparison { margin-top: -22px; padding: 22px 18px; }
  .swiss-pass-options, .swiss-pass-practical { grid-template-columns: 1fr; }
  .jungfrau-ticket-plan ol { grid-template-columns: 1fr; }
  .jungfrau-ticket-plan li, .jungfrau-ticket-plan li + li { padding: 14px 0; border-left: 0; }
  .jungfrau-ticket-plan li::after { top: auto; right: 2px; bottom: -8px; content: '↓'; }
  .swiss-booking-guide ul { grid-template-columns: 1fr; }
  .schedule-stay { border-color: oklch(0.66 0.075 158); }
  .schedule-stay { grid-template-columns: 1fr; gap: 5px; }
  .schedule-stay small, .schedule-stay-links { grid-column: auto; }
  .day-food { grid-template-columns: 1fr; gap: 7px; }
  .travel-reading-layout .day-food > .day-food-place, .travel-reading-layout .day-food-tip { grid-column: auto; }
  .travel-reading-layout .day-food > .day-food-place { grid-template-columns: 1fr; }
  .day-food nav { grid-row: auto; grid-column: auto; justify-content: flex-start; margin-top: 5px; }
  .journey-spread { grid-template-columns: 1fr; gap: 30px; margin-inline: -4px; padding: 24px 18px; }
  .journey-bases { margin-top: 0; }
  .journey-bases li { grid-template-columns: minmax(94px, .55fr) minmax(0, 1fr); gap: 7px 12px; }
  .journey-bases p, .journey-links { grid-column: 1 / -1; }
  .swiss-route-map-canvas { height: 350px; min-height: 0; }
  .route-stop-label { padding: 3px 4px; }
  .route-stop-label strong { font-size: .68rem; }
  .route-stop-label small { font-size: .56rem; }
  .route-leg-links { grid-template-columns: 1fr; }
  .swiss-route-direction { right: 6%; font-size: .66rem; }
}
@media (prefers-color-scheme: dark) {
  .journey-spread { border-top-color: var(--forest); background: var(--panel); }
  .journey-copy > p, .journey-metrics dt, .journey-bases span, .journey-bases p small,
  .swiss-route-map figcaption > p:last-child, .route-map-key, .swiss-route-direction,
  .itinerary-detail-heading > p:last-child, .schedule-stay span, .schedule-stay small,
  .itinerary-stay-note { color: var(--muted); }
  .journey-metrics, .journey-metrics div, .journey-bases, .journey-bases li,
  .route-leg-links, .travel-reading-layout .schedule-list.schedule-with-stay,
  .travel-reading-layout .schedule-list.schedule-with-stay > div, .itinerary-stay-note, .itinerary-food-note,
  .day-transit, .day-spots li, .swiss-booking-guide, .swiss-booking-guide ul,
  .swiss-booking-guide li { border-color: var(--line); }
  .day-illustration, .day-reference-rail, .day-reference-rail nav, .day-flex-status, .day-context, .day-food, .swiss-flex-plan, .swiss-pass-comparison, .swiss-pass-practical,
  .editorial-field-guide, .field-guide-columns, .field-guide-columns > article, .field-note, .field-place-list li, .field-guide-footnotes, .jungfrau-ticket-plan, .jungfrau-ticket-plan ol, .jungfrau-ticket-plan li, .pass-cost-check, .pass-cost-check th, .pass-cost-check td { border-color: var(--line); }
  .day-illustration { background: oklch(0.18 0.022 157); }
  .day-reference-rail { background: transparent; }
  .day-rail-note b { background: oklch(0.31 0.055 70); color: oklch(0.88 0.075 70); }
  .day-reference-rail nav strong { color: var(--muted); }
  .swiss-route-map-canvas { border-color: var(--line); background: oklch(0.19 0.024 157); }
  .swiss-route-land { fill: oklch(0.28 0.052 157); stroke: oklch(0.62 0.075 157); }
  .is-europe-route .europe-route-land { fill: oklch(0.22 0.026 157); }
  .is-europe-route .europe-route-land:nth-of-type(1) { fill: oklch(0.31 0.04 245); }
  .is-europe-route .europe-route-land:nth-of-type(2) { fill: oklch(0.31 0.045 155); }
  .is-europe-route .europe-route-land:nth-of-type(3), .is-europe-route .europe-route-land:nth-of-type(4) { fill: oklch(0.31 0.04 75); }
  .is-europe-route .swiss-map-neighbor { fill: var(--text); }
  .swiss-route-lake { fill: oklch(0.5 0.075 228); }
  .swiss-route-segment { stroke: var(--forest); }
  .swiss-route-segment.is-airport { stroke: var(--coral); }
  #swiss-route-arrow path { fill: var(--forest); }
  #swiss-route-airport-arrow path { fill: var(--coral); }
  .swiss-map-neighbor { fill: var(--muted); }
  .swiss-map-region { fill: oklch(0.72 0.08 150); }
  .route-stop-label, .swiss-route-direction { background: oklch(0.18 0.024 157 / .94); }
  .route-stop-label small { color: var(--muted); }
  .day-spots li, .day-flex-status, .day-flex-status.is-active, .day-context,
  .swiss-flex-plan, .swiss-pass-comparison, .swiss-pass-options article { background: transparent; box-shadow: none; }
  .swiss-pass-options span { background: oklch(0.31 0.055 70); color: oklch(0.88 0.075 70); }
  .day-transit b, .day-spots small, .day-spots a span, .day-food-place small, .day-food-tip, .itinerary-food-note, .swiss-booking-guide > div > p:not(.eyebrow),
  .swiss-booking-guide > small { color: var(--muted); }
  .swiss-booking-guide { background: oklch(0.205 0.026 157); }
  .swiss-route-stop b, .route-map-key b { background: var(--paper); }
  .swiss-route-stop.is-final b { border-color: var(--coral); color: var(--coral); }
  .schedule-stay { border-color: oklch(0.42 0.052 157); background: transparent; }
  .editorial-field-guide > header > p:last-child,
  .field-guide-footnotes blockquote strong { color: var(--muted); }
}
.city-day-route {
  margin: 0 0 clamp(32px, 6vw, 64px);
  padding: clamp(20px, 4vw, 32px);
  border: 1px solid var(--line);
  border-radius: 14px;
  background: oklch(0.97 0.025 222);
}
.city-day-route header { max-width: 68ch; }
.city-day-route header h2 { margin: 6px 0 8px; }
.city-day-route header p:last-child { margin: 0; color: var(--muted); }
.city-day-route ol {
  display: flex;
  gap: 28px;
  margin: 24px 0 0;
  padding: 0;
  list-style: none;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}
.city-day-route li {
  position: relative;
  display: flex;
  align-items: center;
  flex: 0 0 min(190px, 56vw);
  gap: 10px;
  min-height: 64px;
  padding: 10px 12px;
  border-bottom: 2px solid var(--forest);
}
.city-day-route li:not(:last-child)::after {
  content: "→";
  position: absolute;
  right: -22px;
  color: var(--forest);
  font-size: 20px;
  font-weight: 900;
}
.city-route-index {
  display: inline-grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--forest-dark);
  color: white;
  font-size: 13px;
  font-weight: 850;
}
.city-day-route li div { display: grid; gap: 1px; }
.city-day-route li strong { line-height: 1.3; }
.city-day-route li small { color: var(--muted); }
.day-must-see {
  margin-top: 18px;
  padding: 14px 16px;
  border-radius: 10px;
  background: var(--wash);
}
.day-must-see b { color: var(--forest-dark); }
.day-must-see ul { margin: 8px 0 0; padding-left: 20px; }
.day-must-see li + li { margin-top: 4px; }
