:root{--gotoo-teal:#30B0B0;--gotoo-teal-dark:#1E8C8C;--gotoo-teal-darker:#15706E;--gotoo-teal-tint:#E4F5F4;--gotoo-teal-tint-2:#C7ECEA;--gotoo-red:#E01828;--gotoo-red-dark:#B31320;--gotoo-red-tint:#FCEBEC;--gotoo-ink:#0D1B2A;}
/*
 * GoToo Taxi Booking — Results Page (Book Your Ride)
 * File: assets/css/results.css
 * Scope: .gotoo-tb-results
 * JS dependencies:
 *  - DO NOT rename classes/IDs required by results.js/stops.js.
 */

:where(.gotoo-tb-results) {
  --gtb-navy:       #0d1b2a;
  --gtb-navy-light: #162236;
  --gtb-gold:       var(--gotoo-teal);
  --gtb-gold-dark:  var(--gotoo-teal-dark);
  --gtb-white:      #ffffff;
  --gtb-surface:    #f3f4f6;
  --gtb-text:       #0d1b2a;
  --gtb-text-mid:   #3d5068;
  --gtb-text-soft:  #6b7f93;
  --gtb-border: rgba(13, 27, 42, .10);
  --gtb-shadow: 0 10px 30px rgba(13, 27, 42, .10);
  --gtb-shadow-soft: 0 8px 18px rgba(13, 27, 42, .08);

  max-width: 1200px;
  margin: 40px auto;
  padding: 0 16px 64px;
  color: var(--gtb-text);
  font-family: "Plus Jakarta Sans", "DM Sans", system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;

  /* Isolate the entire results UI into its own stacking context so the
     sticky sidebar (and any internal z-indexed widget) can't escape
     and render above the theme's site header. */
  position: relative;
  z-index: 0;
  isolation: isolate;
}

.gotoo-tb-results * { box-sizing: border-box; }
.gotoo-tb-results h1, .gotoo-tb-results h2, .gotoo-tb-results h3, .gotoo-tb-results h4, .gotoo-tb-results p { margin: 0; padding: 0; }

.gotoo-tb-results a { color: inherit; }

/* Header + stepper */
.gotoo-tb-results__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin: 0 0 18px;
}

.gotoo-tb-results__brand {
  display: flex;
  align-items: center;
  gap: 10px;
}

.gotoo-tb-results__brand-mark {
  position: relative;
  width: 40px;
  height: 40px;
  border-radius: 12px;
  background: var(--gtb-white);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: var(--gtb-shadow-soft);
  border: 1px solid var(--gtb-border);
  flex: 0 0 auto;
  overflow: hidden;
}
.gotoo-tb-results__brand-logo {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 4px;
  display: block;
}
/* Letter fallback shown only when there's no <img> or the <img> fails (.is-fallback) */
.gotoo-tb-results__brand-letter {
  display: none;
  font-weight: 900;
  font-size: 18px;
  color: var(--gtb-navy);
  letter-spacing: -.02em;
}
.gotoo-tb-results__brand-mark.is-fallback .gotoo-tb-results__brand-letter,
.gotoo-tb-results__brand-mark:not(:has(img)) .gotoo-tb-results__brand-letter {
  display: inline-block;
}

.gotoo-tb-results__brand-title {
  display: flex;
  flex-direction: column;
  line-height: 1.1;
}
.gotoo-tb-results__brand-title strong { font-weight: 800; font-size: 14px; }
.gotoo-tb-results__brand-title span { font-size: 12px; color: var(--gtb-text-soft); font-weight: 700; }

.gotoo-tb-stepper { width: auto; }
.gotoo-stepper__list {
  list-style: none;
  display: flex;
  gap: 10px;
  padding: 0;
  margin: 0;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gotoo-stepper__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(13, 27, 42, .10);
  background: rgba(13, 27, 42, .03);
  color: var(--gtb-text-mid);
  font-weight: 800;
  font-size: 12px;
}
.gotoo-stepper__number {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(13, 27, 42, .14);
  background: var(--gtb-white);
  font-size: 12px;
  color: var(--gtb-text);
}
.gotoo-stepper__label { white-space: nowrap; }

.gotoo-stepper__item.is-active {
  background: rgba(13, 27, 42, .06);
  border-color: rgba(48,176,176, .35);
  color: var(--gtb-text);
}
.gotoo-stepper__item.is-active .gotoo-stepper__number {
  background: var(--gtb-navy);
  border-color: var(--gtb-navy);
  color: var(--gtb-white);
}

/* Layout */
.gotoo-tb-results__layout { display: block; }

@media (min-width: 900px) {
  .gotoo-tb-results__layout {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: 24px;
    align-items: start;
  }
  .gotoo-tb-results__sidebar {
    position: sticky;
    /* Generous offset so the sidebar clears most theme headers (admin bar
       included) when it sticks during scroll. The actual visual gap is
       capped because the wrapper itself isolates the stacking context. */
    top: 96px;
    align-self: start;
  }
}

