.brp-booking { max-width: 72rem; margin-inline: auto; overflow-wrap: anywhere; color: inherit; font: inherit; }
.brp-booking *, .brp-booking *::before, .brp-booking *::after { box-sizing: border-box; }
.brp-booking [hidden] { display: none !important; }
.brp-booking fieldset { border: 1px solid currentColor; border-radius: .4rem; padding: 1rem; margin: 0 0 1rem; min-width: 0; }
.brp-booking legend { padding-inline: .35rem; font-weight: 600; }
.brp-booking label { display: block; margin-block: 1rem .35rem; font-weight: 600; }
.brp-booking input, .brp-booking select, .brp-booking button { font: inherit; min-height: 48px; max-width: 100%; padding: .65rem; border: 1px solid currentColor; border-radius: .25rem; }
.brp-booking input, .brp-booking select { width: 100%; min-width: 0; }
.brp-booking button { color: var(--brp-button-text, inherit); background: var(--brp-button-bg, transparent); border-radius: var(--brp-radius, .25rem); cursor: pointer; overflow-wrap: anywhere; }
.brp-booking button:disabled { opacity: .55; cursor: wait; }
.brp-booking :focus-visible { outline: 3px solid var(--brp-accent, currentColor); outline-offset: 3px; }
.brp-booking .brp-submit, .brp-booking .brp-restart { width: 100%; font-weight: 600; }
.brp-booking .brp-status, .brp-booking .brp-summary, .brp-booking .brp-package { margin-block: 1rem; }
.brp-booking .brp-status:empty, .brp-booking .brp-summary:empty, .brp-booking .brp-package:empty { display: none; }
.brp-booking .brp-result { border: 1px solid currentColor; border-radius: .4rem; padding: 1rem; }
.brp-booking p { margin-block: .65rem; }
.brp-booking .brp-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); align-items: start; gap: 1.25rem; margin-block: 1.5rem; }
.brp-booking[data-filtered="true"] .brp-grid { max-width: 26rem; margin-inline: auto; }
.brp-booking .brp-card { min-width: 0; border: 2px solid var(--brp-card-border, GrayText); border-radius: var(--brp-radius, .75rem); overflow: hidden; display: flex; flex-direction: column; background: var(--brp-card-bg, Canvas); color: var(--brp-card-text, CanvasText); }
.brp-booking .brp-card.brp-selected { border-color: var(--brp-selected-border, var(--brp-accent, CanvasText)); box-shadow: 0 0 0 2px var(--brp-selected-border, var(--brp-accent, CanvasText)); }
.brp-booking .brp-card-image { width: 100%; aspect-ratio: 4 / 3; background: ButtonFace; display: grid; place-items: center; overflow: hidden; }
.brp-booking .brp-card-image img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; object-position: center; }
.brp-booking .brp-image-fallback { padding: 1.5rem; text-align: center; color: var(--brp-card-text, GrayText); }
.brp-booking .brp-card-content { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; gap: .65rem; min-width: 0; }
.brp-booking .brp-card h3 { font-size: 1.35rem; line-height: 1.3; color: inherit; margin: 0; padding: 0; }
.brp-booking .brp-card p { margin: 0; }
.brp-booking .brp-card .brp-promo { align-self: flex-start; border-radius: .25rem; padding: .25rem .6rem; background: ButtonFace; color: var(--brp-card-text, ButtonText); font-size: .9rem; font-weight: 700; }
.brp-booking .brp-description { line-height: 1.5; }
.brp-booking .brp-description p + p { margin-top: .5rem; }
.brp-booking .brp-description ul, .brp-booking .brp-description ol { padding-inline-start: 1.25rem; margin: .5rem 0; }
.brp-booking .brp-card .brp-card-price { font-size: 1.35rem; font-weight: 700; padding-top: .5rem; }
.brp-booking .brp-price-unit { font-size: .85rem; font-weight: 400; }
.brp-booking .screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.brp-booking .brp-select { width: 100%; background: var(--brp-button-bg, CanvasText); color: var(--brp-button-text, Canvas); border-color: var(--brp-button-bg, CanvasText); font-weight: 700; }
.brp-booking .brp-select:focus-visible { outline-color: var(--brp-accent, CanvasText); }
.brp-booking .brp-details { max-width: 42rem; margin: 2rem auto 0; }
.brp-booking .brp-details h2 { margin-top: 1.5rem; font-size: 1.4rem; }
.brp-booking .brp-logo { display: block; max-width: min(100%, 300px); width: auto; height: auto; margin-block: 0 1rem; }

.brp-booking .brp-time-disclaimer { margin: 1.25rem 0; padding: 1.25rem; border: 2px solid var(--brp-accent, CanvasText); border-inline-start-width: .5rem; border-radius: var(--brp-radius, .5rem); background: Canvas; color: CanvasText; font-size: 1.1rem; }
.brp-booking .brp-time-disclaimer h3 { margin-top: 0; color: CanvasText; }
.brp-booking .brp-time-disclaimer a { color: LinkText; text-decoration: underline; }
.brp-booking .brp-location { margin: 1.5rem 0; min-width: 0; }
.brp-booking .brp-location-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); gap: 1rem; }
.brp-booking .brp-location-field { min-width: 0; }
.brp-booking .brp-location-field input, .brp-booking .brp-location-field select, .brp-booking .brp-location-field textarea { box-sizing: border-box; width: 100%; max-width: 100%; font: inherit; padding: .6rem; }
.brp-booking [data-location-field="notes"] { grid-column: 1 / -1; }
.brp-booking .brp-policy { margin: 1.5rem 0; }
.brp-booking .brp-policy-content { max-height: 22rem; overflow: auto; border: 1px solid GrayText; padding: 1rem; background: Canvas; color: CanvasText; overflow-wrap: anywhere; }
.brp-booking .brp-policy-content a { color: LinkText; text-decoration: underline; }
.brp-booking .brp-policy-content h2, .brp-booking .brp-policy-content h3, .brp-booking .brp-policy-content h4 { color: inherit; }
.brp-booking .brp-receipt p, .brp-booking .brp-summary p { white-space: pre-line; overflow-wrap: anywhere; }
