.brc-actions { flex-wrap: wrap; }
.brc-actions .vvt-op-book-now { background: #1295db; border-color: #1295db; color: #fff; margin: 0; line-height: inherit; text-transform: none; letter-spacing: normal; }
.brc-actions .vvt-op-book-now:hover { background: #0f7fba; border-color: #0f7fba; color: #fff; }
.brc-actions a.ivx-op-booking-btn[href^="tel:"] { background: #ffa901; border-color: #ffa901; color: #3b2b00; }
.brc-actions a.ivx-op-booking-btn[href^="tel:"]:hover { background: #e89a00; border-color: #e89a00; color: #3b2b00; }
.vvt-booking { position: fixed; inset: 0; margin: auto; box-sizing: border-box; width: min(620px, calc(100% - 24px)); max-height: calc(100dvh - 32px); overflow-y: auto; padding: 0; border: 0; border-radius: 16px; color: #23374a; background: #fff; box-shadow: 0 20px 80px #0004; }
.vvt-booking::backdrop { background: #102c45a6; }
body.vvt-booking-open { overflow: hidden; }
.vvt-booking form { margin: 0; padding: 28px; }
.vvt-booking h2 { padding-right: 30px; margin: 10px 0; font-size: 24px; }
.vvt-booking p { font-size: 14px; }
.vvt-booking button { margin: 0; text-transform: none; letter-spacing: normal; border-radius: 8px; }
.vvt-booking .vvt-booking-close { position: absolute; top: 12px; right: 12px; min-width: 36px; padding: 0; font-size: 26px; line-height: 36px; border: 0; background: transparent; color: #536575; }
.vvt-booking-steps { color: #1295db; font-size: 13px; font-weight: 600; }
.vvt-booking-summary { display: grid; gap: 6px; padding: 16px; margin: 16px 0; border: 1px solid #dce6ed; background: #f6f9fc; border-radius: 10px; overflow-wrap: anywhere; }
.vvt-booking-date-wrap { position: relative; }
.vvt-booking-calendar { position: absolute; bottom: calc(100% + 4px); left: 0; z-index: 2; width: min(320px, 100%); padding: 12px; box-sizing: border-box; border: 1px solid #dce6ed; border-radius: 12px; background: #fff; box-shadow: 0 8px 28px #17395724; }
.vvt-booking-calendar .ui-datepicker { width: 100%; padding: 0; box-sizing: border-box; border: 0; background: #fff; color: #23374a; font-family: inherit; font-size: 13px; }
.vvt-booking-calendar .ui-datepicker-header { border: 0; background: #fff; color: #173957; }
.vvt-booking-calendar .ui-datepicker table { margin: 8px 0 0; border: 0; }
.vvt-booking-calendar .ui-datepicker th { padding: 6px 0; border: 0; text-align: center; color: #536575; }
.vvt-booking-calendar .ui-datepicker td { padding: 2px; border: 0; }
.vvt-booking-calendar .ui-datepicker td a, .vvt-booking-calendar .ui-datepicker td span { display: flex; align-items: center; justify-content: center; height: 28px; padding: 0; border: 0; border-radius: 6px; background: #fff; color: #23374a; text-align: center; }
.vvt-booking-calendar .ui-datepicker td a:hover { background: #e7f4fc; color: #1295db; }
.vvt-booking-calendar .ui-datepicker td .ui-state-highlight { background: #e7f4fc; color: #1295db; }
.vvt-booking-calendar .ui-datepicker td .ui-state-active { background: #1295db; color: #fff; }
.vvt-booking-calendar .ui-datepicker .ui-state-disabled { opacity: .35; }
.vvt-booking label { display: block; margin: 12px 0; font-weight: 600; font-size: 14px; }
.vvt-booking input[name], .vvt-booking select[name] { box-sizing: border-box; width: 100%; height: 42px; margin: 6px 0 0; padding: 0 12px; min-height: 42px; border: 1px solid #cce1ec; border-radius: 6px; background-color: #fff; color: #23374a; box-shadow: none; font-size: 14px; }
.vvt-booking input[name]:focus, .vvt-booking select[name]:focus { background-color: #fff; border-color: #1295db; outline: 2px solid #1295db26; outline-offset: 1px; box-shadow: none; }
.vvt-booking-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
.vvt-booking-total { display: flex; justify-content: space-between; gap: 12px; margin: 16px 0; padding-top: 16px; border-top: 1px solid #e3eaf0; }
.vvt-booking-total strong { color: #1295db; }
.vvt-booking-price-row { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: 16px; padding-top: 16px; border-top: 1px solid #e3eaf0; }
.vvt-booking-price-row span { display: block; font-size: 14px; }
.vvt-booking-price-row strong { display: block; margin-top: 4px; color: #1295db; font-size: 17px; }
.vvt-booking .vvt-booking-quantity { display: flex; align-items: center; gap: 6px; }
.vvt-booking .vvt-booking-quantity button { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; flex: 0 0 32px; width: 32px; min-width: 32px; height: 32px; min-height: 32px; max-height: 32px; padding: 0; border: 1px solid #b5d4f4; border-radius: 8px; background: #fff; color: #1295db; font-size: 18px; line-height: 1; box-shadow: none; }
.vvt-booking .vvt-booking-quantity button:hover:not(:disabled) { background: #e7f4fc; border-color: #1295db; }
.vvt-booking .vvt-booking-quantity input { appearance: textfield; box-sizing: border-box; width: 36px; min-height: 32px; height: 32px; margin: 0; padding: 0; border: 0; background: transparent; color: #23374a; text-align: center; font-size: 16px; font-weight: 600; box-shadow: none; }
.vvt-booking-quantity input::-webkit-inner-spin-button, .vvt-booking-quantity input::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
.vvt-booking-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 20px; }
.vvt-booking-actions button { padding: 0 20px; }
.vvt-booking-primary { background: #1295db; border: 1px solid #1295db; color: #fff; }
.vvt-booking-primary:hover { background: #0f7fba; border-color: #0f7fba; color: #fff; }
.vvt-booking-message { color: #b42318; background: #fff2f0; padding: 12px; border-radius: 8px; }
.vvt-booking-message.is-success { color: #176443; background: #eaf7ef; }
.vvt-booking [hidden] { display: none !important; }
.vvt-booking .vvt-booking-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 480px) {
    .vvt-booking form { padding: 20px; }
    .vvt-booking-grid { grid-template-columns: 1fr; }
    .vvt-booking h2 { font-size: 21px; }
    .brc-actions .ivx-op-booking-btn { padding: 6px 10px; }
}
