.upcoming-sessions{max-width:1240px;margin:0 auto;padding:48px 48px 28px}.upcoming-sessions-heading{max-width:720px;margin:0 auto;text-align:center}.booking-session-summary>p,.upcoming-sessions-heading>p{margin:0;color:var(--berry);font-family:var(--font-ui);font-size:11px;font-weight:600;letter-spacing:.24em}.upcoming-sessions-heading h2{margin:16px 0 0;color:var(--ink);font-family:var(--font-display);font-size:42px;font-weight:500;line-height:1.14;text-wrap:balance}.upcoming-sessions-heading>div{margin-top:14px;color:var(--muted);font-family:var(--font-editorial);font-size:15px;line-height:1.65}.upcoming-sessions-heading>div em{font-family:var(--font-vietnamese);font-style:normal}.upcoming-session-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:36px}.upcoming-session-card{display:flex;min-height:336px;padding:36px 38px;border:1px solid var(--line);border-radius:20px;flex-direction:column}.upcoming-session-card.tone-mist{background:var(--mist)}.upcoming-session-card.tone-rose{background:var(--rose)}.upcoming-session-date{margin:0;color:var(--teal);font-family:var(--font-ui)!important;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.tone-rose .upcoming-session-date{color:var(--berry)}.upcoming-session-card h3{margin:20px 0 0;color:var(--ink);font-family:var(--font-display);font-size:31px;font-weight:500;line-height:1.18}.upcoming-session-vietnamese{margin:7px 0 0;color:var(--muted);font-family:var(--font-vietnamese)!important;font-size:14px}.upcoming-session-meta{margin-top:22px;padding-top:18px;border-top:1px solid rgba(20,39,61,.14);color:var(--muted);font-family:var(--font-ui);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.upcoming-session-theme{margin:12px 0 0;color:var(--ink);font-family:var(--font-editorial)!important;font-size:15px;line-height:1.6}.upcoming-session-card footer{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:auto;padding-top:24px}.seat-status{display:inline-flex;min-height:32px;padding:0 14px;border-radius:100px;align-items:center;gap:9px;background:var(--cream);color:var(--teal);font-family:var(--font-ui);font-size:11px;font-weight:700;text-transform:uppercase;white-space:nowrap}.seat-status i{width:8px;height:8px;border-radius:50%;background:currentColor}.seat-status.full{color:var(--berry)}.booking-submit,.session-button{min-height:48px;padding:0 22px;border:2px solid var(--ink);border-radius:9px;background:var(--ink);color:var(--cream);font-family:var(--font-ui);font-size:12px;font-weight:700;letter-spacing:.02em;transition:box-shadow .16s ease,transform .16s ease,background-color .16s ease,color .16s ease}.session-button.secondary{background:transparent;color:var(--ink)}.booking-submit:hover:not(:disabled),.session-button:hover{box-shadow:0 7px 18px rgba(20,39,61,.16);transform:translateY(-1px)}.booking-submit:active:not(:disabled),.session-button:active{box-shadow:none;transform:translateY(1px)}.booking-request-panel{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:54px;margin-top:24px;padding:42px 46px;border:1px solid var(--line);border-radius:20px;background:#fff;scroll-margin-top:88px}.booking-request-panel:focus-visible{outline:3px solid var(--berry);outline-offset:4px}.booking-session-summary h3{margin:16px 0 0;font-family:var(--font-display);font-size:32px;font-weight:500;line-height:1.16}.booking-session-summary small,.booking-session-summary time,.booking-session-summary>span{display:block}.booking-session-summary time{margin-top:20px;color:var(--teal);font-size:13px;font-weight:700;line-height:1.65}.booking-session-summary time,.booking-session-summary>span{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase}.booking-session-summary>span{margin-top:14px;color:var(--muted);font-size:11px}.booking-session-summary small{margin-top:28px;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-family:var(--font-editorial)!important;font-size:13px;line-height:1.65}.booking-request-form{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px}.booking-request-form label{margin-top:6px;color:var(--ink);font-family:var(--font-ui);font-size:11px;font-weight:650;letter-spacing:.08em;text-transform:uppercase}.booking-request-form input,.booking-request-form textarea{min-width:0;min-height:46px;padding:11px 13px;border:1px solid rgba(20,39,61,.24);border-radius:9px;background:var(--cream);color:var(--ink);font-family:var(--font-ui)}.booking-request-form input:hover,.booking-request-form textarea:hover{border-color:rgba(20,39,61,.48)}.booking-request-form input:user-invalid,.booking-request-form textarea:user-invalid{border-color:var(--berry);background:#fff7fa}.booking-form-status,.booking-note-label,.booking-note-label+textarea,.booking-submit{grid-column:1/-1}.booking-note-label span{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}.booking-request-form textarea{min-height:90px;resize:vertical}.booking-submit{margin-top:10px}.booking-submit:disabled{cursor:wait;opacity:.62}.booking-form-status{min-height:20px;margin:4px 0 0;font-family:var(--font-ui)!important;font-size:12px;line-height:1.55}.booking-form-status[data-state=success]{color:#17654c;font-weight:650}.booking-form-status[data-state=error]{color:#9f174d;font-weight:650}.booking-form-status span{display:block;margin-top:3px;color:var(--ink)}@media (max-width:920px){.upcoming-sessions{padding-right:20px;padding-left:20px}.booking-request-panel,.upcoming-session-grid{grid-template-columns:1fr}.booking-request-panel{gap:30px}}@media (max-width:620px){.upcoming-sessions{padding-top:36px;padding-bottom:20px}.upcoming-sessions-heading{text-align:left}.upcoming-sessions-heading>p{font-size:9.5px;letter-spacing:.2em}.upcoming-sessions-heading h2{margin-top:12px;font-size:34px;line-height:1.08}.upcoming-sessions-heading>div{margin-top:12px;font-size:13.5px}.upcoming-session-grid{gap:14px;margin-top:28px}.upcoming-session-card{min-height:0;padding:28px 20px 22px;border-radius:16px}.upcoming-session-date{font-size:9.5px;letter-spacing:.12em}.upcoming-session-card h3{margin-top:16px;font-size:26px}.upcoming-session-meta{margin-top:20px;padding-top:16px;font-size:10px}.upcoming-session-theme{font-size:14px}.upcoming-session-card footer{align-items:stretch;flex-direction:column;gap:14px;padding-top:20px}.seat-status{align-self:flex-start}.session-button{width:100%}.booking-request-panel{gap:24px;margin-top:14px;padding:30px 20px;border-radius:16px}.booking-session-summary h3{font-size:27px}.booking-session-summary small{margin-top:20px}.booking-request-form{grid-template-columns:1fr;gap:7px}.booking-form-status,.booking-note-label,.booking-note-label+textarea,.booking-request-form input,.booking-request-form label,.booking-submit{grid-column:1}}@media (prefers-reduced-motion:reduce){.booking-submit,.session-button{transition:none}}