/* BJT Transfer Booking — scoped to .bjtt so the theme (Kadence) can't clash */
.bjtt {
  --bj-ink: #0f2e35;
  --bj-muted: #4b666b;
  --bj-sea: #0a7a74;
  --bj-sea-dk: #075e59;
  --bj-sun: #f2b300;
  --bj-mist: #edf5f4;
  --bj-line: #cfe0de;
  --bj-err: #b3261e;
  --bj-wa: #1a8f4c;
  color: var(--bj-ink);
  font-family: inherit;
  font-size: 16px;
  line-height: 1.5;
  max-width: 1120px;
  margin: 0 auto;
  container-type: inline-size;
  container-name: bjtt;
}
.bjtt *, .bjtt *::before, .bjtt *::after { box-sizing: border-box; }
.bjtt .bjtt-loading { padding: 40px 0; color: var(--bj-muted); }
.bjtt .bjtt-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Header */
.bjtt .bjtt-head { margin: 0 0 28px; max-width: 760px; }
.bjtt .bjtt-title { font-size: clamp(1.6rem, 3.4vw, 2.3rem); line-height: 1.15; margin: 0 0 10px; color: var(--bj-ink); letter-spacing: -0.01em; }
.bjtt .bjtt-intro { margin: 0 0 14px; color: var(--bj-muted); max-width: 68ch; }
.bjtt .bjtt-trust { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.bjtt .bjtt-trust li { position: relative; padding-left: 22px; font-weight: 600; font-size: 0.95rem; }
.bjtt .bjtt-trust li::before { content: ""; position: absolute; left: 0; top: 0.32em; width: 14px; height: 8px; border-left: 2.5px solid var(--bj-sea); border-bottom: 2.5px solid var(--bj-sea); transform: rotate(-45deg); }

/* Layout */
.bjtt .bjtt-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 32px; align-items: start; }
.bjtt .bjtt-side { position: sticky; top: 24px; }
@container bjtt (max-width: 860px) {
  .bjtt .bjtt-grid { grid-template-columns: 1fr; gap: 24px; }
  .bjtt .bjtt-side { position: static; }
}

