/* Safari search form: refined look. Scoped to the search shortcode form and its date picker.
   Functionality is unchanged: the native destination <select> stays in the form and is kept in sync by fd-search.js. */
.btSearchFormShortcode {
  --fds-ac: #1bbed1;
  --fds-ac2: #119fb0;
  --fds-ink: #181818;
  --fds-mut: #6b7780;
  --fds-line: #dfe7ea;
  --fds-soft: #f6f9fa;
  --fds-h: 56px;
}
.btSearchFormShortcode .tour_search .btSearchToursRow { align-items: stretch; }

/* fields */
.btSearchFormShortcode .tour_search .btSearchField input[type="text"],
.btSearchFormShortcode .tour_search .btSearchField input[type="number"],
.btSearchFormShortcode .tour_search .btSearchField .fdDestSelect {
  height: var(--fds-h) !important;
  line-height: var(--fds-h);
  padding: 0 16px !important;
  border: 1px solid var(--fds-line) !important;
  border-radius: 12px !important;
  background-color: var(--fds-soft) !important;
  color: var(--fds-ink) !important;
  font: 500 15px/1 Barlow, Arial, Helvetica, sans-serif !important;
  box-shadow: none !important;
  outline: none;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.btSearchFormShortcode .tour_search .btSearchField input::placeholder { color: var(--fds-mut); opacity: 1; }
.btSearchFormShortcode .tour_search .btSearchField input:hover { border-color: #c5d3d8 !important; background-color: #fff !important; }
.btSearchFormShortcode .tour_search .btSearchField input:focus {
  border-color: var(--fds-ac) !important;
  background-color: #fff !important;
  box-shadow: 0 0 0 4px rgba(27,190,209,.15) !important;
}
.btSearchFormShortcode .tour_search .btFieldDate .btFieldWrapper input { padding-right: 44px !important; cursor: pointer; }
.btSearchFormShortcode .tour_search .btFieldDate .btFieldWrapper > span {
  height: var(--fds-h) !important;
  line-height: var(--fds-h) !important;
  width: 44px !important;
  color: var(--fds-ac2) !important;
}
/* price: "$" prefix in its own slot, never overlapping the typed amount */
.btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField.btFieldPrice {
  position: relative;
  padding-left: 10px !important;
  padding-right: 10px !important;
}
.btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField.btFieldPrice input[type="number"] {
  padding-left: 48px !important;
  padding-right: 12px !important;
}
.btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField.btFieldPrice:before {
  content: "$";
  position: absolute;
  left: 10px;
  top: 0;
  z-index: 1;
  width: 38px;
  height: var(--fds-h);
  display: flex;
  align-items: center;
  justify-content: center;
  font: 600 15px/1 Barlow, Arial, Helvetica, sans-serif;
  color: var(--fds-ac2);
  background: linear-gradient(#dfe7ea, #dfe7ea) right center / 1px 22px no-repeat;
  pointer-events: none;
}
/* button */
.btSearchFormShortcode .tour_search .btSearchButton button {
  height: var(--fds-h);
  padding: 0 22px !important;
  border-radius: 12px !important;
  background: var(--fds-ac) !important;
  font: 700 15px/1 Montserrat, Arial, Helvetica, sans-serif !important;
  letter-spacing: .01em;
  text-shadow: none !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  box-shadow: 0 10px 22px -12px rgba(17,159,176,.8) !important;
}
.btSearchFormShortcode .tour_search .btSearchButton button:before {
  content: "\f002";
  font-family: FontAwesome;
  font-weight: normal;
  font-size: 14px;
}
.btSearchFormShortcode .tour_search .btSearchButton button:hover {
  background: var(--fds-ac2) !important;
  transform: translateY(-1px);
  box-shadow: 0 14px 26px -12px rgba(17,159,176,.9) !important;
}
.btSearchFormShortcode .tour_search .btSearchButton button:focus-visible { outline: 3px solid rgba(27,190,209,.35); outline-offset: 2px; }

/* destination: custom dropdown (enhanced by fd-search.js) */
.btSearchFormShortcode .fdDestWrapper.fdDsReady:after { display: none; }
.btSearchFormShortcode .fdDestWrapper.fdDsReady .fdDestSelect {
  position: absolute !important;
  inset: 0;
  opacity: 0 !important;
  pointer-events: none;
}
.fdDs { position: relative; }
.fdDsBtn {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  height: var(--fds-h);
  padding: 0 14px 0 14px;
  border: 1px solid var(--fds-line);
  border-radius: 12px;
  background: var(--fds-soft);
  color: var(--fds-ink);
  font: 500 15px/1 Barlow, Arial, Helvetica, sans-serif;
  text-align: left;
  cursor: pointer;
  transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.fdDsBtn:hover { border-color: #c5d3d8; background: #fff; }
.fdDsBtn:focus-visible,
.fdDs.is-open .fdDsBtn { outline: none; border-color: var(--fds-ac); background: #fff; box-shadow: 0 0 0 4px rgba(27,190,209,.15); }
.fdDsPin {
  flex: none;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: rgba(27,190,209,.12);
  color: var(--fds-ac2);
}
.fdDsPin svg { width: 15px; height: 15px; }
.fdDsVal { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.fdDs.is-empty .fdDsVal { color: var(--fds-mut); }
.fdDsCaret { flex: none; width: 10px; height: 10px; border-right: 2px solid var(--fds-ink); border-bottom: 2px solid var(--fds-ink); transform: translateY(-3px) rotate(45deg); transition: transform .2s; opacity: .7; }
.fdDs.is-open .fdDsCaret { transform: translateY(2px) rotate(-135deg); }
.fdDsList {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(100% + 8px);
  z-index: 60;
  margin: 0;
  padding: 6px;
  list-style: none;
  background: #fff;
  border: 1px solid var(--fds-line);
  border-radius: 14px;
  box-shadow: 0 24px 48px -18px rgba(15,42,58,.35);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity .18s, transform .18s, visibility 0s .18s;
  max-height: 320px;
  overflow-y: auto;
}
.fdDs.is-open .fdDsList { opacity: 1; visibility: visible; transform: none; transition: opacity .18s, transform .18s; }
.fdDsOpt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin: 0;
  padding: 11px 12px;
  border-radius: 10px;
  font: 500 15px/1.2 Barlow, Arial, Helvetica, sans-serif;
  color: var(--fds-ink);
  cursor: pointer;
  transition: background-color .15s, color .15s;
}
.fdDsOpt:before { display: none !important; }
.fdDsOpt.is-active { background: var(--fds-soft); color: var(--fds-ac2); }
.fdDsOpt[aria-selected="true"] { font-weight: 700; color: var(--fds-ac2); }
.fdDsOpt[aria-selected="true"]:after { content: ""; width: 6px; height: 11px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translate(-2px, -2px); }
.fdDsOpt.is-placeholder { color: var(--fds-mut); font-weight: 500; font-size: 14px; }
.fdDsOpt.is-placeholder + .fdDsOpt { margin-top: 4px; position: relative; }
.fdDsOpt.is-placeholder { border-bottom: 1px solid #edf1f3; border-radius: 10px 10px 0 0; }

/* date picker */
.ui-datepicker.tour-datepicker-div {
  margin-top: 8px;
  padding: 12px !important;
  border: 1px solid var(--fds-line, #dfe7ea) !important;
  border-radius: 14px !important;
  box-shadow: 0 24px 48px -18px rgba(15,42,58,.35);
  font: 500 14px Barlow, Arial, Helvetica, sans-serif !important;
}
.ui-datepicker.tour-datepicker-div .ui-datepicker-header { border-bottom: 1px solid #edf1f3 !important; padding-bottom: 6px !important; margin-bottom: 6px; }
.ui-datepicker.tour-datepicker-div td a,
.ui-datepicker.tour-datepicker-div td span { border-radius: 8px !important; text-align: center; transition: background-color .15s, color .15s; }
.ui-datepicker.tour-datepicker-div td a:hover { background: #eaf8fa !important; color: #119fb0 !important; }
.ui-datepicker.tour-datepicker-div td .ui-state-active,
.ui-datepicker.tour-datepicker-div td .ui-state-highlight.ui-state-active { background: #1bbed1 !important; color: #fff !important; }
.ui-datepicker.tour-datepicker-div .ui-datepicker-prev,
.ui-datepicker.tour-datepicker-div .ui-datepicker-next { border-radius: 8px; cursor: pointer; }

@media (max-width: 992px) {
  .btSearchFormShortcode .tour_search .btSearchToursRow { flex-wrap: wrap; row-gap: 12px; }
  .btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField { padding-bottom: 0 !important; }
}
@media (max-width: 768px) {
  /* 16px text stops phones zooming in when a field is tapped */
  .btSearchFormShortcode .tour_search .btSearchField input[type="text"],
  .btSearchFormShortcode .tour_search .btSearchField input[type="number"],
  .fdDsBtn { font-size: 16px !important; }
}
@media (max-width: 480px) {
  .btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField.btFieldPrice input[type="number"] { padding-left: 44px !important; }
  .btSearchFormShortcode .tour_search .btSearchToursRow .btSearchField.btFieldPrice:before { width: 34px; }
}
@media (prefers-reduced-motion: reduce) {
  .fdDsList, .fdDsCaret, .btSearchFormShortcode .tour_search .btSearchButton button { transition: none; }
  .btSearchFormShortcode .tour_search .btSearchButton button:hover { transform: none; }
}
/* keep the open list above the following sections; soften the search card */
.bt_bb_section:has(.btSearchFormShortcode) { position: relative; z-index: 5; }
.bt_bb_column:has(> .bt_bb_column_content > .bt_bb_column_content_inner > .bt_bb_tour_search_form) {
  position: relative;
  z-index: 5;
  border-radius: 18px;
  box-shadow: 0 24px 50px -24px rgba(15,42,58,.35) !important;
}