.kba-booking { --kba-border: #d9d4cc; --kba-accent: var(--kb-accent, #8e2f22); font-family: inherit; }
.kba-form { display: grid; gap: 1.75rem; }
.kba-form fieldset { margin: 0; padding: 1.4rem 0 0; border: 0; border-top: 1px solid var(--kba-border); min-width: 0; }
.kba-form legend { padding: 0 .7rem 0 0; font: inherit; font-weight: 700; font-size: 1.2rem; }
.kba-form legend > span { display: inline-grid; place-items: center; width: 1.75rem; height: 1.75rem; margin-right: .45rem; border-radius: 50%; background: var(--kba-accent); color: #fff; font-size: .85rem; }
.kba-form label { display: block; margin: 0 0 1rem; font-weight: 600; font-size: 1rem; }
.kba-form input:not([type=checkbox]):not([type=hidden]), .kba-form select, .kba-form textarea { display: block; box-sizing: border-box; width: 100%; max-width: 100%; margin-top: .4rem; padding: .7rem .8rem; border: 1px solid #aaa39a; border-radius: 3px; color: #25231f; background: #fff; font: inherit; font-weight: 400; line-height: 1.5; }
.kba-form select { text-overflow: ellipsis; }
.kba-form textarea { resize: vertical; }
.kba-form :focus-visible, .kba-success:focus, #kba-feedback:focus { outline: 3px solid var(--kba-accent); outline-offset: 3px; }
.kba-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 0 1rem; }
.kba-help { display: block; color: #5f5a52; font-size: .88rem; font-weight: 400; line-height: 1.5; margin: .5rem 0; }
.kba-issues { display: grid; gap: .65rem; margin-top: 1rem; }
.kba-form .kba-issue { display: flex; align-items: flex-start; gap: .8rem; margin: 0; padding: .85rem 1rem; border: 1px solid var(--kba-border); border-radius: 3px; cursor: pointer; font-weight: 400; }
.kba-form .kba-issue:has(input:checked) { border-color: var(--kba-accent); background: #f6f2ec; }
.kba-form .kba-issue input { width: 1.15rem; height: 1.15rem; flex: 0 0 auto; margin: .2rem 0 0; accent-color: var(--kba-accent); }
.kba-issue small { display: block; color: #625c54; margin-top: .2rem; }
.kba-price { background: #f3eee5; border-left: 4px solid var(--kba-accent); padding: 1.2rem 1.4rem; }
.kba-price-label { margin: 0 0 .4rem; font-size: .8rem; text-transform: uppercase; letter-spacing: .07em; }
.kba-price > strong { display: block; font-size: 1.6rem; line-height: 1.3; }
.kba-price [data-breakdown] { margin: .45rem 0; }
.kba-counter { font-variant-numeric: tabular-nums; font-size: .9rem; margin: -.5rem 0 .7rem; }
.kba-text-warning, .kba-notice { padding: 1rem; border-left: 4px solid #9c6500; background: #fff5dc; color: #513400; line-height: 1.5; }
.kba-error { border-color: #a02d20; background: #fff0ed; color: #752015; margin-bottom: 1.5rem; }
.kba-success { padding: 1.5rem; background: #eff4e9; border-left: 4px solid #456535; }
.kba-billing { border: 1px solid var(--kba-border); padding: 1rem; margin-top: .5rem; }
.kba-billing summary { cursor: pointer; font-weight: 600; }
.kba-billing[open] summary { margin-bottom: 1rem; }
.kba-submit { justify-self: start; cursor: pointer; padding: .85rem 1.4rem; background: var(--kba-accent); border: 0; color: #fff; font: inherit; font-weight: 600; }
.kba-submit:disabled { opacity: .65; cursor: wait; }
.kba-form [hidden] { display: none !important; }
.kba-trap { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
@media (max-width: 640px) { .kba-grid { grid-template-columns: minmax(0,1fr); } .kba-price { padding: 1rem; } .kba-price > strong { font-size: 1.35rem; } .kba-submit { width: 100%; } }
