.online-session-page { background:#0b0d11; }
.online-session-page main.session-page { width:min(1160px,89%); padding:48px 0 70px; }
.online-session-page .session-introduction { margin-bottom:32px; }
.online-session-page .session-introduction h1 { font-size:64px; margin:8px 0 14px; }
.online-session-page .session-lead { font-size:23px; color:#d3d0dc; margin-bottom:20px; }
.session-facts { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:16px; }
.session-facts span { border:1px solid #403549; border-radius:30px; padding:7px 17px; color:#eee8fa; font-size:15px; }
.online-session-page .session-hours { color:#b8b4c4; font-size:15px; }
.session-booking { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); background:#f8f7fa; color:#15121e; border-radius:12px; overflow:hidden; }
.session-calendar-panel,.session-selection-panel { padding:30px; min-width:0; }
.session-selection-panel { border-left:1px solid #dfdbe5; background:white; }
.online-session-page main.session-page .session-booking h2 { font:500 25px/1.2 var(--sans); letter-spacing:-.02em; margin:0 0 10px; }
.online-session-page main.session-page .session-booking p { color:#625d6e; margin:0 0 16px; font-size:14px; line-height:1.45; }
.session-month-nav { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:24px 0 20px; }
.session-month-nav h3 { font-size:20px; font-weight:500; }
.session-month-nav button { border:1px solid #d6cfdf; border-radius:50%; width:36px; height:36px; background:white; cursor:pointer; color:#2b193e; font-size:20px; }
.session-month-nav button:disabled { opacity:.3; cursor:default; }
.session-weekdays,.session-calendar { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:6px; }
.session-weekdays { margin-bottom:10px; color:#797083; font-size:12px; text-align:center; }
.session-calendar { min-height:254px; align-content:start; }
.session-calendar button { width:100%; min-height:44px; border:1px solid #c8b4df; border-radius:7px; background:#f0e9fc; color:#4f2286; font-weight:600; cursor:pointer; }
.session-calendar button:hover:not(:disabled) { background:#e6d7ff; border-color:#843cff; }
.session-calendar button[aria-pressed=true],.session-times button[aria-pressed=true] { background:#7932ec; color:white; border-color:#7932ec; }
.session-calendar button[aria-pressed=true]:hover,.session-times button[aria-pressed=true]:hover { background:#7932ec; color:white; border-color:#7932ec; }
.session-calendar button:disabled { background:transparent; color:#b2acba; border-color:transparent; cursor:default; font-weight:400; }
.online-session-page main .session-calendar-help { margin-top:20px; font-size:13px; }
.session-times { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; margin:20px 0; }
.session-times button { border:1px solid #c2d9ca; color:#34684b; background:#f1f8f3; border-radius:7px; min-height:48px; padding:10px; cursor:pointer; font-size:15px; }
.session-times button span { display:block; margin-top:4px; font-size:11px; font-weight:400; }
.session-times button:disabled { background:#fcf1f1; color:#925353; border-color:#e8caca; cursor:default; }
.session-selection-summary { padding:12px 14px; background:#f5f0fc; border-radius:7px; color:#4b296b; margin:4px 0 20px; font-size:14px; line-height:1.6; }
.online-session-page label { color:#32263e; font-size:14px; margin-bottom:14px; }
.online-session-page input,.online-session-page textarea { width:100%; border:1px solid #cfc7d9; background:white; color:#19111f; margin:6px 0 0; padding:11px 12px; border-radius:6px; }
.online-session-page textarea { resize:vertical; }
.session-optional { color:#867a90; font-size:12px; }
.session-honeypot { position:absolute; left:-10000px; }
.session-submit { width:100%; white-space:normal; }
.session-submit:disabled { opacity:.6; cursor:wait; }
.online-session-page main.session-page .session-status { color:#973641; margin:12px 0 0; }
.online-session-page main.session-page .session-confirmation-note { font-size:13px; }
.session-text-button { border:0; padding:10px 0; background:transparent; color:#622aac; cursor:pointer; text-decoration:underline; }
.session-result { border:1px solid #c7dfcd; background:#f0f8f1; color:#285634; border-radius:8px; padding:18px; line-height:1.6; }
.session-booking [hidden] { display:none!important; }
@media(max-width:800px) {
  .session-booking { grid-template-columns:minmax(0,1fr); }
  .session-selection-panel { border-left:0; border-top:1px solid #dfdbe5; }
  .online-session-page .session-introduction h1 { font-size:48px; }
}
@media(max-width:450px) {
  .online-session-page main.session-page { width:92%; padding-top:30px; }
  .session-calendar-panel,.session-selection-panel { padding:22px 17px; }
  .session-weekdays,.session-calendar { gap:4px; }
  .session-calendar button { min-height:40px; }
}

.session-times button:hover:not(:disabled):not([aria-pressed=true]) { background:#e6f3eb; border-color:#91bba1; }

.online-session-page main.session-page .session-urgent-notice { background:#fff5df; border:1px solid #d9aa45; border-left:4px solid #b87812; border-radius:8px; padding:18px; margin:14px 0 22px; color:#563d14; scroll-margin-top:110px; }
.online-session-page main.session-page .session-urgent-notice p { font-size:15px; line-height:1.6; margin:8px 0 0; }
