/* TaxiZone 1.3.52 — canonical booking UI surface.
 * One authoritative rule set for the booking form. Legacy booking color/layout
 * patches are intentionally removed from style.css to prevent cascade conflicts.
 */
section.taxizone-hero-booking .taxizone-hero-form,
section.taxizone-hero-booking .taxizone-hero-form *{box-sizing:border-box;}

/* Tabs: inactive white/black, active TaxiZone yellow/black. */
section.taxizone-hero-booking .tz-booking-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  visibility:visible!important;
  opacity:1!important;
}
section.taxizone-hero-booking button.tz-booking-tab{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  min-width:0!important;
  min-height:64px!important;
  align-items:center!important;
  justify-content:center!important;
  flex-direction:column!important;
  gap:3px!important;
  margin:0!important;
  padding:9px 10px!important;
  background:#fff!important;
  color:#111!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
  text-shadow:none!important;
}
section.taxizone-hero-booking button.tz-booking-tab .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab small{
  display:block!important;
  color:#111!important;
}
section.taxizone-hero-booking[data-active-mode="private"] button.tz-booking-tab[data-mode="private"],
section.taxizone-hero-booking[data-active-mode="flight"] button.tz-booking-tab[data-mode="flight"],
section.taxizone-hero-booking[data-active-mode="company"] button.tz-booking-tab[data-mode="company"],
section.taxizone-hero-booking button.tz-booking-tab.is-active,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"]{
  background:#F5C400!important;
  color:#111!important;
  border:0!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking[data-active-mode="private"] button.tz-booking-tab[data-mode="private"] .tz-tab-title,