/* Steps */
.bjtt .bjtt-steps { list-style: none; margin: 0 0 22px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; counter-reset: none; }
.bjtt .bjtt-steps li { display: flex; align-items: center; gap: 8px; padding-top: 10px; border-top: 3px solid var(--bj-line); color: var(--bj-muted); font-size: 0.9rem; margin: 0; }
.bjtt .bjtt-steps li.is-done { border-color: var(--bj-sea); color: var(--bj-ink); }
.bjtt .bjtt-steps li.is-now { border-color: var(--bj-sea); color: var(--bj-ink); font-weight: 700; }
.bjtt .bjtt-dot { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--bj-mist); font-size: 0.8rem; font-weight: 700; flex: none; }
.bjtt .is-now .bjtt-dot, .bjtt .is-done .bjtt-dot { background: var(--bj-sea); color: #fff; }
@container bjtt (max-width: 560px) { .bjtt .bjtt-steps li:not(.is-now) .bjtt-step-l { display: none; } }

/* Panel and headings */
.bjtt .bjtt-panel { background: #fff; border: 1px solid var(--bj-line); border-radius: 18px; padding: 26px; }
@container bjtt (max-width: 560px) { .bjtt .bjtt-panel { padding: 18px; border-radius: 14px; } }
.bjtt .bjtt-h { font-size: 1.2rem; line-height: 1.3; margin: 0 0 14px; color: var(--bj-ink); }
.bjtt .bjtt-h:focus { outline: none; }
.bjtt .bjtt-h2 { margin-top: 28px; }
.bjtt .bjtt-hint, .bjtt .bjtt-muted { color: var(--bj-muted); margin: -6px 0 12px; font-size: 0.93rem; }
.bjtt .bjtt-muted { margin: 0; }

/* Trip type */
.bjtt .bjtt-types { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
@container bjtt (max-width: 680px) { .bjtt .bjtt-types { grid-template-columns: 1fr 1fr; } }
@container bjtt (max-width: 400px) { .bjtt .bjtt-types { grid-template-columns: 1fr; } }
.bjtt button.bjtt-type, .bjtt button.bjtt-veh {
  all: unset; box-sizing: border-box; cursor: pointer; display: flex; flex-direction: column; gap: 4px;
  padding: 14px 16px; border: 1.5px solid var(--bj-line); border-radius: 14px; background: #fff; color: var(--bj-ink);
  font: inherit; text-align: left; transition: border-color .15s, background-color .15s;
}
.bjtt button.bjtt-type:hover, .bjtt button.bjtt-veh:hover { border-color: var(--bj-sea); }
.bjtt button.bjtt-type.is-on, .bjtt button.bjtt-veh.is-on { border-color: var(--bj-sea); background: var(--bj-mist); box-shadow: inset 0 0 0 1px var(--bj-sea); }
.bjtt button.bjtt-type:focus-visible, .bjtt button.bjtt-veh:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-type-n, .bjtt .bjtt-veh-n { font-weight: 700; }
.bjtt .bjtt-type-d, .bjtt .bjtt-veh-c { color: var(--bj-muted); font-size: 0.9rem; }
.bjtt .bjtt-badge { display: inline-block; margin-left: 6px; padding: 1px 8px; border-radius: 999px; background: var(--bj-sun); color: var(--bj-ink); font-size: 0.72rem; font-weight: 700; vertical-align: 2px; }

/* Ports */
.bjtt .bjtt-ports { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 14px; }
@container bjtt (max-width: 680px) { .bjtt .bjtt-ports { grid-template-columns: 1fr; } }
.bjtt .bjtt-ports.has-error .bjtt-type { border-color: var(--bj-err); }
.bjtt .bjtt-place { margin-bottom: 4px; }

/* Fields */
.bjtt .bjtt-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.bjtt .bjtt-row-1 { grid-template-columns: minmax(0, 1fr); }
@container bjtt (max-width: 480px) { .bjtt .bjtt-row { grid-template-columns: 1fr; } }

.bjtt .bjtt-f { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.bjtt .bjtt-f > label { font-weight: 600; font-size: 0.92rem; margin: 0; }
.bjtt .bjtt-f input, .bjtt .bjtt-f select, .bjtt .bjtt-f textarea {
  width: 100%; min-height: 48px; margin: 0; padding: 10px 14px; border: 1.5px solid var(--bj-line); border-radius: 10px;
  background: #fff; color: var(--bj-ink); font: inherit; font-size: 16px; line-height: 1.4; box-shadow: none;
}
.bjtt .bjtt-f textarea { min-height: 88px; resize: vertical; }
.bjtt .bjtt-f input:focus, .bjtt .bjtt-f select:focus, .bjtt .bjtt-f textarea:focus { outline: none; border-color: var(--bj-sea); box-shadow: 0 0 0 3px rgba(10, 122, 116, 0.2); }
.bjtt .has-error input, .bjtt .has-error select, .bjtt .has-error textarea { border-color: var(--bj-err); }
.bjtt .bjtt-vehicles.has-error .bjtt-veh { border-color: var(--bj-err); }
.bjtt .bjtt-err { color: var(--bj-err); font-size: 0.88rem; margin: 2px 0 0; font-weight: 600; }
.bjtt .bjtt-note { margin: 4px 0 0; padding: 10px 14px; border-left: 4px solid var(--bj-sun); background: #fff8e1; border-radius: 0 10px 10px 0; font-size: 0.94rem; }
.bjtt .bjtt-live:empty { display: none; }
.bjtt .bjtt-live .bjtt-note + .bjtt-note { margin-top: 8px; }
.bjtt .bjtt-note.bjtt-warn { border-left-color: #d97a00; background: #fff1de; }
.bjtt .bjtt-note.bjtt-bad { border-left-color: var(--bj-err); background: #fdeceb; }
.bjtt .bjtt-place > .bjtt-note { margin: -4px 0 12px; }
.bjtt .bjtt-chosen.is-bad { border-color: var(--bj-err); background: #fdeceb; }
/* Time picker */
.bjtt .bjtt-lbl { font-weight: 600; font-size: 0.92rem; }
.bjtt .bjtt-time { display: flex; align-items: center; gap: 6px; }
.bjtt .bjtt-time > span { font-weight: 700; color: var(--bj-muted); }
.bjtt .bjtt-f .bjtt-time select { flex: 1 1 0; min-width: 0; padding-left: 10px; padding-right: 6px; text-align: center; font-variant-numeric: tabular-nums; }
.bjtt .bjtt-f .bjtt-time select:last-child { flex: 1.1 1 0; }
/* Flight number with airline code in front */
.bjtt .bjtt-pre { display: flex; align-items: stretch; }
.bjtt .bjtt-pre span { display: grid; place-items: center; min-width: 52px; padding: 0 10px; border: 1.5px solid var(--bj-line); border-right: 0; border-radius: 10px 0 0 10px; background: var(--bj-mist); font-weight: 700; color: var(--bj-sea-dk); letter-spacing: 0.04em; }
.bjtt .bjtt-f .bjtt-pre input { border-radius: 0 10px 10px 0; min-width: 0; letter-spacing: 0.04em; }
.bjtt .bjtt-f.is-off .bjtt-pre { opacity: 0.55; }
.bjtt .has-error .bjtt-pre span { border-color: var(--bj-err); }
/* Price on the group step */
.bjtt .bjtt-price { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 22px; padding: 16px 18px; border-radius: 14px; background: var(--bj-mist); border: 1.5px solid var(--bj-line); }
.bjtt .bjtt-price span { display: block; font-weight: 700; }
.bjtt .bjtt-price > div small { color: var(--bj-muted); font-size: 0.88rem; }
.bjtt .bjtt-price strong { font-size: 1.6rem; line-height: 1.1; text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.bjtt .bjtt-price strong small, .bjtt .bjtt-price em small { display: block; font-size: 0.8rem; font-weight: 400; color: var(--bj-muted); }
.bjtt .bjtt-price em { font-style: normal; font-weight: 700; text-align: right; max-width: 200px; }

/* Hotel picker */
.bjtt .bjtt-combo { position: relative; }
.bjtt .bjtt-list { position: absolute; z-index: 30; top: 100%; left: 0; right: 0; margin: 4px 0 0; padding: 6px; list-style: none; background: #fff; border: 1.5px solid var(--bj-line); border-radius: 12px; box-shadow: 0 12px 30px rgba(15, 46, 53, 0.14); max-height: 330px; overflow-y: auto; }
.bjtt .bjtt-combo .bjtt-err { order: 3; }
.bjtt .bjtt-opt { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 8px; cursor: pointer; margin: 0; }
.bjtt .bjtt-opt small { color: var(--bj-muted); white-space: nowrap; }
.bjtt .bjtt-opt:hover, .bjtt .bjtt-opt.is-active { background: var(--bj-mist); }
.bjtt .bjtt-opt-o { border-top: 1px solid var(--bj-line); border-radius: 0 0 8px 8px; color: var(--bj-sea-dk); font-weight: 600; margin-top: 4px; }
.bjtt .bjtt-chosen { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 16px; border: 1.5px solid var(--bj-sea); background: var(--bj-mist); border-radius: 12px; margin-bottom: 14px; }
.bjtt .bjtt-chosen strong { display: block; }
.bjtt .bjtt-chosen span { color: var(--bj-muted); font-size: 0.92rem; }
.bjtt button.bjtt-link { all: unset; cursor: pointer; color: var(--bj-sea-dk); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; font-size: 0.93rem; }
.bjtt button.bjtt-link:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; border-radius: 4px; }

/* Flights */
.bjtt fieldset.bjtt-leg { border: 0; padding: 0; margin: 0 0 26px; min-width: 0; }
.bjtt fieldset.bjtt-leg:last-of-type { margin-bottom: 0; }
.bjtt fieldset.bjtt-leg legend { padding: 0; margin: 0; width: 100%; }
.bjtt fieldset.bjtt-leg .bjtt-row { margin-bottom: 10px; }
.bjtt .bjtt-leg-dep { border-top: 1px dashed var(--bj-line); padding-top: 22px; }

/* Group */
.bjtt .bjtt-counts { display: grid; gap: 4px; }
.bjtt .bjtt-count { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--bj-mist); }
.bjtt .bjtt-count-l span { font-weight: 700; display: block; }
.bjtt .bjtt-count-l small { color: var(--bj-muted); }
.bjtt .bjtt-count-c { display: flex; align-items: center; gap: 4px; }
.bjtt .bjtt-count-c output { min-width: 38px; text-align: center; font-weight: 700; font-size: 1.15rem; font-variant-numeric: tabular-nums; }
.bjtt button.bjtt-step-b { all: unset; box-sizing: border-box; cursor: pointer; width: 44px; height: 44px; display: grid; place-items: center; border: 1.5px solid var(--bj-line); border-radius: 50%; font-size: 1.3rem; font-weight: 700; color: var(--bj-sea-dk); background: #fff; }
.bjtt button.bjtt-step-b:hover:not([disabled]) { border-color: var(--bj-sea); }
.bjtt button.bjtt-step-b[disabled] { opacity: 0.35; cursor: default; }
.bjtt button.bjtt-step-b:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-ages { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; margin: 16px 0 12px; }

/* Vehicles */
.bjtt .bjtt-vehicles { display: grid; gap: 10px; }
.bjtt button.bjtt-veh { display: grid; grid-template-columns: 1fr auto; grid-template-areas: "n p" "c p"; column-gap: 16px; row-gap: 2px; align-items: center; }
.bjtt .bjtt-veh-n { grid-area: n; }
.bjtt .bjtt-veh-c { grid-area: c; }
.bjtt .bjtt-veh-p { grid-area: p; text-align: right; font-weight: 700; font-size: 1.1rem; font-variant-numeric: tabular-nums; }
.bjtt .bjtt-veh-p small { display: block; font-weight: 400; font-size: 0.8rem; color: var(--bj-muted); }
.bjtt .bjtt-veh-p em { font-style: normal; font-weight: 600; font-size: 0.85rem; color: var(--bj-muted); max-width: 130px; display: block; }

/* Mercedes upgrade */
.bjtt button.bjtt-up { all: unset; box-sizing: border-box; cursor: pointer; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; width: 100%; margin-top: 18px; padding: 14px 16px; border: 1.5px solid var(--bj-line); border-radius: 14px; background: #fff; color: var(--bj-ink); font: inherit; }
.bjtt button.bjtt-up:hover { border-color: var(--bj-sea); }
.bjtt button.bjtt-up.is-on { border-color: var(--bj-sea); background: var(--bj-mist); box-shadow: inset 0 0 0 1px var(--bj-sea); }
.bjtt button.bjtt-up:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-up-box { width: 22px; height: 22px; border: 2px solid var(--bj-line); border-radius: 6px; position: relative; background: #fff; }
.bjtt .is-on .bjtt-up-box { border-color: var(--bj-sea); background: var(--bj-sea); }
.bjtt .is-on .bjtt-up-box::after { content: ""; position: absolute; left: 6px; top: 2px; width: 6px; height: 11px; border: solid #fff; border-width: 0 2.5px 2.5px 0; transform: rotate(45deg); }
.bjtt .bjtt-up-t b { display: block; }
.bjtt .bjtt-up-t small { color: var(--bj-muted); font-size: 0.88rem; }
.bjtt .bjtt-up-p { font-weight: 700; white-space: nowrap; }
@container bjtt (max-width: 420px) { .bjtt button.bjtt-up { grid-template-columns: auto 1fr; } .bjtt .bjtt-up-p { grid-column: 2; } }
/* Return trip nudge */
.bjtt .bjtt-nudge { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 14px; padding: 14px 16px; border: 1.5px dashed var(--bj-sun); border-radius: 14px; background: #fffaeb; }
.bjtt .bjtt-nudge p { margin: 0; font-weight: 600; flex: 1 1 220px; }
.bjtt .bjtt-nudge .bjtt-btn { min-height: 44px; padding: 8px 20px; background: #fff; }
@container bjtt (max-width: 560px) { .bjtt .bjtt-nudge .bjtt-btn { width: 100%; } }
/* Consent */
.bjtt .bjtt-checks { margin-top: 20px; display: grid; gap: 12px; }
.bjtt label.bjtt-check { display: flex; gap: 12px; align-items: flex-start; font-weight: 400; font-size: 0.95rem; cursor: pointer; margin: 0; }
.bjtt label.bjtt-check input { width: 22px; height: 22px; min-height: 0; margin: 1px 0 0; flex: none; accent-color: var(--bj-sea); }
.bjtt label.bjtt-check a { color: var(--bj-sea-dk); font-weight: 600; }
.bjtt .has-error label.bjtt-check input { outline: 2px solid var(--bj-err); outline-offset: 2px; }
/* Tours after booking */
.bjtt .bjtt-tours { margin-top: 28px; padding-top: 22px; border-top: 1px solid var(--bj-line); }
.bjtt .bjtt-tours h4 { margin: 0 0 4px; font-size: 1.1rem; }
.bjtt .bjtt-tours p { margin: 0 0 14px; color: var(--bj-muted); }
.bjtt .bjtt-tours ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px; }
.bjtt .bjtt-tours li { margin: 0; }
.bjtt .bjtt-tour { display: flex; align-items: center; gap: 10px; height: 100%; padding: 12px 12px 12px 16px; border: 1.5px solid var(--bj-line); border-radius: 12px; }
.bjtt .bjtt-tour:hover { border-color: var(--bj-sea); }
.bjtt a.bjtt-tour-n { flex: 1; color: var(--bj-ink); text-decoration: none; font-weight: 700; line-height: 1.3; }
.bjtt a.bjtt-tour-n small { display: block; color: var(--bj-sea-dk); font-weight: 600; font-size: 0.82rem; margin-top: 2px; text-decoration: underline; text-underline-offset: 2px; }
.bjtt button.bjtt-tour-b { all: unset; box-sizing: border-box; cursor: pointer; flex: none; padding: 9px 16px; border-radius: 999px; background: var(--bj-sun); color: var(--bj-ink); font: inherit; font-weight: 800; font-size: 0.92rem; }
.bjtt button.bjtt-tour-b:hover { filter: brightness(0.95); }
.bjtt button.bjtt-tour-b:focus-visible { outline: 3px solid var(--bj-sea); outline-offset: 2px; }

/* Review */
.bjtt .bjtt-review { margin: 0; border: 1px solid var(--bj-line); border-radius: 12px; }
.bjtt .bjtt-review > div { display: grid; grid-template-columns: 150px 1fr auto; gap: 4px 14px; padding: 12px 16px; border-bottom: 1px solid var(--bj-line); }
.bjtt .bjtt-review > div:last-child { border-bottom: 0; }
.bjtt .bjtt-review dt { font-weight: 700; margin: 0; }
.bjtt .bjtt-review dd { margin: 0; }
.bjtt .bjtt-review small { color: var(--bj-muted); }
@container bjtt (max-width: 560px) { .bjtt .bjtt-review > div { grid-template-columns: 1fr auto; } .bjtt .bjtt-review dd:not(.bjtt-edit) { grid-column: 1 / -1; grid-row: 2; } }

/* Buttons — stacked on phones */
.bjtt .bjtt-nav { display: flex; flex-wrap: wrap; flex-direction: row-reverse; justify-content: flex-start; align-items: center; gap: 12px; margin-top: 22px; }
.bjtt .bjtt-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 52px; padding: 12px 28px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 1rem; text-decoration: none; cursor: pointer; border: 2px solid transparent; line-height: 1.2; }
.bjtt .bjtt-btn:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-primary { background: var(--bj-sea); color: #fff; }
.bjtt .bjtt-primary:hover { background: var(--bj-sea-dk); color: #fff; }
.bjtt .bjtt-primary[disabled] { opacity: 0.6; cursor: progress; }
.bjtt .bjtt-ghost { background: transparent; color: var(--bj-ink); border-color: var(--bj-line); }
.bjtt .bjtt-ghost:hover { border-color: var(--bj-ink); }
.bjtt .bjtt-wa { background: var(--bj-wa); color: #fff; }
.bjtt .bjtt-wa:hover { color: #fff; filter: brightness(0.94); }
.bjtt .bjtt-nopay { width: 100%; margin: 0; color: var(--bj-muted); font-size: 0.92rem; text-align: right; }
@container bjtt (max-width: 560px) {
  .bjtt .bjtt-nav { flex-direction: column; align-items: stretch; }
  .bjtt .bjtt-btn { width: 100%; }
  .bjtt .bjtt-nopay { text-align: center; }
}
.bjtt .bjtt-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* Summary */
.bjtt .bjtt-card { background: var(--bj-ink); color: #fff; border-radius: 18px; padding: 22px; }
.bjtt .bjtt-side-t { color: #fff; font-size: 1.1rem; margin: 0 0 14px; }
.bjtt .bjtt-card .bjtt-muted { color: #b9cfd2; }
.bjtt .bjtt-route { padding: 12px 0 14px; border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.bjtt .bjtt-route-h { display: flex; justify-content: space-between; font-size: 0.82rem; color: #b9cfd2; margin-bottom: 8px; }
.bjtt .bjtt-route-h span:first-child { color: var(--bj-sun); font-weight: 700; }
.bjtt .bjtt-route-l { display: grid; grid-template-columns: minmax(0, 1fr) 58px minmax(0, 1fr); align-items: center; gap: 8px; }
.bjtt .bjtt-stop b { display: block; font-size: 0.92rem; line-height: 1.25; overflow-wrap: anywhere; }
.bjtt .bjtt-stop i { display: block; font-style: normal; font-size: 0.82rem; color: #b9cfd2; font-variant-numeric: tabular-nums; min-height: 1.2em; }
.bjtt .bjtt-stop-r { text-align: right; }
.bjtt .bjtt-track { position: relative; height: 26px; display: grid; place-items: center; }
.bjtt .bjtt-line { position: absolute; left: 0; right: 0; top: 50%; border-top: 2px dashed rgba(255, 255, 255, 0.45); }
.bjtt .bjtt-line::after { content: ""; position: absolute; right: -2px; top: -6px; border: 5px solid transparent; border-left: 7px solid rgba(255, 255, 255, 0.6); }
.bjtt .bjtt-dur { position: relative; background: var(--bj-sun); color: var(--bj-ink); font-size: 0.72rem; font-weight: 800; padding: 1px 7px; border-radius: 999px; white-space: nowrap; }
.bjtt .bjtt-sum-g { margin: 14px 0; font-size: 0.93rem; color: #dbe8ea; }
.bjtt .bjtt-total { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: 2px 10px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, 0.14); }
.bjtt .bjtt-total span { color: #b9cfd2; font-size: 0.9rem; }
.bjtt .bjtt-total strong { font-size: 1.9rem; line-height: 1.1; color: #fff; font-variant-numeric: tabular-nums; grid-row: 1 / 3; grid-column: 2; }
.bjtt .bjtt-total small { color: #b9cfd2; font-size: 0.82rem; }
.bjtt .bjtt-total em { font-style: normal; font-weight: 700; color: var(--bj-sun); grid-column: 2; grid-row: 1; text-align: right; max-width: 160px; }
.bjtt .bjtt-after { padding: 18px 6px 0; }
.bjtt .bjtt-after h4 { margin: 0 0 8px; font-size: 0.98rem; color: var(--bj-ink); }
.bjtt .bjtt-after ol { margin: 0; padding-left: 20px; color: var(--bj-muted); font-size: 0.92rem; }
.bjtt .bjtt-after li { margin: 0 0 6px; }

/* Messages */
.bjtt .bjtt-alert { padding: 16px; border-radius: 12px; background: #fff4e5; border: 1px solid #f3cf8a; margin: 0 0 14px; }
.bjtt .bjtt-alert p { margin: 6px 0 12px; }
.bjtt .bjtt-fail { width: 100%; }
.bjtt .bjtt-done { text-align: left; }
.bjtt .bjtt-done-mark { width: 52px; height: 52px; border-radius: 50%; background: var(--bj-sea); position: relative; margin-bottom: 14px; }
.bjtt .bjtt-done-mark::after { content: ""; position: absolute; left: 17px; top: 15px; width: 18px; height: 10px; border-left: 3.5px solid #fff; border-bottom: 3.5px solid #fff; transform: rotate(-45deg); }

@media (prefers-reduced-motion: reduce) { .bjtt * { transition: none !important; scroll-behavior: auto !important; } }

/* Floating tour offer and booking window (outside .bjtt, so its own colors) */
.bjtt-fl { --f-ink: #0f2e35; --f-sun: #f2b300; --f-sea: #0a7a74; --f-muted: #b9cfd2; font-family: inherit; box-sizing: border-box; }
.bjtt-fl *, .bjtt-fl *::before, .bjtt-fl *::after { box-sizing: border-box; }
.bjtt-fl .bjtt-fl-btn { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; min-height: 46px; padding: 10px 22px; border-radius: 999px; font: inherit; font-weight: 800; font-size: 1rem; }
.bjtt-fl .bjtt-fl-sun { background: var(--f-sun); color: var(--f-ink); }
.bjtt-fl .bjtt-fl-ghost { color: #fff; border: 2px solid rgba(255,255,255,.35); }
.bjtt-fl .bjtt-fl-btn:focus-visible, .bjtt-fl .bjtt-x:focus-visible, .bjtt-fl a:focus-visible { outline: 3px solid var(--f-sun); outline-offset: 2px; }
.bjtt-fl .bjtt-x { all: unset; cursor: pointer; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font-size: 1.5rem; line-height: 1; }
.bjtt-modal { position: fixed; inset: 0; z-index: 99999; display: grid; place-items: center; padding: 24px; }
.bjtt-modal-bg { position: absolute; inset: 0; background: rgba(15, 46, 53, 0.55); opacity: 0; transition: opacity .25s; }
.bjtt-modal.is-in .bjtt-modal-bg { opacity: 1; }
.bjtt-modal-box { position: relative; display: flex; flex-direction: column; width: min(1100px, 100%); height: min(92vh, 980px); background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 80px rgba(0,0,0,.35); transform: translateY(18px) scale(.98); opacity: 0; transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.bjtt-modal.is-in .bjtt-modal-box { transform: none; opacity: 1; }
.bjtt-modal-h { display: flex; align-items: center; gap: 14px; padding: 10px 10px 10px 20px; background: var(--f-ink); color: #fff; }
.bjtt-modal-h p { flex: 1; margin: 0; font-weight: 800; font-size: 1.05rem; color: #fff; }
.bjtt-modal-h a { color: var(--f-sun); font-weight: 700; font-size: 0.9rem; text-decoration: underline; text-underline-offset: 3px; }
.bjtt-modal-h .bjtt-x { color: #fff; }
.bjtt-modal iframe { flex: 1; width: 100%; border: 0; background: #fff; }
@media (max-width: 560px) {
  .bjtt-modal { padding: 0; }
  .bjtt-modal-box { width: 100%; height: 100%; border-radius: 0; }
  .bjtt-modal-h { padding-top: calc(10px + env(safe-area-inset-top, 0px)); }
}


/* ============ v2.5: contained card, colors, language buttons ============ */
.bjtt.bjtt-ready { position: relative; background: #fff; border: 2px solid var(--bj-line); border-radius: 26px; padding: 34px 32px 32px; box-shadow: 0 14px 40px rgba(15, 46, 53, 0.08); overflow: hidden; margin-top: 8px; margin-bottom: 8px; }
.bjtt.bjtt-ready::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 7px; background: linear-gradient(90deg, #0a7a74 0 25%, #f2b300 25% 50%, #e4572e 50% 75%, #1a8f4c 75% 100%); }
@container bjtt (max-width: 600px) { .bjtt .bjtt-head { margin-bottom: 20px; } }
@media (max-width: 600px) { .bjtt.bjtt-ready { padding: 26px 14px 18px; border-radius: 18px; } }

/* Header row: title + language */
.bjtt .bjtt-head { max-width: none; }
.bjtt .bjtt-head-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.bjtt .bjtt-head-row .bjtt-title { flex: 1 1 320px; margin-bottom: 10px; }
.bjtt .bjtt-head-min { margin-bottom: 14px; }
.bjtt .bjtt-lang { display: inline-flex; padding: 4px; gap: 4px; border-radius: 999px; background: var(--bj-mist); border: 1.5px solid var(--bj-line); flex: none; }
.bjtt .bjtt-lang button { all: unset; box-sizing: border-box; cursor: pointer; display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 16px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 0.95rem; color: var(--bj-ink); }
.bjtt .bjtt-lang button span { display: inline-grid; place-items: center; min-width: 26px; height: 20px; padding: 0 4px; border-radius: 6px; background: #fff; color: var(--bj-sea-dk); font-size: 0.72rem; font-weight: 800; }
.bjtt .bjtt-lang button[aria-pressed="true"] { background: var(--bj-ink); color: #fff; }
.bjtt .bjtt-lang button[aria-pressed="true"] span { background: var(--bj-sun); color: var(--bj-ink); }
.bjtt .bjtt-lang button:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
@container bjtt (max-width: 560px) { .bjtt .bjtt-lang { width: 100%; order: -1; } .bjtt .bjtt-lang button { flex: 1; justify-content: center; } }

/* Trust pills in color */
.bjtt .bjtt-trust { gap: 8px; }
.bjtt .bjtt-trust li { padding: 7px 14px 7px 34px; border-radius: 999px; font-size: 0.9rem; }
.bjtt .bjtt-trust li::before { left: 14px; top: 0.72em; width: 11px; height: 6px; border-width: 0 0 2.5px 2.5px; border-left-style: solid; border-bottom-style: solid; }
.bjtt .bjtt-trust .bjtt-pill-0 { background: #dff3f0; color: #075e59; } .bjtt .bjtt-trust .bjtt-pill-0::before { border-color: #0a7a74; }
.bjtt .bjtt-trust .bjtt-pill-1 { background: #fff1c2; color: #6b4e00; } .bjtt .bjtt-trust .bjtt-pill-1::before { border-color: #c48a00; }
.bjtt .bjtt-trust .bjtt-pill-2 { background: #ffe4da; color: #9a3412; } .bjtt .bjtt-trust .bjtt-pill-2::before { border-color: #e4572e; }
.bjtt .bjtt-trust .bjtt-pill-3 { background: #e0f4e7; color: #146c3a; } .bjtt .bjtt-trust .bjtt-pill-3::before { border-color: #1a8f4c; }

/* Steps in color */
.bjtt .bjtt-steps li { border-top-width: 5px; border-radius: 3px 3px 0 0; }
.bjtt .bjtt-steps li.is-now .bjtt-dot { background: var(--bj-sun); color: var(--bj-ink); box-shadow: 0 0 0 4px #fff1c2; }
.bjtt .bjtt-steps li.is-now { border-color: var(--bj-sun); }

/* Trip types: colored icon cards */
.bjtt .bjtt-t-arrival { --c: #0a7a74; --c-bg: #dff3f0; }
.bjtt .bjtt-t-round { --c: #c48a00; --c-bg: #fff1c2; }
.bjtt .bjtt-t-departure { --c: #e4572e; --c-bg: #ffe4da; }
.bjtt .bjtt-t-hotel_hotel { --c: #7b4fd6; --c-bg: #eee6ff; }
.bjtt .bjtt-t-airport_port { --c: #1f6fe0; --c-bg: #e1ecff; }
.bjtt .bjtt-t-port_airport { --c: #1a8f4c; --c-bg: #e0f4e7; }
.bjtt .bjtt-types button.bjtt-type { flex-direction: row; align-items: flex-start; gap: 12px; border-width: 2px; position: relative; }
.bjtt .bjtt-types button.bjtt-type:hover { border-color: var(--c); }
.bjtt .bjtt-types button.bjtt-type.is-on { border-color: var(--c); background: var(--c-bg); box-shadow: 0 6px 18px -8px var(--c); }
.bjtt .bjtt-types button.bjtt-type.is-on::after { content: ""; position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; border-radius: 50%; background: var(--c) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center / 12px no-repeat; }
.bjtt .bjtt-type-i { flex: none; display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--c-bg); color: var(--c); }
.bjtt .is-on .bjtt-type-i { background: var(--c); color: #fff; }
.bjtt .bjtt-ico { width: 22px; height: 22px; }
.bjtt .bjtt-type-x { display: flex; flex-direction: column; gap: 3px; padding-right: 18px; }
.bjtt .bjtt-badge { background: #e4572e; color: #fff; }

/* Ports in color */
.bjtt .bjtt-ports button.bjtt-type { border-width: 2px; }
.bjtt .bjtt-ports button.bjtt-type.is-on { border-color: #1f6fe0; background: #e1ecff; box-shadow: inset 0 0 0 1px #1f6fe0; }

/* Livelier price and extras */
.bjtt .bjtt-price { background: #fff8e1; border-color: #f2d27a; }
.bjtt .bjtt-price strong { color: var(--bj-sea-dk); }
.bjtt .bjtt-total strong { color: var(--bj-sun); }
.bjtt button.bjtt-up { border-width: 2px; }
.bjtt .bjtt-nudge { border-width: 2px; border-color: #e4572e; background: #fff3ee; }

/* Tour offer: centered, with colored tour pills */
.bjtt-sheet { position: fixed; inset: 0; z-index: 99998; display: grid; place-items: center; padding: 20px; }
.bjtt-sheet-bg { position: absolute; inset: 0; background: rgba(15, 46, 53, 0.55); opacity: 0; transition: opacity .25s; }
.bjtt-sheet.is-in .bjtt-sheet-bg { opacity: 1; }
.bjtt-sheet-box { position: relative; width: min(520px, 100%); max-height: calc(100vh - 40px); overflow-y: auto; padding: 34px 30px 28px; border-radius: 24px; background: #fff; border: 3px solid var(--f-sun); box-shadow: 0 30px 80px rgba(0,0,0,.35); text-align: center; transform: translateY(16px) scale(.96); opacity: 0; transition: transform .3s cubic-bezier(.2,.8,.2,1), opacity .3s; }
.bjtt-sheet.is-in .bjtt-sheet-box { transform: none; opacity: 1; }
.bjtt-sheet-box::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 7px; background: linear-gradient(90deg, #0a7a74 0 25%, #f2b300 25% 50%, #e4572e 50% 75%, #1a8f4c 75% 100%); }
.bjtt-sheet .bjtt-x { position: absolute; top: 14px; right: 12px; color: var(--f-ink); background: #eef3f2; }
.bjtt-sheet .bjtt-sheet-k { margin: 0 0 6px; color: #e4572e; font-weight: 800; font-size: 0.95rem; }
.bjtt-sheet .bjtt-sheet-t { margin: 0 0 8px; font-size: 1.55rem; font-weight: 800; line-height: 1.2; color: var(--f-ink); }
.bjtt-sheet .bjtt-sheet-p { margin: 0 auto 18px; max-width: 40ch; color: #4b666b; font-size: 1rem; line-height: 1.5; }
.bjtt-sheet .bjtt-sheet-tours { list-style: none; margin: 0 0 22px; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; }
.bjtt-sheet .bjtt-sheet-tours li { margin: 0; }
.bjtt-fl .bjtt-tp { all: unset; box-sizing: border-box; cursor: pointer; display: inline-block; padding: 9px 16px; border-radius: 999px; font: inherit; font-weight: 700; font-size: 0.93rem; border: 2px solid transparent; }
.bjtt-fl .bjtt-tp:hover { border-color: currentColor; }
.bjtt-fl .bjtt-tp:focus-visible { outline: 3px solid var(--f-ink); outline-offset: 2px; }
.bjtt-fl .bjtt-tp-0 { background: #dff3f0; color: #075e59; }
.bjtt-fl .bjtt-tp-1 { background: #fff1c2; color: #6b4e00; }
.bjtt-fl .bjtt-tp-2 { background: #ffe4da; color: #9a3412; }
.bjtt-fl .bjtt-tp-3 { background: #e0f4e7; color: #146c3a; }
.bjtt-fl .bjtt-tp-4 { background: #e1ecff; color: #174ea6; }
.bjtt-fl .bjtt-tp-5 { background: #eee6ff; color: #5b34b0; }
.bjtt-sheet .bjtt-sheet-a { display: flex; flex-direction: column; gap: 10px; align-items: stretch; }
.bjtt-sheet .bjtt-fl-btn { min-height: 52px; font-size: 1.05rem; }
.bjtt-sheet .bjtt-fl-ghost { color: var(--f-ink); border-color: #cfe0de; }
@media (max-width: 560px) { .bjtt-sheet-box { padding: 30px 18px 20px; } .bjtt-sheet .bjtt-sheet-t { font-size: 1.3rem; } }
/* Booking window border */
.bjtt-modal-box { border: 3px solid var(--f-sun); }
@media (prefers-reduced-motion: reduce) { .bjtt-sheet-box, .bjtt-sheet-bg, .bjtt-modal-box, .bjtt-modal-bg { transition: none; } }
@media (max-width: 600px) { .bjtt .bjtt-panel { padding: 16px 12px; } }

/* v2.6: compact trip and port buttons */
.bjtt .bjtt-types { gap: 8px; }
.bjtt .bjtt-types button.bjtt-type { align-items: center; gap: 10px; padding: 9px 12px; min-height: 56px; border-radius: 12px; }
.bjtt .bjtt-types button.bjtt-type.is-on { box-shadow: none; }
.bjtt .bjtt-types button.bjtt-type.is-on::after { top: 50%; right: 10px; width: 18px; height: 18px; margin-top: -9px; background-size: 11px; }
.bjtt .bjtt-type-i { width: 34px; height: 34px; border-radius: 10px; }
.bjtt .bjtt-ico { width: 18px; height: 18px; }
.bjtt .bjtt-types .bjtt-type-n { font-size: 0.95rem; line-height: 1.25; padding-right: 22px; }
.bjtt .bjtt-star { position: absolute; top: -7px; left: 30px; width: 18px; height: 18px; border-radius: 50%; background: #e4572e url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='white'%3E%3Cpath d='M12 3l2.6 5.6 6.1.7-4.5 4.2 1.2 6L12 16.6 6.6 19.5l1.2-6L3.3 9.3l6.1-.7z'/%3E%3C/svg%3E") center / 11px no-repeat; box-shadow: 0 0 0 2px #fff; }
@container bjtt (max-width: 680px) { .bjtt .bjtt-types { grid-template-columns: 1fr 1fr; } }
@container bjtt (max-width: 300px) { .bjtt .bjtt-types { grid-template-columns: 1fr; } }
.bjtt .bjtt-ports { gap: 8px; }
.bjtt .bjtt-ports button.bjtt-port { flex-direction: row; justify-content: center; align-items: center; min-height: 48px; padding: 8px 12px; border-radius: 12px; text-align: center; }
@container bjtt (max-width: 680px) { .bjtt .bjtt-ports { grid-template-columns: repeat(3, 1fr); } }
@container bjtt (max-width: 330px) { .bjtt .bjtt-ports { grid-template-columns: 1fr; } }
.bjtt .bjtt-ports .bjtt-type-n { font-size: 0.95rem; }

/* v2.7: vivid buttons, flags, ship ports, extras */
.bjtt .bjtt-lang button .bjtt-flag { width: 24px; height: 16px; border-radius: 3px; box-shadow: 0 0 0 1px rgba(0,0,0,.15); flex: none; }
.bjtt .bjtt-lang { border-width: 2px; }
.bjtt .bjtt-lang button { min-height: 46px; padding: 8px 18px; font-size: 1rem; }
.bjtt .bjtt-types button.bjtt-type { background: var(--c-bg); border-color: color-mix(in srgb, var(--c) 35%, #fff); min-height: 60px; }
.bjtt .bjtt-types button.bjtt-type .bjtt-type-i { background: var(--c); color: #fff; }
.bjtt .bjtt-types button.bjtt-type .bjtt-type-n { color: var(--bj-ink); font-weight: 800; }
.bjtt .bjtt-types button.bjtt-type:hover { border-color: var(--c); transform: translateY(-1px); }
.bjtt .bjtt-types button.bjtt-type.is-on { background: var(--c); border-color: var(--c); box-shadow: 0 8px 20px -10px var(--c); }
.bjtt .bjtt-types button.bjtt-type.is-on .bjtt-type-n { color: #fff; }
.bjtt .bjtt-types button.bjtt-type.is-on .bjtt-type-i { background: rgba(255,255,255,.22); color: #fff; }
.bjtt .bjtt-types button.bjtt-type.is-on::after { background-color: #fff; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230f2e35' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E"); }
.bjtt .bjtt-types .bjtt-t-round { --c: #d99200; }
.bjtt .bjtt-ports button.bjtt-port { gap: 8px; background: #e1ecff; border-color: #9cc0f5; color: #174ea6; }
.bjtt .bjtt-ports button.bjtt-port .bjtt-type-n { color: #174ea6; font-weight: 800; }
.bjtt .bjtt-port-i { display: inline-grid; place-items: center; color: #1f6fe0; }
.bjtt .bjtt-ports button.bjtt-port:hover { border-color: #1f6fe0; }
.bjtt .bjtt-ports button.bjtt-port.is-on { background: #1f6fe0; border-color: #1f6fe0; box-shadow: 0 8px 20px -10px #1f6fe0; }
.bjtt .bjtt-ports button.bjtt-port.is-on .bjtt-type-n, .bjtt .bjtt-ports button.bjtt-port.is-on .bjtt-port-i { color: #fff; }
.bjtt .bjtt-primary { box-shadow: 0 8px 20px -10px var(--bj-sea); }
@media (prefers-reduced-motion: reduce) { .bjtt .bjtt-types button.bjtt-type:hover { transform: none; } }

.bjtt .bjtt-hint-top { margin: -6px 0 18px; }
.bjtt .bjtt-occ { max-width: 420px; margin-bottom: 20px; }
.bjtt .bjtt-exgs { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@container bjtt (max-width: 760px) { .bjtt .bjtt-exgs { grid-template-columns: 1fr; } }
.bjtt .bjtt-exg { border-radius: 16px; padding: 16px; border: 2px solid; }
.bjtt .bjtt-exg-d { border-color: #9fdcd5; background: #f2fbfa; }
.bjtt .bjtt-exg-c { border-color: #f5c2b2; background: #fff6f2; }
.bjtt .bjtt-exg h4 { margin: 0 0 10px; font-size: 1.05rem; }
.bjtt .bjtt-exg-d h4 { color: #075e59; } .bjtt .bjtt-exg-c h4 { color: #b23c17; }
.bjtt .bjtt-exl { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.bjtt .bjtt-exl li { margin: 0; padding: 8px 10px; border-radius: 12px; background: #fff; border: 1.5px solid transparent; }
.bjtt .bjtt-exl li.is-on { border-color: var(--bj-sea); }
.bjtt .bjtt-exg-c .bjtt-exl li.is-on { border-color: #e4572e; }
.bjtt .bjtt-ex-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.bjtt .bjtt-ex-n b { display: block; font-size: 0.95rem; line-height: 1.25; }
.bjtt .bjtt-ex-n small { color: var(--bj-muted); font-size: 0.85rem; }
.bjtt .bjtt-exl .bjtt-step-b { width: 38px; height: 38px; font-size: 1.15rem; }
.bjtt .bjtt-exl .bjtt-count-c output { min-width: 28px; font-size: 1.05rem; }
.bjtt .bjtt-ex-opt { margin-top: 8px; }
.bjtt .bjtt-ex-opt label { font-size: 0.85rem; }
.bjtt .bjtt-ex-opt input, .bjtt .bjtt-ex-opt select { min-height: 42px; }
.bjtt .bjtt-ex-total { margin-top: 18px; }
.bjtt .bjtt-steps { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.bjtt .bjtt-steps li { min-width: 0; }
.bjtt .bjtt-step-l { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@container bjtt (max-width: 760px) { .bjtt .bjtt-steps li:not(.is-now) .bjtt-step-l { display: none; } }
.bjtt .bjtt-step-cap { display: none; margin: -12px 0 16px; font-size: 0.92rem; color: var(--bj-muted); }
.bjtt .bjtt-step-cap b { color: var(--bj-ink); }
@container bjtt (max-width: 760px) { .bjtt .bjtt-steps .bjtt-step-l { display: none !important; } .bjtt .bjtt-step-cap { display: block; } }

/* v2.8: logo beside the heading, at capital-letter height */
.bjtt .bjtt-head-row .bjtt-title { display: flex; align-items: baseline; gap: 0.32em; font-weight: 800; }
.bjtt .bjtt-logo { height: 0.72em; width: auto; max-width: 3.2em; object-fit: contain; flex: none; display: block; align-self: baseline; transform: translateY(0.02em); }

/* v2.9: readable on every phone and theme — cards never squeeze words */
.bjtt, .bjtt-fl { word-break: normal; overflow-wrap: normal; hyphens: manual; -webkit-hyphens: manual; }
.bjtt .bjtt-type-n, .bjtt .bjtt-ex-n b, .bjtt .bjtt-stop b, .bjtt .bjtt-chosen strong, .bjtt .bjtt-opt span, .bjtt-fl .bjtt-tp { overflow-wrap: break-word; word-break: normal; }
.bjtt .bjtt-types { grid-template-columns: repeat(auto-fill, minmax(min(100%, 205px), 1fr)); }
.bjtt .bjtt-ports { grid-template-columns: repeat(auto-fill, minmax(min(100%, 175px), 1fr)); }
.bjtt .bjtt-types button.bjtt-type { padding: 10px 14px; }
.bjtt .bjtt-types .bjtt-type-n { font-size: 1rem; }
@container bjtt (max-width: 520px) {
  .bjtt .bjtt-types button.bjtt-type { min-height: 54px; }
  .bjtt .bjtt-ports button.bjtt-port { justify-content: flex-start; padding-left: 16px; }
}
.bjtt .bjtt-trust li { line-height: 1.35; }
.bjtt .bjtt-exl .bjtt-ex-row { flex-wrap: nowrap; }
.bjtt .bjtt-ex-n { min-width: 0; flex: 1; }
.bjtt .bjtt-ex-n b { font-size: 1rem; }
@container bjtt (max-width: 360px) { .bjtt .bjtt-exl .bjtt-step-b { width: 34px; height: 34px; } }
.bjtt .bjtt-lang button { white-space: nowrap; }
@container bjtt (max-width: 520px) {
  .bjtt .bjtt-exg { padding: 12px 8px 10px; border-radius: 14px; }
  .bjtt .bjtt-exg h4 { padding-left: 6px; }
  .bjtt .bjtt-exl li { padding: 8px 8px 8px 10px; }
  .bjtt .bjtt-exl .bjtt-step-b { width: 36px; height: 36px; }
  .bjtt .bjtt-exl .bjtt-count-c { gap: 2px; }
  .bjtt .bjtt-exl .bjtt-count-c output { min-width: 24px; }
  .bjtt .bjtt-exg .bjtt-hint { padding: 0 6px; }
}

/* v3.0: Club MoBay offer */
.bjtt .bjtt-club { display: flex; gap: 14px; align-items: flex-start; margin-top: 10px; padding: 16px 18px; border-radius: 16px; background: linear-gradient(135deg, #1f6fe0, #174ea6); color: #fff; box-shadow: 0 10px 24px -14px #1f6fe0; animation: bjtt-pop .45s cubic-bezier(.2,.8,.2,1); }
.bjtt .bjtt-club-i { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: var(--bj-sun); color: var(--bj-ink); }
.bjtt .bjtt-club-i svg { width: 22px; height: 22px; }
.bjtt .bjtt-club-x { min-width: 0; }
.bjtt .bjtt-club-t { margin: 0 0 4px; font-weight: 800; font-size: 1.02rem; color: #fff; line-height: 1.3; }
.bjtt .bjtt-club-p { margin: 0 0 12px; font-size: 0.93rem; line-height: 1.45; color: #e1ecff; }
.bjtt a.bjtt-club-a { display: inline-flex; align-items: center; gap: 6px; padding: 9px 18px; border-radius: 999px; background: #fff; color: #174ea6; font-weight: 800; font-size: 0.95rem; text-decoration: none; }
.bjtt a.bjtt-club-a:hover { background: var(--bj-sun); color: var(--bj-ink); }
.bjtt a.bjtt-club-a:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
@keyframes bjtt-pop { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .bjtt .bjtt-club { animation: none; } }

/* v3.3: vehicle and payment choices */
.bjtt .bjtt-veh2s, .bjtt .bjtt-pays { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 10px; }
.bjtt button.bjtt-veh2, .bjtt button.bjtt-pay { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; gap: 14px; padding: 14px 16px; border-radius: 14px; border: 2px solid var(--bj-line); background: #fff; color: var(--bj-ink); font: inherit; }
.bjtt button.bjtt-veh2 { justify-content: space-between; }
.bjtt button.bjtt-veh2:focus-visible, .bjtt button.bjtt-pay:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-veh2-t b, .bjtt button.bjtt-pay b { display: block; font-weight: 800; }
.bjtt .bjtt-veh2-t small, .bjtt button.bjtt-pay small { display: block; color: var(--bj-muted); font-size: 0.88rem; line-height: 1.35; margin-top: 2px; }
.bjtt .bjtt-veh2-p { text-align: right; font-weight: 800; font-size: 1.15rem; white-space: nowrap; font-variant-numeric: tabular-nums; }
.bjtt .bjtt-veh2-p small { display: block; font-weight: 400; font-size: 0.78rem; color: var(--bj-muted); }
.bjtt .bjtt-veh2-p em { font-style: normal; font-size: 0.85rem; color: var(--bj-muted); white-space: normal; }
.bjtt button.bjtt-veh2-std.is-on { border-color: var(--bj-sea); background: var(--bj-mist); box-shadow: inset 0 0 0 1px var(--bj-sea); }
.bjtt button.bjtt-veh2-lux { border-color: #e5c66b; background: linear-gradient(135deg, #fffaf0, #fff3d1); }
.bjtt button.bjtt-veh2-lux:hover, .bjtt button.bjtt-veh2-std:hover { border-color: var(--bj-sea); }
.bjtt button.bjtt-veh2-lux.is-on { border-color: #1b1f24; background: #1b1f24; color: #fff; box-shadow: 0 10px 24px -14px #000; }
.bjtt button.bjtt-veh2-lux.is-on small, .bjtt button.bjtt-veh2-lux.is-on .bjtt-veh2-p small { color: #c9ced4; }
.bjtt button.bjtt-veh2-lux.is-on .bjtt-veh2-p { color: var(--bj-sun); }
.bjtt .bjtt-luxb { display: inline-block; margin-left: 6px; padding: 2px 9px; border-radius: 999px; background: var(--bj-sun); color: var(--bj-ink); font-size: 0.72rem; font-weight: 800; vertical-align: 2px; }
.bjtt .bjtt-pay-i { flex: none; display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; font-weight: 800; font-size: 1.1rem; }
.bjtt .bjtt-pay-cash .bjtt-pay-i { background: #e0f4e7; color: #146c3a; }
.bjtt .bjtt-pay-link .bjtt-pay-i { background: #e1ecff; color: #174ea6; }
.bjtt button.bjtt-pay-cash.is-on { border-color: #1a8f4c; background: #e0f4e7; box-shadow: inset 0 0 0 1px #1a8f4c; }
.bjtt button.bjtt-pay-link.is-on { border-color: #1f6fe0; background: #e1ecff; box-shadow: inset 0 0 0 1px #1f6fe0; }
.bjtt .bjtt-pays.has-error .bjtt-pay { border-color: var(--bj-err); }

/* v3.6: Mercedes prompts */
.bjtt .bjtt-luxtease { margin: 10px 0 0; padding: 10px 14px; border-radius: 12px; background: linear-gradient(135deg, #fffaf0, #fff3d1); border: 1px solid #e5c66b; color: var(--bj-ink); font-size: 0.93rem; line-height: 1.4; }
.bjtt .bjtt-luxtease .bjtt-luxb { margin: 0 4px 0 0; }
.bjtt button.bjtt-sum-lux { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; margin: 0 0 14px; padding: 10px 14px; border-radius: 12px; background: #1b1f24; border: 1px solid #e5c66b; color: #fff; font-size: 0.9rem; font-weight: 700; }
.bjtt button.bjtt-sum-lux b { color: var(--bj-sun); font-size: 1rem; }
.bjtt button.bjtt-sum-lux span::before { content: "+ "; color: var(--bj-sun); }
.bjtt button.bjtt-sum-lux:hover { border-color: var(--bj-sun); }
.bjtt button.bjtt-sum-lux:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }

/* v3.7: service choice on step 1 */
.bjtt .bjtt-svcs { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 250px), 1fr)); gap: 12px; }
.bjtt button.bjtt-svc { all: unset; box-sizing: border-box; cursor: pointer; display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; border-radius: 18px; border: 2px solid var(--bj-line); background: #fff; color: var(--bj-ink); font: inherit; transition: border-color .15s, background-color .15s, box-shadow .15s; }
.bjtt button.bjtt-svc:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; }
.bjtt .bjtt-svc-i { flex: none; display: grid; place-items: center; width: 46px; height: 46px; border-radius: 14px; }
.bjtt .bjtt-svc-i svg { width: 26px; height: 26px; }
.bjtt .bjtt-svc-t { min-width: 0; }
.bjtt .bjtt-svc-t b { display: block; font-size: 1.05rem; font-weight: 800; line-height: 1.25; }
.bjtt .bjtt-svc-t small { display: block; margin-top: 3px; font-size: 0.88rem; line-height: 1.35; color: var(--bj-muted); }
.bjtt .bjtt-svc-t em { display: inline-block; margin-top: 8px; padding: 3px 10px; border-radius: 999px; font-style: normal; font-weight: 800; font-size: 0.85rem; }
.bjtt .bjtt-svc-std .bjtt-svc-i { background: var(--bj-mist); color: var(--bj-sea); }
.bjtt .bjtt-svc-std em { background: var(--bj-mist); color: var(--bj-sea); }
.bjtt button.bjtt-svc-std:hover { border-color: var(--bj-sea); }
.bjtt button.bjtt-svc-std.is-on { border-color: var(--bj-sea); background: var(--bj-mist); box-shadow: inset 0 0 0 1px var(--bj-sea); }
.bjtt button.bjtt-svc-std.is-on .bjtt-svc-i { background: var(--bj-sea); color: #fff; }
.bjtt button.bjtt-svc-lux { border-color: #e5c66b; background: linear-gradient(135deg, #fffaf0, #fff3d1); }
.bjtt .bjtt-svc-lux .bjtt-svc-i { background: #1b1f24; color: var(--bj-sun); }
.bjtt .bjtt-svc-lux em { background: #1b1f24; color: var(--bj-sun); }
.bjtt button.bjtt-svc-lux:hover { border-color: #c79a1c; }
.bjtt button.bjtt-svc-lux.is-on { background: #1b1f24; border-color: #1b1f24; color: #fff; box-shadow: 0 12px 26px -14px #000; }
.bjtt button.bjtt-svc-lux.is-on small { color: #c9ced4; }
.bjtt button.bjtt-svc-lux.is-on .bjtt-svc-i { background: var(--bj-sun); color: #1b1f24; }
.bjtt button.bjtt-svc-lux.is-on em { background: var(--bj-sun); color: #1b1f24; }
.bjtt .bjtt-luxna, .bjtt .bjtt-luxcap { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 14px; }
.bjtt .bjtt-luxcap { margin-top: 12px; padding: 10px 14px; border-radius: 12px; background: linear-gradient(135deg, #fffaf0, #fff3d1); border: 1px solid #e5c66b; }
.bjtt .bjtt-luxna[hidden] { display: none; }

/* v3.8: Mercedes complimentary drinks */
.bjtt .bjtt-comp { margin-bottom: 8px; padding: 18px 18px 8px; border-radius: 16px; background: linear-gradient(135deg, #fffaf0, #fff3d1); border: 2px solid #e5c66b; }
.bjtt .bjtt-comp .bjtt-h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bjtt .bjtt-comp .bjtt-luxb { margin: 0; }
.bjtt .bjtt-comp-water { position: relative; margin: 0 0 12px; padding-left: 28px; font-weight: 700; }
.bjtt .bjtt-comp-water::before { content: ""; position: absolute; left: 0; top: 2px; width: 20px; height: 20px; border-radius: 50%; background: var(--bj-sea) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5 9-10'/%3E%3C/svg%3E") center/12px no-repeat; }

/* v3.9: Mercedes availability */
.bjtt .bjtt-svc-av { display: block; margin-top: 6px; font-style: normal; font-size: 0.8rem; font-weight: 700; color: #8a6a12; }
.bjtt button.bjtt-svc-lux.is-on .bjtt-svc-av { color: #e8cf86; }
.bjtt .bjtt-luxavail { margin-top: 10px; padding: 10px 14px; border-radius: 12px; background: #fff8e1; border: 1px solid #f2d27a; }
.bjtt .bjtt-sum-av { color: #c9ced4; font-size: 0.8em; }

/* v3.9.1: compact service pills */
.bjtt .bjtt-svcs { grid-template-columns: repeat(auto-fill, minmax(min(100%, 270px), 1fr)); gap: 10px; }
.bjtt button.bjtt-svc { align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; }
.bjtt .bjtt-svc-i { width: 36px; height: 36px; border-radius: 10px; }
.bjtt .bjtt-svc-i svg { width: 20px; height: 20px; }
.bjtt .bjtt-svc-t { flex: 1; }
.bjtt .bjtt-svc-t b { font-size: 0.98rem; }
.bjtt .bjtt-svc-t small { margin-top: 1px; font-size: 0.82rem; line-height: 1.3; }
.bjtt .bjtt-svc-t small.bjtt-svc-av { margin-top: 2px; font-size: 0.76rem; font-weight: 700; color: #8a6a12; }
.bjtt button.bjtt-svc-lux.is-on .bjtt-svc-t small.bjtt-svc-av { color: #e8cf86; }
.bjtt .bjtt-svc-p { flex: none; padding: 4px 10px; border-radius: 999px; font-weight: 800; font-size: 0.8rem; white-space: nowrap; }
.bjtt .bjtt-svc-std .bjtt-svc-p { background: var(--bj-mist); color: var(--bj-sea); }
.bjtt .bjtt-svc-lux .bjtt-svc-p { background: #1b1f24; color: var(--bj-sun); }
.bjtt button.bjtt-svc-lux.is-on .bjtt-svc-p { background: var(--bj-sun); color: #1b1f24; }
.bjtt .bjtt-svc-info { margin: 8px 2px 0; text-align: right; font-size: 0.88rem; }
.bjtt .bjtt-svc-info a { color: #8a6a12; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.bjtt .bjtt-svc-info a:hover { color: var(--bj-ink); }
.bjtt .bjtt-svc-info a:focus-visible { outline: 3px solid var(--bj-sun); outline-offset: 2px; border-radius: 4px; }
.bjtt .bjtt-luxavail { margin-top: 8px; padding: 8px 12px; font-size: 0.85rem; }
@container bjtt (max-width: 420px) { .bjtt .bjtt-svc-info { text-align: left; } .bjtt .bjtt-svc-p { padding: 3px 8px; font-size: 0.75rem; } }
.bjtt .bjtt-svcs { grid-template-columns: 1fr; gap: 8px; }
.bjtt button.bjtt-svc { padding: 9px 14px; }
.bjtt .bjtt-svc-t b { display: inline; margin-right: 8px; }
.bjtt .bjtt-svc-t small:not(.bjtt-svc-av) { display: inline; }
.bjtt .bjtt-svc-t small.bjtt-svc-av { display: block; }
.bjtt .bjtt-svc-info { margin-top: 6px; }
@container bjtt (max-width: 520px) {
  .bjtt button.bjtt-svc { flex-wrap: wrap; align-items: flex-start; row-gap: 6px; column-gap: 12px; }
  .bjtt .bjtt-svc-t { flex: 1 1 calc(100% - 48px); }
  .bjtt .bjtt-svc-t b { display: block; margin: 0; }
  .bjtt .bjtt-svc-t small:not(.bjtt-svc-av) { display: block; }
  .bjtt .bjtt-svc-p { margin-left: 48px; }
}

/* v3.9.2: Mercedes group-size warning */
.bjtt .bjtt-luxwarn { margin-top: 12px; padding: 14px 16px; border-radius: 14px; background: #fff1ec; border: 2px solid #e4572e; animation: bjtt-pop .35s cubic-bezier(.2,.8,.2,1); }
.bjtt .bjtt-luxwarn:focus { outline: none; box-shadow: 0 0 0 3px rgba(228,87,46,.25); }
.bjtt .bjtt-luxwarn p { margin: 0 0 10px; color: var(--bj-ink); line-height: 1.45; }
.bjtt .bjtt-luxwarn b { color: #b33a17; }
.bjtt button.bjtt-luxwarn-go { background: var(--bj-sea); color: #fff; border: 0; min-height: 44px; padding: 10px 18px; border-radius: 999px; font-weight: 800; cursor: pointer; }
.bjtt button.bjtt-luxwarn-go:hover { background: var(--bj-ink); }
@media (prefers-reduced-motion: reduce) { .bjtt .bjtt-luxwarn { animation: none; } }
