/* __ORBI_SEARCHWIDGET1102__ OrbiTrip search widget v3 (release 02.11.2026, owner approved 03:39): reference layout + OrbiTrip page spec, OrbiTrip brand (site colours) */
#otWrap, #otWrap * { box-sizing: border-box; }
#otWrap {
  --ot-primary: #D74F09; --ot-primary-hover: #C74406; --ot-navy: #16324B; --ot-green: #168348; --ot-grey-pin: #B2B5BC; --ot-muted: #8A929B;
  --ot-font: Inter, system-ui, -apple-system, 'Segoe UI', Roboto, 'Noto Sans', sans-serif;
  position: relative; z-index: 30; max-width: 520px; margin: 0 auto; font-family: var(--ot-font); text-align: left;
}
/* tabs: Transfers (current) | Day trips (link) */
#otWrap .ot-tabs { display: flex; gap: 8px; margin: 0 0 10px; }
#otWrap .ot-tab { flex: 1 1 0; min-width: 0; display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 42px; padding: 0 10px; border-radius: 10px; border: 1px solid rgba(255, 255, 255, .22); background: rgba(0, 0, 0, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); color: #fff; font: 700 14.5px/1 var(--ot-font); text-decoration: none; white-space: nowrap; }
#otWrap .ot-tab span { overflow: hidden; text-overflow: ellipsis; }
#otWrap .ot-tab svg { flex: 0 0 auto; }
#otWrap .ot-tab.is-active { background: #fff; border-color: #fff; color: var(--ot-primary); }
#otWrap a.ot-tab:hover { background: rgba(0, 0, 0, .6); }

#otSearch {
  --ot-col: 44px; position: relative; padding: 22px 10px 24px; color: #fff;
  background: rgba(0, 0, 0, .5); border-radius: 12px;
  -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
/* AI switch, top right */
#otSearch .ot-ai { display: flex; justify-content: flex-end; padding: 0 var(--ot-col) 20px; }
#otSearch .ot-switch { display: inline-flex; align-items: center; gap: 8px; padding: 4px 10px 4px 4px; border-radius: 19px; border: 1px solid rgba(255, 255, 255, .2); background: rgba(255, 255, 255, .1); cursor: pointer; user-select: none; }
#otSearch .ot-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
#otSearch .ot-track { position: relative; width: 36px; height: 18px; border-radius: 16px; background: rgba(255, 255, 255, .35); transition: background .2s; }
#otSearch .ot-track::after { content: ""; position: absolute; top: 3px; left: 3px; width: 12px; height: 12px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .1); transition: transform .2s; }
#otSearch .ot-switch input:checked + .ot-track { background: var(--ot-primary); }
#otSearch .ot-switch input:checked + .ot-track::after { transform: translateX(18px); }
#otSearch .ot-switch input:focus-visible + .ot-track { outline: 2px solid #fff; outline-offset: 2px; }
#otSearch .ot-switch .ot-lbl { font: 600 12px/1 var(--ot-font); color: #fff; white-space: nowrap; }
#otSearch .ot-switch .ot-lbl b { color: #FFB37D; font-weight: 700; }

/* route rows: drag handle + pin/flag in the left column, white field on the right */
#otSearch .ot-stops { position: relative; }
#otSearch .ot-stop { position: relative; display: flex; align-items: center; height: 60px; transition: transform .15s; }
#otSearch .ot-stop.is-dragging { z-index: 5; transition: none; opacity: .95; }
#otSearch .ot-stop { padding-right: var(--ot-col); }
#otSearch .ot-handle { flex: 0 0 16px; height: 44px; display: flex; align-items: center; justify-content: center; touch-action: none; cursor: grab; color: rgba(255, 255, 255, .85); }
#otSearch .ot-pin { position: relative; flex: 0 0 24px; display: flex; justify-content: center; color: var(--ot-grey-pin); margin-right: 4px; }
#otSearch .ot-stop.is-first .ot-pin { color: var(--ot-primary); }
#otSearch .ot-stop:not(.is-last) .ot-pin::after { content: ''; position: absolute; left: 50%; top: 40px; height: 34px; border-left: 2px dotted rgba(255, 255, 255, .55); transform: translateX(-1px); pointer-events: none; }
#otSearch .ot-field { position: relative; flex: 1; min-width: 0; height: 50px; display: flex; align-items: center; background: #fff; border: 1px solid #fff; border-radius: 10px; }
#otSearch .ot-stop.is-first .ot-field { border-color: var(--ot-primary); }
#otSearch .ot-field:focus-within { border-color: var(--ot-primary); box-shadow: 0 0 0 1px var(--ot-primary); }
#otSearch .ot-field input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; padding: 0 12px 0 14px; font: 400 15px/1.2 var(--ot-font); color: #212B36; text-overflow: ellipsis; }
#otSearch .ot-field input::placeholder { color: var(--ot-muted); opacity: 1; }
#otSearch .ot-stop.is-first .ot-field input::placeholder { color: var(--ot-primary); }
#otSearch .ot-remove { flex: 0 0 auto; width: 34px; height: 34px; margin-right: 6px; border: 0; border-radius: 8px; background: #F1F4F7; color: var(--ot-navy); font-size: 20px; line-height: 1; cursor: pointer; }
#otSearch .ot-swap { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); z-index: 6; width: 38px; height: 38px; border-radius: 50%; border: 0; background: #fff; color: var(--ot-primary); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 2px 10px rgba(0, 0, 0, .25); }

