/* Decision-focused schedule; independent of tour detail layout. */
.schedule-filters { display:flex; flex-wrap:wrap; gap:12px; align-items:end; margin-top:24px; padding:18px; background:white; border:1px solid var(--line); border-radius:18px; }
.schedule-filters label { display:grid; gap:6px; flex:1 1 170px; color:var(--muted); font-size:12px; }
body.schedule-page .schedule-filters select { min-height:46px; width:100%; min-width:0; border:1px solid var(--line-2); border-radius:10px; background:#f8faff; color:var(--ink); font:400 14px var(--text); padding:10px 30px 10px 12px; }
.schedule-filters .btn { min-height:46px; font-size:14px; }
.filter-reset { align-self:center; font-size:13px; padding:12px; color:var(--muted); }
.schedule-events { display:grid; gap:12px; }
body.schedule-page .schedule-section-title { font-size:24px; letter-spacing:-.03em; font-weight:500; margin:4px 0 20px; }
.schedule-section-title span { display:inline-block; font-size:13px; border-radius:999px; padding:5px 10px; background:#e4edff; color:#2459ed; vertical-align:middle; }
body.schedule-page .schedule-events .tl-month { font-size:16px; letter-spacing:0; font-weight:500; color:var(--muted); padding:10px 0 4px; }
.schedule-event { display:grid; grid-template-columns:76px 180px minmax(0,1fr) 205px; gap:24px; align-items:center; background:white; border:1px solid var(--line); border-radius:18px; padding:24px; }
.event-date { text-align:center; color:var(--ink); }
.event-date time { display:grid; line-height:1.2; gap:3px; }
.event-date b { font-size:40px; font-weight:500; letter-spacing:-.05em; }
.event-date span { font-size:14px; }
.event-date small { display:block; margin-top:5px; font-size:11px; color:var(--muted); }
.event-photo { height:150px; border-radius:12px; overflow:hidden; background:var(--bg-2); }
.event-photo img { height:100%; width:100%; object-fit:cover; }
.event-description { min-width:0; }
.event-description h3 { font-size:22px; font-weight:500; letter-spacing:-.03em; line-height:1.23; margin:8px 0 12px; }
.event-description h3 a { color:inherit; text-decoration:none; }
.event-description h3 a:hover { text-decoration:underline; text-underline-offset:4px; }
.event-status { display:inline-block; color:#2459ed; font-size:11px; font-weight:500; background:#edf3ff; padding:4px 8px; border-radius:6px; }
.event-facts { display:flex; flex-wrap:wrap; gap:6px 14px; list-style:none; padding:0; margin:0; font-size:12px; color:var(--muted); }
.event-facts li + li { border-left:1px solid var(--line-2); padding-left:14px; }
.event-description p { margin:12px 0 0; font-size:13px; color:var(--muted); line-height:1.55; }
.event-booking { display:flex; flex-direction:column; align-items:stretch; gap:5px; padding-left:20px; border-left:1px solid var(--line); }
.event-price { font-size:27px; letter-spacing:-.035em; font-weight:500; line-height:1.2; }
.event-price small { font-size:14px; }
.event-booking > small { color:var(--muted); font-size:11px; }
.event-seats { font-size:12px; margin:7px 0; color:var(--ink-2); }
body.schedule-page .event-booking .btn { min-height:46px; padding:12px; font-size:12px; letter-spacing:0; text-transform:none; white-space:normal; text-align:center; border-radius:10px; }
.event-booking > small:last-child { text-align:center; margin-top:4px; }
.schedule-event-past { padding-block:18px; }
.schedule-event-past .event-photo { height:100px; }
.schedule-event-past .event-status { color:var(--muted); background:var(--bg); }
.schedule-event-past .event-booking { border:0; }
body.schedule-page #past-title { font-size:28px; }
body.schedule-page .schedule-help { margin-block:12px; }
@media (max-width:1100px) and (min-width:761px) {
  .schedule-event { grid-template-columns:60px 110px minmax(0,1fr) 170px; gap:16px; padding:18px; }
  .event-photo { height:120px; }
  .event-description h3 { font-size:19px; }
  .event-booking { padding-left:12px; }
}
@media (max-width:760px) {
  .schedule-filters { gap:12px; padding:14px; }
  .schedule-filters label { flex-basis:calc(50% - 12px); }
  .schedule-filters .btn { flex:1 1 calc(50% - 12px); }
  .schedule-event { grid-template-columns:64px minmax(0,1fr); gap:16px; padding:18px; }
  .event-date { grid-column:1; grid-row:1; }
  .event-photo { grid-column:2; grid-row:1; height:100px; }
  .event-description { grid-column:1/-1; }
  .event-description h3 { font-size:22px; }
  .event-booking { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; gap:6px 12px; border-left:0; border-top:1px solid var(--line); padding:16px 0 0; align-items:center; }
  .event-price { grid-column:1; grid-row:1; font-size:25px; }
  .event-booking > small { grid-column:1; grid-row:2; }
  .event-seats { grid-column:1/-1; grid-row:3; margin:3px 0; }
  .event-booking .btn { grid-column:2; grid-row:1/3; }
  .event-booking > small:last-child { grid-column:1/-1; grid-row:4; text-align:left; }
  .schedule-event-past .event-booking { display:block; padding:0; }
  .schedule-event-past .event-booking .btn { width:100%; }
}
