﻿/**
 * Gerimedical Connector — Public Booking Styles
 *
 * Architecture: all visual values reference var(--bc-*) custom properties.
 * In 'theme' mode those properties are NOT declared here — they fall back to
 * the specified defaults inside each var() call.
 * In 'custom' mode the plugin adds an inline <style> with :root overrides.
 * In 'minimal' mode only structural (layout/grid) rules apply; colour rules
 * are wrapped in the .bc-styled modifier set by the shortcode.
 *
 * @package Gerimedical
 */

/* ==========================================================================
   0. Custom properties (defaults — only active in 'custom' or as fallback)
   ========================================================================== */
:root {
  --bc-primary:          #0062cc;
  --bc-primary-hover:    #004fa3;
  --bc-secondary:        #6c757d;
  --bc-text:             #212529;
  --bc-text-muted:       #6c757d;
  --bc-bg:               #ffffff;
  --bc-bg-alt:           #f8f9fa;
  --bc-border:           #dee2e6;
  --bc-font:             inherit;
  --bc-radius:           8px;
  --bc-shadow:           0 2px 8px rgba(0,0,0,.08);

  --bc-cal-available:    #d4edda;
  --bc-cal-available-fg: #155724;
  --bc-cal-occupied:     #f8d7da;
  --bc-cal-occupied-fg:  #721c24;
  --bc-cal-partial:      #fff3cd;
  --bc-cal-partial-fg:   #856404;
  --bc-cal-selected:     var(--bc-primary, #0062cc);
  --bc-cal-selected-fg:  #ffffff;
  --bc-cal-range:        rgba(0,98,204,.15);
  --bc-cal-today:        #e9ecef;
  --bc-cal-today-fg:     var(--bc-text, #212529);

  --bc-notice-info-bg:    #cfe2ff;
  --bc-notice-info-fg:    #084298;
  --bc-notice-success-bg: #d4edda;
  --bc-notice-success-fg: #155724;
  --bc-notice-warning-bg: #fff3cd;
  --bc-notice-warning-fg: #856404;
  --bc-notice-error-bg:   #f8d7da;
  --bc-notice-error-fg:   #721c24;
}

/* ==========================================================================
   1. Base wrapper
   ========================================================================== */
.bc-wizard,
.bc-availability-calendar,
.bc-fleet {
  font-family: var(--bc-font, inherit);
  color: var(--bc-text, #212529);
  box-sizing: border-box;
}

.bc-wizard *,
.bc-availability-calendar *,
.bc-fleet * {
  box-sizing: inherit;
}

/*
 * Elementor kit reset for booking/fleet/calendar containers.
 * `.elementor-kit-N h1/h2/h3/a` has specificity (0,1,1) and overrides
 * single-class plugin rules. Two-class selectors (0,2,0) restore correct
 * sizes and weights inside plugin blocks without touching Elementor widgets.
 */
.bc-wizard h1, .bc-wizard h2, .bc-wizard h3,
.bc-fleet h1, .bc-fleet h2, .bc-fleet h3,
.bc-availability-calendar h1, .bc-availability-calendar h2, .bc-availability-calendar h3 {
  font-size: revert;
  font-weight: revert;
  line-height: revert;
}
.bc-wizard a:not(.bc-btn),
.bc-fleet a:not(.bc-btn),
.bc-availability-calendar a:not(.bc-btn) {
  font-size: inherit;
  font-weight: inherit;
}

/* ==========================================================================
   2. Wizard shell
   ========================================================================== */
.bc-wizard {
  background: var(--bc-bg, #fff);
  border-radius: var(--bc-radius, 8px);
  box-shadow: var(--bc-shadow, 0 2px 8px rgba(0,0,0,.08));
  padding: 1.5rem;
  max-width: 860px;
  margin: 0 auto;
  position: relative;
}

/* ── Header ─────────────────────────────────────────────── */
.bc-wizard__header {
  display: flex;
  gap: 1rem;
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--bc-border, #dee2e6);
}

.bc-wizard__header-img {
  flex: 0 0 120px;
  height: 80px;
  border-radius: calc(var(--bc-radius, 8px) / 2);
  overflow: hidden;
}

.bc-wizard__header-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bc-wizard__header-info {
  display: flex;
  flex-direction: column;
  gap: .25rem;
}

.bc-wizard__header-name {
  margin: 0;
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--bc-text, #212529);
  line-height: 1.2;
}

.bc-wizard__header-model {
  font-size: .9rem;
  color: var(--bc-text-muted, #6c757d);
}

.bc-wizard__header-pax {
  font-size: .85rem;
  color: var(--bc-text-muted, #6c757d);
  display: flex;
  align-items: center;
  gap: .25rem;
}

.bc-wizard__header-badge {
  display: inline-block;
  font-size: .78rem;
  font-weight: 600;
  padding: .2em .6em;
  border-radius: 50px;
  line-height: 1.4;
}

.bc-wizard__header-badge--success {
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
}

.bc-wizard__header-badge--info {
  background: var(--bc-notice-info-bg, #cfe2ff);
  color: var(--bc-notice-info-fg, #084298);
}

.bc-wizard__header-badge--warning {
  background: var(--bc-notice-warning-bg, #fff3cd);
  color: var(--bc-notice-warning-fg, #856404);
}

.bc-wizard__header-price {
  font-size: .9rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
}

/* ── Progress steps ─────────────────────────────────────── */
.bc-wizard__steps {
  display: flex;
  gap: 0;
  margin-bottom: 2rem;
  counter-reset: bc-step;
  position: relative;
}

.bc-wizard__steps::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: var(--bc-border, #dee2e6);
  z-index: 0;
  transform: translateY(-50%);
}

.bc-wizard__step-dot {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .25rem;
  position: relative;
  z-index: 1;
  cursor: default;
}

.bc-wizard__step-num {
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  background: var(--bc-bg-alt, #f8f9fa);
  border: 2px solid var(--bc-border, #dee2e6);
  color: var(--bc-text-muted, #6c757d);
  font-size: .8rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s, border-color .2s, color .2s;
}

.bc-wizard__step-label {
  font-size: .72rem;
  color: var(--bc-text-muted, #6c757d);
  text-align: center;
  transition: color .2s;
}

.bc-wizard__step-dot--active .bc-wizard__step-num {
  background: var(--bc-primary, #0062cc);
  border-color: var(--bc-primary, #0062cc);
  color: #fff;
}

.bc-wizard__step-dot--active .bc-wizard__step-label {
  color: var(--bc-primary, #0062cc);
  font-weight: 600;
}

.bc-wizard__step-dot--done .bc-wizard__step-num {
  background: var(--bc-notice-success-bg, #d4edda);
  border-color: var(--bc-notice-success-fg, #155724);
  color: var(--bc-notice-success-fg, #155724);
}

/* ==========================================================================
   3. Step sections
   ========================================================================== */
.bc-wizard__step {
  animation: bc-fade-in .2s ease;
}

@keyframes bc-fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}

.bc-step__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 1.25rem;
  color: var(--bc-text, #212529);
}

/* ==========================================================================
   4. Calendar
   ========================================================================== */
.bc-step1__calendars {
  display: block;
  margin-bottom: 1rem;
}

.bc-step1__calendar-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: .75rem;
  gap: .5rem;
}

.bc-cal__nav-label {
  font-weight: 600;
  font-size: .95rem;
  text-transform: capitalize;
  flex: 1;
  text-align: center;
  color: var(--bc-text, #212529);
}

.bc-cal__month-header {
  display: flex;
  justify-content: center;
  margin-bottom: .5rem;
}

.bc-cal__month-name {
  font-weight: 600;
  font-size: .9rem;
  text-transform: capitalize;
}

.bc-cal__grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 2px;
}

.bc-cal__day-head {
  text-align: center;
  font-size: .72rem;
  font-weight: 600;
  color: var(--bc-text-muted, #6c757d);
  padding: .2rem 0;
}

/*
 * .elementor-kit-7 button { background: primary; padding: 20px 30px } = (0,1,1)
 * beats .bc-cal__day at (0,1,0). Scope base and state rules to (0,2,0).
 * No blanket button reset — that causes more collateral damage than it solves.
 */
.bc-wizard .bc-cal__day,
.bc-availability-calendar .bc-cal__day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: .82rem;
  border-radius: calc(var(--bc-radius, 8px) / 2);
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .15s, color .15s, transform .1s;
  background: none;
  font-family: inherit;
  color: var(--bc-text, #212529);
  padding: 0;
  line-height: 1;
  min-width: 36px;
  min-height: 36px;
}

.bc-wizard .bc-cal__day:focus-visible,
.bc-availability-calendar .bc-cal__day:focus-visible {
  outline: 2px solid var(--bc-primary, #0062cc);
  outline-offset: 1px;
}

.bc-wizard .bc-cal__day--empty,
.bc-availability-calendar .bc-cal__day--empty {
  cursor: default;
  pointer-events: none;
}

.bc-wizard .bc-cal__day--past,
.bc-wizard .bc-cal__day:disabled,
.bc-availability-calendar .bc-cal__day--past,
.bc-availability-calendar .bc-cal__day:disabled {
  opacity: .4;
  cursor: not-allowed;
  pointer-events: none;
}

.bc-wizard .bc-cal__day--available,
.bc-availability-calendar .bc-cal__day--available {
  background: var(--bc-cal-available, #d4edda);
  color: var(--bc-cal-available-fg, #155724);
}

.bc-wizard .bc-cal__day--available:hover,
.bc-availability-calendar .bc-cal__day--available:hover {
  filter: brightness(.92);
  transform: scale(1.05);
}

.bc-wizard .bc-cal__day--unavailable,
.bc-wizard .bc-cal__day--occupied,
.bc-availability-calendar .bc-cal__day--unavailable,
.bc-availability-calendar .bc-cal__day--occupied {
  background: var(--bc-cal-occupied, #f8d7da);
  color: var(--bc-cal-occupied-fg, #721c24);
  cursor: not-allowed;
}

.bc-wizard .bc-cal__day--pending,
.bc-availability-calendar .bc-cal__day--pending {
  background: var(--bc-cal-partial, #fff3cd);
  color: var(--bc-cal-partial-fg, #856404);
  cursor: not-allowed;
  opacity: .85;
}

.bc-wizard .bc-cal__day--partial,
.bc-availability-calendar .bc-cal__day--partial {
  background: var(--bc-cal-partial, #fff3cd);
  color: var(--bc-cal-partial-fg, #856404);
}

/* Single selected day (open-ended start) or when start == end */
.bc-cal__day--selected,
.bc-cal__day--start.bc-cal__day--end {
  background: var(--bc-cal-selected, #0062cc) !important;
  color: var(--bc-cal-selected-fg, #fff) !important;
  font-weight: 700;
  border-radius: 50% !important;
}

/* Start of a range */
.bc-cal__day--start:not(.bc-cal__day--end) {
  background: var(--bc-cal-selected, #0062cc) !important;
  color: var(--bc-cal-selected-fg, #fff) !important;
  font-weight: 700;
  border-radius: 50% 0 0 50% !important;
}

/* End of a range */
.bc-cal__day--end:not(.bc-cal__day--start) {
  background: var(--bc-cal-selected, #0062cc) !important;
  color: var(--bc-cal-selected-fg, #fff) !important;
  font-weight: 700;
  border-radius: 0 50% 50% 0 !important;
}

.bc-wizard .bc-cal__day--in-range,
.bc-availability-calendar .bc-cal__day--in-range {
  background: var(--bc-cal-range, rgba(0,98,204,.28));
  border-radius: 0;
}

/* Days unreachable because a blocked day sits between them and the start date */
.bc-wizard .bc-cal__day--beyond-range,
.bc-availability-calendar .bc-cal__day--beyond-range {
  opacity: .2;
  pointer-events: none;
  cursor: not-allowed;
}

/* Days too close to start to satisfy the minimum rental period */
.bc-wizard .bc-cal__day--below-min,
.bc-availability-calendar .bc-cal__day--below-min {
  opacity: .25;
  pointer-events: none;
  cursor: not-allowed;
}

/* Hover preview while the user is picking end-date (desktop/tablet) */
.bc-wizard .bc-cal__day--hover-range,
.bc-availability-calendar .bc-cal__day--hover-range {
  background: var(--bc-cal-range, rgba(0,98,204,.12));
  border-radius: 0;
}
.bc-cal__day--hover-end {
  background: var(--bc-cal-selected, #0062cc) !important;
  color: var(--bc-cal-selected-fg, #fff) !important;
  opacity: .65;
}

.bc-wizard .bc-cal__day--today,
.bc-availability-calendar .bc-cal__day--today {
  background: var(--bc-cal-today, #e9ecef);
  color: var(--bc-cal-today-fg, #212529);
  font-weight: 700;
}

/* Legend — hidden by default; shown only if `.bc-cal__legend--visible` is added */
.bc-cal__legend-wrap,
.bc-cal__legend {
  display: none;
}

/* Legend */
.bc-cal__legend {
  display: none;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  font-size: .78rem;
  color: var(--bc-text-muted, #6c757d);
  margin-top: .75rem;
}

.bc-cal__legend-item {
  display: flex;
  align-items: center;
  gap: .3rem;
}

.bc-cal__swatch {
  width: 14px;
  height: 14px;
  border-radius: 3px;
  display: inline-block;
}

.bc-cal__swatch--available  { background: var(--bc-cal-available, #d4edda); }
.bc-cal__swatch--partial    { background: var(--bc-cal-partial,   #fff3cd); }
.bc-cal__swatch--unavailable { background: var(--bc-cal-occupied,  #f8d7da); }
.bc-cal__swatch--selected   { background: var(--bc-cal-selected,  #0062cc); }

/* Selection display */
.bc-step1__hint {
  font-size: .9rem;
  color: var(--bc-text-muted, #6c757d);
  background: var(--bc-bg-alt, #f8f9fa);
  border: 1px dashed var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .75rem 1rem;
  margin-top: 1rem;
  line-height: 1.5;
  text-align: center;
}

.bc-step1__selection {
  display: flex;
  align-items: center;
  gap: .75rem;
  background: var(--bc-bg-alt, #f8f9fa);
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .75rem 1rem;
  margin-top: 1rem;
  flex-wrap: wrap;
}

.bc-step1__date-box {
  display: flex;
  flex-direction: column;
  gap: .2rem;
}

.bc-step1__date {
  font-weight: 700;
  font-size: 1rem;
}

.bc-step1__date-arrow {
  color: var(--bc-text-muted, #6c757d);
  font-size: 1.2rem;
}

/* Slots section when nested inside selection panel */
.bc-step1__selection .bc-step1__slots {
  flex: 0 0 100%;
  width: 100%;
  border-top: 1px solid var(--bc-border, #dee2e6);
  padding-top: .5rem;
  margin-top: .25rem;
}

/* Slot radio options */
.bc-slot-list {
  display: flex;
  flex-wrap: nowrap;
  gap: .5rem;
  margin-top: .5rem;
}

.bc-slot-option {
  cursor: pointer;
  display: block;
  flex: 1;  /* equal-width: fill available space */
}

.bc-slot-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.bc-slot-option__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .2rem;
  padding: .5rem .5rem;
  width: 100%;
  box-sizing: border-box;
  border: 2px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  background: var(--bc-bg, #fff);
  font-size: .9rem;
  font-weight: 600;
  color: var(--bc-text, #212529);
  transition: border-color .15s, background .15s;
  cursor: pointer;
}

.bc-slot-option:hover .bc-slot-option__label {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.06);
  color: var(--bc-primary, #0062cc);
}

.bc-slot-option input[type="radio"]:checked ~ .bc-slot-option__label {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.12);
  color: var(--bc-primary, #0062cc);
  box-shadow: 0 0 0 3px rgba(0,98,204,.18);
}

.bc-slot-option input[type="radio"]:focus-visible ~ .bc-slot-option__label {
  outline: 2px solid var(--bc-primary, #0062cc);
  outline-offset: 2px;
}

.bc-slot-option__price {
  font-size: .78rem;
  font-weight: 400;
  color: var(--bc-text-muted, #6c757d);
}

.bc-slot-option input[type="radio"]:checked ~ .bc-slot-option__label .bc-slot-option__price {
  color: var(--bc-primary, #0062cc);
}

/* Blocked slot (already booked for the selected day). */
.bc-slot-option--blocked {
  cursor: not-allowed;
  pointer-events: none;
}

.bc-slot-option--blocked .bc-slot-option__label {
  opacity: .45;
  text-decoration: line-through;
  background: var(--bc-bg-alt, #f8f9fa);
  border-color: var(--bc-border, #dee2e6);
  color: var(--bc-text-muted, #6c757d);
  cursor: not-allowed;
}

/* ==========================================================================
   5. Step 2 — Extras
   ========================================================================== */
.bc-step2__skipper {
  background: var(--bc-bg-alt, #f8f9fa);
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: 1rem;
  margin-bottom: 1.25rem;
}

.bc-step2__skipper-msg {
  margin: 0;
  font-weight: 600;
}

.bc-step2__skipper-msg--included {
  color: var(--bc-notice-success-fg, #155724);
}

.bc-step2__skipper-msg--mandatory {
  color: var(--bc-notice-warning-fg, #856404);
}

.bc-step2__skipper-msg--license {
  color: var(--bc-notice-info-fg, #004085);
}

.bc-step2__skipper-title {
  margin: 0 0 .4rem;
  font-size: 1rem;
}

.bc-step2__skipper-desc {
  margin: 0 0 .75rem;
  color: var(--bc-text-muted, #6c757d);
  font-size: .9rem;
}

/* Skipper / generic radio-card group */
.bc-skipper-radios {
  display: flex;
  flex-direction: column;
  gap: .5rem;
  margin-top: .75rem;
}

.bc-radio-option {
  cursor: pointer;
  display: block;
}

.bc-radio-option input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.bc-radio-option__label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  padding: .75rem 1rem;
  border: 2px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  background: var(--bc-bg, #fff);
  transition: border-color .15s, background .15s;
  cursor: pointer;
}

.bc-radio-option__label::before {
  content: '';
  display: inline-block;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 2px solid var(--bc-border, #dee2e6);
  flex-shrink: 0;
  transition: border-color .15s, background .15s, box-shadow .15s;
}

.bc-radio-option:hover .bc-radio-option__label::before {
  border-color: var(--bc-primary, #0062cc);
}

.bc-radio-option input[type="radio"]:checked ~ .bc-radio-option__label {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.07);
}

.bc-radio-option input[type="radio"]:checked ~ .bc-radio-option__label::before {
  border-color: var(--bc-primary, #0062cc);
  background: var(--bc-primary, #0062cc);
  box-shadow: inset 0 0 0 3px #fff;
}

.bc-radio-option input[type="radio"]:focus-visible ~ .bc-radio-option__label {
  outline: 2px solid var(--bc-primary, #0062cc);
  outline-offset: 2px;
}

.bc-radio-option__title {
  font-weight: 600;
  font-size: .95rem;
}

.bc-radio-option__note {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  display: block;
  margin-top: .15rem;
}

.bc-radio-option input[type="radio"]:checked ~ .bc-radio-option__label .bc-radio-option__note {
  color: var(--bc-primary, #0062cc);
  opacity: .8;
}

.bc-radio-option__price {
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  font-size: .95rem;
  white-space: nowrap;
  flex-shrink: 0;
}

/* Toggle switch */
.bc-toggle {
  display: flex;
  align-items: center;
  gap: .75rem;
  cursor: pointer;
}

.bc-toggle input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.bc-toggle__slider {
  position: relative;
  display: inline-block;
  width: 44px;
  height: 24px;
  background: var(--bc-border, #dee2e6);
  border-radius: 12px;
  transition: background .2s;
  flex-shrink: 0;
}

.bc-toggle__slider::after {
  content: '';
  position: absolute;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: #fff;
  top: 3px;
  left: 3px;
  transition: transform .2s;
  box-shadow: 0 1px 3px rgba(0,0,0,.2);
}

.bc-toggle input:checked ~ .bc-toggle__slider {
  background: var(--bc-primary, #0062cc);
}

.bc-toggle input:checked ~ .bc-toggle__slider::after {
  transform: translateX(20px);
}

.bc-toggle input:focus-visible ~ .bc-toggle__slider {
  outline: 2px solid var(--bc-primary, #0062cc);
  outline-offset: 2px;
}

.bc-toggle__label {
  font-weight: 600;
  font-size: .95rem;
}

/* Extras list */
.bc-step2__extras-loader {
  display: flex;
  align-items: center;
  gap: .5rem;
  color: var(--bc-text-muted, #6c757d);
  font-size: .9rem;
  padding: .75rem 0;
}

.bc-step2__extras-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: .75rem;
}

.bc-extra-card {
  border: 2px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .875rem;
  background: var(--bc-bg, #fff);
  transition: border-color .15s, box-shadow .15s;
}

.bc-extra-card--active {
  border-color: var(--bc-primary, #0062cc);
  box-shadow: 0 0 0 3px var(--bc-cal-range, rgba(0,98,204,.15));
}

.bc-extra-card__name {
  font-weight: 700;
  font-size: .95rem;
  margin-bottom: .2rem;
}

.bc-extra-card__desc {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: .5rem;
  line-height: 1.4;
}

.bc-extra-card__price {
  font-size: .85rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  margin-bottom: .5rem;
}

.bc-extra-card__qty {
  display: flex;
  align-items: center;
  gap: .4rem;
}

.bc-extra-card__qty-btn {
  width: 28px;
  height: 28px;
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: 4px;
  background: var(--bc-bg-alt, #f8f9fa);
  cursor: pointer;
  font-size: 1rem;
  font-family: inherit;
  color: var(--bc-text, #212529);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .15s;
}

.bc-extra-card__qty-btn:hover {
  background: var(--bc-primary, #0062cc);
  color: #fff;
  border-color: var(--bc-primary, #0062cc);
}

.bc-extra-card__qty-val {
  min-width: 24px;
  text-align: center;
  font-weight: 700;
}

/* ==========================================================================
   6. Step 3 — Price summary
   ========================================================================== */
.bc-price-list {
  margin: 0 0 1rem;
  padding: 0;
}

.bc-price-list__row {
  display: flex;
  justify-content: space-between;
  padding: .4rem 0;
  border-bottom: 1px dashed var(--bc-border, #dee2e6);
  font-size: .95rem;
}

.bc-price-list__row:last-child {
  border-bottom: none;
}

.bc-price-list__row dt {
  color: var(--bc-text-muted, #6c757d);
  flex: 1 1 0;
  min-width: 0;
  padding-right: .5rem;
  word-break: break-word;
}

.bc-price-list__row dd {
  margin: 0;
  font-weight: 600;
  flex-shrink: 0;
  white-space: nowrap;
  text-align: right;
}

.bc-price-list__row--divider {
  border-top: 2px solid var(--bc-border, #dee2e6);
  border-bottom: none;
  margin-top: .4rem;
  padding-top: .625rem;
}

/* Individual item rows inside the price panel */
.bc-price-list__items {
  display: flex;
  flex-direction: column;
}

.bc-price-list__item-row {
  display: flex;
  justify-content: space-between;
  gap: .5rem;
  padding: .2rem 0;
  font-size: .8rem;
  color: var(--bc-text-muted, #6c757d);
  border-bottom: 1px dashed var(--bc-border, #dee2e6);
}

.bc-price-list__item-row span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.bc-price-list__item-row span:last-child {
  white-space: nowrap;
  font-weight: 500;
}

.bc-price-list__row--total {
  font-size: 1.1rem;
  font-weight: 700;
  border-top: 2px solid var(--bc-text, #212529);
  border-bottom: none;
  padding-top: .625rem;
  margin-top: .25rem;
}

/* "Incluido gratis" badge on zero-price extras */
.bc-extra-card__free-badge {
  display: inline-block;
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
  font-size: .72rem;
  font-weight: 600;
  padding: .15em .55em;
  border-radius: 50px;
  letter-spacing: .01em;
}

.bc-price-list__row--total dt,
.bc-price-list__row--total dd {
  color: var(--bc-text, #212529);
  font-weight: 700;
}

.bc-price-list__row--discount dd {
  color: var(--bc-notice-success-fg, #155724);
}

.bc-price-list__row--vat dt,
.bc-price-list__row--vat dd {
  font-size: .78rem;
  color: var(--bc-text-muted, #6c757d);
  font-weight: 400;
}

.bc-price-list__row--deposit {
  margin-top: .75rem;
  padding: .625rem .75rem;
  background: var(--bc-primary-light, #e8f0fe);
  border-radius: var(--bc-radius, 8px);
  border: 1px solid var(--bc-primary, #0066cc);
}

.bc-price-list__row--deposit dt {
  font-size: .85rem;
  color: var(--bc-primary, #0066cc);
  font-weight: 600;
}

.bc-price-list__row--deposit dd {
  font-size: 1rem;
  color: var(--bc-primary, #0066cc);
  font-weight: 700;
}

.bc-price-list__row--remaining {
  padding: .25rem .75rem;
}

.bc-price-list__row--remaining dt {
  font-size: .8rem;
  color: var(--bc-text-muted, #6b7280);
}

.bc-price-list__row--remaining dd {
  font-size: .85rem;
  color: var(--bc-text-muted, #6b7280);
}

.bc-deposit-notice {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  margin-top: .75rem;
  padding: .75rem 1rem;
  background: var(--bc-primary-light, #e8f0fe);
  border-radius: var(--bc-radius, 8px);
  font-size: .82rem;
  line-height: 1.4;
  color: var(--bc-primary-dark, #1a4a8a);
}

.bc-deposit-notice__icon,
.bc-meta-icon {
  flex-shrink: 0;
  width: 1rem;
  height: 1rem;
  color: var(--bc-primary, #0062cc);
}

/* Deposit block */
.bc-step3__deposit {
  background: var(--bc-notice-warning-bg, #fff3cd);
  color: var(--bc-notice-warning-fg, #856404);
  border: 1px solid var(--bc-notice-warning-fg, #856404);
  border-left: 4px solid var(--bc-notice-warning-fg, #856404);
  border-radius: var(--bc-radius, 8px);
  padding: .875rem 1rem;
  margin-bottom: 1rem;
}

.bc-step3__deposit h4 {
  margin: 0 0 .3rem;
  font-size: .9rem;
  font-weight: 700;
}

.bc-step3__deposit-amount {
  font-weight: 700;
  margin: 0 0 .3rem;
}

.bc-step3__deposit-desc {
  margin: 0;
  font-size: .85rem;
  line-height: 1.5;
}

/* Coupon */
.bc-step3__coupon {
  margin-bottom: 1.25rem;
}

/* Toggle link — replaces the always-visible label */
.bc-coupon-toggle {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-style: dotted;
  display: inline-block;
  margin-bottom: .25rem;
}
.bc-coupon-toggle:hover {
  color: var(--bc-primary, #0062cc);
}

.bc-step3__coupon-collapsible {
  margin-top: .5rem;
}

.bc-step3__coupon-row {
  display: flex;
  gap: .5rem;
  margin-top: .4rem;
}

.bc-step3__coupon-msg {
  margin: .35rem 0 0;
  font-size: .85rem;
  min-height: 1.2em;
}

.bc-step3__coupon-msg--success {
  color: var(--bc-notice-success-fg, #155724);
}

.bc-step3__coupon-msg--error {
  color: var(--bc-notice-error-fg, #721c24);
}

.bc-step3__coupon-chip {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
  font-size: .82rem;
  font-weight: 600;
  padding: .2em .6em;
  border-radius: 50px;
  margin-top: .3rem;
}

.bc-step3__coupon-chip button {
  background: none;
  border: none;
  cursor: pointer;
  color: inherit;
  font-size: 1rem;
  line-height: 1;
  padding: 0;
  display: flex;
  align-items: center;
}

/* Contact block */
.bc-step3__contact {
  margin-top: 1.25rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bc-border, #dee2e6);
  text-align: center;
}

.bc-step3__contact-label {
  font-size: .9rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: .75rem;
}

.bc-step3__contact-btns {
  display: flex;
  gap: .75rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ==========================================================================
   7. Step 4 — Customer form
   ========================================================================== */
.bc-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .875rem;
}

.bc-form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .875rem;
}

.bc-form-grid--full {
  grid-column: 1 / -1;
}

.bc-field {
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.bc-label {
  font-size: .85rem;
  font-weight: 600;
  color: var(--bc-text, #212529);
}

.bc-label--required::after {
  content: ' *';
  color: var(--bc-notice-error-fg, #721c24);
}

.bc-input {
  padding: .5rem .75rem;
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: calc(var(--bc-radius, 8px) / 2);
  font-family: inherit;
  font-size: .95rem;
  color: var(--bc-text, #212529);
  background: var(--bc-bg, #fff);
  transition: border-color .15s, box-shadow .15s;
  width: 100%;
}

.bc-input:focus {
  outline: none;
  border-color: var(--bc-primary, #0062cc);
  box-shadow: 0 0 0 3px var(--bc-cal-range, rgba(0,98,204,.15));
}

.bc-input--error {
  border-color: var(--bc-notice-error-fg, #721c24);
}

.bc-input-error-msg {
  font-size: .78rem;
  color: var(--bc-notice-error-fg, #721c24);
  min-height: 1em;
}

textarea.bc-input {
  resize: vertical;
  min-height: 80px;
}

/* Checkboxes */
.bc-checkbox-field {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
}

.bc-checkbox-field input[type="checkbox"] {
  margin-top: .2em;
  flex-shrink: 0;
  accent-color: var(--bc-primary, #0062cc);
}

.bc-checkbox-field label {
  font-size: .875rem;
  line-height: 1.4;
}

.bc-checkbox-field--error label {
  color: var(--bc-notice-error-fg, #721c24);
}

/* Consent checkboxes (bc-form__check) */
.bc-form__check {
  display: flex;
  align-items: flex-start;
}

.bc-checkbox {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  cursor: pointer;
  font-size: .875rem;
  line-height: 1.4;
}

.bc-checkbox input[type="checkbox"] {
  margin-top: .2em;
  flex-shrink: 0;
  accent-color: var(--bc-primary, #0062cc);
}

.bc-checkbox__box {
  display: none; /* native checkbox used */
}

.bc-checkbox__label {
  color: var(--bc-text, #212529);
}

/* Links inside checkbox labels */
.bc-checkbox__label a {
  color: var(--bc-primary, #0062cc);
  text-decoration: underline;
  font-weight: 500;
}

.bc-checkbox__label a:hover,
.bc-checkbox__label a:focus {
  color: var(--bc-primary-hover, #004a99);
  text-decoration: none;
}

/* Required asterisk */
.bc-required {
  color: var(--bc-notice-error-fg, #721c24);
  margin-left: .15em;
  font-weight: 700;
}

/* Legal notice */
.bc-step4__legal {
  background: var(--bc-bg-alt, #f8f9fa);
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .875rem;
  font-size: .85rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: 1rem;
  line-height: 1.5;
}

.bc-step4__legal--instant {
  border-color: var(--bc-notice-success-fg, #155724);
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
}

.bc-step4__legal--request {
  border-left: 4px solid var(--bc-notice-info-fg, #084298);
  background: var(--bc-notice-info-bg, #cfe2ff);
  color: var(--bc-notice-info-fg, #084298);
}

.bc-step4__license-warning {
  background: var(--bc-notice-warning-bg, #fff3cd);
  color: var(--bc-notice-warning-fg, #856404);
  border: 1px solid var(--bc-notice-warning-fg, #856404);
  border-radius: var(--bc-radius, 8px);
  padding: .75rem 1rem;
  font-size: .875rem;
  font-weight: 600;
  margin-bottom: 1rem;
}

/* Honeypot */
.bc-hp {
  position: absolute;
  left: -9999px;
  top: -9999px;
  opacity: 0;
  height: 0;
  overflow: hidden;
  pointer-events: none;
}

/* ==========================================================================
   8. Step 5 — Confirmation
   ========================================================================== */
.bc-step5 {
  text-align: center;
  padding: 2rem 1rem;
}

.bc-step5__icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  display: block;
}

.bc-step5__title {
  font-size: 1.5rem;
  font-weight: 700;
  margin: 0 0 .5rem;
}

.bc-step5__ref {
  font-size: 1rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: 1.25rem;
}

.bc-step5__ref strong {
  color: var(--bc-text, #212529);
  font-size: 1.1rem;
}

.bc-step5__details {
  background: var(--bc-bg-alt, #f8f9fa);
  border-radius: var(--bc-radius, 8px);
  padding: 1rem;
  margin: 0 auto 1.5rem;
  max-width: 420px;
  text-align: left;
}

.bc-step5__detail-row {
  display: flex;
  justify-content: space-between;
  padding: .35rem 0;
  font-size: .9rem;
  border-bottom: 1px solid var(--bc-border, #dee2e6);
}

.bc-step5__detail-row:last-child {
  border-bottom: none;
}

.bc-step5__detail-row dt {
  color: var(--bc-text-muted, #6c757d);
}

.bc-step5__detail-row dd {
  margin: 0;
  font-weight: 600;
}

.bc-step5__msg {
  font-size: .95rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: 1.5rem;
  line-height: 1.5;
}

.bc-step5__email-confirm {
  font-size: .9rem;
  color: var(--bc-text-muted, #6c757d);
  margin-bottom: 1.5rem;
}

.bc-step5__actions {
  display: flex;
  gap: .75rem;
  justify-content: center;
  flex-wrap: wrap;
}

/* ==========================================================================
   9. Buttons
   ========================================================================== */
.bc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .4rem;
  padding: .6rem 1.25rem;
  border: 2px solid transparent;
  border-radius: var(--bc-radius, 8px);
  font-family: inherit;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  text-decoration: none;
  transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
  white-space: nowrap;
}

.bc-btn:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--bc-cal-range, rgba(0,98,204,.3));
}

.bc-btn--primary {
  background: var(--bc-primary, #0062cc);
  border-color: var(--bc-primary, #0062cc);
  color: #fff;
}

.bc-btn--primary:hover:not(:disabled) {
  background: var(--bc-primary-hover, #004fa3);
  border-color: var(--bc-primary-hover, #004fa3);
}

.bc-btn--primary:disabled {
  background: var(--bc-text-muted, #6c757d);
  border-color: var(--bc-text-muted, #6c757d);
  cursor: not-allowed;
  opacity: .6;
}

.bc-btn--secondary {
  background: transparent;
  border-color: var(--bc-secondary, #6c757d);
  color: var(--bc-secondary, #6c757d);
}

.bc-btn--secondary:hover:not(:disabled) {
  background: var(--bc-secondary, #6c757d);
  color: #fff;
}

.bc-btn--ghost,
.bc-btn.bc-btn--ghost {
  background: transparent;
  border-color: var(--bc-border, #dee2e6);
  color: var(--bc-text, #212529);
}

.bc-btn--ghost:hover:not(:disabled),
.bc-btn.bc-btn--ghost:hover:not(:disabled) {
  background: var(--bc-bg-alt, #f8f9fa);
}

.bc-btn--sm {
  padding: .3rem .6rem;
  font-size: .82rem;
}

/*
 * Elementor's kit rule `.elementor-kit-N a` has specificity (0,1,1) which
 * beats single-class selectors like `.bc-btn--sm` (0,1,0).
 * Child-theme `.page-content a { text-decoration:underline }` also has (0,1,1).
 * Use two-class selectors (0,2,0) to win regardless of load order.
 */
.bc-btn.bc-btn--sm {
  font-size: .82rem;
  font-weight: 600;
  text-decoration: none;
}
.bc-btn:not(.bc-btn--sm) {
  font-size: .95rem;
  font-weight: 600;
  text-decoration: none;
}
.bc-btn.bc-btn--primary {
  background: var(--bc-primary, #0062cc);
  border-color: var(--bc-primary, #0062cc);
  color: #fff;
}
.bc-btn.bc-btn--primary:hover:not(:disabled) {
  background: var(--bc-primary-hover, #004fa3);
  border-color: var(--bc-primary-hover, #004fa3);
}
/*
 * .elementor-kit-7 button { padding: 20px 30px } = (0,1,1) beats .bc-btn (0,1,0).
 * Scope padding to (0,2,0) inside the wizard so nav buttons look correct.
 */
.bc-wizard .bc-btn {
  padding: .6rem 1.25rem;
}
.bc-wizard [data-bc-next].bc-btn,
.bc-wizard [data-bc-submit].bc-btn {
  padding: .7rem 1.75rem;
}

/* Nav arrows: bigger touch target on ALL viewports */
.bc-btn--icon {
  min-width: 44px;
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  padding: 0;
  border-radius: 50%;
  line-height: 1;
}

/* Mobile: keep large targets (bc-btn--icon already handles it) */
@media (max-width: 699px) {
  .bc-step1__calendar-nav .bc-btn--sm {
    min-width: 44px;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    padding: 0;
  }
}

.bc-btn--full {
  width: 100%;
}

.bc-btn--whatsapp {
  background: #25d366;
  border-color: #25d366;
  color: #fff;
}

.bc-btn--whatsapp:hover:not(:disabled) {
  background: #1daa53;
  border-color: #1daa53;
}

.bc-btn[aria-disabled="true"],
.bc-btn:disabled {
  opacity: .55;
  cursor: not-allowed;
  pointer-events: none;
}

.bc-btn--loading {
  pointer-events: none;
}

.bc-btn--loading .bc-spinner {
  width: 14px;
  height: 14px;
}

/* ==========================================================================
   9b. Loading overlay
   ========================================================================== */
.bc-wizard__overlay {
  display: none;
  position: absolute;
  inset: 0;
  background: rgba(255,255,255,.88);
  border-radius: var(--bc-radius, 8px);
  z-index: 20;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  font-size: .95rem;
  color: var(--bc-text-muted, #6c757d);
}

.bc-wizard__overlay[aria-busy="true"] {
  display: flex;
}

/* ==========================================================================
   10. Step navigation bar
   ========================================================================== */
.bc-wizard__nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .75rem;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid var(--bc-border, #dee2e6);
}

/* Mobile: sticky CTA at bottom viewport */
@media (max-width: 699px) {
  .bc-wizard__nav {
    position: sticky;
    bottom: 0;
    z-index: 50;
    background: var(--bc-bg, #fff);
    margin-top: 1rem;
    padding: .875rem 1rem;
    border-top: 1px solid var(--bc-border, #dee2e6);
    box-shadow: 0 -4px 16px rgba(0,0,0,.1);
  }
  .bc-wizard__nav .bc-btn--primary {
    flex: 1;
    min-height: 48px;
    font-size: 1rem;
  }
  .bc-wizard__nav .bc-btn__sub {
    display: none;
  }
  /* Add padding to wizard so sticky nav doesn't overlap last content */
  .bc-wizard { padding-bottom: 80px; }
}

.bc-wizard__nav-prev {
  margin-right: auto;
}

/* Deposit hint inside submit button (step 3) */
.bc-btn__sub {
  display: block;
  font-size: .72em;
  font-weight: 400;
  opacity: .88;
  margin-top: .1rem;
  letter-spacing: 0;
}

/* ==========================================================================
   11. Notices
   ========================================================================== */
.bc-notice {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  padding: .75rem 1rem;
  border-radius: var(--bc-radius, 8px);
  font-size: .9rem;
  line-height: 1.4;
  margin-bottom: .75rem;
}

.bc-notice--info {
  background: var(--bc-notice-info-bg, #cfe2ff);
  color: var(--bc-notice-info-fg, #084298);
}

.bc-notice--success {
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
}

.bc-notice--warning {
  background: var(--bc-notice-warning-bg, #fff3cd);
  color: var(--bc-notice-warning-fg, #856404);
}

.bc-notice--error {
  background: var(--bc-notice-error-bg, #f8d7da);
  color: var(--bc-notice-error-fg, #721c24);
}

.bc-step__error {
  min-height: 1rem;
  margin-top: .5rem;
}

.bc-step__error:not(:empty) {
  background: var(--bc-notice-error-bg, #f8d7da);
  color: var(--bc-notice-error-fg, #721c24);
  padding: .6rem .875rem;
  border-radius: var(--bc-radius, 8px);
  font-size: .875rem;
}

/* ==========================================================================
   12. Spinner
   ========================================================================== */
.bc-spinner {
  display: inline-block;
  width: 20px;
  height: 20px;
  border: 2px solid var(--bc-border, #dee2e6);
  border-top-color: var(--bc-primary, #0062cc);
  border-radius: 50%;
  animation: bc-spin .7s linear infinite;
  flex-shrink: 0;
}

@keyframes bc-spin {
  to { transform: rotate(360deg); }
}

/* ==========================================================================
   13. Fleet grid
   ========================================================================== */
.bc-fleet {
  display: grid;
  grid-template-columns: repeat(var(--bc-fleet-cols, 3), 1fr);
  gap: 1.25rem;
}

.bc-boat-card {
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  background: var(--bc-bg, #fff);
  overflow: hidden;
  box-shadow: var(--bc-shadow, 0 2px 8px rgba(0,0,0,.08));
  display: flex;
  flex-direction: column;
  transition: box-shadow .2s, transform .2s;
}

.bc-boat-card:hover {
  box-shadow: 0 6px 20px rgba(0,0,0,.12);
  transform: translateY(-2px);
}

.bc-boat-card__img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
}

.bc-boat-card__img-placeholder {
  width: 100%;
  aspect-ratio: 16/9;
  background: var(--bc-bg-alt, #f8f9fa);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--bc-text-muted, #6c757d);
  font-size: 2rem;
}

.bc-boat-card__body {
  padding: 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: .4rem;
}

.bc-boat-card__name {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0;
  color: var(--bc-text, #212529);
  line-height: 1.3;
}

.bc-boat-card__meta {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
}

.bc-boat-card__price {
  font-size: .95rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  margin-top: auto;
}

.bc-boat-card__actions {
  padding: .75rem 1rem;
  border-top: 1px solid var(--bc-border, #dee2e6);
}

/* ==========================================================================
   14. Standalone availability calendar
   ========================================================================== */
.bc-availability-calendar .bc-step1__calendars {
  /* Inherits step1 calendar styles */
}

/* ==========================================================================
   15. Booking confirmation page  [gerimedical_booking_confirmation]
   ========================================================================== */
.bc-confirmation {
  font-family: var(--bc-font, inherit);
  color: var(--bc-text, #212529);
  box-sizing: border-box;
  max-width: 640px;
  margin: 2rem auto;
  padding: 0 1rem;
}

.bc-confirmation * {
  box-sizing: inherit;
}

/* ── Hero ─────────────────────────────────────────────────── */
.bc-conf__hero {
  text-align: center;
  padding: 3rem 1.5rem 2.5rem;
  border-radius: var(--bc-radius, 8px);
  margin-bottom: 1.5rem;
}

.bc-conf__hero--success {
  background: linear-gradient(135deg,
    color-mix(in srgb, var(--bc-primary, #0062cc) 8%, white) 0%,
    color-mix(in srgb, var(--bc-primary, #0062cc) 4%, white) 100%);
  border: 1px solid color-mix(in srgb, var(--bc-primary, #0062cc) 20%, white);
}

.bc-conf__hero--cancel {
  background: #fff8e6;
  border: 1px solid #ffe0a0;
}

.bc-conf__hero--unknown {
  background: var(--bc-bg-alt, #f8f9fa);
  border: 1px solid var(--bc-border, #dee2e6);
}

.bc-conf__hero-title {
  font-size: 1.75rem;
  font-weight: 800;
  margin: 0 0 .5rem;
  line-height: 1.2;
  color: var(--bc-text, #212529);
}

.bc-conf__hero-sub {
  font-size: 1rem;
  color: var(--bc-text-muted, #6c757d);
  margin: 0;
}

/* ── Animated SVG checkmark ────────────────────────────────── */
.bc-conf__checkmark {
  display: inline-block;
  width: 80px;
  height: 80px;
  margin-bottom: 1.25rem;
  color: var(--bc-primary, #0062cc);
}

.bc-conf__checkmark svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.bc-conf__checkmark-circle {
  stroke-dasharray: 150;
  stroke-dashoffset: 150;
  animation: bc-conf-draw-circle .45s cubic-bezier(.65,0,.45,1) .1s forwards;
}

.bc-conf__checkmark-check {
  stroke-dasharray: 50;
  stroke-dashoffset: 50;
  animation: bc-conf-draw-check .35s cubic-bezier(.65,0,.45,1) .5s forwards;
}

@keyframes bc-conf-draw-circle {
  to { stroke-dashoffset: 0; }
}

@keyframes bc-conf-draw-check {
  to { stroke-dashoffset: 0; }
}

/* ── Cancel icon ───────────────────────────────────────────── */
.bc-conf__cancel-icon {
  display: inline-block;
  width: 72px;
  height: 72px;
  margin-bottom: 1.25rem;
  color: #d97706;
}

.bc-conf__cancel-icon svg {
  width: 100%;
  height: 100%;
}

/* ── Unknown icon ──────────────────────────────────────────── */
.bc-conf__unknown-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  display: block;
}

/* ── Reference chip ────────────────────────────────────────── */
.bc-conf__ref-chip {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  background: color-mix(in srgb, var(--bc-primary, #0062cc) 12%, white);
  border: 1.5px solid color-mix(in srgb, var(--bc-primary, #0062cc) 30%, white);
  border-radius: 2rem;
  padding: .25em .75em;
  font-size: 1rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  cursor: pointer;
  font-family: inherit;
  letter-spacing: .02em;
  transition: background .15s;
}

.bc-conf__ref-chip:hover {
  background: color-mix(in srgb, var(--bc-primary, #0062cc) 18%, white);
}

.bc-conf__ref-copy-icon {
  width: 13px;
  height: 13px;
  opacity: .7;
  flex-shrink: 0;
}

/* ── Body ─────────────────────────────────────────────────── */
.bc-conf__body {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
}

/* ── Summary card ─────────────────────────────────────────── */
.bc-conf__card {
  background: var(--bc-bg, #fff);
  border: 1px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  box-shadow: var(--bc-shadow, 0 2px 8px rgba(0,0,0,.05));
  overflow: hidden;
}

/* ==========================================================================
   UX v2 — Two-column layout, extras rows, badges, trust strip
   ========================================================================== */

/* ── Step 2: two-column layout ────────────────────────────── */
.bc-step2__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: start;
}

@media (min-width: 640px) {
  .bc-step2__layout {
    grid-template-columns: 1fr 300px;
  }
  .bc-step2__right {
    position: sticky;
    top: 1rem;
  }
}

.bc-step2__right .bc-step2__price-summary {
  background: var(--bc-bg, #fff);
  border: 1.5px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  box-shadow: 0 4px 16px rgba(0,0,0,.07);
  padding: 1.1rem 1.1rem .9rem;
}

/* ── Extras section heading ───────────────────────────────── */
.bc-step2__extras-heading,
.bc-step2__complements-heading {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-weight: 700;
  font-size: .95rem;
  color: var(--bc-text, #212529);
  margin: 1.25rem 0 .75rem;
}

/* SVG icon used in section headings — replaces OS emoji. */
.bc-section-icon {
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  color: var(--bc-primary, #0062cc);
}

/* ── Extras list: full-width rows ─────────────────────────── */
.bc-step2__extras-list {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.bc-extra-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .75rem 1rem;
  border: 1.5px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .75rem 1rem;
  background: var(--bc-bg, #fff);
  transition: border-color .15s, box-shadow .15s, background .15s;
}

.bc-extra-card:hover {
  border-color: var(--bc-primary, #0062cc);
  box-shadow: 0 2px 8px rgba(0,98,204,.09);
}

.bc-extra-card--active {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.04);
  box-shadow: 0 0 0 3px rgba(0,98,204,.12);
}

/* Toggle button: unselected → ghost; selected → filled primary */
.bc-extra-card [data-bc-extra-toggle] {
  color: var(--bc-text, #212529);
}

.bc-extra-card [data-bc-extra-toggle][aria-pressed="true"] {
  background: var(--bc-primary, #0062cc);
  border-color: var(--bc-primary, #0062cc);
  color: #fff;
}

.bc-extra-card--has-img {
  grid-template-columns: 64px 1fr auto;
}

.bc-extra-card__img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 6px;
  align-self: center;
  flex-shrink: 0;
  display: block;
}

.bc-extra-card__name {
  font-weight: 700;
  font-size: .95rem;
  margin-bottom: .1rem;
}

.bc-extra-card__desc {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  line-height: 1.4;
  margin-bottom: 0;
}

.bc-extra-card__price {
  font-size: .88rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  margin-bottom: 0;
  margin-top: .2rem;
}

/* Info block (name + desc + price) in column 1 */
.bc-extra-card__info {
  display: flex;
  flex-direction: column;
}

/* Qty controls in column 2 */
.bc-extra-card__qty {
  display: flex;
  align-items: center;
  gap: .4rem;
  flex-shrink: 0;
}

/* ── Complement product cards (productos asociados) ───────── */
/* Horizontal compact layout: thumbnail | info | action       */
.bc-step2__complements-list {
  display: flex;
  flex-direction: column;
  gap: .6rem;
}

.bc-step2__complements-heading {
  display: flex;
  align-items: center;
  gap: .4rem;
  font-weight: 700;
  font-size: .95rem;
  color: var(--bc-text, #212529);
  margin: 0 0 .75rem;
}

.bc-complement-card {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  gap: .75rem 1rem;
  border: 1.5px solid var(--bc-border, #dee2e6);
  border-radius: var(--bc-radius, 8px);
  padding: .75rem 1rem;
  background: var(--bc-bg, #fff);
  transition: border-color .15s, box-shadow .15s, background .15s;
}

.bc-complement-card--has-img {
  grid-template-columns: 72px 1fr auto;
}

.bc-complement-card--active {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.04);
  box-shadow: 0 0 0 3px rgba(0,98,204,.12);
}

.bc-complement-card__img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 6px;
  align-self: center;
  flex-shrink: 0;
  display: block;
}

.bc-complement-card__info {
  display: flex;
  flex-direction: column;
}

.bc-complement-card__name {
  font-weight: 700;
  font-size: .95rem;
  margin-bottom: .1rem;
}

.bc-complement-card__desc {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  line-height: 1.4;
  margin-bottom: 0;
}

.bc-complement-card__price {
  font-size: .88rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
  margin-top: .2rem;
}

.bc-complement-card__deposit {
  font-size: .78rem;
  font-weight: 400;
  color: var(--bc-text-muted, #6c757d);
}

.bc-complement-card__action {
  flex-shrink: 0;
  display: flex;
  align-items: center;
}

.bc-complement-card__badge {
  display: inline-block;
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
  font-size: .72rem;
  font-weight: 600;
  padding: .15em .55em;
  border-radius: 50px;
  margin-left: .4rem;
  vertical-align: middle;
}

.bc-complement-card__required-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
  font-size: .95rem;
  font-weight: 700;
}

.bc-complement-card [data-bc-complement-toggle][aria-pressed="true"] {
  background: var(--bc-primary, #0062cc);
  border-color: var(--bc-primary, #0062cc);
  color: #fff;
}

/* ── "Más popular" / upsell badge ─────────────────────────── */
.bc-badge {
  display: inline-block;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1;
  padding: .25em .55em;
  border-radius: 20px;
  vertical-align: middle;
  margin-left: .4rem;
  white-space: nowrap;
}

.bc-badge--popular {
  background: #fff3cd;
  color: #7c5c00;
  border: 1px solid #f5c518;
}

/* ── Skipper "con patrón" popular card ────────────────────── */
.bc-radio-option--popular > input[type="radio"]:checked ~ .bc-radio-option__label,
.bc-radio-option--popular:hover .bc-radio-option__label {
  border-color: #f5c518;
  background: #fffef0;
}

.bc-radio-option--popular > input[type="radio"]:checked ~ .bc-radio-option__label {
  border-color: #f5c518;
  background: #fffef0;
  box-shadow: 0 0 0 3px rgba(245,197,24,.18);
}

.bc-radio-option--popular > input[type="radio"]:checked ~ .bc-radio-option__label::before {
  border-color: var(--bc-primary, #0062cc);
  background: var(--bc-primary, #0062cc);
  box-shadow: inset 0 0 0 3px #fff;
}

/* Benefit list inside skipper option */
.bc-radio-option__body {
  display: flex;
  flex-direction: column;
}

.bc-radio-option__benefits {
  list-style: none;
  margin: .45rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: .15rem;
}

.bc-radio-option__benefits li {
  font-size: .8rem;
  color: var(--bc-text-muted, #6c757d);
  padding-left: 1.1em;
  position: relative;
}

.bc-radio-option__benefits li::before {
  content: '✓';
  position: absolute;
  left: 0;
  color: #2e7d32;
  font-weight: 700;
}

.bc-radio-option input[type="radio"]:checked ~ .bc-radio-option__label .bc-radio-option__benefits li {
  color: var(--bc-primary, #0062cc);
  opacity: .8;
}

.bc-radio-option input[type="radio"]:checked ~ .bc-radio-option__label .bc-radio-option__benefits li::before {
  color: var(--bc-primary, #0062cc);
}

/* ── Trust strip below CTA ────────────────────────────────── */
.bc-trust-strip {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: .25rem .5rem;
  margin-top: .875rem;
  padding: .6rem .75rem;
  border-top: 1px solid var(--bc-border, #e5e7eb);
  font-size: .75rem;
  letter-spacing: .01em;
  color: var(--bc-text-muted, #9ca3af);
}

.bc-trust-strip__item {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

.bc-trust-strip__item svg {
  width: 13px;
  height: 13px;
  flex-shrink: 0;
  opacity: .8;
}

.bc-trust-strip__sep {
  display: inline-block;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--bc-border, #d1d5db);
  vertical-align: middle;
  margin: 0 .1rem;
}

/* ── Price panel title ────────────────────────────────────── */
.bc-step2__price-title {
  font-weight: 700;
  font-size: .9rem;
  color: var(--bc-text, #212529);
  margin: 0 0 .75rem;
  padding-bottom: .6rem;
  border-bottom: 1px solid var(--bc-border, #dee2e6);
}

/* ── Step 2 subtitle ──────────────────────────────────────── */
.bc-step2__subtitle {
  font-size: .88rem;
  color: var(--bc-text-muted, #6c757d);
  margin: -.5rem 0 1.25rem;
}

/* ── Billing address toggle ───────────────────────────────── */
.bc-billing-toggle {
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  text-decoration: underline;
  text-underline-offset: 2px;
  text-decoration-style: dotted;
  display: inline-block;
  margin-bottom: .25rem;
}
.bc-billing-toggle:hover {
  color: var(--bc-primary, #0062cc);
}

/* ── Booking meta (dates + slot) inside price summary ─────── */
.bc-price-meta {
  margin-bottom: .75rem;
  padding-bottom: .75rem;
  border-bottom: 1px solid var(--bc-border, #dee2e6);
  display: flex;
  flex-direction: column;
  gap: .3rem;
}

.bc-price-meta__row {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .88rem;
  color: var(--bc-text-muted, #6c757d);
}

.bc-price-meta__icon {
  flex-shrink: 0;
  line-height: 1;
}

.bc-price-meta__value {
  font-weight: 600;
  color: var(--bc-text, #212529);
}

/* ── Slot options: icon support ───────────────────────────── */
.bc-slot-option__icon {
  font-size: 1.2rem;
  line-height: 1;
}

/* ── Step 1 selection summary: enhanced ───────────────────── */
.bc-step1__selection {
  border: 1.5px solid var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.04);
}

.bc-step1__date-box .bc-label {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--bc-text-muted, #6c757d);
}

.bc-step1__date {
  font-size: 1.05rem;
  color: var(--bc-text, #212529);
}

/* Highlight selected date range */
.bc-step1__selection--filled {
  border-color: var(--bc-primary, #0062cc);
  background: rgba(0,98,204,.06);
}

.bc-step1__selection--filled .bc-step1__date {
  color: var(--bc-primary, #0062cc);
}

/* Price preview row in the date summary panel */
.bc-step1__price-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem;
  padding-top: .625rem;
  margin-top: .375rem;
  border-top: 1px solid var(--bc-primary, #0062cc);
  grid-column: 1 / -1;
}

.bc-step1__price-value {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--bc-primary, #0062cc);
}

.bc-step1__price-row .bc-label {
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--bc-text-muted, #6c757d);
}

/* ── Mode selector (con fecha / sin fecha fija) ───────────── */
.bc-step1__mode-selector {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: .5rem;
  margin-bottom: 1.25rem;
}
.bc-step1__mode-btn,
.bc-wizard .bc-step1__mode-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .2rem;
  padding: .65rem .75rem;
  border: 2px solid var(--bc-border, #dee2e6);
  border-radius: .5rem;
  background: #fff;
  cursor: pointer;
  text-align: center;
  transition: border-color .15s, background .15s, color .15s;
  line-height: 1.3;
}
.bc-step1__mode-btn:hover,
.bc-wizard .bc-step1__mode-btn:hover {
  border-color: var(--bc-primary, #0062cc);
  background: #f0f5ff;
}
.bc-step1__mode-btn--active,
.bc-wizard .bc-step1__mode-btn--active {
  border-color: var(--bc-primary, #0062cc);
  background: #e8f0fe;
  color: var(--bc-primary, #0062cc);
}
.bc-step1__mode-btn-title {
  font-size: .875rem;
  font-weight: 600;
}
.bc-step1__mode-btn-sub {
  font-size: .75rem;
  color: var(--bc-text-muted, #6c757d);
}
.bc-step1__mode-btn--active .bc-step1__mode-btn-sub {
  color: inherit;
  opacity: .8;
}

/* ── Open-ended trust note ─────────────────────────────────── */
.bc-step1__open-ended-note {
  margin: .5rem 0 0;
  font-size: .8rem;
  color: var(--bc-text-muted, #6c757d);
  font-style: italic;
}

/* ── Renewal period selector ───────────────────────────────── */
.bc-step1__renewal-selector {
  margin-top: 1rem;
}
.bc-step1__renewal-selector .bc-label {
  display: block;
  margin-bottom: .4rem;
  font-size: .72rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--bc-text-muted, #6c757d);
}
.bc-step1__renewal-btns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: .4rem;
}
.bc-step1__renewal-btn,
.bc-wizard .bc-step1__renewal-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .15rem;
  padding: .5rem .4rem;
  border: 2px solid var(--bc-border, #dee2e6);
  border-radius: .4rem;
  background: #fff;
  cursor: pointer;
  text-align: center;
  transition: border-color .15s, background .15s;
  line-height: 1.2;
}
.bc-step1__renewal-btn:hover,
.bc-wizard .bc-step1__renewal-btn:hover {
  border-color: var(--bc-primary, #0062cc);
  background: #f0f5ff;
}
.bc-step1__renewal-btn--active,
.bc-wizard .bc-step1__renewal-btn--active {
  border-color: var(--bc-primary, #0062cc);
  background: #e8f0fe;
}
.bc-step1__renewal-btn-label {
  font-size: .8rem;
  font-weight: 600;
  color: var(--bc-text, #212529);
}
.bc-step1__renewal-btn--active .bc-step1__renewal-btn-label {
  color: var(--bc-primary, #0062cc);
}
.bc-step1__renewal-btn-price {
  font-size: .72rem;
  color: var(--bc-text-muted, #6c757d);
}
.bc-step1__renewal-btn--active .bc-step1__renewal-btn-price {
  color: var(--bc-primary, #0062cc);
  opacity: .85;
}

/* ── Minimum days hint ─────────────────────────────────────── */
.bc-step1__min-days-hint {
  margin: .5rem 0 0;
  font-size: .8rem;
  color: var(--bc-text-muted, #6c757d);
}

/* ── Open-ended renewal badge in the selection card ──────── */
.bc-step1__date--badge {
  display: inline-block;
  padding: .2rem .55rem;
  border-radius: 999px;
  background: var(--bc-primary, #0062cc);
  color: #fff;
  font-size: .78rem;
  font-weight: 600;
  white-space: nowrap;
}

/* ── Nav button: primary CTA size boost ───────────────────── */
[data-bc-next],
[data-bc-submit] {
  padding: .7rem 1.75rem;
  font-size: 1rem;
  letter-spacing: .01em;
}

/* Breathing room between legal notices and submit button */
.bc-step3__form .bc-step3__actions,
.bc-step3__form [data-bc-submit] {
  margin-top: 1.5rem;
}

/* ── Responsive extras (mobile: single column) ────────────── */
@media (max-width: 479px) {
  .bc-extra-card {
    grid-template-columns: 1fr;
  }
  .bc-extra-card--has-img {
    grid-template-columns: 56px 1fr;
  }
  .bc-extra-card--has-img .bc-extra-card__qty {
    grid-column: 2;
  }
  .bc-extra-card__qty {
    justify-content: flex-start;
  }
  /* WCAG 2.5.5 — minimum 44×44px touch targets on mobile */
  .bc-extra-card__qty-btn {
    width: 44px;
    height: 44px;
    font-size: 1.2rem;
    border-radius: 8px;
  }
}

.bc-conf__card-row {
  display: flex;
  align-items: center;
  gap: .875rem;
  padding: .875rem 1.125rem;
  border-bottom: 1px solid var(--bc-border, #dee2e6);
}

.bc-conf__card-row:last-of-type,
.bc-conf__card-row--remaining {
  border-bottom: none;
}

.bc-conf__card-row--total {
  border-top: 1px solid var(--bc-border, #dee2e6);
}

.bc-conf__card-icon {
  font-size: 1.4rem;
  line-height: 1;
  flex-shrink: 0;
  width: 1.75rem;
  text-align: center;
}

.bc-conf__card-content {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: .1rem;
}

.bc-conf__card-label {
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bc-text-muted, #6c757d);
  font-weight: 600;
}

.bc-conf__card-value {
  font-size: 1rem;
  font-weight: 700;
  color: var(--bc-text, #212529);
}

.bc-conf__card-value--green {
  color: #166534;
}

.bc-conf__card-value--muted {
  color: var(--bc-text-muted, #6c757d);
}

.bc-conf__no-details {
  padding: 1rem 1.125rem;
  font-size: .9rem;
  color: var(--bc-text-muted, #6c757d);
  margin: 0;
  text-align: center;
}

/* ── Email note ───────────────────────────────────────────── */
.bc-conf__email-note {
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: .875rem 1.125rem;
  background: var(--bc-notice-info-bg, #cfe2ff);
  color: var(--bc-notice-info-fg, #084298);
  border-radius: var(--bc-radius, 8px);
  font-size: .9rem;
}

.bc-conf__email-note svg {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}

.bc-conf__email-note strong {
  font-weight: 700;
}

/* ── Next steps ───────────────────────────────────────────── */
.bc-conf__steps {
  padding: 1.25rem 1.125rem;
  background: var(--bc-bg-alt, #f8f9fa);
  border-radius: var(--bc-radius, 8px);
  border: 1px solid var(--bc-border, #dee2e6);
}

.bc-conf__steps-title {
  font-size: .85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bc-text-muted, #6c757d);
  margin: 0 0 1rem;
}

.bc-conf__steps-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: .875rem;
}

.bc-conf__steps-list li {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
}

.bc-conf__steps-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.75rem;
  height: 1.75rem;
  flex-shrink: 0;
  background: var(--bc-primary, #0062cc);
  color: #fff;
  border-radius: 50%;
  font-size: .78rem;
  font-weight: 800;
}

.bc-conf__steps-list strong {
  font-size: .9rem;
  font-weight: 700;
  color: var(--bc-text, #212529);
  display: block;
}

.bc-conf__steps-list p {
  font-size: .82rem;
  color: var(--bc-text-muted, #6c757d);
  margin: .15rem 0 0;
}

/* ── Cancel info box ──────────────────────────────────────── */
.bc-conf__cancel-info {
  display: flex;
  align-items: flex-start;
  gap: .875rem;
  padding: 1.125rem;
  background: #fff8e6;
  border: 1px solid #ffe0a0;
  border-radius: var(--bc-radius, 8px);
  font-size: .9rem;
  color: #92400e;
}

.bc-conf__cancel-info-icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: #d97706;
}

.bc-conf__cancel-info-icon svg {
  width: 100%;
  height: 100%;
}

.bc-conf__cancel-info p {
  margin: 0;
}

.bc-conf__cancel-info p + p {
  margin-top: .5rem;
}

/* ── Actions row ──────────────────────────────────────────── */
.bc-conf__actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  padding-bottom: .5rem;
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width: 480px) {
  .bc-conf__hero {
    padding: 2rem 1rem 2rem;
  }

  .bc-conf__hero-title {
    font-size: 1.4rem;
  }

  .bc-conf__checkmark {
    width: 64px;
    height: 64px;
  }

  .bc-conf__actions {
    flex-direction: column;
  }

  .bc-conf__actions .bc-btn {
    width: 100%;
    justify-content: center;
  }
}

/* ==========================================================================
   15. Responsive
   ========================================================================== */
@media (max-width: 1199px) {
  .bc-fleet { --bc-fleet-cols: 2; }
}

@media (max-width: 767px) {
  .bc-wizard {
    padding: 1rem;
    border-radius: 0;
    box-shadow: none;
  }

  .bc-wizard__step-label {
    display: none;
  }

  .bc-step1__calendars {
    grid-template-columns: 1fr;
  }

  .bc-form__row {
    grid-template-columns: 1fr;
  }

  .bc-form-grid {
    grid-template-columns: 1fr;
  }

  .bc-form-grid--full {
    grid-column: 1;
  }

  .bc-step5__actions {
    flex-direction: column;
  }

  .bc-fleet {
    --bc-fleet-cols: 1;
  }

  .bc-wizard__header {
    flex-direction: column;
  }

  .bc-wizard__header-img {
    flex: none;
    height: 160px;
    width: 100%;
  }

  .bc-step3__coupon-row {
    flex-direction: column;
  }
}

/* ==========================================================================
   16. Reduced motion
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
  .bc-wizard__step,
  .bc-cal__day,
  .bc-boat-card {
    animation: none;
    transition: none;
  }

  .bc-spinner {
    animation-duration: 1.5s;
  }
}


/* ── v2.0.56 UX improvements ──────────────────────────────────────────────── */

/* Remove slot emoji icons (no longer used in template, guard for cached HTML) */
.bc-slot-option__icon { display: none; }

/* Fianza: override yellow box → no longer used in template (moved to step 3 summary).
   Keep rule in case old cached markup appears, flatten it. */
.bc-step3__deposit {
  background: transparent;
  border: none;
  border-left: none;
  padding: 0;
  margin-bottom: .5rem;
  color: var(--bc-text-muted, #6b7280);
  font-size: .82rem;
}
.bc-step3__deposit h4 { display: none; }
.bc-step3__deposit-amount,
.bc-step3__deposit-desc { font-size: .82rem; font-weight: 400; margin: 0; color: var(--bc-text-muted, #6b7280); }

/* Step 3 — booking summary card */
.bc-step3__summary {
  background: var(--bc-color-primary-light, #eff6ff);
  border: 1px solid var(--bc-color-primary, #3b82f6);
  border-radius: var(--bc-radius, 8px);
  padding: 1rem 1.125rem;
  margin-bottom: 1.25rem;
}

.bc-step3__summary-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .75rem;
  padding: .3rem 0;
  font-size: .9rem;
  line-height: 1.4;
}

.bc-step3__summary-row + .bc-step3__summary-row {
  border-top: 1px solid var(--bc-color-primary, #3b82f6);
  border-top-color: color-mix(in srgb, var(--bc-color-primary, #3b82f6) 25%, transparent);
}

.bc-step3__summary-label {
  color: var(--bc-text-muted, #6b7280);
  font-size: .8rem;
  flex: 1 1 0;
  min-width: 0;
  word-break: break-word;
  padding-right: .375rem;
}

.bc-step3__summary-val {
  font-weight: 600;
  text-align: right;
  color: var(--bc-text, #1f2937);
  flex-shrink: 0;
  white-space: nowrap;
}

.bc-step3__summary-row--total .bc-step3__summary-label,
.bc-step3__summary-row--total .bc-step3__summary-val {
  font-size: .95rem;
  font-weight: 700;
  color: var(--bc-color-primary, #3b82f6);
}

.bc-step3__summary-val--accent {
  color: var(--bc-color-success, #16a34a);
}

.bc-step3__summary-val--muted {
  font-weight: 400;
  color: var(--bc-text-muted, #6b7280);
  font-size: .82rem;
}

.bc-step3__summary-note {
  display: block;
  font-size: .75rem;
  font-weight: 400;
  color: var(--bc-text-muted, #6b7280);
}

.bc-step3__summary-row--fianza {
  margin-top: .1rem;
  font-size: .8rem;
}

/* Step 3 subtitle — below the title, above the form */
.bc-step3__subtitle {
  font-size: .875rem;
  color: var(--bc-text-muted, #6b7280);
  margin: -.25rem 0 1.25rem;
  line-height: 1.5;
}


/* ── v2.0.58 Header redesign ──────────────────────────────────────────────── */
.bc-wizard__header {
  display: flex;
  align-items: center;
  gap: 1.125rem;
  margin-bottom: 1.5rem;
  padding: 1rem 1.25rem 1rem;
  border-bottom: 1px solid var(--bc-border, #e5e7eb);
  background: var(--bc-header-bg, #f8fafc);
  border-radius: var(--bc-radius, 8px) var(--bc-radius, 8px) 0 0;
  margin: -1.5rem -1.5rem 1.75rem;
  border-top: 3px solid var(--bc-color-primary, #3b82f6);
}

.bc-wizard__header-img {
  flex: 0 0 150px;
  height: 100px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 1px 4px rgba(0,0,0,.12);
}

.bc-wizard__header-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bc-wizard__header-info {
  display: flex;
  flex-direction: column;
  gap: .3rem;
  min-width: 0;
}

.bc-wizard__header-name {
  margin: 0;
  font-size: 1.4rem;
  font-weight: 800;
  color: var(--bc-text, #111827);
  line-height: 1.2;
  letter-spacing: -.02em;
}

.bc-wizard__header-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .2rem .5rem;
  font-size: .83rem;
  color: var(--bc-text-muted, #6b7280);
}

.bc-wizard__header-model {
  font-size: .83rem;
  color: var(--bc-text-muted, #6b7280);
}

.bc-wizard__header-meta-sep {
  color: var(--bc-border, #d1d5db);
  font-size: .9rem;
}

.bc-wizard__header-pax {
  font-size: .83rem;
  color: var(--bc-text-muted, #6b7280);
  display: inline-flex;
  align-items: center;
  gap: .2rem;
}

.bc-wizard__header-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .05rem;
}

.bc-wizard__header-badge {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .72rem;
  font-weight: 600;
  padding: .25em .65em;
  border-radius: 50px;
  line-height: 1.4;
  letter-spacing: .01em;
}

.bc-wizard__header-badge--success::before,
.bc-wizard__header-badge--info::before {
  content: '';
  display: inline-block;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.bc-wizard__header-badge--success {
  background: var(--bc-notice-success-bg, #dcfce7);
  color: var(--bc-notice-success-fg, #15803d);
}

.bc-wizard__header-badge--info {
  background: var(--bc-notice-info-bg, #dbeafe);
  color: var(--bc-notice-info-fg, #1d4ed8);
}

.bc-wizard__header-badge--warning {
  background: var(--bc-notice-warning-bg, #fef9c3);
  color: var(--bc-notice-warning-fg, #854d0e);
}

@media (max-width: 480px) {
  .bc-wizard__header {
    flex-direction: column;
    align-items: flex-start;
    padding: .875rem 1rem .875rem;
    margin: -1.5rem -1.5rem 1.5rem;
  }
  .bc-wizard__header-img {
    flex: 0 0 auto;
    width: 100%;
    height: 140px;
    border-radius: 4px;
  }
  .bc-wizard__header-name { font-size: 1.2rem; }
}


/* ── v2.0.59 Form floating labels + form redesign ────────────────────────── */

/* Floating label container */
.bc-float-group {
  position: relative;
}

.bc-float-group .bc-input {
  padding-top: 1.375rem;
  padding-bottom: .375rem;
  height: auto;
}

/* Label floats inside the field by default */
.bc-float-group .bc-label {
  position: absolute;
  left: .875rem;
  top: 50%;
  transform: translateY(-50%);
  font-size: .875rem;
  color: var(--bc-text-muted, #9ca3af);
  pointer-events: none;
  transition: top .15s ease, transform .15s ease, font-size .15s ease, color .15s ease;
  line-height: 1;
  margin: 0;
  font-weight: 400;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: calc(100% - 1rem);
}

/* Label floated up when focused or filled */
.bc-float-group .bc-input:focus ~ .bc-label,
.bc-float-group .bc-input:not(:placeholder-shown) ~ .bc-label {
  top: .55rem;
  transform: none;
  font-size: .68rem;
  font-weight: 600;
  color: var(--bc-color-primary, #3b82f6);
  letter-spacing: .03em;
  text-transform: uppercase;
}

/* Textarea variant: label anchored to top */
.bc-float-group .bc-input--textarea {
  padding-top: 1.625rem;
  resize: vertical;
}

.bc-float-group .bc-label--textarea {
  top: 1rem;
  transform: none;
}

.bc-float-group .bc-input--textarea:focus ~ .bc-label--textarea,
.bc-float-group .bc-input--textarea:not(:placeholder-shown) ~ .bc-label--textarea {
  top: .45rem;
  font-size: .68rem;
  font-weight: 600;
  color: var(--bc-color-primary, #3b82f6);
  letter-spacing: .03em;
  text-transform: uppercase;
}

/* Required star inside the floating label */
.bc-float-group .bc-label .bc-required {
  color: var(--bc-error, #dc2626);
}

/* Improve input border on focus to match floating label color */
.bc-float-group .bc-input:focus {
  border-color: var(--bc-color-primary, #3b82f6);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bc-color-primary, #3b82f6) 15%, transparent);
  outline: none;
}

/* ── Select fields inside floating-label groups ─────────────────────────── */
/* Selects always show their value, so the label must always be in the "up" position */
.bc-float-group select.bc-input ~ .bc-label,
.bc-float-group .bc-label--select {
  top: .35rem;
  font-size: .72rem;
  color: var(--bc-label, #6b7280);
  pointer-events: none;
}
.bc-float-group select.bc-input:focus ~ .bc-label,
.bc-float-group select.bc-input:focus ~ .bc-label--select {
  color: var(--bc-color-primary, #3b82f6);
}
/* Ensure select inherits the same sizing as inputs */
select.bc-input {
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236b7280' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right .75rem center;
  padding-right: 2.25rem;
  padding-top: 1.35rem;
  cursor: pointer;
}

/* Helper text below form fields */
.bc-field-hint {
  display: block;
  font-size: .75rem;
  color: var(--bc-muted, #9ca3af);
  margin-top: .2rem;
}

/* ── Delivery / pickup mode selector ─────────────────────────────────────── */
.bc-logistics-mode-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem .75rem;
  margin-bottom: .75rem;
}
.bc-logistics-mode-label {
  font-size: .875rem;
  font-weight: 500;
  color: var(--bc-text, #111827);
  min-width: 9rem;
}
.bc-logistics-mode-btns {
  display: flex;
  gap: .375rem;
  flex-wrap: wrap;
}
.bc-logistics-mode-btn {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: .375rem;
  padding: .35rem .75rem;
  border: 1.5px solid var(--bc-border, #d1d5db);
  border-radius: .5rem;
  font-size: .82rem;
  font-weight: 500;
  color: var(--bc-text, #374151);
  background: #fff;
  transition: border-color .15s, background .15s, color .15s;
  user-select: none;
}
.bc-logistics-mode-btn:has(input:checked) {
  border-color: var(--bc-color-primary, #3b82f6);
  background: color-mix(in srgb, var(--bc-color-primary, #3b82f6) 8%, #fff);
  color: var(--bc-color-primary, #3b82f6);
}
.bc-logistics-mode-btn input[type="radio"] {
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 0;
  height: 0;
}
.bc-logistics-no-coverage {
  margin-top: .5rem;
  padding: .625rem .875rem;
  background: #fef3c7;
  border: 1px solid #f59e0b;
  border-radius: .5rem;
  font-size: .8rem;
  color: #92400e;
  line-height: 1.5;
}

.bc-store-address {
  padding: .75rem 1rem;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  border-radius: .5rem;
  font-size: .9rem;
  line-height: 1.6;
}

.bc-store-address + .bc-store-address {
  margin-top: .5rem;
}

.bc-store-address__name {
  font-weight: 600;
  color: var(--bc-text, #1f2937);
  margin: 0 0 .15rem;
}

.bc-store-address__text {
  margin: 0;
  color: var(--bc-text, #1f2937);
}

.bc-store-address__phone,
.bc-store-address__notes {
  margin: .1rem 0 0;
  font-size: .82rem;
  color: var(--bc-text-muted, #6b7280);
}

.bc-store-address__loading {
  font-size: .85rem;
  color: var(--bc-text-muted, #6b7280);
  font-style: italic;
  margin: 0;
}

/* Notes collapsible */
.bc-notes-details {
  margin-bottom: .875rem;
}

.bc-notes-summary {
  font-size: .82rem;
  color: var(--bc-color-primary, #3b82f6);
  cursor: pointer;
  padding: .25rem 0 .5rem;
  list-style: none;
  user-select: none;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
}

.bc-notes-summary::-webkit-details-marker { display: none; }

.bc-notes-details[open] .bc-notes-summary {
  color: var(--bc-text-muted, #6b7280);
}

.bc-notes-field { margin-top: .25rem; }

/* ==========================================================================
   Form sections — step 3 grouped fields
   ========================================================================== */

.bc-form__section {
  margin-bottom: 1.5rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid var(--bc-border, #e5e7eb);
}

.bc-form__section:last-of-type {
  border-bottom: none;
  padding-bottom: 0;
  margin-bottom: .75rem;
}

.bc-form__section-heading {
  font-size: .8rem;
  font-weight: 700;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--bc-text-muted, #6b7280);
  margin: 0 0 1rem;
  padding: 0;
}

/* Full-width single-column row */
.bc-form__row--full {
  grid-template-columns: 1fr;
}

/* Delivery same-as-billing checkbox */
.bc-form__check--delivery-same {
  margin-bottom: .875rem;
}

/* Lift radio button group */
.bc-form__group--lift {
  display: flex;
  flex-direction: column;
  gap: .35rem;
}

.bc-label--static {
  font-size: .82rem;
  font-weight: 500;
  color: var(--bc-text, #374151);
  display: block;
  margin-bottom: .25rem;
}

.bc-lift-radios {
  display: flex;
  gap: .5rem;
}

.bc-lift-radio {
  cursor: pointer;
}

.bc-lift-radio input[type="radio"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.bc-lift-radio__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 3.25rem;
  padding: .4rem .875rem;
  border: 1.5px solid var(--bc-border, #d1d5db);
  border-radius: var(--bc-radius, 8px);
  font-size: .875rem;
  font-weight: 500;
  color: var(--bc-text, #374151);
  background: var(--bc-surface, #fff);
  transition: border-color .15s, background .15s, color .15s;
  user-select: none;
}

.bc-lift-radio input[type="radio"]:checked + .bc-lift-radio__btn {
  border-color: var(--bc-color-primary, #3b82f6);
  background: var(--bc-primary-light, #eff6ff);
  color: var(--bc-color-primary, #3b82f6);
  font-weight: 600;
}

.bc-lift-radio:hover .bc-lift-radio__btn {
  border-color: var(--bc-color-primary, #3b82f6);
}

.bc-lift-radio input[type="radio"]:focus-visible + .bc-lift-radio__btn {
  outline: 2px solid var(--bc-color-primary, #3b82f6);
  outline-offset: 2px;
}

/* Logistics notice banner */
.bc-logistic-notice {
  display: flex;
  gap: .625rem;
  align-items: flex-start;
  padding: .75rem 1rem;
  margin-bottom: 1.125rem;
  background: var(--bc-notice-info-bg, #eff6ff);
  border: 1px solid var(--bc-notice-info-border, #bfdbfe);
  border-left: 3px solid var(--bc-color-primary, #3b82f6);
  border-radius: var(--bc-radius, 8px);
}

.bc-logistic-notice--required {
  background: var(--bc-notice-warning-bg, #fff7ed);
  border-color: var(--bc-notice-warning-border, #fed7aa);
  border-left-color: var(--bc-notice-warning-accent, #f97316);
}

.bc-logistic-notice__text {
  margin: 0;
  font-size: .82rem;
  line-height: 1.5;
  color: var(--bc-text, #374151);
}

.bc-logistic-notice--required .bc-logistic-notice__text {
  color: var(--bc-notice-warning-fg, #9a3412);
}

/* Single combined consent checkbox */
.bc-form__check--consent {
  margin-top: .25rem;
  margin-bottom: .25rem;
}

.bc-form__check--consent .bc-checkbox__label {
  font-size: .82rem;
  color: var(--bc-text, #374151);
  line-height: 1.5;
}

/* Marketing consent — visually secondary */
.bc-form__check--marketing {
  margin-bottom: .75rem;
}

.bc-form__check--marketing .bc-checkbox__label {
  font-size: .8rem;
  color: var(--bc-text-muted, #6b7280);
}

/* Legal notice — cancellation policy + fianza */
.bc-step3__legal-notice {
  font-size: .75rem;
  color: var(--bc-text-muted, #9ca3af);
  line-height: 1.6;
  margin-top: .25rem;
  margin-bottom: 0;
}
.bc-step3__legal-notice a {
  color: inherit;
  text-decoration: underline;
}

/* Fianza info badge — reembolsable highlight */
.bc-step3__fianza-info {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  background: var(--bc-notice-success-bg, #d4edda);
  color: var(--bc-notice-success-fg, #155724);
  border-radius: 6px;
  padding: .55rem .75rem;
  font-size: .8rem;
  font-weight: 500;
  line-height: 1.4;
  margin-top: .75rem;
}
.bc-step3__fianza-info::before {
  content: '';
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  margin-top: .05em;
  background: currentColor;
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");
  mask-size: contain;
  mask-repeat: no-repeat;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E");
  -webkit-mask-size: contain;
  -webkit-mask-repeat: no-repeat;
}
.bc-step3__fianza-info a {
  color: inherit;
}


/* ── v2.0.60 Global quality pass ─────────────────────────────────────────── */

/* 1. HEADER — boat name as product hero, no blue border */
.bc-wizard__header {
  display: flex;
  align-items: center;
  gap: 1.25rem;
  padding: 1.375rem 1.5rem 1.25rem;
  margin: -1.5rem -1.5rem 2rem;
  border-top: none;
  border-bottom: 1px solid var(--bc-border, #e5e7eb);
  background: #fff;
  border-radius: var(--bc-radius, 8px) var(--bc-radius, 8px) 0 0;
}

.bc-wizard__header-eyebrow {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bc-color-primary, #3b82f6);
  margin-bottom: .2rem;
}

.bc-wizard__header-name {
  font-size: 1.75rem;
  font-weight: 900;
  color: var(--bc-text, #0f172a);
  line-height: 1.15;
  letter-spacing: -.03em;
  margin: 0;
}

.bc-wizard__header-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .2rem .5rem;
  font-size: .8rem;
  color: var(--bc-text-muted, #94a3b8);
  margin-top: .3rem;
}

.bc-wizard__header-model,
.bc-wizard__header-pax {
  font-size: .8rem;
  color: var(--bc-text-muted, #94a3b8);
}

.bc-wizard__header-pax {
  display: inline-flex;
  align-items: center;
  gap: .2rem;
}

.bc-wizard__header-meta-sep {
  color: var(--bc-border, #cbd5e1);
}

.bc-wizard__header-badges {
  display: flex;
  flex-wrap: wrap;
  gap: .3rem;
  margin-top: .45rem;
}

.bc-wizard__header-badge {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  font-size: .7rem;
  font-weight: 600;
  padding: .2em .6em;
  border-radius: 4px;
  letter-spacing: .02em;
}

.bc-wizard__header-badge--success::before,
.bc-wizard__header-badge--info::before {
  content: '';
  display: inline-block;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: currentColor;
  flex-shrink: 0;
}

.bc-wizard__header-badge--success {
  background: #dcfce7;
  color: #15803d;
}

.bc-wizard__header-badge--info {
  background: #dbeafe;
  color: #1d4ed8;
}

.bc-wizard__header-badge--warning {
  background: #fef9c3;
  color: #854d0e;
}

.bc-wizard__header-img {
  flex: 0 0 160px;
  height: 110px;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.10);
  flex-shrink: 0;
}

.bc-wizard__header-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bc-wizard__header-info {
  display: flex;
  flex-direction: column;
  min-width: 0;
  gap: 0;
}

/* Add "Embarcación" eyebrow label via CSS if no image */
.bc-wizard__header:not(:has(.bc-wizard__header-img)) .bc-wizard__header-info::before {
  content: 'Embarcación';
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--bc-color-primary, #3b82f6);
  display: block;
  margin-bottom: .25rem;
}

/* ============================================================
   Renewal payment breakdown (open-ended auto-renew mode)
   ============================================================ */

.bc-renewal-breakdown {
  margin-top: 1.25rem;
  border-radius: .5rem;
  overflow: hidden;
  border: 1px solid var(--bc-border, #e5e7eb);
  font-size: .875rem;
}

.bc-renewal-breakdown__title {
  padding: .6rem .875rem;
  background: var(--bc-muted, #f3f4f6);
  font-weight: 700;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bc-muted-fg, #6b7280);
}

.bc-renewal-breakdown__section {
  padding: .75rem .875rem;
  border-bottom: 1px solid var(--bc-border, #e5e7eb);
}
.bc-renewal-breakdown__section:last-child { border-bottom: none; }

.bc-renewal-breakdown__section-title {
  font-weight: 600;
  font-size: .8rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: .4rem;
}
.bc-renewal-breakdown__section--today .bc-renewal-breakdown__section-title { color: var(--bc-primary, #0ea5e9); }
.bc-renewal-breakdown__section--renewal .bc-renewal-breakdown__section-title { color: var(--bc-success, #16a34a); }
.bc-renewal-breakdown__section--return .bc-renewal-breakdown__section-title { color: var(--bc-color-secondary, #8b5cf6); }

.bc-renewal-breakdown__section-total {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: .5rem;
  padding-top: .4rem;
  border-top: 1px solid var(--bc-border, #e5e7eb);
  font-weight: 600;
}

.bc-rbd__row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: .5rem;
  padding: .2rem 0;
  color: var(--bc-fg, #374151);
}
.bc-rbd__label { flex: 1; }
.bc-rbd__val   { flex-shrink: 0; font-variant-numeric: tabular-nums; }

.bc-rbd__row--deposit { color: var(--bc-warning-fg, #92400e); }
.bc-rbd__row--discount .bc-rbd__val { color: var(--bc-success, #16a34a); }
.bc-rbd__row--deposit-return .bc-rbd__val { color: var(--bc-success, #16a34a); font-weight: 700; }

.bc-rbd__note {
  font-size: .78rem;
  color: var(--bc-muted-fg, #6b7280);
  margin: .2rem 0 0;
}

@media (max-width: 520px) {
  .bc-wizard__header {
    flex-direction: column;
    align-items: flex-start;
    padding: 1rem 1.25rem;
    margin: -1.5rem -1.5rem 1.5rem;
  }
  .bc-wizard__header-img {
    width: 100%;
    flex: 0 0 auto;
    height: 150px;
    border-radius: 6px;
  }
  .bc-wizard__header-name { font-size: 1.4rem; }
}

/* 2. PROGRESS BAR — line at circle midpoint, not container midpoint */
.bc-wizard__steps::before {
  top: 1rem;        /* half of 2rem circle */
  transform: none;
}

/* 3. CALENDAR — compact Airbnb-style cells */
.bc-wizard .bc-cal__day,
.bc-availability-calendar .bc-cal__day {
  aspect-ratio: unset;
  height: 36px;
  font-size: .8rem;
  border-radius: 50%;
}

.bc-wizard .bc-cal__day--in-range,
.bc-availability-calendar .bc-cal__day--in-range {
  border-radius: 0;
}

.bc-wizard .bc-cal__day--hover-range,
.bc-availability-calendar .bc-cal__day--hover-range {
  border-radius: 0;
}

.bc-wizard .bc-cal__day--start,
.bc-availability-calendar .bc-cal__day--start {
  border-radius: 50% 0 0 50%;
}

.bc-wizard .bc-cal__day--end,
.bc-availability-calendar .bc-cal__day--end {
  border-radius: 0 50% 50% 0;
}

.bc-wizard .bc-cal__day--hover-end,
.bc-availability-calendar .bc-cal__day--hover-end {
  border-radius: 0 50% 50% 0;
}

.bc-wizard .bc-cal__day--start.bc-cal__day--end,
.bc-availability-calendar .bc-cal__day--start.bc-cal__day--end {
  border-radius: 50%;
}

.bc-cal__grid {
  gap: 1px;
}

.bc-step1__calendars {
  max-width: 640px;
}

/* 4. STEP 3 SUMMARY — neutral card, no colored border */
.bc-step3__summary {
  background: var(--bc-bg-alt, #f8fafc);
  border: 1px solid var(--bc-border, #e5e7eb);
  border-radius: var(--bc-radius, 8px);
  padding: .875rem 1.125rem;
  margin-bottom: 1.25rem;
}

.bc-step3__summary-row + .bc-step3__summary-row {
  border-top-color: var(--bc-border, #e5e7eb);
}

.bc-step3__summary-row--total .bc-step3__summary-label,
.bc-step3__summary-row--total .bc-step3__summary-val {
  color: var(--bc-text, #111827);
}

/* ============================================================
   v2.0.61 — Step 3: two-col layout, boat image, field spacing
   ============================================================ */

/* Field spacing — applies across all float-group inputs */
.bc-float-group {
  margin-bottom: 1.25rem;
}

/* Step 3 two-column layout */
.bc-step3__layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 700px) {
  .bc-step3__layout {
    grid-template-columns: 1fr 1.35fr;
    align-items: start;
    gap: 2rem;
  }
}

/* Boat image in left column */
.bc-step3__boat-img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 12px;
  margin-bottom: 1rem;
}

/* Left column: summary sticks below image */
.bc-step3__left {
  /* inherits summary card styles from v2.0.60 */
}

/* Right column spacing */
.bc-step3__right .bc-step3__subtitle {
  margin-top: 0;
  margin-bottom: 1.5rem;
}

/* ============================================================
   v2.0.62 — Form LEFT / Summary RIGHT; enriched price breakdown
   ============================================================ */

/* Grid: form column wider (1.4fr), summary narrower (1fr) */
@media (min-width: 700px) {
  .bc-step3__layout { grid-template-columns: 1.4fr 1fr; }
}

/* Column containers */
.bc-step3__form-col    { min-width: 0; }
.bc-step3__summary-col {
  min-width: 0;
  /* Stick the summary to viewport while the form scrolls */
  position: sticky;
  top: 1rem;
  align-self: start;
}

/* Mobile: resumen primero, formulario debajo */
@media (max-width: 699px) {
  .bc-step3__layout { display: flex; flex-direction: column; }
  .bc-step3__summary-col { order: -1; }
}

/* Summary extras sub-rows — same visual weight as other rows */
.bc-step3__summary-row--extra .bc-step3__summary-label {
}
.bc-step3__summary-row--extra .bc-step3__summary-val {
}

/* Discount row value */
.bc-step3__summary-val--discount {
  color: var(--bc-success, #16a34a);
  font-weight: 600;
}

/* Section dividers inside summary */
.bc-step3__summary-divider {
  border: none;
  border-top: 1px solid var(--bc-border, #e5e7eb);
  margin: .5rem 0;
}
.bc-step3__summary-divider--thick {
  border-top-width: 2px;
  border-color: var(--bc-border-strong, #d1d5db);
  margin: .75rem 0;
}

/* Deposit accent */
.bc-step3__summary-val--accent {
  color: var(--bc-primary, #0ea5e9);
  font-weight: 700;
}

/* ============================================================
   v2.0.64 — Step 1 two-column layout (calendar left, panel right)
   ============================================================ */

/* Mobile-first: stacked */
.bc-step1__layout {
  display: grid;
  gap: 1.5rem;
  align-items: start;
}

/* Desktop: calendar left (natural width), panel right */
@media (min-width: 700px) {
  .bc-step1__layout { grid-template-columns: minmax(340px, auto) minmax(240px, 1fr); gap: 2rem; }
}

/* Right panel sticks in view while scrolling the calendar */
@media (min-width: 700px) {
  .bc-step1__right { position: sticky; top: 1.5rem; }
}

/* Mobile: calendar first, then the summary/price panel below */
@media (max-width: 699px) {
  .bc-step1__left  { order: -1; }
  .bc-step1__right { order:  0; }
}

/* On mobile the calendars nav sits above the grid */
.bc-step1__left { min-width: 0; }
.bc-step1__right { min-width: 0; }

/* Mobile: compact date summary — inline row instead of stacked */
@media (max-width: 699px) {
  .bc-step1__selection {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .5rem;
    padding: .625rem .875rem;
    margin-top: 0;
    margin-bottom: .75rem;
  }
  .bc-step1__date-arrow { display: none; }
  /* Duration box spans both columns */
  .bc-step1__date-box:has([data-bc-nights]) {
    grid-column: 1 / -1;
    border-top: 1px solid var(--bc-border, #dee2e6);
    padding-top: .375rem;
    margin-top: .125rem;
    flex-direction: row;
    justify-content: space-between;
  }
  /* Price row and slot selector also span both columns */
  .bc-step1__selection .bc-step1__price-row,
  .bc-step1__selection .bc-step1__slots {
    grid-column: 1 / -1;
  }
  .bc-step1__hint {
    margin-top: 0;
    margin-bottom: 0;
    font-size: .85rem;
    padding: .625rem .875rem;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Fixed charges (cargo fijo / servicios incluidos) — v2.0.69
   ═══════════════════════════════════════════════════════════════════════════ */

/* Step 2: "Servicios incluidos" section */
.bc-step2__fixed-charges {
margin-top: 1.5rem;
}

.bc-step2__fixed-charges-heading {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 0.9rem;
font-weight: 600;
color: var(--bc-text, #1a1a2e);
margin-bottom: 0.75rem;
}

.bc-step2__fixed-charges-heading::before {
content: '🔒';
font-size: 1rem;
}

.bc-fixed-charge-card {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 0.75rem 1rem;
background: var(--bc-surface, #f8f9fa);
border: 1px solid var(--bc-border, #e2e8f0);
border-left: 3px solid var(--bc-primary, #2563eb);
border-radius: 0.5rem;
margin-bottom: 0.5rem;
pointer-events: none;
}

.bc-fixed-charge-card__name {
font-weight: 600;
font-size: 0.9rem;
color: var(--bc-text, #1a1a2e);
}

.bc-fixed-charge-card__desc {
font-size: 0.78rem;
color: var(--bc-text-muted, #64748b);
margin-top: 0.1rem;
}

.bc-fixed-charge-card__price {
font-size: 0.88rem;
font-weight: 700;
color: var(--bc-primary, #2563eb);
white-space: nowrap;
}

/* Step 3 summary: fixed charge row */
.bc-step3__summary-row--fixed-charge .bc-step3__summary-label {
font-style: italic;
color: var(--bc-text-muted, #64748b);
}

.bc-step3__summary-row--fixed-charge .bc-step3__summary-val {
color: var(--bc-text-muted, #64748b);
}

/* Fixed charges (cargo fijo / servicios incluidos) - v2.0.69 */
.bc-step2__fixed-charges{margin-top:1.5rem}.bc-step2__fixed-charges-heading{display:flex;align-items:center;gap:.5rem;font-size:.9rem;font-weight:600;color:var(--bc-text,#1a1a2e);margin-bottom:.75rem}.bc-step2__fixed-charges-heading::before{content:'✅';font-size:1rem}.bc-fixed-charge-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;background:var(--bc-surface,#f8f9fa);border:1px solid var(--bc-border,#e2e8f0);border-left:3px solid var(--bc-primary,#2563eb);border-radius:.5rem;margin-bottom:.5rem;pointer-events:none}.bc-fixed-charge-card__name{font-weight:600;font-size:.9rem;color:var(--bc-text,#1a1a2e)}.bc-fixed-charge-card__desc{font-size:.78rem;color:var(--bc-text-muted,#64748b);margin-top:.1rem}.bc-fixed-charge-card__price{font-size:.88rem;font-weight:700;color:var(--bc-primary,#2563eb);white-space:nowrap}.bc-step3__summary-row--fixed-charge .bc-step3__summary-label{font-style:italic;color:var(--bc-text-muted,#64748b)}.bc-step3__summary-row--fixed-charge .bc-step3__summary-val{color:var(--bc-text-muted,#64748b)}

/* ═══════════════════════════════════════════════════════════════════════════
   PRODUCT CATALOG  [gerimedical_catalog]
   ═══════════════════════════════════════════════════════════════════════════ */

.bc-catalog-page{max-width:1200px;margin-left:auto;margin-right:auto;padding:0 1.5rem}
.bc-catalog{--bc-catalog-cols:3}
.bc-catalog--cols-1{--bc-catalog-cols:1}
.bc-catalog--cols-2{--bc-catalog-cols:2}
.bc-catalog--cols-3{--bc-catalog-cols:3}
.bc-catalog--cols-4{--bc-catalog-cols:4}

/* Utility */
.bc--hidden{display:none !important}

/* ── Search Hero ─────────────────────────────────────────────────────────── */
.bc-search-hero{background:linear-gradient(160deg,#f0f7ff 0%,#e8f0fe 100%);border-radius:12px;padding:2.5rem 2rem 2rem;margin-bottom:0;text-align:center}
.bc-search-hero__eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.78rem;font-weight:600;color:var(--bc-primary,#0062cc);text-transform:uppercase;letter-spacing:.06em;margin:0 0 .75rem;opacity:.9}
.bc-search-hero__eyebrow svg{flex-shrink:0;color:var(--bc-primary,#0062cc)}
.bc-search-hero__headline{font-size:clamp(1.4rem,3vw,2rem);font-weight:800;color:var(--bc-text,#1a1a2e);margin:0 0 1.25rem;line-height:1.2;letter-spacing:-.02em}
.bc-search-hero__form{position:relative;max-width:560px;margin:0 auto 1rem}
.bc-search-hero__icon{position:absolute;left:1rem;top:50%;transform:translateY(-50%);color:var(--bc-text-muted,#64748b);pointer-events:none;display:flex}
.bc-search-hero__input{width:100%;padding:.9rem 3rem .9rem 3.5rem;border:2px solid transparent;border-radius:50px;font-size:1rem;background:#fff;color:var(--bc-text,#1a1a2e);box-shadow:0 2px 12px rgba(0,0,0,.1);transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;box-sizing:border-box}
.bc-search-hero__input:focus{outline:none;border-color:var(--bc-primary,#0062cc);box-shadow:0 0 0 4px rgba(0,98,204,.12)}
.bc-search-hero__input::-webkit-search-cancel-button{display:none}
.bc-search-hero__clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--bc-text-muted,#64748b);padding:.25rem;display:flex;border-radius:50%;transition:background .15s}
.bc-search-hero__clear:hover{background:var(--bc-surface,#f1f5f9);color:var(--bc-text,#1a1a2e)}
.bc-search-hero__hints{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem .6rem}
.bc-search-hero__hints-label{font-size:.75rem;color:var(--bc-text-muted,#64748b);font-weight:500}
.bc-search-hero__hint{padding:.3rem .75rem;border:1px solid rgba(0,98,204,.3);border-radius:2rem;background:rgba(255,255,255,.7);color:var(--bc-primary,#0062cc);font-size:.78rem;font-weight:500;cursor:pointer;transition:all .15s;backdrop-filter:blur(4px)}
.bc-search-hero__hint:hover{background:var(--bc-primary,#0062cc);border-color:var(--bc-primary,#0062cc);color:#fff}

/* ── Filter Bar (sticky) ─────────────────────────────────────────────────── */
.bc-filter-bar{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:.5rem;background:#fff;border-bottom:1px solid var(--bc-border,#e2e8f0);padding:.6rem 0;margin-bottom:1.5rem;transition:box-shadow .2s}
.bc-filter-bar--stuck{box-shadow:0 4px 12px rgba(0,0,0,.08)}
.bc-filter-bar__scroll{display:flex;align-items:center;gap:.35rem;overflow-x:auto;flex:1;min-width:0;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.bc-filter-bar__scroll::-webkit-scrollbar{display:none}
.bc-filter-bar__btn{display:inline-flex;align-items:center;gap:.35rem;padding:.35rem .75rem;border:1.5px solid var(--bc-border,#e2e8f0);border-radius:2rem;background:#fff;color:var(--bc-text-muted,#64748b);font-size:.82rem;font-weight:500;cursor:pointer;white-space:nowrap;transition:all .15s;flex-shrink:0}
.bc-filter-bar__btn:hover{border-color:var(--bc-primary,#0062cc);color:var(--bc-primary,#0062cc);background:#f0f7ff}
.bc-filter-bar__btn--active{background:var(--bc-primary,#0062cc);border-color:var(--bc-primary,#0062cc);color:#fff}
.bc-filter-bar__btn--active:hover{background:#0051a8}
.bc-filter-bar__btn svg{opacity:.75}
.bc-filter-bar__btn--active svg{opacity:1}
.bc-filter-bar__meta{display:flex;align-items:center;gap:.75rem;flex-shrink:0;border-left:1px solid var(--bc-border,#e2e8f0);padding-left:.75rem;margin-left:.25rem}
.bc-filter-bar__count{font-size:.78rem;color:var(--bc-text-muted,#64748b);font-weight:500;white-space:nowrap}
.bc-filter-bar__sort-wrap{position:relative;display:flex;align-items:center}
.bc-filter-bar__sort-icon{position:absolute;left:.55rem;pointer-events:none;color:var(--bc-text-muted,#64748b)}
.bc-filter-bar__sort{padding:.3rem .6rem .3rem 1.75rem;border:1.5px solid var(--bc-border,#e2e8f0);border-radius:2rem;font-size:.78rem;background:#fff;color:var(--bc-text,#1a1a2e);cursor:pointer;appearance:none;-webkit-appearance:none;font-weight:500}
.bc-filter-bar__sort:focus{outline:none;border-color:var(--bc-primary,#0062cc)}

/* Grid */
.bc-catalog__grid{display:grid;grid-template-columns:repeat(var(--bc-catalog-cols),1fr);gap:1.5rem}
.bc-catalog__empty{text-align:center;color:var(--bc-text-muted,#64748b);padding:2rem 0}
.bc-catalog__load-more{text-align:center;padding:1.5rem 0}
.bc-catalog__load-more-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.65rem 1.75rem;border:1.5px solid var(--bc-primary,#0062cc);border-radius:2rem;background:#fff;color:var(--bc-primary,#0062cc);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .15s}
.bc-catalog__load-more-btn:hover{background:var(--bc-primary,#0062cc);color:#fff}

/* Card */
.bc-catalog__card{background:#fff;border:1px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s;position:relative}
.bc-catalog__card:hover{box-shadow:var(--bc-shadow,0 4px 20px rgba(0,0,0,.1));transform:translateY(-2px)}
.bc-catalog__card--featured{border-color:var(--bc-primary,#0062cc)}
.bc-catalog__card-ribbon{position:absolute;top:.6rem;right:-.05rem;background:var(--bc-primary,#0062cc);color:#fff;font-size:.7rem;font-weight:700;padding:.2rem .55rem;border-radius:2px 0 0 2px;z-index:1}
.bc-catalog__card-img-link{display:block;overflow:hidden;aspect-ratio:4/3}
.bc-catalog__card-img{width:100%;height:100%;object-fit:cover;transition:transform .3s}
.bc-catalog__card:hover .bc-catalog__card-img{transform:scale(1.04)}
.bc-catalog__card-img-placeholder{width:100%;aspect-ratio:4/3;display:flex;align-items:center;justify-content:center;background:var(--bc-surface,#f8f9fa)}
.bc-catalog__card-img-placeholder svg{width:56px;height:56px;opacity:.5}
.bc-catalog__card-body{padding:1rem;display:flex;flex-direction:column;flex:1}
.bc-catalog__card-badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}
.bc-catalog__badge{display:inline-flex;align-items:center;gap:.3rem;font-size:.72rem;font-weight:600;padding:.2rem .55rem;border-radius:2rem;line-height:1.3}
.bc-catalog__badge--cat{background:var(--bc-primary,#0062cc);color:#fff}
.bc-catalog__badge--available{background:#dcfce7;color:#166534}

/* ── Product detail: stock availability signal ── */
.bc-product-detail__stock {
  display: flex;
  align-items: center;
  gap: .45rem;
  font-size: .875rem;
  font-weight: 600;
  margin: .75rem 0 1rem;
}
.bc-stock__dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex-shrink: 0;
  display: inline-block;
}
.bc-stock--ok   { color: #166534; }
.bc-stock--ok   .bc-stock__dot { background: #16a34a; box-shadow: 0 0 0 3px #bbf7d0; }
.bc-stock--low  { color: #92400e; }
.bc-stock--low  .bc-stock__dot { background: #f59e0b; box-shadow: 0 0 0 3px #fde68a; }
.bc-stock--none { color: #991b1b; }
.bc-stock--none .bc-stock__dot { background: #ef4444; box-shadow: 0 0 0 3px #fecaca; }
.bc-catalog__badge--unavailable{background:#f3f4f6;color:#6b7280}
.bc-catalog__badge--cond-new{background:#d1fae5;color:#065f46}
.bc-catalog__badge--cond-refurbished{background:#fef9c3;color:#78350f}
.bc-catalog__badge--cond-used_good,.bc-catalog__badge--cond-used_fair{background:#f3f4f6;color:#374151}
.bc-catalog__badge--instant{background:#dcfce7;color:#166534}
.bc-catalog__badge--request{background:#fef3c7;color:#92400e}
.bc-catalog__card-name{margin:.25rem 0 .3rem;font-size:1rem;font-weight:700;color:var(--bc-text,#1a1a2e);line-height:1.3}
.bc-catalog__card-name a{color:inherit;text-decoration:none}
.bc-catalog__card-name a:hover{color:var(--bc-primary,#0062cc)}
.bc-catalog__card-sub{font-size:.82rem;color:var(--bc-text-muted,#64748b);margin:0 0 .5rem}
.bc-catalog__card-desc{font-size:.85rem;color:var(--bc-text-muted,#64748b);margin:.3rem 0 .6rem;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.bc-catalog__card-flags{list-style:none;margin:.5rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.bc-catalog__flag{display:inline-flex;align-items:center;gap:.25rem;font-size:.75rem;color:var(--bc-text-muted,#64748b)}
.bc-catalog__flag svg{flex-shrink:0}
.bc-catalog__flag--rx{color:#b45309}
.bc-catalog__flag--domicile{color:#0369a1}
.bc-catalog__flag--prof{color:#7c3aed}
.bc-catalog__card-footer{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--bc-border,#e2e8f0)}
.bc-catalog__card-price{font-size:.9rem;color:var(--bc-text,#1a1a2e);margin:0}
.bc-catalog__card-price span{font-size:.78rem;color:var(--bc-text-muted,#64748b)}
.bc-catalog__card-price strong{font-size:1.1rem;font-weight:700;color:var(--bc-primary,#0062cc)}
.bc-catalog__card-price small{font-size:.72rem;color:var(--bc-text-muted,#64748b);display:block}

/* Responsive */
@media(max-width:900px){.bc-catalog--cols-3,.bc-catalog--cols-4{--bc-catalog-cols:2}}
@media(max-width:640px){
  .bc-search-hero{padding:1.75rem 1rem 1.5rem;border-radius:8px}
  .bc-search-hero__headline{font-size:1.35rem}
  .bc-catalog__grid{--bc-catalog-cols:1}
  .bc-filter-bar{flex-wrap:nowrap;gap:.35rem}
  .bc-filter-bar__meta{gap:.4rem}
  .bc-filter-bar__count{display:none}
}

/* Breadcrumb */
.bc-breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:.35rem;margin-bottom:1.25rem;font-size:.85rem;color:var(--bc-text-muted,#64748b)}
.bc-breadcrumb__link{display:inline-flex;align-items:center;gap:.2rem;color:var(--bc-primary,#0062cc);text-decoration:none;font-weight:500}
.bc-breadcrumb__link:hover{text-decoration:underline}
.bc-breadcrumb__sep{color:var(--bc-text-muted,#64748b)}
.bc-breadcrumb__text{color:var(--bc-text-muted,#64748b)}
.bc-breadcrumb__text--current{color:var(--bc-text,#1a1a2e);font-weight:500}

/* ═══════════════════════════════════════════════════════════════════════════
   PRODUCT DETAIL  [gerimedical_product_detail]
   ═══════════════════════════════════════════════════════════════════════════ */

.bc-product-detail{max-width:1040px;margin:0 auto}

/* Two-column layout: gallery | info */
.bc-product-detail__layout{display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start;margin-bottom:2rem}
@media(max-width:700px){.bc-product-detail__layout{grid-template-columns:1fr}}

/* Gallery */
.bc-product-gallery{display:flex;flex-direction:column;gap:.75rem}
.bc-product-gallery__main{border-radius:var(--bc-radius,8px);overflow:hidden;background:var(--bc-surface,#f8f9fa);aspect-ratio:4/3;position:relative}
.bc-product-gallery__main-img{width:100%;height:100%;object-fit:cover;transition:opacity .2s}
.bc-product-gallery__main-iframe{width:100%;height:100%;border:0;display:block}
.bc-product-gallery__thumbs{display:flex;flex-wrap:wrap;gap:.5rem}
.bc-product-gallery .bc-product-gallery__thumb{padding:0;border:2px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);overflow:hidden;cursor:pointer;width:68px;height:68px;background:none;transition:border-color .15s;position:relative}
.bc-product-gallery .bc-product-gallery__thumb--active{border-color:var(--bc-primary,#0062cc)}
.bc-product-gallery .bc-product-gallery__thumb img{width:100%;height:100%;object-fit:cover;display:block}
.bc-product-gallery__thumb-placeholder{display:block;width:100%;height:100%;background:var(--bc-surface,#f0f0f0)}
.bc-product-gallery__play-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.bc-product-gallery__thumb--video{background:#000}

/* Info block */
.bc-product-detail__badges{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.75rem}
.bc-product-detail__name{font-size:1.6rem;font-weight:700;color:var(--bc-text,#1a1a2e);margin:.25rem 0 .5rem;line-height:1.25}
.bc-product-detail__sub{font-size:.95rem;color:var(--bc-text-muted,#64748b);margin:0 0 .75rem}
.bc-product-detail__desc{font-size:.95rem;color:var(--bc-text,#1a1a2e);line-height:1.6;margin:.5rem 0}
.bc-product-detail__price{font-size:1rem;margin:.75rem 0;display:flex;align-items:baseline;flex-wrap:wrap;gap:.3rem}
.bc-product-detail__price span{font-size:.82rem;color:var(--bc-text-muted,#64748b)}
.bc-product-detail__price strong{font-size:1.6rem;font-weight:700;color:var(--bc-primary,#0062cc)}
.bc-product-detail__price-period{font-size:.9rem;font-weight:600;color:var(--bc-text-muted,#64748b)}
.bc-product-detail__price small{font-size:.8rem;color:var(--bc-text-muted,#64748b);flex-basis:100%;margin-top:.1rem}
.bc-product-detail__min-days{font-size:.82rem;color:var(--bc-text-muted,#64748b);margin:.25rem 0}

/* Flags */
.bc-product-flags{list-style:none;margin:1rem 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.bc-product-flag{display:flex;align-items:center;gap:.5rem;font-size:.88rem;color:var(--bc-text,#1a1a2e)}
.bc-product-flag svg{flex-shrink:0;color:var(--bc-primary,#0062cc)}
.bc-product-flag--rx svg{color:#b45309}
.bc-product-flag--prof svg{color:#7c3aed}

/* Long description */
.bc-product-detail__long-desc{font-size:.95rem;line-height:1.7;color:var(--bc-text,#1a1a2e);margin-bottom:2rem}
/*
 * Elementor kit `.elementor-kit-N h2/h3` sets font-size:40px/32px at (0,1,1).
 * These rules also have (0,1,1) and load after Elementor (priority 99), so they win.
 */
.bc-product-detail__long-desc h2{font-size:1.25rem;font-weight:700;line-height:1.3;color:var(--bc-text,#1a1a2e);margin-top:1.5rem;margin-bottom:.35rem}
.bc-product-detail__long-desc h3{font-size:1.05rem;font-weight:700;line-height:1.3;color:var(--bc-text,#1a1a2e);margin-top:1.25rem;margin-bottom:.25rem}
/* Links inside long-desc should inherit body size/weight (Elementor kit sets a{font-size:18px;font-weight:700}) */
.bc-product-detail__long-desc a,.bc-product-detail a:not(.bc-btn):not(.bc-product-detail__cta){font-size:inherit;font-weight:inherit;text-decoration:none}

/* Technical specs */
.bc-product-specs{background:var(--bc-surface,#f8f9fa);border:1px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);padding:1.5rem;margin-bottom:2rem}
.bc-product-specs__title{font-size:1.1rem;font-weight:700;color:var(--bc-text,#1a1a2e);margin:0 0 1rem}
.bc-product-specs__table{width:100%;border-collapse:collapse;font-size:.9rem}
.bc-product-specs__table th,.bc-product-specs__table td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--bc-border,#e2e8f0);vertical-align:top}
.bc-product-specs__table th{font-weight:600;color:var(--bc-text,#1a1a2e);width:40%;background:#fff}
.bc-product-specs__table td{color:var(--bc-text-muted,#64748b)}
.bc-product-specs__table tr:last-child th,.bc-product-specs__table tr:last-child td{border-bottom:none}

/* Regulatory */
.bc-product-regulatory{background:#fafafa;border:1px solid #e2e8f0;border-left:3px solid var(--bc-primary,#0062cc);border-radius:var(--bc-radius,8px);padding:1.25rem 1.5rem;margin-bottom:2rem}
.bc-product-regulatory__title{font-size:1rem;font-weight:700;color:var(--bc-text,#1a1a2e);margin:0 0 .75rem}
.bc-product-regulatory__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem;font-size:.88rem;color:var(--bc-text,#1a1a2e)}
.bc-product-regulatory__list li strong{color:var(--bc-text,#1a1a2e)}
.bc-product-regulatory__ce{display:inline-block;border:2px solid currentColor;font-weight:800;font-size:.8rem;padding:.05rem .3rem;border-radius:3px;margin-right:.35rem;color:var(--bc-primary,#0062cc)}
.bc-product-regulatory__warn{color:#92400e}
.bc-product-regulatory__contra{color:#b91c1c}

/* Embedded booking section */
.bc-product-detail__booking{margin-top:2.5rem;padding-top:2rem;border-top:2px solid var(--bc-border,#e2e8f0)}
/* (0,2,0) beats Elementor kit h2 at (0,1,1) */
.bc-product-detail .bc-product-detail__booking-title{font-size:1.3rem;font-weight:700;color:var(--bc-text,#1a1a2e);margin:0 0 1.5rem}

/* Documents section */
.bc-product-docs{background:var(--bc-surface,#f8f9fa);border:1px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);padding:1.5rem;margin-bottom:2rem}
.bc-product-docs__list{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.5rem}
.bc-product-docs__item{display:flex}
.bc-product-docs__link{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);background:#fff;color:var(--bc-primary,#0062cc);font-size:.9rem;text-decoration:none;transition:border-color .15s,background .15s}
.bc-product-docs__link:hover{border-color:var(--bc-primary,#0062cc);background:#f0f6ff}
.bc-product-docs__icon{flex-shrink:0;color:var(--bc-text-muted,#64748b)}
.bc-product-docs__name{font-weight:500}
.bc-product-docs__badge{font-size:.75rem;font-weight:600;background:var(--bc-primary,#0062cc);color:#fff;border-radius:4px;padding:.1rem .4rem;text-transform:uppercase;letter-spacing:.03em}

/* No-gallery: collapse to single column */
.bc-product-detail__layout--no-gallery{grid-template-columns:1fr;max-width:640px}

/* Pricing grid (multiple rental periods) */
.bc-product-detail__pricing{margin:.75rem 0 1rem}
.bc-price-grid{display:flex;flex-wrap:wrap;gap:.5rem;margin:.25rem 0 .5rem}
.bc-price-grid__cell{flex:1 1 calc(33.33% - .35rem);min-width:88px;background:var(--bc-surface,#f8f9fa);border:1px solid var(--bc-border,#e2e8f0);border-radius:var(--bc-radius,8px);padding:.6rem .75rem;text-align:center}
.bc-price-grid__label{display:block;font-size:.72rem;color:var(--bc-text-muted,#64748b);text-transform:uppercase;letter-spacing:.03em;margin-bottom:.2rem}
.bc-price-grid__amount{display:block;font-size:1.2rem;font-weight:700;color:var(--bc-primary,#0062cc)}
.bc-product-detail__vat-note{font-size:.78rem;color:var(--bc-text-muted,#64748b);margin:.15rem 0 0}

/* Deposit line */
.bc-product-detail__deposit{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--bc-text-muted,#64748b);margin:.6rem 0 1rem}
.bc-product-detail__deposit svg{color:var(--bc-primary,#0062cc);flex-shrink:0}

/* Benefits checklist */
.bc-product-detail__benefits{list-style:none;margin:.25rem 0 1.25rem;padding:0;display:flex;flex-direction:column;gap:.35rem}
.bc-product-detail__benefits li{display:flex;align-items:center;gap:.45rem;font-size:.88rem;color:var(--bc-text,#1a1a2e)}
.bc-product-detail__benefits svg{color:var(--bc-success,#16a34a);flex-shrink:0}

/* Primary CTA */
.bc-product-detail__cta{display:inline-flex;align-items:center;gap:.5rem;background:var(--bc-primary,#0062cc);color:#fff;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;border-radius:var(--bc-radius,8px);text-decoration:none;transition:background .15s,transform .1s;margin-top:.25rem;cursor:pointer}
.bc-product-detail__cta:hover,.bc-product-detail__cta:focus{background:var(--bc-primary-hover,#004fa3);color:#fff;text-decoration:none;transform:translateY(-1px)}
.bc-product-detail__cta svg{transition:transform .15s}
.bc-product-detail__cta:hover svg{transform:translateX(3px)}

/* ─── v2.0.70 — Step 1 visual quality pass ──────────────────────────────── */

/* Calendar nav buttons */
.bc-step1__calendar-nav .bc-btn--icon {
  border: 1.5px solid var(--bc-border, #e5e7eb);
  border-radius: 50%;
  width: 36px;
  height: 36px;
  min-width: 36px;
  min-height: 36px;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--bc-text-muted, #6b7280);
  transition: border-color .15s, color .15s, box-shadow .15s;
}
.bc-step1__calendar-nav .bc-btn--icon:hover {
  border-color: var(--bc-primary, #0062cc);
  color: var(--bc-primary, #0062cc);
  box-shadow: 0 0 0 3px rgba(0, 98, 204, .08);
}

/* Month label */
.bc-cal__nav-label {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: -.01em;
  color: var(--bc-text, #111827);
}

/* Day-of-week headers */
.bc-cal__day-head {
  font-size: .7rem;
  font-weight: 600;
  color: var(--bc-text-muted, #94a3b8);
  letter-spacing: .04em;
  text-transform: uppercase;
}

/* Hint paragraphs — icon-friendly flex */
.bc-step1__hint {
  display: flex;
  align-items: center;
  gap: .5rem;
  font-size: .85rem;
  border: 1px solid var(--bc-border, #e5e7eb);
  border-radius: var(--bc-radius, 8px);
  padding: .625rem .875rem;
  background: var(--bc-surface, #f9fafb);
  text-align: left;
  color: var(--bc-text-muted, #6b7280);
}
.bc-step1__hint svg {
  flex-shrink: 0;
  color: var(--bc-primary, #0062cc);
  opacity: .75;
}

/* Selection panel */
.bc-step1__selection {
  border: 1.5px solid var(--bc-border, #e5e7eb);
  box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
}
.bc-step1__selection:hover {
  box-shadow: 0 2px 8px rgba(0, 98, 204, .09);
}

/* Date box micro-labels */
.bc-step1__date-box .bc-label {
  font-size: .68rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bc-text-muted, #9ca3af);
}

/* Date values */
.bc-step1__date {
  font-size: 1rem;
  font-weight: 700;
  color: var(--bc-text, #1f2937);
}
.bc-step1__selection--filled .bc-step1__date {
  color: var(--bc-primary, #0062cc);
}

/* Date arrow */
.bc-step1__date-arrow {
  color: var(--bc-text-muted, #cbd5e1);
  display: flex;
  align-items: center;
  align-self: center;
}

/* Price value */
.bc-step1__price-value {
  font-size: 1.25rem;
  font-weight: 800;
  letter-spacing: -.02em;
}

/* Mode buttons */
.bc-step1__mode-btn {
  flex-direction: row;
  align-items: center;
  gap: .625rem;
  padding: .75rem 1rem;
  border: 1.5px solid var(--bc-border, #e5e7eb);
  text-align: left;
  justify-content: flex-start;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
}
.bc-step1__mode-btn:hover {
  box-shadow: 0 2px 8px rgba(0, 98, 204, .09);
}
.bc-step1__mode-btn--active {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}

/* Mode button icon */
.bc-step1__mode-btn-icon {
  flex-shrink: 0;
  width: 1.25rem;
  height: 1.25rem;
  color: var(--bc-text-muted, #9ca3af);
  transition: color .15s;
}
.bc-step1__mode-btn:hover .bc-step1__mode-btn-icon,
.bc-step1__mode-btn--active .bc-step1__mode-btn-icon {
  color: var(--bc-primary, #0062cc);
}

/* Mode button text column */
.bc-step1__mode-btn-text {
  display: flex;
  flex-direction: column;
  gap: .1rem;
}
.bc-step1__mode-btn-title {
  font-size: .9rem;
  font-weight: 700;
  color: var(--bc-text, #1f2937);
  transition: color .15s;
}
.bc-step1__mode-btn--active .bc-step1__mode-btn-title {
  color: var(--bc-primary, #0062cc);
}
.bc-step1__mode-btn-sub {
  font-size: .75rem;
  color: var(--bc-text-muted, #9ca3af);
}
.bc-step1__mode-btn--active .bc-step1__mode-btn-sub {
  opacity: .8;
}

/* Renewal button */
.bc-step1__renewal-btn {
  border: 1.5px solid var(--bc-border, #e5e7eb);
  box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
}
.bc-step1__renewal-btn:hover {
  box-shadow: 0 2px 8px rgba(0, 98, 204, .09);
}
.bc-step1__renewal-btn--active,
.bc-step1__renewal-btn[aria-pressed='true'] {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}
.bc-step1__renewal-btn-label {
  font-size: .82rem;
  font-weight: 700;
}

/* Legend */
.bc-cal__legend-wrap {
  display: block;
  margin-top: .875rem;
}
.bc-cal__legend-toggle {
  font-size: .78rem;
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  color: var(--bc-text-muted, #94a3b8);
  cursor: pointer;
}
.bc-cal__swatch {
  border-radius: 50%;
}

/* Slot option pills */
.bc-slot-option__label {
  border: 1.5px solid var(--bc-border, #e5e7eb);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
  transition: box-shadow .15s, border-color .15s;
}
.bc-slot-option__input:checked + .bc-slot-option__label {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}

/* ─── v2.0.71 — Step 3 visual quality pass ──────────────────────────────── */

/* Section headings — icon + text row (matching step 2 pattern) */
.bc-form__section-heading {
  display: flex;
  align-items: center;
  gap: .5rem;
}
.bc-form__section-heading .bc-section-icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  color: var(--bc-primary, #0062cc);
  opacity: .8;
}

/* Sections — card-like with soft border */
.bc-form__section {
  background: var(--bc-surface, #fff);
  border: 1.5px solid var(--bc-border, #e5e7eb);
  border-radius: var(--bc-radius, 8px);
  padding: 1rem 1.125rem 1.25rem;
  margin-bottom: 1rem;
}
.bc-form__section:last-of-type {
  margin-bottom: .5rem;
}

/* Billing toggle — expand-button style */
.bc-billing-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  gap: .625rem;
  padding: .625rem .75rem;
  background: var(--bc-surface, #f9fafb);
  border: 1.5px solid var(--bc-border, #e5e7eb);
  border-radius: var(--bc-radius, 8px);
  text-decoration: none;
  font-size: .82rem;
  font-weight: 600;
  color: var(--bc-text, #374151);
  cursor: pointer;
  transition: border-color .15s, background .15s, box-shadow .15s;
  text-align: left;
}
.bc-billing-toggle:hover {
  border-color: var(--bc-primary, #0062cc);
  background: var(--bc-primary-light, #eff6ff);
  color: var(--bc-primary, #0062cc);
  box-shadow: 0 2px 8px rgba(0, 98, 204, .09);
}
.bc-billing-toggle[aria-expanded="true"] {
  border-color: var(--bc-primary, #0062cc);
  color: var(--bc-primary, #0062cc);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}
.bc-billing-toggle__icon {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  opacity: .7;
}
.bc-billing-toggle__chevron {
  width: 14px;
  height: 14px;
  flex-shrink: 0;
  margin-left: auto;
  transition: transform .2s;
  opacity: .6;
}
.bc-billing-toggle[aria-expanded="true"] .bc-billing-toggle__chevron {
  transform: rotate(180deg);
}
.bc-billing-toggle span {
  flex: 1;
}

/* Logistics mode — checked glow */
.bc-logistics-mode-btn:has(input:checked) {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}
.bc-logistics-mode-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--bc-text-muted, #9ca3af);
  min-width: 9rem;
}

/* Lift radios — checked glow */
.bc-lift-radio input[type="radio"]:checked + .bc-lift-radio__btn {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, .12);
}

/* Step 3 subtitle */
.bc-step3__subtitle {
  display: flex;
  align-items: flex-start;
  gap: .5rem;
  font-size: .85rem;
  border: 1px solid var(--bc-border, #e5e7eb);
  border-radius: var(--bc-radius, 8px);
  padding: .625rem .875rem;
  background: var(--bc-surface, #f9fafb);
  color: var(--bc-text-muted, #6b7280);
  margin-bottom: 1.25rem;
}

/* Summary card — refine total row */
.bc-step3__summary-row--total .bc-step3__summary-label,
.bc-step3__summary-row--total .bc-step3__summary-val {
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: -.01em;
}
.bc-step3__summary-label {
  font-size: .72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--bc-text-muted, #9ca3af);
}
.bc-step3__summary-val {
  font-size: .88rem;
}
.bc-step3__summary-val--accent {
  color: var(--bc-color-success, #16a34a);
  font-weight: 700;
}

/* Confirmation panel SVG icon */
.bc-step5__icon {
  display: flex;
  align-items: center;
  justify-content: center;
}
.bc-step5__svg-icon {
  width: 3rem;
  height: 3rem;
  stroke-width: 1.5;
  color: var(--bc-text-muted, #9ca3af);
}
.bc-step5__svg-icon--success {
  color: var(--bc-color-success, #16a34a);
}

/* Field hint text */
.bc-field-hint {
  display: block;
  font-size: .72rem;
  color: var(--bc-text-muted, #9ca3af);
  margin-top: .25rem;
  line-height: 1.4;
}

/* Store address card */
.bc-store-address__loading {
  font-size: .82rem;
  color: var(--bc-text-muted, #9ca3af);
}