/* Card base */
.gotoo-tb-card {
  background: var(--gtb-white);
  border-radius: 16px;
  border: 1px solid rgba(13, 27, 42, .10);
  box-shadow: 0 1px 0 rgba(13, 27, 42, .03);
  overflow: hidden;
}
.gotoo-tb-card__header {
  padding: 16px 16px 12px;
  border-bottom: 1px solid rgba(13, 27, 42, .06);
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
/* Elemento+classe: vence os estilos de h2/h3 do tema (que inflavam os títulos) */
h2.gotoo-tb-card__title, .gotoo-tb-card__title { font-size: 16px; line-height: 1.25; font-weight: 900; letter-spacing: .01em; margin: 0; }
.gotoo-tb-card__subtitle { font-size: 12px; line-height: 1.35; color: var(--gtb-text-soft); font-weight: 700; margin-top: 4px; }
.gotoo-tb-card__body { padding: 16px; }

/* Buttons */
.gotoo-tb-btn {
  border: 0;
  border-radius: 14px;
  font-weight: 900;
  font-size: 13px;
  font-family: inherit;
  padding: 11px 14px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  cursor: pointer;
  text-decoration: none;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease;
}
.gotoo-tb-btn--primary {
  background: linear-gradient(180deg, var(--gtb-navy) 0%, #0b1622 100%);
  color: var(--gtb-white);
  box-shadow: var(--gtb-shadow-soft);
}
.gotoo-tb-btn--primary:hover { transform: translateY(-1px); box-shadow: 0 14px 34px rgba(13, 27, 42, .20); }

/* Gold CTA — book button stands out from generic primary */
.gotoo-tb-btn--book {
  background: linear-gradient(180deg, var(--gotoo-teal) 0%, var(--gtb-gold-dark) 100%);
  color: var(--gtb-navy);
  box-shadow: 0 6px 18px rgba(48,176,176, .28);
}
.gotoo-tb-btn--book:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(48,176,176, .40); }

/* Secondary — back / neutral actions */
.gotoo-tb-btn--secondary {
  background: transparent;
  color: var(--gtb-text-mid);
  border: 1px solid rgba(13, 27, 42, .15);
}
.gotoo-tb-btn--secondary:hover { background: rgba(13, 27, 42, .04); border-color: rgba(13, 27, 42, .25); }

/* Ghost */
.gotoo-tb-btn--ghost {
  background: rgba(13, 27, 42, .02);
  color: var(--gtb-text);
  border: 1px solid rgba(13, 27, 42, .12);
}
.gotoo-tb-btn--ghost:hover { background: rgba(13, 27, 42, .06); }

/* Dashed — add return, etc. */
.gotoo-tb-btn--dashed {
  background: rgba(13, 27, 42, .02);
  color: var(--gtb-text-mid);
  border: 1px dashed rgba(13, 27, 42, .24);
}
.gotoo-tb-btn--dashed:hover { border-color: rgba(48,176,176, .55); background: rgba(48,176,176, .08); color: var(--gtb-text); }

/* Large variant */
.gotoo-tb-btn--large { font-size: 15px; padding: 14px 22px; border-radius: 14px; }

.gotoo-tb-btn:focus-visible { outline: none; box-shadow: 0 0 0 4px rgba(48,176,176, .28); }

/* Map */
.gotoo-tb-card--map { padding: 0; overflow: hidden; }
.gotoo-tb-map {
  position: relative;
  width: 100%;
  /* 2:1 matches the new static-map size (800×400). cover then fills the
     container without letterbox bars and trims the small empty borders
     Google adds around the route. min/max keep the height sane on extreme
     viewport widths. */
  aspect-ratio: 2 / 1;
  min-height: 160px;
  max-height: 320px;
  background: linear-gradient(135deg, #0d1b2a 0%, #1e3a5f 50%, #2d5a8c 100%);
  overflow: hidden;
}
.gotoo-tb-map__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
/* Decorative gradient when no static map URL is available */
.gotoo-tb-map__placeholder {
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 30% 40%, rgba(48,176,176,.18) 0, transparent 35%),
    radial-gradient(circle at 70% 60%, rgba(48,176,176,.12) 0, transparent 40%),
    linear-gradient(135deg, #0d1b2a 0%, #1e3a5f 50%, #2d5a8c 100%);
}
/* Same gradient when the <img> errors out (Google billing/quota errors) */
.gotoo-tb-map.gotoo-tb-map--error {
  background:
    radial-gradient(circle at 30% 40%, rgba(48,176,176,.18) 0, transparent 35%),
    radial-gradient(circle at 70% 60%, rgba(48,176,176,.12) 0, transparent 40%),
    linear-gradient(135deg, #0d1b2a 0%, #1e3a5f 50%, #2d5a8c 100%);
}
.gotoo-tb-map.gotoo-tb-map--error::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(45deg, rgba(255,255,255,.04) 0 1px, transparent 1px 14px),
    repeating-linear-gradient(-45deg, rgba(255,255,255,.04) 0 1px, transparent 1px 14px);
  pointer-events: none;
}

/* ── Route info card: lives BELOW the map, never on top of it ──────────
   Previously the route text overlaid the map with a heavy dark
   gradient that obscured the streets and was hard to read. Splitting
   them into separate sections keeps the map legible AND makes the
   route summary stand out cleanly. */
.gotoo-tb-map__info {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: var(--gtb-white);
  border-bottom: 1px solid var(--gtb-border);
}
.gotoo-tb-map__info-icon {
  flex: 0 0 auto;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: rgba(48,176,176, .14);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  line-height: 1;
}
.gotoo-tb-map__info-body { flex: 1 1 0; min-width: 0; }
.gotoo-tb-map__route {
  margin: 0;
  font-weight: 700;
  font-size: 14px;
  color: var(--gtb-text);
  line-height: 1.35;
}
.gotoo-tb-map__route--return {
  margin-top: 2px;
  color: var(--gtb-text-mid);
  font-size: 13px;
  font-weight: 600;
}
.gotoo-tb-map__arrow {
  display: inline-block;
  margin: 0 6px;
  color: var(--gtb-gold-dark);
  font-weight: 900;
}
.gotoo-tb-map__distance {
  margin: 4px 0 0;
  font-weight: 600;
  font-size: 12px;
  color: var(--gtb-text-soft);
  letter-spacing: .02em;
}
.gotoo-tb-map__note {
  padding: 12px 16px;
  margin: 0;
  font-size: 12px;
  color: var(--gtb-text-mid);
  font-weight: 600;
  background: var(--gtb-white);
}

/* Stops widget inline */
.gotoo-tb-stops-widget { margin-top: 16px; }
.gotoo-tb-stops-widget .gotoo-tb-card__body { padding-top: 12px; }
.gotoo-tb-stops__load-btn, .gotoo-sw-btn-load {
  width: 100%;
  border-radius: 14px;
  padding: 12px;
  font-weight: 900;
}
.gotoo-tb-stops__spinner {
  width: 18px;
  height: 18px;
  border-radius: 999px;
  border: 2px solid rgba(13, 27, 42, .18);
  border-top-color: var(--gtb-gold);
  animation: gtb-spin .9s linear infinite;
  display: inline-block;
  vertical-align: middle;
}
@keyframes gtb-spin { to { transform: rotate(360deg); } }

.gotoo-sw-stop-item, .gotoo-tb-stop-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(13, 27, 42, .10);
  background: rgba(13, 27, 42, .02);
  transition: border-color .15s ease, transform .15s ease, background .15s ease;
}
.gotoo-sw-stop-item:hover, .gotoo-tb-stop-item:hover { transform: translateY(-1px); border-color: rgba(48,176,176, .45); background: rgba(48,176,176, .06); }
.gotoo-tb-stop-item.is-selected { border-color: rgba(48,176,176, .65); background: rgba(48,176,176, .10); }

.gotoo-tb-stop-fee {
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 12px;
  background: rgba(16, 185, 129, .12);
  color: var(--gotoo-teal-dark);
  white-space: nowrap;
}
/* Aliases for legacy stops widget classes */
.gotoo-sw-stop-fee {
  border-radius: 999px;
  padding: 6px 10px;
  font-weight: 900;
  font-size: 12px;
  background: rgba(16, 185, 129, .12);
  color: var(--gotoo-teal-dark);
  white-space: nowrap;
}
.gotoo-sw-stop-fee--free { background: rgba(13, 27, 42, .08); color: var(--gtb-text-mid); }
.gotoo-sw-stop-name { font-weight: 1000; }
.gotoo-sw-stop-meta { display: inline-flex; gap: 8px; align-items: center; justify-content: flex-end; }
.gotoo-sw-stop-min { font-size: 12px; font-weight: 900; color: var(--gtb-text-soft); }
.gotoo-sw-stop-item input { margin-right: 10px; }
.gotoo-tb-stop-fee--free { background: rgba(13, 27, 42, .08); color: var(--gtb-text-mid); }

#gotoo-sw-list { display: grid; gap: 10px; }

#gotoo-sw-subtotal, .gotoo-tb-stops__subtotal {
  margin-top: 10px;
  padding: 12px;
  border-radius: 14px;
  border: 1px solid rgba(48,176,176, .35);
  background: rgba(48,176,176, .10);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 900;
}

/* Vehicles */
.gotoo-tb-vehicles-card { margin-top: 16px; }
.gotoo-tb-vehicles { display: grid; gap: 12px; }

