.schedule-page { container-type: inline-size; color: #2a2a2a; font-family: Inter, sans-serif; }
.schedule-heading, .schedule-event, .schedule-legend, .booking-rules, .schedule-consultation { box-sizing: border-box; }
.schedule-heading *, .schedule-event *, .schedule-legend *, .booking-rules *, .schedule-consultation * { box-sizing: border-box; }
.schedule-heading { display: flex; align-items: end; max-width: 1900px; margin: auto; padding: 120px 80px 90px; }
.schedule-heading h1 { flex: 1; margin: 0; font-size: 120px; line-height: 120px; font-weight: 500; letter-spacing: -2.5px; }
.schedule-button { display: flex; align-items: center; justify-content: center; min-height: 86px; border: 1px solid #2a2a2a; background: #cfd8be; color: #2a2a2a; font-size: 24px; line-height: 1; text-decoration: none; }
.schedule-button:hover { background: #bcc8a7; }
.schedule-button:focus-visible, .booking-rules summary:focus-visible { outline: 2px solid #2a2a2a; outline-offset: 4px; }
.schedule-heading .schedule-button { width: 400px; letter-spacing: -.5px; }
.schedule-event { display: grid; grid-template-columns: 850px 911px; gap: 40px; max-width: 1900px; margin: auto; padding: 120px 80px; }
.schedule-event__content { min-width: 0; }
.schedule-event h2 { margin: 0; font-size: 72px; line-height: 79px; font-weight: 500; letter-spacing: -2px; }
.schedule-event__host { margin: 20px 0 0; font-size: 34px; line-height: 37px; font-weight: 500; letter-spacing: -1px; }
.schedule-event__program { margin: 50px 0 0; font-size: 24px; line-height: 38px; letter-spacing: -.5px; overflow-wrap: break-word; }
.schedule-event__program p, .schedule-event__program li { margin: 0; }
.schedule-event__program p + p { margin-top: .5em; }
.schedule-event__program ul, .schedule-event__program ol { margin: 0; padding-left: 20px; }
.schedule-event__program ul { list-style: disc; }
.schedule-event__program ol { list-style: decimal; }
.schedule-event__program a { color: inherit; text-decoration: underline; }
.schedule-event__booking { margin-top: 50px; padding: 30px 0 50px; border-block: 1px solid #2a2a2a; }
.schedule-event__facts { display: flex; justify-content: space-between; width: 669px; max-width: 100%; margin: 0; }
.schedule-event__facts--two-prices { width: 100%; flex-wrap: wrap; gap: 20px; }
.schedule-event__facts--two-prices > div { min-width: 0; max-width: 100%; overflow-wrap: break-word; }
.schedule-event__facts dt { font-size: 20px; line-height: 32px; letter-spacing: -.5px; }
.schedule-event__facts dt:empty::before { content: '\00a0'; }
.schedule-event__facts dd { margin: 5px 0 0; font-size: 54px; line-height: 59px; font-weight: 500; letter-spacing: -2px; }
.schedule-event__button { margin-top: 50px; }
.schedule-event__visual { position: relative; height: 900px; }
.schedule-event__image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.schedule-calendar { scroll-margin-top: 70px; }
.schedule-legend { max-width: 1900px; margin: auto; padding: 120px 80px; }
.schedule-legend h2 { margin: 0 0 150px; font-size: 72px; line-height: 79px; font-weight: 500; letter-spacing: -2px; }
.schedule-legend ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; list-style: none; margin: 0; padding: 0; }
.schedule-legend li { display: flex; align-items: center; gap: 20px; min-width: 0; font-size: 24px; line-height: 38px; letter-spacing: -.5px; }
.schedule-legend li span { flex: 0 0 18px; height: 18px; }
.schedule-legend__therapy span { background: #f6cf8a; }
.schedule-legend__continuing span { background: #b7c59e; }
.schedule-legend__extras span { background: #edc6aa; }
.schedule-legend__beginner span { background: #889e5f; }
.schedule-legend__advanced span { background: #e2e7d8; }
.schedule-legend__events span { background: #f37f67; }
.schedule-calendar .schedule-widget { width: calc(100% - 40px); max-width: 1160px; margin: auto; }
.schedule-calendar .schedule-widget .body-sched li { border-top: 0; border-right: 0; }
.booking-rules__heading { max-width: 1900px; margin: auto; padding: 100px 0 20px; text-align: center; }
.booking-rules__heading h2 { margin: 0; font-size: 72px; line-height: 79px; font-weight: 500; letter-spacing: -2px; }
.booking-rules__heading p { margin: 30px 0 0; font-size: 30px; line-height: 33px; font-weight: 500; letter-spacing: -1px; }
.booking-rules__questions { max-width: 1200px; margin: auto; padding: 60px 20px 90px; }
.booking-rules details { border-top: 1px solid #eee; }
.booking-rules details:last-child { border-bottom: 1px solid #eee; }
.booking-rules summary { position: relative; padding: 27px 50px 27px 0; list-style: none; cursor: pointer; font-size: 24px; line-height: 1.35; font-weight: 500; }
.booking-rules summary::-webkit-details-marker { display: none; }
.booking-rules summary span { position: absolute; right: 0; top: 50%; width: 40px; height: 40px; margin-top: -20px; border-radius: 50%; transition: background-color .2s, transform .2s; }
.booking-rules summary span::before, .booking-rules summary span::after { content: ''; position: absolute; top: 19px; left: 8px; width: 24px; height: 1px; background: #222; }
.booking-rules summary span::after { transform: rotate(90deg); }
.booking-rules summary:hover span { background: #eee; }
.booking-rules details[open] summary span { transform: rotate(45deg); }
.booking-rules__answer { max-width: 900px; padding-bottom: 25px; font-size: 16px; line-height: 1.55; }
.booking-rules__answer p { margin: 0; }
.booking-rules__answer p + p { margin-top: 1.55em; }
.booking-rules__answer a { color: inherit; text-decoration: none; border-bottom: 1px solid; }
.booking-rules__answer b { font-weight: 500; }
.booking-rules__answer ul { margin: 0; padding-left: 20px; }
.booking-rules__answer li + li { margin-top: 1.55em; }
.booking-rules__answer--cancellation { padding-top: 1.55em; }
.schedule-consultation { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 40px; max-width: 1900px; margin: auto; padding: 38px 80px; }
.schedule-consultation h2 { margin: 0; text-align: center; font-size: 48px; line-height: 53px; font-weight: 500; letter-spacing: -1.5px; }
.schedule-consultation .schedule-button { letter-spacing: -.5px; }
@media (max-width: 1899px) {
    .schedule-heading { max-width: 1200px; padding: 90px 20px 40px; }
    .schedule-heading h1 { font-size: 72px; line-height: 72px; }
    .schedule-heading .schedule-button { width: 280px; }
    .schedule-button { min-height: 60px; font-size: 16px; }
    .schedule-event { max-width: 1200px; padding: 90px 20px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .schedule-event h2 { font-size: 46px; line-height: 51px; letter-spacing: -1.5px; }
    .schedule-event__host { margin-top: 24px; font-size: 24px; line-height: 26px; }
    .schedule-event__program { margin-top: 30px; font-size: 16px; line-height: 26px; }
    .schedule-event__booking { margin-top: 30px; padding: 20px 0 30px; }
    .schedule-event__facts { width: 100%; }
    .schedule-event__facts dt { font-size: 14px; line-height: 22px; }
    .schedule-event__facts dd { font-size: 36px; line-height: 40px; letter-spacing: -1px; }
    .schedule-event__button { margin-top: 30px; }
    .schedule-event__visual { height: auto; }
    .schedule-legend { max-width: 1200px; padding: 80px 20px 90px; }
    .schedule-legend h2 { margin-bottom: 80px; font-size: 46px; line-height: 51px; letter-spacing: -1.5px; }
    .schedule-legend li { font-size: 16px; line-height: 26px; }
    .booking-rules__heading { max-width: 1200px; padding: 90px 0 10px; }
    .booking-rules__heading h2 { font-size: 46px; line-height: 51px; letter-spacing: -1.5px; }
    .booking-rules__heading p { margin-top: 20px; font-size: 20px; line-height: 22px; }
    .schedule-consultation { max-width: 1200px; padding: 25px 20px; }
    .schedule-consultation h2 { font-size: 32px; line-height: 35px; }
}
@media (max-width: 1199px) {
    .schedule-heading { max-width: 960px; padding: 60px 10px 30px; }
    .schedule-heading .schedule-button { width: 250px; font-size: 14px; }
    .schedule-button { min-height: 50px; }
    .schedule-event { max-width: 960px; padding: 60px 10px; gap: 20px; }
    .schedule-event h2 { letter-spacing: -1px; }
    .schedule-event__program { font-size: 14px; line-height: 22px; }
    .schedule-event__facts dt { font-size: 12px; line-height: 19px; }
    .schedule-event__facts dd { font-size: 26px; line-height: 29px; }
    .schedule-event__visual { height: 460px; }
    .schedule-legend { max-width: 960px; padding: 60px 10px; }
    .schedule-legend h2 { margin-bottom: 70px; letter-spacing: -1px; }
    .schedule-legend ul { column-gap: 20px; }
    .schedule-legend li { font-size: 14px; line-height: 22px; }
    .schedule-legend li span { flex-basis: 16px; height: 16px; }
    .schedule-calendar .schedule-widget { width: calc(100% - 20px); max-width: 940px; }
    .booking-rules__heading { max-width: 960px; padding-top: 60px; }
    .booking-rules__heading h2 { letter-spacing: -1px; }
    .booking-rules__heading p { font-size: 18px; line-height: 20px; }
    .booking-rules__questions { max-width: 960px; padding-right: 10px; padding-left: 10px; }
    .booking-rules summary { font-size: 22px; }
    .booking-rules__answer { font-size: 14px; }
    .schedule-consultation { max-width: 960px; padding: 24px 10px; gap: 20px; }
    .schedule-consultation h2 { font-size: 26px; line-height: 29px; }
}
@media (max-width: 959px) {
    .schedule-heading { max-width: 640px; flex-direction: column; align-items: start; gap: 30px; }
    .schedule-heading h1 { font-size: 62px; line-height: 62px; }
    .schedule-heading .schedule-button { width: 240px; }
    .schedule-event { max-width: 640px; padding: 30px 10px; grid-template-columns: minmax(0, 1fr); }
    .schedule-event__visual { grid-row: 1; height: 620px; }
    .schedule-event h2 { max-width: 564px; }
    .schedule-event__host { max-width: 509px; margin-top: 24px; }
    .schedule-event__program { max-width: 596px; }
    .schedule-legend { display: none; }
    .schedule-calendar .schedule-widget { max-width: 600px; width: calc(100% - 40px); }
    .booking-rules__heading { max-width: none; padding: 9.375cqw 6.25cqw 1.5625cqw; }
    .booking-rules__heading h2 { font-size: 7.1875cqw; line-height: 7.96875cqw; letter-spacing: -.15625cqw; }
    .booking-rules__heading p { margin-top: 3.125cqw; font-size: 2.5cqw; line-height: 2.8125cqw; letter-spacing: -.15625cqw; }
    .booking-rules__questions { max-width: 640px; padding-right: 20px; padding-left: 20px; }
    .schedule-consultation { max-width: 460px; grid-template-columns: minmax(0, 1fr); padding: 24px 20px; }
}
@media (max-width: 639px) {
    .schedule-heading { padding: 9.375cqw 6.25cqw 6.25cqw; gap: 9.375cqw; }
    .schedule-heading h1 { width: 100%; font-size: 13.75cqw; line-height: 13.75cqw; letter-spacing: -.3125cqw; }
    .schedule-heading .schedule-button { width: 100%; font-size: 3.75cqw; letter-spacing: -.15625cqw; }
    .schedule-button { min-height: 15.625cqw; font-size: 3.75cqw; }
    .schedule-event { padding: 9.375cqw 6.25cqw; gap: 6.25cqw; }
    .schedule-event__visual { height: 87.5cqw; }
    .schedule-event h2 { max-width: none; font-size: 10.625cqw; line-height: 11.5625cqw; letter-spacing: -.3125cqw; }
    .schedule-event__host { max-width: none; margin-top: 6.25cqw; font-size: 6.25cqw; line-height: 6.875cqw; letter-spacing: -.3125cqw; }
    .schedule-event__program { margin-top: 6.25cqw; font-size: 3.75cqw; line-height: 5.9375cqw; letter-spacing: -.15625cqw; }
    .schedule-event__program ul, .schedule-event__program ol { padding-left: 6.25cqw; }
    .schedule-event__booking { margin-top: 6.25cqw; padding: 6.25cqw 0; border-width: .3125cqw; }
    .schedule-event__facts { width: 100%; flex-direction: column; gap: 6.25cqw; }
    .schedule-event__facts--two-prices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .schedule-event__facts--two-prices > div:first-child { grid-column: 1 / -1; }
    .schedule-event__facts dt { font-size: 3.125cqw; line-height: 5cqw; letter-spacing: -.15625cqw; }
    .schedule-event__facts dd { margin-top: 1.5625cqw; font-size: 7.5cqw; line-height: 8.125cqw; letter-spacing: -.3125cqw; }
    .schedule-event__button { margin-top: 6.25cqw; font-size: 4.0625cqw; }
    .booking-rules__heading { padding: 9.375cqw 6.25cqw 3.125cqw; text-align: left; }
    .booking-rules__heading h2 { font-size: 11.25cqw; line-height: 15.9375cqw; letter-spacing: -.3125cqw; }
    .booking-rules__heading p { margin-top: 6.25cqw; font-size: 5cqw; line-height: 5.625cqw; letter-spacing: -.3125cqw; }
    .booking-rules__questions { padding-top: 15px; padding-bottom: 45px; }
    .booking-rules summary { padding-top: 15px; padding-bottom: 14px; font-size: 20px; }
    .booking-rules__answer { line-height: 1.45; }
    .schedule-consultation { max-width: none; padding: 9.375cqw 6.25cqw; gap: 6.25cqw; }
    .schedule-consultation h2 { font-size: 8.125cqw; line-height: 9.0625cqw; letter-spacing: -.3125cqw; }
    .schedule-consultation .schedule-button { letter-spacing: -.15625cqw; }
}
@media (prefers-reduced-motion: reduce) {
    .booking-rules summary span { transition: none; }
}