section.taxizone-hero-booking[data-active-mode="private"] button.tz-booking-tab[data-mode="private"] small,
section.taxizone-hero-booking[data-active-mode="flight"] button.tz-booking-tab[data-mode="flight"] .tz-tab-title,
section.taxizone-hero-booking[data-active-mode="flight"] button.tz-booking-tab[data-mode="flight"] small,
section.taxizone-hero-booking[data-active-mode="company"] button.tz-booking-tab[data-mode="company"] .tz-tab-title,
section.taxizone-hero-booking[data-active-mode="company"] button.tz-booking-tab[data-mode="company"] small,
section.taxizone-hero-booking button.tz-booking-tab.is-active .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab.is-active small,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] small{color:#111!important;}

/* White booking fields. */
section.taxizone-hero-booking .tz-field-from .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-to .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-date .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-time .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-passengers .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field>textarea,
section.taxizone-hero-booking .tz-field>input:not([type=radio]):not([type=checkbox]),
section.taxizone-hero-booking .taxizone-extra-dropdown summary{
  background:#fff!important;
  background-color:#fff!important;
  color:#111!important;
  border:1px solid #cfd4da!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .tz-field-from .taxizone-field-wrap>input,
section.taxizone-hero-booking .tz-field-to .taxizone-field-wrap>input,
section.taxizone-hero-booking .tz-field-date .taxizone-field-wrap>input,
section.taxizone-hero-booking .tz-field-time .taxizone-field-wrap>input,
section.taxizone-hero-booking .tz-field-passengers .taxizone-field-wrap>select,
section.taxizone-hero-booking .tz-field-passengers .taxizone-passenger-trigger{
  background:transparent!important;
  color:#111!important;
  border:0!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .taxizone-field-wrap input::placeholder,
section.taxizone-hero-booking .taxizone-hero-form input::placeholder,
section.taxizone-hero-booking .taxizone-hero-form textarea::placeholder{color:#6f7680!important;opacity:1!important;}
section.taxizone-hero-booking .tz-field-date .taxizone-field-wrap>input,
section.taxizone-hero-booking .tz-field-time .taxizone-field-wrap>input{color-scheme:light!important;}
section.taxizone-hero-booking .taxizone-field-wrap:focus-within,
section.taxizone-hero-booking .tz-field>textarea:focus,
section.taxizone-hero-booking .tz-field>input:focus{border-color:#F5C400!important;box-shadow:0 0 0 2px rgba(245,196,0,.14)!important;outline:0!important;}

/* Vehicle cards: selected yellow/black, unselected white/black. */
section.taxizone-hero-booking .taxizone-vehicle-card{
  position:relative!important;
  background:#fff!important;
  background-color:#fff!important;
  color:#111!important;
  border:1px solid #cfd4da!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card strong,
section.taxizone-hero-booking .taxizone-vehicle-card small,
section.taxizone-hero-booking .taxizone-vehicle-card .taxizone-vehicle-content{color:#111!important;}
section.taxizone-hero-booking .taxizone-vehicle-card.active,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked){
  background:#F5C400!important;
  background-color:#F5C400!important;
  color:#111!important;
  border:1px solid #F5C400!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card.active strong,
section.taxizone-hero-booking .taxizone-vehicle-card.active small,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked) strong,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked) small{color:#111!important;}
section.taxizone-hero-booking .taxizone-vehicle-card.active .taxizone-car-icon:before{color:#111!important;}

/* Google predictions: one readable light dropdown. */
section.taxizone-hero-booking .taxizone-address-wrap{position:relative!important;}
section.taxizone-hero-booking .taxizone-google-suggestions,
section.taxizone-hero-booking .pac-container{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:calc(100% + 4px)!important;
  z-index:2147483647!important;
  display:block;
  background:#fff!important;
  color:#111!important;
  border:1px solid #d5d9de!important;
  border-top:2px solid #F5C400!important;
  border-radius:0 0 10px 10px!important;
  box-shadow:0 12px 30px rgba(0,0,0,.18)!important;
  overflow:hidden!important;
}
section.taxizone-hero-booking .taxizone-google-suggestions[hidden]{display:none!important;}
section.taxizone-hero-booking .taxizone-google-suggestion,
section.taxizone-hero-booking .pac-item{
  width:100%!important;
  display:block!important;
  background:#fff!important;
  color:#111!important;
  border:0!important;
  border-bottom:1px solid #eceff2!important;
  padding:12px 14px!important;
  text-align:left!important;
}
section.taxizone-hero-booking .taxizone-google-suggestion:hover,
section.taxizone-hero-booking .taxizone-google-suggestion:focus,
section.taxizone-hero-booking .pac-item:hover,
section.taxizone-hero-booking .pac-item-selected{background:#fff8d6!important;color:#111!important;}
section.taxizone-hero-booking .taxizone-google-attribution{padding:7px 12px!important;background:#fff!important;color:#6f7680!important;font-size:11px!important;text-align:right!important;}

/* Keep dropdowns/Google suggestions visible outside field wrappers. */
section.taxizone-hero-booking .taxizone-field-wrap{overflow:visible!important;}

/* Final form geometry. */
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{padding-left:20px!important;padding-right:20px!important;}
section.taxizone-hero-booking .tz-booking-price-bottom{border-top:1px solid #e2e5e8!important;}
section.taxizone-hero-booking button#tz-hero-submit.taxizone-book-button{background:#F5C400!important;color:#111!important;border:0!important;}

@media(max-width:767px){
  section.taxizone-hero-booking .tz-booking-tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  section.taxizone-hero-booking button.tz-booking-tab{min-height:60px!important;padding:7px 3px!important;}
  section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{padding-left:14px!important;padding-right:14px!important;}
}

/* TaxiZone 1.3.52 — approved UI contract. Keep this surface stable. */
section.taxizone-hero-booking button.tz-booking-tab,
section.taxizone-hero-booking button.tz-booking-tab:not(.is-active){
  background:#fff!important;color:#111!important;border:0!important;box-shadow:none!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"]{
  background:#F5C400!important;color:#111!important;border:0!important;box-shadow:none!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active * ,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] *{color:#111!important;}
section.taxizone-hero-booking .tz-field-from .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-to .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-date .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-time .taxizone-field-wrap,
section.taxizone-hero-booking .tz-field-passengers .taxizone-field-wrap,
section.taxizone-hero-booking .taxizone-field-wrap>input,
section.taxizone-hero-booking .taxizone-field-wrap>select,
section.taxizone-hero-booking .tz-field>textarea{
  background:#fff!important;background-color:#fff!important;color:#111!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card,
section.taxizone-hero-booking .taxizone-vehicle-card:not(.active){
  background:#fff!important;background-color:#fff!important;color:#111!important;border:1px solid #cfd4da!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card.active,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked){
  background:#F5C400!important;background-color:#F5C400!important;color:#111!important;border-color:#F5C400!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card.active * ,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked) *{color:#111!important;}


/* TaxiZone 1.3.52 — final booking field fallback.
 * These rules intentionally apply to the actual rendered booking fields,
 * not only to the individual field-name wrappers. This prevents legacy/theme
 * rules from restoring the old dark input surface.
 */
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap input,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap select,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-passenger-trigger {
  background:#fff !important;
  background-color:#fff !important;
  color:#111 !important;
  -webkit-text-fill-color:#111 !important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap {
  border:1px solid #cfd4da !important;
  box-shadow:none !important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap input::placeholder,
section.taxizone-hero-booking .taxizone-hero-form input::placeholder,
section.taxizone-hero-booking .taxizone-hero-form textarea::placeholder {
  color:#6f7680 !important;
  -webkit-text-fill-color:#6f7680 !important;
  opacity:1 !important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-vehicle-card.active,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-vehicle-card:has(input:checked) {
  background:#F5C400 !important;
  background-color:#F5C400 !important;
  color:#111 !important;
  border-color:#F5C400 !important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-vehicle-card.active *,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-vehicle-card:has(input:checked) * {
  color:#111 !important;
  -webkit-text-fill-color:#111 !important;
}


/* TaxiZone 1.3.53 — structural UI correction.
 * Keep the three tabs and booking panel on exactly the same horizontal grid.
 * No gaps/divider lines. Inactive tabs are white/black; active is yellow/black.
 * Booking fields keep one stable outer box with a full-width transparent control.
 */
section.taxizone-hero-booking .tz-booking-tabs{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  background:#fff!important;
  border:0!important;
  border-radius:14px 14px 0 0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking button.tz-booking-tab{
  width:100%!important;
  min-width:0!important;
  height:70px!important;
  min-height:70px!important;
  margin:0!important;
  padding:10px 12px!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:3px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  color:#111!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  outline:0!important;
}
section.taxizone-hero-booking button.tz-booking-tab:first-child{border-radius:14px 0 0 0!important;}
section.taxizone-hero-booking button.tz-booking-tab:last-child{border-radius:0 14px 0 0!important;}
section.taxizone-hero-booking button.tz-booking-tab .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab small{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"]{
  background:#F5C400!important;
  color:#111!important;
  border:0!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab.is-active small,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] .tz-tab-title,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] small{
  color:#111!important;
  -webkit-text-fill-color:#111!important;
}

/* Make the white booking panel start/end on the same grid as the tabs. */
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  border-radius:0 0 14px 14px!important;
}

/* Stable outer geometry for the primary fields. */
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap{
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  overflow:visible!important;
  padding:0 14px!important;
  border:1px solid #cfd4da!important;
  border-radius:11px!important;
  background:#fff!important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap input,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap select,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-passenger-trigger{
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  border:0!important;
  background:transparent!important;
  color:#111!important;
  box-shadow:none!important;
  outline:0!important;
}
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap:focus-within{
  border-color:#F5C400!important;
  box-shadow:0 0 0 2px rgba(245,196,0,.14)!important;
}

/* Google/local suggestion lists must sit below the complete field, not change its box. */
section.taxizone-hero-booking .taxizone-address-wrap{
  position:relative!important;
  min-width:0!important;
}
section.taxizone-hero-booking .taxizone-address-wrap .taxizone-field-wrap{
  position:relative!important;
  z-index:2!important;
}
section.taxizone-hero-booking .taxizone-google-suggestions,
section.taxizone-hero-booking .pac-container{
  z-index:2147483647!important;
}

/* Mobile keeps the same contract. */
@media(max-width:767px){
  section.taxizone-hero-booking .tz-booking-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  section.taxizone-hero-booking button.tz-booking-tab{
    height:60px!important;
    min-height:60px!important;
    padding:7px 4px!important;
  }
}


/* TaxiZone 1.3.55 — mode isolation and edge correction.
 * Flight-only controls must be physically hidden outside Flygtaxi mode.
 * The booking surface must not be clipped by the theme/container edge.
 */
section.taxizone-hero-booking [hidden]{
  display:none!important;
}
section.taxizone-hero-booking .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking .tz-flight-direction[hidden],
section.taxizone-hero-booking .tz-flight-label[hidden]{
  display:none!important;
}
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-direction,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-direction{
  display:none!important;
}
section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-to-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-from-wrap{
  display:flex!important;
}

/* Remove the visible clipping/edge line around the tab surface. */
section.taxizone-hero-booking{
  overflow:visible!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-booking-tabs{
  width:100%!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  margin:0!important;
  border:0!important;
  box-sizing:border-box!important;
}


/* =========================================================
   TaxiZone 1.3.58 — FINAL BOOKING FIELD GEOMETRY
   UI only:
   - Flight airport control exists only in Flygtaxi mode.
   - Private/Company use the normal destination field.
   - Field borders are rendered by the outer control only.
   - Inputs cannot cover/clamp the outer border.
   - Booking grid/edges stay inside the available width.
   ========================================================= */

/* Highest-specificity mode isolation: [hidden] must win over mode display rules. */
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-direction[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-direction[hidden]{
  display:none!important;
}

/* Do not let a previous display:flex rule defeat the hidden attribute. */
section.taxizone-hero-booking .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking .tz-flight-direction[hidden],
section.taxizone-hero-booking [hidden]{
  display:none!important;
}

/* Flight selector is a normal field only while Flygtaxi is active. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap:not([hidden]){
  display:flex!important;
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
  align-items:center!important;
  margin:0!important;
  padding:0!important;
  background:#fff!important;
  border:1px solid #cfd4da!important;
  border-radius:11px!important;
  overflow:visible!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap select{
  width:100%!important;
  min-width:0!important;
  height:100%!important;
  margin:0!important;
  padding:0 38px 0 14px!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#111!important;
  box-shadow:none!important;
  outline:0!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}

/* Stable field geometry: one border, one box, no clipped sides/bottom. */
section.taxizone-hero-booking .taxizone-hero-configured-grid{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
  min-width:0!important;
  max-width:100%!important;
  width:auto!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .tz-field > .taxizone-field-wrap{
  position:relative!important;
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  border:1px solid #cfd4da!important;
  border-radius:11px!important;
  overflow:visible!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .tz-field > .taxizone-field-wrap > input,
section.taxizone-hero-booking .tz-field > .taxizone-field-wrap > select{
  position:relative!important;
  z-index:1!important;
  display:block!important;
  flex:1 1 auto!important;
  width:100%!important;
  min-width:0!important;
  height:56px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  box-shadow:none!important;
  outline:0!important;
}
section.taxizone-hero-booking .tz-field > .taxizone-field-wrap:focus-within{
  border-color:#F5C400!important;
  box-shadow:0 0 0 2px rgba(245,196,0,.14)!important;
}

/* Address suggestions float below the field and never resize/reflow it. */
section.taxizone-hero-booking .taxizone-address-wrap,
section.taxizone-hero-booking .tz-field-from,
section.taxizone-hero-booking .tz-field-to{
  position:relative!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-google-suggestions,
section.taxizone-hero-booking .pac-container{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:calc(100% + 4px)!important;
  width:100%!important;
  max-width:none!important;
  z-index:2147483647!important;
}

/* The whole booking surface must not crop its controls at the container edge. */
section.taxizone-hero-booking,
section.taxizone-hero-booking .taxizone-hero-form,
section.taxizone-hero-booking .taxizone-hero-configured-grid{
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-form{
  width:100%!important;
  max-width:1500px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* Keep the desktop five-field row aligned to the available width. */
@media(min-width:1051px){
  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    column-gap:18px!important;
  }
}



/* =========================================================
   TaxiZone 1.4.1 — UI STABILIZATION
   Same plugin, UI fix only.
   - Private/Company: address destination only
   - Flight: airport destination only
   - [hidden] is authoritative
   - One border per field; inputs never paint their own box
   - Grid cannot create clipped field edges
   ========================================================= */

/* The HTML hidden attribute is the single source of truth. */
section.taxizone-hero-booking [hidden],
section.taxizone-hero-booking .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking .tz-flight-direction[hidden],
section.taxizone-hero-booking .tz-flight-label[hidden],
section.taxizone-hero-booking .tz-booking-mode-note[hidden]{
  display:none!important;
}

/* Never allow the airport control in Private or Company, even if an old
   browser/theme rule attempts to display it. */
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-direction,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-direction{
  display:none!important;
}

section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-from-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-to-wrap{
  display:flex!important;
}

/* Flygtaxi: airport destination is the only destination control. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-to-wrap{
  display:none!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap:not([hidden]){
  display:flex!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-from-wrap{
  display:flex!important;
}

/* Stable outer geometry. */
section.taxizone-hero-booking,
section.taxizone-hero-booking .taxizone-hero-form,
section.taxizone-hero-booking .taxizone-hero-configured-grid{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-hero-configured-grid{
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  gap:18px!important;
  align-items:end!important;
}

section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
  min-width:0!important;
  max-width:100%!important;
  width:auto!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

/* Desktop field proportions: 3+3+2+2+2 = 12 columns. */
@media(min-width:1051px){
  section.taxizone-hero-booking .tz-field-from,
  section.taxizone-hero-booking .tz-field-to{
    grid-column:span 3!important;
  }
  section.taxizone-hero-booking .tz-field-date,
  section.taxizone-hero-booking .tz-field-time,
  section.taxizone-hero-booking .tz-field-discount{
    grid-column:span 2!important;
  }
}

/* One visible border: wrapper. */
section.taxizone-hero-booking .taxizone-field-wrap,
section.taxizone-hero-booking .tz-flight-to-wrap{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  position:relative!important;
  overflow:visible!important;
  background:#fff!important;
  border:1px solid #cfd4da!important;
  border-radius:11px!important;
  box-shadow:none!important;
}

section.taxizone-hero-booking .taxizone-field-wrap > input,
section.taxizone-hero-booking .taxizone-field-wrap > select,
section.taxizone-hero-booking .taxizone-passenger-trigger,
section.taxizone-hero-booking .tz-flight-to-wrap > select{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  height:100%!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  box-shadow:none!important;
  outline:0!important;
}

/* Date/time controls keep their native icons but cannot create a second box. */
section.taxizone-hero-booking .tz-field-date input,
section.taxizone-hero-booking .tz-field-time input{
  color-scheme:light!important;
}

/* Discount is also a single outer field. */
section.taxizone-hero-booking .tz-field-discount > input{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  height:58px!important;
  box-sizing:border-box!important;
  margin:0!important;
  padding:0 14px!important;
  background:#fff!important;
  color:#111!important;
  -webkit-text-fill-color:#111!important;
  border:1px solid #cfd4da!important;
  border-radius:11px!important;
  box-shadow:none!important;
  outline:0!important;
}

/* Address suggestions float; they must not change the grid geometry. */
section.taxizone-hero-booking .taxizone-address-wrap,
section.taxizone-hero-booking .tz-field-from,
section.taxizone-hero-booking .tz-field-to{
  position:relative!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-google-suggestions,
section.taxizone-hero-booking .pac-container{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:calc(100% + 4px)!important;
  width:100%!important;
  max-width:100%!important;
  z-index:2147483647!important;
}

/* Tabs: no divider line and no clipping of the active yellow tab. */
section.taxizone-hero-booking .tz-booking-tabs{
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  border:0!important;
  box-shadow:none!important;
  overflow:hidden!important;
}

section.taxizone-hero-booking button.tz-booking-tab{
  min-width:0!important;
  width:100%!important;
  margin:0!important;
  border:0!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}

section.taxizone-hero-booking button.tz-booking-tab.is-active,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"]{
  background:#F5C400!important;
  color:#111!important;
}

/* Responsive: one column, no horizontal overflow. */
@media(max-width:1050px){
  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  section.taxizone-hero-booking .tz-field-from,
  section.taxizone-hero-booking .tz-field-to,
  section.taxizone-hero-booking .tz-field-date,
  section.taxizone-hero-booking .tz-field-time,
  section.taxizone-hero-booking .tz-field-discount,
  section.taxizone-hero-booking .tz-field-name,
  section.taxizone-hero-booking .tz-field-phone,
  section.taxizone-hero-booking .tz-field-email{
    grid-column:span 1!important;
  }
}
@media(max-width:760px){
  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
    grid-column:1/-1!important;
  }
  section.taxizone-hero-booking .tz-booking-tabs{
    grid-template-columns:1fr 1fr 1fr!important;
  }
  section.taxizone-hero-booking button.tz-booking-tab{
    height:64px!important;
    min-height:64px!important;
    padding:8px 4px!important;
  }
}


/* =========================================================
   TaxiZone FINAL FRAME GEOMETRY — UI ONLY
   The booking surface owns the full available frame.
   Tabs span the complete frame.
   Form is always centered; its controls never create a
   right-side orphan/black column or get clipped by a theme
   container.
   ========================================================= */
section.taxizone-hero-booking{
  width:100vw!important;
  max-width:100vw!important;
  min-width:0!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-hero-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}

section.taxizone-hero-booking .tz-booking-tabs{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  box-sizing:border-box!important;
}

section.taxizone-hero-booking .tz-booking-tab{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

/* Center the actual form content while allowing every field
   to use its complete grid track. */
section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
  width:100%!important;
  max-width:1500px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* Never let the field itself shrink below its grid track or
   overflow out of the frame. */
section.taxizone-hero-booking .taxizone-hero-configured-grid{
  min-width:0!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-hero-configured-grid > *{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

@media(max-width:767px){
  section.taxizone-hero-booking{
    width:100%!important;
    max-width:100%!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
    max-width:none!important;
  }
}


/* =========================================================
   TaxiZone FINAL UI GEOMETRY — approved 1–7
   UI/CSS ONLY. Do not alter pricing, booking or Google.
   ========================================================= */

/* 1–2. Admin logo is handled in admin.css. */

/* 3. The three tabs always share exactly the complete booking frame. */
section.taxizone-hero-booking .tz-booking-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  gap:0!important;
  box-sizing:border-box!important;
  overflow:hidden!important;
}
section.taxizone-hero-booking .tz-booking-tab{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:64px!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* 4. One single centered content column inside the booking frame.
   The frame and tabs remain full width; only the form content is centered. */
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
  width:calc(100% - 48px)!important;
  max-width:1500px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

/* 5. Every desktop row uses the same 12-column inner grid.
   1st row: 3+3+2+2+2
   2nd row: 4+3+5
   3rd row: 4+4+4
   Message/price/submit: full width. */
@media(min-width:1051px){
  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    column-gap:18px!important;
    row-gap:18px!important;
    width:calc(100% - 48px)!important;
    max-width:1500px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    min-width:0!important;
    box-sizing:border-box!important;
    align-items:end!important;
  }

  section.taxizone-hero-booking .tz-field-from,
  section.taxizone-hero-booking .tz-field-to{
    grid-column:span 3!important;
  }

  section.taxizone-hero-booking .tz-field-date,
  section.taxizone-hero-booking .tz-field-time,
  section.taxizone-hero-booking .tz-field-discount{
    grid-column:span 2!important;
  }

  section.taxizone-hero-booking .tz-field-vehicle{
    grid-column:span 4!important;
  }

  section.taxizone-hero-booking .tz-field-passengers{
    grid-column:span 3!important;
  }

  section.taxizone-hero-booking .tz-field-extras{
    grid-column:span 5!important;
  }

  section.taxizone-hero-booking .tz-field-name,
  section.taxizone-hero-booking .tz-field-phone,
  section.taxizone-hero-booking .tz-field-email{
    grid-column:span 4!important;
  }

  section.taxizone-hero-booking .tz-field-message{
    grid-column:1/-1!important;
  }
}

/* 6. No field may create horizontal overflow or get clipped. */
section.taxizone-hero-booking,
section.taxizone-hero-booking .taxizone-hero-inner,
section.taxizone-hero-booking .taxizone-hero-form,
section.taxizone-hero-booking .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
  min-width:0!important;
  box-sizing:border-box!important;
}

section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
  width:auto!important;
  max-width:100%!important;
  overflow:visible!important;
}

section.taxizone-hero-booking .taxizone-field-wrap,
section.taxizone-hero-booking .tz-flight-to-wrap,
section.taxizone-hero-booking .tz-field-extras details,
section.taxizone-hero-booking .taxizone-vehicle-group{
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Keep address dropdowns above following rows without changing grid size. */
section.taxizone-hero-booking .taxizone-address-wrap,
section.taxizone-hero-booking .tz-field-from,
section.taxizone-hero-booking .tz-field-to{
  overflow:visible!important;
  position:relative!important;
}

/* 7. No functional selectors or scripts are changed by this block. */

@media(max-width:1050px){
  section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
    width:calc(100% - 32px)!important;
    max-width:none!important;
  }

  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:18px!important;
  }

  section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
    grid-column:span 1!important;
  }

  section.taxizone-hero-booking .tz-field-message{
    grid-column:1/-1!important;
  }
}

@media(max-width:760px){
  section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
    width:calc(100% - 24px)!important;
  }

  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }

  section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field,
  section.taxizone-hero-booking .tz-field-message{
    grid-column:1/-1!important;
  }

  section.taxizone-hero-booking .tz-booking-tabs{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }

  section.taxizone-hero-booking .tz-booking-tab{
    min-height:60px!important;
    padding:7px 4px!important;
  }
}

/* =========================================================
   TaxiZone 1.5.5.3 — FINAL FRAME LOCK
   One booking surface. The tabs and white booking panel use the
   same full viewport frame. The field grid remains centered at
   a maximum of 1500px. This block intentionally comes last.
   ========================================================= */
section.taxizone-hero-booking{
  width:100vw!important;
  max-width:100vw!important;
  min-width:0!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  display:block!important;
  width:100vw!important;
  max-width:100vw!important;
  min-width:0!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:28px 0 24px!important;
  box-sizing:border-box!important;
  background:#fff!important;
  color:#111!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
  width:calc(100% - 48px)!important;
  max-width:1500px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid{
  display:grid!important;
}
@media(max-width:760px){
  section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
    width:100%!important; max-width:100%!important; margin-left:0!important; margin-right:0!important;
    padding:18px 0!important;
  }
  section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
  section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
    width:calc(100% - 24px)!important; max-width:none!important;
  }
}


/* =========================================================
   TaxiZone COLOR CONTRACT — ADMIN CONTROLLED
   Layout is untouched here. These rules only bind the visual
   states to the colors saved in Hero settings.
   ========================================================= */
section.taxizone-hero-booking{
  background:var(--tz-bg,#050607)!important;
}
section.taxizone-hero-booking .tz-booking-tabs{
  background:var(--tz-inactive-tab,#050607)!important;
}
section.taxizone-hero-booking button.tz-booking-tab{
  background:var(--tz-inactive-tab,#050607)!important;
  color:var(--tz-inactive-tab-text,#fff)!important;
}
section.taxizone-hero-booking button.tz-booking-tab *,
section.taxizone-hero-booking button.tz-booking-tab svg{
  color:var(--tz-inactive-tab-text,#fff)!important;
  fill:currentColor!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"]{
  background:var(--tz-yellow,#F5C400)!important;
  color:var(--tz-active-text,#111)!important;
}
section.taxizone-hero-booking button.tz-booking-tab.is-active *,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] *,
section.taxizone-hero-booking button.tz-booking-tab.is-active svg,
section.taxizone-hero-booking button.tz-booking-tab[aria-selected="true"] svg{
  color:var(--tz-active-text,#111)!important;
  fill:currentColor!important;
}
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  background:var(--tz-panel,#fff)!important;
}
section.taxizone-hero-booking .taxizone-field-wrap,
section.taxizone-hero-booking .tz-flight-to-wrap,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap input,
section.taxizone-hero-booking .taxizone-hero-form .taxizone-field-wrap select,
section.taxizone-hero-booking .taxizone-passenger-trigger{
  background:var(--tz-field,#fff)!important;
  color:var(--tz-field-text,#111)!important;
  border-color:var(--tz-field-border,#CFD4DA)!important;
  -webkit-text-fill-color:var(--tz-field-text,#111)!important;
}
section.taxizone-hero-booking .taxizone-field-wrap svg,
section.taxizone-hero-booking .taxizone-field-wrap .taxizone-icon,
section.taxizone-hero-booking .taxizone-field-wrap .taxizone-pin{
  color:var(--tz-field-text,#111)!important;
  fill:currentColor!important;
}
section.taxizone-hero-booking .taxizone-field-wrap:focus-within{
  border-color:var(--tz-active-field,#F5C400)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--tz-active-field,#F5C400) 18%,transparent)!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card:not(.active),
section.taxizone-hero-booking .taxizone-vehicle-card:not(:has(input:checked)){
  background:var(--tz-vehicle-inactive,#fff)!important;
  color:var(--tz-vehicle-text,#111)!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card:not(.active) *,
section.taxizone-hero-booking .taxizone-vehicle-card:not(:has(input:checked)) *{
  color:var(--tz-vehicle-text,#111)!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card.active,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked){
  background:var(--tz-active-field,#F5C400)!important;
  color:var(--tz-active-text,#111)!important;
  border-color:var(--tz-active-field,#F5C400)!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card.active *,
section.taxizone-hero-booking .taxizone-vehicle-card:has(input:checked) *{
  color:var(--tz-active-text,#111)!important;
}

/* =========================================================
   TaxiZone 1.5.5.6 — SINGLE CENTERED BOOKING FRAME
   Authoritative geometry: tabs and white form are ONE frame.
   No right-side orphan panel. No 100vw form escaping the frame.
   ========================================================= */
section.taxizone-hero-booking{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-booking-tabs,
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:calc(100% - 60px)!important;
  max-width:1500px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-booking-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:14px 14px 0 0!important;
}
section.taxizone-hero-booking .tz-booking-tab{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  display:block!important;
  padding:28px 0 24px!important;
  background:var(--tz-panel,#fff)!important;
  color:#111!important;
  border:0!important;
  border-radius:0 0 14px 14px!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
  width:calc(100% - 48px)!important;
  max-width:1500px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
@media(max-width:760px){
  section.taxizone-hero-booking .tz-booking-tabs,
  section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
    width:100%!important;
    max-width:100%!important;
  }
  section.taxizone-hero-booking .taxizone-hero-form > .tz-mode-heading,
  section.taxizone-hero-booking .taxizone-hero-form > .taxizone-hero-configured-grid,
  section.taxizone-hero-booking .taxizone-hero-form > .tz-booking-price-bottom{
    width:calc(100% - 24px)!important;
  }
}


/* =========================================================
   TaxiZone BOOKING FRAME + GRID — AUTHORITATIVE GEOMETRY
   Geometry only. Do not mix with pricing/booking logic.
   ========================================================= */
section.taxizone-hero-booking{
  overflow-x:hidden!important;
}

section.taxizone-hero-booking .taxizone-hero-inner{
  width:100%!important;
  max-width:1200px!important;
  margin:0 auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}

section.taxizone-hero-booking .tz-booking-tabs{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin:0!important;
  padding:24px 38px 24px!important;
  box-sizing:border-box!important;
  overflow:visible!important;
  border-radius:0 0 14px 14px!important;
}

/* Every form row uses the same inner width. */
section.taxizone-hero-booking .taxizone-hero-configured-grid{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(12,minmax(0,1fr))!important;
  column-gap:16px!important;
  row-gap:16px!important;
  box-sizing:border-box!important;
  align-items:end!important;
}

/* Prevent content from changing the grid track width. */
section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
  min-width:0!important;
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  box-sizing:border-box!important;
}

/* Row 1: From / To / Date / Time / Discount */
section.taxizone-hero-booking .tz-field-from,
section.taxizone-hero-booking .tz-field-to{
  grid-column:span 3!important;
}
section.taxizone-hero-booking .tz-field-date,
section.taxizone-hero-booking .tz-field-time,
section.taxizone-hero-booking .tz-field-discount{
  grid-column:span 2!important;
}

/* Row 2: Vehicle / Passengers / Extras */
section.taxizone-hero-booking .tz-field-vehicle{
  grid-column:span 3!important;
}
section.taxizone-hero-booking .tz-field-passengers{
  grid-column:span 3!important;
}
section.taxizone-hero-booking .tz-field-extras{
  grid-column:span 6!important;
}

/* Row 3: Customer details */
section.taxizone-hero-booking .tz-field-name,
section.taxizone-hero-booking .tz-field-phone,
section.taxizone-hero-booking .tz-field-email{
  grid-column:span 4!important;
}

/* Message */
section.taxizone-hero-booking .tz-field-message{
  grid-column:1 / -1!important;
}

/* Price/submit row stays inside exactly the same inner frame. */
section.taxizone-hero-booking .tz-booking-price-bottom{
  width:100%!important;
  max-width:none!important;
  margin:18px 0 0!important;
  padding:18px 0 0!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(220px,1fr)!important;
  gap:18px!important;
  align-items:end!important;
}

section.taxizone-hero-booking .tz-booking-price-bottom > *{
  min-width:0!important;
  max-width:100%!important;
  box-sizing:border-box!important;
}

/* Vehicle cards fill their assigned vehicle column without overflow. */
section.taxizone-hero-booking .taxizone-vehicle-group{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
section.taxizone-hero-booking .taxizone-vehicle-card{
  min-width:0!important;
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

/* All standard controls use the same box model. */
section.taxizone-hero-booking .taxizone-field-wrap,
section.taxizone-hero-booking .taxizone-hero-configured-grid input,
section.taxizone-hero-booking .taxizone-hero-configured-grid select,
section.taxizone-hero-booking .taxizone-hero-configured-grid textarea,
section.taxizone-hero-booking .taxizone-extra-dropdown{
  max-width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* Tablet */
@media (max-width: 1050px) and (min-width: 761px){
  section.taxizone-hero-booking .taxizone-hero-inner{
    max-width:100%!important;
  }
  section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
    padding-left:24px!important;
    padding-right:24px!important;
  }
  section.taxizone-hero-booking .tz-field-from,
  section.taxizone-hero-booking .tz-field-to{
    grid-column:span 6!important;
  }
  section.taxizone-hero-booking .tz-field-date,
  section.taxizone-hero-booking .tz-field-time,
  section.taxizone-hero-booking .tz-field-discount{
    grid-column:span 4!important;
  }
  section.taxizone-hero-booking .tz-field-vehicle,
  section.taxizone-hero-booking .tz-field-passengers{
    grid-column:span 4!important;
  }
  section.taxizone-hero-booking .tz-field-extras{
    grid-column:span 4!important;
  }
  section.taxizone-hero-booking .tz-field-name,
  section.taxizone-hero-booking .tz-field-phone,
  section.taxizone-hero-booking .tz-field-email{
    grid-column:span 4!important;
  }
}

/* Mobile */
@media (max-width: 760px){
  section.taxizone-hero-booking .taxizone-hero-inner{
    max-width:100%!important;
  }
  section.taxizone-hero-booking .taxizone-hero-form.taxizone-taxi-form{
    padding-left:16px!important;
    padding-right:16px!important;
  }
  section.taxizone-hero-booking .taxizone-hero-configured-grid{
    grid-template-columns:1fr!important;
    gap:14px!important;
  }
  section.taxizone-hero-booking .taxizone-hero-configured-grid > .tz-field{
    grid-column:1 / -1!important;
  }
  section.taxizone-hero-booking .tz-booking-price-bottom{
    grid-template-columns:1fr!important;
  }
}


/* =========================================================
   TaxiZone BOOKING FRAME — STRUCTURAL FIX 1.5.5.11
   The tabs and the booking form are one physical frame.
   The hero itself remains full-width.
   ========================================================= */
section.taxizone-hero-booking{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  box-sizing:border-box!important;
  overflow-x:hidden!important;
}

/* This wrapper is the ONLY width authority for tabs + form. */
section.taxizone-hero-booking .taxizone-booking-frame{
  width:calc(100% - 48px)!important;
  max-width:1200px!important;
  margin:0 auto!important;
  padding:0!important;
  box-sizing:border-box!important;
  min-width:0!important;
}

/* Tabs and white form must be exactly the same width. */
section.taxizone-hero-booking .taxizone-booking-frame .tz-booking-tabs,
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-form.taxizone-taxi-form{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
}

/* Three tabs occupy the complete frame. */
section.taxizone-hero-booking .taxizone-booking-frame .tz-booking-tabs{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:0!important;
  padding:0!important;
  overflow:hidden!important;
  border-radius:14px 14px 0 0!important;
}

/* Form is the complete lower half of the same frame. */
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-form.taxizone-taxi-form{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:26px 36px 24px!important;
  box-sizing:border-box!important;
  border-radius:0 0 14px 14px!important;
  overflow:visible!important;
}

/* All form content shares one inner width. */
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-configured-grid,
section.taxizone-hero-booking .taxizone-booking-frame .tz-mode-heading,
section.taxizone-hero-booking .taxizone-booking-frame .tz-booking-price-bottom{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
  box-sizing:border-box!important;
  min-width:0!important;
}

/* Desktop grid. */
@media (min-width:1051px){
  section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    column-gap:14px!important;
    row-gap:15px!important;
    align-items:end!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-from,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-to{grid-column:span 3!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-date,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-time,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-discount{grid-column:span 2!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-vehicle{grid-column:span 3!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-passengers{grid-column:span 3!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-extras{grid-column:span 6!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-name,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-phone,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-email{grid-column:span 4!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-message{grid-column:1/-1!important;}
}

/* Tablet */
@media (min-width:761px) and (max-width:1050px){
  section.taxizone-hero-booking .taxizone-booking-frame{
    width:calc(100% - 32px)!important;
    max-width:none!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:repeat(12,minmax(0,1fr))!important;
    gap:14px!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-from,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-to{grid-column:span 6!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-date,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-time,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-discount{grid-column:span 4!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-vehicle,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-passengers,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-extras{grid-column:span 4!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-name,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-phone,
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-email{grid-column:span 4!important;}
  section.taxizone-hero-booking .taxizone-booking-frame .tz-field-message{grid-column:1/-1!important;}
}

/* Mobile */
@media (max-width:760px){
  section.taxizone-hero-booking .taxizone-booking-frame{
    width:100%!important;
    max-width:none!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-form.taxizone-taxi-form{
    padding:18px 16px!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:13px!important;
  }
  section.taxizone-hero-booking .taxizone-booking-frame .taxizone-hero-configured-grid > .tz-field{
    grid-column:1/-1!important;
  }
}


/* =========================================================
   TaxiZone 1.5.5.12 — CURRENT UI AUTHORITY
   Presentation only. Pricing, booking, Google and save logic untouched.
   ========================================================= */

/* ---------- TAB ICONS ---------- */
section.taxizone-hero-booking .taxizone-booking-frame .tz-booking-tab{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:2px!important;
  padding:9px 10px!important;
}
section.taxizone-hero-booking .tz-tab-main{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:8px!important;
  line-height:1!important;
}
section.taxizone-hero-booking .tz-tab-icon{
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  display:block!important;
  fill:none!important;
  stroke:currentColor!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
  color:currentColor!important;
}
section.taxizone-hero-booking .tz-booking-tab small{
  display:block!important;
  margin:0!important;
  line-height:1.1!important;
  opacity:.9!important;
}

/* ---------- FORM CONTROLS: ONE CONSISTENT TEXT FIELD ---------- */
section.taxizone-hero-booking .taxizone-booking-frame .tz-field > .taxizone-field-wrap,
section.taxizone-hero-booking .taxizone-booking-frame .tz-field-discount > .taxizone-field-wrap{
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  height:54px!important;
  min-height:54px!important;
  padding:0 15px!important;
  margin:0!important;
  box-sizing:border-box!important;
  background:var(--tz-field,#fff)!important;
  border:1px solid var(--tz-field-border,#cfd4da)!important;
  border-radius:10px!important;
  box-shadow:none!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .tz-field > .taxizone-field-wrap > input,
section.taxizone-hero-booking .taxizone-booking-frame .tz-field > .taxizone-field-wrap > select{
  flex:1 1 auto!important;
  width:100%!important;
  height:52px!important;
  min-width:0!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  outline:0!important;
  background:transparent!important;
  color:var(--tz-field-text,#111)!important;
  -webkit-text-fill-color:var(--tz-field-text,#111)!important;
  font-size:15px!important;
  font-weight:500!important;
  line-height:52px!important;
  box-shadow:none!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .tz-field > .taxizone-field-wrap input::placeholder{
  color:#7d858e!important;
  opacity:1!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .tz-field > .taxizone-field-wrap:focus-within{
  border-color:var(--tz-active-field,#F5C400)!important;
  box-shadow:0 0 0 2px color-mix(in srgb,var(--tz-active-field,#F5C400) 16%,transparent)!important;
}

/* Icons inside the controls stay aligned and never consume the whole field. */
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-field-wrap .taxizone-icon,
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-field-wrap .taxizone-pin{
  flex:0 0 auto!important;
  width:22px!important;
  margin-right:9px!important;
  text-align:center!important;
  color:var(--tz-field-text,#111)!important;
  font-size:15px!important;
  line-height:1!important;
}

/* Date/time native controls: don't let browser styling distort the box. */
section.taxizone-hero-booking .taxizone-booking-frame input[type="date"],
section.taxizone-hero-booking .taxizone-booking-frame input[type="time"]{
  min-width:0!important;
  color-scheme:light!important;
}
section.taxizone-hero-booking .taxizone-booking-frame input[type="date"]::-webkit-calendar-picker-indicator,
section.taxizone-hero-booking .taxizone-booking-frame input[type="time"]::-webkit-calendar-picker-indicator{
  opacity:.85!important;
  cursor:pointer!important;
}

/* Passenger control is visually identical to the other controls. */
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-passenger-control{
  padding:0!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-passenger-trigger{
  width:100%!important;
  height:52px!important;
  padding:0 15px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  background:transparent!important;
  border:0!important;
  color:var(--tz-field-text,#111)!important;
  font-size:15px!important;
  font-weight:500!important;
  box-shadow:none!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-passengers-native{
  display:none!important;
}

/* Extras must have the same outer height/border as every other field. */
section.taxizone-hero-booking .taxizone-booking-frame .tz-field-extras details,
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-extra-dropdown{
  width:100%!important;
  height:54px!important;
  min-height:54px!important;
  box-sizing:border-box!important;
  background:var(--tz-field,#fff)!important;
  border:1px solid var(--tz-field-border,#cfd4da)!important;
  border-radius:10px!important;
  margin:0!important;
  padding:0!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-extra-dropdown > summary{
  height:52px!important;
  padding:0 15px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  box-sizing:border-box!important;
  color:var(--tz-field-text,#111)!important;
  font-size:15px!important;
  font-weight:500!important;
  cursor:pointer!important;
}
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-extra-dropdown > summary::-webkit-details-marker{display:none!important;}

/* Vehicle cards: same visual language, but remain cards. */
section.taxizone-hero-booking .taxizone-booking-frame .taxizone-vehicle-card{
  min-height:88px!important;
  border-radius:10px!important;
  padding:14px!important;
  box-sizing:border-box!important;
}

/* ---------- HERO: let copy and cars breathe toward their edges ---------- */
section.taxizone-hero-booking .taxizone-hero-inner{
  position:relative!important;
  overflow:visible!important;
}
section.taxizone-hero-booking .taxizone-hero-copy{
  transform:translateX(-22px)!important;
}
section.taxizone-hero-booking .taxizone-hero-visual{
  right:-7%!important;
  transform:scale(1.04)!important;
  transform-origin:right bottom!important;
}

/* Mobile: do not push content outside viewport. */
@media(max-width:760px){
  section.taxizone-hero-booking .taxizone-hero-copy{
    transform:none!important;
  }
  section.taxizone-hero-booking .taxizone-hero-visual{
    right:-2%!important;
    transform:none!important;
  }
}


/* =========================================================
   TaxiZone 1.5.5.13 — TAB ICON + MODE ISOLATION FINAL
   Functional booking/pricing logic is intentionally untouched.
   ========================================================= */

/* Icons are part of every tab in every state.
   Inactive tabs are white, therefore they must not inherit a
   white inactive-text color. */
section.taxizone-hero-booking .tz-booking-tab .tz-tab-icon{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:20px!important;
  height:20px!important;
  flex:0 0 20px!important;
  color:#111!important;
  stroke:#111!important;
  fill:none!important;
  stroke-width:1.9!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}
section.taxizone-hero-booking .tz-booking-tab.is-active .tz-tab-icon,
section.taxizone-hero-booking .tz-booking-tab[aria-selected="true"] .tz-tab-icon{
  color:#111!important;
  stroke:#111!important;
  visibility:visible!important;
  opacity:1!important;
}
section.taxizone-hero-booking .tz-booking-tab:not(.is-active):not([aria-selected="true"]) .tz-tab-icon{
  color:#111!important;
  stroke:#111!important;
  visibility:visible!important;
  opacity:1!important;
}

/* PRIVATE + COMPANY:
   absolutely no airport selector and no flight-only controls. */
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-direction,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-direction{
  display:none!important;
  visibility:hidden!important;
}
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="private"] .tz-flight-direction[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="company"] .tz-flight-direction[hidden]{
  display:none!important;
  visibility:hidden!important;
}

/* PRIVATE + COMPANY use the ordinary destination field. */
section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-to-wrap,
section.taxizone-hero-booking[data-active-mode="private"] .tz-normal-from-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-to-wrap,
section.taxizone-hero-booking[data-active-mode="company"] .tz-normal-from-wrap{
  display:flex!important;
  visibility:visible!important;
}

/* FLIGHT:
   airport selector replaces the ordinary destination field. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-to-wrap{
  display:none!important;
  visibility:hidden!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap:not([hidden]){
  display:flex!important;
  visibility:visible!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-from-wrap{
  display:flex!important;
  visibility:visible!important;
}

/* Hidden must win over all older generic display:flex rules. */
section.taxizone-hero-booking [hidden],
section.taxizone-hero-booking .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking .tz-flight-direction[hidden],
section.taxizone-hero-booking .tz-flight-label[hidden]{
  display:none!important;
  visibility:hidden!important;
}

/* =========================================================
   TaxiZone 1.5.5.15 — REQUESTED FLYGTAXI CLEANUP
   ========================================================= */

/* Flygtaxi: destination is ONLY an airport selector. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-to-wrap{
  display:none!important;
  visibility:hidden!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap{
  display:flex!important;
  visibility:visible!important;
  position:relative!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] #tz-flight-airport-select{
  appearance:none!important;
  -webkit-appearance:none!important;
  background-image:none!important;
  padding-left:48px!important;
  padding-right:42px!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap::after{
  content:"⌄"!important;
  position:absolute!important;
  right:15px!important;
  top:50%!important;
  transform:translateY(-55%)!important;
  pointer-events:none!important;
  font-size:17px!important;
  line-height:1!important;
  color:#111!important;
}
section.taxizone-hero-booking .taxizone-airport-icon{
  position:absolute!important;
  left:14px!important;
  top:50%!important;
  transform:translateY(-50%)!important;
  width:22px!important;
  height:22px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  z-index:2!important;
  pointer-events:none!important;
}
section.taxizone-hero-booking .taxizone-airport-icon svg{
  width:21px!important;
  height:21px!important;
  fill:none!important;
  stroke:#111!important;
  stroke-width:1.8!important;
  stroke-linecap:round!important;
  stroke-linejoin:round!important;
}

/* Passenger control: exactly ONE arrow. */
section.taxizone-hero-booking .taxizone-passenger-trigger{
  position:relative!important;
  appearance:none!important;
  -webkit-appearance:none!important;
}
section.taxizone-hero-booking .taxizone-passenger-trigger::before,
section.taxizone-hero-booking .taxizone-passenger-trigger::after{
  content:none!important;
  display:none!important;
}
section.taxizone-hero-booking .taxizone-passenger-trigger > span[aria-hidden="true"]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:12px!important;
  min-width:12px!important;
  text-align:center!important;
  font-size:15px!important;
  line-height:1!important;
}
section.taxizone-hero-booking .taxizone-passenger-trigger .taxizone-passenger-value{
  flex:1 1 auto!important;
  text-align:center!important;
}

/* The native passenger select must never visually sit over the trigger. */
section.taxizone-hero-booking .taxizone-passengers-native{
  display:none!important;
  visibility:hidden!important;
}

/* Every flight-only destination control except the airport selector stays hidden. */
section.taxizone-hero-booking[data-active-mode="flight"] #taxizone-to{
  display:none!important;
  visibility:hidden!important;
}

/* TaxiZone 1.5.5.17 — Flygtaxi direction only */
section.taxizone-hero-booking .tz-flight-direction{display:none;width:100%;margin:0 0 14px;gap:8px}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction{display:flex!important}
section.taxizone-hero-booking .tz-flight-direction-option{
  appearance:none!important;-webkit-appearance:none!important;
  flex:0 0 auto!important;min-height:40px!important;padding:8px 14px!important;
  border:1px solid var(--tz-field-border,#cfd4da)!important;border-radius:9px!important;
  background:#fff!important;color:#111!important;font:inherit!important;font-weight:600!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:7px!important;
  cursor:pointer!important;box-shadow:none!important
}
section.taxizone-hero-booking .tz-flight-direction-option.is-active{background:#F5C400!important;border-color:#F5C400!important;color:#111!important}
section.taxizone-hero-booking .tz-flight-direction-icon{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:18px!important;min-width:18px!important;font-size:17px!important;line-height:1!important}
section.taxizone-hero-booking .tz-flight-from-airport-wrap{position:relative!important}
section.taxizone-hero-booking .tz-flight-from-airport-wrap select{
  appearance:none!important;-webkit-appearance:none!important;width:100%!important;height:100%!important;
  padding-left:48px!important;padding-right:42px!important;border:0!important;background:transparent!important;color:#111!important
}
section.taxizone-hero-booking .tz-flight-from-airport-wrap::after{
  content:"⌄"!important;position:absolute!important;right:15px!important;top:50%!important;
  transform:translateY(-55%)!important;pointer-events:none!important;font-size:17px!important;color:#111!important
}

/* TaxiZone 1.5.5.17 — Flygtaxi T / T-R */
section.taxizone-hero-booking .tz-flight-direction-option{min-width:72px!important}
section.taxizone-hero-booking .tz-flight-direction-icon{font-weight:800!important;letter-spacing:-.2px!important}
section.taxizone-hero-booking .tz-flight-return-field[hidden]{display:none!important;visibility:hidden!important}
section.taxizone-hero-booking .tz-flight-return-field:not([hidden]){display:block!important;visibility:visible!important}


/* TaxiZone 1.5.5.17 UI FIX — Flygtaxi layout only. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction{
  display:grid!important;
  grid-template-columns:120px 120px!important;
  width:max-content!important;
  max-width:100%!important;
  gap:8px!important;
  margin:0 0 16px!important;
  overflow:visible!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-option{
  width:120px!important;
  min-width:120px!important;
  max-width:120px!important;
  min-height:42px!important;
  height:42px!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-icon{display:none!important}

/* From and Till must share the exact same top-row geometry. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to{
  display:grid!important;
  grid-template-columns:minmax(0,1fr)!important;
  grid-template-rows:auto 58px!important;
  align-content:start!important;
  align-items:start!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-from-airport-wrap,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-normal-from-wrap,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-normal-to-wrap{
  grid-column:1!important;
  grid-row:2!important;
  align-self:start!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-from-label,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-label{
  grid-column:1!important;
  grid-row:1!important;
  align-self:start!important;
}

/* Passenger: one visible trigger, one arrow. */
section.taxizone-hero-booking .taxizone-passengers-native,
section.taxizone-hero-booking select#taxizone-passengers{
  display:none!important;
  visibility:hidden!important;
  opacity:0!important;
  position:absolute!important;
  pointer-events:none!important;
}


/* TaxiZone 1.5.5.19 — Flygtaxi: airport-only outbound + T/T-R return row */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-from-airport-wrap{
  display:none!important;
  visibility:hidden!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-from-wrap{
  display:flex!important;
  visibility:visible!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap{
  display:flex!important;
  visibility:visible!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction{
  display:flex!important;
  width:max-content!important;
  max-width:100%!important;
  grid-template-columns:none!important;
  gap:8px!important;
  margin:0 0 16px!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-option{
  flex:0 0 72px!important;
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 10px!important;
  border-radius:9px!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-option .tz-flight-direction-icon{
  display:none!important;
}
/* T/R: return date + return time form their own row. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-return-field:not([hidden]){
  display:block!important;
  visibility:visible!important;
  grid-row:2!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-date{grid-column:span 3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-time{grid-column:span 3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras{grid-row:3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-name,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-phone,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-email{grid-row:4!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-message{grid-row:5!important;}
section.taxizone-hero-booking .tz-flight-return-field[hidden]{display:none!important;visibility:hidden!important;}


/* =========================================================
   TaxiZone 1.5.5.19 — FLYGTAXI FINAL FIELD RULES
   - Outbound: pickup address -> airport only
   - T/R: adds one separate return date/time row
   - No airport-origin selector in this UI
   ========================================================= */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to{
  display:block!important;
  grid-template-columns:none!important;
  grid-template-rows:none!important;
  align-content:initial!important;
  align-items:initial!important;
  min-width:0!important;
  width:100%!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-from-label,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-label{
  display:block!important;
  width:100%!important;
  height:18px!important;
  line-height:18px!important;
  margin:0 0 8px!important;
  padding:0!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-normal-from-wrap{
  display:flex!important;
  grid-column:auto!important;
  grid-row:auto!important;
  position:relative!important;
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-from-airport-wrap{display:none!important;visibility:hidden!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction{
  display:flex!important;
  width:max-content!important;
  max-width:100%!important;
  margin:0 0 16px!important;
  gap:8px!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-option{
  flex:0 0 72px!important;
  width:72px!important;
  min-width:72px!important;
  max-width:72px!important;
  height:42px!important;
  min-height:42px!important;
  max-height:42px!important;
  padding:0!important;
  box-sizing:border-box!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-direction-option .tz-flight-direction-icon{display:none!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-return-field:not([hidden]){
  display:block!important;
  visibility:visible!important;
  grid-row:2!important;
  min-width:0!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-date{grid-column:span 3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-time{grid-column:span 3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras{grid-row:3!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-name,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-phone,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-email{grid-row:4!important;}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-message{grid-row:5!important;}
section.taxizone-hero-booking .tz-flight-return-field[hidden]{display:none!important;visibility:hidden!important;}

/* TaxiZone 1.5.5.19 — Flygtaxi single-trip return/swap */
section.taxizone-hero-booking .tz-flight-swap-direction{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-width:82px!important;
  height:42px!important;
  margin:0 8px!important;
  border:1px solid var(--tz-border,#d5dbe3)!important;
  border-radius:10px!important;
  background:#fff!important;
  color:#111!important;
  font-weight:700!important;
  cursor:pointer!important;
  align-self:end!important;
}
section.taxizone-hero-booking .tz-flight-swap-direction:hover{
  border-color:var(--tz-accent,#fbc900)!important;
}
section.taxizone-hero-booking .tz-flight-swap-direction.is-swapped{
  background:#fbc900!important;
  border-color:#fbc900!important;
}
section.taxizone-hero-booking .tz-flight-swap-direction span:first-child{
  font-size:18px!important;
  line-height:1!important;
}


/* =========================================================
   TaxiZone 1.5.5.21 — Flygtaxi direction/return layout fix
   - T/R reveals the two return fields directly below the main row.
   - The route swap control sits between FROM and TO on desktop.
   - Private and Company remain completely normal taxi forms.
   ========================================================= */
section.taxizone-hero-booking .taxizone-hero-form{
  position:relative!important;
}

section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
  position:absolute!important;
  z-index:8!important;
  width:38px!important;
  min-width:38px!important;
  max-width:38px!important;
  height:38px!important;
  min-height:38px!important;
  max-height:38px!important;
  margin:0!important;
  padding:0!important;
  border-radius:50%!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  box-sizing:border-box!important;
  left:calc(25% - 19px)!important;
  top:118px!important;
  align-self:auto!important;
}

section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction span:first-child{
  font-size:19px!important;
  line-height:1!important;
}

section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction .tz-flight-swap-label{
  display:none!important;
}

section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-return-field:not([hidden]){
  grid-row:2!important;
}

@media(max-width:1050px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
    position:static!important;
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    height:42px!important;
    min-height:42px!important;
    max-height:42px!important;
    margin:0 auto!important;
    border-radius:10px!important;
    transform:none!important;
  }
}

@media(max-width:760px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
    width:42px!important;
    min-width:42px!important;
    max-width:42px!important;
    margin:0!important;
  }
}


/* TaxiZone 1.5.5.21 — Flygtaxi uses ONE airport selector.
   The selector lives in TILL for outbound trips and moves to FRÅN when the
   direction is swapped. No second airport box is rendered. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-to-wrap,
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap{
  display:flex!important;
  visibility:visible!important;
  position:relative!important;
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  margin:0!important;
  padding:0 14px!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap[hidden]{
  display:none!important;
  visibility:hidden!important;
}
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap select{
  width:100%!important;
  height:100%!important;
  min-height:58px!important;
  margin:0!important;
}

/* TaxiZone 1.5.5.22 — Flygtaxi single-selector swap visibility fix.
 * The airport selector is physically moved between the FROM and TO fields.
 * Hidden wrappers must stay hidden even when older geometry rules use !important.
 */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-from-wrap[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-normal-label[hidden],
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-label[hidden]{
  display:none!important;
  visibility:hidden!important;
}

/* Exactly one route control per side: the active wrapper fills the field. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-normal-from-wrap:not([hidden]),
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-normal-to-wrap:not([hidden]),
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-to-wrap:not([hidden]),
section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap:not([hidden]){
  display:flex!important;
  visibility:visible!important;
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
}

/* =========================================================
   TaxiZone 1.5.5.23 — Flygtaxi approved structure
   - One airport selector only
   - Four fixed airport choices
   - Swap keeps the two route boxes side-by-side
   - Discount code follows the same first-row geometry
   - Return date/time sit on the next row
   - Price is moved to its own row after the customer fields
   ========================================================= */
@media(min-width:1051px){
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid{
    grid-template-columns:repeat(14,minmax(0,1fr))!important;
    column-gap:16px!important;
    row-gap:16px!important;
    align-items:end!important;
  }

  /* Main flight row: FROM / swap / TO / DATE / TIME / DISCOUNT. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from{
    grid-column:1 / span 3!important;
    grid-row:1!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
    position:static!important;
    grid-column:4 / span 1!important;
    grid-row:1!important;
    justify-self:center!important;
    align-self:end!important;
    margin:0!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to{
    grid-column:5 / span 3!important;
    grid-row:1!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-date{
    grid-column:8 / span 2!important;
    grid-row:1!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-time{
    grid-column:10 / span 2!important;
    grid-row:1!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-discount{
    grid-column:12 / span 3!important;
    grid-row:1!important;
  }

  /* T/R: return date and time directly underneath the main flight row. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-return-field{
    grid-row:2!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-date{
    grid-column:1 / span 3!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-flight-return-time{
    grid-column:5 / span 3!important;
  }

  /* Vehicle / passengers / extras. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle{
    grid-column:1 / span 3!important;
    grid-row:3!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers{
    grid-column:5 / span 3!important;
    grid-row:3!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras{
    grid-column:8 / span 7!important;
    grid-row:3!important;
  }

  /* Customer details. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-name{
    grid-column:1 / span 5!important;
    grid-row:4!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-phone{
    grid-column:6 / span 4!important;
    grid-row:4!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-email{
    grid-column:10 / span 5!important;
    grid-row:4!important;
  }

  /* Message row. Price is deliberately one full row lower. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-message{
    grid-column:1 / span 8!important;
    grid-row:5!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-booking-price-bottom{
    grid-column:1 / -1!important;
    grid-row:6!important;
    width:100%!important;
    margin:0!important;
    padding:16px 0 0!important;
    border-top:1px solid #e2e5e8!important;
    display:grid!important;
    grid-template-columns:minmax(0,2fr) minmax(220px,1fr)!important;
    gap:16px!important;
    align-items:end!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-booking-price-bottom .tz-field-price{
    grid-column:1!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-booking-price-bottom .tz-field-submit{
    grid-column:2!important;
  }

  /* Do not let the moved airport selector create a second box. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-normal-from-wrap[hidden],
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-normal-to-wrap[hidden]{
    display:none!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-from > .tz-flight-to-wrap,
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-to > .tz-flight-to-wrap{
    width:100%!important;
    height:58px!important;
    min-height:58px!important;
    margin:0!important;
  }
}

/* Tablet/mobile: keep the same logical order without horizontal overflow. */
@media(max-width:1050px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
    position:static!important;
    margin:0 auto!important;
  }
}

/* Four customer-facing airport choices. */
section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-to-wrap select option{
  font-size:15px!important;
}


/* BETA 1.5.5.34: Message field must match the standard white booking fields. */
section.taxizone-hero-booking .tz-field-message > textarea,
section.taxizone-hero-booking .tz-field-message textarea[name="message"]{
  width:100% !important;
  min-height:72px !important;
  box-sizing:border-box !important;
  background:#fff !important;
  background-color:#fff !important;
  color:#111 !important;
  border:1px solid #cfd4d9 !important;
  border-radius:10px !important;
  box-shadow:none !important;
  -webkit-text-fill-color:#111 !important;
}
section.taxizone-hero-booking .tz-field-message > textarea::placeholder,
section.taxizone-hero-booking .tz-field-message textarea[name="message"]::placeholder{
  color:#7a7f86 !important;
  opacity:1 !important;
  -webkit-text-fill-color:#7a7f86 !important;
}
section.taxizone-hero-booking .tz-field-message > textarea:focus,
section.taxizone-hero-booking .tz-field-message textarea[name="message"]:focus{
  background:#fff !important;
  color:#111 !important;
  border-color:#f5c400 !important;
  box-shadow:0 0 0 2px rgba(245,196,0,.14) !important;
  outline:none !important;
}

/* TaxiZone 1.5.5.38 — Mobile Flygtaxi field stacking fix.
 * Keep opened dropdowns inside the normal document flow so they never cover
 * vehicle, passenger or customer fields on narrow screens. */
@media (max-width:760px){
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    row-gap:14px!important;
    column-gap:0!important;
    align-items:stretch!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid > .tz-field,
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid > .taxizone-vehicle-group,
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid > .tz-booking-price-bottom{
    grid-column:1 / -1!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    box-sizing:border-box!important;
  }

  /* Vehicle cards stay inside their own row. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle{
    display:block!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle > legend{
    display:block!important;
    margin:0 0 8px!important;
    padding:0!important;
    line-height:1.2!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-vehicle-group,
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle{
    grid-column:1 / -1!important;
  }

  /* Extras dropdown: opening it expands the row instead of painting over the next row. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras{
    position:relative!important;
    min-height:0!important;
    height:auto!important;
    overflow:visible!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras .taxizone-extra-dropdown,
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras details{
    position:relative!important;
    height:54px!important;
    min-height:54px!important;
    overflow:visible!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras .taxizone-extra-dropdown[open],
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras details[open]{
    height:auto!important;
    min-height:54px!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras .taxizone-extra-menu{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    width:100%!important;
    max-height:220px!important;
    margin:6px 0 0!important;
    box-sizing:border-box!important;
    z-index:auto!important;
  }

  /* Passenger dropdown follows the same rule when opened. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers .taxizone-passenger-control{
    position:relative!important;
    height:54px!important;
    min-height:54px!important;
    overflow:visible!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers .taxizone-passenger-control:has(.taxizone-passenger-menu:not([hidden])){
    height:auto!important;
    min-height:54px!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-passengers .taxizone-passenger-menu{
    position:static!important;
    width:100%!important;
    max-height:220px!important;
    margin:6px 0 0!important;
    box-sizing:border-box!important;
  }

  /* Keep the normal field label above its control and give every row a stable flow. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field:not(.tz-field-vehicle):not(.tz-field-extras){
    position:relative!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
}


/* TaxiZone 1.5.5.43 — Flygtaxi flight numbers + mobile structural order. */
section.taxizone-hero-booking .tz-flight-number-fields{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px!important;
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-flight-number-fields[hidden]{display:none!important;}
section.taxizone-hero-booking .tz-flight-number-fields .tz-field-flight-number{
  min-width:0!important;
  width:100%!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-flight-number-fields .tz-field-flight-number input{
  width:100%!important;
  box-sizing:border-box!important;
}

@media(max-width:760px){
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    grid-auto-flow:row!important;
    gap:14px!important;
    align-items:stretch!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .taxizone-hero-configured-grid > *{
    grid-column:1 / -1!important;
    grid-row:auto!important;
    position:relative!important;
    inset:auto!important;
    float:none!important;
    transform:none!important;
    margin-top:0!important;
    margin-bottom:0!important;
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }
  /* The swap control is its own row, never a floating/absolute element. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-swap-direction{
    justify-self:center!important;
    width:56px!important;
    min-width:56px!important;
    max-width:56px!important;
    height:56px!important;
    margin:0 auto!important;
  }
  /* Vehicle cards stay together and never share space with passenger/extras. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle > legend{
    display:block!important;
    width:100%!important;
    margin:0 0 8px!important;
    padding:0!important;
    line-height:1.2!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-vehicle .taxizone-vehicle-card{
    min-width:0!important;
    box-sizing:border-box!important;
  }
  /* Extras remains one row; its opened menu expands naturally. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras,
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras details{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    position:relative!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-extras .taxizone-extra-menu{
    position:static!important;
    width:100%!important;
    max-height:240px!important;
    box-sizing:border-box!important;
    margin-top:6px!important;
  }
  /* Flight-number pair is always a normal grid child after TILLÄGG. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    order:7!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields[hidden]{display:none!important;}
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields .tz-field-flight-number{
    grid-column:1!important;
  }
}

/* TaxiZone 1.5.5.49 — Keep approved Flygtaxi UI, move discount beside message. */
@media(min-width:1051px){
  /* Flight number takes the former discount position in the top row. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields{
    grid-column:12 / span 3!important;
    grid-row:1!important;
    align-self:end!important;
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:16px!important;
    width:100%!important;
    min-width:0!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields:not(.is-round-trip){
    grid-template-columns:1fr!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields .tz-field-flight-number{
    min-width:0!important;
    width:100%!important;
    margin:0!important;
  }

  /* Rabattkod moves down beside Meddelande. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-discount{
    grid-column:9 / span 6!important;
    grid-row:5!important;
  }

  /* Message keeps the left side of the same lower row. */
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-message{
    grid-column:1 / span 8!important;
    grid-row:5!important;
  }
}

@media(min-width:761px) and (max-width:1050px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields{
    grid-column:1 / -1!important;
    width:100%!important;
    min-width:0!important;
  }
}


/* TaxiZone 1.5.5.49 — Field alignment correction.
 * Rabattkod uses the same stacked label/control geometry as the other fields.
 * Keep the approved Flygtaxi layout unchanged. */
section.taxizone-hero-booking .tz-field-discount > .tz-normal-label{
  display:block!important;
  width:100%!important;
  margin:0 0 7px!important;
  padding:0!important;
  line-height:1.2!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking .tz-field-discount > .taxizone-field-wrap{
  width:100%!important;
  min-width:0!important;
  box-sizing:border-box!important;
}

/* TaxiZone 1.5.5.51 — Flygtaxi destination input fix
 * When the journey is FROM an airport, the normal destination input must remain
 * clickable. Older UI patches hid #taxizone-to unconditionally in flight mode,
 * leaving an empty-looking field.
 */
section.taxizone-hero-booking[data-active-mode="flight"].is-flight-from-airport .tz-field-to > .tz-normal-to-wrap:not([hidden]){
  display:flex!important;
  visibility:visible!important;
  width:100%!important;
  height:58px!important;
  min-height:58px!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking[data-active-mode="flight"].is-flight-from-airport #taxizone-to{
  display:block!important;
  visibility:visible!important;
  pointer-events:auto!important;
  width:100%!important;
  height:100%!important;
  min-height:58px!important;
  box-sizing:border-box!important;
}
section.taxizone-hero-booking[data-active-mode="flight"]:not(.is-flight-from-airport) #taxizone-to{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
section.taxizone-hero-booking[data-active-mode="flight"]:not(.is-flight-from-airport) .tz-field-to > .tz-normal-to-wrap{
  display:none!important;
  visibility:hidden!important;
}

/* TaxiZone 1.5.5.53 — Swap only Flight Code and Rabattkod positions.
 * Keep all field styling and the approved UI unchanged. Desktop only.
 */
@media(min-width:1051px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-discount{
    grid-column:12 / span 3!important;
    grid-row:1!important;
    align-self:end!important;
  }
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields{
    grid-column:9 / span 6!important;
    grid-row:5!important;
    align-self:start!important;
    width:100%!important;
    min-width:0!important;
  }
}


/* TaxiZone 1.5.5.55 — FINAL APPROVED FLYGTAXI FIELD ORDER.
 * T/R:
 *   - FLIGHT CODE stays in the top-right position.
 *   - FLIGHT CODE – TILLBAKA sits directly underneath it, on the same row
 *     as HEMRESA DATUM / HEMRESA TID.
 *   - RABATTKOD is on the lower row immediately above PRIS / BOKA FLYGTAXI.
 * No extra flight icons are injected into the fields.
 */
@media(min-width:1051px){
  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields{
    grid-column:12 / span 3!important;
    grid-row:1 / span 2!important;
    align-self:stretch!important;
    display:grid!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto auto!important;
    gap:16px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields .tz-flight-number-to{
    grid-column:1!important;
    grid-row:1!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-flight-number-fields .tz-flight-number-home{
    grid-column:1!important;
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-discount{
    grid-column:9 / span 6!important;
    grid-row:5!important;
    align-self:end!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-field-message{
    grid-column:1 / span 8!important;
    grid-row:5!important;
  }

  section.taxizone-hero-booking[data-active-mode="flight"] .tz-booking-price-bottom{
    grid-row:6!important;
  }
}