/* place list: groups when empty, matches while typing */
#otSearch .ot-ac { position: absolute; left: var(--ot-col); right: var(--ot-col); top: calc(100% - 2px); z-index: 50; margin: 0; padding: 6px; list-style: none; background: #fff; border-radius: 10px; box-shadow: 0 18px 40px rgba(0, 0, 0, .3); max-height: min(340px, 48vh); overflow: auto; overscroll-behavior: contain; }
#otSearch .ot-ac[hidden] { display: none; }
#otSearch .ot-ac li { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 8px; cursor: pointer; color: #212B36; font: 500 15px/1.25 var(--ot-font); }
#otSearch .ot-ac li[aria-selected="true"], #otSearch .ot-ac li[data-k]:hover { background: #FFF1E8; }
#otSearch .ot-ac li.ot-grp { position: sticky; top: -6px; z-index: 1; padding: 10px 10px 6px; background: #fff; cursor: default; color: var(--ot-muted); font: 700 11px/1 var(--ot-font); letter-spacing: .08em; text-transform: uppercase; }
#otSearch .ot-ac .ot-ic { width: 22px; text-align: center; }
#otSearch .ot-ac .ot-nm { flex: 1; min-width: 0; }
#otSearch .ot-ac .ot-meta { font: 700 10.5px/1 var(--ot-font); letter-spacing: .06em; color: var(--ot-muted); }
#otSearch .ot-ac .ot-empty { cursor: default; color: var(--ot-muted); }

/* everything below lines up with the white fields */
#otSearch .ot-col { padding: 0 var(--ot-col); }
#otSearch .ot-add { width: 100%; min-height: 65px; margin-top: 15px; padding: 8px 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; border: 2px solid #fff; border-radius: 10px; background: transparent; color: #fff; cursor: pointer; }
#otSearch .ot-add-main { display: inline-flex; align-items: center; gap: 14px; font: 700 15px/1 var(--ot-font); }
#otSearch .ot-add small { font: 500 12px/1.25 var(--ot-font); color: rgba(255, 255, 255, .8); text-align: center; }
#otSearch .ot-add .ot-plus { width: 17px; height: 17px; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #000; border-radius: 2px; }
#otSearch .ot-add[hidden] { display: none; }
#otSearch .ot-when, #otSearch .ot-pax { position: relative; display: flex; align-items: center; justify-content: center; width: 100%; height: 50px; padding: 0 50px; background: #fff; border-radius: 10px; color: var(--ot-primary); font: 600 16px/1.2 var(--ot-font); cursor: pointer; }
#otSearch .ot-when { margin-top: 24px; }
#otSearch .ot-pax { margin-top: 12px; color: #212B36; }
#otSearch .ot-when .ot-ico, #otSearch .ot-pax .ot-ico { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); display: flex; color: var(--ot-primary); }
#otSearch .ot-pax .ot-chev { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); display: flex; color: var(--ot-muted); }
#otSearch .ot-when .ot-txt, #otSearch .ot-pax .ot-txt { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#otSearch .ot-when input, #otSearch .ot-pax select { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; border: 0; cursor: pointer; font-size: 16px; -webkit-appearance: none; appearance: none; }
#otSearch .ot-when:focus-within, #otSearch .ot-pax:focus-within { box-shadow: 0 0 0 2px var(--ot-primary); }
#otSearch .ot-submit { width: 100%; height: 50px; margin-top: 15px; display: flex; align-items: center; justify-content: center; gap: 10px; border: 0; border-radius: 10px; background: var(--ot-primary); color: #fff; font: 700 19px/1 var(--ot-font); cursor: pointer; }
#otSearch .ot-submit:hover { background: var(--ot-primary-hover); }
#otSearch .ot-submit[disabled] { opacity: .7; cursor: progress; }
#otSearch .ot-error { margin: 10px 0 0; font: 600 13.5px/1.35 var(--ot-font); color: #FFD2B8; }
#otSearch .ot-error[hidden] { display: none; }

