:root{--purple:#7c3aed;--purple-light:#ede9fe;--purple-dark:#5b21b6;--dark:#1e1b4b;--text-body:#4b5563;--text-muted:#9ca3af;--white:#fff;--off-white:#f9fafb;--light-gray:#f3f4f6;--border:#e5e7eb;--red-accent:#b5293f;--green:#10b981}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--off-white);color:var(--dark);-webkit-font-smoothing:antialiased;font-family:Inter,system-ui,-apple-system,sans-serif}.booking-card{background:var(--white);border:1px solid var(--border);cursor:pointer;border-radius:12px;padding:24px;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 3px #0000000f,0 1px 2px #0000000a}.booking-card:hover{border-color:var(--purple);box-shadow:0 0 0 3px var(--purple-light)}.booking-card.selected{border:2px solid var(--purple);background:var(--purple-light)}.btn-primary{background:var(--purple);color:var(--white);cursor:pointer;border:none;border-radius:9999px;align-items:center;gap:6px;padding:14px 32px;font-size:14px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary:hover{background:var(--purple-dark)}.btn-primary:disabled{background:var(--light-gray);color:var(--text-muted);cursor:not-allowed}.btn-outline{background:var(--white);color:var(--dark);border:1.5px solid var(--border);cursor:pointer;border-radius:9999px;align-items:center;gap:6px;padding:12px 28px;font-size:14px;font-weight:600;text-decoration:none;transition:border-color .15s,background .15s;display:inline-flex}.btn-outline:hover{border-color:var(--purple);background:var(--purple-light)}.badge-popular{background:var(--purple);color:var(--white);border-radius:9999px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-block}.eyebrow{color:var(--purple);text-transform:uppercase;letter-spacing:.8px;font-size:12px;font-weight:600}.schedule-grid{grid-template-columns:400px 1fr;align-items:start;gap:32px;display:grid}.slots-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (max-width:768px){.schedule-grid{grid-template-columns:1fr}}.site-nav{padding:14px 40px}.site-main{padding:56px 40px}.site-footer{padding:24px 40px}.bw{--bw-purple:#7c3aed;--bw-purple-dark:#5b21b6;--bw-soft:#ede9fe;--bw-ink:#1e1b4b;--bw-muted:#6b7280;--bw-line:#e8e8ee}.bw .back-link{color:var(--text-muted);margin-bottom:20px;font-size:13px;font-weight:500;text-decoration:none;display:inline-block}.bw .back-link:hover{color:var(--bw-purple)}.bw .card{background:#fff;border-radius:28px;width:100%;max-width:640px;margin:0 auto;overflow:hidden;box-shadow:0 30px 80px -20px #0a0a282e,0 8px 24px -8px #0a0a2814}.bw .bw-header{color:#fff;text-align:center;background:linear-gradient(160deg,#7a3aff 0%,#5a1fe0 100%);padding:36px 32px 32px}.bw .bw-header h1{letter-spacing:-.02em;margin:0;font-size:30px;font-weight:800;line-height:1.1}.bw .bw-header .loc{opacity:.92;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:15px;display:inline-flex}.bw .course-card{border-bottom:1px solid var(--bw-line);padding:22px 32px 4px}.bw .course-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.bw .course-title{color:var(--bw-ink);letter-spacing:-.01em;font-size:16px;font-weight:700;line-height:1.35}.bw .course-tag{background:var(--bw-soft);color:var(--bw-purple);text-transform:uppercase;letter-spacing:.06em;white-space:nowrap;border-radius:6px;margin-left:4px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-block}.bw .summary-btn{border:1.5px solid var(--bw-line);color:var(--bw-ink);cursor:pointer;background:#fff;border-radius:999px;flex-shrink:0;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:600;transition:all .15s}.bw .summary-btn:hover{border-color:var(--bw-purple);color:var(--bw-purple)}.bw .course-grid{grid-template-columns:repeat(3,1fr);gap:14px 16px;padding-bottom:18px;display:grid}.bw .cd-label{color:var(--bw-muted);text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px;font-size:11px;font-weight:600}.bw .cd-value{color:var(--bw-ink);font-size:14px;font-weight:600;line-height:1.3}.bw .stepper{background:#f7f6fb;align-items:center;gap:8px;padding:16px 24px;display:flex}.bw .step{color:#b6b6c2;white-space:nowrap;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.bw .step .dot{color:#8a8a96;background:#e2e1ea;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:13px;font-weight:700;display:flex}.bw .step.active{color:var(--bw-purple)}.bw .step.active .dot,.bw .step.done .dot{background:var(--bw-purple);color:#fff}.bw .step.done{color:var(--bw-ink)}.bw .stepline{background:#e2e1ea;border-radius:1px;flex:1;min-width:12px;height:2px}.bw .stepline.done{background:var(--bw-purple)}.bw .bw-body{padding:32px}.bw .section-label{color:var(--bw-muted);text-transform:uppercase;letter-spacing:.1em;margin:0 0 18px;font-size:12px;font-weight:700}.bw .date-row{align-items:center;gap:10px;display:flex}.bw .arrow{border:1px solid var(--bw-line);cursor:pointer;width:40px;height:40px;color:var(--bw-ink);background:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .15s;display:flex}.bw .arrow:hover:not(:disabled){border-color:var(--bw-purple);color:var(--bw-purple)}.bw .arrow:disabled{opacity:.3;cursor:not-allowed}.bw .date-track{flex:1;overflow:hidden}.bw .date-list{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.bw .date-card{border:1.5px solid var(--bw-line);text-align:center;cursor:pointer;background:#fff;border-radius:14px;padding:12px 4px;font-family:inherit;transition:all .15s}.bw .date-card:hover{border-color:var(--bw-purple);transform:translateY(-1px)}.bw .date-card .dow{color:var(--bw-muted);text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:700}.bw .date-card .day{color:var(--bw-ink);letter-spacing:-.02em;margin:4px 0 2px;font-size:26px;font-weight:800;line-height:1.1}.bw .date-card .mon{color:var(--bw-muted);font-size:12px}.bw .date-card.selected{border-color:var(--bw-purple);background:var(--bw-purple);color:#fff}.bw .date-card.selected .dow,.bw .date-card.selected .day,.bw .date-card.selected .mon{color:#fff}.bw .times{grid-template-columns:repeat(2,1fr);gap:10px;display:grid}.bw .time-card{border:1.5px solid var(--bw-line);text-align:left;cursor:pointer;background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-family:inherit;transition:all .15s;display:flex}.bw .time-card:hover:not(:disabled){border-color:var(--bw-purple);transform:translateY(-1px)}.bw .time-card .t-start{color:var(--bw-ink);font-size:17px;font-weight:700}.bw .time-card .t-end{color:var(--bw-muted);margin-top:2px;font-size:13px}.bw .time-card.selected{border-color:var(--bw-purple);background:var(--bw-soft)}.bw .time-card:disabled{opacity:.5;cursor:not-allowed}.bw .time-card .badge{color:#c2410c;white-space:nowrap;background:#fff1ed;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700}.bw .time-card .badge.full{background:var(--light-gray);color:var(--red-accent)}.bw .time-card .badge .dot{vertical-align:1px;background:#c2410c;border-radius:50%;width:6px;height:6px;margin-right:5px;display:inline-block}.bw .field{margin-bottom:14px}.bw .field label{color:var(--bw-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px;font-size:12px;font-weight:700;display:block}.bw .field input{border:1.5px solid var(--bw-line);background:#fff;border-radius:12px;width:100%;padding:14px 16px;font-family:inherit;font-size:15px;transition:border .15s}.bw .field input:focus{border-color:var(--bw-purple);outline:none}.bw .bw-row{gap:10px;display:flex}.bw .bw-row .field{flex:1}.bw .phone-group{gap:8px;display:flex}.bw .country-select{border:1.5px solid var(--bw-line);cursor:pointer;background:#fff;border-radius:12px;flex-shrink:0;width:120px;padding:14px 10px;font-family:inherit;font-size:15px}.bw .country-select:focus{border-color:var(--bw-purple);outline:none}.bw .phone-group input{flex:1}.bw .consent{background:var(--bw-soft);color:#2a2a3a;border:1.5px solid #e2d5ff;border-radius:12px;align-items:flex-start;gap:12px;margin-top:8px;padding:14px 16px;font-size:13px;line-height:1.5;display:flex}.bw .consent input[type=checkbox]{cursor:pointer;width:18px;height:18px;accent-color:var(--bw-purple);flex-shrink:0;margin-top:1px}.bw .consent a{color:var(--bw-purple);font-weight:600;text-decoration:underline}.bw .precourse-note{border-radius:12px;margin-top:14px;padding:14px 16px;font-size:13px;line-height:1.5}.bw .precourse-note.included{background:var(--bw-soft);border:1.5px solid #e2d5ff}.bw .precourse-note.required{background:#fef3c7;border:1.5px solid #f59e0b}.bw .precourse-note .pc-title{color:var(--bw-ink);margin-bottom:4px;font-weight:700}.bw .precourse-note a{color:var(--bw-purple-dark);word-break:break-all;font-weight:600;text-decoration:underline}.bw .bw-summary{background:var(--bw-soft);border-radius:14px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:24px;padding:16px 18px;font-size:14px;display:flex}.bw .bw-summary .s-label{color:var(--bw-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:600}.bw .bw-summary .s-value{color:var(--bw-ink);margin-top:2px;font-size:15px;font-weight:700}.bw .bw-summary button{color:var(--bw-purple);cursor:pointer;background:0 0;border:none;font-family:inherit;font-size:13px;font-weight:700}.bw .addon{border:1.5px solid var(--bw-line);cursor:pointer;background:#fff;border-radius:14px;align-items:flex-start;gap:14px;margin-bottom:10px;padding:16px;transition:all .15s;display:flex}.bw .addon:hover{border-color:var(--bw-purple)}.bw .addon.checked{border-color:var(--bw-purple);background:var(--bw-soft)}.bw .addon-check{border:1.5px solid var(--bw-line);background:#fff;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;margin-top:1px;display:flex}.bw .addon.checked .addon-check{background:var(--bw-purple);border-color:var(--bw-purple)}.bw .addon-check svg{display:none}.bw .addon.checked .addon-check svg{display:block}.bw .addon-body{flex:1}.bw .addon-title{color:var(--bw-ink);justify-content:space-between;gap:12px;margin-bottom:4px;font-size:15px;font-weight:700;display:flex}.bw .addon-price{color:var(--bw-purple);font-weight:700}.bw .addon-desc{color:var(--bw-muted);font-size:13px;line-height:1.4}.bw .breakdown{border-top:1px solid var(--bw-line);margin-top:20px;padding-top:16px}.bw .breakdown-row{color:var(--bw-muted);justify-content:space-between;margin-bottom:8px;font-size:14px;display:flex}.bw .breakdown-row.total{color:var(--bw-ink);border-top:1px solid var(--bw-line);margin-top:8px;margin-bottom:0;padding-top:12px;font-size:18px;font-weight:800}.bw .bw-footer{padding:20px 32px 32px}.bw .cta{background:var(--bw-purple);color:#fff;cursor:pointer;border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;width:100%;padding:18px 28px;font-family:inherit;font-size:16px;font-weight:700;transition:all .15s;display:inline-flex}.bw .cta:hover:not(:disabled){background:var(--bw-purple-dark);transform:translateY(-1px)}.bw .cta:disabled{color:#a1a1ad;cursor:not-allowed;background:#e2e1ea}.bw .back-btn{color:var(--bw-muted);cursor:pointer;background:0 0;border:none;width:100%;margin-top:12px;padding:10px;font-family:inherit;font-size:14px;font-weight:600}.bw .back-btn:hover{color:var(--bw-ink)}.bw .bw-error{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:10px;margin-top:14px;padding:12px 16px;font-size:14px}.bw .summary-bg{z-index:100;background:#0a0a148c;justify-content:center;align-items:center;padding:20px;display:none;position:fixed;inset:0}.bw .summary-bg.open{display:flex}.bw .summary-modal{background:#fff;border-radius:20px;width:100%;max-width:520px;padding:28px;position:relative}.bw .summary-modal h3{letter-spacing:-.01em;margin:0 0 14px;padding-right:36px;font-size:18px;line-height:1.35}.bw .summary-modal p{color:var(--bw-muted);margin:0;font-size:15px;line-height:1.6}.bw .summary-close{border:1.5px solid var(--bw-line);cursor:pointer;width:30px;height:30px;color:var(--bw-ink);background:#fff;border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute;top:16px;right:16px}.bw .bw-header .sub{opacity:.92;margin:8px 0 0;font-size:15px;line-height:1.5}.bw .badge-row{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:18px;display:flex}.bw .badge{color:#ffffffeb;letter-spacing:.04em;background:#ffffff26;border-radius:999px;padding:5px 10px;font-size:11px;font-weight:600}.bw .accent{background:var(--bw-purple);height:4px}.bw .state-group{margin-bottom:24px}.bw .state-name{color:var(--bw-ink);letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;font-size:13px;font-weight:700}.bw .locations-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.bw .loc{border:1.5px solid var(--bw-line);color:var(--bw-ink);background:#fff;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px 12px 16px;text-decoration:none;transition:all .15s;display:flex}.bw .loc:hover{border-color:var(--bw-purple);transform:translateY(-1px);box-shadow:0 4px 12px -2px #7c3aed2e}.bw .loc .loc-label{align-items:baseline;gap:8px;min-width:0;display:flex}.bw .loc .city{font-size:15.5px;font-weight:700}.bw .loc .state{color:var(--bw-muted);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:600}.bw .loc .state:before{content:"·";color:var(--bw-line);margin-right:8px;font-weight:700}.bw .loc .loc-chev{color:var(--bw-muted);opacity:.55;flex-shrink:0;transition:all .15s}.bw .loc:hover .loc-chev{color:var(--bw-purple);opacity:1;transform:translate(2px)}.bw .loc-featured{background:linear-gradient(135deg,var(--bw-soft) 0%,#fff 100%);border-color:var(--bw-purple);border-width:2px;flex-direction:column;align-items:flex-start;gap:4px;position:relative}.bw .loc-featured .state:before{content:none}.bw .loc-featured:hover{box-shadow:0 6px 18px -2px #7c3aed40}.bw .loc-featured .city{color:var(--bw-purple)}.bw .loc-ribbon{color:#fff;letter-spacing:.08em;background:#a37a00;border-radius:4px;padding:3px 7px;font-size:9px;font-weight:800;position:absolute;top:8px;right:10px}@media (max-width:560px){.bw .card{box-shadow:none;border-radius:0}.bw .bw-header{padding:32px 24px 28px}.bw .bw-header h1{font-size:25px}.bw .bw-body{padding:24px 20px}.bw .bw-footer{padding:16px 20px 28px}.bw .date-list{grid-template-columns:repeat(4,1fr);gap:8px}.bw .stepper{gap:6px;padding:14px 16px;font-size:13px}.bw .step .dot{width:24px;height:24px}.bw .course-card{padding:18px 20px 4px}.bw .course-grid{grid-template-columns:repeat(2,1fr);gap:12px}.bw .times,.bw .locations-grid{grid-template-columns:1fr}}@media (max-width:768px){.site-nav{padding:12px 16px}.site-main{padding:32px 16px}.site-footer{padding:20px 16px}}.bw .date-card.booked-out{opacity:.45;cursor:not-allowed}.bw .date-card.booked-out:hover{border-color:var(--bw-line);transform:none}.bw .date-card.booked-out .day{text-decoration:line-through}.bw .booked-toast{z-index:200;background:var(--bw-ink,#14141b);color:#fff;border-radius:14px;flex-direction:column;gap:3px;max-width:min(92vw,430px);padding:16px 46px 16px 18px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 14px 44px #0000004d}.bw .booked-toast strong{font-size:14.5px;font-weight:800}.bw .booked-toast span{color:#d4d4dd;font-size:13px}.bw .booked-toast-cta{background:var(--bw-purple,#6b4eff);color:#fff;border-radius:10px;align-self:flex-start;margin-top:9px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none}.bw .booked-toast-x{color:#fff;cursor:pointer;opacity:.65;background:0 0;border:none;font-size:22px;line-height:1;position:absolute;top:8px;right:12px}.bw .booked-toast-x:hover{opacity:1}
