.ch-departures { --ch-green: #304f47; --ch-ink: #243b36; --ch-muted: #5f6f69; --ch-line: #e3eae6; padding: 12px 0 42px; color: var(--ch-ink); }
.ch-departures [hidden] { display: none !important; }
.ch-departures a { color: var(--ch-green); }
.ch-departures a:hover { color: #9b431d; }
.ch-departures a:focus-visible, .ch-departures button:focus-visible, .ch-departures input:focus-visible, .ch-departures select:focus-visible { outline: 3px solid #bf5c30; outline-offset: 4px; }
.ch-departures-intro { display: flex; align-items: center; justify-content: space-between; gap: 28px; margin-bottom: 30px; }
.ch-eyebrow { color: var(--ch-muted); font-size: 12px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; margin: 0 0 12px; }
.ch-departures h1 { font-size: clamp(30px, 4vw, 44px); line-height: 1.15; color: var(--ch-green); margin: 0 0 16px; }
.ch-intro-text { color: var(--ch-muted); max-width: 640px; margin: 0; line-height: 1.7; }
.ch-catalogue-link { display: inline-flex; align-items: center; gap: 16px; font-weight: 600; white-space: nowrap; padding: 12px 0; text-decoration: underline; text-underline-offset: 5px; }
.ch-filters { display: flex; align-items: flex-end; gap: 20px; background: #f3f6f3; border-radius: 12px; padding: 22px 24px; }
.ch-filters label { display: block; min-width: 150px; margin: 0; font-size: 13px; font-weight: 600; color: var(--ch-ink); }
.ch-filters .ch-search-label { flex: 1; }
.ch-filters input, .ch-filters select { display: block; width: 100%; height: 46px; margin-top: 8px; padding: 10px 14px; background: #fff; border: 1px solid #ccd7d0; border-radius: 6px; color: var(--ch-ink); font: inherit; font-size: 16px; }
.ch-filters select { padding-right: 30px; }
.ch-filters .ch-reset { min-height: 46px; background: transparent; border: 0; padding: 10px 0; color: var(--ch-green); font: inherit; font-size: 13px; text-decoration: underline; text-underline-offset: 3px; }
.ch-calendar-caption { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 10px 24px; margin: 24px 0; }
.ch-calendar-caption p { margin: 0; font-size: 13px; }
.ch-result-count { font-weight: 600; }
.ch-timeline-key { color: var(--ch-muted); }
.ch-timeline-key span { display: inline-block; width: 25px; height: 6px; background: #c36435; border-radius: 4px; margin-right: 8px; vertical-align: middle; }
.ch-year { margin-top: 30px; }
.ch-year-title { display: flex; align-items: center; gap: 20px; padding: 18px 22px; color: #fff; background: var(--ch-green); border-radius: 10px 10px 0 0; }
.ch-year-title h2 { color: #fff; font-size: 26px; line-height: 1.2; margin: 0; }
.ch-year-title > span { font-size: 13px; color: #e2ece5; }
.ch-timeline-heading, .ch-trip { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 62%); }
.ch-timeline-heading { color: var(--ch-muted); background: #f3f6f3; border-bottom: 1px solid var(--ch-line); font-size: 12px; }
.ch-timeline-heading > span { padding: 15px 16px; }
.ch-months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.ch-months span { text-align: center; padding: 15px 0; }
.ch-trip { border-bottom: 1px solid var(--ch-line); }
.ch-trip:hover { background: #fbfcfa; }
.ch-trip-info { min-width: 0; display: flex; align-items: flex-start; gap: 16px; padding: 22px 20px 22px 0; }
.ch-trip-picture { position: relative; display: block; flex: 0 0 92px; width: 92px; height: 76px; overflow: hidden; border-radius: 7px; background: #edf2ed; }
.ch-picture-placeholder { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 13px; font-weight: 600; line-height: 1.3; }
.ch-trip-picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ch-trip-text { min-width: 0; flex: 1; }
.ch-trip h3 { font-size: 16px; line-height: 1.5; margin: 0 0 10px; overflow-wrap: anywhere; }
.ch-date-list { padding: 0; margin: 0; list-style: none; }
.ch-date-list li + li { margin-top: 5px; }
.ch-date-list a { display: flex; align-items: baseline; flex-wrap: wrap; gap: 3px 7px; font-size: 12px; line-height: 1.7; text-decoration: underline; text-decoration-color: #cbd7ce; text-underline-offset: 3px; }
.ch-duration { color: var(--ch-muted); white-space: nowrap; }
.ch-timeline { position: relative; min-height: calc(48px + var(--ch-lanes) * 28px); }
.ch-timeline-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); position: absolute; inset: 0; }
.ch-timeline-grid span { border-left: 1px solid var(--ch-line); }
.ch-timeline-grid span:nth-child(even) { background: rgba(48, 79, 71, .018); }
.ch-trip-bar { position: absolute; display: block; height: 12px; min-width: 3px; border-radius: 4px; background: #c36435; }
.ch-trip-bar::before { content: ''; position: absolute; inset: -7px 0; }
.ch-trip-bar:hover, .ch-trip-bar:focus-visible { background: #9b431d; }
.ch-empty { padding: 48px 24px; text-align: center; background: #f3f6f3; border-radius: 10px; }
.ch-empty h2 { color: var(--ch-green); font-size: 24px; }
.ch-empty p { color: var(--ch-muted); max-width: 590px; margin: 16px auto; }
@media (max-width: 991px) {
    .ch-departures-intro { align-items: flex-start; }
    .ch-timeline-heading, .ch-timeline, .ch-timeline-key { display: none; }
    .ch-trip { display: block; }
    .ch-trip-info { padding: 22px 0; }
    .ch-trip-picture { flex-basis: 120px; width: 120px; height: 90px; }
    .ch-date-list a { min-height: 36px; align-items: center; font-size: 14px; }
}
@media (max-width: 575px) {
    .ch-departures-intro { display: block; }
    .ch-catalogue-link { margin-top: 10px; }
    .ch-filters { flex-wrap: wrap; gap: 16px; padding: 18px; }
    .ch-filters .ch-search-label { flex-basis: 100%; }
    .ch-filters label { min-width: 0; flex: 1; }
    .ch-year-title { padding: 16px; gap: 14px; }
    .ch-year-title > span { font-size: 12px; }
    .ch-trip-info { gap: 14px; }
    .ch-trip-picture { flex-basis: 80px; width: 80px; height: 72px; }
    .ch-trip h3 { font-size: 16px; }
    .ch-date-list a { min-height: 44px; font-size: 13px; padding: 3px 0; }
    .ch-eyebrow { letter-spacing: .07em; }
}
