/**
 * Ramaya Boat Booking Engine — front-end booking form
 */

.rbbe-booking {
  --rbbe-ink: #1a2b36;
  --rbbe-muted: #6d7f8c;
  --rbbe-sea: #52a9b8;
  --rbbe-sea-hover: #4496a4;
  --rbbe-sea-soft: #e9f4f6;
  --rbbe-sea-mid: #cfe8ee;
  --rbbe-sea-deep: #2c5f6b;
  --rbbe-accent: var(--rbbe-sea);
  --rbbe-accent-hover: var(--rbbe-sea-hover);
  --rbbe-accent-soft: var(--rbbe-sea-soft);
  --rbbe-accent-mid: var(--rbbe-sea-mid);
  --rbbe-sand: #f4f7f9;
  --rbbe-page-bg: #eef2f5;
  --rbbe-surface: #ffffff;
  --rbbe-line: #e2e9ee;
  --rbbe-radius: 20px;
  --rbbe-radius-sm: 14px;
  --rbbe-shadow: 0 10px 40px rgba(26, 43, 54, 0.05);
  --rbbe-shadow-card: 0 4px 18px rgba(26, 43, 54, 0.04);
  --rbbe-btn-accent: var(--ramaya-sea, var(--rbbe-sea));
  --rbbe-btn-accent-deep: var(--ramaya-sea-deep, var(--rbbe-sea-deep));
  --rbbe-btn-accent-mid: color-mix(in srgb, var(--rbbe-btn-accent) 68%, var(--rbbe-btn-accent-deep));
  --rbbe-btn-gradient: linear-gradient(
    135deg,
    var(--rbbe-btn-accent) 0%,
    var(--rbbe-btn-accent-mid) 55%,
    var(--rbbe-btn-accent-deep) 100%
  );
  --rbbe-btn-gradient-hover: linear-gradient(
    135deg,
    color-mix(in srgb, var(--rbbe-btn-accent) 92%, #fff) 0%,
    var(--rbbe-btn-accent) 42%,
    var(--rbbe-btn-accent-deep) 100%
  );
  --rbbe-btn-gradient-active: linear-gradient(
    135deg,
    var(--rbbe-btn-accent-deep) 0%,
    color-mix(in srgb, var(--rbbe-btn-accent-deep) 82%, #000) 100%
  );
  --rbbe-btn-shadow:
    0 12px 28px color-mix(in srgb, var(--rbbe-btn-accent) 34%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.22);
  --rbbe-btn-shadow-hover:
    0 16px 34px color-mix(in srgb, var(--rbbe-btn-accent) 38%, transparent),
    inset 0 1px 0 rgba(255, 255, 255, 0.24);

  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 1.25rem 0;
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  color: var(--rbbe-ink);
  -webkit-font-smoothing: antialiased;
}

body.rbbe-showing-results {
  --rbbe-page-bg: #fff;
  /* Inset seragam: kotak refine, judul leg, dan isi kartu */
  --rbbe-results-inner-x: clamp(0.85rem, 2.2vw, 1.15rem);
  --rbbe-results-inner-y: 0.85rem;
  --rbbe-results-gap-x: clamp(0.65rem, 1.8vw, 0.85rem);
  --rbbe-results-pad-x: var(--rbbe-results-inner-x);
  --rbbe-content-max: var(--ramaya-content-max, 1140px);
  background-color: #fff;
}

/* Satu gutter (seperti header) — .site default punya padding + max-width sendiri */
body.rbbe-showing-results:not(.ramaya-page-hero) .site,
body.rbbe-showing-flow:not(.ramaya-page-hero) .site {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

body.rbbe-showing-results:not(.ramaya-page-hero) .site-footer__inner,
body.rbbe-showing-flow:not(.ramaya-page-hero) .site-footer__inner {
  padding-left: var(--ramaya-gutter-x, 1.25rem);
  padding-right: var(--ramaya-gutter-x, 1.25rem);
}

/* Hasil search: lebar konten = header (1140px + gutter) — gutter hanya di .site-main */
body.rbbe-showing-results.ramaya-booking-hero .site-main,
body.rbbe-showing-results:not(.ramaya-booking-hero) .site-main,
body.rbbe-showing-results.rbbe-showing-flow .site-main {
  width: 100%;
  max-width: var(--rbbe-content-max, 1140px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(0.4rem, 2.5vw, var(--ramaya-gutter-x, 1.25rem));
  padding-right: clamp(0.4rem, 2.5vw, var(--ramaya-gutter-x, 1.25rem));
  box-sizing: border-box;
}

body.rbbe-showing-results.rbbe-showing-flow .rbbe-booking-page-wrap--flow {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

body.rbbe-showing-results .rbbe-booking,
body.rbbe-showing-results .rbbe-booking__panel--results {
  width: 100%;
  max-width: none;
}

body.rbbe-showing-results .rbbe-booking {
  max-width: none;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
  padding-left: 0;
  padding-right: 0;
}

body.rbbe-showing-results .rbbe-booking__panel--results,
body.rbbe-showing-results .rbbe-booking__panel--preflow {
  background: #fff;
  border: none;
  box-shadow: none;
  padding: 0.65rem 0 1rem;
  box-sizing: border-box;
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Hasil: refine + kartu satu lebar penuh (hindari 720px / margin auto di tengah) */
body.rbbe-showing-results .rbbe-results-layout,
body.rbbe-showing-results .rbbe-results-header,
body.rbbe-showing-results .rbbe-results-refine,
body.rbbe-showing-results .rbbe-results-leg,
body.rbbe-showing-results .rbbe-results-leg__head,
body.rbbe-showing-results .rbbe-result-cards,
body.rbbe-showing-results .rbbe-result-card {
  width: 100%;
  max-width: 100%;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

body.rbbe-showing-results .rbbe-results-layout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
}

body:not(.rbbe-showing-results) .rbbe-booking:not(.rbbe-booking--wide):not(.rbbe-booking--flow) .rbbe-booking__panel--search {
  width: 100%;
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

body.rbbe-showing-results .rbbe-booking.rbbe-booking--wide {
  max-width: none;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
}

.rbbe-booking.rbbe-booking--wide {
  max-width: 100%;
  width: 100%;
}

/* —— Multi-page flow (1140px, aligned with site header) —— */
body.rbbe-showing-flow {
  --rbbe-flow-max: 1140px;
  background: #fff;
}

body.rbbe-showing-flow .site-main,
body.rbbe-showing-thanks .site-main {
  width: 100%;
  max-width: var(--rbbe-flow-max, 1140px);
  margin-left: auto;
  margin-right: auto;
  padding-left: clamp(0.4rem, 2.5vw, var(--ramaya-gutter-x, 1.25rem));
  padding-right: clamp(0.4rem, 2.5vw, var(--ramaya-gutter-x, 1.25rem));
  box-sizing: border-box;
}

body.rbbe-showing-flow .rbbe-booking-page-wrap--flow {
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding-left: 0;
  padding-right: 0;
  box-sizing: border-box;
}

.rbbe-booking--flow {
  --rbbe-flow-ink: #152a35;
  --rbbe-flow-muted: #5f7380;
  --rbbe-flow-line: #d8e4ea;
  --rbbe-flow-accent: var(--rbbe-sea, #52a9b8);
  --rbbe-flow-accent-deep: var(--rbbe-sea-deep, #2c5f6b);
  --rbbe-flow-paper: #ffffff;
  --rbbe-flow-wash: #f4f9fb;
  --rbbe-flow-gradient: linear-gradient(
    135deg,
    color-mix(in srgb, var(--rbbe-flow-accent-deep) 92%, #0a1620) 0%,
    color-mix(in srgb, var(--rbbe-flow-accent) 78%, #1a3d4a) 48%,
    color-mix(in srgb, var(--rbbe-flow-accent) 55%, #2a6a78) 100%
  );
  --rbbe-ref-accent: var(--rbbe-sea);
  --rbbe-ref-accent-hover: var(--rbbe-sea-hover);
  --rbbe-ref-accent-soft: var(--rbbe-sea-soft);
  --rbbe-ref-accent-mid: var(--rbbe-sea-mid);
  --rbbe-ref-ink: var(--rbbe-flow-ink);
  --rbbe-ref-muted: var(--rbbe-flow-muted);
  --rbbe-ref-line: var(--rbbe-flow-line);
  --rbbe-ref-radius: 10px;

  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: clamp(0.85rem, 2vw, 1.5rem) 0 clamp(2rem, 4vw, 3rem);
}

.rbbe-booking--flow .rbbe-booking__panel--flow,
.rbbe-booking--flow .rbbe-booking__panel--preflow {
  padding: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.rbbe-booking--flow .rbbe-booking__title {
  margin-bottom: 1.25rem;
  font-size: clamp(1.15rem, 2.5vw, 1.35rem);
}

/* —— Flow stepper (4-step, premium numbered) —— */
.rbbe-booking--flow .rbbe-booking__progress--numbered {
  --rbbe-stepper-marker: 2rem;
  --rbbe-stepper-pad-y: 1rem;
  --rbbe-stepper-pad-x: 0.9rem;
  --rbbe-stepper-label-gap: 0.55rem;
  margin: 0 0 clamp(1.15rem, 3vw, 1.65rem);
  padding: var(--rbbe-stepper-pad-y) var(--rbbe-stepper-pad-x);
  border: none;
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, var(--rbbe-flow-wash, #f4f9fb) 100%);
  box-shadow:
    inset 0 0 0 1px color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 14%, var(--rbbe-flow-line, #d8e4ea)),
    0 2px 10px rgba(21, 42, 53, 0.05);
  overflow: visible;
}

.rbbe-booking--flow .rbbe-stepper--numbered {
  display: flex;
  align-items: flex-start;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  background: transparent;
  border: none;
  box-shadow: none;
  overflow: visible;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  position: static;
  background: transparent;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--rbbe-stepper-label-gap, 0.55rem);
  width: 100%;
  min-width: 0;
  padding: 0;
  text-decoration: none;
  color: var(--rbbe-flow-muted, #7a8f99);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__track {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: var(--rbbe-stepper-marker, 2rem);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__spacer {
  flex: 1 1 0;
  min-width: 0;
  height: 2px;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__connector {
  flex: 1 1 0;
  min-width: 0;
  height: 2px;
  margin: 0 0.2rem;
  border-radius: 999px;
  background: color-mix(in srgb, var(--rbbe-flow-line, #d8e4ea) 92%, #fff);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__connector.is-filled {
  background: color-mix(in srgb, #22a06b 55%, var(--rbbe-flow-line, #d8e4ea));
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-done .rbbe-stepper__connector {
  background: color-mix(in srgb, #22a06b 55%, var(--rbbe-flow-line, #d8e4ea));
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__link--disabled {
  cursor: default;
  opacity: 1;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 var(--rbbe-stepper-marker, 2rem);
  width: var(--rbbe-stepper-marker, 2rem);
  height: var(--rbbe-stepper-marker, 2rem);
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--rbbe-flow-line, #d8e4ea) 85%, #fff);
  background: #fff;
  color: var(--rbbe-flow-muted, #94a3b8);
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1;
  box-shadow: 0 1px 3px rgba(21, 42, 53, 0.06);
  transition: background 0.2s ease, border-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__check {
  font-size: 0.9rem;
  line-height: 1;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-done .rbbe-stepper__marker {
  border-color: #22a06b;
  background: #22a06b;
  color: #fff;
  box-shadow: 0 2px 8px rgba(34, 160, 107, 0.28);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-active .rbbe-stepper__marker {
  border-color: var(--rbbe-flow-accent, var(--rbbe-ref-accent));
  background: var(--rbbe-flow-accent, var(--rbbe-ref-accent));
  color: #fff;
  box-shadow:
    0 0 0 3px color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 22%, transparent),
    0 3px 12px color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 35%, transparent);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-active .rbbe-stepper__link {
  color: var(--rbbe-flow-ink, #152a35);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-done .rbbe-stepper__link {
  color: var(--rbbe-flow-ink, #152a35);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-pending .rbbe-stepper__link {
  color: var(--rbbe-flow-muted, #94a3b8);
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__label {
  display: block;
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0 0.15rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-align: center;
  line-height: 1.35;
  letter-spacing: 0.01em;
}

.rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__item.is-active .rbbe-stepper__label {
  font-weight: 700;
  color: var(--rbbe-flow-accent-deep, var(--rbbe-ref-accent));
}

@media (max-width: 640px) {
  .rbbe-booking--flow .rbbe-booking__progress--numbered {
    --rbbe-stepper-marker: 1.875rem;
    --rbbe-stepper-pad-y: 1.1rem;
    --rbbe-stepper-pad-x: 0.75rem;
    --rbbe-stepper-label-gap: 0.6rem;
    margin-bottom: 1.1rem;
    border-radius: 16px;
  }

  .rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__label {
    font-size: 0.62rem;
    line-height: 1.4;
    padding: 0 0.08rem;
  }

  .rbbe-booking--flow .rbbe-stepper--numbered .rbbe-stepper__connector {
    margin: 0 0.22rem;
  }
}

.rbbe-booking *,
.rbbe-booking *::before,
.rbbe-booking *::after {
  box-sizing: border-box;
}

.rbbe-booking__title {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  letter-spacing: -0.02em;
}

.rbbe-booking h3 {
  margin: 1.25rem 0 0.5rem;
  font-size: 1rem;
  font-weight: 700;
}

.rbbe-muted {
  color: var(--rbbe-muted);
  font-size: 0.9rem;
}

.rbbe-alert {
  margin: 0 0 1rem;
  padding: 0.75rem 1rem;
  border-radius: var(--rbbe-radius-sm);
  font-size: 0.92rem;
}

.rbbe-alert--error {
  background: #fef2f2;
  border: 1px solid #fecaca;
  color: #991b1b;
}

.rbbe-alert--success {
  background: #ecfdf5;
  border: 1px solid #a7f3d0;
  color: #065f46;
}

.rbbe-alert--info {
  background: var(--rbbe-accent-soft);
  border: 1px solid var(--rbbe-accent-mid);
  color: color-mix(in srgb, var(--rbbe-accent) 70%, #0f172a);
}

/* —— Thank-you page (post-payment) — same width as flow steps —— */
.rbbe-booking--thanks {
  max-width: 100%;
  width: 100%;
}

.rbbe-booking--thanks .rbbe-booking__panel--thanks {
  max-width: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  box-shadow: none;
  background: transparent;
}

.rbbe-thanks {
  width: 100%;
  max-width: 100%;
  padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2.5vw, 1.15rem);
  border: 1px solid var(--rbbe-flow-line, #d8e4ea);
  border-radius: 14px;
  background: #fff;
  box-shadow: var(--rbbe-shadow-card, 0 4px 18px rgba(26, 43, 54, 0.04));
  box-sizing: border-box;
}

.rbbe-thanks__hero {
  text-align: center;
  margin-bottom: 1.5rem;
}

.rbbe-thanks__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 4rem;
  height: 4rem;
  margin-bottom: 0.85rem;
  border-radius: 50%;
  background: color-mix(in srgb, #22a06b 18%, #fff);
  color: #22a06b;
  box-shadow: 0 4px 16px rgba(34, 160, 107, 0.2);
}

.rbbe-thanks__badge {
  display: inline-block;
  margin-bottom: 0.65rem;
  padding: 0.25rem 0.65rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 14%, #fff);
  color: var(--rbbe-flow-accent-deep, #2c5f6b);
}

.rbbe-thanks__title {
  margin: 0 0 0.5rem;
  font-size: clamp(1.5rem, 3.5vw, 1.85rem);
  font-weight: 700;
  color: var(--rbbe-flow-ink, #152a35);
}

.rbbe-thanks__lead {
  margin: 0;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--rbbe-flow-muted, #5f7380);
}

.rbbe-thanks__ref-card {
  margin: 0 0 1.25rem;
  padding: 1.1rem 1.15rem;
  text-align: center;
  border-radius: 14px;
  background: linear-gradient(180deg, #fff 0%, var(--rbbe-flow-wash, #f4f9fb) 100%);
  border: 1px solid color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 22%, var(--rbbe-flow-line, #d8e4ea));
  box-shadow: 0 2px 12px rgba(21, 42, 53, 0.06);
}

.rbbe-thanks__ref-label {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rbbe-flow-muted, #7a8f99);
}

.rbbe-thanks__ref-value {
  margin: 0 0 0.85rem;
  font-size: clamp(1.25rem, 3vw, 1.5rem);
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--rbbe-flow-accent-deep, #2c5f6b);
  word-break: break-all;
}

.rbbe-thanks__meta {
  margin: 0 0 1.25rem;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}

.rbbe-thanks__meta-row {
  display: grid;
  grid-template-columns: minmax(5rem, 28%) 1fr;
  gap: 0.5rem 1rem;
  align-items: baseline;
  padding-bottom: 0.65rem;
  border-bottom: 1px solid var(--rbbe-flow-line, #e8edf2);
}

.rbbe-thanks__meta-row:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

.rbbe-thanks__meta-row dt {
  margin: 0;
  font-size: 0.8rem;
  font-weight: 600;
  color: var(--rbbe-flow-muted, #7a8f99);
}

.rbbe-thanks__meta-row dd {
  margin: 0;
  font-size: 0.92rem;
  color: var(--rbbe-flow-ink, #152a35);
}

.rbbe-thanks__crossings-title {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--rbbe-flow-ink, #152a35);
}

.rbbe-thanks__crossings {
  margin: 0 0 1.25rem;
}

.rbbe-thanks__legs {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.rbbe-thanks__legs .rbbe-flow-leg {
  margin: 0;
}

.rbbe-thanks__legs .rbbe-flow-leg__price {
  display: none;
}

.rbbe-thanks__note {
  margin: 0 0 1.25rem;
  font-size: 0.88rem;
  line-height: 1.5;
}

.rbbe-thanks__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  justify-content: center;
}

.rbbe-thanks__actions .rbbe-btn {
  min-width: 10rem;
}

@media (max-width: 520px) {
  .rbbe-thanks__meta-row {
    grid-template-columns: 1fr;
  }

  .rbbe-thanks__actions {
    flex-direction: column;
  }

  .rbbe-thanks__actions .rbbe-btn {
    width: 100%;
  }
}

.rbbe-booking__panel {
  padding: 1.5rem clamp(1rem, 2.5vw, 1.75rem);
  background: var(--rbbe-surface);
  border: 1px solid var(--rbbe-line);
  border-radius: var(--rbbe-radius);
  box-shadow: var(--rbbe-shadow);
}

.rbbe-booking__panel--results {
  padding: clamp(1.25rem, 2.5vw, 1.75rem);
  background: var(--rbbe-surface);
  border-color: color-mix(in srgb, var(--rbbe-line) 90%, var(--rbbe-accent) 10%);
}

body.rbbe-showing-results .rbbe-booking__panel--results,
body.rbbe-showing-results .rbbe-booking__panel--preflow {
  padding-left: 0;
  padding-right: 0;
}

.rbbe-fields--grid {
  display: grid;
  gap: 0.85rem 1rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (max-width: 560px) {
  .rbbe-fields--grid {
    grid-template-columns: 1fr;
  }
}

.rbbe-fields label {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--rbbe-muted);
}

.rbbe-fields label.rbbe-full {
  grid-column: 1 / -1;
}

.rbbe-fields input,
.rbbe-fields select,
.rbbe-fields textarea {
  width: 100%;
  padding: 0.55rem 0.65rem;
  border: 1px solid var(--rbbe-line);
  border-radius: 10px;
  font-size: 0.95rem;
  color: var(--rbbe-ink);
  background: #fff;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.rbbe-fields input:focus,
.rbbe-fields select:focus,
.rbbe-fields textarea:focus {
  outline: none;
  border-color: color-mix(in srgb, var(--rbbe-accent) 45%, var(--rbbe-line));
  box-shadow: 0 0 0 3px var(--rbbe-accent-soft);
}

.rbbe-radio-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  font-weight: 500;
}

.rbbe-radio-row label {
  flex-direction: row;
  align-items: center;
  gap: 0.35rem;
  color: var(--rbbe-ink);
}

.rbbe-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.62rem 1.35rem;
  border: 1px solid var(--rbbe-line);
  border-radius: 999px;
  background: #fff;
  color: var(--rbbe-ink);
  font-weight: 600;
  font-size: 0.9rem;
  letter-spacing: 0.01em;
  cursor: pointer;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.rbbe-btn:hover {
  border-color: color-mix(in srgb, var(--rbbe-accent) 28%, var(--rbbe-line));
  background: var(--rbbe-sand);
}

.rbbe-btn--primary {
  border-color: transparent;
  background: var(--rbbe-btn-gradient);
  color: #fff;
  font-weight: 700;
  box-shadow: var(--rbbe-btn-shadow);
}

.rbbe-btn--primary:hover {
  background: var(--rbbe-btn-gradient-hover);
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

.rbbe-btn--primary:active {
  background: var(--rbbe-btn-gradient-active);
  transform: translateY(0);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--rbbe-btn-accent) 28%, transparent);
}

.rbbe-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

/* Premium chevron stepper */
.rbbe-booking__progress {
  margin: 0 0 1.5rem;
}

/* Numbered 4-step flow — container styles on .rbbe-booking__progress--numbered (see flow block above) */

/* Legacy numbered rules — flow uses scoped block above; keep base reset only */
.rbbe-stepper.rbbe-stepper--numbered {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0;
  padding: 0;
  margin: 0;
  list-style: none;
  min-height: 0;
  background: transparent;
  box-shadow: none;
  border-radius: 0;
  overflow: visible;
}

.rbbe-stepper.rbbe-stepper--numbered .rbbe-stepper__item {
  flex: 1 1 0;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  min-height: 0;
  min-width: 0;
  margin: 0;
  padding: 0;
  background: transparent;
  color: var(--rbbe-ref-muted);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0;
  text-transform: none;
  position: static;
  z-index: auto;
}

.rbbe-stepper.rbbe-stepper--numbered .rbbe-stepper__item:not(:last-child)::after {
  display: none;
}

.rbbe-booking--flow .rbbe-flow-step-intro {
  margin: 0 0 1rem;
  color: var(--rbbe-ref-muted);
  font-size: 0.92rem;
}

.rbbe-booking--flow .rbbe-flow-step-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 1.25rem;
}

.rbbe-confirm-summary {
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: #fff;
}

.rbbe-confirm-summary dl {
  margin: 0 0 0.85rem;
}

.rbbe-confirm-summary dt {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--rbbe-ref-muted);
}

.rbbe-confirm-summary dd {
  margin: 0.15rem 0 0;
  font-weight: 600;
}

.rbbe-confirm-summary__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin: 1rem 0 0;
  padding-top: 1rem;
  border-top: 1px solid var(--rbbe-ref-line);
  font-size: 1.05rem;
}

.rbbe-flow-step-actions--split {
  justify-content: space-between;
}

.rbbe-itinerary-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 768px) {
  .rbbe-itinerary-layout {
    grid-template-columns: 1fr;
  }
}

.rbbe-confirm-layout,
.rbbe-payment-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 1.5rem;
  align-items: start;
}

@media (max-width: 768px) {
  .rbbe-confirm-layout,
  .rbbe-payment-layout {
    grid-template-columns: 1fr;
  }
}

.rbbe-itinerary-layout__pax {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1rem;
  font-weight: 600;
}

.rbbe-itinerary-layout__leg-title {
  margin: 0 0 0.35rem;
  font-size: 0.95rem;
}

.rbbe-itinerary-price-card {
  padding: 1.25rem 1.35rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: #fff;
}

.rbbe-itinerary-price-card__row,
.rbbe-itinerary-price-card__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin: 0;
}

.rbbe-itinerary-price-card__total {
  margin-top: 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--rbbe-ref-line);
  font-size: 1.05rem;
}

.rbbe-itinerary-price-card__note {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  color: var(--rbbe-ref-muted);
}

/* Flow itinerary summary — outbound + return legs */
.rbbe-flow-itinerary {
  margin-bottom: 1.25rem;
  padding: 1rem 1.1rem;
  border: 1px solid var(--rbbe-line);
  border-radius: var(--rbbe-radius-sm);
  background: linear-gradient(180deg, #fff 0%, color-mix(in srgb, var(--rbbe-accent-soft) 22%, #fff) 100%);
  box-shadow: var(--rbbe-shadow-card);
}

.rbbe-flow-itinerary__top {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  margin-bottom: 0.85rem;
  padding-bottom: 0.75rem;
  border-bottom: 1px solid color-mix(in srgb, var(--rbbe-line) 80%, transparent);
}

.rbbe-flow-itinerary__route {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--rbbe-ink);
}

.rbbe-flow-itinerary__type {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--rbbe-accent) 88%, var(--rbbe-ink));
  background: color-mix(in srgb, var(--rbbe-accent-soft) 70%, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-accent) 25%, var(--rbbe-line));
}

.rbbe-flow-itinerary__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(10rem, 13.5rem);
  gap: 1rem 1.25rem;
  align-items: start;
}

.rbbe-flow-itinerary__legs {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.rbbe-flow-leg {
  padding: 0.65rem 0.75rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--rbbe-line) 90%, transparent);
}

.rbbe-flow-leg--return {
  border-color: color-mix(in srgb, var(--rbbe-accent) 28%, var(--rbbe-line));
  background: color-mix(in srgb, var(--rbbe-accent-soft) 35%, #fff);
}

.rbbe-flow-leg__head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.45rem;
}

.rbbe-flow-leg__badge {
  display: inline-flex;
  padding: 0.15rem 0.45rem;
  border-radius: 4px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: #fff;
  background: var(--rbbe-accent);
}

.rbbe-flow-leg--return .rbbe-flow-leg__badge {
  background: color-mix(in srgb, var(--rbbe-accent) 75%, var(--rbbe-ink));
}

.rbbe-flow-leg__date {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: color-mix(in srgb, var(--rbbe-accent) 75%, var(--rbbe-ink));
}

.rbbe-check-in,
.rbbe-flow-leg__check-in,
.rbbe-voucher__check-in,
.rbbe-result-card__check-in,
.rbbe-detail-modal__check-in {
  display: grid;
  gap: 0.15rem;
  margin-top: 0.5rem;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  font-size: 0.78rem;
  line-height: 1.35;
  background: color-mix(in srgb, var(--rbbe-accent-soft) 40%, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-accent) 18%, var(--rbbe-line));
}

.rbbe-check-in__label,
.rbbe-flow-leg__check-in__label,
.rbbe-voucher__check-in__label,
.rbbe-result-card__check-in__label,
.rbbe-detail-modal__check-in__label {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--rbbe-accent) 70%, var(--rbbe-ink));
}

.rbbe-check-in__sentence,
.rbbe-flow-leg__check-in__sentence,
.rbbe-voucher__check-in__sentence,
.rbbe-result-card__check-in__sentence,
.rbbe-detail-modal__check-in__sentence {
  display: block;
  font-size: 0.9rem;
  font-weight: 800;
  line-height: 1.35;
  color: color-mix(in srgb, var(--rbbe-accent) 48%, var(--rbbe-ink));
}

.rbbe-check-in__name,
.rbbe-flow-leg__check-in__name,
.rbbe-voucher__check-in__name,
.rbbe-result-card__check-in__name,
.rbbe-detail-modal__check-in__name {
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--rbbe-ink);
}

.rbbe-check-in__address,
.rbbe-flow-leg__check-in__address,
.rbbe-voucher__check-in__address,
.rbbe-result-card__check-in__address,
.rbbe-detail-modal__check-in__address {
  color: color-mix(in srgb, var(--rbbe-ink) 72%, transparent);
}

.rbbe-check-in__map,
.rbbe-flow-leg__check-in__map,
.rbbe-voucher__check-in__map,
.rbbe-result-card__check-in__map,
.rbbe-detail-modal__check-in__map {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--rbbe-accent);
  text-decoration: none;
}

.rbbe-check-in__map:hover,
.rbbe-flow-leg__check-in__map:hover,
.rbbe-voucher__check-in__map:hover,
.rbbe-result-card__check-in__map:hover,
.rbbe-detail-modal__check-in__map:hover {
  text-decoration: underline;
}

.rbbe-flow-leg__price {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-ink);
  white-space: nowrap;
}

.rbbe-flow-leg__route.rbbe-result-card__route {
  margin-bottom: 0;
}

.rbbe-flow-leg--return .rbbe-result-card__pin {
  background: color-mix(in srgb, var(--rbbe-sea) 85%, var(--rbbe-ink));
}

.rbbe-flow-leg--return .rbbe-result-card__line {
  background: linear-gradient(
    180deg,
    color-mix(in srgb, var(--rbbe-sea) 85%, var(--rbbe-ink)) 0%,
    color-mix(in srgb, var(--rbbe-sea-mid) 70%, var(--rbbe-sea)) 100%
  );
}

.rbbe-flow-itinerary__price {
  padding: 0.75rem 0.85rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid var(--rbbe-line);
}

.rbbe-flow-itinerary__price-lines {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rbbe-flow-itinerary__price-lines li {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0;
  padding: 0.35rem 0;
  font-size: 0.84rem;
  color: var(--rbbe-muted);
}

.rbbe-flow-itinerary__price-copy {
  display: grid;
  gap: 0.08rem;
}

.rbbe-flow-itinerary__price-note {
  font-size: 0.71rem;
  color: var(--rbbe-muted);
}

.rbbe-flow-itinerary__price-lines strong {
  font-size: 0.9rem;
  color: var(--rbbe-ink);
}

.rbbe-flow-itinerary__total {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.75rem;
  margin: 0.5rem 0 0;
  padding-top: 0.55rem;
  border-top: 1px solid var(--rbbe-line);
  font-size: 0.9rem;
  font-weight: 600;
}

.rbbe-flow-itinerary__total strong {
  font-size: 1.12rem;
  color: var(--rbbe-ink);
}

.rbbe-flow-itinerary__tax {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  color: var(--rbbe-muted);
  text-align: right;
}

.rbbe-itinerary-head {
  margin-bottom: 0.85rem;
}

.rbbe-itinerary-head__row {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0.85rem;
}

.rbbe-itinerary-head__pax {
  display: flex;
  align-items: center;
  gap: 0.42rem;
  flex-wrap: nowrap;
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: var(--rbbe-ink);
  white-space: nowrap;
}

.rbbe-itinerary-head__pax-icon {
  display: inline-flex;
  flex: 0 0 auto;
  color: var(--rbbe-accent);
}

.rbbe-itinerary-head__pax-text {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: max-content;
  white-space: nowrap;
}

.rbbe-itinerary-head__hint {
  margin: 0.35rem 0 0;
  font-size: 0.84rem;
  color: var(--rbbe-muted);
}

.rbbe-itinerary-pax {
  position: static;
}

.rbbe-itinerary-head__change {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.25rem;
  width: auto !important;
  max-width: none !important;
  height: auto;
  min-height: 0;
  margin: 0 0 0 0.25rem;
  padding: 0;
  white-space: nowrap;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: color-mix(in srgb, var(--rbbe-accent) 72%, var(--rbbe-ink));
  font: inherit;
  font-size: 0.92rem;
  font-weight: 700;
  box-shadow: none;
  cursor: pointer;
  appearance: none;
  transition:
    color 0.18s ease;
}

.rbbe-itinerary-head__change:hover,
.rbbe-itinerary-head__change:focus-visible {
  color: color-mix(in srgb, var(--rbbe-accent) 88%, var(--rbbe-ink));
  outline: 2px solid color-mix(in srgb, var(--rbbe-accent) 24%, transparent);
  outline-offset: 3px;
}

.rbbe-itinerary-head__change-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 0.92rem;
  height: 0.92rem;
  flex: 0 0 auto;
  border-radius: 0;
  background: transparent;
  color: var(--rbbe-accent);
  box-shadow: none;
}

.rbbe-itinerary-pax__backdrop {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.42);
  backdrop-filter: blur(6px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
  z-index: 100030;
}

.rbbe-itinerary-pax.is-open .rbbe-itinerary-pax__backdrop {
  opacity: 1;
  pointer-events: auto;
}

.rbbe-itinerary-pax__panel.rbbe-pax-panel {
  position: fixed;
  top: 50%;
  left: 50%;
  width: min(32rem, calc(100vw - 1.5rem));
  max-height: calc(100dvh - 2rem);
  overflow: auto;
  margin: 0;
  padding: 1.15rem 1.1rem 1.05rem;
  transform: translate(-50%, -50%);
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 30px 90px rgba(15, 23, 42, 0.24);
  z-index: 100040;
}

.rbbe-itinerary-pax__lead {
  margin: -0.15rem 0 1rem;
  font-size: 0.84rem;
  line-height: 1.55;
  color: var(--rbbe-muted);
}

.rbbe-itinerary-pax__actions {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem;
  margin-top: 1.15rem;
}

.rbbe-itinerary-pax__actions > .rbbe-btn--outline {
  width: auto;
  min-width: 6.5rem;
  margin: 0;
  justify-self: start;
}

.rbbe-itinerary-pax__actions > .rbbe-btn--cta {
  width: auto !important;
  min-width: 13rem;
  margin: 0;
  justify-self: stretch;
}

@media (max-width: 768px) {
  .rbbe-itinerary-head__row {
    align-items: center;
  }

  .rbbe-itinerary-pax__panel.rbbe-pax-panel {
    width: calc(100vw - 1rem);
    padding: 1rem 0.95rem 0.95rem;
  }

  .rbbe-itinerary-pax__actions {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: stretch;
  }

  .rbbe-itinerary-pax__actions > .rbbe-btn--outline {
    width: auto;
    min-width: 6.25rem;
    justify-self: start;
  }

  .rbbe-itinerary-pax__actions > .rbbe-btn--cta {
    width: auto !important;
    min-width: 0;
    justify-self: stretch;
  }

  .rbbe-flow-itinerary__grid {
    grid-template-columns: 1fr;
  }

  .rbbe-flow-leg__head {
    grid-template-columns: auto 1fr;
  }

  .rbbe-flow-leg__price {
    grid-column: 1 / -1;
    justify-self: start;
  }

  .rbbe-flow-itinerary__tax {
    text-align: left;
  }
}

/* Legacy flow trip bar (fallback) */
.rbbe-flow-trip-bar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(9.5rem, 12rem);
  gap: 1rem 1.5rem;
  align-items: start;
  margin-bottom: 1.35rem;
  padding: 1rem 1.15rem;
  border: 1px solid var(--rbbe-line);
  border-radius: var(--rbbe-radius-sm);
  background: #fff;
  box-shadow: var(--rbbe-shadow-card);
}

.rbbe-flow-trip-bar__date {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  font-weight: 700;
  color: color-mix(in srgb, var(--rbbe-accent) 82%, var(--rbbe-ink));
}

.rbbe-flow-trip-bar__route {
  margin: 0;
}

.rbbe-flow-trip-bar__meta {
  margin: 0.75rem 0 0;
  font-size: 0.82rem;
  color: var(--rbbe-muted);
}

.rbbe-flow-trip-bar__price {
  padding-left: 1rem;
  border-left: 1px solid var(--rbbe-line);
  text-align: right;
}

.rbbe-flow-trip-bar__price-row,
.rbbe-flow-trip-bar__price-total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 0.15rem;
  margin: 0;
  font-size: 0.88rem;
}

.rbbe-flow-trip-bar__price-total {
  margin-top: 0.55rem;
  font-size: 1rem;
}

.rbbe-flow-trip-bar__price-total strong {
  font-size: 1.15rem;
  color: var(--rbbe-ink);
}

.rbbe-flow-trip-bar__price-note {
  margin: 0.45rem 0 0;
  font-size: 0.75rem;
  color: var(--rbbe-muted);
}

@media (max-width: 768px) {
  .rbbe-flow-trip-bar {
    grid-template-columns: 1fr;
  }

  .rbbe-flow-trip-bar__price {
    padding-left: 0;
    padding-top: 0.85rem;
    border-left: none;
    border-top: 1px solid var(--rbbe-line);
    text-align: left;
  }

  .rbbe-flow-trip-bar__price-row,
  .rbbe-flow-trip-bar__price-total {
    flex-direction: row;
    justify-content: space-between;
    align-items: baseline;
    width: 100%;
  }
}

.rbbe-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rbbe-passengers-form {
  width: 100%;
}

.rbbe-passengers-form--premium {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.rbbe-passengers-form__grid {
  margin-top: 0.15rem;
}

.rbbe-passengers-form--premium .rbbe-passengers-section {
  margin-bottom: 0;
  padding: clamp(1rem, 2.5vw, 1.35rem) clamp(1rem, 2.5vw, 1.4rem);
  border: 1px solid color-mix(in srgb, var(--rbbe-flow-accent, var(--rbbe-ref-accent)) 16%, var(--rbbe-ref-line, #d8e4ea));
  border-radius: 16px;
  background: linear-gradient(180deg, #ffffff 0%, var(--rbbe-flow-wash, #f8fbfc) 100%);
  box-shadow: 0 2px 14px rgba(21, 42, 53, 0.05);
}

.rbbe-passengers-section__head {
  margin-bottom: 1rem;
}

.rbbe-passengers-section__eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rbbe-flow-accent, var(--rbbe-ref-accent));
}

.rbbe-passengers-section__title {
  margin: 0;
  padding: 0;
  border: none;
  font-size: clamp(1.02rem, 2.2vw, 1.15rem);
  font-weight: 700;
  color: var(--rbbe-flow-ink, var(--rbbe-ref-ink));
  line-height: 1.3;
}

.rbbe-passengers-section--pax .rbbe-passengers-section__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem 0.75rem;
  padding-bottom: 0.75rem;
  margin-bottom: 0.85rem;
  border-bottom: 1px solid var(--rbbe-ref-line, #e8edf2);
}

.rbbe-passengers-section__badge {
  display: inline-flex;
  align-items: center;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  background: color-mix(in srgb, var(--rbbe-flow-accent, var(--rbbe-ref-accent)) 12%, #fff);
  color: var(--rbbe-flow-accent-deep, var(--rbbe-ref-accent));
}

.rbbe-passengers-section__lead {
  margin: 0.45rem 0 0;
  max-width: 36rem;
  font-size: 0.88rem;
  line-height: 1.5;
  color: var(--rbbe-flow-muted, var(--rbbe-ref-muted));
}

.rbbe-passengers-form--premium .rbbe-fld__legend {
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--rbbe-flow-muted, var(--rbbe-ref-muted));
}

.rbbe-passengers-form--premium .rbbe-fld__control {
  min-height: 2.85rem;
  border-color: color-mix(in srgb, var(--rbbe-ref-line, #d8e4ea) 88%, #fff);
  border-radius: 12px;
}

.rbbe-passengers-form .rbbe-fld__control--phone {
  padding: 0;
  overflow: hidden;
}

.rbbe-phone-field {
  display: flex;
  align-items: stretch;
  width: 100%;
  min-height: 2.85rem;
}

.rbbe-phone-field__code {
  flex: 0 0 5.25rem;
  width: 5.25rem;
  max-width: 5.25rem;
  border-right: 1px solid var(--rbbe-ref-line, #e8edf2);
  background: color-mix(in srgb, var(--rbbe-flow-wash, #f4f9fb) 65%, #fff);
}

.rbbe-phone-field__code select {
  width: 100%;
  height: 100%;
  min-height: 2.85rem;
  margin: 0;
  padding: 0 1.65rem 0 0.55rem;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--rbbe-flow-ink, var(--rbbe-ref-ink));
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f7380' d='M3 4.5 6 8l3-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.45rem center;
  background-size: 12px;
}

.rbbe-phone-field__number {
  flex: 1 1 0;
  min-width: 0;
}

.rbbe-phone-field__number input {
  width: 100%;
  height: 100%;
  min-height: 2.85rem;
  margin: 0;
  padding: 0 0.75rem;
  border: none;
  background: transparent;
  font: inherit;
  font-size: 0.95rem;
  color: var(--rbbe-flow-ink, var(--rbbe-ref-ink));
}

.rbbe-phone-field__number input::placeholder {
  color: color-mix(in srgb, var(--rbbe-ref-muted) 55%, transparent);
}

.rbbe-passengers-form .rbbe-fld__control select,
.rbbe-passengers-form .rbbe-fld__control input {
  flex: 1 1 auto;
  min-width: 0;
  border: none;
  background: transparent;
  font: inherit;
  color: var(--rbbe-ref-ink);
}

.rbbe-passengers-form .rbbe-fld__control:not(.rbbe-fld__control--phone) select {
  cursor: pointer;
  padding-right: 1.5rem;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%235f7380' d='M3 4.5 6 8l3-3.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 0.35rem center;
  background-size: 12px;
}

.rbbe-passengers-check {
  display: flex;
  align-items: flex-start;
  gap: 0.65rem;
  margin-top: 0.25rem;
  padding: 0.75rem 0.85rem;
  border-radius: 12px;
  background: color-mix(in srgb, var(--rbbe-flow-wash, #f4f9fb) 80%, #fff);
  border: 1px solid var(--rbbe-ref-line, #e8edf2);
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--rbbe-ref-muted);
  cursor: pointer;
}

.rbbe-passengers-check input {
  margin-top: 0.2rem;
  width: 1.05rem;
  height: 1.05rem;
  accent-color: var(--rbbe-flow-accent, var(--rbbe-ref-accent));
}

.rbbe-passengers-form--premium .rbbe-flow-step-actions {
  margin-top: 0.35rem;
  padding-top: 0.25rem;
}

@media (max-width: 720px) {
  .rbbe-passengers-form__grid--contact,
  .rbbe-passengers-form--premium .rbbe-form-ref__row--2 {
    grid-template-columns: 1fr;
  }

  .rbbe-phone-field__code {
    flex: 0 0 4.75rem;
    width: 4.75rem;
    max-width: 4.75rem;
  }
}

/* Legacy trip card — kept for backwards compat */
.rbbe-trip-card {
  padding: 1rem 1.15rem;
  margin-bottom: 1.25rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: #fff;
}

.rbbe-trip-card__date {
  margin: 0 0 0.75rem;
  font-weight: 600;
}

.rbbe-trip-card__route {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.75rem;
  align-items: start;
}

.rbbe-trip-card__point {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.rbbe-trip-card__point strong {
  font-size: 1.05rem;
}

.rbbe-trip-card__point span {
  font-size: 0.88rem;
  color: var(--rbbe-ref-muted);
}

.rbbe-trip-card__line {
  width: 2px;
  min-height: 48px;
  margin: 0 auto;
  background: linear-gradient(180deg, var(--rbbe-ref-teal, #0d9488), #cbd5e1);
  border-radius: 999px;
}

.rbbe-trip-card__meta {
  margin: 0.85rem 0 0;
  font-size: 0.85rem;
  color: var(--rbbe-ref-muted);
}

.rbbe-confirm-passengers {
  margin-top: 1.25rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: #fff;
}

.rbbe-confirm-passengers__title {
  margin: 0 0 0.65rem;
  font-size: 0.95rem;
}

.rbbe-confirm-passengers__list {
  margin: 0 0 1rem;
  padding-left: 1.1rem;
}

.rbbe-confirm-passengers__list li {
  margin-bottom: 0.35rem;
}

/* —— Confirmation: premium booking voucher / invoice —— */
.rbbe-booking__panel--confirmation .rbbe-booking__title {
  display: none;
}

.rbbe-booking__panel--confirmation .rbbe-flow-step-intro {
  margin: 0 0 1.15rem;
  max-width: 42rem;
  color: var(--rbbe-ref-muted, var(--rbbe-muted));
  font-size: 0.92rem;
  line-height: 1.5;
}

.rbbe-voucher,
.rbbe-payment-shell {
  --rbbe-voucher-ink: var(--rbbe-flow-ink, #152a35);
  --rbbe-voucher-muted: var(--rbbe-flow-muted, #5f7380);
  --rbbe-voucher-line: var(--rbbe-flow-line, #d8e4ea);
  --rbbe-voucher-accent: var(--rbbe-flow-accent, var(--rbbe-sea, #52a9b8));
  --rbbe-voucher-accent-deep: var(--rbbe-flow-accent-deep, var(--rbbe-sea-deep, #2c5f6b));
  --rbbe-voucher-paper: var(--rbbe-flow-paper, #ffffff);
  --rbbe-voucher-wash: var(--rbbe-flow-wash, #f4f9fb);
}

.rbbe-voucher {
  position: relative;
  max-width: 100%;
  border-radius: 16px;
  background: var(--rbbe-voucher-paper);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 18%, var(--rbbe-voucher-line));
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 22px 48px rgba(21, 42, 53, 0.08),
    0 4px 14px rgba(21, 42, 53, 0.04);
  overflow: hidden;
}

.rbbe-voucher__header,
.rbbe-payment-shell__header {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  padding: 1.35rem 1.5rem 1.15rem;
  background: var(--rbbe-flow-gradient, linear-gradient(
    135deg,
    color-mix(in srgb, var(--rbbe-voucher-accent-deep) 92%, #0a1620) 0%,
    color-mix(in srgb, var(--rbbe-voucher-accent) 78%, #1a3d4a) 48%,
    color-mix(in srgb, var(--rbbe-voucher-accent) 55%, #2a6a78) 100%
  ));
  color: #fff;
}

.rbbe-voucher__badge--due {
  color: #fff;
  background: rgba(255, 255, 255, 0.16);
  border: 1px solid rgba(255, 255, 255, 0.32);
}

.rbbe-voucher__brand {
  display: flex;
  align-items: center;
  gap: 0.85rem;
  min-width: 0;
}

.rbbe-voucher__brand-mark {
  flex-shrink: 0;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.22);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 18l6-8 4 5 3-4 3 7' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 1.35rem;
}

.rbbe-voucher__brand-text {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.rbbe-voucher__brand-name {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.2;
}

.rbbe-voucher__brand-sub {
  font-size: 0.78rem;
  font-weight: 500;
  opacity: 0.88;
  letter-spacing: 0.02em;
}

.rbbe-voucher__header-end {
  text-align: right;
}

.rbbe-voucher__badge {
  display: inline-block;
  padding: 0.28rem 0.65rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-accent-deep);
  background: #fff7e6;
  border: 1px solid #f5d78e;
}

.rbbe-voucher__doc-title {
  margin: 0.45rem 0 0;
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.15;
}

.rbbe-voucher__meta {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.75rem 1rem;
  padding: 1rem 1.5rem;
  background: var(--rbbe-voucher-wash);
  border-bottom: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__meta-item {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.rbbe-voucher__meta-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__meta-value {
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--rbbe-voucher-ink);
  line-height: 1.35;
}

.rbbe-voucher__meta-value--ref {
  font-family: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;
  font-size: 0.95rem;
  letter-spacing: 0.06em;
  color: var(--rbbe-voucher-accent-deep);
}

/* Confirmation: mobile timeline vs desktop horizontal route */
.rbbe-voucher__route.rbbe-voucher__trip--desktop {
  display: none !important;
}

.rbbe-voucher__trip--mobile {
  display: block;
}

.rbbe-voucher__table-wrap--desktop {
  display: none;
}

.rbbe-voucher__table-wrap--return-mobile {
  display: block;
}

@media (min-width: 901px) {
  .rbbe-voucher__route.rbbe-voucher__trip--desktop {
    display: grid !important;
  }

  .rbbe-voucher__trip--mobile {
    display: none !important;
  }

  .rbbe-voucher__table-wrap--desktop {
    display: block;
  }

  .rbbe-voucher__table-wrap--return-mobile {
    display: none !important;
  }
}

/* Mobile: trip timeline + pricing */
.rbbe-voucher__journey {
  padding: 1.15rem 1.5rem 1.25rem;
  border-bottom: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__journey-date {
  margin: 0 0 0.85rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--rbbe-voucher-accent);
  letter-spacing: -0.02em;
}

.rbbe-voucher__journey-route {
  margin: 0;
}

.rbbe-voucher__journey .rbbe-result-card__pin {
  background: var(--rbbe-voucher-accent);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rbbe-voucher-accent) 22%, transparent);
}

.rbbe-voucher__journey .rbbe-result-card__line {
  background: linear-gradient(
    180deg,
    var(--rbbe-voucher-accent) 0%,
    color-mix(in srgb, var(--rbbe-voucher-accent) 55%, var(--rbbe-voucher-line)) 100%
  );
}

.rbbe-voucher__journey .rbbe-result-card__time {
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--rbbe-voucher-ink);
}

.rbbe-voucher__journey .rbbe-result-card__port {
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__journey .rbbe-result-card__mid-icon {
  color: var(--rbbe-voucher-accent);
}

.rbbe-voucher__journey .rbbe-result-card__mid-meta {
  color: color-mix(in srgb, var(--rbbe-voucher-accent) 50%, var(--rbbe-voucher-muted));
}

.rbbe-voucher__journey-meta {
  margin: 0.8rem 0 0;
  font-size: 0.84rem;
  color: var(--rbbe-voucher-muted);
  line-height: 1.45;
}

.rbbe-voucher__journey-pricing {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__journey-price-line {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 1rem;
  margin: 0 0 0.35rem;
  font-size: 0.9rem;
  color: var(--rbbe-voucher-ink);
}

.rbbe-voucher__journey-price-line strong {
  font-weight: 700;
}

.rbbe-voucher__journey-price-line--total {
  margin-top: 0.4rem;
  margin-bottom: 0;
  font-size: 1rem;
}

.rbbe-voucher__journey-price-line--total strong {
  font-size: 1.12rem;
  color: var(--rbbe-voucher-accent-deep);
}

.rbbe-voucher__journey-tax {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__return-title {
  margin: 0 0 0.65rem;
  padding: 0 1.5rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__table-wrap--return {
  padding-top: 0.15rem;
}

/* Legacy horizontal route (payment sidebar, etc.) */
.rbbe-voucher__route {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 0.75rem 1rem;
  padding: 1.1rem 1.5rem;
  border-bottom: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__route-from,
.rbbe-voucher__route-to {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.rbbe-voucher__route-to {
  text-align: right;
}

.rbbe-voucher__route-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__route-from strong,
.rbbe-voucher__route-to strong {
  font-size: 1rem;
  font-weight: 700;
  color: var(--rbbe-voucher-ink);
  line-height: 1.3;
}

.rbbe-voucher__route-arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  color: var(--rbbe-voucher-accent);
  background: color-mix(in srgb, var(--rbbe-voucher-accent) 12%, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 22%, var(--rbbe-voucher-line));
}

.rbbe-voucher__table-wrap {
  padding: 0 1.5rem;
  overflow-x: auto;
}

.rbbe-voucher__table-wrap--compact {
  padding: 0;
}

.rbbe-voucher__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.88rem;
}

.rbbe-voucher__table thead th {
  padding: 0.75rem 0.65rem 0.55rem;
  border-bottom: 2px solid var(--rbbe-voucher-line);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
  color: var(--rbbe-voucher-muted);
  white-space: nowrap;
}

.rbbe-voucher__table tbody td {
  padding: 0.85rem 0.65rem;
  border-bottom: 1px solid color-mix(in srgb, var(--rbbe-voucher-line) 75%, #fff);
  vertical-align: top;
  color: var(--rbbe-voucher-ink);
}

.rbbe-voucher__table tbody tr:last-child td {
  border-bottom: none;
}

.rbbe-voucher__col-amount {
  text-align: right;
  white-space: nowrap;
}

.rbbe-voucher__line-type {
  display: block;
  font-weight: 700;
  font-size: 0.9rem;
  margin-bottom: 0.15rem;
}

.rbbe-voucher__line-detail {
  display: block;
  font-weight: 600;
  color: var(--rbbe-voucher-ink);
}

.rbbe-voucher__line-schedule {
  display: block;
  font-weight: 600;
}

.rbbe-voucher__line-muted {
  display: block;
  margin-top: 0.15rem;
  font-size: 0.8rem;
  color: var(--rbbe-voucher-muted);
  line-height: 1.35;
}

.rbbe-voucher__grid {
  display: grid;
  grid-template-columns: minmax(0, 280px) minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  padding: 1.15rem 1.5rem 0;
  align-items: start;
}

.rbbe-voucher__section-title {
  margin: 0 0 0.65rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__dl {
  margin: 0;
}

.rbbe-voucher__dl-row {
  display: grid;
  grid-template-columns: 5.5rem minmax(0, 1fr);
  gap: 0.5rem 0.75rem;
  padding: 0.45rem 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--rbbe-voucher-line) 80%, #fff);
}

.rbbe-voucher__dl-row:last-child {
  border-bottom: none;
}

.rbbe-voucher__dl-row dt {
  margin: 0;
  font-size: 0.78rem;
  font-weight: 600;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__dl-row dd {
  margin: 0;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--rbbe-voucher-ink);
  word-break: break-word;
}

.rbbe-voucher__table--passengers thead th:first-child {
  width: 2rem;
}

.rbbe-voucher__table--passengers tbody td strong {
  display: block;
}

.rbbe-voucher__footer {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 1rem 1.5rem;
  margin-top: 1rem;
  padding: 1.15rem 1.5rem 1.35rem;
  background: linear-gradient(180deg, var(--rbbe-voucher-wash) 0%, #fff 100%);
  border-top: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__footer-note {
  flex: 1 1 220px;
  min-width: 0;
  margin: 0;
  max-width: 28rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__footer-note p {
  margin: 0;
}

.rbbe-voucher__total {
  flex: 0 0 auto;
  min-width: min(100%, 14rem);
  padding: 0.85rem 1.1rem;
  border-radius: 12px;
  text-align: right;
  background: color-mix(in srgb, var(--rbbe-voucher-accent) 10%, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 28%, var(--rbbe-voucher-line));
  box-shadow: 0 8px 20px rgba(82, 169, 184, 0.12);
}

.rbbe-voucher__total-label {
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
  margin-bottom: 0.25rem;
}

.rbbe-voucher__total-amount {
  display: block;
  font-size: clamp(1.25rem, 3vw, 1.55rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--rbbe-voucher-accent-deep);
  line-height: 1.15;
}

.rbbe-voucher__perforation {
  height: 10px;
  background:
    radial-gradient(circle at 6px 50%, transparent 5px, var(--rbbe-voucher-wash) 5.5px) repeat-x,
    linear-gradient(180deg, var(--rbbe-voucher-line), transparent);
  background-size: 14px 10px, 100% 2px;
  background-position: 0 0, 0 100%;
  opacity: 0.65;
}

.rbbe-flow-step-actions--voucher {
  margin-top: 1.35rem;
}

.rbbe-flow-step-actions--voucher .rbbe-btn--cta {
  min-height: 3rem;
  padding-left: 1.75rem;
  padding-right: 1.75rem;
}

@media (max-width: 900px) {
  .rbbe-voucher__meta {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rbbe-voucher__grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 640px) {
  .rbbe-voucher__header {
    padding: 1.1rem 1.1rem 0.95rem;
  }

  .rbbe-voucher__meta,
  .rbbe-voucher__journey,
  .rbbe-voucher__route,
  .rbbe-voucher__table-wrap,
  .rbbe-voucher__grid,
  .rbbe-voucher__footer {
    padding-left: 1.1rem;
    padding-right: 1.1rem;
  }

  .rbbe-voucher__return-title {
    padding-left: 0;
    padding-right: 0;
  }

  .rbbe-voucher__meta {
    grid-template-columns: 1fr 1fr;
  }

  .rbbe-voucher__route:not(.rbbe-voucher__trip--desktop) {
    grid-template-columns: 1fr;
    text-align: left;
  }

  .rbbe-voucher__route:not(.rbbe-voucher__trip--desktop) .rbbe-voucher__route-to {
    text-align: left;
  }

  .rbbe-voucher__route:not(.rbbe-voucher__trip--desktop) .rbbe-voucher__route-arrow {
    justify-self: start;
    transform: rotate(90deg);
  }

  .rbbe-voucher__header-end {
    text-align: left;
    width: 100%;
  }

  .rbbe-voucher__total {
    width: 100%;
  }

  .rbbe-voucher__table--passengers {
    font-size: 0.82rem;
  }
}

/* Confirmation voucher — compact premium layout */
.rbbe-voucher--compact {
  border-radius: 14px;
}

.rbbe-voucher__header .rbbe-voucher__badge {
  color: #fff;
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.32);
}

.rbbe-voucher__header .rbbe-voucher__doc-title {
  color: #fff;
}

.rbbe-flow-step-intro--compact {
  margin-bottom: 0.85rem;
  font-size: 0.88rem;
}

.rbbe-voucher__meta--compact {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.5rem 0.75rem;
  padding: 0.75rem 1.15rem;
}

.rbbe-voucher__body {
  padding: 0 1.15rem 0.85rem;
}

.rbbe-voucher__crossings {
  padding: 0.85rem 0 0.65rem;
  border-bottom: 1px solid var(--rbbe-voucher-line);
}

.rbbe-voucher__route-chip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
  margin: 0 0 0.65rem;
}

.rbbe-voucher__route-chip-label {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--rbbe-voucher-ink);
  letter-spacing: -0.02em;
}

.rbbe-voucher__route-chip-type {
  display: inline-flex;
  padding: 0.12rem 0.45rem;
  border-radius: 999px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--rbbe-voucher-accent-deep) 90%, #000);
  background: color-mix(in srgb, var(--rbbe-voucher-accent) 14%, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 28%, var(--rbbe-voucher-line));
}

.rbbe-voucher__legs {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.rbbe-voucher__leg {
  padding: 0.7rem 0.75rem;
  border-radius: 10px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-line) 85%, transparent);
}

.rbbe-voucher__leg--return {
  background: color-mix(in srgb, var(--rbbe-voucher-accent) 6%, #fff);
  border-color: color-mix(in srgb, var(--rbbe-voucher-accent) 22%, var(--rbbe-voucher-line));
}

.rbbe-voucher__leg-head {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.5rem;
}

.rbbe-voucher__leg-badge {
  display: inline-flex;
  padding: 0.12rem 0.42rem;
  border-radius: 4px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #fff;
  background: var(--rbbe-voucher-accent);
}

.rbbe-voucher__leg--return .rbbe-voucher__leg-badge {
  background: color-mix(in srgb, var(--rbbe-voucher-accent-deep) 88%, #1a3d4a);
}

.rbbe-voucher__leg-date {
  font-size: 0.78rem;
  font-weight: 600;
  color: color-mix(in srgb, var(--rbbe-voucher-accent) 75%, var(--rbbe-voucher-ink));
}

.rbbe-voucher__leg-price {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-voucher-ink);
  white-space: nowrap;
}

.rbbe-voucher__leg-price-note {
  grid-column: 2 / 4;
  justify-self: end;
  font-size: 0.72rem;
  color: var(--rbbe-voucher-muted);
  text-align: right;
}

.rbbe-voucher__leg-route.rbbe-result-card__route {
  margin-bottom: 0;
}

.rbbe-voucher__leg-schedule-fallback {
  margin: 0;
  font-size: 0.82rem;
  color: var(--rbbe-voucher-ink);
  line-height: 1.4;
}

.rbbe-voucher__details {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: 0.85rem 1.25rem;
  padding-top: 0.85rem;
}

.rbbe-voucher__facts {
  list-style: none;
  margin: 0;
  padding: 0;
}

.rbbe-voucher__facts li {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  padding: 0.4rem 0;
  border-bottom: 1px solid color-mix(in srgb, var(--rbbe-voucher-line) 65%, transparent);
}

.rbbe-voucher__facts li:last-child {
  border-bottom: none;
}

.rbbe-voucher__facts-label {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-voucher__facts-value {
  font-size: 0.86rem;
  font-weight: 600;
  color: var(--rbbe-voucher-ink);
  word-break: break-word;
}

.rbbe-voucher__pax-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.rbbe-voucher__pax-row {
  display: grid;
  grid-template-columns: 1.5rem minmax(0, 1fr);
  gap: 0.5rem;
  align-items: start;
  padding: 0.45rem 0.5rem;
  border-radius: 8px;
  background: var(--rbbe-voucher-wash);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-line) 60%, transparent);
}

.rbbe-voucher__pax-num {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  border-radius: 6px;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--rbbe-voucher-accent-deep);
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 25%, var(--rbbe-voucher-line));
}

.rbbe-voucher__pax-main strong {
  display: block;
  font-size: 0.86rem;
  font-weight: 700;
  color: var(--rbbe-voucher-ink);
  line-height: 1.25;
}

.rbbe-voucher__pax-meta {
  display: block;
  margin-top: 0.1rem;
  font-size: 0.74rem;
  color: var(--rbbe-voucher-muted);
  line-height: 1.35;
}

.rbbe-voucher__footer--compact {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem 1rem;
  padding: 0.85rem 1.15rem;
}

.rbbe-voucher__footer--compact .rbbe-voucher__footer-note {
  flex: 1 1 12rem;
  margin: 0;
  max-width: 28rem;
  font-size: 0.74rem;
  line-height: 1.4;
}

.rbbe-voucher__footer--compact .rbbe-voucher__footer-note p {
  margin: 0;
}

.rbbe-voucher__footer--compact .rbbe-voucher__total {
  flex-shrink: 0;
  min-width: 9.5rem;
  padding: 0.65rem 0.85rem;
}

@media (max-width: 768px) {
  .rbbe-voucher__meta--compact {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .rbbe-voucher__details {
    grid-template-columns: 1fr;
  }

  .rbbe-voucher__leg-head {
    grid-template-columns: auto 1fr;
  }

  .rbbe-voucher__leg-price {
    grid-column: 1 / -1;
  }

  .rbbe-voucher__leg-price-note {
    grid-column: 1 / -1;
    justify-self: start;
    text-align: left;
  }

  .rbbe-voucher__footer--compact {
    flex-direction: column;
    align-items: stretch;
  }

  .rbbe-voucher__footer--compact .rbbe-voucher__total {
    width: 100%;
    text-align: center;
  }
}

/* —— Payment step: premium checkout (matches voucher palette) —— */
.rbbe-booking__panel--payment .rbbe-booking__title {
  display: none;
}

.rbbe-booking__panel--payment .rbbe-flow-step-intro {
  margin: 0 0 1.15rem;
  max-width: 42rem;
  color: var(--rbbe-flow-muted, var(--rbbe-muted));
  font-size: 0.92rem;
  line-height: 1.5;
}

.rbbe-payment-layout {
  display: grid;
  grid-template-columns: minmax(260px, 300px) minmax(0, 1fr);
  gap: 1.25rem 1.5rem;
  align-items: start;
  margin-bottom: 0.5rem;
}

.rbbe-payment-order {
  position: sticky;
  top: 1rem;
  padding: 1.1rem 1.15rem 1.15rem;
  border-radius: 14px;
  background: var(--rbbe-flow-paper, #fff);
  border: 1px solid color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 18%, var(--rbbe-flow-line, #d8e4ea));
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 12px 28px rgba(21, 42, 53, 0.06);
}

.rbbe-payment-order__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.rbbe-payment-order__title {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--rbbe-flow-ink);
  letter-spacing: -0.02em;
}

.rbbe-payment-order__ref {
  margin: 0;
  font-size: 0.72rem;
  color: var(--rbbe-flow-muted);
  text-align: right;
}

.rbbe-payment-order__ref code {
  display: block;
  margin-top: 0.1rem;
  font-family: ui-monospace, "Cascadia Code", "Segoe UI Mono", monospace;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-payment-order__date {
  margin: 0 0 0.75rem;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--rbbe-flow-muted);
}

/* Payment sidebar route: horizontal on desktop, timeline on mobile */
.rbbe-payment-order__route--desktop {
  display: none !important;
  padding: 0.75rem 0;
  margin-bottom: 0.75rem;
  border-top: 1px solid var(--rbbe-flow-line);
  border-bottom: 1px solid var(--rbbe-flow-line);
}

.rbbe-payment-order__route--mobile {
  display: block;
  padding: 0.5rem 0 0.75rem;
  margin-bottom: 0.75rem;
  border-top: 1px solid var(--rbbe-flow-line);
  border-bottom: 1px solid var(--rbbe-flow-line);
}

.rbbe-payment-order__timeline {
  margin: 0;
}

.rbbe-payment-order__journey .rbbe-result-card__pin {
  background: var(--rbbe-flow-accent, var(--rbbe-sea));
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 22%, transparent);
}

.rbbe-payment-order__journey .rbbe-result-card__line {
  background: linear-gradient(
    180deg,
    var(--rbbe-flow-accent, var(--rbbe-sea)) 0%,
    color-mix(in srgb, var(--rbbe-flow-accent, #52a9b8) 55%, var(--rbbe-flow-line)) 100%
  );
}

.rbbe-payment-order__journey .rbbe-result-card__time {
  font-size: 0.9rem;
  font-weight: 700;
  color: var(--rbbe-flow-ink);
}

.rbbe-payment-order__journey .rbbe-result-card__port {
  color: var(--rbbe-flow-muted);
}

.rbbe-payment-order__journey .rbbe-result-card__mid-icon {
  color: var(--rbbe-flow-accent);
}

.rbbe-payment-order__journey .rbbe-result-card__mid-meta {
  color: color-mix(in srgb, var(--rbbe-flow-accent) 50%, var(--rbbe-flow-muted));
}

.rbbe-payment-order__meta {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  color: var(--rbbe-flow-muted);
  line-height: 1.45;
}

.rbbe-payment-order__route--desktop .rbbe-voucher__route-from strong,
.rbbe-payment-order__route--desktop .rbbe-voucher__route-to strong {
  font-size: 0.9rem;
}

@media (min-width: 861px) {
  .rbbe-payment-order__route--desktop {
    display: grid !important;
  }

  .rbbe-payment-order__route--mobile {
    display: none !important;
  }
}

.rbbe-payment-order__lines {
  margin: 0 0 0.75rem;
  padding: 0;
  list-style: none;
}

.rbbe-payment-order__lines li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 0.1rem 0.5rem;
  padding: 0.55rem 0;
  border-bottom: 1px dashed color-mix(in srgb, var(--rbbe-flow-line) 85%, transparent);
  font-size: 0.82rem;
}

.rbbe-payment-order__lines li:last-child {
  border-bottom: none;
}

.rbbe-payment-order__line-label {
  grid-column: 1;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rbbe-flow-muted);
}

.rbbe-payment-order__line-meta {
  grid-column: 1;
  color: var(--rbbe-flow-ink);
  line-height: 1.35;
}

.rbbe-payment-order__line-note {
  grid-column: 1;
  font-size: 0.72rem;
  color: var(--rbbe-flow-muted);
  line-height: 1.35;
}

.rbbe-payment-order__line-price {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-flow-ink);
}

.rbbe-payment-order__pax {
  margin: 0 0 0.85rem;
  font-size: 0.8rem;
  color: var(--rbbe-flow-muted);
}

.rbbe-payment-order__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 0.9rem;
  border-radius: 10px;
  background: var(--rbbe-flow-wash);
  border: 1px solid var(--rbbe-flow-line);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--rbbe-flow-muted);
}

.rbbe-payment-order__total strong {
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  text-transform: none;
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-payment-shell {
  position: relative;
  max-width: 100%;
  border-radius: 16px;
  background: var(--rbbe-voucher-paper);
  border: 1px solid color-mix(in srgb, var(--rbbe-voucher-accent) 18%, var(--rbbe-voucher-line));
  box-shadow:
    0 1px 0 rgba(255, 255, 255, 0.9) inset,
    0 22px 48px rgba(21, 42, 53, 0.08),
    0 4px 14px rgba(21, 42, 53, 0.04);
  overflow: hidden;
}

.rbbe-payment-shell__customer {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem 1rem;
  padding: 0.85rem 1.5rem;
  background: var(--rbbe-voucher-wash);
  border-bottom: 1px solid var(--rbbe-voucher-line);
}

.rbbe-payment-shell__customer-label {
  display: block;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--rbbe-voucher-muted);
}

.rbbe-payment-shell__customer-main strong {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--rbbe-voucher-ink);
}

.rbbe-payment-shell__customer-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.85rem;
  font-size: 0.82rem;
  color: var(--rbbe-voucher-muted);
}

.rbbe-payment-shell__body {
  padding: 1.35rem 1.5rem 1.5rem;
}

.rbbe-checkout__methods {
  --rbbe-checkout-inset-x: clamp(0.85rem, 4vw, 1.35rem);
  padding-top: 0.65rem;
}

.rbbe-checkout__methods > .rbbe-checkout__alert,
.rbbe-checkout__methods > .rbbe-checkout__amounts,
.rbbe-checkout__methods > .rbbe-checkout__terms-box {
  margin-left: var(--rbbe-checkout-inset-x);
  margin-right: var(--rbbe-checkout-inset-x);
}

.rbbe-checkout {
  max-width: none;
  margin: 0;
}

.rbbe-checkout__head {
  margin: 0;
}

.rbbe-checkout__card {
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.rbbe-checkout__alert {
  display: flex;
  align-items: flex-start;
  gap: 0.55rem;
  margin: 0 0 0.85rem;
  padding: 0.75rem 0.95rem;
  border: 1px solid color-mix(in srgb, var(--rbbe-flow-accent) 35%, #c5e8ee);
  border-radius: 10px;
  background: color-mix(in srgb, var(--rbbe-flow-wash) 88%, #fff);
  color: var(--rbbe-flow-accent-deep);
  font-size: 0.88rem;
  line-height: 1.45;
}

.rbbe-checkout__alert--error {
  border-color: #fecaca;
  background: #fef2f2;
  color: #991b1b;
}

.rbbe-checkout__alert-icon {
  flex-shrink: 0;
  margin-top: 0.05rem;
  color: var(--rbbe-flow-accent);
}

.rbbe-checkout__amounts {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: center;
  gap: 0.45rem 0.65rem;
  margin: 0 0 1.1rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: var(--rbbe-flow-wash);
  border: 1px solid var(--rbbe-flow-line);
  font-size: 0.95rem;
  color: var(--rbbe-flow-muted);
}

.rbbe-checkout__amounts-note {
  margin: -0.55rem 0 1.1rem;
  font-size: 0.76rem;
  line-height: 1.5;
  color: var(--rbbe-flow-muted);
  text-align: center;
}

.rbbe-checkout__amounts-usd {
  font-weight: 700;
  color: var(--rbbe-flow-ink);
  font-size: 1.08rem;
}

.rbbe-checkout__terms-box {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border: 2px solid color-mix(in srgb, var(--rbbe-flow-accent) 28%, var(--rbbe-flow-line));
  border-radius: 12px;
  background: var(--rbbe-flow-wash);
  transition: border-color 0.2s ease, background 0.2s ease, box-shadow 0.2s ease;
}

.rbbe-checkout__terms-box:not(:has(.rbbe-checkout__terms-input:checked)) {
  border-color: color-mix(in srgb, #c9a227 42%, var(--rbbe-flow-line));
  box-shadow: 0 0 0 1px color-mix(in srgb, #c9a227 12%, transparent);
}

.rbbe-checkout__terms-box:has(.rbbe-checkout__terms-input:checked) {
  border-color: color-mix(in srgb, var(--rbbe-flow-accent) 50%, var(--rbbe-flow-line));
  background: color-mix(in srgb, var(--rbbe-flow-wash) 65%, #fff);
}

.rbbe-checkout__terms-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--rbbe-flow-ink);
  line-height: 1.4;
}

.rbbe-checkout__terms-required {
  display: inline-block;
  padding: 0.2rem 0.5rem;
  border-radius: 999px;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #7c5e10;
  background: #fff7e0;
  border: 1px solid #e8d48b;
}

.rbbe-checkout__terms-box:has(.rbbe-checkout__terms-input:checked) .rbbe-checkout__terms-required {
  color: var(--rbbe-flow-accent-deep);
  background: color-mix(in srgb, var(--rbbe-flow-accent) 12%, #fff);
  border-color: color-mix(in srgb, var(--rbbe-flow-accent) 35%, #c5e8ee);
}

.rbbe-checkout__terms--consent {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.75rem;
  align-items: start;
  margin: 0;
  cursor: pointer;
}

.rbbe-checkout__terms-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rbbe-checkout__terms-check {
  grid-row: 1;
  grid-column: 1;
  flex-shrink: 0;
  width: 1.4rem;
  height: 1.4rem;
  margin-top: 0.05rem;
  border: 2px solid color-mix(in srgb, var(--rbbe-flow-accent-deep) 50%, var(--rbbe-flow-line));
  border-radius: 7px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.rbbe-checkout__terms-check::after {
  content: '';
  width: 0.35rem;
  height: 0.65rem;
  margin-top: -0.12rem;
  border: solid #fff;
  border-width: 0 2.5px 2.5px 0;
  transform: rotate(45deg) scale(0);
  opacity: 0;
  transition: transform 0.15s ease, opacity 0.15s ease;
}

.rbbe-checkout__terms-input:checked + .rbbe-checkout__terms-check {
  background: var(--rbbe-flow-accent);
  border-color: var(--rbbe-flow-accent-deep);
}

.rbbe-checkout__terms-input:checked + .rbbe-checkout__terms-check::after {
  transform: rotate(45deg) scale(1);
  opacity: 1;
}

.rbbe-checkout__terms-input:focus-visible + .rbbe-checkout__terms-check {
  outline: 2px solid var(--rbbe-flow-accent);
  outline-offset: 2px;
}

.rbbe-checkout__terms-text {
  grid-row: 1;
  grid-column: 2;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--rbbe-flow-muted);
}

.rbbe-checkout__terms-input:checked ~ .rbbe-checkout__terms-text {
  color: var(--rbbe-flow-ink);
}

.rbbe-checkout__actions {
  padding: 0 var(--rbbe-checkout-inset-x, clamp(0.85rem, 4vw, 1.35rem));
}

.rbbe-checkout__paypal {
  margin-bottom: 0.25rem;
}

.rbbe-checkout__paypal-slot {
  min-height: 48px;
  margin-bottom: 0.65rem;
}

.rbbe-checkout__paypal-slot iframe,
.rbbe-checkout__paypal-slot > div {
  width: 100% !important;
  max-width: 100%;
}

/* Hide duplicate PayPal tagline on wallet button; keep one after card button. */
.rbbe-checkout__paypal-slot[data-rbbe-paypal-wallet] .paypal-button-tagline,
.rbbe-checkout__paypal-slot#rbbe-paypal-wallet .paypal-button-tagline {
  display: none !important;
}

.rbbe-checkout__status {
  margin: 0.65rem 0 0;
  text-align: center;
  font-size: 0.88rem;
}

.rbbe-checkout__status.rbbe-alert--error {
  color: #b91c1c;
}

.rbbe-checkout__notice {
  margin: 0 0 1rem;
  text-align: center;
  font-size: 0.88rem;
}

.rbbe-checkout__or {
  position: relative;
  margin: 1.35rem 0 1.25rem;
  text-align: center;
  color: var(--rbbe-flow-muted);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.rbbe-checkout__or::before {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: var(--rbbe-flow-line);
  z-index: 0;
}

.rbbe-checkout__or span {
  position: relative;
  z-index: 1;
  padding: 0 0.75rem;
  background: var(--rbbe-flow-paper);
}

.rbbe-checkout__actions .rbbe-checkout__bank-btn,
.rbbe-checkout__actions .rbbe-checkout__paypal,
.rbbe-checkout__actions .rbbe-checkout__notice {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.rbbe-checkout__bank-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.55rem;
  width: 100%;
  min-height: 50px;
  padding: 0.75rem 1.25rem;
  border: 0;
  border-radius: 13px;
  background: var(--rbbe-btn-gradient);
  color: #fff;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--rbbe-btn-shadow);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.rbbe-checkout__bank-btn:hover {
  background: var(--rbbe-btn-gradient-hover);
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

.rbbe-checkout__bank-btn:active {
  transform: translateY(1px);
}

.rbbe-checkout__bank-btn:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.rbbe-checkout__bank-icon {
  display: inline-flex;
  opacity: 0.95;
}

.rbbe-payment-shell__footer,
.rbbe-checkout__footer {
  margin-top: 1.35rem;
  padding: 1rem var(--rbbe-checkout-inset-x, clamp(0.85rem, 4vw, 1.35rem)) 1.35rem;
  border-top: 1px solid var(--rbbe-flow-line);
  text-align: center;
}

.rbbe-checkout__secure-note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  color: var(--rbbe-flow-muted);
}

.rbbe-checkout__lock {
  display: inline-flex;
  color: var(--rbbe-flow-accent);
}

.rbbe-checkout__lock--sm {
  vertical-align: -0.15em;
  margin-right: 0;
}

.rbbe-checkout__help {
  margin: 0;
  padding-bottom: 0.15rem;
  font-size: 0.82rem;
  color: var(--rbbe-flow-muted);
  line-height: 1.5;
}

.rbbe-checkout__help a {
  color: var(--rbbe-flow-accent-deep);
  text-decoration: underline;
  text-underline-offset: 2px;
}

.rbbe-checkout__help a:hover {
  color: var(--rbbe-flow-accent);
}

.rbbe-checkout--bank .rbbe-checkout__head,
.rbbe-checkout--bank .rbbe-payment-shell__header {
  display: none;
}

.rbbe-checkout--bank .rbbe-payment-shell__customer {
  display: none;
}

.rbbe-checkout__methods[hidden] {
  display: none !important;
}

.rbbe-bank-panel[hidden] {
  display: none !important;
}

.rbbe-bank-panel {
  padding-left: clamp(0.85rem, 4vw, 1.35rem);
  padding-right: clamp(0.85rem, 4vw, 1.35rem);
}

.rbbe-bank-panel__title {
  margin: 0 0 0.75rem;
  font-size: 1.1rem;
  font-weight: 700;
  text-align: center;
  color: var(--rbbe-flow-ink);
  letter-spacing: -0.02em;
}

.rbbe-bank-panel__intro {
  margin: 0 0 1rem;
  text-align: center;
  font-size: 0.92rem;
  color: var(--rbbe-flow-muted);
}

.rbbe-bank-panel__intro strong {
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-bank-panel__breakdown {
  margin: 0 0 1rem;
  padding: 0.95rem 1rem;
  border: 1px solid color-mix(in srgb, var(--rbbe-flow-accent) 28%, var(--rbbe-flow-line));
  border-radius: 10px;
  background: var(--rbbe-flow-wash);
}

.rbbe-bank-panel__breakdown-title {
  margin: 0 0 0.55rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-bank-panel__breakdown-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.88rem;
  color: var(--rbbe-flow-ink);
}

.rbbe-bank-panel__breakdown-list li {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.35rem;
}

.rbbe-bank-panel__breakdown-total {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid var(--rbbe-flow-line);
  font-size: 0.95rem;
}

.rbbe-bank-panel__breakdown-total strong {
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-bank-panel__booking-id {
  font-size: 0.82rem;
  font-weight: 400;
  color: var(--rbbe-flow-muted);
}

.rbbe-bank-panel__account {
  margin-bottom: 0.85rem;
  padding: 0.95rem 1rem;
  border: 1px solid var(--rbbe-flow-line);
  border-radius: 10px;
  background: var(--rbbe-flow-paper);
  font-size: 0.88rem;
  line-height: 1.55;
}

.rbbe-bank-panel__account p {
  margin: 0 0 0.35rem;
}

.rbbe-bank-panel__label {
  color: var(--rbbe-flow-muted);
}

.rbbe-bank-panel__notify-hint {
  margin: 1rem 0 0.75rem;
  text-align: center;
  font-size: 0.85rem;
  color: var(--rbbe-flow-muted);
}

.rbbe-bank-panel__notify-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  width: 100%;
  min-height: 50px;
  padding: 0.75rem 1.25rem;
  border: none;
  border-radius: 13px;
  background: var(--rbbe-btn-gradient);
  color: #fff;
  font: inherit;
  font-size: 0.95rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: var(--rbbe-btn-shadow);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.rbbe-bank-panel__notify-btn:hover {
  background: var(--rbbe-btn-gradient-hover);
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

.rbbe-bank-panel__notify-btn:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

.rbbe-bank-panel__received {
  margin: 1rem 0 0;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--rbbe-flow-accent-deep);
}

.rbbe-bank-panel__footer {
  margin-top: 1.25rem;
}

@media (max-width: 860px) {
  .rbbe-payment-layout {
    grid-template-columns: 1fr;
  }

  .rbbe-payment-order {
    position: static;
  }

  .rbbe-payment-order__date {
    font-size: 1rem;
    font-weight: 700;
    color: var(--rbbe-flow-accent);
    letter-spacing: -0.02em;
  }
}

.rbbe-stepper {
  --rbbe-stepper-track: #e8edf2;
  --rbbe-stepper-done: #dfe6ec;
  --rbbe-stepper-active: linear-gradient(180deg, #ffffff 0%, #f3f6f9 100%);
  display: flex;
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
  border-radius: 12px;
  overflow: hidden;
  background: var(--rbbe-stepper-track);
  box-shadow:
    0 1px 2px rgba(15, 35, 52, 0.06),
    inset 0 1px 0 rgba(255, 255, 255, 0.92);
}

.rbbe-stepper__item {
  position: relative;
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  min-height: 52px;
  margin: 0;
  padding: 0.85rem 1.1rem 0.85rem 1.35rem;
  background: var(--rbbe-stepper-track);
  color: #8d9aa8;
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  z-index: 1;
  transition:
    background 0.25s ease,
    color 0.25s ease,
    box-shadow 0.25s ease;
}

.rbbe-stepper__item:first-child {
  padding-left: 1.15rem;
}

.rbbe-stepper__item:last-child {
  padding-right: 1.15rem;
}

.rbbe-stepper__item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: -18px;
  width: 36px;
  height: 100%;
  background: inherit;
  clip-path: polygon(0 0, 72% 0, 100% 50%, 72% 100%, 0 100%);
  z-index: 4;
  pointer-events: none;
}

.rbbe-stepper__label {
  position: relative;
  z-index: 2;
  white-space: nowrap;
}

.rbbe-stepper__marker {
  position: relative;
  z-index: 2;
  flex-shrink: 0;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  border: 2px solid #c5d0da;
  background: rgba(255, 255, 255, 0.55);
  transition:
    border-color 0.25s ease,
    background 0.25s ease,
    transform 0.25s ease;
}

.rbbe-stepper__item.is-pending .rbbe-stepper__marker {
  opacity: 0.55;
}

.rbbe-stepper__item.is-active {
  background: var(--rbbe-stepper-active);
  color: #1a2b36;
  font-weight: 700;
  z-index: 3;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

.rbbe-stepper__item.is-active .rbbe-stepper__marker {
  border-color: color-mix(in srgb, var(--rbbe-accent) 55%, #fff);
  background: #fff;
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--rbbe-accent) 18%, transparent);
  transform: scale(1.05);
}

.rbbe-stepper__item.is-done {
  background: var(--rbbe-stepper-done);
  color: #4f6575;
}

.rbbe-stepper__item.is-done .rbbe-stepper__marker {
  border-color: transparent;
  background: #3a9d62;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' d='M2.5 6.2 4.8 8.5 9.5 3.8'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0.7rem;
}

@media (max-width: 640px) {
  .rbbe-stepper:not(.rbbe-stepper--numbered) .rbbe-stepper__item {
    min-height: 46px;
    padding: 0.7rem 0.55rem 0.7rem 0.85rem;
    font-size: 0.62rem;
    letter-spacing: 0.06em;
  }

  .rbbe-stepper:not(.rbbe-stepper--numbered) .rbbe-stepper__item:not(:last-child)::after {
    right: -12px;
    width: 24px;
  }

  .rbbe-stepper:not(.rbbe-stepper--numbered) .rbbe-stepper__marker {
    display: none;
  }

  .rbbe-stepper:not(.rbbe-stepper--numbered) .rbbe-stepper__item.is-done .rbbe-stepper__marker {
    display: inline-block;
    width: 0.95rem;
    height: 0.95rem;
  }
}

/* Results header */
.rbbe-results-header {
  margin-bottom: 1.25rem;
  padding-bottom: 0;
  border-bottom: none;
}

.rbbe-results-header__title {
  margin: 0;
  font-size: inherit;
  font-weight: inherit;
  line-height: inherit;
}

.rbbe-results-refine {
  --rbbe-refine-accent: var(--rbbe-sea, #52a9b8);
  --rbbe-refine-accent-hover: var(--rbbe-sea-hover, #4496a4);
  --rbbe-refine-accent-soft: var(--rbbe-sea-soft, #e9f4f6);
  --rbbe-refine-line: color-mix(in srgb, var(--rbbe-refine-accent) 16%, var(--rbbe-line));
  padding: 0.9rem 1rem 1rem;
  border-radius: 12px;
  background: linear-gradient(
    165deg,
    color-mix(in srgb, var(--rbbe-refine-accent-soft) 48%, rgba(255, 255, 255, 0.82)) 0%,
    color-mix(in srgb, var(--rbbe-refine-accent-soft) 28%, rgba(255, 255, 255, 0.68)) 100%
  );
  border: 1px solid var(--rbbe-refine-line);
  overflow: visible;
  box-sizing: border-box;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.rbbe-results-refine__bar {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.65rem 0.75rem;
}

.rbbe-results-refine__route {
  margin: 0;
  font-size: clamp(0.95rem, 2.4vw, 1.08rem);
  font-weight: 700;
  line-height: 1.35;
  color: var(--rbbe-ink);
  letter-spacing: -0.015em;
}

.rbbe-results-refine__bar .rbbe-results-refine__route {
  flex: 1 1 auto;
  min-width: 0;
}

.rbbe-results-refine__toggle {
  flex-shrink: 0;
  padding: 0.32rem 0.85rem;
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.2;
  color: var(--rbbe-refine-accent);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid color-mix(in srgb, var(--rbbe-refine-accent) 24%, var(--rbbe-line));
  border-radius: 999px;
  cursor: pointer;
  white-space: nowrap;
  box-shadow: 0 1px 3px rgba(14, 31, 41, 0.06);
}

.rbbe-results-refine__toggle:hover,
.rbbe-results-refine__toggle:focus-visible {
  background: #fff;
  border-color: color-mix(in srgb, var(--rbbe-refine-accent) 42%, var(--rbbe-line));
  outline: none;
}

.rbbe-results-refine.is-refine-open .rbbe-results-refine__bar {
  margin-bottom: 0.8rem;
}

@media (max-width: 640px) {
  .rbbe-results-refine:not(.is-refine-open) .rbbe-results-refine__panel {
    display: none;
  }

  .rbbe-results-refine:not(.is-refine-open) .rbbe-results-refine__bar {
    margin-bottom: 0;
  }
}

.rbbe-results-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.65rem 0.75rem;
  width: 100%;
}

.rbbe-results-toolbar--stack {
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
}

.rbbe-results-toolbar__fields {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem 0.65rem;
  flex: 1 1 auto;
  min-width: 0;
}

.rbbe-results-toolbar--stack .rbbe-results-toolbar__fields {
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  width: 100%;
}

.rbbe-results-refine .rbbe-fld--refine,
.rbbe-results-refine .rbbe-fld--toolbar {
  width: 100%;
  min-width: 0;
  max-width: none;
  margin: 0;
  padding: 0;
  border: 0;
  position: relative;
  overflow: visible;
}

.rbbe-results-refine .rbbe-fld--refine::after,
.rbbe-results-refine .rbbe-fld--toolbar::after {
  content: "";
  display: block;
  clear: both;
}

.rbbe-results-refine .rbbe-fld__legend {
  position: relative;
  z-index: 2;
  float: left;
  margin: 0 0 0 0.55rem;
  padding: 0 0.3rem;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--rbbe-muted);
  background: #fff;
  line-height: 1.15;
}

.rbbe-results-refine .rbbe-fld__control {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 2.75rem;
  margin-top: 0.38rem;
  padding: 0 0.55rem 0 0.45rem;
  border: 1px solid color-mix(in srgb, var(--rbbe-line) 88%, var(--rbbe-refine-accent));
  border-radius: 8px;
  background: #fff;
  box-sizing: border-box;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.rbbe-results-refine .rbbe-fld__control:focus-within,
.rbbe-results-refine .rbbe-fld--pax.is-open .rbbe-fld__control {
  border-color: var(--rbbe-refine-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rbbe-refine-accent) 20%, transparent);
}

.rbbe-results-refine .rbbe-fld__icon {
  flex-shrink: 0;
  display: flex;
  color: color-mix(in srgb, var(--rbbe-refine-accent) 72%, var(--rbbe-muted));
}

.rbbe-results-refine .rbbe-date-picker__trigger,
.rbbe-results-refine .rbbe-fld__input--date {
  min-height: 2.75rem;
  padding: 0.35rem 0;
}

.rbbe-results-refine .rbbe-fld--toolbar .rbbe-pax-popover {
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 0;
  right: 0;
  z-index: 60;
  width: auto;
  max-width: none;
}

.rbbe-pax-root {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.rbbe-results-toolbar__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  flex: 0 0 auto;
}

.rbbe-results-toolbar--stack .rbbe-results-toolbar__actions {
  flex-direction: column;
  width: 100%;
  gap: 0.5rem;
}

.rbbe-results-refine .rbbe-results-refine__submit,
.rbbe-results-refine .rbbe-results-refine__modify {
  width: 100%;
  min-height: 2.75rem;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 700;
  box-sizing: border-box;
}

.rbbe-results-refine .rbbe-results-refine__submit {
  margin-top: 0;
  border: 0;
  background: var(--rbbe-btn-gradient);
  color: #fff;
  box-shadow: var(--rbbe-btn-shadow);
}

.rbbe-results-refine .rbbe-results-refine__submit:hover {
  background: var(--rbbe-btn-gradient-hover);
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

.rbbe-results-refine .rbbe-results-refine__modify {
  color: var(--rbbe-ink);
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid color-mix(in srgb, var(--rbbe-line) 92%, transparent);
  text-align: center;
  text-decoration: none;
}

.rbbe-results-refine .rbbe-results-refine__modify:hover {
  border-color: color-mix(in srgb, var(--rbbe-refine-accent) 36%, var(--rbbe-line));
  background: #fff;
  color: var(--rbbe-ink);
}

.rbbe-btn--compact {
  min-height: 2.65rem;
  height: 2.65rem;
  padding: 0 1rem;
  font-size: 0.9rem;
  line-height: 1.2;
  box-sizing: border-box;
}

.rbbe-btn--secondary {
  color: var(--rbbe-ink);
  background: #fff;
  border: 1px solid var(--rbbe-line);
}

.rbbe-btn--secondary:hover {
  border-color: color-mix(in srgb, var(--rbbe-accent) 40%, var(--rbbe-line));
  background: color-mix(in srgb, var(--rbbe-accent) 6%, #fff);
}

body.rbbe-showing-results [data-rbbe-schedule-scroll] {
  scroll-margin-top: clamp(4.75rem, 14vh, 6.5rem);
  outline: none;
}

.rbbe-results-leg__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 1rem;
  margin-bottom: 0.75rem;
  padding-left: var(--rbbe-results-inner-x, 0);
  padding-right: var(--rbbe-results-inner-x, 0);
  box-sizing: border-box;
}

.rbbe-results-leg__title {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--rbbe-muted);
}

.rbbe-results-leg__date {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: color-mix(in srgb, var(--rbbe-accent) 82%, var(--rbbe-ink));
}

.rbbe-results-leg__hint {
  margin: -0.35rem 0 0.75rem;
  padding-left: var(--rbbe-results-inner-x, 0);
  padding-right: var(--rbbe-results-inner-x, 0);
}

.rbbe-results-leg + .rbbe-results-leg {
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px dashed var(--rbbe-line);
}

.rbbe-results-booking-bar {
  position: sticky;
  bottom: 0;
  z-index: 40;
  margin-top: 1.25rem;
  padding: 0.85rem var(--rbbe-results-inner-x, 0.85rem) calc(0.85rem + env(safe-area-inset-bottom, 0px));
  background: color-mix(in srgb, #fff 92%, var(--rbbe-accent-soft));
  border-top: 1px solid var(--rbbe-line);
  box-shadow: 0 -8px 28px rgba(26, 43, 54, 0.08);
  backdrop-filter: blur(8px);
}

.rbbe-results-booking-bar[hidden] {
  display: none !important;
}

.rbbe-results-booking-bar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: var(--rbbe-content-max, 960px);
  margin: 0 auto;
}

.rbbe-results-booking-bar__summary {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--rbbe-ink);
}

.rbbe-results-booking-bar__cta {
  flex-shrink: 0;
  min-width: 10rem;
}

.rbbe-result-cards {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.rbbe-result-empty {
  margin: 0;
  padding: 1.25rem;
  text-align: center;
  border-radius: var(--rbbe-radius-sm);
  background: #fff;
  border: 1px dashed var(--rbbe-line);
}

/* Result card */
.rbbe-result-card {
  position: relative;
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr) minmax(0, 11.5rem);
  gap: var(--rbbe-results-gap-x, 0.75rem) 0.85rem;
  align-items: center;
  padding: var(--rbbe-results-inner-y, 0.85rem) var(--rbbe-results-inner-x, 0.85rem);
  border-radius: var(--rbbe-radius-sm);
  box-sizing: border-box;
  background: #fff;
  border: 1px solid var(--rbbe-line);
  box-shadow: var(--rbbe-shadow-card);
  cursor: pointer;
  transition: border-color 0.22s ease, box-shadow 0.22s ease, background 0.22s ease;
}

.rbbe-result-card:hover {
  border-color: color-mix(in srgb, var(--rbbe-accent) 22%, var(--rbbe-line));
  box-shadow: 0 8px 24px rgba(26, 43, 54, 0.06);
}

.rbbe-result-card.is-selected {
  border-color: color-mix(in srgb, var(--rbbe-accent) 55%, var(--rbbe-line));
  background: color-mix(in srgb, var(--rbbe-accent-soft) 65%, #fff);
  box-shadow: 0 10px 28px rgba(61, 143, 175, 0.14);
  outline: 2px solid color-mix(in srgb, var(--rbbe-accent) 35%, transparent);
  outline-offset: 0;
}

.rbbe-result-card__labels {
  grid-column: 1 / -1;
  margin: -0.1rem 0 0.05rem;
}

.rbbe-result-card__rate-labels {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge {
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 0.18rem 0.5rem;
  border-radius: 4px;
  font-size: 0.66rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
  white-space: nowrap;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--success {
  background: #e8f6ea;
  color: #1f6b34;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--warning {
  background: #fff6df;
  color: #7a5b12;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--value {
  background: #e7f3f5;
  color: #1f4750;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--deal {
  background: #fff0e8;
  color: #9a4a12;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--urgent {
  background: #fff1ea;
  color: #9a3f1d;
}

.rbbe-result-card__rate-labels .rbbe-rate-badge--speed,
.rbbe-result-card__rate-labels .rbbe-rate-badge--flex,
.rbbe-result-card__rate-labels .rbbe-rate-badge--premium,
.rbbe-result-card__rate-labels .rbbe-rate-badge--top,
.rbbe-result-card__rate-labels .rbbe-rate-badge--favorite,
.rbbe-result-card__rate-labels .rbbe-rate-badge--transfer,
.rbbe-result-card__rate-labels .rbbe-rate-badge--reschedule,
.rbbe-result-card__rate-labels .rbbe-rate-badge--neutral {
  background: #eef3f6;
  color: #2a4654;
}

.rbbe-result-card__selected-badge {
  position: absolute;
  top: 0.55rem;
  right: 0.55rem;
  z-index: 2;
  padding: 0.2rem 0.55rem;
  border-radius: 999px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #fff;
  background: var(--rbbe-accent);
  box-shadow: 0 4px 12px rgba(61, 143, 175, 0.25);
}

.rbbe-result-card__selected-badge[hidden] {
  display: none !important;
}

.rbbe-result-card__pick.is-selected {
  background: var(--rbbe-btn-gradient-active);
  color: #fff;
  border: 1px solid color-mix(in srgb, #fff 22%, var(--rbbe-sea-deep));
  box-shadow:
    0 4px 16px rgba(44, 111, 125, 0.38),
    inset 0 1px 0 rgba(255, 255, 255, 0.18);
}

.rbbe-result-card__radio {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.rbbe-result-card__media {
  border-radius: 8px;
  overflow: hidden;
  background: var(--rbbe-sand);
  width: 96px;
  height: 72px;
  flex-shrink: 0;
}

.rbbe-result-card__img {
  display: block;
  width: 100%;
  height: 72px;
  object-fit: cover;
}

.rbbe-result-card__placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 72px;
  padding: 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--rbbe-muted);
}

.rbbe-result-card__head {
  margin-bottom: 0.45rem;
}

.rbbe-result-card__head--actions {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 0.2rem;
}

.rbbe-result-card__head-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
}

.rbbe-result-card__name {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.98rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.25;
}

.rbbe-result-card__detail {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  min-height: 2.15rem;
  margin: 0;
  padding: 0.4rem 0.72rem;
  border: 1px solid color-mix(in srgb, var(--rbbe-sea) 35%, var(--rbbe-line));
  border-radius: 999px;
  background: color-mix(in srgb, var(--rbbe-sea-soft) 70%, #fff);
  color: var(--rbbe-sea);
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.2;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    color 0.15s ease,
    transform 0.15s ease;
}

.rbbe-result-card__detail:hover {
  border-color: var(--rbbe-sea);
  background: var(--rbbe-sea-soft);
  color: var(--rbbe-sea-hover);
  transform: translateY(-1px);
}

.rbbe-result-card__detail:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--rbbe-sea) 55%, transparent);
  outline-offset: 2px;
}

.rbbe-result-card__detail svg {
  display: block;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
}

.rbbe-result-card__detail-label {
  display: inline-block;
}

.rbbe-result-card__route {
  display: grid;
  grid-template-columns: 14px minmax(0, 1fr);
  gap: 0 0.55rem;
  margin-bottom: 0.55rem;
}

.rbbe-result-card__track {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0.2rem 0;
}

.rbbe-result-card__pin {
  flex-shrink: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--rbbe-sea);
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--rbbe-sea) 22%, transparent);
}

.rbbe-result-card__line {
  flex: 1 1 auto;
  width: 2px;
  min-height: 1.1rem;
  margin: 0.15rem 0;
  border-radius: 2px;
  background: linear-gradient(
    180deg,
    var(--rbbe-sea) 0%,
    color-mix(in srgb, var(--rbbe-sea-mid) 70%, var(--rbbe-sea)) 100%
  );
}

.rbbe-result-card__route-content {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
}

.rbbe-result-card__row-main {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.3rem 0.45rem;
  line-height: 1.25;
}

.rbbe-result-card__time {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-ink);
}

.rbbe-result-card__port {
  display: inline-flex;
  align-items: center;
  gap: 0.28rem;
  font-size: 0.78rem;
  color: color-mix(in srgb, var(--rbbe-sea) 58%, var(--rbbe-muted));
  line-height: 1.25;
}

.rbbe-result-card__port-icon {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  color: currentColor;
  font-size: 0.72rem;
  line-height: 1;
}

.rbbe-result-card__mid {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.05rem 0 0.1rem;
  min-width: 0;
}

.rbbe-result-card__mid-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: color-mix(in srgb, var(--rbbe-sea) 58%, var(--rbbe-muted));
}

.rbbe-result-card__mid-icon svg {
  display: block;
}

.rbbe-result-card__mid-meta {
  font-size: 0.76rem;
  font-weight: 500;
  color: color-mix(in srgb, var(--rbbe-sea) 58%, var(--rbbe-muted));
  line-height: 1.3;
}

.rbbe-result-card__mid-boat {
  font-weight: 600;
  color: color-mix(in srgb, var(--rbbe-sea-deep) 82%, var(--rbbe-ink));
}

.rbbe-result-card__stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.35rem 0.45rem;
  padding-top: 0.5rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-result-card__stat-label {
  display: block;
  font-size: 0.64rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--rbbe-muted);
  margin-bottom: 0.1rem;
}

.rbbe-result-card__stat-value {
  font-size: 0.78rem;
  font-weight: 700;
}

.rbbe-result-card__facilities {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-result-card__facilities-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.4rem 0.45rem;
}

.rbbe-result-card__facilities-list .rbbe-result-card__detail {
  min-height: 0;
  margin-left: 0.15rem;
  padding: 0.22rem 0.55rem;
  font-size: 0.68rem;
  font-weight: 600;
  vertical-align: middle;
}

.rbbe-result-card__facilities-list .rbbe-result-card__detail svg {
  width: 0.85rem;
  height: 0.85rem;
}

.rbbe-result-card__facility {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.22rem 0.5rem;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.2;
  color: color-mix(in srgb, var(--rbbe-sea-deep) 72%, var(--rbbe-ink));
  background: color-mix(in srgb, var(--rbbe-sea-soft) 76%, #fff);
  border-radius: 999px;
}

.rbbe-facility-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1rem;
  height: 1rem;
  flex-shrink: 0;
  font-size: 0.72rem;
  line-height: 1;
  color: var(--rbbe-sea-deep);
}

.rbbe-facility-icon--pickup {
  position: relative;
}

.rbbe-facility-icon--life_jacket {
  position: relative;
}

.rbbe-facility-icon::before {
  content: "•";
  color: currentColor;
  font-family: Arial, Helvetica, sans-serif;
  font-weight: 800;
}

.rbbe-facility-icon--cancel::before {
  content: "✕";
}

.rbbe-facility-icon--ac::before {
  content: "AC";
  font-size: 0.55rem;
}

.rbbe-facility-icon--insurance::before {
  content: "I";
}

.rbbe-facility-icon--life_jacket::before {
  content: "";
  width: 0.72rem;
  height: 0.78rem;
  border: 1.5px solid currentColor;
  border-radius: 0.18rem 0.18rem 0.12rem 0.12rem;
  clip-path: polygon(0 0, 32% 0, 50% 28%, 68% 0, 100% 0, 100% 100%, 58% 100%, 58% 45%, 42% 45%, 42% 100%, 0 100%);
}

.rbbe-facility-icon--life_jacket::after {
  content: "";
  position: absolute;
  top: 0.42rem;
  left: 0.45rem;
  width: 0.1rem;
  height: 0.24rem;
  background: currentColor;
  border-radius: 999px;
}

.rbbe-facility-icon--no_smoking::before {
  content: "✓";
}

.rbbe-facility-icon--toilet::before {
  content: "WC";
  font-size: 0.58rem;
}

.rbbe-facility-icon--porter::before {
  content: "B";
}

.rbbe-facility-icon--refund::before {
  content: "↩";
}

.rbbe-facility-icon--sun_deck::before {
  content: "S";
}

.rbbe-facility-icon--premium::before,
.rbbe-facility-icon--premium_service::before {
  content: "P";
}

.rbbe-facility-icon--audio::before {
  content: "TV";
  font-size: 0.55rem;
}

.rbbe-facility-icon--first_aid::before {
  content: "+";
}

.rbbe-facility-icon--fire::before {
  content: "!";
}

.rbbe-facility-icon--technology::before {
  content: "T";
}

.rbbe-facility-icon--water::before {
  content: "W";
}

.rbbe-facility-icon--host::before {
  content: "H";
}

.rbbe-facility-icon--pickup::before {
  content: "";
  width: 0.72rem;
  height: 0.34rem;
  border: 1.5px solid currentColor;
  border-top-width: 2px;
  border-radius: 0.22rem 0.22rem 0.12rem 0.12rem;
  transform: translateY(-0.03rem);
}

.rbbe-facility-icon--pickup::after {
  content: "";
  position: absolute;
  left: 0.22rem;
  bottom: 0.12rem;
  width: 0.13rem;
  height: 0.13rem;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0.38rem 0 0 currentColor;
}

.rbbe-facility-icon--luggage::before {
  content: "B";
}

.rbbe-result-card__body {
  align-self: center;
  min-width: 0;
}

.rbbe-result-card__aside {
  align-self: center;
  min-width: 0;
}

.rbbe-result-card__footer {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.55rem;
  width: 100%;
}

.rbbe-result-card__price-block {
  min-width: 0;
}

.rbbe-result-card__price {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.2;
  color: var(--rbbe-ink);
  white-space: nowrap;
}

.rbbe-result-card__price-note {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--rbbe-muted);
}

.rbbe-result-card__footer-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.45rem;
}

.rbbe-result-card__pick {
  flex: 1 1 auto;
  min-width: 0;
  max-width: 9.5rem;
  min-height: 2.65rem;
  height: 2.65rem;
  padding: 0 1rem;
  font-size: 0.84rem;
  line-height: 1.2;
  white-space: nowrap;
  box-sizing: border-box;
  border-color: transparent;
  background: var(--rbbe-btn-gradient);
  color: #fff;
  font-weight: 700;
  letter-spacing: 0.02em;
  box-shadow: var(--rbbe-btn-shadow);
}

.rbbe-result-card__pick:hover {
  border-color: transparent;
  background: var(--rbbe-btn-gradient-hover);
  color: #fff;
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

.rbbe-result-card__pick:active {
  background: var(--rbbe-btn-gradient-active);
  transform: translateY(0);
  box-shadow: 0 8px 20px color-mix(in srgb, var(--rbbe-btn-accent) 28%, transparent);
}

body.rbbe-showing-results .rbbe-result-card__footer-actions {
  width: 100%;
  justify-content: flex-end;
}

/* Schedule detail modal */
.rbbe-detail-modal {
  position: fixed;
  inset: 0;
  z-index: 100060;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 0;
}

.rbbe-detail-modal[hidden] {
  display: none !important;
}

body.rbbe-detail-open {
  overflow: hidden;
}

.rbbe-detail-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
}

.rbbe-detail-modal__panel {
  position: relative;
  z-index: 1;
  width: min(32rem, 100%);
  max-height: min(88vh, 640px);
  display: flex;
  flex-direction: column;
  border-radius: 16px 16px 0 0;
  background: #fff;
  box-shadow: 0 -8px 40px rgba(15, 23, 42, 0.18);
}

@media (min-width: 640px) {
  .rbbe-detail-modal {
    align-items: center;
    padding: 1.25rem;
  }

  .rbbe-detail-modal__panel {
    border-radius: 16px;
    max-height: min(85vh, 680px);
  }
}

.rbbe-detail-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 1rem 1.1rem 0.65rem;
  border-bottom: 1px solid var(--rbbe-line);
}

.rbbe-detail-modal__title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  line-height: 1.3;
  color: var(--rbbe-ink);
}

.rbbe-detail-modal__close {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 8px;
  background: var(--rbbe-sand);
  color: var(--rbbe-muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
}

.rbbe-detail-modal__close:hover {
  background: var(--rbbe-sea-soft);
  color: var(--rbbe-sea);
}

.rbbe-detail-modal__body {
  overflow: auto;
  padding: 0.85rem 1.1rem 1.15rem;
}

.rbbe-detail-modal__photo {
  margin: 0 0 0.85rem;
  border-radius: 12px;
  overflow: hidden;
  background: var(--rbbe-sand, #f4fafc);
  aspect-ratio: 16 / 9;
  max-height: 220px;
}

.rbbe-detail-modal__photo-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.rbbe-detail-modal__operator {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  font-size: 0.82rem;
  color: var(--rbbe-muted);
}

.rbbe-detail-modal__operator-logo {
  width: 24px;
  height: 24px;
  object-fit: contain;
  border-radius: 4px;
}

.rbbe-detail-modal__meta {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  color: var(--rbbe-muted);
}

.rbbe-detail-modal__meta-label {
  font-weight: 500;
}

.rbbe-detail-modal__stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem 0.65rem;
  margin: 0.75rem 0 0;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-detail-modal__stats .rbbe-result-card__stat-label {
  font-size: 0.64rem;
}

.rbbe-detail-modal__stats .rbbe-result-card__stat-value {
  font-size: 0.82rem;
}

.rbbe-detail-modal__stats .rbbe-result-card__stat-hint {
  display: block;
  margin-top: 0.12rem;
  font-size: 0.62rem;
  font-weight: 500;
  line-height: 1.3;
  color: var(--rbbe-muted);
}

.rbbe-detail-modal__stops {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-detail-modal__stops-title {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--rbbe-muted);
}

.rbbe-detail-modal__stops-list {
  margin: 0;
  padding: 0 0 0 1rem;
  font-size: 0.8rem;
  color: var(--rbbe-ink);
  line-height: 1.45;
}

.rbbe-detail-modal__stop + .rbbe-detail-modal__stop {
  margin-top: 0.25rem;
}

.rbbe-detail-modal__facilities {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-detail-modal__trip-info {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rbbe-line);
}

.rbbe-detail-modal__trip-info-title {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--rbbe-muted);
}

.rbbe-detail-modal__trip-info-list {
  margin: 0;
  padding: 0 0 0 1.1rem;
  font-size: 0.8rem;
  color: var(--rbbe-ink);
  line-height: 1.5;
}

.rbbe-detail-modal__trip-info-item + .rbbe-detail-modal__trip-info-item {
  margin-top: 0.35rem;
}

@media (max-width: 820px) {
  .rbbe-result-card {
    grid-template-columns: 88px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }

  .rbbe-result-card--labeled {
    grid-template-rows: auto auto auto auto;
  }

  .rbbe-result-card__labels {
    grid-column: 1 / -1;
    grid-row: 1;
    margin-bottom: 0.1rem;
  }

  .rbbe-result-card__media {
    width: 88px;
    height: 66px;
    grid-column: 1;
    grid-row: 1;
    align-self: start;
  }

  .rbbe-result-card--labeled .rbbe-result-card__media {
    grid-row: 2;
  }

  .rbbe-result-card__img,
  .rbbe-result-card__placeholder {
    height: 66px;
  }

  .rbbe-result-card__body {
    display: contents;
  }

  .rbbe-result-card__route {
    grid-column: 2;
    grid-row: 1;
    min-width: 0;
    align-self: start;
  }

  .rbbe-result-card--labeled .rbbe-result-card__route {
    grid-row: 2;
  }

  .rbbe-result-card__facilities {
    grid-column: 1 / -1;
    grid-row: 2;
    margin-top: 0.3rem;
    padding-top: 0.4rem;
  }

  .rbbe-result-card--labeled .rbbe-result-card__facilities {
    grid-row: 3;
  }

  .rbbe-result-card__aside {
    grid-column: 1 / -1;
    grid-row: 3;
    align-self: stretch;
    padding-top: 0.35rem;
    border-top: 1px solid var(--rbbe-line);
  }

  .rbbe-result-card--labeled .rbbe-result-card__aside {
    grid-row: 4;
  }

  .rbbe-result-card__footer {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 0.65rem;
  }

  .rbbe-result-card__footer-actions {
    flex-shrink: 0;
  }

  .rbbe-result-card__pick {
    flex: 0 1 auto;
    max-width: none;
  }
}

@media (max-width: 640px) {
  body.rbbe-showing-results {
    --rbbe-results-inner-x: 0.75rem;
    --rbbe-results-inner-y: 0.75rem;
    --rbbe-results-gap-x: 0.6rem;
  }

  body.rbbe-showing-results .rbbe-booking__panel--results {
    padding-top: 0.5rem;
    padding-bottom: 0.85rem;
  }

  .rbbe-results-header {
    margin-bottom: 0.85rem;
  }

  .rbbe-results-refine {
    border-radius: 10px;
  }

  .rbbe-result-cards {
    gap: 0.55rem;
  }
}

@media (max-width: 520px) {
  .rbbe-result-card {
    grid-template-columns: 72px minmax(0, 1fr);
    grid-template-rows: auto auto auto;
    gap: 0.45rem 0.55rem;
    align-items: start;
    padding: var(--rbbe-results-inner-y, 0.75rem) var(--rbbe-results-inner-x, 0.75rem);
  }

  .rbbe-result-card--labeled {
    grid-template-rows: auto auto auto auto;
  }

  .rbbe-result-card__media {
    width: 72px;
    height: 54px;
  }

  .rbbe-result-card__img,
  .rbbe-result-card__placeholder {
    height: 54px;
  }

  .rbbe-result-card__facilities {
    margin-top: 0.2rem;
    padding-top: 0.35rem;
  }

  .rbbe-result-card__facilities-list {
    gap: 0.32rem 0.38rem;
  }

  .rbbe-result-card__facility,
  .rbbe-result-card__facilities-list .rbbe-result-card__detail {
    font-size: 0.64rem;
  }

  .rbbe-result-card__aside {
    padding-top: 0.3rem;
  }

  .rbbe-result-card__time {
    font-size: 0.88rem;
  }

  .rbbe-result-card__port {
    font-size: 0.82rem;
  }

  .rbbe-result-card__mid-meta {
    font-size: 0.72rem;
  }

  .rbbe-result-card__footer {
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }

  .rbbe-result-card__footer-actions {
    width: 100%;
    justify-content: stretch;
  }

  .rbbe-result-card__pick {
    flex: 1 1 auto;
    width: 100%;
  }
}

.rbbe-terms {
  flex-direction: row !important;
  align-items: flex-start;
  gap: 0.5rem !important;
  font-weight: 500;
  color: var(--rbbe-ink);
}

.rbbe-hp {
  position: absolute !important;
  left: -9999px !important;
  height: 0;
  overflow: hidden;
}

.rbbe-search-wrap {
  padding: 1rem;
  border: 1px dashed var(--rbbe-line);
  border-radius: var(--rbbe-radius);
}

/* —— Search form (reference layout) —— */
.rbbe-search-form--ref {
  --rbbe-ref-accent: var(--rbbe-sea);
  --rbbe-ref-accent-hover: var(--rbbe-sea-hover);
  --rbbe-ref-accent-soft: var(--rbbe-sea-soft);
  --rbbe-ref-accent-mid: var(--rbbe-sea-mid);
  --rbbe-ref-ink: #1e2f38;
  --rbbe-ref-muted: #7a8f99;
  --rbbe-ref-line: #d4e3e8;
  --rbbe-ref-radius: 10px;
}

.rbbe-booking__panel--search {
  padding: 0;
  border: none;
  box-shadow: none;
  background: transparent;
}

.rbbe-search-form__title {
  margin: 0 0 0.85rem;
  font-size: clamp(1.25rem, 2.8vw, 1.5rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--rbbe-ref-ink);
}

.rbbe-form-ref {
  --rbbe-form-gap: 0.55rem;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--rbbe-form-gap);
  width: 100%;
}

.rbbe-form-ref__row--2 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--rbbe-form-gap);
}

.rbbe-form-ref__route {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
}

.rbbe-form-ref__leg {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.45rem 0.7rem 0.55rem;
  border-radius: 10px;
  background: linear-gradient(
    165deg,
    #fff 0%,
    color-mix(in srgb, var(--rbbe-ref-accent-soft, #e9f4f6) 24%, #fff) 100%
  );
  border: 1px solid color-mix(in srgb, var(--rbbe-ref-accent, #52a9b8) 16%, var(--rbbe-ref-line));
  box-shadow:
    0 1px 2px rgba(15, 35, 45, 0.04),
    inset 0 1px 0 rgba(255, 255, 255, 0.88);
  box-sizing: border-box;
  overflow: visible;
}

.rbbe-form-ref__leg-fields {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  overflow: visible;
}

.rbbe-form-ref__leg--return {
  background: linear-gradient(
    165deg,
    #fff 0%,
    color-mix(in srgb, var(--rbbe-ref-accent, #52a9b8) 9%, #fff) 100%
  );
  border-color: color-mix(in srgb, var(--rbbe-ref-accent, #52a9b8) 22%, var(--rbbe-ref-line));
}

.rbbe-form-ref__leg[data-rbbe-return-block][hidden] {
  display: none !important;
}

.rbbe-form-ref__leg-title {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  margin: 0;
  padding: 0;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--rbbe-ref-accent-deep, #2c5f6b) 92%, var(--rbbe-ref-ink));
}

.rbbe-form-ref__leg-title::after {
  content: "";
  flex: 1 1 auto;
  height: 1px;
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--rbbe-ref-accent, #52a9b8) 32%, var(--rbbe-ref-line)),
    transparent 88%
  );
}

.rbbe-form-ref__return-route {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.3rem 0.45rem;
  margin: 0;
  padding: 0.45rem 0.55rem;
  border-radius: 8px;
  background: #fff;
  border: 1px solid color-mix(in srgb, var(--rbbe-ref-line) 90%, transparent);
  font-size: 0.8rem;
  line-height: 1.3;
}

.rbbe-form-ref__return-icon {
  display: inline-flex;
  flex-shrink: 0;
  color: var(--rbbe-ref-accent);
  opacity: 0.85;
}

.rbbe-form-ref__return-label {
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--rbbe-ref-muted);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.rbbe-form-ref__return-path {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--rbbe-ref-ink);
}

.rbbe-form-ref__return-sep {
  margin: 0 0.15rem;
  font-weight: 500;
  color: var(--rbbe-ref-muted);
}

.rbbe-form-ref .rbbe-fld::after {
  content: "";
  display: block;
  clear: both;
}

.rbbe-form-ref > .rbbe-btn--cta,
.rbbe-form-ref > .rbbe-btn-search {
  margin-top: 0;
}

.rbbe-fld {
  margin: 0;
  padding: 0;
  border: 0;
  min-width: 0;
  overflow: visible;
}

.rbbe-form-ref__row--2 {
  overflow: visible;
}

.rbbe-fld--pax {
  position: static;
}

.rbbe-fld--full {
  grid-column: 1 / -1;
}

.rbbe-fld__legend {
  position: relative;
  z-index: 2;
  float: left;
  margin: 0 0 0 0.55rem;
  padding: 0 0.3rem;
  font-size: 0.68rem;
  font-weight: 500;
  color: var(--rbbe-ref-muted);
  background: #fff;
  line-height: 1.15;
}

.rbbe-fld__req {
  color: #e11d48;
}

.rbbe-search-form--ref .rbbe-fld__control {
  min-height: 2.625rem;
  margin-top: 0.38rem;
  padding: 0 0.55rem 0 0.45rem;
  border-radius: 8px;
  border-color: color-mix(in srgb, var(--rbbe-ref-line) 88%, var(--rbbe-ref-accent));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.rbbe-search-form--ref .rbbe-fld__icon {
  opacity: 0.88;
}

.rbbe-search-form--ref .rbbe-fld__control:focus-within {
  border-color: var(--rbbe-ref-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rbbe-ref-accent) 22%, transparent);
}

.rbbe-search-form--ref .rbbe-btn--cta {
  min-height: 2.75rem;
  margin-top: 0.1rem;
  font-size: 0.95rem;
  border-radius: 9px;
}

.rbbe-fld__control {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  min-height: 3rem;
  margin-top: 0.55rem;
  padding: 0 0.65rem 0 0.5rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: var(--rbbe-ref-radius);
  background: #fff;
  box-sizing: border-box;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.rbbe-fld__control:focus-within {
  border-color: var(--rbbe-ref-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rbbe-ref-accent) 22%, transparent);
}

.rbbe-fld--pax.is-open .rbbe-fld__control {
  border-color: var(--rbbe-ref-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rbbe-ref-accent) 22%, transparent);
}

.rbbe-fld__control--static {
  color: var(--rbbe-ref-muted);
}

.rbbe-fld__trigger {
  cursor: pointer;
  font: inherit;
  text-align: left;
}

.rbbe-fld__icon {
  flex-shrink: 0;
  display: flex;
  color: color-mix(in srgb, var(--rbbe-ref-accent) 72%, var(--rbbe-ref-muted));
}

.rbbe-fld__value {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.92rem;
  color: var(--rbbe-ref-ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.rbbe-fld__select,
.rbbe-fld__input {
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  font-size: 0.92rem;
  color: var(--rbbe-ref-ink);
  appearance: none;
}

/* Custom select (port, trip type) */
.rbbe-custom-select {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
}

.rbbe-custom-select__native {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.rbbe-custom-select__trigger {
  display: block;
  width: 100%;
  padding: 0.35rem 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--rbbe-ref-ink);
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  cursor: pointer;
}

.rbbe-custom-select__trigger.is-placeholder {
  color: var(--rbbe-ref-muted);
  font-weight: 400;
}

.rbbe-custom-select__list {
  position: absolute;
  z-index: 50;
  top: calc(100% + 0.4rem);
  left: 0;
  right: 0;
  min-width: 100%;
  margin: 0;
  padding: 0.35rem 0;
  list-style: none;
  max-height: min(16rem, 52vh);
  overflow-x: hidden;
  overflow-y: auto;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 10px;
  background: #fff;
  box-shadow:
    0 4px 6px rgba(15, 23, 42, 0.04),
    0 16px 36px rgba(15, 23, 42, 0.12);
  -webkit-overflow-scrolling: touch;
}

.rbbe-fld--route .rbbe-custom-select__list {
  min-width: max(100%, 15.5rem);
}

.rbbe-custom-select__list.rbbe-float-layer {
  position: fixed !important;
  top: auto;
  left: auto;
  right: auto;
  z-index: 100040 !important;
  min-width: 0;
}

.rbbe-custom-select__option {
  padding: 0.6rem 0.9rem;
  font-size: 0.92rem;
  line-height: 1.35;
  color: var(--rbbe-ref-ink);
  cursor: pointer;
  transition: background 0.12s ease;
}

.rbbe-custom-select__option:hover,
.rbbe-custom-select__option:focus {
  background: color-mix(in srgb, var(--rbbe-ref-accent) 10%, #fff);
  outline: none;
}

.rbbe-custom-select__option.is-selected {
  background: color-mix(in srgb, var(--rbbe-ref-accent) 16%, #fff);
  font-weight: 600;
  color: color-mix(in srgb, var(--rbbe-ref-accent) 55%, var(--rbbe-ref-ink));
}

.rbbe-custom-select__option.is-disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.rbbe-fld.is-open .rbbe-fld__control {
  border-color: var(--rbbe-ref-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--rbbe-ref-accent) 22%, transparent);
}

/* —— Premium date picker —— */
.rbbe-fld__control {
  position: relative;
}

.rbbe-date-picker {
  position: relative;
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
}

.rbbe-date-native {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.rbbe-date-picker__trigger {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.92rem;
  font-weight: 500;
  color: var(--rbbe-ref-ink);
  text-align: left;
  cursor: pointer;
  line-height: 1.35;
}

.rbbe-date-picker__trigger.is-placeholder {
  color: var(--rbbe-ref-muted);
  font-weight: 400;
}

.rbbe-date-picker__trigger:focus {
  outline: none;
}

.rbbe-fld__control > .rbbe-date-picker__popover,
.rbbe-date-picker__popover {
  position: absolute;
  top: calc(100% + 0.45rem);
  left: 50%;
  right: auto;
  z-index: 55;
  width: min(20.5rem, 100%);
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0.85rem 0.9rem 0.75rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 14px;
  background: #fff;
  box-shadow:
    0 4px 8px rgba(15, 23, 42, 0.05),
    0 20px 44px rgba(15, 23, 42, 0.14);
  box-sizing: border-box;
  transform: translateX(-50%);
}

.rbbe-date-picker__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.65rem;
}

.rbbe-date-picker__title {
  flex: 1 1 auto;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--rbbe-ref-ink);
  text-align: center;
  line-height: 1.3;
}

.rbbe-date-picker__nav {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 10px;
  background: #fff;
  color: var(--rbbe-ref-ink);
  cursor: pointer;
  transition:
    background 0.15s ease,
    border-color 0.15s ease,
    box-shadow 0.15s ease;
}

.rbbe-date-picker__nav:hover,
.rbbe-date-picker__nav:focus-visible {
  border-color: color-mix(in srgb, var(--rbbe-ref-accent) 45%, var(--rbbe-ref-line));
  background: color-mix(in srgb, var(--rbbe-ref-accent) 8%, #fff);
  outline: none;
}

.rbbe-date-picker__nav--prev::before,
.rbbe-date-picker__nav--next::before {
  content: '';
  display: block;
  width: 0.45rem;
  height: 0.45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
}

.rbbe-date-picker__nav--prev::before {
  transform: rotate(135deg) translate(-1px, -1px);
}

.rbbe-date-picker__nav--next::before {
  transform: rotate(-45deg) translate(-1px, -1px);
}

.rbbe-date-picker__weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.15rem;
  margin-bottom: 0.35rem;
}

.rbbe-date-picker__weekday {
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-align: center;
  color: var(--rbbe-ref-muted);
}

.rbbe-date-picker__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 0.2rem;
}

.rbbe-date-picker__day {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  aspect-ratio: 1;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: 10px;
  background: transparent;
  font: inherit;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--rbbe-ref-ink);
  cursor: pointer;
  transition:
    background 0.12s ease,
    color 0.12s ease,
    box-shadow 0.12s ease;
}

.rbbe-date-picker__day:hover:not(:disabled),
.rbbe-date-picker__day:focus-visible:not(:disabled) {
  background: color-mix(in srgb, var(--rbbe-ref-accent) 12%, #fff);
  outline: none;
}

.rbbe-date-picker__day.is-outside {
  color: color-mix(in srgb, var(--rbbe-ref-muted) 85%, #fff);
  font-weight: 400;
}

.rbbe-date-picker__day.is-today:not(.is-selected) {
  box-shadow: inset 0 0 0 1.5px color-mix(in srgb, var(--rbbe-ref-accent) 55%, transparent);
  font-weight: 600;
}

.rbbe-date-picker__day.is-selected {
  background: var(--rbbe-ref-accent);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 4px 12px color-mix(in srgb, var(--rbbe-ref-accent) 40%, transparent);
}

.rbbe-date-picker__day.is-selected:hover {
  background: var(--rbbe-ref-accent-hover);
  color: #fff;
}

.rbbe-date-picker__day.is-disabled,
.rbbe-date-picker__day:disabled {
  opacity: 0.32;
  cursor: not-allowed;
  box-shadow: none;
}

.rbbe-date-picker__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-top: 0.7rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--rbbe-ref-line);
}

.rbbe-date-picker__foot-btn {
  margin: 0;
  padding: 0.35rem 0.15rem;
  border: 0;
  background: transparent;
  font: inherit;
  font-size: 0.82rem;
  font-weight: 600;
  cursor: pointer;
  transition: color 0.12s ease;
}

.rbbe-date-picker__foot-btn--clear {
  color: var(--rbbe-ref-muted);
}

.rbbe-date-picker__foot-btn--clear:hover,
.rbbe-date-picker__foot-btn--clear:focus-visible {
  color: var(--rbbe-ref-ink);
  outline: none;
}

.rbbe-date-picker__foot-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0.85rem;
  margin-left: auto;
}

.rbbe-date-picker__foot-btn--quick {
  color: var(--rbbe-ref-accent);
}

.rbbe-date-picker__foot-btn--quick:hover:not(:disabled),
.rbbe-date-picker__foot-btn--quick:focus-visible:not(:disabled) {
  color: var(--rbbe-ref-accent-hover);
  outline: none;
}

.rbbe-date-picker__foot-btn--quick:disabled {
  opacity: 0.38;
  cursor: not-allowed;
}

.rbbe-fld--toolbar .rbbe-date-picker {
  width: 100%;
}

.rbbe-fld,
.rbbe-fld__control,
.rbbe-form-ref {
  overflow: visible;
}

@media (max-width: 767px) {
  .rbbe-fld__control > .rbbe-date-picker__popover,
  .rbbe-date-picker__popover {
    width: min(20.5rem, calc(100vw - 1.5rem));
    max-width: calc(100vw - 1.5rem);
  }

  .rbbe-date-picker__day {
    font-size: 0.82rem;
    border-radius: 8px;
  }

  .rbbe-date-picker__nav {
    width: 1.85rem;
    height: 1.85rem;
  }

  .rbbe-date-picker__title {
    font-size: 0.9rem;
  }
}

.rbbe-fld__input--date {
  min-height: 1.5rem;
}

.rbbe-fld__select {
  cursor: pointer;
}

.rbbe-fld__select:focus,
.rbbe-fld__input:focus {
  outline: none;
}

.rbbe-fld__chev {
  flex-shrink: 0;
  width: 0.45rem;
  height: 0.45rem;
  margin-right: 0.15rem;
  border-right: 2px solid var(--rbbe-ref-muted);
  border-bottom: 2px solid var(--rbbe-ref-muted);
  transform: rotate(45deg) translateY(-1px);
}

.rbbe-pax-popover {
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  z-index: 40;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.14);
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  min-height: 0;
  max-height: min(85dvh, 32rem);
  overflow: hidden;
}

.rbbe-pax-popover[hidden] {
  display: none !important;
}

.rbbe-form-ref.is-pax-open .rbbe-pax-popover:not(.rbbe-float-layer) {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
}

.rbbe-float-layer {
  z-index: 100050 !important;
}

.rbbe-pax-popover.rbbe-float-layer {
  display: grid !important;
  grid-template-rows: auto minmax(0, 1fr) !important;
  min-height: 0;
  width: min(26rem, calc(100vw - 1.5rem));
  max-width: calc(100vw - 1.5rem);
}

.rbbe-date-picker__popover.rbbe-float-layer {
  width: min(20.5rem, calc(100vw - 1.5rem)) !important;
  max-width: calc(100vw - 1.5rem) !important;
  transform: none !important;
}

.rbbe-fld--pax.is-open {
  position: relative;
  z-index: 3;
}

.rbbe-pax-popover__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  padding: 0.85rem 1rem 0.65rem;
  border-bottom: 1px solid var(--rbbe-ref-line);
  flex-shrink: 0;
}

.rbbe-pax-popover__head-title {
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--rbbe-ref-ink);
}

.rbbe-pax-popover__head-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  margin: 0;
  padding: 0;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 8px;
  background: #fff;
  color: var(--rbbe-ref-muted);
  font-size: 1.35rem;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    color 0.15s ease,
    background 0.15s ease;
}

.rbbe-pax-popover__head-close:hover {
  border-color: color-mix(in srgb, var(--rbbe-ref-accent) 45%, var(--rbbe-ref-line));
  color: var(--rbbe-ref-ink);
  background: var(--rbbe-ref-accent-soft);
}

.rbbe-pax-popover__close {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  min-height: 2.75rem;
  padding: 0.65rem 1rem;
  font-weight: 700;
  font-size: 0.95rem;
  border: 0;
  cursor: pointer;
}

/* Hero / form: panel inline (bukan popover floating) */
.rbbe-fld--pax-panel-mode {
  position: relative;
}

.rbbe-fld--pax-panel-mode.is-open {
  grid-column: 1 / -1;
}

.rbbe-form-ref__row--2 > .rbbe-pax-root:has(.rbbe-fld--pax-panel-mode.is-open),
.rbbe-form-ref__row--2 > .rbbe-pax-root.is-open {
  grid-column: 1 / -1;
}

.rbbe-pax-root.is-open {
  position: relative;
  z-index: 3;
}

.rbbe-pax-panel {
  margin-top: 0.65rem;
  padding: 1rem 1.05rem 1.05rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 12px;
  background: color-mix(in srgb, var(--rbbe-ref-accent-soft, #e9f4f6) 35%, #fff);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.65);
}

.rbbe-pax-panel[hidden] {
  display: none !important;
}

.rbbe-pax-panel__title {
  margin: 0 0 0.85rem;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--rbbe-ref-ink);
}

.rbbe-pax-panel__ok,
.rbbe-pax-popover__ok {
  width: 100%;
  min-height: 2.85rem;
}

.rbbe-pax-panel__ok {
  margin-top: 1.2rem;
}

.rbbe-pax-popover__ok {
  margin-top: 0.85rem;
}

.rbbe-pax-steppers {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.rbbe-pax-steppers__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.rbbe-pax-steppers__label {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 0.55rem;
  row-gap: 0.1rem;
  align-items: center;
  min-width: 0;
}

.rbbe-pax-steppers__icon {
  grid-row: 1 / span 2;
  display: flex;
  color: var(--rbbe-ref-accent);
}

.rbbe-pax-steppers__name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-ref-ink);
}

.rbbe-pax-steppers__desc {
  font-size: 0.72rem;
  color: var(--rbbe-ref-muted);
}

.rbbe-pax-popover__body {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: visible;
  padding: 1rem 1.15rem 1rem;
}

.rbbe-pax-popover__body .rbbe-pax-steppers {
  margin-bottom: 0;
}

.rbbe-pax-popover__type {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0.2rem;
}

.rbbe-pax-popover__icon {
  display: flex;
  color: var(--rbbe-ref-accent);
}

.rbbe-pax-popover__name {
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--rbbe-ref-ink);
}

.rbbe-pax-popover__desc {
  font-size: 0.72rem;
  color: var(--rbbe-ref-muted);
  margin-bottom: 0.35rem;
}

.rbbe-pax-stepper {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.rbbe-pax-stepper__btn {
  width: 2rem;
  height: 2rem;
  border: 1px solid var(--rbbe-ref-line);
  border-radius: 8px;
  background: color-mix(in srgb, var(--rbbe-ref-accent-soft) 55%, #fff);
  color: var(--rbbe-ref-ink);
  font-size: 1.1rem;
  line-height: 1;
  cursor: pointer;
  transition:
    border-color 0.15s ease,
    color 0.15s ease,
    background 0.15s ease;
}

.rbbe-pax-stepper__btn:hover {
  border-color: color-mix(in srgb, var(--rbbe-ref-accent) 45%, var(--rbbe-ref-line));
  background: var(--rbbe-ref-accent-soft);
  color: var(--rbbe-ref-accent-hover);
}

.rbbe-pax-stepper__val {
  min-width: 1.25rem;
  font-weight: 700;
  text-align: center;
}

.rbbe-btn--dark {
  border-color: transparent;
  background: var(--rbbe-sea-deep);
  color: #fff;
  border-radius: 10px;
  transition: background 0.15s ease;
}

.rbbe-btn--dark:hover {
  background: color-mix(in srgb, var(--rbbe-sea-deep) 88%, #000);
}

.rbbe-btn--cta {
  width: 100%;
  margin-top: 0;
  min-height: 3rem;
  border: 0;
  border-radius: var(--rbbe-ref-radius);
  background: var(--rbbe-btn-gradient);
  color: #fff;
  font-size: 1rem;
  font-weight: 700;
  box-shadow: var(--rbbe-btn-shadow);
  transition:
    transform 0.15s ease,
    box-shadow 0.15s ease,
    background 0.15s ease;
}

.rbbe-btn--cta:hover {
  background: var(--rbbe-btn-gradient-hover);
  box-shadow: var(--rbbe-btn-shadow-hover);
  transform: translateY(-1px);
}

body.ramaya-booking-hero .page-hero__booking-form--centered .rbbe-search-form--ref .rbbe-search-form__title {
  color: var(--rbbe-ref-ink);
  text-shadow: none;
}

body.ramaya-booking-hero .page-hero__booking-form--centered .rbbe-booking__panel--search,
body.ramaya-booking-hero .booking-hero__form-card .rbbe-booking__panel--search {
  padding: 1rem 1.15rem 1.05rem;
  background: #fff;
  border-radius: 14px;
  box-shadow:
    0 16px 40px rgba(15, 23, 42, 0.18),
    0 1px 0 rgba(255, 255, 255, 0.65) inset;
  overflow: visible;
}

body.ramaya-booking-hero .page-hero__booking-form--centered .rbbe-search-form--ref,
body.ramaya-booking-hero .page-hero__booking-form--centered .rbbe-form-ref,
body.ramaya-booking-hero .booking-hero__form-card .rbbe-search-form--ref,
body.ramaya-booking-hero .booking-hero__form-card .rbbe-form-ref {
  overflow: visible;
}

.rbbe-search-form--ref {
  width: 100%;
  min-width: 0;
}

@media (max-width: 640px) {
  .rbbe-form-ref__row--2,
  .rbbe-form-ref__route,
  .rbbe-pax-popover__grid {
    grid-template-columns: 1fr;
  }

  .rbbe-form-ref__route {
    gap: var(--rbbe-form-gap, 0.75rem);
  }

  .rbbe-fld__select,
  .rbbe-fld__input {
    font-size: 16px;
  }
}