.gotoo-tb-vehicle {
  border-radius: 16px;
  border: 1px solid rgba(13, 27, 42, .10);
  background: var(--gtb-white);
  overflow: hidden;
  box-shadow: 0 1px 0 rgba(13, 27, 42, .02);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.gotoo-tb-vehicle:hover {
  transform: translateY(-1px);
  border-color: rgba(48,176,176, .32);
  box-shadow: 0 14px 34px rgba(13, 27, 42, .10);
}
.gotoo-tb-vehicle.is-selected {
  border-color: rgba(48,176,176, .65);
  background: rgba(48,176,176, .06);
}

.gotoo-tb-vehicle__inner {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 11px;
  padding: 10px;
}
.gotoo-tb-vehicle__thumb img {
  width: 96px;
  height: 72px;
  border-radius: 10px;
  object-fit: cover;
  display: block;
  background: #e5e7eb;
}

.gotoo-tb-vehicle__info { min-width: 0; }
.gotoo-tb-vehicle__headline {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}
.gotoo-tb-vehicle__name { font-size: 15px; font-weight: 900; color: var(--gtb-text); }

.gotoo-tb-vehicle__badges { display: inline-flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.gotoo-tb-badge {
  border-radius: 999px;
  padding: 6px 10px;
  font-size: 11px;
  font-weight: 900;
  border: 1px solid rgba(13, 27, 42, .10);
  background: rgba(13, 27, 42, .04);
  color: var(--gtb-text-mid);
  white-space: nowrap;
}
.gotoo-tb-badge--success { background: rgba(16, 185, 129, .12); border-color: rgba(16, 185, 129, .20); color: #065f46; }
.gotoo-tb-badge--info { background: rgba(59, 130, 246, .12); border-color: rgba(59, 130, 246, .20); color: #1d4ed8; }
.gotoo-tb-badge--neutral { background: rgba(107, 127, 147, .12); border-color: rgba(107, 127, 147, .20); color: var(--gtb-text-mid); }
.gotoo-tb-badge--discount { background: rgba(239, 68, 68, .12); border-color: rgba(239, 68, 68, .20); color: var(--gotoo-red); }

.gotoo-tb-vehicle__capacity {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 800;
  color: var(--gtb-text-soft);
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.gotoo-tb-vehicle__meta {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 900;
  color: var(--gtb-text-soft);
}

.gotoo-tb-vehicle__note {
  margin-top: 8px;
  font-size: 13px;
  font-weight: 800;
  color: var(--gtb-text-mid);
  line-height: 1.35;
}

.gotoo-tb-vehicle__fineprint {
  margin-top: 8px;
  font-size: 12px;
  font-weight: 800;
  color: var(--gtb-text-soft);
  line-height: 1.35;
}

.gotoo-tb-vehicle__details-trigger {
  padding: 6px 10px;
  border-radius: 999px;
  font-size: 12px;
  line-height: 1;
}

.gotoo-tb-vehicle__footer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
  padding: 0 12px 12px;
  align-items: center;
}

.gotoo-tb-vehicle__price {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gotoo-tb-vehicle__price strong,
strong.price-final {
  font-size: 19px;
  line-height: 1.2;
  font-weight: 1000;
  color: var(--gtb-navy);
}
h3.gotoo-tb-vehicle__name, .gotoo-tb-vehicle__name { margin: 0; }
.gotoo-tb-vehicle__price small {
  font-size: 12px;
  font-weight: 800;
  color: var(--gtb-text-soft);
}

.gotoo-tb-vehicle__select-btn {
  min-width: 140px;
}

@media (max-width: 767px) {
  /* Header do cartão de resultados: título e subtítulo lado a lado ficavam
     apertados — empilhar e reduzir. */
  .gotoo-tb-card__header { display: block; }
  h2.gotoo-tb-card__title, .gotoo-tb-card__title { font-size: 15px; }
  .gotoo-tb-card__subtitle { font-size: 11.5px; margin-top: 2px; }
  /* Compacto: manter o thumb pequeno AO LADO da info (como o mockup aprovado),
     em vez do banner full-width de 160px que empurrava o painel de reserva
     para baixo. Assim cabem todas as viaturas dentro do ecra. */
  .gotoo-tb-vehicle__inner { grid-template-columns: 60px 1fr; gap: 9px; padding: 8px; }
  .gotoo-tb-vehicle__thumb img { width: 64px; height: 48px; border-radius: 8px; }
  .gotoo-tb-vehicle__footer { grid-template-columns: 1fr auto; padding: 0 10px 10px; }
  .gotoo-tb-vehicle__select-btn { width: auto; min-width: 110px; }
  /* Nome em linha propria + badges por baixo (evita "Standar d" partido). */
  .gotoo-tb-vehicle__headline { flex-wrap: wrap; }
  .gotoo-tb-vehicle__name { flex: 1 1 100%; font-size: 16px; line-height: 1.15; }
  .gotoo-tb-vehicle__badges { flex-basis: 100%; justify-content: flex-start; margin-top: 3px; }
  .gotoo-tb-badge { padding: 4px 8px; font-size: 10px; }
  /* Apertar espacamentos verticais. */
  .gotoo-tb-vehicle__capacity { margin-top: 6px; }
  .gotoo-tb-vehicle__meta { margin-top: 6px; }
  /* Descricao generica (igual em todas as viaturas) escondida no mobile p/ compactar. */
  .gotoo-tb-vehicle__note { display: none; }
}

/* Vehicle modal */
.gotoo-tb-details {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(13, 27, 42, .70);
}
.gotoo-tb-details.is-open { display: flex; }

.gotoo-tb-details__dialog {
  width: min(540px, calc(100% - 16px));
  background: var(--gtb-white);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.35);
  display: flex;
  flex-direction: column;
  max-height: 84vh;
}

.gotoo-tb-details__header {
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(13, 27, 42, .06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.gotoo-tb-details__title { font-size: 16px; font-weight: 1000; }
.gotoo-tb-details__close {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(13, 27, 42, .12);
  background: rgba(13, 27, 42, .03);
  color: var(--gtb-text);
  font-weight: 1000;
}
.gotoo-tb-details__close:hover { border-color: rgba(48,176,176, .45); background: rgba(48,176,176, .10); }

.gotoo-tb-details__body {
  padding: 16px 18px;
  overflow: auto;
}

.gotoo-tb-details__section { padding: 12px 0; border-bottom: 1px solid rgba(13, 27, 42, .06); }
.gotoo-tb-details__section:last-child { border-bottom: 0; }
.gotoo-tb-details__section-title {
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  font-weight: 1000;
  color: var(--gtb-text-soft);
  margin-bottom: 10px;
}

.gotoo-tb-details__list { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.gotoo-tb-details__list li { font-weight: 800; font-size: 13px; color: var(--gtb-text-mid); }

.gotoo-tb-details__prices { margin: 0; }
.gotoo-tb-details__price-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid rgba(13, 27, 42, .06); }
.gotoo-tb-details__price-row:last-child { border-bottom: 0; }
.gotoo-tb-details__price-row--total { font-weight: 1000; color: var(--gtb-text); }
.price-original { color: var(--gtb-text-soft); text-decoration: line-through; font-weight: 800; }
.price-final.has-discount { color: var(--gtb-gold-dark); font-weight: 1000; }

.gotoo-tb-details__footer {
  padding: 14px 18px;
  border-top: 1px solid rgba(13, 27, 42, .06);
  display: flex;
  gap: 10px;
}
.gotoo-tb-details__footer .gotoo-tb-btn { flex: 1 1 auto; }

@media (max-width: 767px) {
  .gotoo-tb-details { align-items: flex-end; padding: 0; }
  .gotoo-tb-details__dialog {
    width: 100%;
    border-radius: 18px 18px 0 0;
    max-height: 92vh;
  }
}

/* Sidebar cards */
.gotoo-tb-summary-card .gotoo-tb-card__header { align-items: center; }
.gotoo-tb-summary-card__edit {
  font-size: 12px;
  font-weight: 1000;
  border-radius: 999px;
  padding: 8px 10px;
  border: 1px solid rgba(13, 27, 42, .12);
  background: rgba(13, 27, 42, .03);
}
.gotoo-tb-summary-card__edit:hover { border-color: rgba(48,176,176, .45); background: rgba(48,176,176, .10); }

.gotoo-tb-timeline { display: grid; gap: 12px; }
.gotoo-tb-timeline__row { display: grid; grid-template-columns: 14px 1fr; gap: 10px; }
.gotoo-tb-timeline__dots { position: relative; }
.gotoo-tb-timeline__dot {
  width: 12px;
  height: 12px;
  border-radius: 999px;
  background: var(--gtb-navy);
  border: 2px solid rgba(48,176,176, .45);
  position: relative;
  z-index: 2;
}
.gotoo-tb-timeline__dots::after {
  content: "";
  position: absolute;
  left: 5px;
  top: 12px;
  bottom: -10px;
  width: 2px;
  background: rgba(13, 27, 42, .14);
}
.gotoo-tb-timeline__row:last-child .gotoo-tb-timeline__dots::after { display: none; }

/* Intermediate stop dot (smaller, gold) */
.gotoo-tb-timeline__dot--stop {
  width: 9px;
  height: 9px;
  background: var(--gtb-gold);
  border: 2px solid var(--gtb-gold-dark);
  margin-left: 1.5px;
}
.gotoo-tb-timeline__row--stop .gotoo-tb-timeline__place { font-weight: 700; font-size: 12px; }
.gotoo-tb-timeline__row--stop .gotoo-tb-timeline__meta { font-size: 11px; }

.gotoo-tb-timeline__place { font-weight: 1000; font-size: 13px; }
.gotoo-tb-timeline__meta { color: var(--gtb-text-soft); font-size: 12px; font-weight: 800; margin-top: 2px; }

.gotoo-tb-included-list { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.gotoo-tb-included-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  font-weight: 800;
  color: var(--gtb-text-mid);
}
.gotoo-tb-check {
  width: 18px;
  height: 18px;
  border-radius: 6px;
  background: rgba(48,176,176, .16);
  border: 1px solid rgba(48,176,176, .35);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--gtb-gold-dark);
  font-weight: 1000;
  flex: 0 0 auto;
  margin-top: 1px;
}

/* Extras/Passenger step container */
#gotoo-tb-extras-passenger { margin-top: 16px; }
.gotoo-step { display: none; }
.gotoo-step.is-active { display: block; }

.gotoo-tb-form-grid { display: grid; gap: 12px; }
.gotoo-tb-field {
  display: grid;
  gap: 6px;
}
.gotoo-tb-field label { font-size: 11px; letter-spacing: .12em; text-transform: uppercase; font-weight: 1000; color: var(--gtb-text-soft); }
.gotoo-tb-field input, .gotoo-tb-field textarea, .gotoo-tb-field select {
  border-radius: 14px;
  border: 1px solid rgba(13, 27, 42, .12);
  background: var(--gtb-surface);
  padding: 12px;
  font-weight: 800;
  color: var(--gtb-text);
}
.gotoo-tb-field input:focus, .gotoo-tb-field textarea:focus, .gotoo-tb-field select:focus {
  outline: none;
  border-color: rgba(48,176,176, .55);
  box-shadow: 0 0 0 4px rgba(48,176,176, .18);
  background: #fff;
}

/* Need help */
.gotoo-tb-help-grid { display: grid; gap: 12px; }
@media (min-width: 768px) { .gotoo-tb-help-grid { grid-template-columns: repeat(3, 1fr); } }

.gotoo-tb-help-item {
  border-radius: 16px;
  border: 1px solid rgba(13, 27, 42, .10);
  background: rgba(13, 27, 42, .02);
  padding: 14px;
  display: grid;
  gap: 10px;
}
.gotoo-tb-help-item h4 { font-size: 14px; font-weight: 1000; }
.gotoo-tb-help-item p { font-size: 12px; font-weight: 800; color: var(--gtb-text-soft); line-height: 1.4; }

/* Help-section CTAs need higher specificity than the theme's <a> rules */
.gotoo-tb-results .gotoo-help-btn--whatsapp,
.gotoo-tb-results a.gotoo-help-btn--whatsapp {
  background: #25D366;
  color: #0b3d1f;
  font-weight: 1000;
}
.gotoo-tb-results .gotoo-help-btn--whatsapp:hover { color: #0b3d1f; }

.gotoo-tb-results .gotoo-help-btn--faq,
.gotoo-tb-results a.gotoo-help-btn--faq {
  background: var(--gtb-navy);
  color: var(--gtb-white);
  font-weight: 900;
}
.gotoo-tb-results .gotoo-help-btn--faq:hover,
.gotoo-tb-results a.gotoo-help-btn--faq:hover {
  color: var(--gtb-white);
  background: #1a2a40;
}
.gotoo-tb-results .gotoo-help-btn--faq:visited { color: var(--gtb-white); }

.gotoo-tb-results .gotoo-help-btn--email,
.gotoo-tb-results a.gotoo-help-btn--email {
  background: transparent;
  border: 1px solid rgba(13, 27, 42, .16);
  color: var(--gtb-text);
  font-weight: 900;
}
.gotoo-tb-results .gotoo-help-btn--email:hover { color: var(--gtb-text); border-color: rgba(13,27,42,.3); }

/* Defensive: old elements */
.gotoo-tb-results .hidden { display: none !important; }

/* ──────────────────────────────────────────────────────────
   CARD FOOTER + FINEPRINT
────────────────────────────────────────────────────────── */
.gotoo-tb-card__footer {
  padding: 10px 16px 14px;
  border-top: 1px solid rgba(13, 27, 42, .06);
  background: rgba(13, 27, 42, .015);
}
.gotoo-tb-results__fineprint {
  font-size: 11px;
  font-weight: 700;
  color: var(--gtb-text-soft);
  line-height: 1.5;
}

/* ──────────────────────────────────────────────────────────
   PRICE DISPLAY (vehicle cards)
────────────────────────────────────────────────────────── */
.price-label {
  display: block;
  font-size: 11px;
  font-weight: 800;
  color: var(--gtb-text-soft);
  margin-top: 1px;
}
.price-usd {
  display: block;
  font-size: 11px;
  font-weight: 800;
  color: var(--gtb-text-soft);
  opacity: .75;
}
.price-original {
  display: block;
  font-size: 12px;
  font-weight: 800;
  color: var(--gtb-text-soft);
  text-decoration: line-through;
}
.price-final.has-discount { color: var(--gtb-gold-dark); }

/* ──────────────────────────────────────────────────────────
   SIDEBAR — trip detail rows (removes inline styles)
────────────────────────────────────────────────────────── */
.gotoo-tb-trip-meta { margin-top: 14px; display: grid; gap: 8px; }
.gotoo-tb-trip-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-weight: 900;
  color: var(--gtb-text-mid);
  font-size: 12px;
}
.gotoo-tb-free-cancel { margin-top: 14px; }
.gotoo-tb-free-cancel__title { font-weight: 1000; color: var(--gtb-text); font-size: 12px; }
.gotoo-tb-free-cancel__sub   { margin-top: 4px; font-weight: 800; color: var(--gtb-text-soft); font-size: 12px; line-height: 1.35; }
.gotoo-tb-return-upsell { margin-top: 14px; display: grid; gap: 8px; }
.gotoo-tb-return-upsell__hint { font-weight: 800; color: var(--gtb-text-soft); font-size: 12px; }

/* ──────────────────────────────────────────────────────────
   ALERTS
────────────────────────────────────────────────────────── */
.gotoo-tb-alert {
  margin: 0 16px 12px;
  padding: 12px 14px;
  border-radius: 12px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}
.gotoo-tb-alert-error {
  background: rgba(220, 38, 38, .07);
  border: 1px solid rgba(220, 38, 38, .25);
  color: var(--gotoo-red);
}

/* ══════════════════════════════════════════════════════════
   EXTRAS STEP (Step 2) — all .gotoo-extras__* components
══════════════════════════════════════════════════════════ */
.gotoo-extras {
  padding: 16px;
  display: grid;
  gap: 14px;
}

/* Group card */
.gotoo-extras__group {
  background: var(--gtb-surface);
  border: 1px solid rgba(13, 27, 42, .07);
  border-radius: 14px;
  padding: 14px;
  display: grid;
  gap: 10px;
}

/* Label row (label + tooltip) */
.gotoo-extras__label-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.gotoo-extras__label {
  font-size: 11px;
  letter-spacing: .10em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--gtb-text-soft);
}

/* Tooltip */
.gotoo-extras__tooltip {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  border: 1px solid rgba(13, 27, 42, .15);
  background: rgba(13, 27, 42, .04);
  color: var(--gtb-text-soft);
  font-size: 11px;
  font-weight: 900;
  font-family: inherit;
  cursor: pointer;
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}
.gotoo-extras__tooltip-content {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  background: var(--gtb-navy);
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0;
  text-transform: none;
  line-height: 1.45;
  padding: 10px 14px;
  border-radius: 10px;
  width: 220px;
  white-space: normal;
  display: none;
  z-index: 200;
  box-shadow: 0 8px 20px rgba(0,0,0,.22);
}
.gotoo-extras__tooltip:hover .gotoo-extras__tooltip-content,
.gotoo-extras__tooltip:focus .gotoo-extras__tooltip-content { display: block; }

/* Input with icon */
.gotoo-extras__field-icon {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid rgba(13, 27, 42, .12);
  border-radius: 12px;
  padding: 11px 14px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gotoo-extras__field-icon:focus-within {
  border-color: rgba(48,176,176, .55);
  box-shadow: 0 0 0 3px rgba(48,176,176, .14);
}
.gotoo-extras__icon-air { font-size: 16px; flex: 0 0 auto; }
.gotoo-extras__input {
  border: 0 !important;
  background: transparent !important;
  outline: none !important;
  box-shadow: none !important;
  font-size: 14px !important;
  font-weight: 700;
  font-family: inherit;
  color: var(--gtb-text);
  width: 100%;
  padding: 0 !important;
}
.gotoo-extras__input::placeholder { color: rgba(13, 27, 42, .35); font-weight: 600; }

/* Hint / note text */
.gotoo-extras__hint,
.gotoo-extras__note {
  font-size: 12px;
  font-weight: 700;
  color: var(--gtb-text-soft);
  line-height: 1.45;
}

/* Toggle switch (child seats) */
.gotoo-extras__toggle {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-weight: 800;
  font-size: 13px;
  color: var(--gtb-text);
  user-select: none;
}
.gotoo-extras__toggle input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.gotoo-extras__toggle-box {
  width: 40px;
  height: 23px;
  border-radius: 999px;
  background: rgba(13, 27, 42, .16);
  flex: 0 0 auto;
  position: relative;
  transition: background .2s ease;
}
.gotoo-extras__toggle-box::after {
  content: '';
  position: absolute;
  left: 3px;
  top: 3px;
  width: 17px;
  height: 17px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0,0,0,.20);
  transition: left .2s ease;
}
.gotoo-extras__toggle input:checked ~ .gotoo-extras__toggle-box { background: var(--gtb-gold); }
.gotoo-extras__toggle input:checked ~ .gotoo-extras__toggle-box::after { left: 20px; }
.gotoo-extras__toggle-label { line-height: 1.3; }

/* Collapsible seats panel */
.gotoo-extra-seats { display: grid; gap: 10px; }
.gotoo-extra-seats[aria-hidden="true"] { display: none; }

/* Seat card */
.gotoo-extra-seat-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  border: 1px solid rgba(13, 27, 42, .09);
  border-radius: 12px;
  padding: 12px 14px;
}
.gotoo-extra-seat-card__icon { font-size: 22px; flex: 0 0 auto; }
.gotoo-extra-seat-card__body { flex: 1 1 0; min-width: 0; }
.gotoo-extra-seat-card__row { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.gotoo-extra-seat-card__title { font-size: 13px; font-weight: 900; color: var(--gtb-text); }
.gotoo-extra-seat-card__badge {
  border-radius: 999px;
  padding: 3px 8px;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.gotoo-extra-seat-card__badge--paid { background: rgba(239, 68, 68, .12); color: var(--gotoo-red); }
.gotoo-extra-seat-card__badge--free { background: rgba(16, 185, 129, .12); color: #065f46; }
.gotoo-extra-seat-card__desc { font-size: 12px; font-weight: 700; color: var(--gtb-text-soft); line-height: 1.35; }
.gotoo-extra-seat-card__control { flex: 0 0 auto; }

/* Select dropdown */
.gotoo-extras__select {
  border: 1px solid rgba(13, 27, 42, .14);
  border-radius: 10px;
  background: var(--gtb-surface);
  padding: 8px 12px;
  font-weight: 800;
  font-size: 13px;
  font-family: inherit;
  color: var(--gtb-text);
  cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gotoo-extras__select:focus {
  outline: none;
  border-color: rgba(48,176,176, .55);
  box-shadow: 0 0 0 3px rgba(48,176,176, .14);
}

/* Textarea */
.gotoo-extras__textarea {
  width: 100%;
  border: 1px solid rgba(13, 27, 42, .12);
  border-radius: 12px;
  background: #fff;
  padding: 12px 14px;
  font-weight: 700;
  font-size: 13px;
  font-family: inherit;
  color: var(--gtb-text);
  line-height: 1.5;
  resize: vertical;
  min-height: 80px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.gotoo-extras__textarea:focus {
  outline: none;
  border-color: rgba(48,176,176, .55);
  box-shadow: 0 0 0 3px rgba(48,176,176, .14);
}
.gotoo-extras__textarea::placeholder { color: rgba(13, 27, 42, .35); font-weight: 600; }

/* Actions row (Back + Continue) */
.gotoo-extras__actions {
  display: flex;
  gap: 10px;
  padding-top: 4px;
}
.gotoo-extras__actions .gotoo-tb-btn:first-child { flex: 1 1 auto; }
.gotoo-extras__actions .gotoo-tb-btn:last-child  { flex: 2 1 auto; }

/* ══════════════════════════════════════════════════════════
   PASSENGER STEP (Step 3) — .gotoo-tb-form-block, checkboxes, etc.
══════════════════════════════════════════════════════════ */
.gotoo-step--passenger { padding: 16px; }

.gotoo-tb-form-block { display: grid; gap: 14px; }
.gotoo-tb-form-block__title {
  font-size: 14px;
  font-weight: 900;
  color: var(--gtb-text);
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(13, 27, 42, .07);
  letter-spacing: .01em;
}

/* Field hint (below input) */
.gotoo-tb-field__hint {
  font-size: 12px;
  font-weight: 700;
  color: var(--gtb-text-soft);
  line-height: 1.4;
}

/* Checkbox field */
.gotoo-tb-field--checkbox { gap: 4px; }
.gotoo-tb-checkbox {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 13px;
  font-weight: 700;
  color: var(--gtb-text-mid);
  cursor: pointer;
  line-height: 1.45;
}
.gotoo-tb-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  margin-top: 2px;
  accent-color: var(--gtb-gold);
  cursor: pointer;
  border-radius: 4px;
}
.gotoo-terms-link { color: var(--gtb-gold-dark); font-weight: 900; text-decoration: underline; }
.gotoo-terms-link:hover { color: var(--gtb-navy); }

/* Form footer (actions below passenger step) */
.gotoo-tb-form-footer {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(13, 27, 42, .07);
}
.gotoo-tb-form-footer .gotoo-tb-btn:first-child { flex: 1 1 auto; }
.gotoo-tb-form-footer .gotoo-tb-btn:last-child  { flex: 2 1 auto; }

/* ──────────────────────────────────────────────────────────
   SELECTED VEHICLE SUMMARY (shown after selecting vehicle)
────────────────────────────────────────────────────────── */
#gotoo-tb-selected-vehicle { margin-bottom: 14px; }
.gotoo-tb-selected-vehicle__inner {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
}
.gotoo-tb-selected-vehicle__img {
  width: 50px;
  height: 50px;
  border-radius: 10px;
  object-fit: cover;
  background: var(--gtb-surface);
  flex: 0 0 auto;
}
.gotoo-tb-selected-vehicle__info { flex: 1 1 0; min-width: 0; }
.gotoo-tb-selected-vehicle__name { font-size: 14px; font-weight: 900; color: var(--gtb-text); }
.gotoo-tb-selected-vehicle__meta { font-size: 12px; font-weight: 800; color: var(--gtb-text-soft); margin-top: 2px; }
.gotoo-tb-selected-vehicle__price { font-size: 16px; font-weight: 1000; color: var(--gtb-navy); flex: 0 0 auto; }

/* ──────────────────────────────────────────────────────────
   VEHICLE CARD — vehicle footer layout polish
────────────────────────────────────────────────────────── */
.gotoo-tb-vehicle__footer {
  padding: 0 14px 14px;
  border-top: 1px solid rgba(13, 27, 42, .05);
  margin-top: 2px;
  padding-top: 12px;
}

/* ──────────────────────────────────────────────────────────
   DEPOSIT WIDGET — vehicle card footer
────────────────────────────────────────────────────────── */
.gotoo-tb-vehicle__footer--deposit {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 16px;
  align-items: center;
}

.gotoo-deposit-widget {
  display: flex;
  flex-direction: column;
  gap: 9px;
  background: #fafafa;
  border: 1px solid rgba(13,27,42,.08);
  border-radius: 12px;
  padding: 12px 14px 10px;
}

/* Slider row: badge + range + "Full" label */
.gotoo-deposit-widget__slider-row {
  display: flex;
  align-items: center;
  gap: 10px;
}
.gotoo-deposit-widget__pct-badge {
  font-size: 15px;
  font-weight: 900;
  color: var(--gtb-navy);
  min-width: 42px;
  text-align: center;
  background: rgba(48,176,176, .18);
  border: 1px solid rgba(48,176,176, .35);
  border-radius: 7px;
  padding: 3px 6px;
  line-height: 1.4;
}
.gotoo-deposit-widget__range {
  flex: 1;
  accent-color: var(--gotoo-teal);
  height: 6px;
  cursor: pointer;
}
.gotoo-deposit-widget__full-label {
  font-size: 11px;
  font-weight: 700;
  color: var(--gtb-text-soft);
  white-space: nowrap;
  letter-spacing: .02em;
  text-transform: uppercase;
}

/* Amounts row */
.gotoo-deposit-widget__amounts {
  display: flex;
  align-items: baseline;
  gap: 8px;
  font-size: 12px;
  color: #64748b;
  flex-wrap: wrap;
  line-height: 1.3;
}
.gotoo-deposit-widget__now-lbl { color: #64748b; }
.gotoo-deposit-widget__now-amt { color: #1d4ed8; font-size: 14px; font-weight: 800; }
.gotoo-deposit-widget__sep     { color: #cbd5e1; }
.gotoo-deposit-widget__bal-lbl { color: #64748b; }
.gotoo-deposit-widget__bal-amt { color: #92400e; font-size: 14px; font-weight: 800; }

/* Buttons row */
.gotoo-deposit-widget__btns {
  display: flex;
  gap: 8px;
}
.gotoo-deposit-widget__btns .gotoo-tb-btn {
  flex: 1 1 0;
  white-space: nowrap;
  font-size: 13px;
  padding: 10px 12px;
  border-radius: 10px;
}

/* Mobile: stack vertically */
@media (max-width: 767px) {
  .gotoo-tb-vehicle__footer--deposit {
    grid-template-columns: 1fr;
  }
  .gotoo-deposit-widget {
    padding: 12px;
  }
  .gotoo-deposit-widget__btns {
    flex-direction: column;
  }
}

/* ──────────────────────────────────────────────────────────
   EDIT TRIP & RETURN TRIP MODALS — form fields
────────────────────────────────────────────────────────── */
.gotoo-tb-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: rgba(13, 27, 42, .65);
  backdrop-filter: blur(4px);
}
.gotoo-tb-modal.is-open { display: flex; }
/* O return modal e aberto via aria-hidden (results.js / modals-js), nao via .is-open. */
.gotoo-tb-modal[aria-hidden="false"] { display: flex; }
.gotoo-tb-modal__dialog {
  width: min(480px, calc(100% - 16px));
  background: var(--gtb-white);
  border-radius: 18px;
  overflow: hidden;
  box-shadow: 0 30px 80px rgba(0,0,0,.30);
  display: flex;
  flex-direction: column;
  max-height: 90vh;
}
.gotoo-tb-modal__header {
  padding: 18px 18px 14px;
  border-bottom: 1px solid rgba(13, 27, 42, .06);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.gotoo-tb-modal__title { font-size: 16px; font-weight: 1000; }
.gotoo-tb-modal__body  { padding: 18px; overflow-y: auto; display: grid; gap: 14px; }
.gotoo-tb-modal__footer {
  padding: 14px 18px;
  border-top: 1px solid rgba(13, 27, 42, .06);
  display: flex;
  gap: 10px;
}
.gotoo-tb-modal__footer .gotoo-tb-btn:last-child { flex: 2 1 auto; }
.gotoo-tb-modal__footer .gotoo-tb-btn:first-child { flex: 1 1 auto; }

/* ──────────────────────────────────────────────────────────
   RETURN TRIP MODAL — layout próprio (estas classes não tinham CSS)
────────────────────────────────────────────────────────── */
#gotoo-tb-return-modal .gotoo-tb-modal__dialog { position: relative; padding: 28px 26px 24px; width: min(440px, calc(100% - 32px)); }
#gotoo-tb-return-modal .gotoo-tb-modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%;
  background: #eef2f4; color: var(--gtb-text); font-size: 18px; line-height: 1; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s ease, transform .2s ease;
}
#gotoo-tb-return-modal .gotoo-tb-modal__close:hover { background: #e0e6ea; transform: rotate(90deg); }
#gotoo-tb-return-modal .gotoo-tb-modal__title { font-size: 22px; font-weight: 900; letter-spacing: -.3px; margin: 0 0 4px; color: var(--gtb-text); }
#gotoo-tb-return-modal .gotoo-tb-modal__intro { margin: 0 0 18px; font-size: 14px; color: var(--gtb-text-soft); }

#gotoo-tb-return-modal .gotoo-tb-return-summary {
  background: var(--gotoo-teal-tint, #E4F5F4); border: 1px solid var(--gotoo-teal-tint-2, #C7ECEA);
  border-radius: 12px; padding: 12px 14px; display: grid; gap: 9px; margin: 0 0 18px;
}
#gotoo-tb-return-modal .gotoo-tb-return-summary__row { display: grid; grid-template-columns: 74px 1fr; align-items: start; gap: 10px; }
#gotoo-tb-return-modal .gotoo-tb-return-summary__label { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .5px; color: var(--gotoo-teal-darker, #15706E); padding-top: 3px; }
#gotoo-tb-return-modal .gotoo-tb-return-summary__value { font-size: 14px; line-height: 1.45; color: var(--gtb-text); }
#gotoo-tb-return-modal .gotoo-tb-return-summary__value strong { font-weight: 700; }

#gotoo-tb-return-modal .gotoo-tb-return-form { display: grid; gap: 14px; }
#gotoo-tb-return-modal .gotoo-tb-modal__row { display: grid; gap: 6px; }
#gotoo-tb-return-modal .gotoo-tb-modal__row label { font-size: 13px; font-weight: 700; color: var(--gtb-text-mid); }
#gotoo-tb-return-modal .gotoo-tb-input {
  width: 100%; box-sizing: border-box; padding: 12px 13px;
  border: 1.5px solid #dbe3e8; border-radius: 10px;
  font-size: 15px; font-family: inherit; color: var(--gtb-text); background: #fff;
  transition: border-color .15s ease, box-shadow .15s ease;
}
#gotoo-tb-return-modal .gotoo-tb-input:focus { outline: none; border-color: var(--gotoo-teal, #30B0B0); box-shadow: 0 0 0 3px rgba(48,176,176,.18); }

#gotoo-tb-return-modal .gotoo-tb-modal__actions { margin-top: 4px; }
#gotoo-tb-return-modal .gotoo-tb-modal__actions .gotoo-tb-btn { width: 100%; padding: 14px 18px; font-size: 15px; border-radius: 12px; }

@media (max-width: 480px) {
  #gotoo-tb-return-modal .gotoo-tb-modal__dialog { padding: 24px 18px 20px; }
  #gotoo-tb-return-modal .gotoo-tb-return-summary__row { grid-template-columns: 64px 1fr; }
}

/* ──────────────────────────────────────────────────────────
   MOBILE extras/passenger
────────────────────────────────────────────────────────── */
@media (max-width: 599px) {
  .gotoo-extras { padding: 14px; }
  .gotoo-extras__actions,
  .gotoo-tb-form-footer { flex-direction: column-reverse; }
  .gotoo-extras__actions .gotoo-tb-btn,
  .gotoo-tb-form-footer .gotoo-tb-btn { flex: unset; width: 100%; }
}

/* ──────────────────────────────────────────────────────────
   Hourly service — package allowance note in the sidebar
────────────────────────────────────────────────────────── */
.gotoo-tb-results .gotoo-tb-hourly-allowance {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin-top: 10px;
  padding: 10px 12px;
  background: rgba(48,176,176, .10);
  border: 1px solid rgba(48,176,176, .25);
  border-radius: 10px;
  font-size: 12.5px;
  line-height: 1.4;
  color: var(--gtb-text-mid);
}
.gotoo-tb-results .gotoo-tb-hourly-allowance__icon {
  flex: 0 0 auto;
  font-size: 14px;
  line-height: 1.1;
}
.gotoo-tb-results .gotoo-tb-hourly-allowance__text { flex: 1 1 0; }
.gotoo-tb-results .gotoo-tb-hourly-allowance__text strong { color: var(--gtb-text); }

/* ──────────────────────────────────────────────────────────
   Hourly service — per-vehicle price breakdown
────────────────────────────────────────────────────────── */
.gotoo-tb-results .gotoo-tb-vehicle__hourly {
  margin-top: 10px;
  padding: 10px 12px;
  background: #f8fafc;
  border: 1px solid var(--gtb-border);
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: 12.5px;
  line-height: 1.35;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-label {
  color: var(--gtb-text-mid);
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-value {
  font-weight: 700;
  color: var(--gtb-text);
  white-space: nowrap;
  flex: 0 0 auto;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-row--allowance {
  background: rgba(48,176,176, .10);
  border: 1px solid rgba(48,176,176, .25);
  border-radius: 8px;
  padding: 8px 10px;
  margin-top: 2px;
  justify-content: flex-start;
  gap: 8px;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-allow-icon { flex: 0 0 auto; font-size: 14px; }
.gotoo-tb-results .gotoo-tb-vehicle__hourly-allow-text {
  flex: 1 1 0;
  color: var(--gtb-text-mid);
  font-size: 12px;
  line-height: 1.35;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-row--excess {
  border-top: 1px dashed var(--gtb-border);
  padding-top: 8px;
  margin-top: 2px;
}
.gotoo-tb-results .gotoo-tb-vehicle__hourly-row--excess .gotoo-tb-vehicle__hourly-value {
  color: var(--gtb-gold-dark);
}

/* Tour breakdown: muted "× 2" multiplier line */
.gotoo-tb-results .gotoo-tb-vehicle__hourly-value--muted {
  color: var(--gtb-text-soft);
  font-weight: 500;
}

/* ──────────────────────────────────────────────────────────
   Edit Trip modal
   The "Edit your trip" dialog has its own BEM namespace
   (.gotoo-tb-edit-trip__*) — the generic .gotoo-tb-modal
   styles don't reach it, so we ship dedicated rules here.
────────────────────────────────────────────────────────── */
.gotoo-tb-results .gotoo-tb-edit-trip {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
  background: rgba(13, 27, 42, .55);
  backdrop-filter: blur(2px);
}
.gotoo-tb-results .gotoo-tb-edit-trip.is-open { display: flex; }

.gotoo-tb-results .gotoo-tb-edit-trip__dialog {
  position: relative;
  width: 100%;
  max-width: 480px;
  max-height: calc(100vh - 40px);
  overflow-y: auto;
  background: var(--gtb-white);
  border-radius: 16px;
  box-shadow: var(--gtb-shadow);
  padding: 28px 26px 22px;
}

.gotoo-tb-results .gotoo-tb-edit-trip__close {
  position: absolute;
  top: 12px; right: 12px;
  width: 32px; height: 32px;
  border: none;
  background: rgba(13, 27, 42, .06);
  color: var(--gtb-text-mid);
  border-radius: 999px;
  font-size: 20px;
  line-height: 1;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s ease;
}
.gotoo-tb-results .gotoo-tb-edit-trip__close:hover { background: rgba(13, 27, 42, .12); }

.gotoo-tb-results .gotoo-tb-edit-trip__title {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
  color: var(--gtb-text);
}
.gotoo-tb-results .gotoo-tb-edit-trip__intro {
  margin: 0 0 18px;
  font-size: 13px;
  color: var(--gtb-text-soft);
  line-height: 1.4;
}

.gotoo-tb-results .gotoo-tb-edit-trip__form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.gotoo-tb-results .gotoo-tb-edit-trip__row {
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gotoo-tb-results .gotoo-tb-edit-trip__row label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--gtb-text-soft);
}
.gotoo-tb-results .gotoo-tb-edit-trip__row input[type="text"],
.gotoo-tb-results .gotoo-tb-edit-trip__row input[type="number"],
.gotoo-tb-results .gotoo-tb-edit-trip__row input[type="date"],
.gotoo-tb-results .gotoo-tb-edit-trip__row input[type="time"] {
  width: 100%;
  height: 44px;
  padding: 10px 14px;
  border: 1px solid var(--gtb-border);
  border-radius: 10px;
  background: var(--gtb-white);
  font-size: 14px;
  color: var(--gtb-text);
  box-sizing: border-box;
}
.gotoo-tb-results .gotoo-tb-edit-trip__row input:focus {
  outline: none;
  border-color: var(--gtb-gold);
  box-shadow: 0 0 0 3px rgba(48,176,176, .18);
}

/* Two-column row (Date + Time) */
.gotoo-tb-results .gotoo-tb-edit-trip__row--two {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.gotoo-tb-results .gotoo-tb-edit-trip__row--two > div {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Compact row (Passengers) */
.gotoo-tb-results .gotoo-tb-edit-trip__row--small input {
  max-width: 110px;
}

.gotoo-tb-results .gotoo-tb-edit-trip__footer {
  display: flex;
  gap: 10px;
  margin-top: 8px;
  padding-top: 16px;
  border-top: 1px solid rgba(13, 27, 42, .06);
}
.gotoo-tb-results .gotoo-tb-edit-trip__footer .gotoo-tb-btn { flex: 1 1 0; }
.gotoo-tb-results .gotoo-tb-edit-trip__footer .gotoo-tb-btn--primary { flex: 2 1 auto; }

@media (max-width: 480px) {
  .gotoo-tb-results .gotoo-tb-edit-trip__dialog {
    padding: 22px 18px 18px;
    border-radius: 12px;
  }
  .gotoo-tb-results .gotoo-tb-edit-trip__title { font-size: 19px; }
  .gotoo-tb-results .gotoo-tb-edit-trip__row--two {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ============================================================
   Trust bar — prova social no ecrã de preço (Trustindex widget)
   ============================================================ */
.gotoo-tb-trust {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    padding: 10px 14px;
    margin: 0 0 12px;
    background: var(--gotoo-teal-tint);
    border: 1px solid var(--gotoo-teal-tint-2);
    border-left: 4px solid var(--gotoo-teal-dark);
    border-radius: 10px;
    font-size: 13px;
    color: var(--gotoo-ink);
}
/* O widget Trustindex traz o seu próprio estilo; damos-lhe espaço natural */
.gotoo-tb-trust__trustindex {
    flex: 0 1 auto;
    max-width: 100%;
}
.gotoo-tb-trust__trustindex > div {
    min-height: 20px;
}
.gotoo-tb-trust__guarantees {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    flex: 1 1 auto;
}
.gotoo-tb-trust__item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}
.gotoo-tb-trust__icon {
    color: var(--gotoo-teal-dark);
    font-weight: 700;
}
@media (max-width: 600px) {
    .gotoo-tb-trust {
        gap: 10px 14px;
        padding: 12px 14px;
        font-size: 13px;
    }
    .gotoo-tb-trust__trustindex { flex-basis: 100%; }
}

/* ============================================================
   GoToo — Booking redesign (cards selecionáveis + painel único)
   Aplica-se a TODOS os ecrãs (desktop + mobile).
   ============================================================ */

/* Cartão selecionável */
.gotoo-tb-vehicle.is-selected{
  border:2px solid var(--gotoo-teal);
  background:var(--gotoo-teal-tint);
}

/* Rodapé compacto: preço à esquerda, Select à direita.
   O widget de depósito por-card fica escondido (fonte de dados/links p/ painel). */
.gotoo-tb-vehicle__footer--deposit{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:14px;
  padding:10px 12px 12px;
}
.gotoo-tb-vehicle__footer--deposit .gotoo-deposit-widget{display:none;}

.gotoo-tb-vehicle__select{
  display:inline-flex;
  width:auto;
  align-items:center;
  justify-content:center;
  gap:8px;
  cursor:pointer;
  margin:0;
  padding:10px 22px;
  font-size:14px;
  font-weight:500;
  color:var(--gotoo-teal-darker);
  background:transparent;
  border:1.5px solid var(--gotoo-teal);
  border-radius:10px;
  white-space:nowrap;
}
.gotoo-tb-vehicle.is-selected .gotoo-tb-vehicle__select{
  background:var(--gotoo-teal);
  color:#fff;
  border-color:var(--gotoo-teal);
}
.gotoo-tb-vehicle__select-check{display:none;}
.gotoo-tb-vehicle.is-selected .gotoo-tb-vehicle__select-check{display:inline-flex;}

/* ── Painel de reserva único ──────────────────────────────
   Desktop: painel estático por baixo da lista.
   Mobile: sticky no fundo (ver media query abaixo). */
.gotoo-tb-depbar{display:none;}
.gotoo-tb-depbar:not([hidden]){
  display:block;
  background:#fff;
  border:1px solid var(--gotoo-teal-tint-2);
  border-top:3px solid var(--gotoo-teal);
  border-radius:14px;
  padding:16px 18px;
  margin-top:16px;
}
.gotoo-tb-depbar__head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px;}
.gotoo-tb-depbar__veh{font-weight:600;font-size:15px;color:var(--gotoo-ink);}
.gotoo-tb-depbar__price{font-weight:800;font-size:18px;color:var(--gotoo-ink);}
.gotoo-tb-depbar__hint{margin:0 0 10px;font-size:12px;color:#64748b;}
.gotoo-tb-depbar__chips{display:flex;gap:8px;margin-bottom:11px;}
.gotoo-tb-chip{
  flex:1;cursor:pointer;font-size:12.5px;font-weight:600;padding:9px 4px;
  border:1.5px solid #cbd5e1;border-radius:9px;background:#fff;color:#64748b;
}
.gotoo-tb-chip.is-active{
  border-color:var(--gotoo-teal);background:var(--gotoo-teal-tint);color:var(--gotoo-teal-darker);
}
.gotoo-tb-depbar__amounts{
  display:flex;justify-content:space-between;font-size:13px;color:#64748b;
  background:#f6f8f9;border-radius:9px;padding:9px 12px;margin-bottom:12px;
}
.gotoo-tb-depbar__now strong{color:var(--gotoo-teal-darker);font-weight:800;}
.gotoo-tb-depbar__later strong{color:var(--gotoo-ink);font-weight:800;}
.gotoo-tb-depbar__cta{
  width:100%;cursor:pointer;background:var(--gotoo-teal);color:#fff;border:none;
  border-radius:10px;padding:13px;font-size:15px;font-weight:600;
}
.gotoo-tb-depbar__cta:hover{background:var(--gotoo-teal-dark);}

/* ── Mobile: painel fixo no fundo + Select a toda a largura ── */
@media (max-width:767px){
  /* Preço à esquerda, Select à direita — 1 linha. Cartões ~40% mais baixos. */
  .gotoo-tb-vehicle__footer--deposit{flex-direction:row;align-items:center;gap:10px;padding:8px 10px 10px;}
  .gotoo-tb-vehicle__price{flex:1 1 auto;min-width:0;}
  .gotoo-tb-vehicle__price strong, strong.price-final{font-size:17px;}
  .price-label{font-size:10px;}
  .price-usd{font-size:10px;}
  .gotoo-tb-vehicle__select{flex:0 0 auto;width:auto;min-width:104px;padding:9px 16px;font-size:13.5px;}
  .gotoo-tb-depbar:not([hidden]){
    position:sticky;bottom:0;z-index:40;
    margin:14px -16px 0;
    border:none;border-top:1px solid #e5e7eb;border-radius:0;
    padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px));
    box-shadow:0 -6px 20px rgba(13,27,42,0.08);
  }
}
