.kbk-wrap {
  --kbk-ink: #202a32;
  --kbk-muted: #68727a;
  --kbk-accent: #17324d;
  --kbk-accent-dark: #0f2538;
  --kbk-navy: #17324d;
  --kbk-coral: #a95349;
  --kbk-coral-soft: #fbefec;
  --kbk-line: #ded8cf;
  --kbk-soft: #f8f5ef;
  width: min(100% - 24px, 760px);
  margin: 36px auto;
  padding: clamp(24px, 5vw, 52px);
  border: 1px solid var(--kbk-line);
  border-radius: 20px;
  background: #fffdf9;
  box-shadow: 0 18px 50px rgba(23, 50, 77, .08);
  color: var(--kbk-ink);
  font-size: 16px;
  line-height: 1.65;
}

body.kbk-booking-preview {
  min-width: 320px;
  min-height: 100vh;
  margin: 0;
  background: #f8f5ef;
  color: #202a32;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
}

.kbk-standalone-preview { display: flow-root; width: 100%; min-height: 100vh; }

.kbk-wrap *, .kbk-wrap *::before, .kbk-wrap *::after { box-sizing: border-box; }
.kbk-wrap [hidden] { display: none !important; }
.kbk-sr-only { position: absolute !important; width: 1px !important; height: 1px !important; margin: -1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.kbk-wrap button, .kbk-wrap input { font: inherit; }
.kbk-wrap button { -webkit-appearance: none !important; appearance: none !important; background-image: none !important; box-shadow: none !important; -webkit-tap-highlight-color: transparent; }
.kbk-booking-page #main article > .entry-header,
.kbk-booking-page #page-top,
.kbk-booking-page .pt-button { display: none !important; }
.kbk-booking-page #breadcrumb { display: none !important; }
.kbk-booking-page #footer {
  margin-top: 0 !important;
  border-top: 1px solid #e3ddd4 !important;
  background: #f7f4ee !important;
}
.kbk-booking-page #inner-footer {
  width: min(100% - 32px, 760px) !important;
  padding: 0 !important;
}
.kbk-booking-page #footer-bottom { padding: 18px 0 !important; }
.kbk-booking-page #footer .footer-links,
.kbk-booking-page #footer .stk_sns_links { display: none !important; }
.kbk-booking-page #footer .copyright {
  margin: 0 !important;
  color: #747a80 !important;
  font-size: 12px !important;
  line-height: 1.6 !important;
  text-align: center !important;
}
.kbk-booking-page #footer .copyright a {
  color: inherit !important;
  text-decoration: none !important;
}
.kbk-wrap .kbk-app-header h2,
.kbk-wrap .kbk-step h3,
.kbk-wrap .kbk-course-card h4,
.kbk-wrap .kbk-time-section h4 {
  position: static !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: var(--kbk-navy) !important;
  text-shadow: none !important;
}
.kbk-wrap .kbk-app-header h2::before,
.kbk-wrap .kbk-app-header h2::after,
.kbk-wrap .kbk-step h3::before,
.kbk-wrap .kbk-step h3::after,
.kbk-wrap .kbk-course-card h4::before,
.kbk-wrap .kbk-course-card h4::after,
.kbk-wrap .kbk-time-section h4::before,
.kbk-wrap .kbk-time-section h4::after,
.kbk-wrap .kbk-progress li::after { content: none !important; display: none !important; }
.kbk-wrap .kbk-app-header h2 { margin: 0 !important; font-size: clamp(28px, 5vw, 36px) !important; line-height: 1.25 !important; }
.kbk-eyebrow, .kbk-step-label { margin: 0 0 6px; color: var(--kbk-coral); font-size: 12px; font-weight: 800; letter-spacing: .13em; }
.kbk-message { margin: 18px 0; padding: 13px 15px; border: 1px solid #eee3c7; border-radius: 10px; background: #fbf6e8; font-size: 14px; }
.kbk-success { border-left: 4px solid #2b8a3e; }
.kbk-error { border-left: 4px solid #c92a2a; }

.kbk-wrap .kbk-progress { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; margin: 24px 0 8px !important; padding: 0 !important; list-style: none !important; counter-reset: none !important; }
.kbk-wrap .kbk-progress li { position: relative; display: grid; justify-items: center; gap: 8px; margin: 0 !important; padding: 0 !important; color: #92999f; font-size: 12px; list-style: none !important; counter-increment: none !important; }
.kbk-wrap .kbk-progress li::marker { content: "" !important; }
.kbk-wrap .kbk-progress li::before { content: "" !important; display: block !important; position: absolute !important; top: 22px !important; right: 50% !important; bottom: auto !important; left: auto !important; z-index: 0 !important; width: 100% !important; height: 1px !important; margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 0 !important; background: var(--kbk-line) !important; box-shadow: none !important; color: transparent !important; transform: none !important; }
.kbk-wrap .kbk-progress li:first-child::before { display: none !important; }
.kbk-wrap .kbk-progress span { position: relative; z-index: 1; display: grid; place-items: center; width: 44px; height: 44px; font-size: 24px; border: 2px solid var(--kbk-line); border-radius: 50%; background: #fff; font-weight: 800; }
.kbk-wrap .kbk-progress small { font-size: 18px !important; font-weight: 600; line-height: 1.4; white-space: nowrap; }
.kbk-progress .is-current, .kbk-progress .is-complete { color: var(--kbk-navy); }
.kbk-progress .is-current span { border-color: var(--kbk-accent); background: var(--kbk-accent); color: #fff; }
.kbk-progress .is-complete span { border-color: var(--kbk-coral); color: var(--kbk-coral); }
.kbk-wrap .kbk-progress .is-complete::before, .kbk-wrap .kbk-progress .is-current::before { background: var(--kbk-coral) !important; }

.kbk-step { padding-top: 28px; }
.kbk-wrap .kbk-step h3 { margin: 0 0 24px !important; padding: 0 0 12px !important; border-bottom: 1px solid var(--kbk-line) !important; font-size: clamp(25px, 5vw, 32px) !important; line-height: 1.3 !important; }
.kbk-course-card { overflow: hidden; border: 1px solid var(--kbk-line); border-radius: 16px; }
.kbk-course-summary { margin-top: 18px; }
.kbk-course-main { display: grid; grid-template-columns: minmax(210px, 42%) minmax(0, 1fr); }
.kbk-course-visual { min-width: 0; aspect-ratio: 8 / 5; margin: 0; overflow: hidden; background: var(--kbk-soft); }
.kbk-course-image { display: block; width: 100% !important; height: 100% !important; object-fit: cover; object-position: center 45%; }
.kbk-course-copy { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; justify-content: center; padding: 24px; }
.kbk-wrap .kbk-course-card h4 { margin: 0 !important; font-size: 22px !important; line-height: 1.45 !important; overflow-wrap: anywhere; text-wrap: balance; }
.kbk-course-card p { margin: 0; }
.kbk-title-unit { display: inline-block; white-space: nowrap; }
.kbk-course-card dl { display: grid; grid-template-columns: 1fr 1fr; margin: 0; border-top: 1px solid var(--kbk-line); background: var(--kbk-soft); }
.kbk-course-card dl div { padding: 16px 24px; }
.kbk-course-card dl div + div { border-left: 1px solid var(--kbk-line); }
.kbk-course-card dt { color: var(--kbk-muted); font-size: 13px; }
.kbk-course-card dd { margin: 2px 0 0; font-size: 19px; font-weight: 800; }
.kbk-form { position: relative; }

.kbk-step-help { margin: -5px 0 18px; color: var(--kbk-muted); font-size: 14px; }
.kbk-calendar { margin: 0 auto 24px; }
.kbk-calendar-head { display: grid; grid-template-columns: 48px 1fr 48px; align-items: center; margin-bottom: 22px; text-align: center; }
.kbk-calendar-head strong { font-size: 22px; }
.kbk-calendar-head button { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--kbk-ink); font-size: 38px; line-height: 1; cursor: pointer; }
.kbk-calendar-head button:hover:not(:disabled) { background: var(--kbk-soft); }
.kbk-calendar-head button:disabled { color: #d1d5da; cursor: not-allowed; }
.kbk-weekdays, .kbk-days { display: grid; grid-template-columns: repeat(7, 1fr); align-items: center; justify-items: center; gap: 13px 4px; }
.kbk-weekdays { margin-bottom: 17px; font-weight: 700; }
.kbk-days { min-height: 310px; }
.kbk-days > p { grid-column: 1 / -1; align-self: start; }
.kbk-day { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 1.5px solid #8d99a3; border-radius: 50%; background: #fff; color: var(--kbk-navy); font-weight: 800; cursor: pointer; }
.kbk-day:hover { border-color: var(--kbk-navy); background: var(--kbk-soft); }
.kbk-day.is-selected { background: var(--kbk-accent); color: #fff; }
.kbk-day.is-unavailable { border-color: transparent; color: #c9cdd2; cursor: default; }
.kbk-day-spacer { width: 46px; height: 46px; }
.kbk-selected-date { margin: 20px 0 8px; color: var(--kbk-navy); font-weight: 800; }
.kbk-saturday-note, .kbk-beginner-note, .kbk-assignment-note { margin: 12px 0 22px; padding: 14px 16px; border-left: 4px solid var(--kbk-coral); border-radius: 8px; background: var(--kbk-soft); }

.kbk-slots, .kbk-question { margin: 28px 0; padding: 0; border: 0; }
.kbk-slots > legend, .kbk-question > legend { margin-bottom: 12px; font-size: 18px; font-weight: 800; }
.kbk-question > legend span, .kbk-required { margin-left: 5px; color: var(--kbk-coral); font-size: 12px; font-weight: 800; }
.kbk-optional { margin-left: 5px; color: var(--kbk-muted); font-size: 12px; font-weight: 700; }
.kbk-time-section + .kbk-time-section { margin-top: 24px; }
.kbk-wrap .kbk-time-section h4 { margin: 0 0 10px !important; font-size: 17px !important; line-height: 1.45 !important; }
.kbk-time-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kbk-time input, .kbk-radio-list input { position: absolute; opacity: 0; pointer-events: none; }
.kbk-time span { display: grid; place-items: center; min-height: 54px; border: 1px solid #c9cdd2; border-radius: 10px; background: #fff; color: var(--kbk-accent); font-size: 20px; cursor: pointer; }
.kbk-time input:checked + span { border-color: var(--kbk-accent); background: var(--kbk-accent); color: #fff; }
.kbk-time input:focus-visible + span { outline: 3px solid rgba(23, 50, 77, .2); outline-offset: 2px; }

.kbk-help { margin: -5px 0 14px; color: var(--kbk-muted); font-size: 14px; }
.kbk-teacher-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 14px; }
.kbk-teacher-card { position: relative; display: block; min-width: 0; margin: 0; cursor: pointer; }
.kbk-teacher-card > input { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; opacity: 0; pointer-events: none; }
.kbk-teacher-card-body { display: grid; height: 100%; grid-template-columns: 88px minmax(0, 1fr); gap: 13px; align-items: start; padding: 14px; border: 2px solid var(--kbk-line); border-radius: 15px; background: #fff; transition: border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.kbk-teacher-card:hover .kbk-teacher-card-body { border-color: #d9a69d; transform: translateY(-1px); }
.kbk-teacher-card > input:checked + .kbk-teacher-card-body { border-color: var(--kbk-coral); background: var(--kbk-coral-soft); box-shadow: 0 8px 22px rgba(23, 50, 77, .08); }
.kbk-teacher-card > input:focus-visible + .kbk-teacher-card-body { outline: 3px solid rgba(200, 117, 104, .26); outline-offset: 3px; }
.kbk-teacher-photo { position: relative; display: block; width: 88px; height: 88px; }
.kbk-teacher-image { display: block; width: 88px !important; height: 88px !important; border: 3px solid #fff; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 1px rgba(23, 50, 77, .13); }
.kbk-teacher-check { position: absolute; right: -3px; bottom: -3px; display: grid; width: 27px; height: 27px; place-items: center; border: 3px solid #fff; border-radius: 50%; background: var(--kbk-accent); color: #fff; font-size: 14px; font-weight: 900; line-height: 1; opacity: 0; transform: scale(.72); transition: opacity .16s ease, transform .16s ease; }
.kbk-teacher-card > input:checked + .kbk-teacher-card-body .kbk-teacher-check { opacity: 1; transform: scale(1); }
.kbk-teacher-copy { display: flex; min-width: 0; flex-direction: column; }
.kbk-teacher-copy strong { color: var(--kbk-navy); font-size: 16px; line-height: 1.45; }
.kbk-teacher-copy small { margin-top: 2px; color: var(--kbk-accent-dark); font-size: 11px; font-weight: 800; line-height: 1.45; }
.kbk-teacher-description { margin-top: 12px; min-height: 3.3em; color: var(--kbk-muted); font-size: 12px; line-height: 1.65; white-space: pre-line; } .kbk-teacher-card-body { grid-template-rows: 44px 44px auto auto; row-gap: 0; align-content: start; } .kbk-teacher-photo { grid-column: 1; grid-row: 1 / span 2; } .kbk-teacher-copy { display: contents; } .kbk-teacher-copy > strong { grid-column: 2; grid-row: 1; align-self: end; } .kbk-teacher-copy > small { grid-column: 2; grid-row: 2; align-self: start; } .kbk-teacher-description { grid-column: 1 / -1; grid-row: 3; } .kbk-teacher-tags { grid-column: 1 / -1; grid-row: 4; }
.kbk-teacher-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 9px; }
.kbk-teacher-tags em { padding: 3px 7px; border-radius: 999px; background: #f1f4f8; color: var(--kbk-navy); font-size: 10px; font-style: normal; font-weight: 800; line-height: 1.4; }
.kbk-teacher-card > input:checked + .kbk-teacher-card-body .kbk-teacher-tags em { background: #f2dcd7; }
.kbk-choice-subhead { margin: 24px 0 10px; color: var(--kbk-navy); font-size: 14px; font-weight: 800; }
.kbk-type-choices { margin-bottom: 10px; }
.kbk-no-preference { display: flex; align-items: center; gap: 10px; min-height: 62px; margin: 0 0 16px; padding: 12px 14px; border: 2px solid #d5cec4; border-radius: 11px; background: var(--kbk-soft); cursor: pointer; }
.kbk-no-preference input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--kbk-accent); }
.kbk-no-preference > span { display: flex; flex-direction: column; }
.kbk-no-preference strong { color: var(--kbk-navy); font-size: 14px; }
.kbk-no-preference small { margin-top: 2px; color: var(--kbk-muted); font-size: 11px; line-height: 1.5; }
.kbk-no-preference:has(input:checked) { border-color: var(--kbk-coral); background: var(--kbk-coral-soft); }
.kbk-check-list, .kbk-radio-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kbk-check-list label, .kbk-radio-list label { position: relative; display: flex; align-items: center; gap: 9px; min-height: 52px; margin: 0; padding: 12px 14px; border: 1px solid var(--kbk-line); border-radius: 10px; background: #fff; cursor: pointer; }
.kbk-check-list input { width: 19px; height: 19px; flex: 0 0 auto; accent-color: var(--kbk-accent); }
.kbk-check-list label:has(input:checked), .kbk-radio-list label:has(input:checked) { border-color: var(--kbk-coral); background: var(--kbk-coral-soft); }
.kbk-radio-list label::before { content: ""; width: 19px; height: 19px; flex: 0 0 auto; border: 2px solid #aab1b9; border-radius: 50%; }
.kbk-radio-list label:has(input:checked)::before { border: 6px solid var(--kbk-accent); }
.kbk-other-input { display: block; margin-top: 14px; }

.kbk-form > .kbk-step > label, .kbk-other-input { display: block; margin: 0 0 20px; font-weight: 700; }
.kbk-form input[type="text"], .kbk-form input[type="email"], .kbk-form input[type="tel"], .kbk-form textarea { width: 100%; min-height: 52px; margin-top: 7px; padding: 12px 14px; border: 1px solid #bcc3cb; border-radius: 9px; background: #fff; color: var(--kbk-ink); }
.kbk-form textarea { min-height: 116px; line-height: 1.65; resize: vertical; }
.kbk-form input:focus, .kbk-form textarea:focus { border-color: var(--kbk-coral); outline: 3px solid rgba(200, 117, 104, .16); }
.kbk-field-invalid { border-color: #c92a2a !important; }
.kbk-invalid { padding: 13px; border: 2px solid #c92a2a !important; border-radius: 12px; }
.kbk-validation-error { margin: 10px 0 0; color: #b42318; font-size: 14px; font-weight: 700; }

.kbk-actions { display: grid; grid-template-columns: minmax(110px, .55fr) minmax(180px, 1fr); gap: 12px; margin-top: 34px; }
.kbk-actions-single { grid-template-columns: 1fr; }
.kbk-back, .kbk-next, .kbk-submit { min-height: 54px; padding: 13px 18px; border-radius: 12px; font-weight: 800; cursor: pointer; }
.kbk-wrap .kbk-back { border: 1px solid #bcc3cb !important; background: #fff !important; color: var(--kbk-ink) !important; }
.kbk-wrap .kbk-next, .kbk-wrap .kbk-submit { border: 1px solid var(--kbk-accent) !important; background: var(--kbk-accent) !important; color: #fff !important; }
.kbk-wrap .kbk-next:hover, .kbk-wrap .kbk-submit:hover { border-color: var(--kbk-accent-dark) !important; background: var(--kbk-accent-dark) !important; }
.kbk-wrap .kbk-next:disabled, .kbk-wrap .kbk-submit:disabled { border-color: #98a1aa !important; background: #98a1aa !important; cursor: wait; opacity: .8; }

.kbk-review { margin: 0; border-top: 1px solid var(--kbk-line); }
.kbk-review > div { display: grid; grid-template-columns: 135px 1fr; gap: 18px; padding: 15px 4px; border-bottom: 1px solid var(--kbk-line); }
.kbk-review dt { color: var(--kbk-muted); font-size: 14px; font-weight: 700; }
.kbk-review dd { margin: 0; font-weight: 700; overflow-wrap: anywhere; white-space: pre-wrap; }
.kbk-assignment-note strong { color: var(--kbk-navy); }
.kbk-assignment-note p { margin: 4px 0 0; }
.kbk-loading { color: var(--kbk-muted); }
.kbk-calendar-error { color: #b42318; }
.kbk-preparing { text-align: center; background: var(--kbk-soft); }
.kbk-terms-consent { display: flex; align-items: flex-start; gap: 10px; margin: 24px 0 0; padding: 15px; border: 1px solid var(--kbk-line); border-radius: 11px; background: var(--kbk-soft); font-size: 14px; font-weight: 700; line-height: 1.7; }
.kbk-terms-consent input { width: 20px; height: 20px; margin-top: 2px; flex: 0 0 auto; accent-color: var(--kbk-accent); }
.kbk-terms-consent.kbk-invalid { display: flex; flex-wrap: wrap; }
.kbk-terms-consent .kbk-validation-error { width: 100%; }
.kbk-legal-links { margin-top: 26px; padding-top: 18px; border-top: 1px solid var(--kbk-line); color: var(--kbk-muted); font-size: 13px; text-align: center; }
.kbk-policy h3 { margin: 30px 0 8px !important; color: var(--kbk-navy) !important; font-size: 20px !important; }
.kbk-policy p { line-height: 1.85; }
.kbk-policy-updated { margin-top: 36px !important; color: var(--kbk-muted); font-size: 13px; }

/* Booking status and cancellation pages use the school palette. */
.kbk-wrap.kbk-payment-complete h2,
.kbk-wrap.kbk-customer-cancel h2,
.kbk-wrap.kbk-cancellation-policy h2 {
  background: #f3ede4 !important;
  color: var(--kbk-navy) !important;
  border: 1px solid var(--kbk-line) !important;
  border-radius: 8px !important;
  box-shadow: none !important;
}
.kbk-wrap.kbk-cancellation-policy h3 {
  padding: 0 0 10px !important;
  background: transparent !important;
  color: var(--kbk-navy) !important;
  border: 0 !important;
  border-bottom: 1px solid var(--kbk-line) !important;
  box-shadow: none !important;
}
.kbk-wrap.kbk-payment-complete h2::before,
.kbk-wrap.kbk-payment-complete h2::after,
.kbk-wrap.kbk-customer-cancel h2::before,
.kbk-wrap.kbk-customer-cancel h2::after,
.kbk-wrap.kbk-cancellation-policy h2::before,
.kbk-wrap.kbk-cancellation-policy h2::after,
.kbk-wrap.kbk-cancellation-policy h3::before,
.kbk-wrap.kbk-cancellation-policy h3::after {
  content: none !important;
  display: none !important;
}
.kbk-wrap.kbk-cancellation-policy a {
  color: var(--kbk-coral) !important;
  text-decoration: underline;
  text-underline-offset: .18em;
}
.kbk-wrap.kbk-cancellation-policy a:hover { color: var(--kbk-navy) !important; }
.kbk-wrap.kbk-cancellation-policy strong { color: var(--kbk-navy); }

.kbk-wrap.kbk-payment-complete h2 { margin-top: 0 !important; }
.kbk-wrap.kbk-payment-complete .kbk-payment-message { margin: 24px 0; line-height: 1.85; }
.kbk-wrap.kbk-customer-cancel a:not(.kbk-link-button) { color: var(--kbk-coral); }

.kbk-result { text-align: center; }
.kbk-result .kbk-message { text-align: left; }
.kbk-link-button { display: inline-flex; min-height: 48px; align-items: center; justify-content: center; margin-top: 12px; padding: 11px 20px; border-radius: 10px; background: var(--kbk-accent); color: #fff !important; font-weight: 800; text-decoration: none !important; }
.kbk-cancel-form { margin-top: 24px; }
.kbk-cancel-form .kbk-submit { width: 100%; }

@media (max-width: 640px) {
  .kbk-wrap { width: 100%; margin: 0; padding: 16px 16px 24px; border: 0; border-radius: 0; box-shadow: none; font-size: 15px; line-height: 1.55; }
  .kbk-app-header > .kbk-eyebrow { display: none; }
  .kbk-wrap .kbk-app-header h2 { font-size: 24px !important; line-height: 1.2 !important; white-space: nowrap; }
  .kbk-wrap .kbk-progress { margin: 14px 0 0 !important; }
  .kbk-wrap .kbk-progress span { width: 36px; height: 36px; font-size: 20px; }
  .kbk-wrap .kbk-progress li::before { top: 18px !important; }
  .kbk-wrap .kbk-progress small { font-size: 16px !important; }
  .kbk-step { padding-top: 18px; }
  .kbk-step-label { margin-bottom: 4px; font-size: 10px; }
  .kbk-wrap .kbk-step h3 { margin-bottom: 14px !important; padding-bottom: 9px !important; font-size: 22px !important; }
  .kbk-course-card { border-radius: 13px; }
  .kbk-course-main { grid-template-columns: 38% minmax(0, 1fr); }
  .kbk-course-copy { padding: 11px 12px; }
  .kbk-wrap .kbk-course-card h4 { font-size: 17px !important; line-height: 1.35 !important; }
  .kbk-step-help { margin: -3px 0 14px; font-size: 13px; line-height: 1.55; }
  .kbk-course-card dl div { padding: 9px 15px; }
  .kbk-course-card dt { font-size: 11px; line-height: 1.35; }
  .kbk-course-card dd { margin-top: 0; font-size: 17px; line-height: 1.4; }
  .kbk-actions { margin-top: 15px; }
  .kbk-back, .kbk-next, .kbk-submit { min-height: 48px; padding: 10px 16px; font-size: 15px; }
  .kbk-days { min-height: 285px; gap: 10px 1px; }
  .kbk-day, .kbk-day-spacer { width: 44px; height: 44px; }
  .kbk-teacher-grid { grid-template-columns: 1fr; }
  .kbk-teacher-card-body { grid-template-columns: 82px minmax(0, 1fr); grid-template-rows: 41px 41px auto auto; }
  .kbk-teacher-photo, .kbk-teacher-image { width: 82px !important; height: 82px !important; }
  .kbk-time-grid, .kbk-check-list, .kbk-radio-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .kbk-check-list label, .kbk-radio-list label { padding: 11px 10px; font-size: 14px; }
  .kbk-review > div { grid-template-columns: 105px 1fr; gap: 12px; }
  .kbk-actions { position: static; bottom: auto; z-index: auto; padding: 0; border-radius: 0; background: transparent; box-shadow: none; backdrop-filter: none; }
}

@media (max-width: 390px) {
  .kbk-wrap { padding-inline: 14px; }
  .kbk-days { gap-inline: 0; }
  .kbk-day, .kbk-day-spacer { width: 44px; height: 44px; }
  .kbk-check-list, .kbk-radio-list { grid-template-columns: 1fr; }
}

@media (max-width: 340px) {
  .kbk-actions:not(.kbk-actions-single) { grid-template-columns: 88px minmax(0, 1fr); gap: 8px; }
  .kbk-day, .kbk-day-spacer { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .kbk-teacher-card-body, .kbk-teacher-check { transition: none; }
  .kbk-teacher-card:hover .kbk-teacher-card-body { transform: none; }
}


.kbk-wrap .kbk-step h3[tabindex="-1"]:focus,
.kbk-wrap .kbk-step h3[tabindex="-1"]:focus-visible { outline: none !important; box-shadow: none !important; }
.kbk-wrap .kbk-course-description { margin-top: 10px; color: var(--kbk-muted); font-size: 15px; line-height: 1.65; text-wrap: balance; line-break: strict; } .kbk-course-description .kbk-copy-phrase { display: inline-block; white-space: nowrap; }
@media (max-width: 640px) {
  .kbk-wrap .kbk-course-description { font-size: 13px; }
}

/* Availability states must occupy the entire seven-column calendar. */
.kbk-wrap .kbk-days > p,
.kbk-wrap .kbk-days > .kbk-availability-retry {
  grid-column: 1 / -1;
  justify-self: stretch;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  margin: 0;
  white-space: normal;
  overflow-wrap: anywhere;
  text-align: left;
}
.kbk-wrap .kbk-availability-retry {
  display: block;
  width: 100%;
  padding: 14px 20px;
  border: 1px solid var(--kbk-navy, #18354f);
  border-radius: 12px;
  background: var(--kbk-navy, #18354f);
  color: #fff;
  font: inherit;
  font-size: 16px;
  line-height: 1.6;
  cursor: pointer;
  text-align: center;
}
.kbk-wrap .kbk-days > .kbk-availability-retry { text-align: center; }
.kbk-wrap .kbk-days:has(> .kbk-availability-retry) { align-content: start; gap: 16px 4px; }
