/* Canonical public search controls.
 *
 * Ownership boundary:
 * - direction plugins own submitted names, options, validation and layout;
 * - the AzerGid theme owns presentation and progressive enhancement.
 *
 * The car catalogue is the visual reference.  The extra contract class is
 * attached by catalog-city-combobox.js so these rules outrank later
 * direction-specific fallback CSS without touching plugin business code.
 */

.ag-catalog-search.ag-public-search-contract {
  --ag-public-text: #10233b;
  --ag-public-muted: #748194;
  --ag-public-control-bg: #fbf9f7a6;
  --ag-public-control-border: #d8e0e7;
  --ag-public-control-hover: #fff;
  --ag-public-radius-control: 10px;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location {
  box-sizing: border-box;
  min-width: 0;
  min-height: 64px;
  margin: 0;
  display: grid;
  grid-template-rows: auto 36px;
  align-content: center;
  gap: 5px;
  padding: 8px 11px;
  border: 1px solid var(--ag-public-control-border);
  border-radius: var(--ag-public-radius-control);
  background: var(--ag-public-control-bg);
  color: var(--ag-public-muted);
  font: 500 11px/1.35 var(--font-ui);
  transition: border-color .16s ease, background-color .16s ease, box-shadow .16s ease;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location:hover,
.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location:focus-within {
  border-color: #bdcbd6;
  background: var(--ag-public-control-hover);
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location:focus-within {
  box-shadow: inset 0 0 0 1px rgba(22, 130, 189, .18);
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location > span:first-child,
.ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location > label:first-child {
  margin: 0;
  padding: 0;
  color: var(--ag-public-muted);
  font: 500 11px/1.35 var(--font-ui);
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control {
  position: relative;
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
  min-width: 0;
  min-height: 36px;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control > .ag-icon,
.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control > .ag-home-icon {
  position: relative;
  z-index: 1;
  width: 17px;
  height: 17px;
  margin: 0;
  color: #2f7799;
  pointer-events: none;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control > select {
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  margin: 0;
  padding: 0 28px 0 0;
  border: 0;
  border-radius: 0;
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent;
  background-image: url("../icons/partner-ui/chevron-down.svg");
  background-repeat: no-repeat;
  background-position: right 3px center;
  background-size: 13px 13px;
  color: var(--ag-public-text);
  box-shadow: none;
  font: 600 13px/1.35 var(--font-ui);
  cursor: pointer;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control > select:focus-visible {
  outline: 0;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control.is-enhanced > .ag-catalog-city-native {
  display: none;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox {
  position: relative;
  display: block;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 36px;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: 36px;
  min-height: 36px;
  margin: 0;
  padding: 0 30px 0 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  color: var(--ag-public-text);
  box-shadow: none;
  font: 600 13px/1.35 var(--font-ui);
  text-overflow: ellipsis;
  cursor: text;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox:not(.is-open) .ag-catalog-city-combobox__input {
  cursor: pointer;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox.is-open .ag-catalog-city-combobox__input {
  cursor: text;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-location-control {
  cursor: pointer;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__input:focus {
  outline: 0;
  box-shadow: none;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__toggle {
  position: absolute;
  box-sizing: border-box;
  top: 0;
  right: 0;
  width: 28px;
  height: 36px;
  min-width: 28px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent url("../icons/partner-ui/chevron-down.svg") center / 13px 13px no-repeat;
  box-shadow: none;
  cursor: pointer;
  transition: transform .16s ease;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox.is-open .ag-catalog-city-combobox__toggle {
  transform: rotate(180deg);
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__listbox {
  position: absolute;
  z-index: calc(var(--z-dropdown, 100) + 3);
  top: calc(100% + 9px);
  left: -25px;
  width: calc(100% + 25px);
  min-width: 260px;
  max-height: 264px;
  margin: 0;
  padding: 6px;
  overflow-y: auto;
  border: 1px solid #d8e0e6;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 16px 36px rgba(16, 35, 59, .14);
  box-sizing: border-box;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__listbox[hidden] {
  display: none;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__option {
  display: flex;
  width: 100%;
  min-height: 40px;
  align-items: center;
  margin: 0;
  padding: 9px 11px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #283d52;
  font: 500 13px/1.35 var(--font-ui);
  text-align: left;
  cursor: pointer;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__option:hover,
.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__option.is-active {
  background: #f1f6f8;
  color: #156f9c;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__option[aria-selected="true"] {
  color: #10233b;
  font-weight: 700;
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__option[aria-selected="true"]::before {
  content: "";
  flex: 0 0 auto;
  width: 6px;
  height: 10px;
  margin: -2px 10px 0 2px;
  border-right: 2px solid #6f946f;
  border-bottom: 2px solid #6f946f;
  transform: rotate(45deg);
}

.ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__empty {
  display: block;
  padding: 12px;
  color: var(--ag-public-muted);
  font: 500 12px/1.35 var(--font-ui);
}

/* -------------------------------------------------------------------------
 * Unified non-car service search
 * -------------------------------------------------------------------------
 * One visual contract for Housing / Excursions / Transfers / Beauty / Places.
 * Direction plugins own grid columns and business semantics; the theme owns
 * every field surface inside that grid.  Auto is deliberately excluded by the
 * route-scoped body class added in functions.php.
 */

.ag-service-catalog-page .ag-catalog-search {
  --ag-service-field-height: 64px;
  --ag-service-value-height: 36px;
  --ag-service-field-gap: 4px;
  --ag-service-field-pad-y: 4px;
  --ag-service-field-pad-x: 11px;
  --ag-service-control-border: #d8e0e7;
  --ag-service-control-bg: #fbf9f7a6;
  --ag-service-control-hover: #fff;
  align-items: stretch;
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-field-height);
  min-height: var(--ag-service-field-height);
  max-height: var(--ag-service-field-height);
  margin: 0;
  padding: var(--ag-service-field-pad-y) var(--ag-service-field-pad-x);
  border: 1px solid var(--ag-service-control-border);
  border-radius: var(--ag-public-radius-control, 10px);
  background: var(--ag-service-control-bg);
  color: var(--ag-public-muted, #748194);
  box-shadow: none;
  overflow: visible;
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper {
  display: grid;
  grid-template-rows: 14px var(--ag-service-value-height);
  align-content: center;
  gap: var(--ag-service-field-gap);
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field:hover,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field:focus-within,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper:hover,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper:focus-within,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field:hover,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field:focus-within {
  border-color: #bdcbd6;
  background: var(--ag-service-control-hover);
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field:focus-within,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper:focus-within,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field:focus-within {
  box-shadow: inset 0 0 0 1px rgba(22, 130, 189, .18);
}

/* One label style everywhere. */
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field > span:first-child,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field > label:first-child,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper > .ag-number-stepper__label,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field > .ag-date-time-field__legend,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__field > .ag-field__label {
  width: 100%;
  min-width: 0;
  margin: 0;
  padding: 0;
  color: var(--ag-public-muted, #748194);
  font: 500 11px/14px var(--font-ui);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Generic simple field value row: select, text, date and plugin fallbacks. */
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field .ag-catalog-search-value,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field .azg-date-control,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field .ag-catalog-date-control,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field .ag-catalog-location-control {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
  margin: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field .ag-catalog-search-value {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--ag-public-text, #10233b);
  font: 600 13px/18px var(--font-ui);
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field input,
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field select {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
  margin: 0;
  border: 0;
  border-radius: 0;
  outline: 0;
  background-color: transparent;
  color: var(--ag-public-text, #10233b);
  box-shadow: none;
  font: 600 13px/18px var(--font-ui);
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field select {
  cursor: pointer;
}

.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field input::placeholder {
  color: var(--ag-public-muted, #748194);
  font-weight: 500;
  opacity: 1;
}

/* Searchable selects share one fixed, non-resizing row. */
.ag-service-catalog-page .ag-catalog-search .ag-catalog-location-control {
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  align-items: center;
  gap: 8px;
}

.ag-service-catalog-page .ag-catalog-search .ag-catalog-location-control[style*="grid-template-columns:minmax(0,1fr)"],
.ag-service-catalog-page .ag-catalog-search .ag-catalog-location-control[style*="grid-template-columns: minmax(0,1fr)"],
.ag-service-catalog-page .ag-catalog-search .ag-catalog-location-control[style*="grid-template-columns:minmax(0, 1fr)"],
.ag-service-catalog-page .ag-catalog-search .ag-catalog-location-control[style*="grid-template-columns: minmax(0, 1fr)"] {
  grid-template-columns: minmax(0, 1fr);
}

.ag-service-catalog-page .ag-catalog-search .ag-catalog-city-combobox,
.ag-service-catalog-page .ag-catalog-search .ag-catalog-city-combobox__input,
.ag-service-catalog-page .ag-catalog-search .ag-catalog-city-combobox__toggle {
  box-sizing: border-box;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
}

.ag-service-catalog-page .ag-catalog-search .ag-catalog-city-combobox__input {
  font: 600 13px/18px var(--font-ui);
}

/* Housing date range becomes the exact same 64px card system, not a special
 * label-outside variant. The wrapper keeps the plugin's grid span only. */
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-field-height);
  min-height: var(--ag-service-field-height);
  max-height: var(--ag-service-field-height);
  margin: 0;
  gap: 0;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field > .ag-date-range-field__controls {
  width: 100%;
  min-width: 0;
  height: var(--ag-service-field-height);
  min-height: var(--ag-service-field-height);
  max-height: var(--ag-service-field-height);
  align-items: stretch;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__field {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-field-height);
  min-height: var(--ag-service-field-height);
  max-height: var(--ag-service-field-height);
  display: grid;
  grid-template-rows: 14px var(--ag-service-value-height);
  align-content: center;
  gap: var(--ag-service-field-gap);
  margin: 0;
  padding: var(--ag-service-field-pad-y) var(--ag-service-field-pad-x);
  border: 1px solid var(--ag-service-control-border);
  border-radius: var(--ag-public-radius-control, 10px);
  background: var(--ag-service-control-bg);
  box-shadow: none;
  overflow: visible;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__field:hover,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__field:focus-within {
  border-color: #bdcbd6;
  background: var(--ag-service-control-hover);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__field:focus-within {
  box-shadow: inset 0 0 0 1px rgba(22, 130, 189, .18);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__control,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__input,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__display {
  box-sizing: border-box;
  min-width: 0;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__input,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__display {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ag-public-text, #10233b);
  font: 600 13px/18px var(--font-ui);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__display:hover,
.ag-service-catalog-page .ag-catalog-search > .ag-date-range-field .ag-date-range-field__display:focus-visible {
  border: 0;
  background: transparent;
  box-shadow: none;
}

/* Transfer date+time is one 64px card with one label and a fixed 36px row. */
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field {
  display: grid;
  grid-template-rows: 14px var(--ag-service-value-height);
  align-content: center;
  gap: var(--ag-service-field-gap);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field > .ag-date-time-field__controls {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(112px, .65fr);
  gap: 0;
  align-items: stretch;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__field {
  min-width: 0;
  display: block;
  margin: 0;
  padding: 0;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__field > .ag-field__label {
  display: none;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__field + .ag-date-time-field__field {
  border-inline-start: 1px solid var(--ag-service-control-border);
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__control,
.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__input {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
  margin: 0;
}

.ag-service-catalog-page .ag-catalog-search > .ag-date-time-field .ag-date-time-field__input {
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  color: var(--ag-public-text, #10233b);
  font: 600 13px/18px var(--font-ui);
}

/* Guests / passengers / participants use the same 64px card shell. */
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper > .ag-number-stepper__control {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
  grid-template-columns: 36px minmax(36px, 1fr) 36px;
  margin: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  box-shadow: none;
  overflow: hidden;
}

.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper .ag-number-stepper__button,
.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper .ag-number-stepper__input {
  box-sizing: border-box;
  min-width: 36px;
  height: var(--ag-service-value-height);
  min-height: var(--ag-service-value-height);
  max-height: var(--ag-service-value-height);
}

.ag-service-catalog-page .ag-catalog-search > .ag-number-stepper .ag-number-stepper__input {
  color: var(--ag-public-text, #10233b);
  font: 600 13px/1 var(--font-ui);
}

/* One button geometry for every non-car catalogue. */
.ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-button {
  box-sizing: border-box;
  height: var(--ag-service-field-height);
  min-height: var(--ag-service-field-height);
  max-height: var(--ag-service-field-height);
  margin: 0;
  align-self: stretch;
  border-radius: var(--ag-public-radius-control, 10px);
  font: 700 13px/1.2 var(--font-ui);
}

/* Never let interaction alter any desktop row measurement. */
@media (min-width: 768px) {
  .ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field,
  .ag-service-catalog-page .ag-catalog-search > .ag-date-range-field,
  .ag-service-catalog-page .ag-catalog-search > .ag-date-time-field,
  .ag-service-catalog-page .ag-catalog-search > .ag-number-stepper,
  .ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-button {
    block-size: var(--ag-service-field-height);
  }
}

@media (max-width: 767px) {
  .ag-catalog-search.ag-public-search-contract .ag-catalog-search-field--location {
    min-height: 58px;
    padding: 7px 9px;
  }

  .ag-catalog-search.ag-public-search-contract .ag-catalog-city-combobox__listbox {
    min-width: 0;
  }

  .ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-field,
  .ag-service-catalog-page .ag-catalog-search > .ag-number-stepper {
    min-height: var(--ag-service-field-height);
    padding: var(--ag-service-field-pad-y) var(--ag-service-field-pad-x);
  }

  .ag-service-catalog-page .ag-catalog-search > .ag-date-time-field,
  .ag-service-catalog-page .ag-catalog-search > .ag-date-range-field {
    height: auto;
    max-height: none;
  }

  .ag-service-catalog-page .ag-catalog-search > .ag-date-range-field > .ag-date-range-field__controls {
    height: auto;
    max-height: none;
  }

  .ag-service-catalog-page .ag-catalog-search > .ag-date-time-field > .ag-date-time-field__controls {
    height: auto;
    max-height: none;
  }

  .ag-service-catalog-page .ag-catalog-search > .ag-catalog-search-button {
    height: var(--ag-service-field-height);
    min-height: var(--ag-service-field-height);
    max-height: var(--ag-service-field-height);
  }
}
