/* Campus cases reuse the reservation carousel and the training gallery. */
.campus-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; flex-wrap: wrap; }
.training-case .campus-heading .case-kind { margin: 0; }
.case-campus .class-carousel-controls { display: flex; align-items: center; gap: 10px; font-size: 12px; }
.case-campus .class-carousel-controls button { min-width: 44px; min-height: 44px; border: 1px solid #aebeb4; border-radius: 12px; background: transparent; padding: 8px 12px; }
.case-campus .class-carousel-controls button:hover { background: #f7f7f3; }
.case-campus .class-carousel-controls[hidden] { display: none; }
.case-campus .class-carousel-window { overflow: hidden; }
.case-campus .is-carousel .class-upcoming-list { display: flex; align-items: flex-start; transition: transform .3s ease; }
.case-campus .is-carousel [data-campus-slide] { flex: 0 0 100%; min-width: 0; }
.case-campus [data-reservation-carousel]:not(.is-carousel) [data-campus-slide] + [data-campus-slide] { margin-top: 36px; }
.case-campus .training-gallery .gallery-stage { aspect-ratio: 16 / 9; }
.campus-dots { display: none; justify-content: center; gap: 6px; margin-top: 24px; }
.case-campus .is-carousel .campus-dots { display: flex; }
.campus-dots button { width: 44px; height: 44px; border: 0; background: transparent; display: grid; place-items: center; }
.campus-dots button::after { content: ''; width: 8px; height: 8px; border-radius: 50%; background: #aebeb4; }
.campus-dots button[aria-current="true"]::after { background: #0b7465; }
@media (max-width: 700px) {
  .campus-heading { margin-bottom: 20px; }
  .case-campus .class-carousel-controls { gap: 6px; }
}
