/* Oct 7 booking audit repair. A compact task shell keeps the accepted Jost,
   celebration and price hierarchy. Scoped selectors leave chat/receipt paint
   owners intact, including RGB strokes required by html2canvas. */
.booking-page.booking-journey {
  --journey-ink:#182b25; --journey-green:#173f32; --journey-gold:#e4c77c;
  --journey-paper:#fffdf7; --journey-line:#aca38b;
  padding:24px 18px; background-color:#eae6db;
}
.booking-journey .booking-container {max-width:880px;padding:28px 34px;border:2px solid #ada38b;border-radius:20px}
.booking-journey .booking-header {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 22px;padding:0 0 22px;border-bottom:2px solid #c0b69e}
.booking-journey .header-flex-center {display:flex;flex:1;align-items:center;gap:14px;margin:0;min-width:0}
.booking-journey .logo-container {flex:0 0 54px;width:54px;height:54px;padding:0;border:2px solid #987b35}
.booking-journey .header-title {font-size:26px;margin:0 0 3px;line-height:1.12}
.booking-journey .header-subtitle {font-size:13px;line-height:1.4;margin:0;color:#393c32}
.booking-journey .header-description {font-size:15px;line-height:1.4;margin:7px 0 0;color:#42483d}
.booking-journey .contact-info {flex:0 0 auto;margin:0}
.booking-journey .booking-whatsapp-button {min-height:46px;padding:10px 13px;border:2px solid #214c38;font-size:14px}
.booking-journey .progress-container {margin:0 0 24px;padding:0}
.booking-journey .step-dots {display:grid;align-items:stretch;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:0}
.booking-journey .step-dot {display:flex;flex-direction:row;align-items:center;gap:8px;padding:0 0 12px;border-bottom:3px solid #b4ae9c;min-height:48px;border-radius:0;background:none;box-shadow:none}
.booking-journey .step-dot-circle {position:relative;box-sizing:border-box;flex:0 0 28px;line-height:1;width:28px;height:28px;min-width:28px;margin:0;border:2px solid #7e806f;font-size:14px;box-shadow:none;background:#fffdf7;color:#354135}
.booking-journey .step-dot.active {border-color:#8b6a20;background:none;box-shadow:none}
.booking-journey .step-dot.active .step-dot-circle {background:#173f32;color:#fff5d8;border-color:#173f32}
.booking-journey .step-dot.completed {border-color:#487052}
.booking-journey .step-dot.completed .step-dot-circle {background:#e1eddc;border-color:#487052;color:#143a28}
.booking-journey .step-dot-label {font-size:14px;line-height:1.25;overflow-wrap:normal;word-break:normal;color:#374537}
.booking-journey .step-dot.active .step-dot-label {color:#1c3327;font-weight:750}
/* One progress system: the four stages carry progress; don't restore a second
   percentage/bar that duplicates it and pushes the first task offscreen. */
.booking-journey .step-connector,.booking-journey .progress-bar-wrapper {display:none}
.booking-journey .step-title {font-size:28px;line-height:1.2;margin-bottom:22px;gap:12px}
.booking-journey .booking-section-icon {background:#e6e9d8;border:2px solid #6c7658;color:#263e2b}
.booking-journey :is(.form-input,.form-select,.form-textarea) {border-width:2px;border-color:#8c907e;background:#fffefb;box-shadow:inset 0 2px 3px #1635240a}
.booking-journey .form-label {font-size:16px;color:#29382b}
.booking-journey #selectedBikeHeader {border:2px solid #78856b;background:linear-gradient(125deg,#fffef9,#e9ecd9);box-shadow:0 4px 0 #b8bea3,0 10px 22px -16px #15332166;padding:18px}
.booking-journey .bike-selector-item.selected {border-color:#244f34!important;box-shadow:inset 5px 0 #244f34,0 3px 8px #163b2626!important}
.booking-journey .bike-selector-item.selected::after {content:'✓';display:grid!important;place-items:center;position:absolute;inset:10px 10px auto auto;width:26px;height:26px;border-radius:50%;background:#173f32;color:#fff5d8;border:2px solid #f4e5b4;font:750 17px/1 var(--booking-font);box-shadow:none;animation:none}
.booking-journey .bike-selector-item.selected .bike-picker-info {padding-inline-end:25px}
.booking-journey .journey-field-section {margin:24px 0;padding:24px;border:2px solid #a9af98;border-radius:14px;background:linear-gradient(130deg,#fffefb,#f3f3e8);box-shadow:0 4px 0 #e0dfcd}
.booking-journey .journey-section-title {font-size:21px;line-height:1.3;color:#24422e;margin:0 0 18px}
.booking-journey .journey-field-section>.form-group:last-child {margin-bottom:0}
.booking-journey .journey-document-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.booking-journey .journey-document-grid .form-group {margin:0;padding:16px;border:2px solid #a9af98;border-radius:10px;background:#fffefb}
.booking-journey .journey-documents:not(:has(.form-group:not([hidden]):not(.hidden))) {display:none}
.booking-journey .journey-help {margin:0 0 16px;color:#42483d;font-size:15px;line-height:1.5}
.booking-journey .emergency-contact-section {border:2px solid #b77c64!important;background:#fff5ee!important;box-shadow:0 4px 0 #ead5c4}
.booking-journey .journey-trip {display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 18px;margin:0 0 24px;border:2px solid #6e8569;border-radius:12px;background:#e8eddf;box-shadow:0 3px 0 #c6d0b8}
.booking-journey .journey-trip[hidden] {display:none}
.booking-journey .journey-trip-content {min-width:0;flex:1}
.booking-journey .journey-vehicle {display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;align-items:center;padding:0 0 22px}
.booking-journey .journey-vehicle-photo {width:100%;height:126px;object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 4px 12px #0b281826}
.booking-journey .journey-vehicle-name {font-size:27px;line-height:1.2;overflow-wrap:anywhere;min-width:0}
.booking-journey .journey-vehicle-compact {display:flex;gap:12px;padding:0}
.booking-journey .journey-vehicle-compact .journey-vehicle-photo {width:68px;height:46px;flex:0 0 68px;box-shadow:none}
.booking-journey .journey-vehicle-compact .journey-vehicle-name {font-size:18px;color:#203c2b}
.booking-journey .journey-trip-dates {margin:5px 0 0;color:#3c513d;font-size:14px;line-height:1.4;font-variant-numeric:tabular-nums}
.booking-journey .journey-text-button {display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;max-width:100%;padding:9px 12px;font:650 15px/1.4 var(--booking-font);color:#21472e;border:2px solid #6d7e5f;border-radius:7px;background:#fffef7;text-decoration:none;text-align:center;white-space:normal;overflow-wrap:anywhere;cursor:pointer;box-shadow:0 2px 0 #bec6ab}
.booking-journey .journey-text-button:hover {background:#eaf0dc;border-color:#254830}
.booking-journey .journey-text-button:active {transform:translateY(1px);box-shadow:none}
.booking-journey .journey-terms-toolbar {display:flex;align-items:center;justify-content:space-between;gap:20px;margin:0 0 16px}
.booking-journey .journey-terms-toolbar .journey-help {margin:0;flex:1}
.booking-journey #termsContainer {border:2px solid #888e78!important;scrollbar-color:#6b755a #ececde;overscroll-behavior:auto;scroll-padding:16px}
.booking-journey #termsContainer.journey-expanded {max-height:none!important;overflow:visible!important}
.booking-journey .signature-pad-container {border:2px solid #748364!important;box-shadow:0 4px 0 #dce2cb,inset 0 1px 0 #fff}
.booking-journey .review-section {border:2px solid #a4aa92;padding:22px;border-radius:14px;background:#fffef8;box-shadow:0 4px 0 #dfdfcc;margin:0 0 22px}
.booking-journey .journey-review-heading {display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.booking-journey .journey-review-heading .review-section-title {margin:0;font-size:21px;color:#28412b}
.booking-journey .review-item {display:grid!important;grid-template-columns:minmax(88px,.8fr) minmax(0,1.2fr);gap:14px;padding:11px 0;border-bottom:1px solid #c3c8b4;align-items:start}
.booking-journey .review-item:last-child {border-bottom:0}
.booking-journey .review-label {font-size:15px;line-height:1.45;color:#45503e;font-weight:500}
.booking-journey .review-value {font-size:16px;line-height:1.45;color:#172c22;font-weight:650;text-align:end;min-width:0;overflow-wrap:anywhere}
.booking-journey .pricing-review .pricing-total {background:#173f32!important;color:#fff8df;padding:16px;border-radius:9px;border:0;margin-top:12px}
.booking-journey .pricing-review .pricing-total :is(.review-label,.review-value) {color:#fff8df!important}
.booking-journey .step-navigation {display:flex;flex-direction:row!important;gap:12px;margin-top:24px;padding:16px 0 4px;border-top:2px solid #a6ac91;align-items:stretch}
.booking-journey .step-navigation.hidden {display:none!important}
.booking-journey .step-navigation .btn {font-size:16px;line-height:1.35;min-height:52px;padding:12px 18px;border-width:2px}
.booking-journey .step-navigation #prevBtn {flex:0 1 auto!important;min-width:80px;background:#fffdf6;color:#24422e;border-color:#849171}
.booking-journey .step-navigation :is(#nextBtn,#submitBtn) {background:linear-gradient(150deg,#254f3b,#17392d);color:#fff4d2;border:2px solid #173b2c;box-shadow:0 3px 0 #0b291d,0 8px 18px -12px #19392588}
.booking-journey .step-navigation :is(#nextBtn,#submitBtn):hover {background:#17392d;color:#fff9e7}
.booking-journey[data-booking-step="5"] .header-description,.booking-journey[data-booking-step="6"] .header-description {display:none}
.booking-journey :is(#successStep,#staffSuccessStep) .success-container {padding-top:8px}
.booking-journey :is(#successStep,#staffSuccessStep) .success-icon {width:78px;height:78px;margin:4px auto 20px}
.booking-journey #successStep .success-title {font-size:clamp(30px,5vw,43px);line-height:1.12;letter-spacing:-.015em!important;color:#213d2a;margin-bottom:12px}
.booking-journey #successStep .success-subtitle {font-size:21px;line-height:1.4;color:#354b35;margin:0 0 14px}
.booking-journey .journey-status {display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;line-height:1.45;color:#614e1c;margin:0 auto 24px;max-width:100%}
.booking-journey .journey-status-dot {width:9px;height:9px;flex:0 0 9px;background:#8b6717;border-radius:50%;box-shadow:0 0 0 4px #f0e2b8}
.booking-journey #successStep .success-booking-summary {margin:22px 0;padding:24px;border:2px solid #233f2d;background:linear-gradient(130deg,#244c3a,#152f25);box-shadow:0 5px 0 #aab296,0 14px 30px -22px #0c281c99;color:#fff9e8}
.booking-journey #successStep .success-booking-summary .summary-title {text-align:start;color:#edda9e;font-size:15px;font-weight:600;margin:0 0 18px}
.booking-journey #successStep .success-booking-summary .journey-vehicle-name {color:#fff9e8;font-size:27px}
.booking-journey #successStep .journey-facts {margin:0;padding:0}
.booking-journey #successStep .journey-fact {display:grid;grid-template-columns:minmax(95px,.8fr) minmax(0,1.2fr);gap:14px;padding:11px 0;border-top:1px solid #779077;align-items:start}
.booking-journey #successStep .journey-fact :is(dt,dd) {font-size:15px;line-height:1.5;margin:0;min-width:0;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.booking-journey #successStep .journey-fact dt {color:#d9e5cb;font-weight:450}
.booking-journey #successStep .journey-fact dd {color:#fff9e8;font-weight:600;text-align:end}
.booking-journey #successStep .journey-money {margin:8px -10px;padding:4px 10px;border-radius:8px;background:#0e291f}
.booking-journey #successStep .journey-total dd {font-size:22px;color:#f4daa0}
.booking-journey #successStep .journey-contact-facts {margin-top:12px}
.booking-journey #successStep .success-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}
.booking-journey #successStep .success-actions .btn {min-height:50px;padding:12px;font-size:15px;border-width:2px}
.booking-journey #successStep .success-notes {margin:24px 0;padding:22px;text-align:start;border:2px solid #9da98a;background:#f1f3e7;box-shadow:inset 0 4px 0 #d8c07e}
.booking-journey #successStep .success-notes :is(p,li) {text-align:start;max-width:none;color:#3d4b36;line-height:1.55;font-size:15px}
.booking-journey #successStep .success-notes li {padding:10px 0;border-bottom:1px solid #bdc4ac}
.booking-journey #successStep .success-notes li:last-child {border:0}
.booking-journey #successStep .success-notes strong {color:#233f2d}
.booking-journey #successStep .cashback-offer {margin:28px 0 8px;padding:22px;border:2px solid #ac8a39;border-radius:14px;background:linear-gradient(140deg,#fff6d9,#ead69c);box-shadow:0 4px 0 #c8af68,0 12px 24px -18px #68502455;text-align:center}
.booking-journey #successStep .cashback-title {font-size:13px;margin-bottom:14px}
.booking-journey #successStep .cashback-amount-box {padding:16px;margin-bottom:16px;border-width:2px}
.booking-journey #successStep .cashback-amount {font-size:35px}
.booking-journey #successStep .cashback-description {font-size:15px;line-height:1.6;color:#44381d}
.booking-journey #successStep .cashback-stars {margin:14px auto;padding-top:12px;font-size:14px;color:#51401b}
.booking-journey #successStep .cashback-offer>.journey-text-button {background:#fff9e9;color:#433414;border-color:#8c7235}
.booking-journey #staffSuccessStep #staffSummaryContent>div>div {grid-template-columns:minmax(80px,.8fr) minmax(0,1.2fr)!important;text-align:start;gap:14px}
.booking-journey #staffSuccessStep #staffSummaryContent>div>div>span {text-align:end}
@media(max-width:700px) {
  .booking-page.booking-journey {padding:12px 10px}
  .booking-journey .booking-container {padding:20px 18px;border-radius:16px}
  .booking-journey .booking-header {gap:12px;padding-bottom:18px;margin-bottom:18px}
  .booking-journey .header-title {font-size:23px}
  .booking-journey .header-subtitle {font-size:12px}
  .booking-journey .logo-container {width:44px;height:44px;flex-basis:44px}
  .booking-journey .header-flex-center {gap:10px}
  .booking-journey .booking-whatsapp-button {width:44px;min-height:44px;padding:8px}
  .booking-journey .booking-whatsapp-button>span {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .booking-journey .step-dots {gap:8px}
  .booking-journey .step-dot {flex-direction:column;align-items:center;text-align:center;gap:7px;padding-bottom:10px;justify-content:flex-start;min-height:0}
  .booking-journey .step-dot-label {font-size:13px;line-height:1.3}
  .booking-journey .step-title {font-size:25px;margin-bottom:20px}
  .booking-journey .journey-field-section {padding:18px;margin:22px 0}
  .booking-journey .journey-document-grid {grid-template-columns:minmax(0,1fr)}
  .booking-journey .journey-trip {gap:10px;padding:12px;margin-bottom:20px}
  .booking-journey .journey-trip .journey-text-button {padding:8px;flex:0 0 auto}
  .booking-journey .journey-vehicle-compact .journey-vehicle-name {font-size:17px}
  .booking-journey .journey-trip-dates {font-size:13px}
  .booking-journey .journey-terms-toolbar {align-items:stretch;flex-direction:column;gap:12px}
  .booking-journey .journey-terms-toolbar .journey-text-button {align-self:flex-start}
  .booking-journey .review-section {padding:16px}
  .booking-journey .review-item {grid-template-columns:minmax(85px,.85fr) minmax(0,1.15fr);gap:12px}
  .booking-journey .review-label {font-size:14px}
  .booking-journey .review-value {font-size:15px}
  .booking-journey .journey-review-heading .review-section-title {font-size:20px}
  /* Reserve a real support slot: the original chat control must not obscure
     either navigation or input, including long translated button labels. */
  .booking-journey .step-navigation {position:sticky;bottom:0;padding:12px 54px calc(12px + env(safe-area-inset-bottom)) 0!important;margin-top:24px;background:#fffdf7;border-top:2px solid #a6ac91;z-index:20;gap:9px;box-shadow:0 -10px 16px -14px #39442d88}
  .booking-journey .step-navigation .btn {padding:10px 12px;min-height:50px;font-size:15px}
  .booking-journey .step-navigation #prevBtn {min-width:62px;padding:10px}
  .booking-journey #bookingChatWidget {right:22px!important;bottom:26px!important}
  .booking-journey #successStep .success-booking-summary {padding:18px}
  .booking-journey .journey-vehicle {grid-template-columns:105px minmax(0,1fr);gap:15px;padding-bottom:18px}
  .booking-journey .journey-vehicle-photo {height:85px}
  .booking-journey #successStep .success-booking-summary .journey-vehicle-name {font-size:22px}
  .booking-journey #successStep .journey-fact {grid-template-columns:minmax(85px,.8fr) minmax(0,1.2fr);gap:12px;padding:10px 0}
  .booking-journey #successStep .journey-fact :is(dt,dd) {font-size:14px}
  .booking-journey #successStep .journey-total dd {font-size:20px}
  .booking-journey #successStep .success-actions {gap:10px}
  .booking-journey #successStep .success-actions .btn {font-size:14px;padding:11px 9px}
  .booking-journey #successStep .success-notes {padding:18px}
}
@media(max-width:360px) {
  .booking-journey .booking-container {padding:17px 13px}
  .booking-journey .header-description {font-size:14px}
  .booking-journey .logo-container {width:36px;height:36px;flex-basis:36px}
  .booking-journey .step-dot-label {font-size:12px}
  .booking-journey .journey-field-section {padding:14px}
  .booking-journey .journey-vehicle-compact .journey-vehicle-photo {display:none}
  .booking-journey #successStep .success-title {font-size:29px}
  .booking-journey .journey-vehicle {grid-template-columns:88px minmax(0,1fr);gap:12px}
  .booking-journey #successStep .success-booking-summary .journey-vehicle-name {font-size:20px}
  .booking-journey .step-navigation .btn {font-size:14px;padding:10px 8px}
  .booking-journey .step-navigation #prevBtn {min-width:54px}
}
@media(prefers-reduced-motion:reduce) {
  .booking-journey .journey-text-button {transition:none;transform:none}
}
@media(forced-colors:active) {
  .booking-journey :is(.journey-text-button,.journey-field-section,.journey-trip,.success-booking-summary,.journey-fact) {border-color:CanvasText!important}
}

/* Existing restoration rules intentionally centered the old masthead. The
   compact header changes that owner explicitly instead of shrinking its type. */
.booking-page.booking-journey .header-flex-center {flex-direction:row!important;justify-content:flex-start!important}
.booking-page.booking-journey .header-text-center {text-align:start!important}
.booking-page.booking-journey .header-title,.booking-page.booking-journey .header-subtitle,.booking-page.booking-journey .header-description {text-align:start!important}
.booking-page.booking-journey .step-dots {padding:0!important;background:none!important;border:0!important;box-shadow:none!important;border-radius:0}
.booking-page.booking-journey .step-dot {border:0!important;border-bottom:3px solid #b4ae9c!important;background:none!important;box-shadow:none!important}
.booking-page.booking-journey .step-dot.active {border-bottom-color:#8b6a20!important}
.booking-page.booking-journey .step-dot.completed {border-bottom-color:#487052!important}

/* Active-label legacy emphasis must not outgrow the other translated stages.
   Long words wrap inside their own column; every stage stays readable. */
.booking-page.booking-journey .step-dot .step-dot-label,
.booking-page.booking-journey .step-dot.active .step-dot-label {font-size:14px!important;line-height:1.35!important;overflow-wrap:anywhere;hyphens:auto;min-width:0;max-width:100%}
.booking-page.booking-journey .journey-price-pending {font-size:16px;color:#fff5d8;line-height:1.5;border-top:1px solid #779077;padding-top:16px}
@media(max-width:700px) {
 .booking-page.booking-journey .step-dot .step-dot-label,
 .booking-page.booking-journey .step-dot.active .step-dot-label {font-size:13px!important}
}

/* Keep the full amount together at narrow widths; the label may wrap, the
   currency/amount must remain one readable figure (390px review regression). */
@media(max-width:700px) {
 .booking-page.booking-journey .pricing-review .pricing-total,
 .booking-page.booking-journey #successStep .journey-total {grid-template-columns:minmax(0,1fr) auto!important;gap:10px}
 .booking-page.booking-journey .pricing-review .pricing-total .review-value,
 .booking-page.booking-journey #successStep .journey-total dd {font-size:clamp(18px,5vw,22px)!important;white-space:nowrap;line-height:1.35}
 .booking-page.booking-journey .pricing-review .pricing-total .review-label {font-size:14px!important}
}

/* Legacy flex-wrap plus a 144px basis stacked Back above Continue at320px.
   Keep both actions in the same row and let their translated text wrap. */
@media(max-width:700px) {
 .booking-page.booking-journey .step-navigation {flex-wrap:nowrap!important}
 .booking-page.booking-journey .step-navigation :is(#nextBtn,#submitBtn) {flex:1 1 0%!important;min-width:0;width:auto!important}
}

/* Review Edit is a real44px+ target; flex shrink must not split its short
   label into "Edi/t" beside a two-line terms heading at320px. */
.booking-page.booking-journey .journey-review-heading .journey-text-button {flex:0 0 auto;min-width:48px;max-width:50%}
.booking-page.booking-journey .journey-review-heading .review-section-title {min-width:0;overflow-wrap:anywhere}

/* Unknown-price review has a value-only row. It is explanatory copy, not
   a label/value pair; preserve the full row rather than a narrow first cell. */
.booking-page.booking-journey .review-item>.review-value:only-child {grid-column:1 / -1;text-align:start}

/* Oct 7 phone alignment: grid items must stretch to the tallest translated
   label. Center mobile columns intrinsically; per-label heights/offsets move
   the circles and underline baselines when a label wraps. Keep every check in
   its circle, independent of font metrics or the hidden original emoji. */
.booking-page.booking-journey .step-dot-circle {box-shadow:none}
.booking-page.booking-journey .step-dot.completed .step-dot-circle::after {
 position:absolute;inset:0;margin:auto;display:grid;place-items:center;
 width:1em;height:1em;line-height:1;text-align:center;
}
/* Every hard circular layer shares the medallion center; an offset solid
   shadow reads as another off-center ring even when the check is centered. */
.booking-page.booking-journey :is(#successStep,#staffSuccessStep) .success-icon {
 box-shadow:inset 0 0 0 6px #fffaf0,inset 0 0 0 7px #dcc68d,
  0 0 0 4px #d9c49255,0 0 24px -8px #81632366;
}
.booking-page.booking-journey :is(#successStep,#staffSuccessStep) .success-icon::before {
 position:absolute;inset:0;margin:auto;
}
/* The short-rental contact belongs to the centered notice/action group,
   independent of the form's left-aligned fields and of translated text width. */
.booking-page.booking-journey .rental-minimum-contact {
 display:flex;width:fit-content;max-width:100%;margin-inline:auto;
 justify-content:center;align-items:center;text-align:center;
}
