.irf-search-tourist-train {
  --rv-form-accent: var(--rv-content-accent, #880063);
  --rv-form-border: #d5d9df;
  --rv-form-border-focus: #4788e6;
  --rv-form-content: #1f2733;
  --rv-form-field-background: #ffffff;
  --rv-form-readonly-background: #f3f4f6;
  --rv-form-radius: 12px;
  --rv-form-control-height: 44px;
}

/* Hidden elements */
.irf-search-tourist-train :where(script, input[type='hidden'], .oculto) {
  display: none !important;
}

.irf-search-tourist-train :where(.hide-accessible) {
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

/* Structure */
.irf-search-tourist-train fieldset {
  display: grid;
  gap: 1rem;
  grid-template-columns: 1fr;
  align-items: self-end;
}

.irf-search-tourist-train .col-12 {
  width: 100%;
}

.irf-search-tourist-train__col {
  display: grid;
  gap: 0.625rem;
}

/* Fonts */
.irf-search-tourist-train .o-txt {
  font-size: 1rem;
}

.irf-search-tourist-train .o-txt--bold {
  font-weight: 500;
}

/* Inputs */
.irf-search-tourist-train :where(.irf-select, .irf-input, .irf-search-tourist-train__content) {
  align-items: center;
  background-color: var(--rv-form-field-background);
  border: 1px solid var(--rv-form-border);
  border-radius: var(--rv-form-radius);
  color: var(--rv-form-content);
  display: flex;
  font-family: inherit;
  font-size: 1rem;
  font-weight: 400;
  height: var(--rv-form-control-height);
  line-height: 1.25rem;
  min-width: 0;
  padding: 0 0.875rem;
  width: 100%;
}

.irf-search-tourist-train__content {
  background: var(--rv-form-readonly-background);
}

.irf-search-tourist-train :where(.irf-select, .irf-input) {
  box-shadow: none;
  outline: none;
}

.irf-search-tourist-train .irf-select {
  appearance: none;
  background-image: url('data:image/svg+xml,%3Csvg%20id%3D%22angle-down%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2219.2%22%20height%3D%2212%22%20viewBox%3D%220%200%2016%2010%22%3E%20%20%20%3Cpath%20id%3D%22Vector%22%20d%3D%22M8%2C10a1.284%2C1.284%2C0%2C0%2C1-.942-.419L.391%2C2.439a1.5%2C1.5%2C0%2C0%2C1%2C0-2.02%2C1.271%2C1.271%2C0%2C0%2C1%2C1.885%2C0L8%2C6.554%2C13.724.42a1.271%2C1.271%2C0%2C0%2C1%2C1.885%2C0%2C1.5%2C1.5%2C0%2C0%2C1%2C0%2C2.02L8.943%2C9.583A1.285%2C1.285%2C0%2C0%2C1%2C8%2C10Z%22%20fill%3D%22%23404040%22%2F%3E%20%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: right 0.625rem center;
  background-size: 0.625rem;
  cursor: pointer;
  padding-right: 2rem;
}

.irf-search-tourist-train :where(.irf-select, .irf-input):focus-visible {
  border-color: var(--rv-form-border-focus);
  outline: 2px solid var(--rv-form-border-focus);
  outline-offset: 2px;
}

/* Calendar input */
.irf-search-tourist-train__container-ipt {
  position: relative;
}

.irf-search-tourist-train .ui-datepicker-trigger {
  position: absolute;
  width: 100%;
  height: 44px;
  top: 0;
  cursor: pointer;
  opacity: 0;
}

.irf-search-tourist-train .irf-input.hasDatepicker {
  padding-right: 2rem;
}

.irf-search-tourist-train .irf-search-tourist-train__container-ipt::before {
  content: '';
  width: 1.1rem;
  height: 2.5rem;
  position: absolute;
  right: 0.5rem;
  background-image: url('data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%3E%3Cpath%20d%3D%22M3%209H21M17%2013.0014L7%2013M10.3333%2017.0005L7%2017M7%203V5M17%203V5M6.2%2021H17.8C18.9201%2021%2019.4802%2021%2019.908%2020.782C20.2843%2020.5903%2020.5903%2020.2843%2020.782%2019.908C21%2019.4802%2021%2018.9201%2021%2017.8V8.2C21%207.07989%2021%206.51984%2020.782%206.09202C20.5903%205.71569%2020.2843%205.40973%2019.908%205.21799C19.4802%205%2018.9201%205%2017.8%205H6.2C5.0799%205%204.51984%205%204.09202%205.21799C3.71569%205.40973%203.40973%205.71569%203.21799%206.09202C3%206.51984%203%207.07989%203%208.2V17.8C3%2018.9201%203%2019.4802%203.21799%2019.908C3.40973%2020.2843%203.71569%2020.5903%204.09202%2020.782C4.51984%2021%205.07989%2021%206.2%2021Z%22%20stroke%3D%22%23000000%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: center;
}

/* Calendar modal */
.ui-datepicker {
  --rv-datepicker-background: #ffffff;
  --rv-datepicker-accent: #e40046;
  --rv-datepicker-day-selected: #cfd6dcc7;
  --rv-datepicker-day-clickable: #880063;
  --rv-datepicker-text: #1f2733;
}

.ui-datepicker.ui-widget-content:has(> *) {
  background: var(--rv-datepicker-background);
  border: 0;
  border-radius: 8px;
  box-shadow: 0 14px 32px rgba(31, 39, 51, 0.14);
  box-sizing: border-box;
  color: var(--rv-datepicker-text);
  font-family: inherit;
  padding: 0.75rem 1rem 0.55rem;
  width: 19.625rem;
  margin-top: 0.625rem;
  margin-left: 1.25rem;
  z-index: 4 !important;
}

.ui-datepicker :where(.ui-datepicker-header, .ui-widget-header) {
  padding: 0 2rem 0.75rem;
  position: static;
}

.ui-datepicker .ui-datepicker-title {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
}

.ui-datepicker :where(.ui-datepicker-prev, .ui-datepicker-next) {
  align-items: center;
  background: var(--rv-datepicker-background);
  border-radius: 50%;
  box-shadow: 0 4px 14px rgba(31, 39, 51, 0.12);
  color: var(--rv-datepicker-accent);
  cursor: pointer;
  display: flex;
  height: 1.625rem;
  justify-content: center;
  position: absolute;
  text-decoration: none;
  top: 50%;
  transform: translateY(-50%);
  width: 1.625rem;
}

.ui-datepicker .ui-datepicker-prev {
  left: -0.8125rem;
}

.ui-datepicker .ui-datepicker-next {
  right: -0.8125rem;
}

.ui-datepicker .ui-datepicker-prev::before {
  content: '\2039';
}

.ui-datepicker .ui-datepicker-next::before {
  content: '\203A';
}

.ui-datepicker :where(.ui-datepicker-prev, .ui-datepicker-next) span {
  clip: rect(0 0 0 0);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

.ui-datepicker .ui-datepicker-calendar {
  border-collapse: collapse;
  table-layout: fixed;
  width: 100%;
}

.ui-datepicker .ui-datepicker-calendar :where(th, td) {
  border: 0;
  padding: 0;
  text-align: center;
}

.ui-datepicker .ui-datepicker-calendar th {
  font-size: 0.625rem;
  font-weight: 700;
  height: 1.6rem;
  line-height: 1;
  text-transform: uppercase;
}

.ui-datepicker .ui-datepicker-calendar td {
  font-size: 1rem;
  height: 2.1rem;
}

.ui-datepicker .ui-datepicker-week-col {
  font-size: 0.5rem;
  font-weight: 700;
}

.ui-datepicker :where(.ui-state-default, .ui-widget-content .ui-state-default) {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 50%;
  color: inherit;
  display: inline-flex;
  height: 1.625rem;
  justify-content: center;
  line-height: 1;
  text-decoration: none;
  width: 1.625rem;
}

.ui-datepicker .ui-state-disabled {
  cursor: default;
}

.ui-datepicker .ui-datepicker-week-end .ui-state-default,
.ui-datepicker td[data-handler='selectDay'] .ui-state-default {
  font-weight: 700;
}

.ui-datepicker td[data-handler='selectDay'] .ui-state-default {
  background: var(--rv-datepicker-day-selected);
}

.ui-datepicker td[data-handler='selectDay'] .ui-state-default:hover {
  background: var(--rv-datepicker-day-clickable);
  color: var(--rv-datepicker-background);
}

.ui-datepicker :where(a, .ui-datepicker-prev, .ui-datepicker-next):focus-visible {
  outline: 2px solid var(--rv-form-border-focus, #4788e6);
  outline-offset: 2px;
}

@media only screen and (max-width: 360px) {
  .ui-datepicker {
    width: calc(100vw - 2rem);
  }

  .ui-datepicker .ui-datepicker-prev {
    left: 0.35rem;
  }

  .ui-datepicker .ui-datepicker-next {
    right: 0.35rem;
  }
}

/* Button */
.irf-search-tourist-train__btn {
  align-items: center;
  background: var(--rv-form-accent);
  border: 2px solid var(--rv-form-accent);
  border-radius: 0.75rem;
  color: #ffffff;
  cursor: pointer;
  display: inline-flex;
  font-family: inherit;
  font-size: 1.125rem;
  font-weight: 500;
  line-height: 1.5rem;
  justify-content: center;
  line-height: 1.25rem;
  min-width: 9.75rem;
  padding: 0.625rem 0.75rem;
  text-align: center;
  width: 100%;
}

.irf-search-tourist-train__btn:focus-visible {
  outline: 2px solid var(--rv-form-border-focus);
  outline-offset: 2px;
}

/* Responsive adjustments */
@media only screen and (min-width: 834px) {
  .irf-search-tourist-train fieldset {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    row-gap: 1.5rem;
  }
}

@media only screen and (min-width: 1440px) {
  .irf-search-tourist-train fieldset {
    column-gap: 1.5rem;
    row-gap: 1rem;
    grid-template-columns:
      minmax(11.75rem, 1.25fr)
      minmax(8.875rem, 0.95fr)
      minmax(8rem, 0.85fr)
      minmax(10.625rem, 1.15fr)
      minmax(6.5rem, 0.7fr)
      minmax(6.875rem, 0.75fr);
  }

  .ui-datepicker.ui-widget-content:has(> *) {
    margin-left: 0;
  }
}