#otSearch .ot-aibox { display: none; padding: 0 var(--ot-col); }
#otSearch .ot-aibox textarea { width: 100%; min-height: 110px; resize: vertical; border: 1px solid var(--ot-primary); border-radius: 10px; padding: 12px 14px; font: 400 15px/1.4 var(--ot-font); color: #212B36; outline: 0; }
#otSearch.is-ai .ot-aibox { display: block; }
#otSearch.is-ai .ot-stops, #otSearch.is-ai .ot-add, #otSearch.is-ai .ot-when, #otSearch.is-ai .ot-pax { display: none; }
#otSearch.is-ai .ot-submit { margin-top: 15px; }

/* trust bar + Tripadvisor */
#otSearch .ot-trust { list-style: none; margin: 18px 0 0; padding: 0 var(--ot-col); display: grid; gap: 8px; }
#otSearch .ot-trust li { display: flex; align-items: center; gap: 9px; font: 600 13.5px/1.3 var(--ot-font); color: #fff; }
#otSearch .ot-chk { flex: 0 0 18px; width: 18px; height: 18px; border-radius: 50%; background: var(--ot-green); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
#otSearch .ot-proof { display: flex; justify-content: center; align-items: center; margin-top: 16px; padding: 0 var(--ot-col); }
#otSearch .ot-proof a { display: inline-flex; align-items: center; gap: 10px; color: #fff; font: 700 16px/1.5 var(--ot-font); text-decoration: none; }
#otSearch .ot-proof .ot-stars { display: inline-flex; gap: 3px; }
#otSearch .ot-proof .ot-stars i { width: 13px; height: 13px; background: #FFC400; clip-path: polygon(50% 0, 61% 35%, 98% 35%, 68% 57%, 79% 91%, 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
#otSearch .ot-proof b { font: 700 15px/1 var(--ot-font); }
#otSearch .ot-proof small { font: 500 12px/1 var(--ot-font); opacity: .85; }

