/* ===================================================================
   Bokun Booking Calendar Widget – Full Custom Booking Flow
   =================================================================== */

/* ── Trigger ── */
.bokun-bcw-trigger { text-align: center; }
.bokun-bcw-btn {
    display: inline-flex; align-items: center; gap: 8px;
    font-weight: 600; cursor: pointer; border: none;
    transition: background-color .2s, transform .15s; line-height: 1.4;
}
.bokun-bcw-btn:hover { transform: translateY(-1px); }
.bokun-bcw-btn:active { transform: translateY(0); }
.bokun-bcw-btn-icon { display: inline-flex; font-size: 1.1em; }
.bokun-bcw-price { margin: 8px 0 0; font-size: 14px; color: #6b7280; }

/* ── Modal ── */
.bokun-bcw-modal { position: fixed; inset: 0; z-index: 999999; display: flex; align-items: center; justify-content: center; }
.bokun-bcw-modal-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.55); }
.bokun-bcw-modal-dialog {
    position: relative; z-index: 1;
    width: 94vw !important; max-width: 1000px !important; max-height: 92vh;
    flex: 0 0 auto;
    background: #fff; border-radius: 12px; box-shadow: 0 12px 48px rgba(0,0,0,.25);
    display: flex; flex-direction: column; overflow: hidden;
}
.bokun-bcw-modal-header {
    display: flex; align-items: center; justify-content: space-between;
    padding: 16px 20px; border-bottom: 1px solid #e5e7eb; flex-shrink: 0;
}
.bokun-bcw-modal-title { margin: 0; font-size: 18px; font-weight: 600; color: #111827; }
.bokun-bcw-modal-close {
    background: none; border: none; font-size: 26px; color: #6b7280;
    cursor: pointer; padding: 0 4px; transition: color .15s;
}
.bokun-bcw-modal-close:hover { color: #111827; }
.bokun-bcw-modal-body { flex: 1 1 auto; overflow-y: auto; padding: 0; }
body.bokun-bcw-modal-open,
html:has(body.bokun-bcw-modal-open) { overflow: hidden; }

/* ── Form container ── */
.bokun-bcw-form { padding: 20px; }

/* ── Two-column layout: main content + sticky sidebar ── */
.bokun-bcw-form-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 24px;
    align-items: start;
}
.bokun-bcw-form-main { min-width: 0; }
.bokun-bcw-sidebar {
    position: sticky;
    top: 0;
    align-self: start;
    background: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 16px;
    font-size: 13px;
    color: #374151;
}
.bokun-bcw-sidebar-title {
    margin: 0 0 12px;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}
.bokun-bcw-sb-product {
    font-weight: 600;
    color: #111827;
    margin-bottom: 10px;
    line-height: 1.3;
}
.bokun-bcw-sb-row {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 4px 0;
    color: #4b5563;
}
.bokun-bcw-sb-row span:last-child {
    text-align: right;
    color: #111827;
    font-weight: 500;
}
.bokun-bcw-sb-sep {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px dashed #e5e7eb;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    color: #6b7280;
    text-transform: uppercase;
}
.bokun-bcw-sidebar-promo {
    margin-top: 14px;
    padding-top: 14px;
    border-top: 1px solid #e5e7eb;
}
.bokun-bcw-promo-label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #374151;
    margin-bottom: 6px;
}
.bokun-bcw-promo-row {
    display: flex;
    gap: 6px;
}
.bokun-bcw-promo-input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px 10px;
    border: 1px solid #d1d5db;
    border-radius: 6px;
    font-size: 13px;
}
.bokun-bcw-promo-apply {
    padding: 8px 12px;
    background: #6C2888;
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}
.bokun-bcw-promo-apply:hover { background: #5a2273; }
.bokun-bcw-promo-msg {
    margin-top: 6px;
    font-size: 12px;
    color: #6b7280;
    min-height: 16px;
}
.bokun-bcw-sidebar-bottom {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e5e7eb;
}
.bokun-bcw-sidebar-fees {
    margin-top: 0;
    padding: 0;
    border: none;
}
/* Each fee line sits right above the total, styled as a secondary charge */
.bokun-bcw-sb-fee-row {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 12px;
    padding: 3px 0;
    color: #6b7280;
}
.bokun-bcw-sb-fee-row span:last-child { font-weight: 400; color: #6b7280; }

.bokun-bcw-sidebar-total {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 2px solid #111827;
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    font-weight: 600;
    color: #111827;
}
.bokun-bcw-sidebar-total strong { font-size: 17px; color: #111827; }
/* When there are no fees, sidebar-bottom border acts as the separator */
.bokun-bcw-sidebar-fees[style*="display:none"] + .bokun-bcw-sidebar-total {
    border-top: 2px solid #111827;
}

@media (max-width: 768px) {
    .bokun-bcw-form-grid { grid-template-columns: 1fr; }
    .bokun-bcw-sidebar { position: static; order: 2; }
}

/* ── Step indicator ── */
.bokun-bcw-step-indicator {
    display: flex; align-items: center; justify-content: space-between;
    gap: 0; margin-bottom: 30px; flex-wrap: wrap; width: 100%;
}
.bokun-bcw-step {
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    width: 36px; height: 36px; border-radius: 50%;
    border: 2px solid #d1d5db; background: #fff;
    display: flex; align-items: center; justify-content: center;
    font-size: 14px; color: #9ca3af; transition: all .2s; position: relative;
}
.bokun-bcw-step label {
    position: absolute; top: 42px; font-size: 11px; white-space: nowrap;
    color: #9ca3af; pointer-events: none;
}
.bokun-bcw-step.active { border-color: #00BAC6; background: #00BAC6; color: #fff; }
.bokun-bcw-step.active label { color: #00BAC6; font-weight: 600; }
.bokun-bcw-step.completed { border-color: #00BAC6; background: #00BAC6; color: #fff; }
.bokun-bcw-step.completed label { color: #00BAC6; }
.bokun-bcw-step-line { width: 40px; height: 2px; background: #d1d5db; margin: 0 4px; flex-shrink: 0; }

/* ── Panels ── */
.bokun-bcw-panel { margin-top: 24px; }
.bokun-bcw-panel h4 { margin: 0 0 12px; font-size: 15px; font-weight: 600; color: #374151; }

/* ── Calendar ── */
.bokun-bcw-calendar { position: relative; }
.bokun-bcw-cal-header {
    display: flex; align-items: center; justify-content: space-between;
    margin-bottom: 12px;
}
.bokun-bcw-cal-header button {
    background: none; border: 1px solid #d1d5db; border-radius: 6px;
    width: 32px; height: 32px; cursor: pointer; display: flex;
    align-items: center; justify-content: center; color: #374151;
    transition: background .15s;
}
.bokun-bcw-cal-header button:hover { background: #f3f4f6; }
.bokun-bcw-cal-month { font-weight: 600; font-size: 15px; color: #111827; }

.bokun-bcw-cal-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr);
    text-align: center; font-size: 12px; font-weight: 600; color: #9ca3af;
    margin-bottom: 4px;
}

.bokun-bcw-cal-days {
    display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}

.bokun-bcw-cal-day {
    display: flex; align-items: center; justify-content: center;
    height: 38px; border-radius: 8px; font-size: 14px; cursor: default;
    transition: all .15s; user-select: none;
}
.bokun-bcw-cal-day.empty { visibility: hidden; }
.bokun-bcw-cal-day.disabled { color: #d1d5db; }
.bokun-bcw-cal-day.available { cursor: pointer; color: #374151; font-weight: 500; }
.bokun-bcw-cal-day.available:hover { background: #00BAC6; color: #fff; }
.bokun-bcw-cal-day.selected { background: #00BAC6; color: #fff; font-weight: 700; }

.bokun-bcw-cal-loading {
    position: absolute; inset: 0; display: flex; align-items: center;
    justify-content: center; background: rgba(255,255,255,.8); font-size: 20px;
    color: #00BAC6; display: none;
}

/* ── Date Loading ── */
.bokun-bcw-date-loading {
    display: flex; align-items: center; gap: 8px;
    padding: 12px 16px; margin-top: 12px;
    color: #6b7280; font-size: 14px;
    background: #f9fafb; border-radius: 8px; border: 1px solid #e5e7eb;
}
.bokun-bcw-date-loading i { color: #00BAC6; }

/* ── Time Slots ── */
.bokun-bcw-timeslots { margin-top: 16px; }
.bokun-bcw-timeslots-list { display: flex; flex-wrap: wrap; gap: 8px; }
.bokun-bcw-time-slot {
    padding: 8px 16px; border: 2px solid #e5e7eb; border-radius: 8px;
    cursor: pointer; transition: all .15s; display: flex; flex-direction: column;
    align-items: center; min-width: 80px;
}
.bokun-bcw-time-slot:hover { border-color: #00BAC6; }
.bokun-bcw-time-slot.selected { border-color: #00BAC6; background: rgba(0,186,198,.08); }
.bokun-bcw-ts-time { font-weight: 600; font-size: 14px; color: #111827; }
.bokun-bcw-ts-spots { font-size: 11px; color: #9ca3af; }

/* ── Rates ── */
.bokun-bcw-rates { margin-top: 16px; }
.bokun-bcw-rates-list { display: flex; flex-direction: column; gap: 10px; }
.bokun-bcw-rate {
    padding: 14px 16px; border: 2px solid #e5e7eb; border-radius: 10px;
    cursor: pointer; transition: all .15s; background: #fff;
}
.bokun-bcw-rate:hover { border-color: #00BAC6; }
.bokun-bcw-rate.selected { border-color: #00BAC6; background: rgba(0,186,198,.06); }
.bokun-bcw-rate-header {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 12px;
}
.bokun-bcw-rate-title { font-size: 15px; color: #111827; font-weight: 600; }
.bokun-bcw-rate-price { font-weight: 700; font-size: 16px; color: #00BAC6; white-space: nowrap; }
.bokun-bcw-rate-desc { margin: 6px 0 0; font-size: 13px; color: #6b7280; }
.bokun-bcw-rate-details { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e5e7eb; }
.bokun-bcw-rate-pickup, .bokun-bcw-rate-cancel-title {
    display: flex; align-items: center; gap: 8px; font-size: 13px; color: #4b5563;
    margin-bottom: 8px;
}
.bokun-bcw-rate-ico { font-size: 16px; }
.bokun-bcw-rate-cancel ul { margin: 4px 0 0 24px; padding: 0; font-size: 12px; color: #6b7280; }
.bokun-bcw-rate-cancel li { margin-bottom: 2px; }

/* ── Selectables (Day Ceremony / Night Ceremony etc.) ── */
.bokun-bcw-selectables { margin-bottom: 12px; }
.bokun-bcw-selectables-label { font-size: 13px; font-weight: 600; color: #374151; margin: 0 0 8px; }
.bokun-bcw-selectables-group { display: flex; flex-wrap: wrap; gap: 8px; }
.bokun-bcw-selectable-btn {
    padding: 8px 14px; font-size: 13px; font-weight: 500;
    border: 2px solid #d1d5db; border-radius: 8px; background: #fff;
    color: #374151; cursor: pointer; transition: border-color .15s, background .15s;
    text-align: left; line-height: 1.4;
}
.bokun-bcw-selectable-btn:hover { border-color: #00BAC6; }
.bokun-bcw-selectable-btn.selected {
    border-color: #00BAC6; background: rgba(0,186,198,.08); color: #0e7490; font-weight: 600;
}

/* ── Participants ── */
.bokun-bcw-participants { display: flex; flex-direction: column; gap: 12px; }
.bokun-bcw-participant-row {
    display: flex; align-items: center; justify-content: space-between;
    padding: 12px 16px; border: 1px solid #e5e7eb; border-radius: 8px; background: #fafafa;
}
.bokun-bcw-cat-info { display: flex; flex-direction: column; gap: 2px; }
.bokun-bcw-cat-name { font-weight: 600; font-size: 14px; color: #111827; }
.bokun-bcw-cat-age { font-size: 12px; color: #9ca3af; }
.bokun-bcw-cat-price { font-size: 13px; color: #00BAC6; font-weight: 500; }

.bokun-bcw-qty-control { display: flex; align-items: center; gap: 0; }
.bokun-bcw-qty-minus,
.bokun-bcw-qty-plus {
    width: 34px; height: 34px; border: 1px solid #d1d5db; background: #fff;
    font-size: 18px; font-weight: 600; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: background .15s; color: #374151;
}
.bokun-bcw-qty-minus { border-radius: 8px 0 0 8px; }
.bokun-bcw-qty-plus { border-radius: 0 8px 8px 0; }
.bokun-bcw-qty-minus:hover, .bokun-bcw-qty-plus:hover { background: #f3f4f6; }
.bokun-bcw-qty-value {
    width: 40px; height: 34px; display: flex; align-items: center; justify-content: center;
    border-top: 1px solid #d1d5db; border-bottom: 1px solid #d1d5db;
    font-weight: 600; font-size: 15px; color: #111827; background: #fff;
}

/* ── Extras / Questions / Pickup ── */
.bokun-bcw-extras, .bokun-bcw-questions { margin-top: 20px; }
.bokun-bcw-pickup { margin-top: 10px; }

.bokun-bcw-extra-item {
    border: 1px solid #e5e7eb; border-radius: 8px; padding: 12px 14px; margin-bottom: 10px;
}
.bokun-bcw-extra-header {
    display: flex; justify-content: space-between; align-items: flex-start; gap: 8px;
}
.bokun-bcw-extra-title { font-size: 14px; color: #111827; }
.bokun-bcw-extra-price { font-size: 13px; color: #6b7280; white-space: nowrap; }
.bokun-bcw-extra-desc { font-size: 13px; color: #6b7280; margin: 4px 0 8px; white-space: pre-line; line-height: 1.5; }
/* Per-extra passenger checkboxes inside the extras cards (step 3) */
.bokun-bcw-extra-passengers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
/* Additional passenger forms container (step 2) — full-width stacked blocks */
.bokun-bcw-more-passengers { display: flex; flex-direction: column; gap: 4px; margin-top: 8px; }
.bokun-bcw-more-passengers .bokun-bcw-passenger-block { width: 100%; }
.bokun-bcw-extra-check {
    display: flex; align-items: center; gap: 6px; cursor: pointer;
    font-size: 13px; color: #374151;
    border: 1px solid #d1d5db; border-radius: 6px; padding: 6px 10px;
    transition: border-color .15s, background .15s;
}
.bokun-bcw-extra-check:has(input:checked) {
    border-color: #00BAC6; background: #f0fdf4; color: #065f46;
}
.bokun-bcw-extra-check input { accent-color: #00BAC6; }
.bokun-bcw-extra-mandatory { opacity: .75; cursor: default; }
.bokun-bcw-extra-req { font-size: 11px; color: #9ca3af; font-style: normal; }

/* Pickup badge pill ("Incluido en el precio") */
.bokun-bcw-pickup-badge:not(:empty) {
    display: inline-block; padding: 3px 10px; border-radius: 20px;
    background: #f3f4f6; color: #374151; font-size: 12px; font-weight: 500; white-space: nowrap;
}
/* Pickup item inputs inside the extra card */
.bokun-bcw-pickup-item .bokun-bcw-pickup { margin-top: 10px; }
.bokun-bcw-field-label { display: block; font-size: 13px; font-weight: 500; color: #374151; margin-bottom: 4px; }
.bokun-bcw-field-label .req { color: #ef4444; }
.bokun-bcw-pickup-select,
.bokun-bcw-pickup-description {
    width: 100%; padding: 10px 12px; border: 1px solid #d1d5db;
    border-radius: 8px; font-size: 14px; color: #374151; background: #fff;
    box-sizing: border-box; transition: border-color .15s;
}
.bokun-bcw-pickup-select:focus,
.bokun-bcw-pickup-description:focus { border-color: #00BAC6; outline: none; box-shadow: 0 0 0 3px rgba(0,186,198,.1); }

/* ── Fee Breakdown ── */
.bokun-bcw-fee-breakdown { margin-bottom: 16px; }
.bokun-bcw-fee-breakdown-inner {
    border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden;
    font-size: 14px;
}
.bokun-bcw-fee-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 9px 14px; background: #f9fafb;
}
.bokun-bcw-fee-row + .bokun-bcw-fee-row { border-top: 1px solid #e5e7eb; }
.bokun-bcw-fee-row--fee { color: #6b7280; }
.bokun-bcw-fee-row--total {
    background: #fff; font-weight: 600; color: #111827;
    border-top: 2px solid #e5e7eb;
}

/* ── Contact Form ── */
.bokun-bcw-contact-form { display: flex; flex-direction: column; gap: 12px; }
.bokun-bcw-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.bokun-bcw-field { display: flex; flex-direction: column; gap: 4px; }
.bokun-bcw-field label { font-size: 13px; font-weight: 500; color: #374151; }
.bokun-bcw-field .req { color: #ef4444; }
.bokun-bcw-field input,
.bokun-bcw-field textarea,
.bokun-bcw-field select {
    padding: 10px 12px; border: 1px solid #d1d5db; border-radius: 8px;
    font-size: 14px; color: #111827; background: #fff; transition: border-color .15s;
    width: 100%; box-sizing: border-box;
}
.bokun-bcw-field input:focus,
.bokun-bcw-field textarea:focus,
.bokun-bcw-field select:focus { border-color: #00BAC6; outline: none; box-shadow: 0 0 0 3px rgba(0,186,198,.1); }

/* Error state for contact form fields */
.bokun-bcw-field--invalid input,
.bokun-bcw-field--invalid textarea {
    border-color: #ef4444; background-color: #fef2f2;
}
.bokun-bcw-field--invalid input:focus,
.bokun-bcw-field--invalid textarea:focus {
    border-color: #ef4444; box-shadow: 0 0 0 3px rgba(239,68,68,.1);
}
.bokun-bcw-field--invalid::after {
    content: attr(data-error); display: block;
    font-size: 12px; color: #ef4444; margin-top: 2px;
}

/* ── Day options (DATE products: Day/Night Ceremony etc.) ── */
.bokun-bcw-day-options { margin-top: 16px; }
.bokun-bcw-day-options h4 { margin: 0 0 10px; font-size: 15px; color: #111827; }
.bokun-bcw-day-options-list { display: flex; flex-wrap: wrap; gap: 8px; }
.bokun-bcw-day-options-list .bokun-bcw-day-option-btn { flex: 1 1 45%; min-width: 160px; }

/* ── Opening hours (PASS / attraction products, replaces the calendar) ── */
.bokun-bcw-opening-hours { margin-top: 4px; }
.bokun-bcw-opening-hours h4 { margin: 0 0 10px; font-size: 16px; color: #111827; }
.bokun-bcw-oh-list { border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }
.bokun-bcw-oh-row {
    display: flex; justify-content: space-between; align-items: center;
    padding: 10px 16px; font-size: 14px; color: #374151;
}
.bokun-bcw-oh-row + .bokun-bcw-oh-row { border-top: 1px solid #f3f4f6; }
.bokun-bcw-oh-row span:last-child { color: #111827; font-weight: 500; }

/* Help/hint text under a question label */
.bokun-bcw-q-help { font-size: 12px; color: #6b7280; font-style: italic; margin: -2px 0 2px; }

/* Yes/No button group for questions */
.bokun-bcw-yes-no-group {
    display: flex; gap: 12px; margin-top: 8px;
}
.bokun-bcw-yes-no-btn {
    flex: 1; padding: 12px 16px; border: 2px solid #d1d5db;
    background: #fff; border-radius: 8px; font-size: 14px;
    font-weight: 500; color: #374151; cursor: pointer;
    transition: all .2s ease;
}
.bokun-bcw-yes-no-btn:hover {
    border-color: #9ca3af; background: #f9fafb;
}
.bokun-bcw-yes-no-btn.bokun-bcw-yes-no-active {
    border-color: #10b981; background-color: #ecfdf5; color: #059669;
    font-weight: 600;
}

/* ── Summary ── */
.bokun-bcw-summary { border: 1px solid #e5e7eb; border-radius: 10px; overflow: hidden; }
.bokun-bcw-sum-section { padding: 14px 16px; border-bottom: 1px solid #f3f4f6; }
.bokun-bcw-sum-section:last-child { border-bottom: none; }
.bokun-bcw-sum-subtitle { font-size: 12px; font-weight: 600; color: #9ca3af; text-transform: uppercase; margin-bottom: 6px; }
.bokun-bcw-sum-row { display: flex; justify-content: space-between; align-items: center; font-size: 14px; color: #374151; padding: 2px 0; }
.bokun-bcw-sum-total {
    display: flex; justify-content: space-between; padding: 14px 16px;
    background: #f9fafb; font-size: 16px; color: #111827;
}
.bokun-bcw-sum-cancel {
    padding: 12px 16px; border-top: 1px solid #e5e7eb;
    background: #fffbeb;
}
.bokun-bcw-sum-cancel-title {
    font-size: 12px; font-weight: 600; color: #92400e;
    text-transform: uppercase; margin-bottom: 6px;
}
.bokun-bcw-sum-cancel ul {
    margin: 0; padding: 0 0 0 16px;
}
.bokun-bcw-sum-cancel ul li {
    font-size: 13px; color: #78350f; padding: 2px 0;
}

/* ── Stripe Card (legacy, unused) ── */
.bokun-bcw-payment-header {
    display: flex; align-items: center; gap: 8px;
    font-size: 15px; font-weight: 600; color: #374151;
    margin-bottom: 20px;
}
.bokun-bcw-payment-header i { color: #00BAC6; font-size: 14px; }
.bokun-bcw-stripe-card {
    margin-top: 0;
    padding: 15px;
    border: 1px solid #dfddddb3;
    border-radius: 10px;
    box-shadow: 5px 5px 5px #f4f4f4;
}

.bokun-bcw-card-body { display: flex; flex-direction: column; gap: 16px; }

.bokun-bcw-card-field { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.bokun-bcw-card-field label {
    font-size: 11px; font-weight: 600; color: #9ca3af; text-transform: uppercase; letter-spacing: .06em;
}
.bokun-bcw-card-field--full { width: 100%; }
.bokun-bcw-card-row { display: flex; gap: 12px; }

.bokun-bcw-card-input-wrap {
    position: relative;
    padding: 13px 14px;
    border: 1.5px solid #e5e7eb;
    border-radius: 8px;
    background: #f9fafb;
    transition: border-color .15s, background .15s;
}
.bokun-bcw-card-input-wrap.StripeElement--focus { border-color: #00BAC6; background: #fff; box-shadow: 0 0 0 3px rgba(0,186,198,.1); }
.bokun-bcw-card-input-wrap--error { border-color: #ef4444 !important; }

.bokun-bcw-card-icon {
    position: absolute; right: 12px; top: 50%; transform: translateY(-50%);
    color: #9ca3af; font-size: 16px; pointer-events: none;
}
.bokun-bcw-cvc-icon {
    position: absolute; right: 10px; top: 50%; transform: translateY(-50%);
    color: #9ca3af; font-size: 13px; cursor: default;
}

.bokun-bcw-card-secure {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; color: #6b7280;
}
.bokun-bcw-card-secure i { color: #00BAC6; }

.bokun-bcw-card-errors { color: #ef4444; font-size: 13px; min-height: 18px; }
.bokun-bcw-error { color: #ef4444; font-size: 13px; margin-top: 6px; }

/* ── Bokun hosted payment section ── */
.bokun-bcw-payment-section {
    margin-top: 8px;
    background: #fff;
}
.bokun-bcw-payment-section h4 {
    margin: 0 0 14px;
    padding: 0;
    background: none;
    border: none;
    font-size: 14px;
    font-weight: 600;
    color: #374151;
}
.bokun-bcw-payment-loading {
    padding: 32px 16px;
    text-align: center;
    color: #6b7280;
    font-size: 14px;
}
.bokun-bcw-payment-loading i { margin-right: 6px; color: #00BAC6; }
.bokun-bcw-payment-error {
    margin: 16px;
    padding: 12px 14px;
    border: 1px solid #fecaca;
    background: #fef2f2;
    color: #991b1b;
    border-radius: 8px;
    font-size: 13px;
}
.bokun-bcw-payment-iframe {
    width: 100%;
    min-height: 560px;
    border: 0;
    display: block;
}

/* ── Terms ── */
.bokun-bcw-terms { margin-top: 16px; }
.bokun-bcw-terms label {
    display: flex; align-items: flex-start; gap: 8px;
    font-size: 13px; color: #6b7280; cursor: pointer;
}
.bokun-bcw-terms input[type="checkbox"] { margin-top: 5px; accent-color: #00BAC6; }

/* ── Price Bar ── */
.bokun-bcw-price-bar {
    margin-top: 16px; padding: 12px 16px; background: #f9fafb;
    border-radius: 8px; border: 1px solid #e5e7eb;
}
.bokun-bcw-price-total { display: flex; justify-content: space-between; align-items: center; }
.bokun-bcw-total-label { font-size: 14px; color: #6b7280; }
.bokun-bcw-total-amount { font-size: 20px; font-weight: 700; color: #111827; }
.bokun-bcw-price-breakdown { display: flex; flex-direction: column; gap: 2px; margin-top: 4px; }
.bokun-bcw-price-row { font-size: 13px; font-weight: 400; color: #6b7280; display: flex; justify-content: space-between; gap: 8px; }
.bokun-bcw-price-original { text-decoration: line-through; }
.bokun-bcw-price-discount { color: #16a34a; }

/* ── Navigation ── */
.bokun-bcw-nav {
    display: flex; justify-content: space-between; align-items: center;
    margin-top: 16px; gap: 12px;
}
.bokun-bcw-back-btn {
    padding: 10px 20px; border: 1px solid #d1d5db; border-radius: 8px;
    background: #fff; color: #374151; font-size: 14px; font-weight: 500;
    cursor: pointer; display: flex; align-items: center; gap: 6px;
    transition: background .15s;
}
.bokun-bcw-back-btn:hover { background: #f3f4f6; }

.bokun-bcw-next-btn,
.bokun-bcw-submit-btn {
    padding: 10px 24px; border: none; border-radius: 8px;
    color: #fff; font-size: 14px; font-weight: 600;
    cursor: pointer; display: flex; align-items: center; gap: 6px;
    transition: opacity .15s; margin-left: auto;
}
.bokun-bcw-next-btn { background: #00BAC6; }
.bokun-bcw-submit-btn { background: #6C2888; }
.bokun-bcw-next-btn:disabled,
.bokun-bcw-submit-btn:disabled { opacity: .5; cursor: not-allowed; }
.bokun-bcw-next-btn:not(:disabled):hover,
.bokun-bcw-submit-btn:not(:disabled):hover { opacity: .9; }

/* ── Messages ── */
.bokun-bcw-message {
    margin-top: 12px; padding: 10px 14px; border-radius: 8px;
    font-size: 14px; text-align: center;
}
.bokun-bcw-message.success { background: #ecfdf5; color: #065f46; border: 1px solid #a7f3d0; }
.bokun-bcw-message.error { background: #fef2f2; color: #991b1b; border: 1px solid #fecaca; }

/* ── Payment widget ── */
.bokun-bcw-payment-frame {
    position: relative;
    width: 100%;
    min-height: 500px;
}
.bokun-bcw-payment-header {
    display: flex; align-items: center; gap: 12px;
    padding: 12px 16px; background: #f9fafb; border-bottom: 1px solid #e5e7eb;
    font-weight: 600; font-size: 15px; color: #374151;
}
.bokun-bcw-payment-back {
    background: none; border: 1px solid #d1d5db; border-radius: 6px;
    padding: 6px 10px; cursor: pointer; color: #6b7280; font-size: 13px;
}
.bokun-bcw-payment-back:hover { background: #f3f4f6; color: #111827; }
.bokun-bcw-payment-loading {
    position: absolute; inset: 0; top: 48px;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    background: #fff; color: #6b7280; font-size: 15px; z-index: 1;
}
.bokun-bcw-payment-loading i { font-size: 24px; color: #00BAC6; }
.bokun-bcw-payment-iframe {
    width: 100% !important;
    min-height: 600px;
    border: none;
}
.bokun-bcw-payment-newtab {
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 12px; padding: 40px 20px; text-align: center; color: #6b7280;
}
.bokun-bcw-payment-newtab i { font-size: 28px; color: #00BAC6; }
.bokun-bcw-payment-newtab p { margin: 0; font-size: 15px; }
.bokun-bcw-payment-newtab .bokun-bcw-btn-primary {
    display: inline-block; padding: 10px 24px; background: var(--bokun-bcw-accent, #00BAC6);
    color: #fff; border-radius: 8px; text-decoration: none; font-weight: 600; font-size: 14px;
}
.bokun-bcw-payment-newtab .bokun-bcw-btn-primary:hover { opacity: .9; }

/* ── Stripe fallback inline card form ── */
.bokun-bcw-stripe-fallback {
    margin-top: 24px; padding: 20px;
    background: #f9fafb; border: 1px solid #e5e7eb; border-radius: 10px;
}
.bokun-bcw-stripe-fallback h4 {
    margin: 0 0 8px 0; font-size: 16px; color: #111827; font-weight: 600;
}
.bokun-bcw-stripe-info {
    display: flex; align-items: center; gap: 8px;
    margin: 0 0 16px 0; font-size: 13px; color: #6b7280;
}
.bokun-bcw-stripe-info i { color: #00BAC6; }
.bokun-bcw-card-input {
    padding: 14px 16px; background: #fff;
    border: 1px solid #d1d5db; border-radius: 8px;
    margin-bottom: 8px;
}
.bokun-bcw-card-errors {
    color: #dc2626; font-size: 13px; min-height: 18px; margin-bottom: 12px;
}
.bokun-bcw-btn-pay {
    width: 100%; padding: 14px 20px;
    background: var(--bokun-bcw-accent, #00BAC6); color: #fff;
    border: none; border-radius: 8px;
    font-size: 16px; font-weight: 600; cursor: pointer;
    display: flex; align-items: center; justify-content: center; gap: 10px;
    transition: opacity .2s;
}
.bokun-bcw-btn-pay:hover:not(:disabled) { opacity: .9; }
.bokun-bcw-btn-pay:disabled { opacity: .6; cursor: not-allowed; }

/* ── Confirmation ── */
.bokun-bcw-confirmation { text-align: center; padding: 40px 20px; }
.bokun-bcw-confirm-icon { font-size: 48px; color: #00BAC6; margin-bottom: 16px; }
.bokun-bcw-confirmation h3 { margin: 0 0 8px; font-size: 22px; color: #111827; }
.bokun-bcw-confirmation p { color: #6b7280; font-size: 14px; margin: 0 0 8px; }
.bokun-bcw-confirm-id { font-weight: 600; color: #374151; }

/* ── Responsive ── */
@media (max-width: 768px) {
    .bokun-bcw-modal-dialog {
        width: 100%; height: 100%; max-height: 100vh;
        border-radius: 0; max-width: 100% !important;
    }
    .bokun-bcw-field-row { grid-template-columns: 1fr; }
    .bokun-bcw-step label { display: none; }
    .bokun-bcw-step-line { width: 24px; }
}

/* ── On-request notice ── */
.bokun-bcw-on-request-notice {
    display: flex; align-items: flex-start; gap: 12px;
    background: #fffbeb; border: 1px solid #f59e0b;
    border-left: 4px solid #f59e0b;
    border-radius: 8px; padding: 14px 16px;
    margin-bottom: 20px; font-size: 14px; color: #92400e;
}
.bokun-bcw-on-request-icon {
    font-size: 20px; color: #f59e0b; flex-shrink: 0; line-height: 1;
}
.bokun-bcw-on-request-notice strong {
    display: block; margin-bottom: 4px; color: #78350f; font-size: 15px;
}
.bokun-bcw-on-request-notice p { margin: 0; line-height: 1.5; }

/* =============================================================================
   UNIFORM CONTROL SIZING — every input/select/button is 45px tall and all
   form stacks share the same vertical rhythm (14px between fields, 6px
   between a label and its control). Placed last so it wins the cascade.
   ============================================================================= */

/* Single-line text controls and selects → fixed 45px */
.bokun-bcw-field input:not([type="checkbox"]):not([type="radio"]),
.bokun-bcw-field select,
.bokun-bcw-pickup-select,
.bokun-bcw-pickup-description,
.bokun-bcw-promo-input {
    height: 45px;
    padding-top: 0;
    padding-bottom: 0;
    box-sizing: border-box;
    line-height: 43px; /* borders take 2px */
}
.bokun-bcw-field select,
.bokun-bcw-pickup-select { line-height: normal; } /* selects center natively */

/* Multi-line: align min height to the 45px grid */
.bokun-bcw-field textarea { min-height: 90px; box-sizing: border-box; }

/* Buttons → 45px */
.bokun-bcw-promo-apply,
.bokun-bcw-yes-no-btn,
.bokun-bcw-back-btn,
.bokun-bcw-next-btn,
.bokun-bcw-submit-btn,
.bokun-bcw-btn {
    height: 45px;
    padding-top: 0;
    padding-bottom: 0;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Buttons whose label can wrap (selectables / day options / time slots):
   same 45px minimum, growing only if the text needs a second line */
.bokun-bcw-selectable-btn,
.bokun-bcw-day-option-btn,
.bokun-bcw-time-slot {
    min-height: 45px;
    box-sizing: border-box;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.bokun-bcw-time-slot { flex-direction: column; padding-top: 4px; padding-bottom: 4px; }

/* Quantity steppers (+ / − / value) → 45px square */
.bokun-bcw-qty-minus,
.bokun-bcw-qty-plus { width: 45px; height: 45px; }
.bokun-bcw-qty-value { height: 45px; }

/* Stripe card fields → same 45px box */
.bokun-bcw-card-input-wrap {
    min-height: 45px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: 0;
    padding-bottom: 0;
    box-sizing: border-box;
}
.bokun-bcw-card-input-wrap > * { width: 100%; }

/* ── Uniform vertical rhythm across all forms ── */
.bokun-bcw-contact-form,
.bokun-bcw-more-passengers,
.bokun-bcw-participants {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.bokun-bcw-field-row { gap: 14px; }
.bokun-bcw-field { gap: 6px; }
.bokun-bcw-questions-list,
.bokun-bcw-extras-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.bokun-bcw-extras-list .bokun-bcw-extra-item { margin-bottom: 0; }
.bokun-bcw-more-passengers .bokun-bcw-passenger-block h5 { margin: 4px 0 10px; }
