.cabo-booking{
  --cabo-accent:#cb5535;
  --cabo-accent-text:color-mix(in srgb,var(--cabo-accent) 72%,#000000);
  --cabo-ink:#0b171d;
  --cabo-surface:#ffffff;
  --cabo-soft:#f5f7f8;
  --cabo-muted:#66727c;
  --cabo-border:#d8dee3;
  --cabo-border-strong:color-mix(in srgb,var(--cabo-border) 70%,var(--cabo-ink));
  --cabo-button-text:#ffffff;
  --cabo-shadow:0 18px 40px rgba(11,23,29,.08);
  --cabo-shadow-soft:0 10px 24px rgba(11,23,29,.05);
  display:grid;
  gap:16px;
  padding:22px;
  border:1px solid var(--cabo-border);
  border-radius:28px;
  scroll-margin-top:96px;
  background:
    radial-gradient(circle at top left, rgba(203,85,53,.10), transparent 38%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(250,251,252,.98));
  box-shadow:var(--cabo-shadow);
  color:var(--cabo-ink);
}

.cabo-booking [hidden]{
  display:none !important;
}

.cabo-booking__header{
  display:grid;
  gap:10px;
  padding-bottom:4px;
}

.cabo-booking__eyebrow{
  margin:0;
  font-size:12px;
  line-height:1;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cabo-accent-text);
  font-weight:800;
}

.cabo-booking__title{
  margin:0;
  font-family:var(--wp--preset--font-family--sora, Inter, system-ui, sans-serif);
  font-size:clamp(22px,2.2vw,30px);
  line-height:1.12;
  letter-spacing:-.03em;
  color:var(--cabo-ink);
}

.cabo-booking__subtitle{
  margin:0;
  max-width:60ch;
  font-size:15px;
  line-height:1.65;
  color:#51606b;
}

.cabo-booking__form{
  display:grid;
  gap:16px;
}

.cabo-booking__layout{
  display:grid;
  grid-template-columns:1fr;
  gap:14px;
  align-items:start;
}

.cabo-booking__stepper{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0 2px;
}

.cabo-booking__stepper-item{
  display:flex;
  align-items:center;
  gap:8px;
  padding:0;
  border:0;
  background:transparent;
  cursor:pointer;
  color:var(--cabo-muted);
}

.cabo-booking__stepper-item:disabled{
  cursor:default;
}

.cabo-booking__stepper-dot{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  flex:0 0 auto;
  border-radius:999px;
  border:1.5px solid var(--cabo-border-strong);
  background:var(--cabo-surface);
  color:var(--cabo-muted);
  font-size:12px;
  font-weight:800;
  transition:border-color .18s ease, background-color .18s ease, color .18s ease;
}

.cabo-booking__stepper-label{
  font-size:12px;
  font-weight:700;
  letter-spacing:.02em;
}

.cabo-booking__stepper-item.is-current .cabo-booking__stepper-dot{
  border-color:var(--cabo-accent);
  background:var(--cabo-accent);
  color:var(--cabo-button-text);
}

.cabo-booking__stepper-item.is-current .cabo-booking__stepper-label{
  color:var(--cabo-ink);
}

.cabo-booking__stepper-item.is-complete .cabo-booking__stepper-dot{
  border-color:var(--cabo-accent);
  color:var(--cabo-accent-text);
}

.cabo-booking__stepper-item.is-complete:hover .cabo-booking__stepper-dot{
  background:color-mix(in srgb, var(--cabo-accent) 12%, transparent);
}

.cabo-booking__stepper-item:disabled:not(.is-current) .cabo-booking__stepper-label{
  color:var(--cabo-muted);
  opacity:.55;
}

.cabo-booking__stepper-connector{
  flex:1 1 auto;
  height:1px;
  background:var(--cabo-border);
  min-width:12px;
}

.cabo-booking__panel{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:14px;
  padding:16px;
  border:1px solid rgba(11,23,29,.08);
  border-radius:24px;
  background:
    linear-gradient(180deg,rgba(255,255,255,.99),rgba(248,250,251,.98));
  box-shadow:0 14px 28px rgba(11,23,29,.05);
}

.cabo-booking__panel--checkout{
  background:
    radial-gradient(circle at top right, rgba(203,85,53,.08), transparent 30%),
    linear-gradient(180deg,rgba(255,255,255,.99),rgba(250,251,252,.98));
}

.cabo-booking__carousel{
  position:relative;
  overflow:hidden;
  border-radius:24px;
  touch-action:pan-y;
  transition:height .38s cubic-bezier(.22,.68,0,1);
}

.cabo-booking__carousel > .cabo-booking__panel{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  box-sizing:border-box;
  transition:transform .38s cubic-bezier(.22,.68,0,1);
  will-change:transform;
}

/* booking.js is deferred and measures/sets an explicit carousel height on
   init; until it runs, absolutely-positioned panels contribute no height
   and the whole widget collapses to nothing. Keep the initial quote panel
   in normal flow (real height, no JS needed) and hide the other panels,
   until JS takes over and marks the carousel ready. */
.cabo-booking__carousel:not(.is-cabo-ready) > [data-cabo-quote-step]{
  position:static;
}

.cabo-booking__carousel:not(.is-cabo-ready) > .cabo-booking__panel:not([data-cabo-quote-step]){
  display:none;
}

.cabo-booking__carousel > .cabo-booking__panel--payment{
  padding-left:max(16px, calc((100% - 760px) / 2 + 16px));
  padding-right:max(16px, calc((100% - 760px) / 2 + 16px));
}

.cabo-booking__panel-head{
  display:grid;
  gap:6px;
}

.cabo-booking__panel-hero{
  display:inline-flex;
  align-items:center;
  gap:10px;
}

.cabo-booking__panel-title{
  margin:0;
  font-family:var(--wp--preset--font-family--sora, Inter, system-ui, sans-serif);
  font-size:clamp(15px,1.35vw,18px);
  line-height:1.15;
  letter-spacing:-.03em;
  color:var(--cabo-ink);
  font-weight:900;
}

.cabo-booking__divider{
  display:grid;
  grid-template-columns:minmax(24px,1fr) auto minmax(24px,1fr);
  align-items:center;
  gap:10px;
  min-width:0;
  color:#66727c;
}

.cabo-booking__divider span{
  display:block;
  height:1px;
  background:rgba(11,23,29,.16);
}

.cabo-booking__divider strong{
  font-size:11px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.02em;
  text-align:center;
  white-space:nowrap;
}

.cabo-booking__location-flow{
  display:grid;
  gap:14px;
}

.cabo-booking__panel-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  color:var(--cabo-accent);
  animation:caboChevronBounce 1.5s ease-in-out infinite;
}

.cabo-booking__panel-chevron svg{
  width:20px;
  height:20px;
}

@keyframes caboChevronBounce{
  0%,100%{
    transform:translateY(-1px);
    opacity:.72;
  }
  50%{
    transform:translateY(3px);
    opacity:1;
  }
}

