.calendar-hero{
  position:relative; min-height:70vh; display:flex; flex-direction:column; justify-content:center;
  overflow:hidden; padding-bottom:0; padding-top:150px;
}
.calendar-hero .bg-photo{ position:absolute; inset:0; opacity:.3; }
.calendar-hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:linear-gradient(0deg, rgba(var(--bg-rgb),1) 0%, rgba(var(--bg-rgb),.55) 45%, rgba(var(--bg-rgb),.25) 100%);
}
.calendar-hero .wrap{ position:relative; z-index:2; }
.calendar-hero h1{ font-family:var(--f-display); font-weight:700; font-size:clamp(3rem,9vw,6.5rem); letter-spacing:-0.04em; margin:0 0 20px; }
.calendar-hero p{ max-width:420px; color:var(--ink-dim); font-size:1.02rem; line-height:1.6; }

.marquee-track{ position:relative; z-index:2; border-top:1px solid var(--line); margin-top:60px; overflow:hidden; }
.marquee-inner{ display:flex; width:max-content; animation:scrollX 34s linear infinite; }
.marquee-track:hover .marquee-inner{ animation-play-state:paused; }
@keyframes scrollX{ 0%{ transform:translateX(0);} 100%{ transform:translateX(-50%);} }
.cal-item{
  flex:0 0 auto; width:min(360px,80vw); border-right:1px solid var(--line); padding:26px 30px;
  display:flex; flex-direction:column; gap:6px;
}
.cal-item .city-row{ display:flex; justify-content:space-between; align-items:baseline; }
.cal-item .city-row h4{ margin:0; font-family:var(--f-display); font-weight:700; font-size:1.5rem; }
.cal-item .city-row .d{ color:var(--ink-dim); font-size:.85rem; font-weight:600; }
.cal-item .meta-row{ display:flex; gap:22px; margin-top:10px; }
.cal-item .meta-row div .k{ font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-dim); font-weight:700; }
.cal-item .meta-row div .v{ font-size:.82rem; margin-top:3px; }
.cal-item .view{ margin-top:14px; align-self:flex-start; font-size:.78rem; font-weight:700; border:1px solid var(--line-strong); padding:9px 16px; cursor:pointer; background:transparent; color:var(--ink); display:inline-block; }
.cal-item .view:hover{ background:var(--ink); color:var(--bg); }

/* ============ FULL SCHEDULE TABLE ============ */
.schedule{ padding-top:100px; }
.schedule-list{ margin-top:40px; border-top:1px solid var(--line); }
.schedule-row{
  display:grid; grid-template-columns:110px 1.3fr 1.6fr .8fr auto; align-items:center; gap:20px;
  padding:26px 4px; border-bottom:1px solid var(--line); transition:background .3s var(--ease);
}
.schedule-row:hover{ background:var(--bg-raised); }
.schedule-row .sr-date{ font-family:var(--f-display); font-weight:700; font-size:1.3rem; }
.schedule-row .sr-city{ font-family:var(--f-display); font-weight:700; font-size:1.4rem; letter-spacing:-0.01em; }
.schedule-row .sr-addr{ color:var(--ink-dim); font-size:.88rem; }
.schedule-row .sr-dist{ font-size:.88rem; font-weight:600; }
.schedule-row .sr-btn{ justify-self:end; }

@media (max-width:780px){
  .schedule-row{ grid-template-columns:1fr 1fr; row-gap:8px; }
  .schedule-row .sr-btn{ grid-column:1/3; justify-self:start; margin-top:8px; }
}