/* homepage integration (phones only): the widget replaces the old search card */
/* old card collapsed on every width (kept in the page for the app); links to #orb-booking are sent to the widget by the script */
html:not(#zz) body:not(#zz) #orbi-home #orb-booking { display: block !important; height: 0 !important; min-height: 0 !important; max-height: 0 !important; margin: 0 !important; padding: 0 !important; border: 0 !important; box-shadow: none !important; overflow: hidden !important; visibility: hidden !important; }
@media (max-width: 767px) {
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero { --orbi-hero-bottom-reveal: 90px !important; padding-bottom: 90px !important; background-image: linear-gradient(180deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, .25)), url("/assets/orbi-unsplash-20261019/tbilisi-sunset-960-6fc1fd2463d7.webp") !important; background-size: 100% 100%, cover !important; background-position: center, 50% 30% !important; background-repeat: no-repeat !important; }
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero-copy { padding: 5px 16px 0 !important; text-align: center !important; }
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero-kicker { display: block !important; margin: 18px 0 0 !important; color: #FFB37D !important; font: 700 12px/1.3 Inter, sans-serif !important; letter-spacing: .14em !important; text-transform: uppercase; text-shadow: 0 1px 4px rgba(0, 0, 0, .5); }
  html:not(#zz) body:not(#zz) #orbi-home #orb-hero-title { font-size: 26px !important; line-height: 1.24 !important; font-weight: 700 !important; margin: 10px 0 0 !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .35); }
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero-copy p { margin: 16px 0 0 !important; font-size: 15px !important; line-height: 20px !important; text-shadow: 0 1px 6px rgba(0, 0, 0, .45); }
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero #otWrap { margin: 30px 20px 0; }
  /* header: logo | currency | globe | menu */
  html:not(#zz) body:not(#zz) #orbi-home > header.orb-header .orb-header-tools { display: flex !important; align-items: center; position: absolute !important; right: 114px; top: 50%; transform: translateY(-50%); margin: 0 !important; padding: 0 !important; background: none !important; z-index: 5; }
  html:not(#zz) body:not(#zz) #orbi-home > header.orb-header .orb-header-tools > :not(.orb-pref-trigger) { display: none !important; }
  html:not(#zz) body:not(#zz) #orbi-home > header.orb-header .orb-pref-trigger { display: inline-flex !important; align-items: center; gap: 2px; height: 32px; padding: 0 12px !important; border: 0 !important; background: none !important; box-shadow: none !important; color: #000 !important; font: 400 14px/1 Roboto, Inter, sans-serif !important; }
  html:not(#zz) body:not(#zz) #orbi-home > header.orb-header .orb-pref-trigger > .orb-tool-label:not([data-currency]), html:not(#zz) body:not(#zz) #orbi-home > header.orb-header .orb-pref-trigger > svg { display: none !important; }
  html:not(#zz) body:not(#zz) #orbi-home > header.orb-header a[data-orbi-language-switch] { font-size: 0 !important; color: transparent !important; width: 48px !important; min-width: 48px !important; height: 30px !important; padding: 0 !important; border: 0 !important; border-left: 2px solid #C4CDD5 !important; border-radius: 0 !important; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2316324B' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9.2'/%3E%3Cpath d='M2.8 12h18.4M12 2.8c2.6 2.6 3.9 5.6 3.9 9.2s-1.3 6.6-3.9 9.2c-2.6-2.6-3.9-5.6-3.9-9.2S9.4 5.4 12 2.8z'/%3E%3C/svg%3E") center / 22px 22px no-repeat !important; }
}
/* tablets and desktops: same panel, centred under the hero copy */
@media (min-width: 768px) {
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero #otWrap { width: min(640px, calc(100% - 48px)); max-width: none; margin: 8px auto 0; align-self: center; }
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero .orb-hero-copy { text-align: center !important; }
  #otWrap .ot-tabs { width: max-content; margin: 0 auto 12px; }
  #otWrap .ot-tab { flex: 0 0 auto; padding: 0 22px; }
  #otSearch { padding: 24px 24px 26px; }
}
/* wide screens: one row for date | passengers | rating | button, like the reference desktop panel */
@media (min-width: 1100px) {
  html:not(#zz) body:not(#zz) #orbi-home .orb-hero #otWrap { width: min(1080px, calc(100% - 48px)); }
  #otSearch { display: grid; grid-template-columns: var(--ot-col) 220px 200px minmax(0, 1fr) 240px var(--ot-col); column-gap: 14px; row-gap: 14px; align-items: center;
    grid-template-areas: ". ai ai ai ai ." ". aibox aibox aibox aibox ." "stops stops stops stops stops stops" ". add add add add ." ". when pax proof go ." ". err err err err ." ". trust trust trust trust ."; }
  #otSearch.is-ai { grid-template-areas: ". ai ai ai ai ." ". aibox aibox aibox aibox ." ". err err err err ." ". . . proof go ." ". trust trust trust trust ."; }
  #otSearch .ot-ai { grid-area: ai; padding: 0; }
  #otSearch .ot-aibox { grid-area: aibox; padding: 0; }
  #otSearch .ot-stops { grid-area: stops; }
  #otSearch .ot-col { display: contents; }
  #otSearch .ot-add { grid-area: add; margin: 0; min-height: 56px; flex-direction: row; gap: 18px; }
  #otSearch .ot-add small { font-size: 13px; }
  #otSearch .ot-when { grid-area: when; margin: 0; padding: 0 20px 0 44px; }
  #otSearch .ot-pax { grid-area: pax; margin: 0; padding: 0 36px 0 44px; }
  #otSearch .ot-proof { grid-area: proof; margin: 0; padding: 0; min-width: 0; }
  #otSearch .ot-proof a { flex-wrap: wrap; justify-content: center; row-gap: 2px; }
  #otSearch .ot-submit { grid-area: go; margin: 0; }
  #otSearch .ot-error { grid-area: err; margin: 0; }
  #otSearch .ot-error[hidden] { display: none; }
  #otSearch .ot-trust { grid-area: trust; margin: 4px 0 0; padding: 0; display: flex; justify-content: center; gap: 10px 32px; flex-wrap: wrap; }
  #otSearch .ot-stop { height: 64px; }
  #otSearch .ot-stops { margin-bottom: -6px; }
}
