/* Scope every rule: disabled/unknown booking models retain the native interface. */
.ca-layout {--ca-purple:#8544a8;--ca-border:#d8d4dc;--ca-ink:#29252d;--ca-muted:#625c68;}
.ca-layout #content {color:var(--ca-ink);}
.ca-layout #content h1 {font-size:28px;line-height:1.2;font-weight:600;margin-bottom:12px;overflow-wrap:anywhere;}
.ca-layout .ca-category {font-size:13px;color:var(--ca-muted);margin:0 0 6px;}
.ca-event-meta {display:flex;flex-direction:column-reverse;gap:6px;margin:0 0 16px;}
.ca-event-meta .info-row {margin:0;display:flex;gap:10px;align-items:flex-start;padding:0;}
.ca-event-meta .info-row-icon {position:static;float:none;flex:0 0 18px;width:18px;height:auto;line-height:1.5;font-size:17px;}
.ca-event-meta .info-row p {margin:0;padding:0;}
.ca-event-meta .info-row a {font-size:14px;}
.ca-category-note {font-size:15px;color:var(--ca-muted);line-height:1.5;padding:8px 0;}
.ca-layout #content h2,.ca-layout .ca-booking legend {font-size:21px;font-weight:600;line-height:1.3;}
.ca-layout .subevent-head[hidden],.ca-layout [hidden] {display:none!important;}
.ca-booking {margin:24px 0;max-width:850px;}
.ca-booking fieldset {border:0;margin:0 0 20px;padding:0;min-width:0;}
.ca-booking legend {border:0;margin-bottom:14px;}
.ca-kind {display:flex;flex-wrap:wrap;gap:12px;}
.ca-kind legend {width:100%;}
.ca-kind-card,.ca-card {display:flex;align-items:flex-start;gap:12px;border:1px solid var(--ca-border);border-radius:10px;background:#fff;cursor:pointer;padding:16px;min-height:48px;margin:0;font-weight:400;}
.ca-kind-card {flex:1;min-width:200px;}
.ca-card {width:100%;text-align:left;color:inherit;font:inherit;}
.ca-card[aria-pressed=true] {border:2px solid var(--ca-purple);padding:15px;background:#faf6fc;}
.ca-card-marker {border:1px solid #aaa;border-radius:50%;width:20px;height:20px;flex:0 0 20px;margin-top:2px;}
.ca-card[aria-pressed=true] .ca-card-marker {border-color:var(--ca-purple);background:var(--ca-purple);box-shadow:inset 0 0 0 4px #fff;}
.ca-card:focus-visible {outline:3px solid #402057;outline-offset:3px;}
.ca-card:disabled {background:#f4f3f5;cursor:not-allowed;}
.ca-additional {display:block;border:0;background:none;color:var(--ca-purple);padding:8px 0;min-height:44px;text-decoration:underline;font-size:14px;}
.ca-counter {display:flex;align-items:center;gap:12px;margin:8px 0;}
.ca-counter button {min-width:44px;min-height:44px;border:1px solid var(--ca-border);border-radius:6px;background:#fff;color:var(--ca-ink);font-size:22px;}
.ca-count {min-width:28px;text-align:center;font-size:17px;}
.ca-options {display:grid;gap:12px;}
.ca-card:has(input:checked),.ca-kind-card:has(input:checked) {border:2px solid var(--ca-purple);padding:15px;background:#faf6fc;}
.ca-card:focus-within,.ca-kind-card:focus-within,.ca-booking summary:focus-visible {outline:3px solid #402057;outline-offset:3px;}
.ca-card:has(input:disabled) {background:#f4f3f5;cursor:not-allowed;}
.ca-booking input[type=radio] {accent-color:var(--ca-purple);width:22px;height:22px;flex:0 0 22px;margin:2px 0 0;}
.ca-card-body {min-width:0;display:grid;grid-template-columns:1fr auto;gap:5px 14px;width:100%;}
.ca-card-title {font-size:17px;font-weight:600;overflow-wrap:anywhere;}
.ca-price {font-size:18px;font-weight:600;white-space:nowrap;}
.ca-description,.ca-notice,.ca-unit {grid-column:1/-1;font-size:12px;line-height:1.45;}
.ca-description p:last-child {margin-bottom:0;}
.ca-notice {border-left:3px solid var(--ca-purple);padding-left:9px;}
.ca-unit,.ca-price-note {color:var(--ca-muted);}
.ca-tax {grid-column:1/-1;font-size:14px;color:var(--ca-muted);}
.ca-card-category {grid-column:1/-1;font-size:13px;color:var(--ca-muted);}
.ca-advanced {margin:18px 0;border-top:1px solid var(--ca-border);padding-top:12px;}
.ca-booking summary,.ca-secondary summary {cursor:pointer;min-height:44px;padding:10px 0;font-weight:500;}
.ca-native {padding-top:12px;}
.ca-native .item-category {margin-top:12px;}
.ca-native .variations-collapsed {display:block!important;}
.ca-native [data-toggle=variations] {display:none;}
.ca-native .input-group input {min-width:48px;font-size:16px;}
.ca-native .input-group button {min-width:44px;min-height:44px;}
.ca-summary {border-top:1px solid var(--ca-border);margin-top:20px;padding-top:18px;}
.ca-summary h2 {margin:0 0 10px;}
.ca-summary-items {list-style:none;padding:0;line-height:1.6;}
.ca-total {font-size:21px;font-weight:600;margin:14px 0 6px;}
.ca-price-note {font-size:14px;line-height:1.45;}
.ca-booking-notes {font-size:13px;margin-top:16px;}
.ca-booking-notes .ca-category-note {font-size:13px;}
.ca-primary {padding:0!important;margin:18px 0 0;}
.ca-primary .row {margin:0;}
.ca-primary .col-md-4 {float:none;width:100%;margin:0;padding:0;}
.ca-primary #btn-add-to-cart {width:100%;min-height:48px;font-size:18px;background:var(--ca-purple);border-color:var(--ca-purple);white-space:normal;}
.ca-primary #btn-add-to-cart[aria-disabled=true] {opacity:.7;cursor:wait;}
.ca-status {margin-top:8px;}
.ca-error {color:#8c1826;border-left:3px solid #a72134;padding:10px;}
.ca-fallback {padding:8px 0;border:0;background:none;color:var(--ca-muted);text-decoration:underline;font-size:14px;min-height:44px;}
.ca-secondary {font-size:15px;margin-top:18px;}
.ca-date-switch {border:0;box-shadow:none;}
.ca-date-switch>.panel-heading {padding:8px 0;background:transparent;border:0;}
.ca-layout .ca-date-switch h2 {font-size:15px!important;font-weight:400!important;}
.ca-sticky {display:none;}
@media(max-width:767px) {
 .ca-layout #content {padding-left:16px;padding-right:16px;}
 .ca-layout #content h1 {font-size:24px;}
 .ca-layout #content h2,.ca-layout .ca-booking legend {font-size:19px;}
 .ca-layout #content {font-size:16px;line-height:1.5;}
 .ca-kind {display:block;}.ca-kind-card {margin-bottom:10px;}
 .ca-card-body {grid-template-columns:minmax(0,1fr) auto;gap:5px 8px;}
 .ca-card-title {font-size:16px;}.ca-price {font-size:16px;}
 .ca-description,.ca-notice,.ca-unit {font-size:12px;}
 .ca-sticky:not([hidden]) {position:fixed;display:flex;gap:12px;align-items:center;justify-content:space-between;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--ca-border);padding:12px 16px calc(12px + env(safe-area-inset-bottom));z-index:900;box-shadow:0 -3px 14px #0001;}
 .ca-sticky .btn {min-height:48px;white-space:normal;background:var(--ca-purple);}
 body.ca-layout:has(.ca-sticky:not([hidden])) {padding-bottom:calc(100px + env(safe-area-inset-bottom));}
}
@media(prefers-reduced-motion:reduce) {.ca-layout * {scroll-behavior:auto!important;}}