.cabo-booking__panel-kicker{
  margin:0;
  font-size:12px;
  font-weight:900;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--cabo-accent);
}

.cabo-booking__panel-copy{
  margin:0;
  font-size:13px;
  line-height:1.6;
  color:#5d6670;
}

.cabo-booking__group{
  display:grid;
  gap:10px;
}

.cabo-booking__group--big-groups{
  margin-top:4px;
}

.cabo-booking__label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--cabo-ink);
}

.cabo-booking__choices{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.cabo-booking__choices--compact{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cabo-booking__choices--route{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cabo-booking__choices--services{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.cabo-booking__choice--service-private{
  grid-column:1 / -1;
}

.cabo-booking__choice-stars{
  display:inline-flex;
  align-items:center;
  gap:2px;
  color:var(--cabo-accent) !important;
}

.cabo-booking__choice-stars svg{
  width:11px;
  height:11px;
}

.cabo-booking__choices--single{
  grid-template-columns:1fr;
}

.cabo-booking__choice--wide{
  min-height:52px;
}

/* Applies to both Route and Trip (both use --compact): Route's labels
   ("Airport to Hotel" / "Hotel to Airport") are actually longer than
   Trip's, so it needs the same compact sizing to avoid wrapping to 2-3
   lines in narrow columns — unwrapped text keeps the min-height-driven
   vertical whitespace looking comfortable; wrapped text collapses it down
   to the raw 10px padding, which reads as "no vertical padding". */
.cabo-booking__choices--compact .cabo-booking__choice-copy strong{
  font-size:13px;
}

.cabo-booking__choices--compact .cabo-booking__choice-copy small{
  font-size:10px;
}

.cabo-booking[data-route="hotel_to_airport"] .cabo-booking__choices--trips{
  grid-template-columns:1fr;
}

.cabo-booking__choice{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:10px;
  min-height:56px;
  padding:10px 12px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:18px;
  background:
    linear-gradient(180deg,#ffffff,#f8fafb),
    linear-gradient(180deg, rgba(11,23,29,.02), rgba(11,23,29,0));
  color:var(--cabo-ink);
  font-size:14px;
  font-weight:700;
  cursor:pointer;
  transition:
    transform .18s ease,
    border-color .18s ease,
    box-shadow .18s ease,
    background-color .18s ease,
    color .18s ease;
  box-shadow:0 1px 0 rgba(255,255,255,.7) inset;
}

.cabo-booking__choice:hover{
  transform:translateY(-1px);
  border-color:rgba(203,85,53,.38);
  box-shadow:0 12px 22px rgba(11,23,29,.06);
}

.cabo-booking__choice[data-checked="true"]{
  border-color:rgba(203,85,53,.55);
  background:
    linear-gradient(180deg,rgba(203,85,53,.18),rgba(203,85,53,.09)),
    linear-gradient(180deg,#ffffff,#fbfbfc);
  box-shadow:0 14px 26px rgba(203,85,53,.14);
  color:var(--cabo-ink);
}

.cabo-booking__choice input{
  position:absolute;
  inset:0;
  opacity:0;
  pointer-events:none;
}

.cabo-booking__choice-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:22px;
  height:22px;
  color:#7b8590;
}

.cabo-booking__choice-icon svg,
.cabo-booking__choice-icon img{
  width:22px;
  height:22px;
  object-fit:contain;
}

.cabo-booking__choice-copy{
  display:grid;
  gap:2px;
  min-width:0;
}

.cabo-booking__choice-copy strong{
  font-size:14px;
  line-height:1.2;
  color:var(--cabo-ink);
}

.cabo-booking__choice-copy small{
  font-size:11px;
  line-height:1.3;
  color:#77808b;
  font-weight:600;
}

.cabo-booking__choice:focus-within{
  outline:2px solid rgba(203,85,53,.55);
  outline-offset:2px;
}

.cabo-booking__select{
  width:100%;
  min-height:50px;
  padding:12px 14px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:18px;
  background:
    linear-gradient(180deg,#fff,#fbfbfc);
  color:var(--cabo-ink);
  font-size:14px;
  box-shadow:var(--cabo-shadow-soft);
}

.cabo-booking__select:focus{
  outline:2px solid rgba(203,85,53,.55);
  outline-offset:2px;
  border-color:rgba(203,85,53,.35);
}

.cabo-booking__grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
}

.cabo-booking__grid--stacked{
  grid-template-columns:1fr;
}

.cabo-booking__control-card{
  position:relative;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  min-height:64px;
  min-width:0;
  padding:10px 12px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:20px;
  background:#fff;
  box-shadow:0 10px 18px rgba(11,23,29,.05);
  cursor:pointer;
}

.cabo-booking__control-card:focus-within{
  outline:2px solid rgba(203,85,53,.55);
  outline-offset:2px;
  border-color:rgba(203,85,53,.35);
}

.cabo-booking__control-icon,
.cabo-booking__control-chevron{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:20px;
  height:20px;
  color:#8a93a0;
}

.cabo-booking__control-icon svg{
  width:20px;
  height:20px;
}

.cabo-booking__control-chevron svg{
  width:12px;
  height:8px;
}

.cabo-booking__control-card--airport .cabo-booking__control-icon,
.cabo-booking__control-card--destination .cabo-booking__control-icon,
.cabo-booking__datetime-trigger .cabo-booking__control-icon{
  color:var(--cabo-accent);
}

.cabo-booking__control-card--notes{
  grid-template-columns:auto minmax(0,1fr);
}

.cabo-booking__control-card--notes .cabo-booking__control-copy span{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:14px;
  font-weight:400;
  color:#8a93a0;
}

.cabo-booking__control-card--notes[data-cabo-has-value="true"] .cabo-booking__control-copy span{
  color:var(--cabo-ink);
}

.cabo-booking__control-copy{
  display:grid;
  gap:2px;
  min-width:0;
}

.cabo-booking__control-copy strong{
  font-size:14px;
  line-height:1.2;
  color:var(--cabo-ink);
}

.cabo-booking__control-copy small{
  font-size:11px;
  line-height:1.3;
  color:#77808b;
  font-weight:600;
}

.cabo-booking__control-select,
.cabo-booking__control-input{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  opacity:0;
  cursor:pointer;
  pointer-events:none;
  appearance:none;
  border:0;
  background:transparent;
}

.cabo-booking__control-input{
  opacity:0.01;
}

.cabo-booking__quote{
  display:grid;
  gap:10px;
  padding:18px;
  border-radius:22px;
  border:1px solid rgba(203,85,53,.18);
  background:
    linear-gradient(135deg, rgba(203,85,53,.16), rgba(255,255,255,.92) 56%),
    linear-gradient(180deg,#ffffff,#fcfcfd);
  box-shadow:0 14px 30px rgba(11,23,29,.10);
}

.cabo-booking__quote-total{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}

.cabo-booking__quote-label{
  font-size:12px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#5d6670;
}

.cabo-booking__quote-value{
  font-size:clamp(28px,3vw,40px);
  line-height:1;
  color:var(--cabo-ink);
  font-family:var(--wp--preset--font-family--sora, Inter, system-ui, sans-serif);
}

.cabo-booking__quote-summary{
  margin:0;
  font-size:13px;
  line-height:1.6;
  color:#5d6670;
}

.cabo-booking__step-actions{
  display:grid;
  gap:10px;
}

.cabo-booking__helper{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:#5d6670;
}

.cabo-booking__meta-title{
  margin:0;
  font-size:12px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:var(--cabo-ink);
}

.cabo-booking__actions{
  display:grid;
  gap:10px;
}

.cabo-booking__button{
  width:100%;
  min-height:44px;
  padding:10px 16px;
  border:0;
  border-radius:999px;
  background:
    linear-gradient(180deg, #d36e53, #cb5535);
  color:#fff;
  font-family:var(--wp--preset--font-family--sora, Inter, system-ui, sans-serif);
  font-size:14px;
  font-weight:800;
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:0 16px 28px rgba(11,23,29,.20);
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.cabo-booking__button:hover{
  transform:translateY(-1px);
  filter:saturate(1.02) brightness(1.01);
  box-shadow:0 18px 30px rgba(11,23,29,.24);
}

.cabo-booking__button:focus-visible{
  outline:2px solid var(--cabo-ink);
  outline-offset:3px;
}

.cabo-booking__button--secondary{
  background:linear-gradient(180deg,#141c22,#0b171d);
  box-shadow:0 16px 28px rgba(11,23,29,.22);
}

.cabo-booking__step-actions{
  display:grid;
  gap:10px;
}

.cabo-booking__helper{
  margin:0;
  font-size:13px;
  line-height:1.5;
  color:#5d6670;
}

.cabo-booking__checkout{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:14px;
  min-width:0;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}

.cabo-booking__checkout-head{
  display:grid;
  gap:6px;
}

.cabo-booking__checkout-copy{
  margin:0;
  font-size:13px;
  line-height:1.55;
  color:#5d6670;
}

.cabo-booking__field{
  display:grid;
  gap:8px;
  min-width:0;
}

.cabo-booking__input{
  width:100%;
  min-height:44px;
  padding:10px 12px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:18px;
  background:linear-gradient(180deg,#fff,#fbfbfc);
  color:var(--cabo-ink);
  font-size:14px;
  box-shadow:var(--cabo-shadow-soft);
}

.cabo-booking__input:focus{
  outline:2px solid rgba(203,85,53,.55);
  outline-offset:2px;
  border-color:rgba(203,85,53,.35);
}

.cabo-booking__textarea{
  resize:vertical;
  min-height:120px;
}

.cabo-booking__notes-dialog{
  grid-template-rows:auto auto auto auto;
}

.cabo-booking__notes-textarea{
  width:100%;
  min-height:160px;
  padding:12px 14px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:14px;
  background:linear-gradient(180deg,#fff,#fbfbfc);
  color:var(--cabo-ink);
  font-size:14px;
  font-family:inherit;
  resize:vertical;
}

.cabo-booking__notes-textarea:focus{
  outline:2px solid rgba(203,85,53,.55);
  outline-offset:2px;
  border-color:rgba(203,85,53,.35);
}

.cabo-booking__notes-counter{
  margin:0;
  font-size:12px;
  color:#8a919b;
  text-align:right;
}

.cabo-booking__extras{
  display:grid;
  gap:20px;
}

.cabo-booking__extras-group{
  display:grid;
  gap:10px;
}

.cabo-booking__extras-title{
  margin:0;
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px;
  font-size:13px;
  font-weight:800;
  color:var(--cabo-ink);
}

.cabo-booking__extras-price{
  font-size:11px;
  font-weight:700;
  color:var(--cabo-accent-text);
}

.cabo-booking__extras-notes{
  margin:0;
  padding:0 0 0 16px;
  display:grid;
  gap:4px;
  font-size:11px;
  line-height:1.5;
  color:#6b7280;
}

.cabo-booking__extras-note--warning{
  color:#a11f1f;
  font-weight:800;
}

.cabo-booking__extras-helper{
  margin:0;
  font-size:11px;
  line-height:1.5;
  color:#6b7280;
}

.cabo-booking__extras-total{
  margin:0;
  font-size:13px;
  font-weight:800;
  color:var(--cabo-ink);
}

.cabo-booking__extras-group[data-cabo-extra-disabled="true"]{
  opacity:.45;
}

.cabo-booking__extras-group[data-cabo-extra-disabled="true"] .cabo-booking__choice,
.cabo-booking__extras-group[data-cabo-extra-disabled="true"] .cabo-booking__control-card{
  pointer-events:none;
}

.cabo-booking__payment-box{
  display:grid;
  gap:10px;
  padding:12px;
  border-radius:18px;
  background:linear-gradient(180deg,rgba(203,85,53,.07),rgba(203,85,53,.04));
  border:1px solid rgba(203,85,53,.14);
}

.cabo-booking__payment-list{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}

.cabo-booking__payment-pill{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:30px;
  padding:6px 10px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(11,23,29,.08);
  color:var(--cabo-ink);
  font-size:12px;
  font-weight:800;
}

.cabo-booking__panel--payment{
  grid-column:1 / -1;
  width:min(100%,760px);
  max-width:100%;
  min-width:0;
  justify-self:center;
  gap:18px;
  background:
    radial-gradient(circle at top right,rgba(203,85,53,.10),transparent 34%),
    linear-gradient(180deg,#fff,#f8fafb);
}

.cabo-booking__panel--payment,
.cabo-booking__panel--payment *{
  box-sizing:border-box;
}

.cabo-booking__payment-summary{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:20px;
  width:100%;
  min-width:0;
  padding:16px 18px;
  border:1px solid rgba(11,23,29,.09);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--cabo-shadow-soft);
}

.cabo-booking__payment-summary div{
  display:grid;
  gap:4px;
  min-width:0;
}

.cabo-booking__payment-summary-end{
  text-align:right;
}

.cabo-booking__payment-summary-discount{
  grid-column:1 / -1;
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding-top:8px;
  border-top:1px dashed rgba(11,23,29,.12);
}

.cabo-booking__payment-summary-discount strong{
  color:#116b3a;
}

.cabo-booking__payment-summary span{
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#68747e;
}

.cabo-booking__payment-summary strong{
  font-family:var(--wp--preset--font-family--sora,Inter,system-ui,sans-serif);
  font-size:17px;
  line-height:1.2;
  color:var(--cabo-ink);
  overflow-wrap:anywhere;
}

.cabo-booking__coupon{
  display:grid;
  gap:8px;
  width:100%;
  min-width:0;
  padding:14px 16px;
  border:1px solid rgba(11,23,29,.09);
  border-radius:18px;
  background:#fff;
  box-shadow:var(--cabo-shadow-soft);
}

.cabo-booking__coupon-label{
  font-size:10px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
  color:#68747e;
}

.cabo-booking__coupon-row{
  display:flex;
  gap:8px;
  width:100%;
  min-width:0;
}

.cabo-booking__coupon-input{
  flex:1 1 auto;
  min-width:0;
  height:42px;
  padding:0 14px;
  border:1px solid rgba(11,23,29,.14);
  border-radius:12px;
  background:#fff;
  color:var(--cabo-ink);
  font-size:13px;
}

.cabo-booking__coupon-input:focus{
  outline:none;
  border-color:#cb5535;
  box-shadow:0 0 0 2px rgba(203,85,53,.18);
}

.cabo-booking__coupon-apply{
  flex:0 0 auto;
  height:42px;
  padding:0 18px;
  border:none;
  border-radius:12px;
  background:#111820;
  color:#fff;
  font-size:12px;
  font-weight:800;
  letter-spacing:.03em;
  cursor:pointer;
  transition:background .18s ease,transform .18s ease;
}

.cabo-booking__coupon-apply:hover{
  background:#000;
}

.cabo-booking__coupon-apply:disabled{
  opacity:.6;
  cursor:default;
}

.cabo-booking__coupon-status{
  min-height:16px;
  margin:0;
  font-size:11px;
  line-height:1.4;
  color:#5d6670;
}

.cabo-booking__coupon-status[data-tone="error"]{
  color:#a11f1f;
}

.cabo-booking__coupon-status[data-tone="success"]{
  color:#116b3a;
}

.cabo-booking__panel--payment,
.cabo-booking__panel--checkout{
  /* The widget is often embedded at a fixed narrow width regardless of the
     page viewport (e.g. beside hero copy), so the payment-method grid below
     needs to react to this panel's own rendered width, not the viewport.
     Both panels share this container name so the Step 2 preview row and
     the Step 3 selector always resolve to the same column count. */
  container-type:inline-size;
  container-name:cabo-payment-panel;
}

.cabo-booking__payment-methods{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  width:100%;
  min-width:0;
}

.cabo-booking__payment-method:last-child:nth-child(odd){
  grid-column:1 / -1;
}

@container cabo-payment-panel (min-width: 520px){
  .cabo-booking__payment-methods{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .cabo-booking__payment-method:last-child:nth-child(odd){
    grid-column:auto;
  }
}

.cabo-booking__payment-method{
  display:flex;
  align-items:center;
  gap:12px;
  min-height:68px;
  width:100%;
  min-width:0;
  padding:12px 14px;
  border:1px solid rgba(11,23,29,.12);
  border-radius:18px;
  background:#fff;
  color:var(--cabo-ink);
  text-align:left;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(11,23,29,.05);
  transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease,background .18s ease;
}

.cabo-booking__payment-method:hover{
  transform:translateY(-1px);
  border-color:rgba(203,85,53,.42);
  box-shadow:0 14px 26px rgba(11,23,29,.08);
}

.cabo-booking__payment-method:focus-visible{
  outline:2px solid var(--cabo-accent);
  outline-offset:3px;
}

.cabo-booking__payment-method[data-selected="true"]{
  border-color:var(--cabo-accent);
  background:linear-gradient(180deg,rgba(203,85,53,.10),rgba(255,255,255,.98));
  box-shadow:0 0 0 2px rgba(203,85,53,.13),0 14px 28px rgba(203,85,53,.10);
}

.cabo-booking__payment-method-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 38px;
  width:38px;
  height:38px;
  border-radius:12px;
  background:#111820;
  color:#fff;
  font-size:13px;
  font-weight:900;
  letter-spacing:.08em;
}

.cabo-booking__payment-method-icon svg{
  width:19px;
  height:19px;
  display:block;
}

.cabo-booking__payment-method > span:last-child{
  display:grid;
  gap:3px;
  min-width:0;
}

.cabo-booking__payment-method strong{
  font-size:13px;
  line-height:1.25;
  font-weight:850;
}

.cabo-booking__payment-method small{
  font-size:10px;
  line-height:1.35;
  color:#68747e;
}

.cabo-booking__stripe,
.cabo-booking__paypal,
.cabo-booking__cash{
  display:grid;
  gap:14px;
  width:100%;
  min-width:0;
  padding:16px;
  border:1px solid rgba(11,23,29,.09);
  border-radius:20px;
  background:#fff;
  box-shadow:0 14px 30px rgba(11,23,29,.06);
}

.cabo-booking__stripe-element{
  min-height:120px;
  width:100%;
  min-width:0;
}

.cabo-booking__stripe-helper{
  margin:0;
  font-size:11px;
  line-height:1.45;
  text-align:center;
  color:#68747e;
}

.cabo-booking__cash-note{
  display:grid;
  gap:4px;
  padding:14px;
  border-radius:16px;
  background:#f5f7f8;
}

.cabo-booking__cash-note strong{
  font-size:13px;
  color:var(--cabo-ink);
}

.cabo-booking__cash-note span{
  font-size:11px;
  line-height:1.45;
  color:#68747e;
}

.cabo-booking__payment-status{
  min-height:20px;
  font-size:12px;
  line-height:1.5;
  text-align:center;
  color:#5d6670;
}

.cabo-booking__payment-status[data-tone="error"]{
  color:#a11f1f;
}

.cabo-booking__payment-status[data-tone="success"]{
  color:#116b3a;
}

.cabo-booking__payment-success{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:18px;
  border:1px solid rgba(17,107,58,.18);
  border-radius:20px;
  background:linear-gradient(180deg,rgba(17,107,58,.08),rgba(255,255,255,.98));
}

.cabo-booking__payment-success-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 42px;
  width:42px;
  height:42px;
  border-radius:14px;
  background:#116b3a;
  color:#fff;
  font-size:22px;
  font-weight:900;
}

.cabo-booking__payment-success div{
  display:grid;
  gap:4px;
}

.cabo-booking__payment-success strong{
  font-family:var(--wp--preset--font-family--sora,Inter,system-ui,sans-serif);
  font-size:17px;
  color:var(--cabo-ink);
}

.cabo-booking__payment-success p{
  margin:0;
  font-size:12px;
  line-height:1.55;
  color:#53616b;
}

.cabo-booking__button:disabled{
  cursor:not-allowed;
  opacity:.58;
  transform:none;
  box-shadow:none;
}

.cabo-booking__button[data-loading="true"]{
  cursor:wait;
}

.cabo-booking__status{
  min-height:22px;
  font-size:13px;
  line-height:1.5;
  color:#5d6670;
}

.cabo-booking__status[data-tone="success"]{
  color:#116b3a;
}

.cabo-booking__status[data-tone="error"]{
  color:#a11f1f;
}

.cabo-booking__status[data-tone="info"]{
  color:#5d6670;
}

.cabo-booking__schedule-grid[data-visible-fields="one"]{
  grid-template-columns:minmax(0, 1fr);
}

.cabo-booking__datetime-trigger{
  width:100%;
  font:inherit;
  text-align:left;
  color:var(--cabo-ink);
  cursor:pointer;
}

.cabo-booking__datetime-trigger:hover{
  border-color:rgba(203,85,53,.38);
  box-shadow:0 12px 22px rgba(11,23,29,.08);
}

.cabo-booking__datetime-trigger[aria-required="true"] .cabo-booking__control-copy strong::after{
  content:" · Required";
  color:var(--cabo-accent);
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.04em;
}

.cabo-booking__schedule-helper,
.cabo-booking__datetime-timezone,
.cabo-booking__wheel-helper,
.cabo-booking__datetime-validation{
  margin:0;
  color:#66717b;
  font-size:11px;
  line-height:1.45;
  text-align:center;
}

.cabo-booking__datetime-validation.is-error{
  color:#a11f1f;
  font-weight:800;
}

.cabo-booking__control-card--airline.is-error,
.cabo-booking__flightinfo-input.is-error{
  border-color:#a11f1f;
}

.cabo-booking__wheel-helper{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  font-weight:700;
}

.cabo-booking__wheel-helper-chevrons{
  display:grid;
  gap:2px;
  width:9px;
}

.cabo-booking__wheel-helper-chevrons i{
  display:block;
  width:9px;
  height:5px;
  background:var(--cabo-accent);
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-position:center;
  mask-repeat:no-repeat;
  mask-size:contain;
}

.cabo-booking__wheel-helper-chevrons i:first-child{
  -webkit-mask-image:url("icons/chevron_up.svg");
  mask-image:url("icons/chevron_up.svg");
}

.cabo-booking__wheel-helper-chevrons i:last-child{
  -webkit-mask-image:url("icons/chevron_down.svg");
  mask-image:url("icons/chevron_down.svg");
}

.cabo-booking__datetime-trigger .cabo-booking__control-copy small{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.cabo-booking__flightinfo-container,
.cabo-booking__flightinfo-group{
  display:grid;
  gap:14px;
}

.cabo-booking__flightinfo-divider{
  margin-top:2px;
}

.cabo-booking__control-card--airline .cabo-booking__control-icon{
  color:var(--cabo-accent);
}

.cabo-booking__flightinfo-input{
  text-transform:uppercase;
}

.cabo-booking__itinerary-recap{
  display:grid;
  gap:8px;
  padding:14px 16px;
  border-radius:18px;
  border:1px solid var(--cabo-border);
  background:var(--cabo-soft);
}

.cabo-booking__itinerary-recap-title{
  margin:0;
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#5d6670;
}

.cabo-booking__itinerary-recap-list{
  display:grid;
  gap:6px;
  margin:0;
  padding:0;
  list-style:none;
}

.cabo-booking__itinerary-recap-item{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  font-size:13px;
}

.cabo-booking__itinerary-recap-label{
  flex:0 0 auto;
  color:#77808b;
  font-weight:700;
}

.cabo-booking__itinerary-recap-value{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--cabo-ink);
  font-weight:600;
  text-align:right;
}

.cabo-booking__datetime-picker{
  position:fixed;
  left:0;
  right:0;
  top:var(--cabo-vv-top, 0px);
  height:var(--cabo-vv-height, 100vh);
  z-index:10000;
  display:grid;
  place-items:center;
  padding:20px;
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease,visibility .18s ease;
}

.cabo-booking__datetime-picker.is-open{
  opacity:1;
  visibility:visible;
}

.cabo-booking__datetime-picker.is-closing{
  opacity:0;
  visibility:visible;
}

.cabo-booking__datetime-backdrop{
  position:absolute;
  inset:0;
  background:rgba(11,23,29,.76);
}

.cabo-booking__datetime-dialog{
  position:relative;
  box-sizing:border-box;
  width:min(100%,520px);
  max-height:calc(var(--cabo-vv-height, 100vh) - 40px);
  overflow:auto;
  display:grid;
  gap:14px;
  padding:22px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 32px 76px rgba(11,23,29,.34);
  transform:translateY(14px) scale(.985);
  transition:transform .18s ease,opacity .18s ease;
  scrollbar-width:thin;
}

.cabo-booking__datetime-picker.is-open .cabo-booking__datetime-dialog{
  transform:translateY(0) scale(1);
}

.cabo-booking__datetime-picker.is-closing .cabo-booking__datetime-dialog{
  transform:translateY(10px) scale(.985);
}

.cabo-booking__datetime-handle{
  display:none;
  width:44px;
  height:4px;
  margin:0 auto;
  border-radius:999px;
  background:#dce1e4;
}

.cabo-booking__datetime-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}

.cabo-booking__datetime-kicker{
  margin:0 0 4px;
  color:var(--cabo-accent);
  font-size:10px;
  line-height:1.2;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.cabo-booking__datetime-title{
  margin:0;
  color:var(--cabo-ink);
  font-family:var(--wp--preset--font-family--sora,Inter,system-ui,sans-serif);
  font-size:20px;
  line-height:1.2;
  letter-spacing:-.02em;
}

.cabo-booking__datetime-close,
.cabo-booking__calendar-nav button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  color:var(--cabo-ink);
  cursor:pointer;
}

.cabo-booking__datetime-close{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:999px;
  background:#f3f5f7;
  font-size:22px;
}

.cabo-booking__calendar-nav{
  display:grid;
  grid-template-columns:36px minmax(0,1fr) 36px;
  align-items:center;
  gap:10px;
}

.cabo-booking__calendar-nav strong{
  color:var(--cabo-ink);
  font-size:14px;
  text-align:center;
}

.cabo-booking__calendar-nav button{
  width:36px;
  height:36px;
  border-radius:12px;
  background:#f8fafb;
  font-size:24px;
}

.cabo-booking__asset-icon{
  display:block;
  width:10px;
  height:7px;
  background:currentColor;
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-position:center;
  mask-repeat:no-repeat;
  mask-size:contain;
}

.cabo-booking__asset-icon--chevron-left{
  -webkit-mask-image:url("icons/chevron_left.svg");
  mask-image:url("icons/chevron_left.svg");
}

.cabo-booking__asset-icon--chevron-right{
  -webkit-mask-image:url("icons/chevron_right.svg");
  mask-image:url("icons/chevron_right.svg");
}

.cabo-booking__calendar-nav button:disabled{
  opacity:.3;
  cursor:not-allowed;
}

.cabo-booking__calendar-weekdays,
.cabo-booking__calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:4px;
}

.cabo-booking__calendar-weekdays span{
  color:#66717b;
  font-size:9px;
  font-weight:800;
  text-align:center;
}

.cabo-booking__calendar-grid button,
.cabo-booking__calendar-empty{
  width:38px;
  height:38px;
  margin-inline:auto;
  min-width:0;
}

.cabo-booking__calendar-grid button{
  border:1px solid transparent;
  border-radius:10px;
  background:#fff;
  color:var(--cabo-ink);
  font-size:11px;
  font-weight:700;
  cursor:pointer;
}

.cabo-booking__calendar-grid{
  touch-action:pan-y;
}

.cabo-booking__calendar-grid button:hover:not(:disabled){
  border-color:rgba(203,85,53,.45);
  background:#fff4e8;
}

.cabo-booking__calendar-grid button[aria-selected="true"]{
  border-color:var(--cabo-accent);
  background:var(--cabo-accent);
  color:#0b171d;
  font-weight:900;
}

.cabo-booking__calendar-grid button.is-today:not([aria-selected="true"]){
  border-color:var(--cabo-accent);
}

.cabo-booking__calendar-grid button:disabled{
  color:#b6bdc3;
  cursor:not-allowed;
}

.cabo-booking__datetime-divider{
  margin-top:2px;
}

.cabo-booking__time-wheels{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.cabo-booking__wheel-column{
  display:grid;
  gap:6px;
  min-width:0;
}

.cabo-booking__wheel-column>span{
  color:#66717b;
  font-size:9px;
  font-weight:800;
  text-align:center;
}

.cabo-booking__wheel{
  height:126px;
  overflow-y:auto;
  border:1px solid #e5e9ec;
  border-radius:16px;
  background:#f8fafb;
  scroll-snap-type:y mandatory;
  overscroll-behavior:contain;
  scrollbar-width:none;
  -webkit-overflow-scrolling:touch;
}

.cabo-booking__wheel::-webkit-scrollbar{
  display:none;
}

.cabo-booking__wheel-spacer,
.cabo-booking__wheel button{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:42px;
  min-height:42px;
  scroll-snap-align:center;
}

.cabo-booking__wheel button{
  border:0;
  background:transparent;
  color:#a0a8af;
  font-size:13px;
  font-weight:600;
  cursor:pointer;
}

.cabo-booking__wheel button.is-previous,
.cabo-booking__wheel button.is-next{
  flex-direction:column;
  gap:3px;
  line-height:1;
}

.cabo-booking__wheel button:disabled{
  opacity:.32;
  cursor:not-allowed;
}

.cabo-booking__wheel button.is-previous::before,
.cabo-booking__wheel button.is-next::after{
  content:"";
  display:block;
  width:8px;
  height:5px;
  background:var(--cabo-accent);
  -webkit-mask-position:center;
  -webkit-mask-repeat:no-repeat;
  -webkit-mask-size:contain;
  mask-position:center;
  mask-repeat:no-repeat;
  mask-size:contain;
}

.cabo-booking__wheel button.is-previous::before{
  -webkit-mask-image:url("icons/chevron_up.svg");
  mask-image:url("icons/chevron_up.svg");
}

.cabo-booking__wheel button.is-next::after{
  -webkit-mask-image:url("icons/chevron_down.svg");
  mask-image:url("icons/chevron_down.svg");
}

.cabo-booking__wheel button.is-selected{
  margin:0 6px;
  width:calc(100% - 12px);
  border:1px solid var(--cabo-accent);
  border-radius:12px;
  background:#fff4e8;
  color:var(--cabo-ink);
  font-size:17px;
  font-weight:900;
}

.cabo-booking__datetime-confirm{
  min-height:52px;
  border-radius:14px;
  color:#0b171d;
  font-size:11px;
  text-transform:uppercase;
  /* The dialog's content (calendar + wheels + flight info) can be taller
     than the visible area, especially with the keyboard open (see
     --cabo-vv-height). Keep Confirm reachable without hunting for it by
     pinning it to the bottom of the dialog's own scroll area. */
  position:sticky;
  bottom:0;
  z-index:2;
  box-shadow:0 -12px 16px -8px rgba(255,255,255,.9);
}

.cabo-booking__picker,
.cabo-booking__notes-modal,
.cabo-booking__extras-modal,
.cabo-booking__route-trip-modal{
  position:fixed;
  left:0;
  right:0;
  top:var(--cabo-vv-top, 0px);
  height:var(--cabo-vv-height, 100vh);
  /* Above .cabo-booking__datetime-picker's z-index:10000 — the airline
     list-picker can now open while the date/time modal is open (the
     airline control lives nested inside it) and must render on top. */
  z-index:10001;
  display:grid;
  place-items:end center;
  padding:0 16px calc(16px + env(safe-area-inset-bottom, 0px));
  opacity:0;
  visibility:hidden;
  transition:opacity .18s ease, visibility .18s ease;
}

.cabo-booking__picker.is-open,
.cabo-booking__notes-modal.is-open,
.cabo-booking__extras-modal.is-open,
.cabo-booking__route-trip-modal.is-open{
  opacity:1;
  visibility:visible;
}

.cabo-booking__picker.is-closing,
.cabo-booking__notes-modal.is-closing,
.cabo-booking__extras-modal.is-closing,
.cabo-booking__route-trip-modal.is-closing{
  opacity:0;
  visibility:visible;
}

.cabo-booking__picker-backdrop{
  position:absolute;
  inset:0;
  background:rgba(11,23,29,.62);
}

.cabo-booking__picker-dialog{
  position:relative;
  width:min(100%, 640px);
  max-height:calc(var(--cabo-vv-height, 100vh) * 0.82);
  margin:0;
  padding:16px;
  border-radius:24px;
  background:#fff;
  box-shadow:0 30px 60px rgba(11,23,29,.24);
  display:grid;
  gap:14px;
  overflow:hidden;
  transform:translateY(16px) scale(.985);
  transition:transform .18s ease, opacity .18s ease;
}

.cabo-booking__picker.is-open .cabo-booking__picker-dialog,
.cabo-booking__notes-modal.is-open .cabo-booking__picker-dialog,
.cabo-booking__extras-modal.is-open .cabo-booking__picker-dialog,
.cabo-booking__route-trip-modal.is-open .cabo-booking__picker-dialog{
  transform:translateY(0) scale(1);
}

.cabo-booking__picker.is-closing .cabo-booking__picker-dialog,
.cabo-booking__notes-modal.is-closing .cabo-booking__picker-dialog,
.cabo-booking__extras-modal.is-closing .cabo-booking__picker-dialog,
.cabo-booking__route-trip-modal.is-closing .cabo-booking__picker-dialog{
  transform:translateY(10px) scale(.985);
}

.cabo-booking__extras-dialog{
  grid-template-rows:auto minmax(0, 1fr) auto;
  max-height:calc(var(--cabo-vv-height, 100vh) * 0.88);
}

.cabo-booking__extras-dialog .cabo-booking__extras{
  overflow-y:auto;
  padding-right:4px;
}

.cabo-booking__picker-header{
  grid-row:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}

.cabo-booking__picker-kicker{
  margin:0 0 4px;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--cabo-accent);
  font-weight:900;
}

.cabo-booking__picker-title{
  margin:0;
  font-size:18px;
  line-height:1.2;
  color:var(--cabo-ink);
}

.cabo-booking__picker-close{
  width:36px;
  height:36px;
  border:0;
  border-radius:999px;
  background:#f3f5f7;
  color:var(--cabo-ink);
  font-size:22px;
  line-height:1;
  cursor:pointer;
}

.cabo-booking__picker-search{
  grid-row:2;
  display:grid;
}

.cabo-booking__picker-input{
  width:100%;
  min-height:42px;
  padding:10px 12px;
  border:1px solid rgba(11,23,29,.12);
  border-radius:14px;
  font-size:14px;
}

.cabo-booking__picker-list{
  grid-row:3;
  display:grid;
  align-content:start;
  gap:8px;
  overflow:auto;
  padding-right:2px;
  max-height:calc(var(--cabo-vv-height, 100vh) * 0.82 - 140px);
  -webkit-overflow-scrolling:touch;
}

.cabo-booking__picker-item{
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  min-height:48px;
  padding:12px 14px;
  border:1px solid rgba(11,23,29,.10);
  border-radius:14px;
  background:#fff;
  text-align:left;
  font-size:14px;
  font-weight:700;
  color:var(--cabo-ink);
  cursor:pointer;
}

.cabo-booking__picker-pin{
  flex:0 0 18px;
  width:18px;
  height:18px;
  color:var(--cabo-accent);
}

/* Hotel/destination picker items only: icon + copy stack + zone accent.
   Selector repeats .cabo-booking__picker-item to out-specificity the
   later token-theming rule (below) that sets border-color on the base
   .cabo-booking__picker-item class. */
.cabo-booking__picker-item--hotel{
  align-items:center;
  border-left-width:4px;
}

.cabo-booking__picker-item.cabo-booking__picker-item--hotel{
  border-left-color:var(--cabo-zone-color, var(--cabo-border-strong));
}

.cabo-booking__picker-item-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 20px;
  width:20px;
  height:20px;
  color:var(--cabo-zone-color, var(--cabo-accent));
}

.cabo-booking__picker-item-icon svg{
  width:20px;
  height:20px;
}

.cabo-booking__picker-item-copy{
  display:grid;
  gap:3px;
  min-width:0;
}

.cabo-booking__picker-item-label{
  min-width:0;
}

.cabo-booking__picker-item-zone{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  color:#77808b;
}

.cabo-booking__picker-zone-dot{
  flex:0 0 8px;
  width:8px;
  height:8px;
  border-radius:999px;
  background:var(--cabo-zone-color, var(--cabo-muted));
}

.cabo-booking__picker-item[data-zone="zone-1"]{ --cabo-zone-color:#FF7A00; }
.cabo-booking__picker-item[data-zone="zone-2"]{ --cabo-zone-color:#111111; }
.cabo-booking__picker-item[data-zone="zone-3"]{ --cabo-zone-color:#2F80ED; }
.cabo-booking__picker-item[data-zone="zone-4"]{ --cabo-zone-color:#27AE60; }
.cabo-booking__picker-item[data-zone="zone-5"]{ --cabo-zone-color:#7A5AF8; }
.cabo-booking__picker-item[data-zone="zone-6"]{ --cabo-zone-color:#B42318; }
.cabo-booking__picker-item[data-zone="zone-7"]{ --cabo-zone-color:#B08900; }
.cabo-booking__picker-item[data-zone="zone-8"]{ --cabo-zone-color:#6B7280; }
.cabo-booking__picker-item[data-zone="zone-9"]{ --cabo-zone-color:#0F766E; }
.cabo-booking__picker-item[data-zone="zone-10"]{ --cabo-zone-color:#8B5A2B; }
.cabo-booking__picker-item[data-zone="zone-11"]{ --cabo-zone-color:#EA580C; }
.cabo-booking__picker-item[data-zone="custom"]{ --cabo-zone-color:#6b7280; }

.cabo-booking__picker-item.is-selected{
  border-color:rgba(203,85,53,.55);
  background:rgba(203,85,53,.10);
}

.cabo-booking__picker-item.is-animating{
  animation:caboPickerConfirm .18s ease-out;
}

@keyframes caboPickerConfirm{
  0%{
    transform:scale(1);
    box-shadow:0 0 0 0 rgba(203,85,53,.0);
  }
  50%{
    transform:scale(.98);
    box-shadow:0 0 0 4px rgba(203,85,53,.12);
  }
  100%{
    transform:scale(1);
    box-shadow:0 0 0 0 rgba(203,85,53,.0);
  }
}

.cabo-booking__picker-empty{
  margin:0;
  padding:16px;
  color:#6b7280;
  text-align:center;
}

@media (min-width: 781px){
  .cabo-booking__choices--services{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .cabo-booking__choice--service-private{
    grid-column:auto;
  }

  .cabo-booking__row{
    display:flex;
    gap:14px;
  }

  .cabo-booking__row > .cabo-booking__group{
    flex:1;
    min-width:0;
  }

  .cabo-booking__location-flow{
    display:flex;
    gap:14px;
  }

  .cabo-booking__row-item{
    flex:1;
    min-width:0;
    display:grid;
    gap:14px;
  }

  /* Special Requests: 3 columns (Grocery Stop / Baby Seat / Extra Luggage)
     on genuinely wide layouts. The narrow ~566px hero-shell card overrides
     this back to 1 column in the theme's home-v3.css, the same pattern
     used for the other min-width:781px rules in this file. */
  .cabo-booking__extras{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }

  /* Hotel/airport/passenger picker: large, centered, near-fullscreen panel
     instead of the mobile bottom sheet — the backdrop already covers the
     viewport (position:fixed; inset:0) but the dialog itself was capped at
     640px/82vh, which read as a small floating card, not a full-screen
     modal. Mobile's bottom-sheet behavior below this breakpoint is
     untouched. */
  .cabo-booking__picker,
  .cabo-booking__notes-modal,
  .cabo-booking__extras-modal,
  .cabo-booking__route-trip-modal{
    place-items:center;
    padding:24px;
  }

  .cabo-booking__picker-dialog{
    width:min(92vw, 720px);
    max-height:min(88vh, 760px);
    padding:24px;
    border-radius:28px;
    grid-template-rows:auto auto minmax(0, 1fr);
  }

  .cabo-booking__notes-modal .cabo-booking__picker-dialog{
    grid-template-rows:auto auto auto auto;
  }

  .cabo-booking__route-trip-modal .cabo-booking__picker-dialog{
    grid-template-rows:auto auto auto;
  }

  .cabo-booking__picker-list{
    max-height:none;
    min-height:0;
  }
}

@media (max-width: 780px){
  .cabo-booking{
    padding:16px;
    border-radius:20px;
  }

  .cabo-booking__datetime-picker{
    place-items:end center;
    padding:0 14px calc(14px + env(safe-area-inset-bottom,0px));
  }

  .cabo-booking__datetime-dialog{
    width:100%;
    max-height:calc(var(--cabo-vv-height, 100vh) * 0.88);
    padding:10px 14px 14px;
    gap:11px;
    border-radius:24px;
  }

  .cabo-booking__datetime-handle{
    display:block;
  }

  .cabo-booking__datetime-title{
    font-size:17px;
  }

  .cabo-booking__datetime-close{
    width:34px;
    height:34px;
  }

  .cabo-booking__calendar-nav button{
    width:34px;
    height:34px;
  }

  .cabo-booking__calendar-grid button{
    width:34px;
    height:34px;
    font-size:10px;
  }

  .cabo-booking__calendar-empty{
    width:34px;
    height:34px;
  }

  .cabo-booking__time-wheels{
    gap:8px;
  }

  .cabo-booking__wheel{
    height:126px;
  }

  .cabo-booking__datetime-validation,
  .cabo-booking__wheel-helper,
  .cabo-booking__datetime-timezone{
    font-size:9px;
  }

  .cabo-booking__datetime-confirm{
    min-height:50px;
    padding-inline:10px;
    font-size:10px;
  }

  .cabo-booking__picker{
    padding:0 16px calc(16px + env(safe-area-inset-bottom, 0px));
  }

  .cabo-booking__picker-dialog{
    width:calc(100% - 16px);
    max-width:640px;
    margin:0;
    padding:16px 14px 14px;
    border-radius:24px;
    box-shadow:
      0 26px 58px rgba(11,23,29,.32),
      0 0 0 1px rgba(255,255,255,.06) inset;
  }

  .cabo-booking__picker-close{
    box-shadow:0 8px 18px rgba(11,23,29,.12);
  }

  .cabo-booking__layout,
  .cabo-booking__grid{
    grid-template-columns:minmax(0, 1fr);
  }

  .cabo-booking__choices,
  .cabo-booking__choices--services,
  .cabo-booking__choices--compact,
  .cabo-booking__choices--trips,
  .cabo-booking__choices--route{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .cabo-booking__choices--single{
    grid-template-columns:1fr;
  }

  .cabo-booking__group--big-groups{
    margin-top:2px;
  }

  .cabo-booking__payment-list{
    flex-direction:column;
  }

  .cabo-booking__payment-methods{
    grid-template-columns:1fr;
  }

  .cabo-booking__panel--payment{
    width:100%;
  }

  .cabo-booking__payment-summary{
    padding:14px;
  }

  .cabo-booking__stripe,
  .cabo-booking__paypal,
  .cabo-booking__cash{
    padding:14px;
  }

  .cabo-booking__coupon-row{
    flex-direction:column;
  }

  .cabo-booking__coupon-apply{
    width:100%;
  }

  .cabo-booking__button{
    min-height:44px;
    padding:10px 14px;
    font-size:13px;
  }

  .cabo-booking__choice{
    min-height:52px;
    padding:10px 12px;
  }

  .cabo-booking__divider{
    gap:8px;
  }

  .cabo-booking__divider strong{
    font-size:10px;
  }

  .cabo-booking__choice-copy strong{
    font-size:13px;
  }

  .cabo-booking__choice-copy small{
    font-size:10px;
  }

  .cabo-booking__control-card{
    min-height:60px;
    padding:10px 12px;
  }

  .cabo-booking__quote-total{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media (prefers-reduced-motion: reduce){
  .cabo-booking *,
  .cabo-booking{
    scroll-behavior:auto;
  }

  .cabo-booking__choice,
  .cabo-booking__price-card,
  .cabo-booking__button{
    transition:none;
  }

  .cabo-booking__carousel,
  .cabo-booking__carousel > .cabo-booking__panel{
    transition:none;
  }
}

.cabo-booking{
  border-color:var(--cabo-border);
  background:
    radial-gradient(circle at top left,color-mix(in srgb,var(--cabo-accent) 10%,transparent),transparent 38%),
    linear-gradient(180deg,var(--cabo-surface),var(--cabo-soft));
}

.cabo-booking__panel,
.cabo-booking__choice,
.cabo-booking__select,
.cabo-booking__control-card,
.cabo-booking__input,
.cabo-booking__payment-pill,
.cabo-booking__payment-summary,
.cabo-booking__payment-method,
.cabo-booking__coupon,
.cabo-booking__coupon-input,
.cabo-booking__stripe,
.cabo-booking__paypal,
.cabo-booking__cash,
.cabo-booking__datetime-dialog,
.cabo-booking__calendar-grid button,
.cabo-booking__picker-dialog,
.cabo-booking__picker-item{
  background:var(--cabo-surface);
  border-color:var(--cabo-border);
}

.cabo-booking__panel--checkout,
.cabo-booking__panel--payment{
  background:
    radial-gradient(circle at top right,color-mix(in srgb,var(--cabo-accent) 9%,transparent),transparent 34%),
    linear-gradient(180deg,var(--cabo-surface),var(--cabo-soft));
}

.cabo-booking__choice:hover,
.cabo-booking__choice[data-checked="true"],
.cabo-booking__control-card:focus-within,
.cabo-booking__select:focus,
.cabo-booking__input:focus,
.cabo-booking__payment-method:hover,
.cabo-booking__payment-method[data-selected="true"],
.cabo-booking__calendar-grid button:hover:not(:disabled),
.cabo-booking__picker-item.is-selected{
  border-color:var(--cabo-accent);
}

.cabo-booking__choice[data-checked="true"],
.cabo-booking__payment-method[data-selected="true"],
.cabo-booking__calendar-grid button:hover:not(:disabled),
.cabo-booking__wheel button.is-selected,
.cabo-booking__picker-item.is-selected{
  background:color-mix(in srgb,var(--cabo-accent) 12%,var(--cabo-surface));
}

.cabo-booking__quote,
.cabo-booking__payment-box{
  border-color:color-mix(in srgb,var(--cabo-accent) 24%,var(--cabo-border));
  background:linear-gradient(135deg,color-mix(in srgb,var(--cabo-accent) 14%,var(--cabo-surface)),var(--cabo-surface));
}

.cabo-booking__choice-icon,
.cabo-booking__choice-copy small,
.cabo-booking__control-icon,
.cabo-booking__control-chevron,
.cabo-booking__control-copy small,
.cabo-booking__quote-label,
.cabo-booking__quote-summary,
.cabo-booking__helper,
.cabo-booking__checkout-copy,
.cabo-booking__payment-summary span,
.cabo-booking__payment-method small,
.cabo-booking__coupon-label,
.cabo-booking__coupon-status,
.cabo-booking__stripe-helper,
.cabo-booking__cash-note span,
.cabo-booking__payment-status,
.cabo-booking__schedule-helper,
.cabo-booking__datetime-timezone,
.cabo-booking__wheel-helper,
.cabo-booking__datetime-validation,
.cabo-booking__calendar-weekdays span,
.cabo-booking__wheel-column>span,
.cabo-booking__picker-empty{
  color:var(--cabo-muted);
}

.cabo-booking__cash-note,
.cabo-booking__paypal-note,
.cabo-booking__datetime-close,
.cabo-booking__calendar-nav button,
.cabo-booking__wheel,
.cabo-booking__picker-close{
  background:var(--cabo-soft);
}

.cabo-booking__button{
  background:var(--cabo-accent);
  color:var(--cabo-button-text);
}

.cabo-booking__button--secondary,
.cabo-booking__payment-method-icon{
  background:var(--cabo-ink);
  color:var(--cabo-surface);
}

.cabo-booking__calendar-grid button[aria-selected="true"]{
  background:var(--cabo-accent);
  color:var(--cabo-button-text);
}

.cabo-booking__datetime-backdrop,
.cabo-booking__picker-backdrop{
  background:color-mix(in srgb,var(--cabo-ink) 74%,transparent);
}
