.ka-booking {
    --ka-bg: #f5f3ef;
    --ka-card: #ffffff;
    --ka-text: #20201e;
    --ka-muted: #706d67;
    --ka-border: #d8d3cb;
    --ka-accent: #20201e;
    --ka-soft: #ece8e1;
    width: 100%;
    max-width: 1120px;
    margin: 0 auto;
    padding: clamp(24px, 4vw, 56px);
    background: var(--ka-bg);
    color: var(--ka-text);
    font-family: inherit;
    overflow: hidden;
}
.ka-booking *, .ka-booking *::before, .ka-booking *::after { box-sizing: border-box; min-width: 0; }
.ka-booking h2, .ka-booking h3, .ka-booking p, .ka-booking span, .ka-booking small, .ka-booking label, .ka-booking button, .ka-booking input, .ka-booking select { overflow-wrap: anywhere; word-break: normal; }
.ka-booking__header { max-width: 760px; margin-bottom: 30px; }
.ka-booking__eyebrow { display:block; margin-bottom:10px; text-transform:uppercase; letter-spacing:.14em; font-size:11px; line-height:1.4; font-weight:700; }
.ka-booking h2 { margin:0 0 12px; font-size:clamp(30px,5vw,54px); line-height:1.08; letter-spacing:-.025em; }
.ka-booking__header p { margin:0; color:var(--ka-muted); font-size:16px; line-height:1.6; }
.ka-booking__steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; margin:0 0 30px; border:1px solid var(--ka-border); background:var(--ka-border); font-size:13px; }
.ka-booking__steps span { position:relative; padding:14px; background:rgba(255,255,255,.65); color:var(--ka-muted); line-height:1.35; }
.ka-booking__steps span::before { content:""; position:absolute; left:0; right:0; bottom:0; height:3px; background:transparent; }
.ka-booking__steps .is-active { background:#fff; color:var(--ka-text); }
.ka-booking__steps .is-active::before { background:var(--ka-accent); }
.ka-booking__steps .is-complete { color:var(--ka-text); }
.ka-booking__steps .is-complete::before { background:var(--ka-accent); opacity:.35; }
.ka-booking__panel, .ka-booking__form, .ka-course-card, .ka-empty { background:var(--ka-card); border:1px solid var(--ka-border); }
.ka-booking__panel { padding:clamp(18px,3vw,30px); margin-bottom:20px; }
.ka-booking__label, .ka-booking label { display:block; margin-bottom:10px; font-weight:650; line-height:1.4; }
.ka-category-grid { display:grid; grid-template-columns:1fr; gap:10px; }
.ka-category-card { width:100%; min-height:62px; padding:16px 18px; border:1px solid var(--ka-border); background:#fff; color:var(--ka-text); text-align:left; cursor:pointer; font:inherit; transition:border-color .18s ease, background .18s ease, color .18s ease; }
.ka-category-card span { display:block; font-weight:700; line-height:1.3; }
.ka-category-card small { display:block; margin-top:5px; color:var(--ka-muted); font-size:12px; line-height:1.35; }
.ka-category-card:hover { border-color:#8f8980; }
.ka-category-card.is-active { background:var(--ka-accent); border-color:var(--ka-accent); color:#fff; }
.ka-category-card.is-active small { color:rgba(255,255,255,.75); }
.ka-input { width:100%; max-width:100%; min-height:50px; padding:12px 14px; border:1px solid var(--ka-border); background:#fff; color:var(--ka-text); font:inherit; line-height:1.35; }
.ka-input:focus { outline:2px solid var(--ka-text); outline-offset:2px; }
.ka-course-list { display:grid; gap:14px; margin:20px 0 30px; scroll-margin-top:24px; }
.ka-course-card { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,auto); gap:24px; padding:24px; align-items:end; }
.ka-course-card__content { min-width:0; }
.ka-course-card__date { display:inline-block; max-width:100%; padding:6px 9px; background:var(--ka-soft); font-size:12px; line-height:1.35; text-transform:uppercase; letter-spacing:.06em; color:var(--ka-muted); }
.ka-course-card h3 { margin:11px 0 8px; font-size:clamp(21px,3vw,25px); line-height:1.2; letter-spacing:-.015em; }
.ka-course-card p { margin:0 0 16px; color:var(--ka-muted); line-height:1.6; }
.ka-course-card__meta { display:flex; flex-wrap:wrap; align-items:center; gap:9px 16px; font-size:14px; line-height:1.45; }
.ka-course-card__meta .ka-places { font-weight:650; }
.ka-course-select, .ka-submit { border:0; background:var(--ka-accent); color:#fff; min-height:50px; padding:13px 20px; font:inherit; font-weight:700; line-height:1.3; cursor:pointer; }
.ka-course-select { width:100%; max-width:240px; }
.ka-course-select:hover, .ka-submit:hover { opacity:.9; }
.ka-course-select:disabled { cursor:not-allowed; opacity:.4; }
.ka-course-card.is-sold-out { opacity:.62; }
.ka-booking__form { padding:clamp(20px,4vw,36px); scroll-margin-top:24px; }
.ka-selected-course { display:grid; gap:6px; margin:calc(clamp(20px,4vw,36px) * -1) calc(clamp(20px,4vw,36px) * -1) 30px; padding:22px clamp(20px,4vw,36px); background:var(--ka-text); color:#fff; }
.ka-selected-course span { font-size:11px; line-height:1.4; text-transform:uppercase; letter-spacing:.12em; opacity:.7; }
.ka-selected-course strong { font-size:clamp(19px,3vw,23px); line-height:1.3; }
.ka-selected-course small { color:rgba(255,255,255,.72); line-height:1.45; }
.ka-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.ka-span-2 { grid-column:1/-1; }
.ka-price-box { align-self:end; min-height:50px; display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:10px 16px; padding:11px 15px; background:var(--ka-soft); }
.ka-price-box strong { font-size:clamp(19px,3vw,22px); line-height:1.25; }
.ka-consent label { display:flex; gap:10px; align-items:flex-start; font-weight:400; line-height:1.5; }
.ka-consent input { flex:0 0 auto; margin-top:4px; }
.ka-submit { width:100%; margin-top:26px; }
.ka-booking__hint { margin:13px 0 0; color:var(--ka-muted); font-size:13px; line-height:1.5; text-align:center; }
.ka-booking__message { margin:0 0 20px; padding:16px 18px; border:1px solid; line-height:1.5; }
.ka-booking__message.is-success { background:#eef8f0; border-color:#83a98b; }
.ka-booking__message.is-error { background:#fff0f0; border-color:#c98686; }
.ka-empty { padding:24px; color:var(--ka-muted); line-height:1.5; }
.ka-booking small { color:var(--ka-muted); }
@media (max-width:720px) {
    .ka-booking { padding:24px 14px; }
    .ka-booking__steps { grid-template-columns:1fr; }
    .ka-booking__steps span { padding:11px 12px; }
    .ka-course-card { grid-template-columns:1fr; gap:18px; padding:20px; align-items:stretch; }
    .ka-course-select { max-width:none; }
    .ka-form-grid { grid-template-columns:1fr; }
    .ka-span-2 { grid-column:auto; }
}
@media (max-width:420px) {
    .ka-booking { padding:20px 10px; }
    .ka-booking__panel, .ka-booking__form, .ka-course-card { padding-left:16px; padding-right:16px; }
    .ka-selected-course { margin-left:-16px; margin-right:-16px; padding-left:16px; padding-right:16px; }
    .ka-category-card { padding:14px; }
}


/* Version 1.0.3: Theme/Divi compatibility overrides */
.ka-booking,
.ka-booking *,
.ka-booking *::before,
.ka-booking *::after {
    border-radius: 0 !important;
}

.ka-booking .ka-category-grid {
    display: flex !important;
    flex-direction: column !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    width: 100% !important;
    gap: 10px !important;
}

.ka-booking .ka-category-card,
.ka-booking button.ka-category-card {
    display: block !important;
    float: none !important;
    position: relative !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    border-radius: 0 !important;
    white-space: normal !important;
}

.ka-booking input,
.ka-booking select,
.ka-booking textarea,
.ka-booking button,
.ka-booking .ka-course-card,
.ka-booking .ka-booking__panel,
.ka-booking .ka-booking__form,
.ka-booking .ka-booking__message,
.ka-booking .ka-price-box,
.ka-booking .ka-selected-course,
.ka-booking .ka-booking__steps {
    border-radius: 0 !important;
}

/* Version 1.0.4: horizontal step navigation */
.ka-booking__viewport {
    width: 100%;
    overflow: hidden;
}

.ka-booking__track {
    display: flex;
    width: 100%;
    align-items: flex-start;
    transition: transform .32s ease;
    will-change: transform;
}

.ka-booking__slide {
    flex: 0 0 100%;
    width: 100%;
    padding: 0 1px;
}

.ka-booking__slide .ka-booking__panel,
.ka-booking__slide .ka-course-list,
.ka-booking__slide .ka-booking__form {
    margin-top: 0;
}

.ka-back {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    margin: 0 0 16px !important;
    padding: 10px 18px !important;
    border: 1px solid var(--ka-border) !important;
    background: #fff !important;
    color: var(--ka-text) !important;
    font: inherit !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    cursor: pointer;
    border-radius: 0 !important;
}

.ka-back:hover {
    border-color: var(--ka-text) !important;
}

@media (prefers-reduced-motion: reduce) {
    .ka-booking__track { transition: none; }
}
