* {
  box-sizing: border-box;
  scroll-behavior: smooth;
}

body {
  background-color: #ffffff;
  margin: 0px;
  padding: 0px;
  font-family: "Manrope", "Inter", Arial, sans-serif;
}

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 0px;
}

.menu_container {
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 25px 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: fixed;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1000;
  isolation: isolate;
}

.menu_container::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%) translateY(-105%);
  transform-origin: top center;
  background-color: #ffffff;
  box-shadow: 0 0 0 rgba(0, 0, 0, 0);
  opacity: 0;
  z-index: -2;
  pointer-events: none;
  transition: transform 0.52s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.22s ease,
    box-shadow 0.35s ease;
}

@media (prefers-reduced-motion: reduce) {.menu_container::before,
  .menu_container::after,
  .menu_logo,
  .menu_link,
  .menu_link svg path,
  .menu_select,
  .menu_icon,
  .menu_language svg path,
  .menu_favorite svg path,
  .menu_bag svg path,
  .menu_profile svg path {
  transition: none !important;
  animation: none !important;
}

.menu_container.menu_scrolled::after {
  opacity: 0.55;
  transform: translateX(-50%) scaleY(1);
}}

.menu_container::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -10px;
  width: 100vw;
  height: 12px;
  transform: translateX(-50%) scaleY(0);
  transform-origin: top center;
  background: linear-gradient(to bottom,
      rgba(20, 28, 38, 0.1) 0%,
      rgba(20, 28, 38, 0.035) 35%,
      rgba(20, 28, 38, 0) 100%);
  filter: blur(0.2px);
  opacity: 0;
  z-index: -3;
  pointer-events: none;
}

.menu_container.menu_scrolled::before {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.035),
    0 8px 28px rgba(0, 0, 0, 0.055);
}

.menu_container.menu_scrolled::after {
  animation: menuGlueCatch 0.62s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes menuGlueCatch {
0% {
  opacity: 0;
  transform: translateX(-50%) scaleY(0);
}

32% {
  opacity: 0.95;
  transform: translateX(-50%) scaleY(1.85);
}

58% {
  opacity: 0.72;
  transform: translateX(-50%) scaleY(0.58);
}

76% {
  opacity: 0.62;
  transform: translateX(-50%) scaleY(1.15);
}

100% {
  opacity: 0.55;
  transform: translateX(-50%) scaleY(1);
}
}

.menu_container ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.menu_logo {
  margin: 0;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 28px;
  font-weight: 500;
  color: #ffffff94;
  transition: color 0.32s ease;
}

.menu_container.menu_scrolled .menu_logo {
  color: #535353;
}

.menu_nav {
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0;
  padding: 0;
}

.menu_nav>li {
  position: relative;
}

.menu_item_has_dropdown {
  padding: 12px 0;
  margin: -12px 0;
}

.menu_link {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 16px;
  font-weight: 300;
  color: #ffffff;
  text-decoration: none;
  transition: color 0.32s ease;
}

.menu_link svg path {
  fill: currentColor;
  transition: fill 0.32s ease;
}

.menu_link:hover {
  color: #4094fa;
}

.menu_container.menu_scrolled .menu_link {
  color: #535353;
}

.menu_container.menu_scrolled .menu_link:hover {
  color: #4094fa;
}

.menu_item_has_dropdown>.menu_link svg {
  transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}

.menu_item_has_dropdown:hover>.menu_link,
.menu_item_has_dropdown:focus-within>.menu_link {
  color: #4094fa;
}

.menu_item_has_dropdown:hover>.menu_link svg,
.menu_item_has_dropdown:focus-within>.menu_link svg {
  transform: rotate(180deg);
}

.menu_dropdown {
  position: absolute;
  top: calc(100% + 13px);
  background: rgba(255, 255, 255, 0.985);
  border: 1px solid rgba(25, 44, 69, 0.07);
  box-shadow: 0 26px 70px rgba(15, 35, 60, 0.17);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(12px);
  transition: opacity 0.2s ease,
    visibility 0.2s ease,
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  z-index: 30;
}

.menu_dropdown::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -22px;
  height: 24px;
}

.menu_item_has_dropdown:hover>.menu_dropdown,
.menu_item_has_dropdown:focus-within>.menu_dropdown {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.menu_container.menu_dropdown_open::before {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.035),
    0 8px 28px rgba(0, 0, 0, 0.055);
}

.menu_container.menu_dropdown_open .menu_logo,
.menu_container.menu_dropdown_open .menu_link,
.menu_container.menu_dropdown_open .menu_select,
.menu_container.menu_dropdown_open .menu_icon {
  color: #535353;
}

.menu_container.menu_dropdown_open .menu_item_has_dropdown:hover>.menu_link,
.menu_container.menu_dropdown_open .menu_item_has_dropdown:focus-within>.menu_link {
  color: #4094fa;
}

.menu_dropdown_label {
  margin: 0 0 16px;
  color: #9ca3af;
  font-family: Manrope, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.destinations_dropdown {
  position: fixed;
  top: 86px;
  left: 50%;
  width: min(1440px, calc(100vw - 40px));
  padding: 36px 40px 34px;
  border-radius: 0 0 20px 20px;
  display: grid;
  grid-template-columns: 510px minmax(0, 1fr);
  gap: 42px;
  transform: translate(-50%, 12px);
}

.menu_item_has_dropdown:hover>.destinations_dropdown,
.menu_item_has_dropdown:focus-within>.destinations_dropdown {
  transform: translate(-50%, 0);
}

.destinations_dropdown_links {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1.35fr;
  align-content: start;
  gap: 18px 42px;
  padding-right: 42px;
  border-right: 1px solid #e8ebef;
}

.destinations_dropdown_group {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}

.menu_dropdown_link {
  position: relative;
  color: #293241;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.35;
  text-decoration: none;
  transition: color 0.18s ease,
    transform 0.18s ease;
}

.menu_dropdown_link:focus {
  outline: none;
}

.menu_dropdown_link:focus-visible {
  border-radius: 3px;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.16);
}

.menu_dropdown_link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: -3px;
  height: 1px;
  background: #4094fa;
  transition: right 0.22s ease;
}

.menu_dropdown_link:hover,
.menu_dropdown_link:focus-visible,
.menu_dropdown_link.is_featured {
  color: #4094fa;
}

.menu_dropdown_link:hover::after,
.menu_dropdown_link:focus-visible::after {
  right: 0;
}

.destinations_dropdown_all {
  grid-column: 1 / -1;
  width: fit-content;
  margin-top: 8px;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #4094fa;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
}

.destinations_dropdown_all svg {
  transition: transform 0.2s ease;
}

.destinations_dropdown_all:hover svg {
  transform: translateX(4px);
}

.destinations_dropdown_featured {
  min-width: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}

.destination_preview {
  min-width: 0;
  color: #293241;
  text-decoration: none;
  opacity: 1;
  transform: translateY(0);
  transition: opacity 0.16s ease,
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}

.destinations_dropdown_featured.is_changing .destination_preview {
  opacity: 0;
  transform: translateY(7px);
}

.destination_preview_image {
  position: relative;
  display: block;
  height: 170px;
  margin-bottom: 12px;
  overflow: hidden;
  border-radius: 12px;
  background: #eef3f7;
}

.destination_preview_image img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
    filter 0.3s ease;
}

.destination_preview_arrow {
  position: absolute;
  right: 12px;
  top: 12px;
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.88);
  color: #293241;
  font-size: 16px;
  opacity: 0;
  transform: translateY(6px);
  transition: opacity 0.22s ease,
    transform 0.22s ease;
  backdrop-filter: blur(8px);
}

.destination_preview strong,
.destination_preview small {
  display: block;
}

.destination_preview strong {
  margin-bottom: 2px;
  font-size: 16px;
  font-weight: 600;
  transition: color 0.18s ease;
}

.destination_preview small {
  color: #9ca3af;
  font-size: 13px;
  font-weight: 300;
}

.destination_preview:hover .destination_preview_image img {
  transform: scale(1.055);
  filter: saturate(1.07);
}

.destination_preview:hover .destination_preview_arrow {
  opacity: 1;
  transform: translateY(0);
}

.destination_preview:hover strong {
  color: #4094fa;
}

.support_dropdown {
  left: 50%;
  width: 248px;
  padding: 22px;
  border-radius: 14px;
  transform: translate(-50%, 12px);
}

.menu_item_has_dropdown:hover>.support_dropdown,
.menu_item_has_dropdown:focus-within>.support_dropdown {
  transform: translate(-50%, 0);
}

.support_dropdown .menu_dropdown_label {
  padding: 0 6px 12px;
  margin-bottom: 6px;
  border-bottom: 1px solid #edf0f3;
}

.support_dropdown>a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 8px;
  border-radius: 8px;
  color: #293241;
  font-size: 15px;
  text-decoration: none;
  transition: color 0.18s ease,
    background-color 0.18s ease,
    padding-left 0.18s ease;
}

.support_dropdown>a>span:last-child {
  color: #4094fa;
  opacity: 0;
  transform: translate(-4px, 3px);
  transition: opacity 0.18s ease,
    transform 0.18s ease;
}

.support_dropdown>a:hover,
.support_dropdown>a:focus-visible {
  padding-left: 12px;
  background: #f3f8ff;
  color: #4094fa;
}

.support_dropdown>a:hover>span:last-child,
.support_dropdown>a:focus-visible>span:last-child {
  opacity: 1;
  transform: translate(0, 0);
}

.menu_inner:last-child {
  display: flex;
  align-items: center;
  gap: 12px;
}

.menu_logo_link {
  text-decoration: none;
}

.menu_select,
.menu_icon {
  cursor: pointer;
  transition: background-color 0.18s ease,
    color 0.32s ease;
}

.menu_select {
  height: 42px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 12px;
  border-radius: 6px;
  color: #ffffff;
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
}

.menu_language svg path {
  stroke: currentColor;
  transition: stroke 0.32s ease;
}

.menu_arrow {
  width: 8px;
  height: 8px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-left: 2px;
  margin-top: -4px;
  transition: border-color 0.32s ease;
}

.menu_icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  color: #ffffff;
}

.menu_favorite svg path {
  stroke: currentColor;
  transition: stroke 0.32s ease;
}

.menu_bag svg path {
  fill: currentColor;
  transition: fill 0.32s ease;
}

.menu_profile svg path {
  stroke: currentColor;
  transition: stroke 0.32s ease;
}

.menu_container.menu_scrolled .menu_select,
.menu_container.menu_scrolled .menu_icon {
  color: #535353;
}

.menu_select:hover,
.menu_icon:hover {
  background-color: #efefef;
  color: #535353;
}

.header {
  position: relative;
  height: 100vh;
  min-height: 680px;
  background: #111923;
}

.hero_slider {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background: #111923;
  touch-action: pan-y;
}

.hero_slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transform: scale(1.045);
  transition: opacity 0.9s ease,
    transform 6.8s cubic-bezier(0.2, 0.7, 0.2, 1);
  pointer-events: none;
}

.hero_slide.is_active {
  opacity: 1;
  transform: scale(1);
}

.hero_slide img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  filter: none;
  user-select: none;
  -webkit-user-drag: none;
  -webkit-user-select: none;
}

.hero_slider_overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: linear-gradient(90deg,
      rgba(0, 0, 0, 0.28) 0%,
      rgba(0, 0, 0, 0.04) 48%,
      rgba(0, 0, 0, 0.18) 100%),
    linear-gradient(180deg,
      rgba(0, 0, 0, 0.34) 0%,
      rgba(0, 0, 0, 0.06) 43%,
      rgba(0, 0, 0, 0.38) 100%);
  pointer-events: none;
}

.hero_slider_arrow {
  position: absolute;
  top: auto;
  bottom: 28px;
  z-index: 5;
  width: 50px;
  height: 50px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, 0.42);
  border-radius: 50%;
  background: rgba(14, 23, 35, 0.18);
  color: #ffffff;
  cursor: pointer;
  opacity: 0.7;
  transform: translateY(0);
  transition: opacity 0.2s ease,
    background-color 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.hero_slider_prev {
  left: auto;
  right: 110px;
}

.hero_slider_next {
  right: 50px;
}

.hero_slider_arrow:hover,
.hero_slider_arrow:focus-visible {
  opacity: 1;
  border-color: rgba(255, 255, 255, 0.72);
  background: rgba(64, 148, 250, 0.85);
}

.hero_slider_prev:hover,
.hero_slider_prev:focus-visible {
  transform: translateY(-3px);
}

.hero_slider_next:hover,
.hero_slider_next:focus-visible {
  transform: translateY(-3px);
}

.hero_slider_pagination {
  position: absolute;
  left: 50%;
  bottom: 48px;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 9px;
  transform: translateX(-50%);
}

.hero_slider_dot {
  position: relative;
  width: 34px;
  height: 3px;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 20px;
  background: rgba(255, 255, 255, 0.36);
  cursor: pointer;
  transition: width 0.25s ease,
    background-color 0.25s ease;
}

.hero_slider_dot::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #ffffff;
  border-radius: inherit;
  transform: scaleX(0);
  transform-origin: left center;
}

.hero_slider_dot.is_active {
  width: 54px;
}

.hero_slider_dot.is_active::after {
  animation: heroSlideProgress 6.5s linear forwards;
}

.hero_slider.is_paused .hero_slider_dot.is_active::after {
  animation-play-state: paused;
}

.hero_slider_counter {
  position: absolute;
  left: 50px;
  bottom: 42px;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 10px;
  color: rgba(255, 255, 255, 0.78);
  font-family: Montserrat, Arial, sans-serif;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.08em;
}

.hero_slider_current {
  color: #ffffff;
}

.hero_slider_counter_line {
  width: 32px;
  height: 1px;
  background: rgba(255, 255, 255, 0.5);
}

@keyframes heroSlideProgress {
to {
  transform: scaleX(1);
}
}

@media (prefers-reduced-motion: reduce) {.menu_dropdown,
  .menu_item_has_dropdown>.menu_link svg,
  .destination_preview_image img,
  .hero_slide,
  .hero_slider_arrow,
  .hero_slider_dot {
  transition: none !important;
}

.hero_slider_dot.is_active::after {
  animation: none !important;
  transform: scaleX(1);
}}

.hero_container {
  position: relative;
  z-index: 4;
  pointer-events: none;
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  justify-content: center;
  height: 90vh;
}

.hero_texts {
  text-align: center;
  pointer-events: auto;
  -webkit-user-select: text;
  user-select: text;
}

.hero_text_title {
  font-family: Montserrat, Arial, sans-serif;
  letter-spacing: 1%;
  font-size: 40px;
  color: #ffffff;
  font-weight: 400;
}

.hero_text {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 64px;
  color: #ffffff;
  font-weight: 600;
  letter-spacing: 18%;
}

.hero_text_desc {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 16px;
  letter-spacing: 15%;
  text-align: center;
  color: #ffffff;
  margin-top: 12px;
}

.search_form {
  position: relative;
  pointer-events: auto;
  border-radius: 20px;
  background-color: #ffffff;
  margin-top: 25px;
  padding: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
}

.search_text p {
  font-weight: 300;
  font-size: 16px;
  color: #363636a1;
}

.search_text h1 {
  color: #363636;
  font-size: 20px;
  font-weight: 400;
  margin-top: 2px;
}

.search_inner {
  position: relative;
  border-right: 1px solid #d9d9d9;
  flex-shrink: 0;
}

.search_inner:last-child,
.search_inner_button {
  border-right: 0;
}

.search_inner:nth-child(2),
.search_inner:nth-child(3),
.search_inner:nth-child(4),
.search_inner:nth-child(5) {
  margin-left: 20px;
}

.search_inner[data-search="destination"] {
  width: 205px;
}

.search_inner[data-search="checkin"] {
  width: 168px;
}

.search_inner[data-search="checkout"] {
  width: 185px;
}

.search_inner[data-search="guests"] {
  width: 270px;
}

.search_inner_button {
  width: 70px;
}

.search_inside {
  width: 100%;
  min-height: 50px;
  padding-right: 18px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  user-select: none;
}

.search_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

.search_text_guests {
  min-width: 0;
}

#guestsValue {
  width: 190px;
  max-width: 190px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search_btn {
  width: 50px;
  height: 50px;
  padding: 0;
  border-radius: 50%;
  background-color: #4094fa;
  cursor: pointer;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease,
    background-color 0.2s ease;
}

.search_btn:hover {
  background-color: #2684f5;
  transform: scale(1.05);
}

.search_btn:active {
  transform: scale(0.95);
}

.search_popup {
  position: absolute;
  top: calc(100% + 12px);
  left: 0;
  background-color: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.04);
  border-radius: 20px;
  box-shadow: 0 18px 48px rgba(0, 0, 0, 0.14),
    0 4px 12px rgba(0, 0, 0, 0.05);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition: opacity 0.18s ease,
    transform 0.18s ease,
    visibility 0.18s ease;
  z-index: 1000;
  margin-top: 20px;
}

.search_inner.active .search_popup {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}

.search_inner.active .search_text h1 {
  color: #4094fa;
}

.search_inner.active .search_icon svg path {
  fill: #4094fa;
}

.search_destination {
  width: 420px;
  padding: 14px;
}

.search_destination_input {
  margin-bottom: 12px;
}

.search_destination_input input {
  width: 100%;
  height: 52px;
  border: 1px solid #e5e5e5;
  border-radius: 14px;
  padding: 0 16px;
  outline: none;
  font-family: inherit;
  font-size: 15px;
  color: #363636;
  background-color: #ffffff;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.search_destination_input input:focus {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.1);
}

.search_destination_input input::placeholder {
  color: #a5a5a5;
}

.search_destination_list {
  max-height: 370px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 4px;
}

.search_destination_list::-webkit-scrollbar {
  width: 6px;
}

.search_destination_list::-webkit-scrollbar-track {
  background: transparent;
}

.search_destination_list::-webkit-scrollbar-thumb {
  background-color: #d6d6d6;
  border-radius: 20px;
}

.search_destination_list button {
  width: 100%;
  min-height: 70px;
  border: 0;
  background-color: transparent;
  padding: 8px;
  border-radius: 14px;
  cursor: pointer;
  text-align: left;
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 13px;
  transition: background-color 0.15s ease;
}

.search_destination_list button:hover {
  background-color: #f5f9ff;
}

.search_destination_photo {
  width: 56px;
  height: 56px;
  min-width: 56px;
  border-radius: 12px;
  overflow: hidden;
  background-color: #eef1f5;
  background-size: cover;
  background-position: center;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.035);
}

.search_destination_info {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.search_destination_info span {
  font-size: 15px;
  font-weight: 500;
  color: #363636;
}

.search_destination_info small {
  font-size: 12px;
  font-weight: 300;
  color: #999999;
}

.search_calendar {
  width: 350px;
  padding: 20px;
}

.search_calendar_top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.search_calendar_month_title {
  font-size: 17px;
  font-weight: 500;
  color: #363636;
}

.search_calendar_prev,
.search_calendar_next {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  border: 1px solid #eeeeee;
  background-color: #ffffff;
  cursor: pointer;
  font-size: 18px;
  color: #363636;
  transition: 0.15s ease;
}

.search_calendar_prev:hover,
.search_calendar_next:hover {
  background-color: #f5f9ff;
  border-color: #4094fa;
  color: #4094fa;
}

.search_calendar_days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  margin-bottom: 8px;
}

.search_calendar_days span {
  text-align: center;
  font-size: 12px;
  color: #a1a1a1;
}

.search_calendar_dates {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.search_calendar_date {
  aspect-ratio: 1;
  border: 0;
  border-radius: 50%;
  background-color: transparent;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  color: #363636;
  transition: 0.15s ease;
}

.search_calendar_date:hover:not(:disabled) {
  background-color: #eef6ff;
  color: #4094fa;
}

.search_calendar_date.selected {
  background-color: #4094fa;
  color: #ffffff;
}

.search_calendar_date.in-range {
  background-color: #eef6ff;
  border-radius: 8px;
  color: #4094fa;
}

.search_calendar_date:disabled {
  color: #d0d0d0;
  cursor: default;
}

.search_calendar_empty {
  pointer-events: none;
}

.search_guests {
  width: 340px;
  padding: 10px 20px;
  left: auto;
  right: 0;
}

.search_guest_row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 0;
  border-bottom: 1px solid #eeeeee;
}

.search_guest_row:last-child {
  border-bottom: 0;
}

.search_guest_row h3 {
  margin: 0 0 3px 0;
  font-size: 15px;
  font-weight: 500;
  color: #363636;
}

.search_guest_row p {
  margin: 0;
  font-size: 12px;
  color: #a1a1a1;
}

.search_counter {
  display: flex;
  align-items: center;
  gap: 15px;
}

.search_counter button {
  width: 35px;
  height: 35px;
  border-radius: 50%;
  border: 1px solid #dcdcdc;
  background-color: #ffffff;
  cursor: pointer;
  font-size: 20px;
  color: #4094fa;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: 0.15s ease;
}

.search_counter button:hover {
  background-color: #4094fa;
  border-color: #4094fa;
  color: #ffffff;
}

.search_counter span {
  min-width: 20px;
  text-align: center;
  font-size: 15px;
  color: #363636;
}

.search_destination_photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.destination {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 100px;
}

.destination_body_desc {
  font-size: 13px;
  font-weight: 300;
  color: #6f6f6f;
}

.destination_body_title {
  font-size: 24px;
  font-family: Montserrat, Arial, sans-serif;
  color: #000000;
  font-weight: 400;
}

.destination_body_link {
  display: flex;
  justify-content: end;
}

.destination_body_link a {
  font-size: 18px;
  color: #4094fa;
  font-weight: 300;
  text-decoration: none;
}

.destination_card {
  display: flex;
  justify-content: space-between;
  margin-top: 15px;
}

.destination_card_1 {
  width: 1000px;
  height: 250px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 25%,
      rgba(0, 0, 0, 0.25) 50%,
      rgba(0, 0, 0, 0) 75%),
    url(/images/home/destinations/Maldives.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_2 {
  width: 1000px;
  height: 250px;
  margin-top: 15px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 25%,
      rgba(0, 0, 0, 0.25) 50%,
      rgba(0, 0, 0, 0) 75%),
    url(/images/home/destinations/mauritius.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_right {
  width: 325px;
  height: 515px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 20%,
      rgba(0, 0, 0, 0.2) 40%,
      rgba(0, 0, 0, 0) 60%),
    url(/images/home/destinations/Greece.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_1::after,
.destination_card_2::after,
.destination_card_right::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle 220px at var(--mouse-x) var(--mouse-y),
      rgba(255, 255, 255, 0.08) 0%,
      rgba(255, 255, 255, 0.04) 35%,
      rgba(255, 255, 255, 0.015) 55%,
      transparent 72%);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: 1;
}

.destination_card_1:hover::after,
.destination_card_2:hover::after,
.destination_card_right:hover::after {
  opacity: 1;
}

.destination_review {
  display: flex;
  gap: 15px;
}

.destination_review_text {
  display: flex;
  align-items: center;
  gap: 5px;
  color: #ffce54;
  font-size: 16px;
}

.destination_name {
  position: absolute;
  bottom: 15px;
  left: 15px;
}

.destination_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #ffffff;
}

.destination_desc {
  font-size: 16px;
  font-weight: 300;
  color: #bfbfbf;
}

.destination_room_text {
  font-size: 16px;
  font-weight: 300;
  color: #bfbfbf;
}

.hotels {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 100px;
}

.hotels_body_desc {
  font-size: 13px;
  font-weight: 300;
  color: #6f6f6f;
}

.hotels_body_title {
  font-size: 24px;
  font-family: Montserrat, Arial, sans-serif;
  color: #000000;
  font-weight: 400;
}

.hotels_body_link {
  display: flex;
  justify-content: end;
}

.hotels_body_link a {
  font-size: 18px;
  color: #4094fa;
  font-weight: 300;
  text-decoration: none;
}

.hotels_inner_flex {
  display: flex;
  gap: 15px;
  flex-wrap: wrap;
}

.hotels_inner_flex a {
  text-decoration: none;
}

.hotels_inner {
  width: 256px;
  margin-top: 15px;
  position: relative;
}

.hotels_img {
  border-radius: 5px;
  position: relative;
  overflow: hidden;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}

.hotels_img>img {
  width: 100%;
  border-radius: 5px;
  height: 180px;
  object-fit: cover;
  pointer-events: none;
  display: block;
  transition: opacity 0.12s ease,
    transform 0.18s ease;
  will-change: opacity;
}

.hotels_aside {
  margin-top: 10px;
  width: 100%;
  padding: 0 5px;
  display: flex;
  justify-content: space-between;
}

.hotels_aside_title {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 18px;
  color: #000000;
  text-decoration: none;
}

.hotels_aside_count {
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 5px;
}

.hotels_aside_count img {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  object-fit: cover;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
  pointer-events: none;
}

.hotels_aside_count_title {
  font-weight: 300;
  font-size: 14px;
  color: #bfbfbf;
}

.hotels_aside_review {
  color: #ffce54;
  display: flex;
  align-items: center;
  gap: 5px;
}

.hotels_aside_price {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 22px;
  font-weight: 500;
  color: #4094fa;
}

.hotels_aside_price span {
  display: block;
  color: #bfbfbf;
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 13px;
  text-align: end;
}

.hotels_img_slider {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 6px;
  cursor: pointer;
  z-index: 3;
  pointer-events: none;
}

.hotels_img_circle {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: #d9d9d999;
}

.hotels_img_circle.active {
  background-color: #ffffff;
}

.fav_content {
  position: absolute;
  right: 15px;
  top: 15px;
  cursor: pointer;
  z-index: 4;
}

.fav_content svg {
  overflow: visible;
  transition: transform 0.2s ease;
}

.fav_content path {
  stroke: #ffffff;
  fill: transparent;
  transition: fill 0.2s ease,
    stroke 0.2s ease;
}

.fav_content:hover path {
  fill: rgba(255, 255, 255, 0.25);
}

.fav_content.active path {
  fill: #ffffff;
  stroke: #ffffff;
}

.fav_content.active svg {
  animation: favPop 0.35s ease;
}

@keyframes favPop {
0% {
  transform: scale(1);
}

40% {
  transform: scale(1.35);
}

65% {
  transform: scale(0.9);
}

100% {
  transform: scale(1);
}
}

.destination_link {
  margin-top: 30px;
  text-align: center;
}

.destination_link a {
  color: #4094fa;
  font-size: 18px;
  font-weight: 300;
  text-decoration: none;
}

.tours {
  width: 100%;
  max-width: 1440px;
  margin: 100px auto 0;
  padding: 0 50px;
}

.tours_body {
  width: 100%;
}

.tours_body_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: clamp(42px, 4.45vw, 64px);
  line-height: 1.08;
  letter-spacing: clamp(3px, 1.25vw, 18px);
  color: #000000;
  text-transform: uppercase;
  text-align: center;
}

.tours_inner {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: center;
  gap: clamp(28px, 4.45vw, 64px);
  margin-top: 56px;
}

.tours_inner>* {
  min-width: 0;
}

.tours_inner_slide {
  width: 100%;
  max-width: 650px;
  height: auto;
  aspect-ratio: 13 / 10;
  position: relative;
}

.tours_slide_image {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 12px;
  background-color: #eceff3;
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}

.tours_slide_image img {
  display: block;
  width: 100%;
  height: 100%;
  border-radius: inherit;
  object-fit: cover;
  pointer-events: none;
  opacity: 1;
  transform: translateX(0) scale(1);
  transition: opacity 0.2s ease,
    transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform;
}

.tours_slide_image img.tours_leave_next {
  opacity: 0;
  transform: translateX(-28px) scale(1.025);
}

.tours_slide_image img.tours_leave_prev {
  opacity: 0;
  transform: translateX(28px) scale(1.025);
}

.tours_slide_image img.tours_enter_next {
  transition: none;
  opacity: 0;
  transform: translateX(28px) scale(1.025);
}

.tours_slide_image img.tours_enter_prev {
  transition: none;
  opacity: 0;
  transform: translateX(-28px) scale(1.025);
}

.tours_prev,
.tours_next {
  position: absolute;
  z-index: 9;
  cursor: pointer;
  top: 50%;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.45);
  border-radius: 50%;
  background: rgba(15, 20, 28, 0.24);
  display: grid;
  place-items: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  left: 25px;
  transform: translateY(-50%);
  transition: transform 0.18s ease,
    opacity 0.18s ease,
    background-color 0.18s ease;
}

.tours_next {
  left: auto;
  right: 25px;
}

.tours_prev svg,
.tours_next svg {
  width: 12px;
  height: 22px;
}

.tours_prev:hover,
.tours_prev:focus-visible,
.tours_next:hover,
.tours_next:focus-visible {
  opacity: 1;
  background: rgba(15, 20, 28, 0.42);
  outline: none;
}

.tours_prev:active {
  transform: translateY(-50%) translateX(-3px) scale(0.94);
}

.tours_next:active {
  transform: translateY(-50%) translateX(3px) scale(0.94);
}

.tours_slide_circle_slide {
  display: flex;
  align-items: center;
  gap: 7px;
  position: absolute;
  z-index: 9;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
}

.tours_slide_circle {
  width: 8px;
  height: 8px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.58);
  cursor: pointer;
  transition: width 0.2s ease,
    border-radius 0.2s ease,
    background-color 0.2s ease;
}

.tours_slide_circle.active {
  width: 22px;
  border-radius: 999px;
  background-color: #ffffff;
}

.tours_inner_column {
  width: 100%;
  max-width: 640px;
  text-align: center;
}

.tours_inner_name {
  font-family: Montserrat, Arial, sans-serif;
  color: #000000;
  font-weight: 400;
  font-size: clamp(42px, 4.45vw, 64px);
  line-height: 1.1;
}

.tours_inner_info {
  font-family: Montserrat, Arial, sans-serif;
  color: #000;
  font-weight: 400;
  font-size: clamp(18px, 1.67vw, 24px);
  line-height: 1.35;
  width: min(100%, 440px);
  margin: 10px auto 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-align: center;
}

.tours_inner_flex {
  display: flex;
  gap: 22px;
  margin-top: 30px;
  justify-content: center;
  align-items: center;
}

.tours_inner_subtitle {
  font-weight: 400;
  font-size: 18px;
  line-height: 1.45;
  color: #000000;
  width: min(100%, 210px);
}

.tours_inner_subtitle span {
  color: #4094fa;
  font-weight: 700;
  font-family: Montserrat, Arial, sans-serif;
}

.tours_inner_flex button {
  width: 225px;
  min-height: 48px;
  padding: 12px 18px;
  background-color: #4094fa;
  border-radius: 8px;
  cursor: pointer;
  color: #ffffff;
  font-family: inherit;
  font-size: 17px;
  font-weight: 500;
  border: 0;
  position: relative;
  overflow: hidden;
  transition: background-color 0.2s ease,
    transform 0.2s ease;
}

.tours_inner_flex button:hover {
  background-color: #3c88e6;
  transform: translateY(-1px);
}

.tours_inner_flex button:active {
  transform: translateY(0);
}

.tours_inner_flex button:focus-visible {
  outline: 3px solid rgba(64, 148, 250, 0.24);
  outline-offset: 3px;
}

.tours_inner_flex button .button_ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.35);
  transform: translate(-50%, -50%) scale(0);
  animation: buttonRipple 550ms ease-out;
  pointer-events: none;
}

@keyframes buttonRipple {
0% {
  transform: translate(-50%, -50%) scale(0);
  opacity: 1;
}

100% {
  transform: translate(-50%, -50%) scale(30);
  opacity: 0;
}
}

.tours_inner_desc {
  width: 100%;
  max-width: 640px;
  background-color: #f4f5f7;
  border-radius: 10px;
  padding: 18px 20px;
  margin-top: 30px;
}

.tours_inner_desc p {
  text-align: start;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.55;
  color: #363636;
}

.about {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 100px;
}

.about_background {
  display: flex;
  background-color: #f8f8f8;
  border-radius: 5px;
  width: 100%;
  gap: 50px;
  align-items: center;
}

.about_img {
  width: 680px;
  height: 700px;
  position: relative;
}

.about_img img {
  width: 100%;
  height: 700px;
  border-radius: 5px;
  object-fit: cover;
  filter: brightness(0.5);
  -webkit-user-select: none;
  user-select: none;
  -webkit-user-drag: none;
}

.about_inner {
  width: 550px;
}

.about_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 500;
  color: #000000;
  font-size: 48px;
  text-align: center;
}

.about_text {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 500;
  color: #000000;
  font-size: 20px;
  text-align: center;
}

.about_description {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  color: #000000;
  font-size: 18px;
  line-height: 27px;
  margin-top: 30px;
}

.about_brand {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #ffffff;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 500;
  font-size: 110px;
}

.about_brand::selection {
  background-color: #2684f5;
  color: #ffffff;
}

.faq {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 100px;
}

.faq_body_text {
  color: #6f6f6f;
  font-weight: 300;
  font-size: 13px;
}

.faq_body_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 24px;
  color: #000000;
}

.faq_inner {
  display: flex;
  justify-content: space-between;
}

.faq_card_link {
  font-size: 18px;
  font-weight: 300;
  color: #4094fa;
  text-decoration: none;
  margin-top: 15px;
}

.faq_card {
  width: 925px;
}

.faq_link_end {
  text-align: end;
}

.faq_question {
  width: 100%;
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: #f8f8f8;
  margin-top: 10px;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.25s ease,
    border-radius 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq_question:hover {
  background-color: #f0efef;
}

.faq_question p {
  font-size: 18px;
  color: #000000;
  font-weight: 300;
}

.faq_answer {
  width: 100%;
  display: grid;
  grid-template-rows: 0fr;
  padding: 0 15px;
  background-color: #f8f8f8;
  border-radius: 0 0 5px 5px;
  border-top: 0 solid #d5d5d5;
  opacity: 0;
  transition: grid-template-rows 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    opacity 0.25s ease,
    padding 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    border-width 0.25s ease;
}

.faq_answer p {
  min-height: 0;
  overflow: hidden;
  font-size: 16px;
  font-weight: 300;
  color: #7b7b7b;
  line-height: 28px;
  transform: translateY(-8px);
  transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq_shape.active .faq_question {
  border-radius: 5px 5px 0 0;
}

.faq_shape.active .faq_answer {
  grid-template-rows: 1fr;
  opacity: 1;
  padding: 15px;
  border-top-width: 1px;
}

.faq_shape.active .faq_answer p {
  transform: translateY(0);
}

.faq_angle {
  flex-shrink: 0;
  transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}

.faq_shape.active .faq_angle {
  transform: rotate(180deg);
}

.faq_surface {
  width: 400px;
  padding: 20px;
  background-color: #ecf3fa;
  border-radius: 5px;
  height: 100%;
  margin-top: 40px;
}

.faq_surface_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 24px;
  color: #000000;
}

.faq_surface_desc {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #000000;
  margin-top: 15px;
}

.faq_input input {
  width: 100%;
  height: 40px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 0px;
  color: #000000;
  font-size: 16px;
  padding-left: 15px;
  margin-top: 15px;
  border: 2px solid #ffffff;
  transition: all 0.2s ease;
  outline: none;
}

.faq_input input:focus {
  border: 2px solid #2684f5;
}

.faq_input textarea {
  width: 100%;
  height: 100px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 0px;
  color: #000000;
  font-size: 16px;
  padding-left: 15px;
  margin-top: 15px;
  font-family: Manrope, Arial, sans-serif;
  padding-top: 8px;
  resize: none;
  border: 2px solid #ffffff;
  outline: none;
  transition: all 0.2s ease;
}

.faq_input textarea:focus {
  border: 2px solid #2684f5;
}

.faq_button button {
  width: 100%;
  height: 40px;
  margin-top: 15px;
  border-radius: 5px;
  background-color: #ffffff;
  color: #4094fa;
  font-size: 16px;
  border: 0;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition: background-color 0.2s ease,
    color 0.2s ease;
}

.faq_button button:hover {
  color: #ffffff;
  background-color: #2684f5;
}

.button_ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(255, 255, 255, 0.45);
  transform: translate(-50%, -50%) scale(0);
  pointer-events: none;
  animation: ripple 0.55s ease-out forwards;
}

@keyframes ripple {
to {
  transform: translate(-50%, -50%) scale(40);
  opacity: 0;
}
}

.cta {
  margin-top: 100px;
  width: 100%;
  height: 600px;
  background-image: linear-gradient(rgba(0, 0, 0, 0.236), rgba(0, 0, 0, 0.338)),
    url(/images/home/cta/background.webp);
  background-size: cover;
  background-position: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cta_inner {
  text-align: center;
}

.cta_title {
  width: 793px;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 700;
  font-style: Bold;
  font-size: 64px;
  text-align: center;
  color: #ffffff;
}

.cta_button {
  width: 250px;
  height: 50px;
  border-radius: 5px;
  background-color: #ffffff;
  cursor: pointer;
  border: 0;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 18px;
  color: #2a2a2a;
  margin-top: 15px;
  position: relative;
  overflow: hidden;
}

.cta_button span {
  position: relative;
  z-index: 2;
  transition: color 0.35s ease;
}

.cta_button::before {
  content: "";
  position: absolute;
  width: 140%;
  height: 180%;
  left: -20%;
  bottom: -190%;
  background-color: #4094fa;
  border-radius: 45% 55% 35% 65% / 55% 45% 55% 45%;
  transition: bottom 0.6s cubic-bezier(0.22, 0.8, 0.3, 1);
  z-index: 1;
}

.cta_button:hover::before {
  bottom: -35%;
}

.cta_button:hover span {
  color: #ffffff;
}

.cta_button .button_ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(64, 148, 250, 0.22);
  transform: translate(-50%, -50%) scale(0);
  animation: buttonRipple 550ms ease-out;
  pointer-events: none;
}

.cta_button:hover::before {
  bottom: -35%;
  animation: liquidWave 2.5s linear infinite;
}

@keyframes liquidWave {
0% {
  transform: rotate(0deg);
}

50% {
  transform: rotate(4deg);
}

100% {
  transform: rotate(0deg);
}
}

.newsletter {
  background-color: #f2f2f2;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.newsletter_container {
  margin-top: 120px;
  margin-bottom: 120px;
}

.newsletter_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 64px;
  color: #000000;
}

.newsletter_desc {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-style: Regular;
  font-size: 18px;
  color: #000000;
  margin-top: 5px;
  text-align: center;
}

.newsletter_form {
  margin: auto;
  margin-top: 30px;
  width: 700px;
}

.newsletter_input {
  position: relative;
  display: flex;
  margin-bottom: 5px;
}

.newsletter_input input {
  width: 100%;
  height: 60px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  padding: 0 15px;
  outline: none;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 18px;
  font-weight: 400;
}

.newsletter_button {
  position: absolute;
  right: 15px;
  transform: translateY(-50%);
  top: 50%;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: #4094fa;
  cursor: pointer;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.newsletter_checkbox {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.newsletter_checkbox label {
  color: #7b7b7b;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 18px;
  cursor: pointer;
}

.newsletter_checkbox a {
  color: #7b7b7b;
}

.newsletter_checkbox input {
  width: 20px;
  height: 20px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0px;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.newsletter_checkbox input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.newsletter_checkbox input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
  box-shadow: 0 0 0 4px rgba(64, 148, 250, 0.12);
  animation: checkboxPop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.newsletter_checkbox input:active {
  box-shadow: 0 0 0 6px rgba(64, 148, 250, 0.1);
}

.footer {
  max-width: 1440px;
  margin: auto;
  padding: 50px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.footer_top {
  display: flex;
  width: 100%;
  gap: 100px;
}

.footer_top_left_section {
  width: 255px;
}

.footer_region {
  width: 100%;
  height: 40px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0 10px;
  background-color: #ecf3fa;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  margin-top: 10px;
  cursor: pointer;
}

.footer_region img {
  width: 30px;
}

.footer_region p {
  color: #535353;
  font-size: 18px;
}

.footer_top_left_desc {
  color: #000000;
  font-weight: 300;
  font-size: 12px;
  margin-top: 10px;
  font-family: 'Manrope', Arial, sans-serif;
}

.footer_top_right_section {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  column-gap: 40px;
}

.footer_top_right_link {
  width: auto;
}

.footer_top_right_link:last-child {
  margin-left: auto;
}

.footer_top_right_link ul {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 5px;
}

.footer_top_link {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #474747;
  text-decoration: none;
  transition: all 0.2s ease;
}

.footer_top_link:hover {
  color: #4094fa;
}

.footer_inner {
  width: 100%;
}

.footer_line {
  width: 100%;
  height: 1px;
  background-color: #d9d9d9;
  margin-top: 25px;
  margin-bottom: 25px;
}

.footer_bottom_flex {
  display: flex;
  justify-content: space-between;
}

.footer_bottom_brand p {
  font-size: 64px;
  font-family: Montserrat, Arial, sans-serif;
  color: #000000ab;
}

.footer_social {
  display: flex;
}

.footer_social a {
  width: 55px;
  height: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
  transition: 0.2s ease;
}

.footer_social a:hover {
  background-color: #efefef;
}

.footer_copy {
  text-align: center;
  font-weight: 400;
  font-size: 12px;
  color: #474747;
}

.auth {
  max-width: 1440px;
  margin: auto;
  align-items: center;
  display: flex;
  gap: 250px;
  height: 100vh;
  justify-content: center;
}

.auth_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 40px;
  text-align: center;
  color: #000000;
}

.auth_desc {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 16px;
  text-align: center;
  color: #4e4e4e;
  margin-top: 5px;
}

.auth_bottom {
  width: 500px;
  margin: auto;
  justify-content: center;
  margin-top: 25px;
}

.auth_socials_button {
  width: 100%;
  height: 55px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 105px;
  color: #4e4e4e;
  font-size: 16px;
  font-weight: 300;
  padding-left: 35px;
  background-color: inherit;
  margin-bottom: 15px;
  transition: all 0.2s ease;
}

.auth_socials_button:hover {
  background-color: #e1dfdc;
}

.auth_socials_button img {
  object-fit: cover;
  width: 28px;
}

.auth_divider {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 15px;
}

.auth_divider_line {
  border: 0.5px solid #d9d9d9;
  width: 230px;
}

.auth_divider_text {
  color: #4e4e4e;
  font-weight: 300;
  font-size: 18px;
}

.auth_form {
  margin-top: 15px;
}

.auth_input input {
  width: 100%;
  height: 55px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  padding: 0 15px;
  font-size: 16px;
  font-weight: 300;
  margin-bottom: 15px;
  outline: none;
  transition: all 0.2s ease;
}

.auth_input input:focus {
  border: 1px solid #2684f5;
}

.auth_input {
  display: flex;
  position: relative;
  align-items: center;
  width: 100%;
  margin-bottom: 15px;
}

.auth_eye {
  position: absolute;
  right: 15px;
  top: 0;
  width: 32px;
  height: 55px;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  display: grid;
  place-items: center;
  cursor: pointer;
}

.auth_eye svg {
  grid-area: 1 / 1;
  width: 24px;
  height: 18px;
  position: static;
  transition: opacity 0.18s ease;
}

.eye_closed {
  opacity: 1;
}

.eye_open {
  opacity: 0;
}

.auth_eye.active .eye_closed {
  opacity: 0;
}

.auth_eye.active .eye_open {
  opacity: 1;
}

.auth_forg_link {
  color: #4094fa;
  font-size: 16px;
  font-weight: 300;
  text-decoration: none;
}

.auth_button {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 55px;
  background-color: #4094fa;
  border: 0;
  cursor: pointer;
  border-radius: 5px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 300;
  margin-top: 25px;
  transition: background-color 0.2s ease;
}

.auth_socials_button,
.auth_recovery_button,
.auth_back button {
  position: relative;
  overflow: hidden;
}

.auth_button:hover {
  background-color: #3984df;
}

.button_ripple {
  position: absolute;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background-color: rgba(64, 148, 250, 0.22);
  transform: translate(-50%, -50%) scale(0);
  animation: buttonRipple 550ms ease-out;
  pointer-events: none;
}

.auth_button .button_ripple,
.auth_recovery_button .button_ripple {
  background-color: rgba(255, 255, 255, 0.35);
}

@keyframes buttonRipple {
to {
  transform: translate(-50%, -50%) scale(45);
  opacity: 0;
}
}

.auth_create_link {
  font-weight: 300;
  font-size: 14px;
  color: #4e4e4e;
  text-align: center;
  margin-top: 15px;
}

.auth_create_link a {
  color: #4094fa;
  text-decoration: none;
}

.auth_logo {
  --logo-base: #d9d9d9;
  --logo-light: #4094fa;
}

.auth_logo svg {
  display: block;
  max-width: 100%;
  height: auto;
  overflow: visible;
  pointer-events: none;
}

.auth_logo_base {
  stroke: var(--logo-base);
}

.auth_logo #authLogoLight stop {
  stop-color: var(--logo-light);
}

.auth_back {
  position: absolute;
  top: 25px;
  left: 50px;
}

.auth_back button {
  background-color: inherit;
  cursor: pointer;
  border: 0px;
  color: #4094fa;
  font-size: 16px;
  font-weight: 300;
}

.auth_generate {
  margin-top: -20px;
  color: #4094fa;
  font-weight: 300;
  cursor: pointer;
}

.auth_forgot,
.auth_email_sent,
.auth_reset {
  margin: auto;
  height: 100vh;
  align-items: center;
  justify-content: center;
  max-width: 500px;
  width: 100%;
  display: flex;
}

.auth_inner {
  width: 500px;
}

.auth_recovery_title {
  color: #000000;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 40px;
  text-align: center;
}

.auth_recovery_desc {
  text-align: center;
  color: #4e4e4e;
  font-size: 16px;
  font-weight: 300;
  margin-top: 20px;
}

.auth_recovery_form {
  font-weight: 300;
  color: #4e4e4e;
  margin-top: 20px;
  font-size: 16px;
  position: relative;
}

.auth_recovery_form input {
  width: 100%;
  height: 55px;
  border: 1px solid #e1dfdc;
  padding-left: 15px;
  margin-top: 10px;
  border-radius: 5px;
  outline: none;
  transition: all 0.2s ease;
}

.auth_recovery_password {
  position: relative;
  display: flex;
  align-items: center;
  width: 100%;
}

.auth_recovery_password input {
  padding-right: 60px;
}

.auth_recovery_password .auth_eye {
  top: 10px;
}

.auth_recovery_password input.is-invalid {
  border-color: #e5484d;
}

.auth_recovery_form input:focus {
  border: 1px solid #2684f5;
}

.auth_recovery_button {
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 55px;
  border-radius: 5px;
  border: 0px;
  background-color: #4094fa;
  color: #ffffff;
  margin-top: 20px;
  border: 0px;
  cursor: pointer;
}

.auth_recovery_link {
  font-size: 14px;
  color: #4e4e4e;
  margin-top: 15px;
  font-size: 14px;
  text-align: center;
  font-weight: 300;
}

.auth_recovery_link a {
  color: #4094fa;
}

.auth_icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: auto;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  background-color: #eaf3ff;
  margin-bottom: 10px;
}

.auth_recovery_checkemail {
  text-align: center;
  font-weight: 300;
  color: #000000;
  font-size: 18px;
  margin-top: 5px;
}

.password_rules {
  margin-top: 15px;
  display: flex;
  justify-content: space-between;
}

.password_rules_inner {
  display: flex;
  align-items: center;
  gap: 5px;
}

.password_rule_icon {
  background-color: inherit;
  border: 1px solid #4e4e4e;
  width: 25px;
  height: 25px;
  flex: 0 0 25px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease,
    border-color 0.2s ease,
    background-color 0.2s ease;
}

.password_rule_icon svg path {
  stroke: currentColor;
}

.password_rules_inner p {
  font-size: 13px;
  color: #4e4e4e;
  transition: color 0.2s ease;
}

.password_rules_inner.is-invalid .password_rule_icon {
  color: #e5484d;
  border-color: #e5484d;
  background-color: #fff1f1;
}

.password_rules_inner.is-invalid .password_rule_icon svg {
  display: none;
}

.password_rules_inner.is-invalid .password_rule_icon::before {
  content: "×";
  font-size: 18px;
  line-height: 1;
}

.password_rules_inner.is-invalid p {
  color: #e5484d;
}

.password_rules_inner.is-valid .password_rule_icon {
  color: #1f9d67;
  border-color: #1f9d67;
  background-color: #eaf8f1;
}

.password_rules_inner.is-valid p {
  color: #1f9d67;
}

.header_destination {
  position: relative;
  width: 100%;
  background: #111923;
}

.destination_hero {
  width: 100%;
  height: 50vh;
  background-image: linear-gradient(rgba(0, 0, 0, 0.45), rgba(0, 0, 0, 0.45)), url("/images/home/main/6.webp");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 15%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.destination_hero_main {
  width: 100%;
  padding-top: 0;
}

.destination_hero_main h1 {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 40px;
  line-height: 100%;
  text-align: center;
  color: #ffffff;
}

.destination_hero_main p {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-style: Regular;
  font-size: 24px;
  text-align: center;
  color: #ffffff;
  margin-top: 5px;
}

.destination_form {
  margin: auto;
  justify-content: center;
  margin-top: 25px;
  display: flex;
}

.destination_search {
  position: relative;
  width: fit-content;
}

.destination_search input {
  width: 700px;
  height: 65px;
  border-radius: 5px;
  background-color: #ffffff;
  border: 0;
  outline: none;
  color: #363636a1;
  padding-left: 45px;
  box-sizing: border-box;
}

.destination_locate {
  position: absolute;
  left: 15px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 2;
  pointer-events: none;
}

.destination_hero_btn {
  width: 119px;
  height: 45px;
  position: absolute;
  background-color: #4094fa;
  border: 1px #4094fa;
  border-radius: 5px;
  color: #ffffff;
  font-size: 17px;
  cursor: pointer;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
}

.destination_card_3 {
  width: 1000px;
  height: 250px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 25%,
      rgba(0, 0, 0, 0.25) 50%,
      rgba(0, 0, 0, 0) 75%),
    url(/images/home/destinations/bali.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_4 {
  width: 1000px;
  height: 250px;
  margin-top: 15px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 25%,
      rgba(0, 0, 0, 0.25) 50%,
      rgba(0, 0, 0, 0) 75%),
    url(/images/home/destinations/dubai.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_right_1 {
  width: 325px;
  height: 515px;
  border-radius: 5px;
  background-image: linear-gradient(to top,
      rgba(0, 0, 0, 0.9) 0%,
      rgba(0, 0, 0, 0.65) 20%,
      rgba(0, 0, 0, 0.2) 40%,
      rgba(0, 0, 0, 0) 60%),
    url(/images/home/destinations/paris.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
  cursor: pointer;
}

.destination_card_3::after,
.destination_card_4::after,
.destination_card_right_1::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle 220px at var(--mouse-x) var(--mouse-y),
      rgba(255, 255, 255, 0.08) 0%,
      rgba(255, 255, 255, 0.04) 35%,
      rgba(255, 255, 255, 0.015) 55%,
      transparent 72%);
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  z-index: 1;
}

.destination_card_3:hover::after,
.destination_card_4:hover::after,
.destination_card_right_1:hover::after {
  opacity: 1;
}

.destination_region {
  width: 100%;
  padding: 70px 50px;
  background-color: #ffffff;
}

.destination_region_container {
  width: 100%;
  max-width: 1340px;
  margin: 0 auto;
}

.destination_region h2 {
  margin: 0 0 25px;
  font-family: Montserrat, sans-serif;
  font-size: 24px;
  font-weight: 400;
  line-height: 1;
  color: #000000;
}

.destination_region_tabs {
  display: flex;
  align-items: center;
  gap: 28px;
  padding-bottom: 20px;
  overflow-x: auto;
  scrollbar-width: none;
}

.destination_region_tabs::-webkit-scrollbar {
  display: none;
}

.destination_region_tab {
  position: relative;
  min-width: 120px;
  height: 46px;
  padding: 0 20px;
  flex-shrink: 0;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  background-color: #ffffff;
  color: #171717;
  font-family: Manrope, sans-serif;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  overflow: hidden;
  transition: color 250ms ease,
    border-color 250ms ease,
    background-color 250ms ease,
    box-shadow 250ms ease,
    transform 250ms ease;
}

.destination_region_tab::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg,
      transparent 20%,
      rgba(255, 255, 255, 0.35) 50%,
      transparent 80%);
  transform: translateX(-120%);
  transition: transform 500ms ease;
}

.destination_region_tab:hover {
  color: #4094fa;
  border-color: rgba(64, 148, 250, 0.55);
  background-color: rgba(64, 148, 250, 0.05);
}

.destination_region_tab:hover::before {
  transform: translateX(120%);
}

.destination_region_tab.active {
  color: #ffffff;
  border-color: #4094fa;
  background-color: #4094fa;
  box-shadow: 0 8px 22px rgba(64, 148, 250, 0.22);
}

.destination_region_tab.active:hover {
  color: #ffffff;
  background-color: #3189f5;
}

.destination_region_countries {
  display: grid;
  grid-template-columns: repeat(8, minmax(0, 1fr));
  border-top: 1px solid #e8e9ea;
  border-left: 1px solid #e8e9ea;
}

.destination_country {
  position: relative;
  min-width: 0;
  min-height: 80px;
  padding: 20px 18px;
  border-right: 1px solid #e8e9ea;
  border-bottom: 1px solid #e8e9ea;
  background-color: #ffffff;
  cursor: pointer;
  overflow: hidden;
  animation: destinationCountryShow 450ms both;
  transition: background-color 250ms ease,
    box-shadow 250ms ease,
    transform 250ms ease,
    border-color 250ms ease;
}

.destination_country::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background-color: #4094fa;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 280ms ease;
}

.destination_country::after {
  content: "↗";
  position: absolute;
  top: 17px;
  right: 15px;
  color: #4094fa;
  font-family: Manrope, sans-serif;
  font-size: 17px;
  opacity: 0;
  transform: translate(-6px, 6px);
  transition: opacity 250ms ease,
    transform 250ms ease;
}

.destination_country:hover {
  z-index: 2;
  border-color: rgba(64, 148, 250, 0.22);
  background: linear-gradient(135deg, rgba(64, 148, 250, 0.09), rgba(64, 148, 250, 0.02));
  box-shadow: 0 12px 30px rgba(24, 77, 137, 0.12);
  transform: translateY(-4px);
}

.destination_country:hover::before {
  transform: scaleX(1);
}

.destination_country:hover::after {
  opacity: 1;
  transform: translate(0, 0);
}

.destination_country_name {
  display: block;
  max-width: calc(100% - 22px);
  margin-bottom: 4px;
  font-family: Manrope, sans-serif;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.2;
  color: #000000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: color 250ms ease,
    transform 250ms ease;
}

.destination_country_stays {
  display: block;
  font-family: Montserrat, sans-serif;
  font-size: 14px;
  font-weight: 400;
  line-height: 16px;
  color: #636363;
  transition: color 250ms ease,
    transform 250ms ease;
}

.destination_country:hover .destination_country_name {
  color: #247ee9;
  transform: translateX(3px);
}

.destination_country:hover .destination_country_stays {
  color: #4e7faf;
  transform: translateX(3px);
}

@keyframes destinationCountryShow {
from {
  opacity: 0;
  transform: translateY(10px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

.header_plain {
  min-height: 92px;
  background-color: #ffffff;
}

.header_plain .menu_container::before {
  transform: translateX(-50%) translateY(0);
  opacity: 1;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.07),
    0 8px 28px rgba(0, 0, 0, 0.035);
}

.header_plain .menu_logo,
.header_plain .menu_link,
.header_plain .menu_select,
.header_plain .menu_icon {
  color: #535353;
}

.header_plain .menu_link:hover,
.header_plain .menu_item_has_dropdown:hover>.menu_link,
.header_plain .menu_item_has_dropdown:focus-within>.menu_link {
  color: #4094fa;
}

.breadcrumbs {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 30px;
}

.breadcrumbs a {
  font-weight: 300;
  color: #7a7a7a;
  text-decoration: none;
  font-size: 16px;
}

.breadcrumbs_slash {
  color: #7a7a7a;
  font-size: 16px;
}

.breadcrumbs_current {
  color: #4094fa;
  font-size: 16px;
  font-weight: 300;
}

.hotels_search {
  width: 100%;
  max-width: 1440px;
  margin: 30px auto 0;
  padding: 0 50px;
}

.hotels_search_container {
  width: 100%;
  min-height: 80px;
  display: grid;
  grid-template-columns: 1.18fr 1fr 1.02fr 1.6fr;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background-color: #ffffff;
  overflow: hidden;
}

.hotels_search_item {
  position: relative;
  min-width: 0;
  padding: 12px 20px;
  display: flex;
  align-items: center;
  gap: 20px;
}

.hotels_search_item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 1px;
  height: 100%;
  background-color: #e1dfdc;
}

.hotels_search_icon {
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hotels_search_content {
  min-width: 0;
}

.hotels_search_desc,
.hotels_search_title {
  margin: 0;
}

.hotels_search_desc {
  margin-bottom: 3px;
  color: #858585;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.1;
}

.hotels_search_title {
  color: #363636;
  font-size: 20px;
  font-weight: 300;
  line-height: 1.15;
  white-space: nowrap;
}

.hotels_search_guests {
  justify-content: space-between;
  gap: 24px;
}

.hotels_search_guest_info {
  min-width: 0;
  flex: 1;
  display: flex;
  align-items: center;
  gap: 20px;
}

.hotels_search_arrow {
  margin-left: auto;
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.hotels_search_button {
  flex: 0 0 135px;
  width: 135px;
  height: 52px;
  border: none;
  border-radius: 5px;
  background-color: #4094fa;
  color: #ffffff;
  font-family: inherit;
  font-size: 20px;
  font-weight: 300;
  cursor: pointer;
  transition: background-color 0.2s ease,
    transform 0.2s ease;
}

.hotels_search_button:hover {
  background-color: #2685f8;
}

.hotels_search_button:active {
  transform: scale(0.98);
}

.hotels_results {
  width: 100%;
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 20px;
  margin-bottom: 100px;
}

.hotels_results_container {
  width: 100%;
  gap: 20px;
  display: flex;
}

.hotels_results_left {
  width: 350px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  padding: 15px;
  height: 100%;
}

.filter_clean {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.filter_clean_title {
  color: #000000;
  font-weight: 500;
  font-size: 20px;
}

.filter_clean_action {
  font-size: 14px;
  font-weight: 300;
  cursor: pointer;
  color: #4094fa;
}

.filter_budget {
  margin-top: 20px;
}

.filter_budget_title {
  font-weight: 500;
  font-size: 18px;
  color: #000000;
}

.filter_budget_price {
  font-weight: 400;
  font-size: 18px;
  color: #6f6f6f;
  margin-top: 10px;
  font-family: montserrat;
}

.filter_budget_range {
  margin-top: 12px;
  width: 100%;
}

.filter_budget_range input {
  width: 100%;
  background-color: #4094fa;
}

.filter_budget_line {
  width: 100%;
  height: 1px;
  background-color: #e1dfdc;
  margin-top: 20px;
}

.hotels_filter_group {
  margin-top: 15px;
}

.hotels_filter_group_title {
  color: #000000;
  font-weight: 500;
  font-size: 18px;
}

.hotels_filter_list {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hotels_filter_option {
  margin-top: 12px;
  display: flex;
  gap: 10px;
}

.hotels_filter_option label {
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.hotels_filter_option input {
  width: 20px;
  height: 20px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0px;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hotels_filter_option input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.hotels_filter_option input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
  box-shadow: 0 0 0 4px rgba(64, 148, 250, 0.12);
  animation: checkboxPop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.hotels_filter_option input:active {
  box-shadow: 0 0 0 6px rgba(64, 148, 250, 0.1);
}

@keyframes checkboxPop {
0% {
  transform: scale(1);
}

45% {
  transform: scale(0.85);
}

75% {
  transform: scale(1.12);
}

100% {
  transform: scale(1);
}
}

.hotels_filter_count {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #6f6f6f;
}

.hotels_results_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hotels_results_right {
  width: 100%;
}

.hotels_results_title {
  color: #000000;
  font-weight: 500;
  font-size: 24px;
}

.hotels_results_desc {
  color: #363636;
  font-weight: 300;
  font-size: 16px;
}

.hotels_results_sort button {
  width: 230px;
  height: 45px;
  border-radius: 5px;
  cursor: pointer;
  border: 1px solid #e1dfdc;
  display: flex;
  padding: 0 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: inherit;
}

.hotel_card {
  width: 100%;
  padding: 15px;
  background-color: inherit;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  margin-top: 15px;
  display: flex;
  justify-content: space-between;
}

.hotel_card_left {
  display: flex;
  gap: 15px;
}

.hotel_card_img {
  width: 300px;
  position: relative;
  height: 300px;
}

.hotel_card_img img {
  width: 100%;
  height: 300px;
  object-fit: cover;
  border-radius: 5px;
  display: block;
}

.hotel_card_fav {
  width: 33px;
  height: 33px;
  border-radius: 50%;
  background-color: #ffffff;
  position: absolute;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  right: 15px;
  top: 15px;
}

.hotel_card_title {
  display: flex;
  gap: 15px;
  align-items: center;
}

.hotel_card_name {
  color: #000000;
  font-size: 24px;
  font-weight: 500;
}

.hotel_card_rating {
  display: flex;
  gap: 5px;
}

.hotel_card_desc_content {
  display: flex;
  gap: 10px;
  align-items: center;
}

.hotel_card_desc {
  font-size: 16px;
  font-weight: 300;
  color: #363636;
}

.hotel_card_desc_img {
  width: 20px;
  height: 20px;
}

.hotel_card_desc_img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}

.hotel_card_tags {
  display: flex;
  gap: 10px;
  align-items: center;
}

.hotel_card_tag {
  background-color: #e3edfc;
  padding: 5px 15px;
  border-radius: 5px;
  margin-top: 15px;
  color: #4094fa;
  font-weight: 400;
  font-size: 13px;
}

.hotel_card_room {
  border-left: 2px solid #e1dfdc;
  padding-left: 15px;
  margin-top: 15px;
}

.hotel_card_room_title {
  color: #000000;
  font-size: 16px;
  font-weight: 500;
}

.hotel_card_room_meta {
  color: #6f6f6f;
  font-weight: 300;
  font-size: 14px;
}

.hotel_card_room_features {
  color: #6f6f6f;
  font-weight: 300;
  font-size: 14px;
}

.hotel_card_room_flex {
  margin-top: 10px;
  margin-bottom: 10px;
}

.hotel_card_room_cancel {
  color: #317e29;
  font-weight: 300;
  font-size: 14px;
}

.hotel_card_room_left {
  color: #ff0000;
  font-size: 14px;
  font-weight: 300;
}

.hotel_card_right {
  width: 1px;
  border-left: 1px solid #d9d9d9;
  width: 270px;
  padding-left: 15px;
}

.hotel_card_rating {
  display: flex;
  gap: 10px;
  justify-content: end;
  align-items: center;
}

.hotel_card_score {
  width: 45px;
  height: 45px;
  border-radius: 5px;
  background-color: #4094fa;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #ffffff;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 500;
  font-size: 20px;
}

.hotel_card_rating_label {
  color: #000000;
  font-weight: 500;
  font-size: 18px;
}

.hotel_card_reviews {
  color: #363636;
  font-size: 16px;
  font-weight: 300;
  display: flex;
  justify-content: end;
}

.hotel_card_stay {
  color: #363636;
  font-weight: 300;
  font-size: 16px;
  margin-top: 15px;
}

.hotel_card_price {
  margin-top: 10px;
}

.hotel_card_price_old {
  color: #8e8e8e;
  font-size: 16px;
  font-family: Montserrat, Arial, sans-serif;
  text-decoration: line-through;
}

.hotel_card_price_current {
  color: #000000;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 30px;
}

.hotel_card_price_info {
  margin-top: 15px;
}

.hotel_card_price_info p {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 13px;
  color: #363636;
}

.hotel_card_price_info span {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 16px;
  color: #363636;
}

.hotel_card_availability {
  width: 100%;
  height: 45px;
  background-color: #4094fa;
  border-radius: 5px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 500;
  cursor: pointer;
  border: 0px;
  margin-top: 15px;
}

.hotel_gallery {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 25px;
}

.hotel_gallery_info {
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.hotel_gallery_info_top {
  display: flex;
  gap: 15px;
  align-items: center;
}

.hotel_gallery_info_title {
  font-size: 24px;
  color: #000000;
  font-weight: 500;
}

.hotel_gallery_info_bottom {
  display: flex;
  gap: 10px;
  align-items: center;
}

.hotel_gallery_info_desc {
  color: #363636;
  font-weight: 300;
  font-size: 16px;
}

.hotel_gallery_info_country {
  width: 20px;
  display: flex;
  align-items: center;
}

.hotel_gallery_info_country img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.hotel_gallery_info_right {
  display: flex;
  gap: 15px;
  align-items: center;
}

.hotel_gallery_favorite {
  width: 45px;
  height: 45px;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background-color: inherit;
  transition: all 0.2s ease;
}

.hotel_gallery_favorite:hover {
  background-color: #e8e9ea;
}

.hotel_gallery_favorite svg path {
  transition: fill 0.2s ease,
    stroke 0.2s ease;
}

.hotel_gallery_favorite.active {
  border-color: rgba(64, 148, 250, 0.35);
  background-color: #edf5ff;
}

.hotel_gallery_favorite.active svg path {
  fill: #4094fa;
  stroke: #4094fa;
}

.hotel_gallery_select_room {
  width: 200px;
  height: 45px;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  background-color: #4094fa;
  transition: all 0.2s ease;
  color: #ffffff;
  font-size: 18px;
  font-weight: 300;
}

.hotel_gallery_select_room:hover {
  background-color: #3189f5;
}

.hotel_gallery_img {
  width: 100%;
  height: 430px;
  display: grid;
  grid-template-columns: 1.1fr 1fr;
  gap: 15px;
  margin-top: 15px;
  cursor: pointer;
}

.hotel_gallery_img_main {
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 6px;
  cursor: pointer;
}

.hotel_gallery_img_main img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.hotel_gallery_img_side {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 15px;
}

.hotel_gallery_img_item {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  cursor: pointer;
}

.hotel_gallery_img_item img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.hotel_gallery_img_main:hover img,
.hotel_gallery_img_item:hover img {
  transform: scale(1.025);
}

.hotel_gallery_img_more {
  background-color: #000000;
}

.hotel_gallery_img_more img {
  opacity: 0.4;
}

.hotel_gallery_img_more button {
  position: absolute;
  top: 50%;
  left: 50%;
  z-index: 2;
  width: max-content;
  padding: 9px 15px;
  transform: translate(-50%, -50%);
  border: 0;
  color: #fff;
  background: rgba(0, 0, 0, 0.62);
  border-radius: 5px;
  cursor: pointer;
  font-family: inherit;
  font-size: 18px;
  text-decoration: underline;
}

/* The page behind the gallery is locked by window.LorveanScrollLock. */
.hotel_gallery_modal {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  padding: 15px;
  background: rgba(16, 18, 23, 0.75);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.25s ease,
    visibility 0.25s ease;
}

.hotel_gallery_modal.is_open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.hotel_gallery_modal_dialog {
  width: 100%;
  max-width: 1920px;
  height: 100%;
  margin: auto;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
  border-radius: 16px;
  transform: translateY(15px) scale(0.99);
  transition: transform 0.25s ease;
}

.hotel_gallery_modal.is_open .hotel_gallery_modal_dialog {
  transform: translateY(0) scale(1);
}

.hotel_gallery_modal_header {
  min-height: 68px;
  padding: 0 24px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  flex-shrink: 0;
  background: #fff;
  border-bottom: 1px solid #e9e9e9;
}

.hotel_gallery_modal_back {
  grid-column: 1;
  justify-self: start;
  padding: 9px 0;
  display: flex;
  align-items: center;
  gap: 7px;
  border: 0;
  background: transparent;
  color: #202020;
  font-family: inherit;
  font-size: 16px;
  cursor: pointer;
}

.hotel_gallery_modal_back[hidden] {
  display: none;
}

.hotel_gallery_modal_header_left {
  grid-column: 2;
  justify-self: center;
  display: flex;
  align-items: center;
  gap: 15px;
}

.hotel_gallery_modal_header h2 {
  margin: 0;
  color: #202020;
  font-size: 18px;
  font-weight: 600;
}

.hotel_gallery_modal_select {
  padding: 9px 16px;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: #4094fa;
  font-family: inherit;
  font-size: 15px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.hotel_gallery_modal_select:hover {
  background: #3189f5;
}

.hotel_gallery_modal_close {
  grid-column: 3;
  justify-self: end;
  padding: 10px 0;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: transparent;
  color: #202020;
  font-family: inherit;
  font-size: 16px;
  cursor: pointer;
}

.hotel_gallery_modal_body {
  min-height: 0;
  flex: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  overflow: hidden;
}

.hotel_gallery_modal_media {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  background: #fff;
}

.hotel_gallery_modal_photos {
  height: 100%;
  padding: 18px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  grid-auto-rows: max-content;
  align-content: start;
  gap: 15px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.hotel_gallery_modal_photo {
  position: relative;
  width: 100%;
  aspect-ratio: 1.55;
  padding: 0;
  overflow: hidden;
  border: 0;
  border-radius: 7px;
  background: #eee;
  cursor: pointer;
}

.hotel_gallery_modal_photo img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  transition: transform 0.35s ease;
}

.hotel_gallery_modal_photo:hover img {
  transform: scale(1.025);
}

.hotel_gallery_modal_viewer {
  width: 100%;
  height: 100%;
  padding: 24px 30px 18px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #fff;
}

.hotel_gallery_modal_viewer[hidden] {
  display: none;
}

.hotel_gallery_viewer_stage {
  position: relative;
  min-height: 0;
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 65px;
}

.hotel_gallery_viewer_image {
  width: auto;
  max-width: min(100%, 1100px);
  height: auto;
  max-height: 100%;
  display: block;
  object-fit: contain;
  border-radius: 7px;
  background: #f1f1f1;
  user-select: none;
}

.hotel_gallery_viewer_arrow {
  position: absolute;
  top: 50%;
  z-index: 2;
  width: 44px;
  height: 44px;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: 50%;
  color: #202020;
  background: transparent;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.hotel_gallery_viewer_arrow:hover {
  background: #f1f3f5;
}

.hotel_gallery_viewer_prev {
  left: 8px;
}

.hotel_gallery_viewer_next {
  right: 8px;
}

.hotel_gallery_viewer_counter {
  margin: 12px 0 10px;
  flex-shrink: 0;
  color: #262626;
  font-family: Montserrat, sans-serif;
  font-size: 15px;
  text-align: center;
}

.hotel_gallery_viewer_thumbnails {
  width: 100%;
  min-height: 74px;
  padding: 2px 0 5px;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
}

.hotel_gallery_viewer_thumbnail {
  width: 76px;
  height: 58px;
  padding: 0;
  flex: 0 0 auto;
  overflow: hidden;
  border: 2px solid transparent;
  border-radius: 5px;
  background: #eee;
  opacity: 0.58;
  cursor: pointer;
  transition: opacity 0.2s ease,
    border-color 0.2s ease;
}

.hotel_gallery_viewer_thumbnail:hover {
  opacity: 0.9;
}

.hotel_gallery_viewer_thumbnail.is_active {
  border-color: #4094fa;
  opacity: 1;
}

.hotel_gallery_viewer_thumbnail img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.hotel_gallery_modal_reviews {
  padding: 20px 16px;
  overflow-y: auto;
  overscroll-behavior: contain;
  border-left: 1px solid #e8e8e8;
  background: #fff;
}

.hotel_gallery_modal_rating {
  margin: -20px -16px 20px;
  padding: 20px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  border-bottom: 1px solid #ececec;
}

.hotel_gallery_modal_rating>span {
  min-width: 46px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: #4094fa;
  border-radius: 6px 6px 6px 0;
  font-family: Montserrat, sans-serif;
  font-size: 17px;
  font-weight: 600;
}

.hotel_gallery_modal_rating div {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.hotel_gallery_modal_rating strong {
  color: #202020;
  font-size: 16px;
  font-weight: 500;
}

.hotel_gallery_modal_rating small {
  color: #6a6a6a;
  font-size: 12px;
}

.hotel_gallery_modal_reviews h3 {
  margin: 0 0 20px;
  color: #313131;
  font-size: 14px;
  font-weight: 500;
}

.hotel_gallery_review {
  padding-bottom: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #eee;
}

.hotel_gallery_review:last-child {
  margin-bottom: 0;
}

.hotel_gallery_review_user {
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.hotel_gallery_review_avatar {
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  object-fit: cover;
  color: #fff;
  background: #4094fa;
  border-radius: 50%;
  font-weight: 600;
}

.hotel_gallery_review_user div {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.hotel_gallery_review_user a,
.hotel_gallery_review_user strong {
  overflow: hidden;
  color: #202020;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.hotel_gallery_review_stars {
  color: #feb60c;
  font-size: 12px;
  letter-spacing: 1px;
}

.hotel_gallery_review p {
  margin: 0 0 8px;
  color: #373737;
  font-size: 14px;
  line-height: 1.55;
}

.hotel_gallery_review time {
  color: #898989;
  font-size: 12px;
}

.hotel_gallery_google_link {
  margin-top: 5px;
  display: inline-block;
  color: #287fdc;
  font-size: 14px;
  text-decoration: none;
}

.hotel_gallery_google_link:hover {
  text-decoration: underline;
}

.hotel_gallery_reviews_empty {
  color: #777;
  font-size: 14px;
  line-height: 1.5;
}

.hotel_overview {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 25px;
  display: flex;
  justify-content: space-between;
  align-items: stretch;
}

.hotel_overview_main {
  width: 1000px;
}

[data-hotel-section] {
  scroll-margin-top: calc(var(--hotel-sticky-top, 102px) + 58px);
}

.hotel_overview_nav {
  position: sticky;
  top: var(--hotel-sticky-top, 102px);
  z-index: 30;
  width: calc(100% - 100px);
  max-width: 1340px;
  margin: 25px auto 0;
  padding: 0;
  box-sizing: border-box;
  overflow: hidden;
  background: #ffffff;
  border: 1px solid transparent;
  border-radius: 8px;
  pointer-events: none;
}

.hotel_overview_nav.is_stuck {
  border-color: #e1dfdc;
  box-shadow: 0 8px 24px rgba(31, 54, 78, 0.1);
}

.hotel_overview_tabs {
  width: 1000px;
  max-width: 100%;
  display: flex;
  gap: 25px;
  background: #ffffff;
  box-shadow: inset 0 -1px #d9d9d9;
  pointer-events: auto;
}

.hotel_overview_nav.is_stuck .hotel_overview_tabs {
  box-shadow: none;
}

.hotel_overview_tab {
  background-color: inherit;
  color: #7f7f7f;
  font-size: 20px;
  font-weight: 400;
  padding: 5px 20px;
  border: 0px;
  cursor: pointer;
  box-shadow: inset 0 -2px transparent;
  transition: color 0.2s ease,
    box-shadow 0.2s ease;
}

.hotel_overview_tab:hover {
  color: #4094fa;
  box-shadow: inset 0 -2px #4094fa;
}

.hotel_overview_tab.active {
  color: #4094fa;
  box-shadow: inset 0 -2px #4094fa;
}

.hotel_overview_content {
  margin-top: 25px;
}

.hotel_overview_title {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: #000000;
  margin-bottom: 10px;
}

.hotel_overview_text {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-style: Regular;
  font-size: 18px;
  color: #363636;
  margin-bottom: 20px;
}

.hotel_overview_highlights {
  width: 305px;
  padding: 15px;
  background-color: #ecf3fa;
  height: fit-content;
  border-radius: 5px;
  position: sticky;
  top: var(--hotel-panel-sticky-top, 160px);
  align-self: flex-start;
}

.hotel_overview_highlights_title {
  color: #000000;
  font-size: 20px;
  font-weight: 500;
}

.hotel_overview_highlights_item {
  margin-top: 15px;
}

.hotel_overview_highlights_item h4 {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 500;
  font-size: 18px;
  color: #000000;
}

.hotel_overview_highlights_item p {
  margin-top: 5px;
  color: #363636;
  font-weight: 300;
  font-size: 16px;
  display: flex;
  align-items: start;
  gap: 8px;
}

.hotel_overview_highlights_item p svg {
  width: 15px;
  height: 21px;
  min-width: 15px;
  min-height: 21px;
  flex-shrink: 0;
}

.hotel_overview_highlights_item h4 {
  color: #000000;
  font-size: 18px;
  font-weight: 500;
}

.hotel_overview_activities li {
  color: #363636;
  font-size: 16px;
  margin-top: 0px;
}

.hotel_overview_highlights_activities {
  margin-top: 15px;
}

.hotel_overview_highlights_activities h4 {
  color: #000000;
  font-size: 18px;
  font-weight: 500;
}

.hotel_overview_highlights_activities p {
  color: #363636;
  font-size: 16px;
  font-weight: 300;
}

.hotel_room {
  max-width: 1440px;
  margin: 50px auto 0;
  padding: 0 50px;
}

.hotel_room_title {
  color: #000000;
  font-weight: 500;
  font-size: 24px;
}

.hotel_room_desc {
  font-family: Manrope, sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #363636;
}

.hotel_room_search {
  width: 1000px;
  min-height: 76px;
  margin-top: 20px;
  padding: 0 12px;
  display: grid;
  grid-template-columns: 1fr 1fr 1.15fr auto;
  align-items: stretch;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background: #ffffff;
  box-sizing: border-box;
  overflow: visible;
}

.hotel_room_search>.search_inner {
  width: auto;
  min-width: 0;
  margin: 0;
  border-right: 0;
}

.hotel_room_search>.search_inner[data-search="checkin"],
.hotel_room_search>.search_inner[data-search="checkout"],
.hotel_room_search>.search_inner[data-search="guests"] {
  width: auto;
}

.hotel_room_search .search_popup {
  top: calc(100% + 12px);
  margin-top: 0;
}

.hotel_room_search .search_calendar {
  left: 0;
}

.hotel_room_search .search_guests {
  right: 0;
  left: auto;
}

.hotel_room_search_item {
  position: relative;
  min-width: 0;
  min-height: 74px;
  padding: 0 16px;
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: Manrope, sans-serif;
  text-align: left;
  background: transparent;
  border: 0;
  border-right: 1px solid #e1dfdc;
  cursor: pointer;
}

.hotel_room_search_item:first-child {
  padding-left: 5px;
}

.hotel_room_search_icon {
  width: 26px;
  height: 28px;
  flex-shrink: 0;
  stroke: #6f6f6f;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: stroke 0.2s ease;
}

.hotel_room_search .search_inner.active .hotel_room_search_icon {
  stroke: #4094fa;
}

.hotel_room_search .search_inner.active .hotel_room_search_value {
  color: #4094fa;
}

.hotel_room_search_content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.hotel_room_search_label {
  color: #363636a1;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.2;
}

.hotel_room_search_value {
  color: #363636;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.25;
  white-space: nowrap;
}

.hotel_room_search_guests {
  padding-right: 22px;
}

.hotel_room_search_arrow {
  flex-shrink: 0;
  margin-left: auto;
  transition: transform 0.25s ease;
}

.hotel_room_search_guests:hover .hotel_room_search_arrow {
  transform: translateY(2px);
}

.hotel_room_search_submit {
  align-self: center;
  height: 50px;
  margin-left: 12px;
  padding: 0 22px;
  font-family: Manrope, sans-serif;
  font-size: 18px;
  font-weight: 300;
  color: #ffffff;
  white-space: nowrap;
  background: #4094fa;
  border: 0;
  border-radius: 5px;
  cursor: pointer;
  transition: background-color 0.25s ease,
    transform 0.2s ease;
}

.hotel_room_search_submit:hover {
  background: #2583f5;
}

.hotel_room_search_submit:active {
  transform: scale(0.98);
}

.hotel_room_flex {
  width: 100%;
  display: flex;
  margin-top: 20px;
  gap: 35px;
}

.hotel_room_table {
  width: 1000px;
  max-width: 100%;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  overflow: hidden;
}

.hotel_room_table_header {
  width: 100%;
  background-color: #ecf3fa;
  display: flex;
  align-items: stretch;
  border-bottom: 1px solid #e1dfdc;
}

.hotel_room_table_title {
  min-width: 0;
}

.hotel_room_table_title p {
  margin: 0;
  padding: 15px;
  color: #000000;
  font-size: 17px;
  font-weight: 400;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hotel_room_table_title.first,
.hotel_room_summary_info.first {
  width: auto;
  flex: 0 0 35%;
  border-right: 1px solid #e1dfdc;
}

.hotel_room_table_title.second,
.hotel_room_summary_info.second {
  width: auto;
  flex: 0 0 17.5%;
  border-right: 1px solid #e1dfdc;
}

.hotel_room_table_title.third,
.hotel_room_summary_info.third {
  width: auto;
  flex: 0 0 17%;
  border-right: 1px solid #e1dfdc;
}

.hotel_room_table_title.fours,
.hotel_room_summary_info.fours {
  width: auto;
  flex: 0 0 12.5%;
  border-right: 1px solid #e1dfdc;
}

.hotel_room_table_title.fifth,
.hotel_room_summary_info.fifth {
  width: auto;
  flex: 0 0 18%;
}

.hotel_room_item {
  width: 100%;
  background-color: #ffffff;
  display: flex;
  align-items: stretch;
}

.hotel_room_item+.hotel_room_item {
  border-top: 1px solid #e1dfdc;
}

.hotel_room_summary_info {
  min-width: 0;
}

.hotel_room_name {
  margin: 15px 15px 0;
  color: #000000;
  font-size: 22px;
  font-weight: 500;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hotel_room_atribute {
  margin: 5px 15px 0;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hotel_room_quantity {
  margin: 5px 15px 0;
  display: flex;
  align-items: center;
  gap: 4px;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.hotel_room_quantity svg {
  flex-shrink: 0;
}

.hotel_room_villa_features {
  margin: 10px 15px 15px;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.hotel_room_villa_feature {
  max-width: 100%;
  min-width: 0;
  padding: 10px;
  display: flex;
  align-items: center;
  gap: 5px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hotel_room_villa_feature svg {
  flex-shrink: 0;
}

.hotel_room_prices {
  min-width: 0;
  margin: 15px;
}

.hotel_room_price_through {
  display: block;
  color: #6f6f6f;
  font-family: Montserrat, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  text-decoration: line-through;
  overflow-wrap: anywhere;
}

.hotel_room_price_price {
  margin: 2px 0 0;
  color: #000000;
  font-family: Montserrat, sans-serif;
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.hotel_room_price_taxes {
  margin: 5px 0 0;
  color: #6f6f6f;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hotel_room_choice {
  min-width: 0;
  margin: 10px;
}

.hotel_room_choice_item {
  margin: 5px 0 0;
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 5px;
  color: #317e29;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

.hotel_room_choice_item svg {
  flex-shrink: 0;
  margin-top: 2px;
}

.hotel_room_choice_item span {
  flex: 0 0 calc(100% - 23px);
  width: calc(100% - 23px);
  margin-top: -3px;
  margin-left: 23px;
  color: #6f6f6f;
  overflow-wrap: anywhere;
}

.hotel_room_select {
  display: block;
  width: calc(100% - 30px);
  margin: 15px;
  padding: 10px 5px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  outline: none;
  background-color: #ffffff;
  color: #6f6f6f;
  font-family: inherit;
  font-size: 14px;
  cursor: pointer;
}

.hotel_room_button {
  display: block;
  width: calc(100% - 30px);
  margin: 15px;
  padding: 10px;
  border: 0;
  border-radius: 5px;
  background-color: #4094fa;
  color: #ffffff;
  font-family: inherit;
  font-size: 18px;
  font-weight: 300;
  cursor: pointer;
  transition: background-color 0.2s ease,
    transform 0.2s ease;
}

.hotel_room_button:hover {
  background-color: #287fec;
}

.hotel_room_summary {
  width: 100%;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  height: fit-content;
  padding: 15px;
  position: relative;
  align-self: flex-start;
  background-color: #ffffff;
  box-sizing: border-box;
}

.hotel_room_summary_slot {
  width: 305px;
  flex: 0 0 305px;
  min-width: 0;
}

.hotel_room_summary.is_following {
  z-index: 24;
  max-height: calc(100vh - var(--hotel-panel-sticky-top, 160px) - 12px);
  overflow-x: hidden;
  overflow-y: auto;
  box-shadow: 0 10px 28px rgba(31, 54, 78, 0.1);
}

.hotel_room_summary[hidden] {
  display: none;
}

.hotel_room_summary_title {
  font-weight: 500;
  font-style: Medium;
  font-size: 22px;
  color: #000000;
}

.hotel_room_summary_details {
  color: #363636;
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
}

.hotel_room_summary_selected {
  display: flex;
  gap: 8px;
  padding: 14px 0;
  border-bottom: 1px solid #e1dfdc;
}

.hotel_room_summary_selected:last-child {
  border-bottom: 0;
}

.hotel_room_summary_selections {
  max-height: 224px;
  overflow-y: auto;
  scrollbar-width: thin;
  scrollbar-color: #c8d9eb transparent;
}

.hotel_room_summary_content {
  min-width: 0;
  flex: 1;
}

.hotel_room_summary_quantity {
  display: inline-flex;
  margin-top: 5px;
  padding: 2px 7px;
  color: #287fec;
  font-family: Montserrat, sans-serif;
  font-size: 12px;
  font-weight: 500;
  background: #ecf3fa;
  border-radius: 999px;
}

.hotel_room_summary_image {
  width: 100px;
  height: 50px;
  border-radius: 5px;
}

.hotel_room_summary_name {
  font-weight: 500;
  font-size: 18px;
  color: #000000;
}

.hotel_room_summary_attribute {
  font-weight: 300;
  font-size: 14px;
  color: #6f6f6f;
}

.hotel_room_summary_booking {
  margin-top: 15px;
  border-top: 1px solid #e1dfdc;
  border-bottom: 1px solid #e1dfdc;
}

.hotel_room_summary_dates {
  margin-top: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hotel_room_summary_date_divider {
  border: 1px solid #e1dfdc;
  height: 50px;
}

.hotel_room_summary_date_label {
  color: #6f6f6f;
  font-size: 14px;
}

.hotel_room_summary_date_value {
  color: #000000;
  font-size: 16px;
  font-weight: 300;
  color: #000000;
}

.hotel_room_summary_guests {
  margin-top: 15px;
  margin-bottom: 15px;
}

.hotel_room_summary_guests_label {
  color: #6f6f6f;
  font-size: 14px;
  color: #6f6f6f;
}

.hotel_room_summary_guests_value {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #000000;
}

.hotel_room_summary_total_row {
  margin-top: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.hotel_room_summary_total_title {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 500;
  font-style: Medium;
  font-size: 22px;
  color: #000000;
}

.hotel_room_summary_total_price {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 22px;
  color: #000000;
}

.hotel_room_summary_total_note {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-style: Regular;
  font-size: 14px;
  color: #6f6f6f;
  margin-top: 0px;
}

.hotel_room_summary_booking_button {
  margin-top: 30px;
  background-color: #4094fa;
  border-radius: 5px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 300;
  width: 100%;
  height: 45px;
  cursor: pointer;
  border: 0px;
}

.hotel_gallery_select_room,
.hotel_gallery_modal_select,
.hotel_room_search_submit,
.hotel_room_button,
.hotel_room_summary_booking_button {
  position: relative;
  overflow: hidden;
}

.hotel_gallery_select_room .button_ripple,
.hotel_gallery_modal_select .button_ripple,
.hotel_room_search_submit .button_ripple,
.hotel_room_button .button_ripple,
.hotel_room_summary_booking_button .button_ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.hotel_room_summary_secure {
  display: flex;
  align-items: center;
  text-align: center;
  justify-content: center;
  margin-top: 10px;
  gap: 5px;
}

.hotel_room_summary_secure span {
  color: #6f6f6f;
  font-family: Manrope, Arial, sans-serif;
  font-weight: 400;
  font-size: 12px;
}

.facilities {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 50px;
}

.facilities_title {
  font-weight: 500;
  font-style: Medium;
  font-size: 24px;
  color: #000000;
}

.facilities_desc {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
  color: #363636;
}

.facilities_popular_content {
  width: 1000px;
  padding: 15px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  margin-top: 20px;
}

.facilities_popular_title {
  font-weight: 500;
  font-size: 22px;
  color: #000000;
}

.facilities_popular_inside {
  display: flex;
  gap: 45px;
  flex-wrap: wrap;
  margin-top: 15px;
}

.facilities_popular_icons {
  width: 150px;
  height: 85px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.facilities_popular_icons>span {
  padding: 2px 6px;
  background-color: inherit;
  border: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.facilities_popular_icons svg {
  width: 35px;
  height: 35px;
}

.facilities_popular_icons_text {
  margin: 0;
  text-align: center;
  color: #363636;
  font-size: 16px;
  font-weight: 300;
}

.locate_hotel {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 50px;
}

.locate_title {
  font-weight: 400;
  font-size: 24px;
  color: #000000;
}

.locate_desc {
  font-weight: 300;
  font-size: 16px;
  color: #363636;
}

.locate_map_content {
  width: 1000px;
  margin-top: 20px;
}

.locate_map_content iframe {
  width: 100%;
  height: 430px;
}

.locate_info_content {
  margin-top: 20px;
  width: 1000px;
  display: flex;
  justify-content: space-between;
}

.locate_info_content_inside {
  padding: 15px;
  width: 490px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
}

.locate_info_text {
  font-weight: 400;
  font-style: Medium;
  font-size: 18px;
  color: #000000;
}

.locate_info_icon {
  margin-top: 20px;
  display: flex;
  gap: 15px;
  align-items: center;
}

.locate_info_icon_text {
  font-weight: 300;
  font-size: 16px;
  color: #363636;
}

.locate_info_icon_btn {
  background-color: inherit;
  border: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.locate_info_icon_btn svg {
  width: 25px;
  height: 25px;
}

.hotel_review {
  max-width: 1440px;
  margin: 50px auto 0;
  padding: 0 50px;
  margin-bottom: 100px;
}

.hotel_review_title,
.hotel_review_content,
.hotel_review_inner {
  width: 1000px;
  max-width: 100%;
}

.hotel_review_title h2 {
  margin: 0;
  color: #000;
  font-size: 24px;
  font-weight: 500;
}

.hotel_review_title p {
  margin: 3px 0 0;
  color: #363636;
  font-size: 16px;
  font-weight: 300;
}

.hotel_review_content {
  margin-top: 20px;
}

.hotel_review_summary {
  display: grid;
  grid-template-columns: 350px 1fr;
  min-height: 225px;
  padding: 15px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
}

.hotel_review_score {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 0 15px;
  border-right: 1px solid #e1dfdc;
}

.hotel_review_score_value {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.hotel_review_score_value strong {
  color: #0a65f0;
  font-family: "Montserrat", sans-serif;
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
}

.hotel_review_score_value span {
  color: #363636;
  font-family: "Montserrat", sans-serif;
  font-size: 25px;
  font-weight: 500;
}

.hotel_review_stars {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: 5px;
}

.hotel_review_stars svg {
  width: 21px;
  height: 20px;
  flex-shrink: 0;
}

.hotel_review_stars svg.is_empty {
  opacity: 0.22;
}

.hotel_review_score_text {
  margin: 10px 0 0;
  color: #000;
  font-size: 20px;
  font-weight: 500;
}

.hotel_review_based {
  display: flex;
  align-items: center;
  gap: 7px;
  margin: 3px 0 0;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.25;
  white-space: nowrap;
}

.hotel_review_based img {
  width: 80px;
  flex: 0 0 80px;
  height: auto;
  display: block;
  object-fit: contain;
}

.hotel_review_ratings {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-left: 30px;
}

.hotel_review_ratings_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.hotel_review_ratings_header h3 {
  margin: 0;
  color: #000;
  font-size: 20px;
  font-weight: 500;
}

.hotel_review_ratings_header span {
  color: #6f6f6f;
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 400;
}

.hotel_review_rating {
  display: grid;
  grid-template-columns: 20px 1fr 40px;
  align-items: center;
  gap: 12px;
  min-height: 36px;
}

.hotel_review_rating_number,
.hotel_review_rating_count {
  color: #000;
  font-family: "Montserrat", sans-serif;
  font-size: 20px;
  font-weight: 400;
}

.hotel_review_rating_count {
  text-align: right;
}

.hotel_review_rating_bar {
  width: 100%;
  height: 10px;
  overflow: hidden;
  background: #dedede;
  border-radius: 50px;
}

.hotel_review_rating_bar span {
  display: block;
  height: 100%;
  min-width: 3px;
  background: #0a65f0;
  border-radius: inherit;
}

.hotel_review_list_title {
  margin-top: 25px;
}

.hotel_review_list_title h2 {
  font-size: 20px;
}

.hotel_review_list_title p {
  margin-top: 7px;
}

.hotel_review_inner {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-top: 20px;
}

.hotel_review_item {
  display: flex;
  gap: 20px;
  min-height: 160px;
  padding: 15px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
}

.hotel_review_avatar {
  width: 60px;
  height: 60px;
  flex: 0 0 60px;
  border-radius: 50%;
  object-fit: cover;
}

.hotel_review_avatar_fallback {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #edf5ff;
  color: #0a65f0;
  font-family: "Montserrat", sans-serif;
  font-size: 22px;
  font-weight: 600;
}

.hotel_review_status {
  min-height: 120px;
  padding: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  color: #6f6f6f;
  font-size: 15px;
  font-weight: 300;
  text-align: center;
}

.hotel_review_item_content {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.hotel_review_user {
  display: flex;
  align-items: center;
  gap: 20px;
}

.hotel_review_user h3 {
  margin: 0;
  color: #000;
  font-size: 22px;
  font-weight: 500;
}

.hotel_review_user span {
  color: #6f6f6f;
  font-size: 14px;
  font-weight: 300;
}

.hotel_review_item .hotel_review_stars {
  margin-top: 5px;
}

.hotel_review_text {
  margin: 8px 0 0;
  color: #363636;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
}

.hotel_review_link {
  display: inline-flex;
  align-items: center;
  align-self: flex-end;
  gap: 10px;
  margin-top: auto;
  color: #0a65f0;
  font-size: 16px;
  font-weight: 400;
  text-decoration: none;
}

.hotel_review_link svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
}

.hotel_review_link:hover {
  text-decoration: underline;
}

.hotel_review_svg_sprite {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.booking_main_title {
  margin: auto;
  padding: 0 50px;
  max-width: 1440px;
  font-weight: 400;
  font-size: 24px;
  color: #000000;
  margin-top: 20px;
}

.booking_content {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  justify-content: space-between;
}

.booking_left {
  min-width: 0;
  flex: 1;
}

.stepper {
  width: 100%;
  display: flex;
  align-items: center;
  margin-top: 20px;
  margin-bottom: 20px;
}

.stepper_item {
  display: flex;
  align-items: center;
  flex: 1;
}

.stepper_item:last-child {
  flex: 0;
}

.stepper_number {
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border: 1px solid #e1dfdc;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 20px;
  color: #363636;
}

.stepper_item.active .stepper_number {
  background-color: #4094fa;
  border-color: #4094fa;
  color: #ffffff;
}

.stepper_line {
  flex: 1;
  height: 1px;
  background-color: #e1dfdc;
  margin: 0 20px;
}

.booking_form {
  width: 100%;
}

.booking_section_title {
  font-weight: 400;
  font-size: 22px;
  color: #000000;
}

.booking_section_grid {
  display: flex;
  justify-content: space-between;
}

.booking_field {
  width: 48%;
  margin-top: 15px;
}

.booking_field p {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
}

.booking_field input {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  margin-top: 5px;
  padding-left: 15px;
  outline: none;
  transition: all 0.2s ease;
}

.booking_field input:focus {
  border: 1px solid #0a65f0;
}

.booking_input_number {
  position: relative;
}

.booking_input_number img {
  width: 25px;
  height: 25px;
  display: block;
  position: absolute;
  left: 10px;
  top: 50%;
  transform: translateY(-50%);
  object-fit: cover;
  border-radius: 50%;
}

.booking_input_number input {
  padding-left: 40px;
}

.booking_info_text {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
  margin-top: 5px;
}

.booking_section_title.second {
  margin-top: 25px;
}

.booking_select {
  position: relative;
}

.booking_field select {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  margin-top: 5px;
  padding-left: 15px;
  padding-right: 50px;
  outline: none;
  appearance: none;
  -webkit-appearance: none;
  transition: all 0.2s ease;
}

.booking_field select:focus {
  border-color: #0a65f0;
}

.booking_select_icon {
  position: absolute;
  right: 20px;
  top: calc(50% + 2.5px);
  transform: translateY(-50%);
  pointer-events: none;
}

.booking_field textarea {
  width: 100%;
  height: 150px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  margin-top: 5px;
  padding: 15px;
  font-family: Manrope, Arial, sans-serif;
  outline: none;
  resize: none;
  transition: all 0.2s ease;
}

.booking_field textarea:focus {
  border: 1px solid #0a65f0;
}

.booking_checkbox {
  margin-top: 6px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.booking_checkbox label {
  color: #7b7b7b;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 18px;
  cursor: pointer;
}

.booking_checkbox a {
  color: #7b7b7b;
}

.booking_checkbox input {
  width: 20px;
  height: 20px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0px;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.booking_checkbox input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.booking_checkbox input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
  box-shadow: 0 0 0 4px rgba(64, 148, 250, 0.12);
  animation: checkboxPop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.booking_checkbox input:active {
  box-shadow: 0 0 0 6px rgba(64, 148, 250, 0.1);
}

.review_card {
  margin-top: 20px;
  border: 1px solid #e1dfdc;
  padding: 15px;
  border-radius: 5px;
}

.review_card__header {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.review_card_title {
  font-weight: 400;
  font-size: 18px;
  color: #000000;
}

.review_card_edit {
  background-color: inherit;
  color: #4094fa;
  font-size: 18px;
  font-weight: 400;
  cursor: pointer;
  border: 0px;
}

.review_card_content {
  margin-top: 15px;
}

.review_card_text {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
  display: flex;
}

.review_card_link {
  color: #363636;
  font-size: 14px;
  font-weight: 300;
  text-decoration: none;
}

.review_card_number {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #363636;
  margin-top: 5px;
}

.review_card_flex {
  display: flex;
  align-items: center;
  width: 250px;
  justify-content: space-between;
}

.review_card_special {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
  margin-top: 5px;
}

.review_card_ins {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
  display: flex;
}

.booking_payment_methods {
  margin-top: 15px;
  width: 100%;
  display: flex;
  justify-content: space-between;
}

.booking_payment_method {
  width: 49%;
  height: 50px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background-color: inherit;
  cursor: pointer;
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

.booking_payment_method img {
  width: 20px;
}

.booking_card_name {
  margin-top: 15px;
}

.booking_card_name p {
  font-weight: 300;
  font-size: 14px;
  color: #363636;
}

.booking_card_name input {
  margin-top: 5px;
  width: 100%;
  height: 50px;
  padding: 15px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  font-family: Montserrat, Arial, sans-serif;
  letter-spacing: 1px;
  outline: none;
}

.booking_card_date {
  display: flex;
  gap: 15px;
  margin-top: 15px;
  width: 100%;
}

.booking_card_flex {
  flex: 1;
}

.booking_card_flex input {
  margin-top: 5px;
  width: 100%;
  height: 50px;
  padding: 15px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  font-family: Montserrat, Arial, sans-serif;
  letter-spacing: 1px;
  outline: none;
  box-sizing: border-box;
}

.booking_card_pay {
  width: 100%;
  margin-top: 25px;
}

.booking_card_pay_info {
  display: flex;
  gap: 10px;
  justify-content: center;
  align-items: center;
  color: #6f6f6f;
  font-weight: 300;
  font-size: 14px;
}

.booking_card_pay_button {
  width: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 45px;
  background-color: #4094fa;
  color: #ffffff;
  font-size: 18px;
  font-family: Montserrat, Arial, sans-serif;
  cursor: pointer;
  border: 0px;
  margin: auto;
  margin-top: 15px;
  margin-bottom: 15px;
  border-radius: 5px;
}

.booking_confirmation {
  width: 425px;
  margin: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 80vh;
}

.booking_confirmation_flex {
  text-align: center;
}

.booking_confirmation_title {
  margin-top: 20px;
  color: #000000;
  font-size: 24px;
  font-weight: 500;
  text-align: center;
}

.booking_confirmation_subtitle {
  font-size: 14px;
  color: #363636;
  font-weight: 300;
}

.booking_confirmation_reference_text {
  color: #363636;
  font-weight: 300;
  font-size: 14px;
}

.booking_confirmation_reference {
  display: flex;
  justify-content: space-between;
  width: 100%;
  background-color: #ffffff;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  align-items: center;
  padding: 15px;
  margin-top: 20px;
}

.booking_confirmation_reference_code {
  display: flex;
  align-items: center;
  gap: 15px;
}

.booking_confirmation_copy {
  background-color: inherit;
  cursor: pointer;
  border: 0px;
}

#bookingReference {
  font-size: 24px;
  color: #000000;
  font-weight: 500;
}

.booking_confirmation_email {
  margin-top: 5px;
  font-size: 14px;
  color: #363636;
  font-weight: 300;
}

.booking_confirmation_email span {
  color: #000000;
  font-weight: 400;
}

.booking_confirmation_next {
  margin-top: 20px;
  background-color: #f6fafe;
  border: 1px solid #4094fa;
  padding: 15px;
  border-radius: 5px;
}

.booking_confirmation_next h2 {
  color: #4094fa;
  font-size: 20px;
  font-weight: 400;
}

.booking_confirmation_next p {
  font-weight: 400;
  font-size: 14px;
  text-align: center;
  color: #363636;
  width: 386px;
  margin: auto;
  margin-top: 10px;
}

.booking_confirmation_actions {
  display: flex;
  justify-content: space-between;
  margin-top: 20px;
}

.booking_confirmation_button {
  width: 48%;
  height: 45px;
  color: #4094fa;
  cursor: pointer;
  font-size: 18px;
  border-radius: 5px;
  text-decoration: none;
  font-weight: 300;
  display: flex;
  align-items: center;
  justify-content: center;
}

.booking_confirmation_button_secondary {
  border: 1px solid #4094fa;
}

.booking_confirmation_button_primary {
  background-color: #4094fa;
  color: #ffffff;
}

.booking_confirmation_help {
  margin-top: 30px;
  font-size: 14px;
  color: #363636;
}

.booking_confirmation_help a {
  color: #4094fa;
  text-decoration: none;
}

.booking_confirmation_icon {
  width: 100px;
  margin: auto;
}

.tours_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 20px;
}

.tours_deal_title h1 {
  color: #000000;
  font-size: 24px;
  font-weight: 500;
}

.tours_deal_inner {
  display: flex;
  justify-content: space-between;
  margin-top: 10px;
}

.tours_deal_inner_flex {
  width: 435px;
  border-radius: 5px;
  border: 1px solid #e1dfdc;
  flex-wrap: wrap;
}

.tours_deal_img {
  position: relative;
}

.tours_deal_img img {
  width: 100%;
  height: 250px;
  display: block;
  border-radius: 5px;
}

.tours_deal_time {
  position: absolute;
  padding: 10px;
  display: flex;
  gap: 5px;
  align-items: center;
  background-color: #ffffff;
  border-radius: 12px;
  top: 15px;
  left: 15px;
}

.tours_deal_name {
  gap: 10px;
  display: flex;
  align-items: center;
}

.tours_deal_name p {
  font-size: 24px;
  color: #000000;
  font-weight: 500;
}

.tours_deal_name img {
  width: 18px;
  height: 18px;
  object-fit: cover;
  border-radius: 50%;
}

.tours_deal_padding {
  padding: 15px;
}

.tours_deal_desc {
  font-size: 16px;
  font-weight: 300;
  color: #363636;
}

.tours_icon_flex {
  margin-top: 18px;
  margin-bottom: 18px;
}

.tours_icon {
  display: flex;
  gap: 10px;
  margin-bottom: 5px;
}

.tours_icon>span {
  display: inline-flex;
  background-color: inherit;
  border: 0px;
  width: 17px;
  height: 17px;
}

.tours_icon p {
  color: #363636;
  font-size: 16px;
  font-weight: 300;
}

.tours_price {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.tours_price_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 30px;
  color: #000000;
}

.tours_price_button {
  padding: 10px 25px;
  border-radius: 5px;
  background-color: #4094fa;
  color: #ffffff;
  font-size: 18px;
  cursor: pointer;
  border: 0px;
}

.tours_slider {
  display: flex;
  gap: 20px;
  justify-content: end;
  align-items: center;
  margin-top: 15px;
}

.tours_slider_prev,
.tours_slider_next {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1px solid #afafaf;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

.tours_slider_next.active {
  border: 1px solid #b0b0b0;
}

.tours_essentials {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 100px;
}

.tours_essentials_title {
  font-weight: 500;
  font-size: 40px;
  color: #000000;
}

.tours_essentials_subtitle {
  font-weight: 300;
  font-size: 18px;
  color: #6b7280;
}

.tours_essentials_content {
  margin-top: 35px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: center;
  padding: 47.5px;
  border: 1px solid #e7ecf2;
  border-radius: 20px;
}

.tours_essentials_item {
  min-height: 105px;
  display: flex;
  align-items: center;
  gap: 30px;
  position: relative;
  padding: 0 45px;
}

.tours_essentials_item:first-child {
  padding-left: 0;
}

.tours_essentials_item:last-child {
  padding-right: 0;
}

.tours_essentials_item:not(:last-child)::after {
  content: "";
  position: absolute;
  top: 50%;
  right: 0;
  width: 1px;
  height: 105px;
  background-color: #e7ecf2;
  transform: translateY(-50%);
}

.tours_essentials_icon {
  width: 36px;
  height: 36px;
  flex: 0 0 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.tours_essentials_icon svg {
  display: block;
  width: 32px;
  height: 32px;
}

.tours_essentials_item:nth-child(1) .tours_essentials_icon svg {
  width: 34px;
  height: 28px;
}

.tours_essentials_item:nth-child(2) .tours_essentials_icon svg {
  width: 32px;
  height: 32px;
}

.tours_essentials_item:nth-child(3) .tours_essentials_icon svg {
  width: 33px;
  height: 32px;
}

.tours_essentials_info {
  min-width: 0;
}

.tours_essentials_item_title {
  font-weight: 500;
  font-size: 22px;
  color: #000000;
}

.tours_essentials_text {
  margin-top: 5px;
  color: #6b7280;
  font-weight: 300;
  font-size: 16px;
}

.about_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  gap: 50px;
  margin-top: 50px;
}

.about_left_bar {
  width: 250px;
}

.about_left_button {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  background-color: inherit;
  border: 0px;
  text-align: start;
  padding-left: 15px;
  font-size: 18px;
  color: #404040;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s ease;
}

.about_left_button:hover {
  background-color: #f2f2f2;
}

.about_left_button.active {
  background-color: #f2f2f2;
}

.about_left_buttons {
  margin-bottom: 10px;
}

.about_text_right {
  width: 1000px;
}

.about_text_title {
  font-size: 32px;
  color: #000000;
  font-weight: 300;
  margin-bottom: 25px;
}

.about_text_desc {
  font-size: 16px;
  font-weight: 300;
  line-height: 155%;
  color: #363636;
  margin-bottom: 20px;
}

.support_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  gap: 50px;
}

.support_section {
  margin-top: 50px;
}

.support_sidebar {
  width: 250px;
}

.support_sidebar_button {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  background-color: inherit;
  border: 0px;
  text-align: start;
  padding-left: 15px;
  font-size: 18px;
  color: #404040;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s ease;
  text-decoration: none;
}

.support_sidebar_button:hover {
  background-color: #f2f2f2;
}

.support_sidebar_button.active {
  background-color: #f2f2f2;
}

.support_sidebar_buttons {
  margin-bottom: 10px;
}

.support_right_inner {
  width: 1000px;
}

.support_right_title {
  font-size: 32px;
  font-weight: 300;
  color: #000000;
}

.support_right_description {
  color: #6f6f6f;
  font-weight: 300;
  font-size: 16px;
}

.support_flex {
  display: flex;
  width: 1000px;
  margin-top: 15px;
  gap: 40px;
}

.support_contact_left {
  width: 450px;
  margin-top: 10px;
}

.support_contact_left_select {
  margin-top: 15px;
}

.support_contact_left_select select {
  width: 100%;
  height: 50px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background-color: inherit;
  outline: none;
  padding-left: 15px;
  color: #a7a7a7;
  font-size: 16px;
  font-weight: 300;
  margin-top: 5px;
  font-family: Manrope, Arial, sans-serif;
}

.support_contact_left_title {
  font-weight: 400;
  font-size: 20px;
  color: #000000;
}

.support_contact_left_select p {
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.support_contact_left_inputs {
  width: 100%;
  margin-top: 15px;
}

.support_contact_left_input p {
  color: #6f6f6f;
  font-weight: 300;
  font-size: 16px;
}

.support_contact_left_input input {
  margin-top: 5px;
  width: 100%;
  height: 50px;
  border-radius: 5px;
  padding-left: 15px;
  border: 1px solid #e1dfdc;
  font-size: 16px;
  margin-bottom: 15px;
  outline: none;
  font-weight: 300;
}

.support_contact_left_input textarea {
  width: 100%;
  height: 150px;
  border-radius: 5px;
  padding-left: 15px;
  border: 1px solid #e1dfdc;
  font-size: 16px;
  margin-bottom: 5px;
  font-weight: 300;
  font-family: manrope;
  padding-top: 15px;
  outline: none;
  margin-top: 5px;
}

.support_contact_left_button button {
  width: 250px;
  height: 55px;
  background-color: #4094fa;
  border: 0px;
  color: #ffffff;
  font-size: 18px;
  font-weight: 300;
  cursor: pointer;
  border-radius: 5px;
  margin-top: 25px;
}

.support_contact_line {
  width: 1px;
  height: 750px;
  background-color: #d9d9d9;
  margin-top: 30px;
}

.support_contact_right {
  margin-top: 50px;
}

.support_contact_item h3 {
  color: #000000;
  font-weight: 400;
  font-size: 18px;
}

.support_contact_item a {
  font-weight: 300;
  font-size: 16px;
  color: #6f6f6f;
  margin-top: 5px;
  text-decoration: none;
}

.support_contact_item {
  margin-top: 25px;
}

.support_contact_item p {
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.support_flex_1 {
  width: 1000px;
  max-width: 100%;
  margin-top: 15px;
}

.support_help_search {
  position: relative;
}

.support_help_search input {
  width: 100%;
  height: 60px;
  padding: 0 75px 0 15px;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  outline: none;
  font: inherit;
  font-size: 16px;
  box-sizing: border-box;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.support_help_search input:focus {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.12);
}

.support_help_search button {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 40px;
  height: 40px;
  border: 0;
  border-radius: 50%;
  background-color: #4094fa;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transform: translateY(-50%);
  transition: background-color 0.2s ease,
    transform 0.2s ease;
}

.support_help_search button:hover {
  background-color: #2785f7;
  transform: translateY(-50%) scale(1.05);
}

.support_topics {
  margin-top: 35px;
}

.support_section_title {
  margin: 0;
  color: #000000;
  font-size: 24px;
  font-weight: 500;
}

.support_topics_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 22px;
}

.support_topic_item {
  position: relative;
  min-width: 0;
  min-height: 112px;
  color: #6f6f6f;
  text-decoration: none;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  transition: background-color 0.2s ease;
}

.support_topic_item:nth-child(odd) {
  padding: 20px 28px 20px 0;
}

.support_topic_item:nth-child(even) {
  padding: 20px 0 20px 28px;
}

.support_topic_item:nth-child(-n + 4) {
  border-bottom: 1px solid #e8e9ea;
}

.support_topic_item:nth-child(odd)::after {
  content: "";
  position: absolute;
  top: 20px;
  right: 0;
  bottom: 20px;
  width: 1px;
  background-color: #e8e9ea;
}

.support_topic_icon {
  width: 40px;
  min-width: 40px;
  height: 42px;
  color: #6f6f6f;
  display: flex;
  align-items: center;
  justify-content: center;
}

.support_topic_content {
  min-width: 0;
  margin-left: 18px;
}

.support_topic_content h3 {
  margin: 0;
  color: #000000;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.3;
}

.support_topic_content p {
  margin: 5px 0 0;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.4;
}

.support_arrow {
  min-width: 22px;
  margin-left: auto;
  padding-left: 18px;
  color: #6f6f6f;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: color 0.2s ease,
    transform 0.2s ease;
}

.support_topic_item:hover {
  background-color: #fafcff;
}

.support_topic_item:hover .support_arrow,
.support_article:hover .support_arrow {
  color: #4094fa;
  transform: translateX(5px);
}

.support_topic_item:hover h3 {
  color: #4094fa;
}

.support_popular {
  margin-top: 35px;
}

.support_popular_list {
  margin-top: 17px;
}

.support_article {
  min-height: 60px;
  border-bottom: 1px solid #e8e9ea;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  text-decoration: none;
  display: flex;
  align-items: center;
  box-sizing: border-box;
  transition: color 0.2s ease,
    padding-left 0.2s ease;
}

.support_article:hover {
  color: #4094fa;
  padding-left: 5px;
}

.support_bottom {
  margin-top: 42px;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  display: flex;
  align-items: center;
  gap: 28px;
}

.support_bottom a {
  color: #4094fa;
  text-decoration: none;
  transition: color 0.2s ease;
}

.support_bottom a:hover {
  color: #1478f2;
}

.faq_top {
  margin-top: 50px;
}

.support_bottom_1 {
  margin-top: 30px;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
  display: flex;
  align-items: center;
  gap: 28px;
}

.support_bottom_1 a {
  color: #4094fa;
  text-decoration: none;
  transition: color 0.2s ease;
}

.support_bottom_1 a:hover {
  color: #1478f2;
}

.alerts_container {
  width: 1000px;
  margin-top: 50px;
}

.alerts_inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.alerts_left_date {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 400;
  font-size: 14px;
  color: #6f6f6f;
  display: flex;
  align-items: center;
  gap: 20px;
}

.alerts_red_span {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 14px;
  color: #ff0000;
  text-transform: uppercase;
}

.alerts_left_title {
  font-weight: 400;
  font-size: 22px;
  color: #000000;
  margin-top: 5px;
  width: 805px;
}

.alerts_left_desc {
  width: 805px;
  font-weight: 300;
  font-size: 16px;
  line-height: 154%;
  color: #6f6f6f;
  margin-top: 10px;
}

.alerts_right button {
  background-color: inherit;
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-style: Regular;
  font-size: 18px;
  text-align: right;
  color: #4094fa;
  cursor: pointer;
  border: 0px;
  display: flex;
  gap: 10px;
  align-items: center;
}

.alerts_bottom {
  width: 100%;
  height: 1px;
  background-color: #e8e9ea;
  margin-top: 15px;
  margin-bottom: 15px;
}

.alerts_blue_span {
  font-weight: 600;
  color: #4094fa;
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 600;
  font-size: 14px;
  text-transform: uppercase;
}

.alerts_grey_span {
  font-weight: 600;
  color: #6f6f6f;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 14px;
  text-transform: uppercase;
}

.alerts_ad {
  width: 100%;
  height: 70px;
  background-color: #f8f8f8;
  border-radius: 5px;
  padding: 15px;
  display: flex;
  align-items: center;
  margin-top: 15px;
  justify-content: space-between;
}

.alerts_ad_left {
  display: flex;
  gap: 15px;
  align-items: center;
}

.alerts_ad_left_icon {
  width: 40px;
  height: 40px;
  border: 1px solid #4094fa;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100%;
}

.alerts_ad_left_title {
  color: #000000;
  font-size: 18px;
  font-weight: 400;
}

.alerts_ad_left_desc {
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.alerts_ad_right button {
  background-color: inherit;
  border: 0px;
  display: flex;
  gap: 10px;
  align-items: center;
  color: #4094fa;
  font-size: 18px;
  cursor: pointer;
  font-weight: 300;
}

.support_feedback_layout {
  display: grid;
  grid-template-columns: minmax(0, 570px) 280px;
  justify-content: space-between;
  align-items: start;
  gap: 50px;
}

.support_feedback_form {
  margin-top: 35px;
}

.feedback_field {
  margin: 0 0 25px;
  padding: 0;
  border: 0;
}

.feedback_field_title {
  display: block;
  margin: 0 0 10px;
  padding: 0;
  color: #000000;
  font-size: 16px;
  font-weight: 400;
}

.feedback_text_input,
.feedback_textarea {
  width: 100%;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  outline: none;
  color: #000000;
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
  font-weight: 300;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.feedback_text_input {
  height: 55px;
  padding: 0 15px;
}

.feedback_textarea {
  height: 140px;
  padding: 15px;
  resize: vertical;
}

.feedback_text_input::placeholder,
.feedback_textarea::placeholder {
  color: #8a8a8a;
}

.feedback_text_input:focus,
.feedback_textarea:focus {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.1);
}

.feedback_rating {
  display: flex;
  flex-direction: row-reverse;
  justify-content: flex-end;
  align-items: flex-start;
  gap: 25px;
  margin-top: 15px;
}

.feedback_rating input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.feedback_rating label {
  min-width: 52px;
  cursor: pointer;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 7px;
}

.feedback_rating label svg {
  width: 37px;
  height: 35px;
  overflow: visible;
  transition: transform 0.2s ease;
}

.feedback_rating label svg path {
  fill: transparent;
  stroke: #6f6f6f;
  stroke-width: 1.41892;
  stroke-linecap: round;
  stroke-linejoin: round;
  transition: fill 0.2s ease,
    stroke 0.2s ease;
}

.feedback_rating label span {
  color: #6f6f6f;
  font-size: 14px;
  font-weight: 300;
  white-space: nowrap;
}

.feedback_rating label:hover svg path,
.feedback_rating label:hover~label svg path,
.feedback_rating input:checked~label svg path {
  fill: #4094fa;
  stroke: #4094fa;
}

.feedback_rating label:hover svg,
.feedback_rating input:checked+label svg {
  transform: translateY(-2px);
}

.feedback_rating input:focus-visible+label svg {
  outline: 3px solid rgba(64, 148, 250, 0.2);
  outline-offset: 4px;
  border-radius: 4px;
}

.feedback_checkbox_grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  column-gap: 28px;
  row-gap: 14px;
}

.feedback_checkbox_grid .feedback_checkbox {
  width: auto;
  flex: 0 0 auto;
  margin: 0;
}

.feedback_checkbox {
  display: flex;
  align-items: center;
  gap: 8px;
}

.feedback_checkbox label {
  color: #7b7b7b;
  font-size: 16px;
  font-weight: 300;
  cursor: pointer;
  white-space: nowrap;
}

.feedback_checkbox input {
  width: 22px;
  min-width: 22px;
  height: 22px;
  margin: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #a9a9a9;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.feedback_checkbox input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.feedback_checkbox input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
  box-shadow: 0 0 0 4px rgba(64, 148, 250, 0.12);
  animation: feedbackCheckboxPop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.feedback_checkbox input:active {
  box-shadow: 0 0 0 6px rgba(64, 148, 250, 0.1);
}

.feedback_agreement {
  margin-top: 2px;
}

.feedback_radio_group {
  display: flex;
  align-items: center;
  gap: 30px;
}

.feedback_radio {
  display: flex;
  align-items: center;
  gap: 8px;
}

.feedback_radio input {
  width: 22px;
  height: 22px;
  margin: 0;
  border: 1px solid #a9a9a9;
  border-radius: 50%;
  background-color: #ffffff;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  display: grid;
  place-content: center;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.feedback_radio input::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #4094fa;
  transform: scale(0);
  transition: transform 0.2s ease;
}

.feedback_radio input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.feedback_radio input:checked {
  border-color: #4094fa;
}

.feedback_radio input:checked::before {
  transform: scale(1);
}

.feedback_radio label {
  color: #7b7b7b;
  font-size: 16px;
  font-weight: 300;
  cursor: pointer;
}

.feedback_submit {
  width: 225px;
  height: 50px;
  margin-top: 20px;
  border: 0;
  border-radius: 5px;
  background-color: #4094fa;
  color: #ffffff;
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  transition: background-color 0.2s ease,
    transform 0.2s ease,
    box-shadow 0.2s ease;
}

.feedback_submit:hover {
  background-color: #2785f7;
  box-shadow: 0 7px 18px rgba(64, 148, 250, 0.25);
  transform: translateY(-2px);
}

.feedback_submit:active {
  transform: translateY(0);
}

.feedback_support_card {
  min-height: 125px;
  padding: 22px 18px;
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

.feedback_support_icon {
  width: 58px;
  min-width: 58px;
  height: 58px;
  border-radius: 50%;
  background-color: #f0f6ff;
  display: flex;
  align-items: center;
  justify-content: center;
}

.feedback_support_content h2 {
  margin: 3px 0 15px;
  color: #000000;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.45;
}

.feedback_support_content a {
  color: #4094fa;
  font-size: 14px;
  font-weight: 300;
  text-decoration: none;
}

.feedback_support_content a:hover {
  text-decoration: underline;
}

@keyframes feedbackCheckboxPop {
0% {
  transform: scale(1);
}

45% {
  transform: scale(0.85);
}

75% {
  transform: scale(1.12);
}

100% {
  transform: scale(1);
}
}

.saved_trips_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 30px;
}

.saved_trips_title {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
  color: #000000;
}

.saved_trips_desc {
  color: #6f6f6f;
  font-size: 13px;
  font-weight: 300;
  margin-bottom: 10px;
}

.hotels_saved_buttons {
  display: flex;
  margin-top: 20px;
  justify-content: space-between;
}

.hotels_saved_button_view {
  width: 150px;
  height: 45px;
  border: 0px;
  cursor: pointer;
  color: #ffffff;
  background-color: #4094fa;
  font-size: 16px;
  font-weight: 300;
  border-radius: 5px;
}

.hotels_saved_button_remove {
  width: 150px;
  height: 45px;
  border: 0px;
  cursor: pointer;
  color: #4094fa;
  background-color: inherit;
  font-size: 16px;
  font-weight: 300;
}

.payment_methods {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
}

.payment_methods_header {
  margin-top: 30px;
}

.payment_methods_title {
  color: #000000;
  font-weight: 500;
  font-style: Medium;
  font-size: 24px;
}

.payment_methods_desc {
  color: #363636;
  font-size: 16px;
  font-weight: 300;
}

.payment_methods_section {
  margin-top: 30px;
}

.payment_methods_section_title {
  color: #000000;
  font-size: 20px;
  font-weight: 500;
}

.payment_methods_list {
  margin-top: 10px;
  display: flex;
  gap: 45px;
}

.payment_methods_item {
  padding: 15px;
  width: 300px;
  border: 1px solid #d9d9d9;
  border-radius: 5px;
}

.payment_methods_item_logo.visa {
  width: 100px;
  height: 32px;
}

.payment_methods_item_logo.mastercard {
  width: 52px;
  height: 32px;
}

.payment_methods_item_logo.apple-pay {
  width: 80px;
  height: 32px;
}

.payment_methods_item_logo.google-pay {
  width: 80px;
  height: 32px;
}

.payment_methods_item_logo.paypal {
  height: 32px;
}

.payment_methods_item_logo.btc,
.payment_methods_item_logo.eth,
.payment_methods_item_logo.usdt {
  height: 32px;
}

.payment_methods_item_name {
  color: #363636;
  font-size: 16px;
}

.cancellation_policy {
  width: 100%;
  max-width: 500px;
  margin: auto;
  margin-top: 25px;
}

.cancellation_policy_title {
  font-family: Montserrat, Arial, sans-serif;
  font-weight: 500;
  font-style: Regular;
  font-size: 24px;
  color: #000000;
}

.cancellation_policy_desc {
  font-size: 13px;
  font-weight: 300;
  color: #6f6f6f;
}

.cancellation_policy_notice {
  margin-top: 15px;
  border: 1px solid #4094fa38;
  background-color: #f6fafe;
  border-radius: 5px;
  display: flex;
  align-items: center;
  padding: 15px;
  gap: 10px;
}

.cancellation_policy_notice p {
  color: #4094fa;
  font-size: 16px;
  font-weight: 300;
}

.cancellation_policy_card {
  margin-top: 15px;
}

.cancellation_policy_inner {
  width: 100%;
  height: 75px;
  border-radius: 5px;
  border: 1px solid #d9d9d9;
  display: flex;
  align-items: center;
  padding: 15px;
  margin-bottom: 15px;
  gap: 10px;
}

.cancellation_policy_img>span {
  padding: 2px 6px;
  background-color: inherit;
  border: 0px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.cancellation_policy_img svg {
  width: 36px;
  height: 36px;
}

.cancellation_policy_right h2 {
  color: #000000;
  font-size: 18px;
  font-weight: 500;
}

.cancellation_policy_right p {
  color: #6f6f6f;
  font-size: 16px;
}

.cancellation_policy_refunds {
  margin-top: 15px;
  border-top: 1px solid #d9d9d9;
  border-bottom: 1px solid #d9d9d9;
}

.cancellation_policy_refunds h2 {
  margin-top: 15px;
  color: #000000;
  font-size: 18px;
  font-weight: 500;
}

.cancellation_policy_refunds p {
  margin-bottom: 15px;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.cancellation_policy_actions {
  margin-top: 15px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 15px;
}

.cancellation_policy_actions h2 {
  color: #000000;
  font-size: 22px;
  font-weight: 500;
}

.cancellation_policy_button {
  padding: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border: 1px solid #4094fa;
  border-radius: 5px;
  background-color: inherit;
  color: #4094fa;
  cursor: pointer;
  transition: all 0.2s ease;
}

.cancellation_policy_button:hover {
  background-color: #4094fa;
  color: #ffffff;
}

.article_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  gap: 50px;
  margin-top: 50px;
}

.article_left_bar {
  width: 250px;
}

.article_left_button {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  background-color: inherit;
  border: 0px;
  text-align: start;
  padding-left: 15px;
  font-size: 18px;
  color: #404040;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s ease;
}

.article_left_button:hover {
  background-color: #f2f2f2;
}

.article_left_button.active {
  background-color: #f2f2f2;
}

.article_left_buttons {
  margin-bottom: 10px;
}

.article_text_right {
  width: 1000px;
}

.article_text_title {
  font-size: 32px;
  color: #000000;
  font-weight: 300;
  margin-bottom: 25px;
}

.article_text_desc {
  font-size: 16px;
  font-weight: 300;
  line-height: 155%;
  color: #363636;
  margin-bottom: 20px;
}

.article_left_bar {
  position: sticky;
  top: calc(var(--article-header-height, 80px) + 10px);
  align-self: flex-start;
  max-height: calc(100vh - var(--article-header-height, 80px) - 20px);
  overflow-y: auto;
  scrollbar-width: thin;
}

.article_text_inner {
  scroll-margin-top: calc(var(--article-header-height, 80px) + 18px);
}

.article_text_inner+.article_text_inner {
  padding-top: 8px;
}

.article_left_button.active {
  color: #111;
  box-shadow: inset 3px 0 0 #4094fa;
}

.manage_booking {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
}

.manage_booking_header {
  margin-top: 30px;
}

.manage_booking_title {
  color: #000000;
  font-size: 24px;
  font-weight: 500;
}

.manage_booking_desc {
  color: #7a7a7a;
  font-size: 16px;
  font-weight: 300;
}

.manage_booking_inner {
  width: 100%;
  padding: 30px;
  border-radius: 5px;
  border: 1px solid #dde4ed;
  margin-top: 15px;
}

.manage_booking_flex {
  display: flex;
  justify-content: space-between;
  align-items: end;
}

.manage_booking_inputs {
  display: block;
}

.manage_booking_inputs p {
  color: #303946;
  font-family: Manrope, Arial, sans-serif;
  font-weight: 300;
  font-size: 16px;
}

.manage_booking_inputs input {
  margin-top: 13px;
  width: 475px;
  padding: 15px;
  height: 50px;
  font-size: 16px;
  font-weight: 300;
  border-radius: 5px;
  border: 1px solid #c9d2de;
  outline: none;
}

.manage_booking_inputs button {
  width: 275px;
  background-color: #4094fa;
  border-radius: 5px;
  font-weight: 300;
  font-size: 16px;
  color: #ffffff;
  height: 50px;
  cursor: pointer;
  border: 0px;
}

.manage_booking_help {
  display: flex;
  gap: 15px;
  align-items: center;
  margin-top: 25px;
}

.manage_booking_help svg {
  width: 25px;
}

.manage_booking_help p {
  color: #6e7786;
  font-size: 15px;
  font-weight: 300;
}

.manage_booking_links {
  margin-top: 30px;
}

.manage_booking_links p {
  color: #363636;
  font-size: 14px;
  font-weight: 300;
}

.manage_booking_links a {
  display: flex;
  align-items: center;
  gap: 25px;
  text-decoration: none;
  color: #4094fa;
  margin-top: 10px;
}

.find_booking,
.find_booking * {
  box-sizing: border-box;
}

.find_booking {
  max-width: 1440px;
  padding: 0 50px;
  margin: auto;
  color: #000;
  text-align: start;
  font-family: "Manrope", Arial, sans-serif;
}

.find_booking_summary {
  margin-top: 30px;
  width: 850px;
  min-height: 178px;
  padding: 19px 14px;
  display: flex;
  gap: 14px;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 5px;
}

.find_booking_image {
  width: 241px;
  height: 142px;
  flex: 0 0 241px;
  display: block;
  object-fit: cover;
  border-radius: 5px;
  background: #e9eef2;
}

.find_booking_summary_content {
  min-width: 0;
  flex: 1;
}

.find_booking_summary_top {
  height: 79px;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  border-bottom: 1px solid #d9d9d9;
}

.find_booking_hotel h1,
.find_booking_hotel p,
.find_booking_total span,
.find_booking_total strong,
.find_booking_detail span,
.find_booking_detail strong,
.find_booking_actions h2,
.find_booking_action h3,
.find_booking_action p,
.find_booking_conditions p {
  margin: 0;
}

.find_booking_hotel h1 {
  font-size: 24px;
  line-height: 1.25;
  font-weight: 500;
}

.find_booking_hotel p {
  margin-top: 12px;
  color: #535353;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 300;
}

.find_booking_total {
  flex: 0 0 auto;
  text-align: right;
}

.find_booking_total span {
  display: block;
  color: #535353;
  font-size: 16px;
  line-height: 1.25;
  font-weight: 300;
}

.find_booking_total strong {
  display: block;
  margin-top: 5px;
  font-family: "Montserrat", "Manrope", Arial, sans-serif;
  font-size: 30px;
  line-height: 1.15;
  font-weight: 600;
}

.find_booking_details {
  height: 63px;
  display: grid;
  grid-template-columns: 2.05fr 1.15fr 1.42fr;
}

.find_booking_detail {
  min-width: 0;
  padding-top: 9px;
  padding-left: 34px;
}

.find_booking_detail:first-child {
  padding-left: 0;
}

.find_booking_detail+.find_booking_detail {
  border-left: 1px solid #d9d9d9;
}

.find_booking_detail span,
.find_booking_detail strong {
  display: block;
  white-space: nowrap;
}

.find_booking_detail span {
  color: #8a8a8a;
  font-size: 16px;
  line-height: 1.15;
  font-weight: 300;
}

.find_booking_detail strong {
  margin-top: 4px;
  overflow: hidden;
  font-size: 17px;
  line-height: 1.2;
  font-weight: 400;
  text-overflow: ellipsis;
}

.find_booking_actions {
  width: min(701px, 100%);
  min-height: 260px;
  margin-top: 38px;
  padding: 34px 29px 30px;
  background: #fff;
  border: 1px solid #d9d9d9;
  border-radius: 5px;
}

.find_booking_actions h2 {
  font-size: 24px;
  line-height: 1.3;
  font-weight: 500;
}

.find_booking_actions_grid {
  display: grid;
  grid-template-columns: 1fr 1.29fr;
  margin-top: 31px;
}

.find_booking_action_change {
  padding-right: 29px;
}

.find_booking_action_cancel {
  padding-left: 29px;
  border-left: 1px solid #d9d9d9;
}

.find_booking_action_info {
  min-height: 54px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.find_booking_action_icon {
  flex: 0 0 auto;
  color: #7d7d7d;
}

.find_booking_action_cancel .find_booking_action_icon {
  color: #ff1f26;
}

.find_booking_action h3 {
  font-size: 18px;
  line-height: 1.25;
  font-weight: 400;
}

.find_booking_action p {
  margin-top: 7px;
  color: #535353;
  font-size: 15px;
  line-height: 1.25;
  font-weight: 300;
  white-space: nowrap;
}

.find_booking_button {
  width: 100%;
  height: 56px;
  margin-top: 28px;
  border-radius: 5px;
  font: 400 17px/1 "Manrope",
    Arial,
    sans-serif;
  cursor: pointer;
  transition: background-color 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}

.find_booking_button:active {
  transform: scale(0.985);
}

.find_booking_button_change {
  color: #fff;
  background: #4094fa;
  border: 1px solid #4094fa;
}

.find_booking_button_change:hover {
  background: #287fe8;
  border-color: #287fe8;
}

.find_booking_button_cancel {
  color: #ff1f26;
  background: #fff;
  border: 1px solid #ff1f26;
}

.find_booking_button_cancel:hover {
  color: #fff;
  background: #ff1f26;
}

.find_booking_conditions {
  margin-top: 31px;
}

.find_booking_conditions p {
  color: #363636;
  font-size: 15px;
  line-height: 1.4;
  font-weight: 300;
}

.find_booking_conditions a {
  width: fit-content;
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 27px;
  color: #4094fa;
  font-size: 16px;
  line-height: 1.3;
  font-weight: 400;
  text-decoration: none;
}

.find_booking_conditions a:hover {
  text-decoration: underline;
}

.change_date {
  max-width: 1440px;
  margin: 25px auto 0;
  padding: 0 50px;
  box-sizing: border-box;
  font-family: "Manrope", Arial, sans-serif;
}

.change_date_header,
.change_date_header * {
  box-sizing: border-box;
}

.change_date_header {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(210px, 0.9fr) minmax(250px, 1.1fr) auto;
  align-items: center;
  padding: 12px 14px;
  background: #fff;
  border: 1px solid #dce4ef;
  border-radius: 10px;
}

.change_date_header p {
  margin: 0;
}

.change_date_hotel {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 22px;
  padding-right: 22px;
}

.change_date_hotel_image {
  width: 130px;
  height: 74px;
  flex-shrink: 0;
  display: block;
  object-fit: cover;
  border-radius: 5px;
}

.change_date_hotel_info {
  min-width: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 12px;
  row-gap: 5px;
}

.change_date_hotel_name {
  color: #273140;
  font-size: 14px;
  font-weight: 700;
}

.change_date_hotel_location {
  color: #7e8ba2;
  font-size: 14px;
  font-weight: 400;
}

.change_date_separator {
  color: #94a0b4;
  flex-shrink: 0;
}

.change_date_current,
.change_date_details,
.change_date_policy {
  min-height: 54px;
  border-left: 1px solid #e1e7ef;
}

.change_date_current {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  padding: 0 22px;
}

.change_date_current_title {
  color: #465164;
  font-size: 13px;
  font-weight: 700;
}

.change_date_current_dates {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  color: #7e8ba2;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 12px;
  font-weight: 400;
}

.change_date_current_dates time {
  white-space: nowrap;
}

.change_date_details {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 0 22px;
}

.change_date_detail {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #7e8ba2;
  font-size: 13px;
  white-space: nowrap;
}

.change_date_detail svg {
  width: 21px;
  height: 21px;
  flex-shrink: 0;
  color: #4094fa;
}

.change_date_policy {
  display: flex;
  align-items: center;
  padding-left: 12px;
}

.change_date_policy_badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 7px 9px;
  background: #e1f7e7;
  border-radius: 30px;
  color: #20863a;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
}

.change_date_policy_badge svg {
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  color: #29a84a;
}

.change_date_policy_badge time {
  margin-left: 16px;
  font-weight: 800;
}

.change_date_content,
.change_date_content * {
  box-sizing: border-box;
}

.change_date_content {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 350px;
  align-items: stretch;
  gap: 30px;
  margin-top: 24px;
  color: #273140;
  font-family: "Manrope", Arial, sans-serif;
}

.change_date_content h2,
.change_date_content h3,
.change_date_content p {
  margin: 0;
}

.change_date_content button {
  font: inherit;
  cursor: pointer;
}

.change_date_content button:focus-visible {
  outline: 2px solid #1875f5;
  outline-offset: 3px;
}

.change_date_calendar,
.change_date_summary {
  min-width: 0;
  padding: 27px 24px;
  border: 1px solid #dce4ef;
  border-radius: 10px;
  background: #fff;
}

.change_date_content h2 {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.5;
}

.change_date_calendar {
  position: relative;
}

.change_date_months_toolbar {
  position: absolute;
  top: 75px;
  left: 24px;
  right: 24px;
  display: flex;
  justify-content: space-between;
  pointer-events: none;
}

.change_date_nav {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border: 1px solid #dce4ef;
  border-radius: 5px;
  color: #7e8ba2;
  background: #fff;
  pointer-events: auto;
}

.change_date_nav svg {
  width: 21px;
  height: 21px;
}

.change_date_nav:hover {
  background: #f3f7fc;
}

.change_date_months {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 30px;
  margin-top: 23px;
}

.change_date_month h3 {
  min-height: 38px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  padding: 0 40px;
  font-size: 15px;
  font-weight: 700;
}

.change_date_weekdays,
.change_date_days {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.change_date_weekdays {
  margin-top: 8px;
}

.change_date_weekdays span {
  padding: 8px 0;
  text-align: center;
  font-size: 12px;
  color: #7e8ba2;
}

.change_date_days {
  grid-auto-rows: 50px;
}

.change_date_day {
  min-width: 0;
  height: 36px;
  align-self: center;
  position: relative;
  isolation: isolate;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  background: transparent;
  color: #596477;
  font-family: "Montserrat", Arial, sans-serif !important;
  font-size: 12px !important;
}

.change_date_day::before {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
}

.change_date_day.is-current::before {
  background: #f0f2f5;
}

.change_date_day.is-selected::before {
  background: #dceaff;
}

.change_date_day.is-range-start::before,
.change_date_day.is-row-start::before {
  border-radius: 10px 0 0 10px;
}

.change_date_day.is-range-end::before,
.change_date_day.is-row-end::before {
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

.change_date_day span {
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  border-radius: 50%;
}

.change_date_day.is-endpoint span {
  color: #fff;
  background: #1875f5;
  font-weight: 700;
}

.change_date_day:not(:disabled):hover span {
  box-shadow: inset 0 0 0 1px #4094fa;
}

.change_date_day:disabled {
  color: #c4cedd;
  cursor: default;
}

.change_date_legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px 32px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid #e1e7ef;
}

.change_date_legend>span {
  display: flex;
  align-items: center;
  gap: 9px;
  color: #7e8ba2;
  font-size: 11px;
}

.change_date_legend i {
  display: block;
  width: 22px;
  height: 19px;
  flex-shrink: 0;
  border-radius: 7px;
}

.change_date_key_current {
  background: #f0f2f5;
}

.change_date_key_selected {
  background: #dceaff;
}

.change_date_key_endpoint {
  border: 1.5px solid #4094fa;
}

.change_date_selection {
  margin-top: 27px;
}

.change_date_selected_dates {
  font-size: 17px;
  font-weight: 700;
  line-height: 1.6;
}

.change_date_selected_nights {
  margin-top: 7px !important;
  color: #7e8ba2;
  font-size: 14px;
}

.change_date_price {
  margin-top: 33px;
  padding-top: 31px;
  border-top: 1px solid #e1e7ef;
}

.change_date_price p {
  font-size: 12px;
  color: #7e8ba2;
}

.change_date_price strong {
  display: block;
  margin-top: 13px;
  font-size: 28px;
  line-height: 1.4;
  font-weight: 800;
}

.change_date_review_hint {
  margin-top: 39px !important;
  color: #7e8ba2;
  font-size: 12px;
  line-height: 1.6;
}

.change_date_continue {
  width: 100%;
  min-height: 51px;
  margin-top: 30px;
  padding: 12px;
  border: 0;
  border-radius: 5px;
  background: #1875f5;
  color: #fff;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.change_date_continue:hover {
  background: #0e66df;
}

.change_date_continue:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}

.change_date_keep {
  display: block;
  width: 100%;
  margin-top: 15px;
  padding: 12px 4px;
  border: 0;
  background: transparent;
  color: #1875f5;
  font-size: 14px !important;
  font-weight: 600 !important;
}

.change_date_keep:hover {
  text-decoration: underline;
}

.change_date_sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.change_date_review {
  width: min(440px, calc(100% - 32px));
  padding: 28px;
  border: 1px solid #dce4ef;
  border-radius: 10px;
  color: #273140;
  font-family: inherit;
}

.change_date_review::backdrop {
  background: rgb(20 35 55 / 35%);
}

.change_date_review p {
  margin-top: 16px;
  line-height: 1.6;
  font-size: 14px;
}

@media (prefers-reduced-motion: no-preference) {.change_date_continue,
  .change_date_nav {
  transition: background-color 0.18s ease;
}}

.my_bookings {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
}

.my_bookings_titles h1 {
  color: #000000;
  font-size: 24px;
  font-weight: 500;
}

.my_bookings_header {
  margin-top: 25px;
  width: 100%;
  border-bottom: 1px solid #d9d9d9;
  display: flex;
  gap: 50px;
}

.my_bookings_header_button {
  background-color: inherit;
  font-size: 20px;
  font-weight: 300;
  cursor: pointer;
  border: 0px;
  padding: 10px;
  transition: all 0.2s ease;
  color: #7f7f7f;
}

.my_bookings_header_button.active {
  color: #4094fa;
  border-bottom: 2px solid #4094fa;
}

.my_bookings_list {
  width: 100%;
  margin-top: 30px;
}

.my_bookings_card {
  display: flex;
  width: 100%;
  height: 300px;
  overflow: hidden;
  border: 1px solid #d8d8d8;
  border-radius: 6px;
  background: #ffffff;
  box-sizing: border-box;
}

.my_bookings_card_image {
  flex: 0 0 500px;
  width: 500px;
  height: 300px;
  object-fit: cover;
}

.my_bookings_card_content {
  display: flex;
  flex: 1;
  min-width: 0;
  flex-direction: column;
  padding: 28px 30px 22px;
  box-sizing: border-box;
}

.my_bookings_status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 135px;
  height: 34px;
  padding: 0 20px;
  border-radius: 50px;
  font-size: 16px;
  box-sizing: border-box;
}

.my_bookings_status.confirmed {
  border: 1px solid #317e29;
  color: #317e29;
}

.my_bookings_status.completed {
  border: 1px solid #363636;
  color: #363636;
}

.my_bookings_status.cancel {
  border: 1px solid #ff0000;
  color: #ff0000;
}

.my_bookings_name {
  margin: 17px 0 2px;
  color: #000000;
  font-size: 25px;
  font-weight: 500;
  line-height: 1.2;
}

.my_bookings_location {
  margin: 0;
  color: #363636;
  font-size: 16px;
  font-weight: 400;
}

.my_bookings_information {
  display: flex;
  width: 100%;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid #dedede;
}

.my_bookings_information_item {
  min-width: 0;
  padding: 0 38px;
  border-right: 1px solid #dedede;
}

.my_bookings_information_item:first-child {
  padding-left: 0;
}

.my_bookings_information_item:last-child {
  border-right: none;
}

.my_bookings_information_item.dates {
  flex: 1.4;
}

.my_bookings_information_item.guests {
  flex: 0.6;
}

.my_bookings_information_item.reference {
  flex: 1;
}

.my_bookings_information_item span {
  display: block;
  color: #8a8a8a;
  font-size: 15px;
}

.my_bookings_information_item p {
  margin: 0;
  color: #000000;
  font-size: 17px;
  font-weight: 500;
  white-space: nowrap;
}

.my_bookings_card_bottom {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  margin-top: 25px;
}

.my_bookings_cancellation {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 14px;
  white-space: nowrap;
}

.my_bookings_cancellation.confirmed {
  color: #317e29;
}

.my_bookings_cancellation.completed {
  color: #317e29;
}

.my_bookings_cancellation.cancel {
  color: #ff0000;
}

.my_bookings_cancellation svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.my_bookings_card_actions {
  display: flex;
  align-items: center;
  gap: 28px;
}

.my_bookings_price {
  margin-right: 5px;
  color: #000000;
  font-family: "Montserrat", sans-serif;
  font-size: 30px;
  font-weight: 600;
  white-space: nowrap;
}

.my_bookings_manage {
  width: 150px;
  height: 45px;
  border: none;
  border-radius: 5px;
  background: #4094fa;
  color: #ffffff;
  font: inherit;
  font-size: 15px;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.my_bookings_manage:hover {
  background: #287fef;
}

.my_bookings_details {
  color: #4094fa;
  font-size: 16px;
  text-decoration: none;
  white-space: nowrap;
}

.my_bookings_details:hover {
  text-decoration: underline;
}

.my_bookings_contacts {
  margin: auto;
  display: flex;
  justify-content: center;
  gap: 25px;
  align-content: end;
  margin-top: 50px;
}

.my_bookings_contacts p {
  color: #6f6f6f;
  font-size: 15px;
  font-weight: 300;
}

.my_bookings_contacts a {
  color: #4094fa;
  font-weight: 300;
  font-size: 15px;
  text-decoration: none;
}

.our_partners {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
}

.our_partners_header {
  margin-top: 20px;
}

.our_partners_header h1 {
  color: #000000;
  font-size: 24px;
  font-weight: 400;
  font-family: Montserrat, Arial, sans-serif;
}

.our_partners_header p {
  font-size: 16px;
  font-weight: 300;
  color: #6f6f6f;
}

.our_partners_inner_name {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.our_partners_inner_name img {
  width: 50px;
  height: 180px;
  object-fit: cover;
}

.our_partners_inner {
  margin-top: 25px;
}

.our_partners_inner_flex {
  display: flex;
  gap: 15px;
}

.our_partners_inner_payment {
  border: 1px solid #e8e9ea;
  border-radius: 5px;
  width: 180px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.our_partners_inner_payment svg {
  width: 125px;
  height: 45px;
}

.our_partners_inner h2 {
  color: #000000;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
  margin-bottom: 15px;
}

.our_partners_inner img {
  width: 180px;
  display: block;
}

.customer_section {
  width: 100%;
  max-width: 1440px;
  margin: 20px auto 0;
  padding: 0 50px;
  box-sizing: border-box;
  font-family: Manrope, Arial, sans-serif;
  color: #292d32;
}

.customer_section *,
.customer_section *::before,
.customer_section *::after {
  box-sizing: border-box;
}

.customer_svg_symbols {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.customer_section_header {
  margin-bottom: 26px;
}

.customer_section_header h1 {
  margin: 0;
  color: #000000;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 24px;
  font-weight: 400;
}

.customer_section_header p {
  margin: 8px 0 0;
  color: #6f6f6f;
  font-size: 16px;
  font-weight: 300;
}

.customer_reviews_layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 336px;
  align-items: start;
  gap: 30px;
}

.customer_reviews_main {
  min-width: 0;
}

.customer_reviews_filters {
  display: grid;
  grid-template-columns: minmax(260px, 2fr) minmax(190px, 0.9fr) minmax(205px, 0.95fr);
  gap: 16px;
}

.customer_search,
.customer_select {
  position: relative;
  display: block;
  height: 47px;
}

.customer_search input,
.customer_select select {
  width: 100%;
  height: 100%;
  border: 1px solid #dfe3e8;
  border-radius: 6px;
  outline: none;
  background: #ffffff;
  color: #60656d;
  font: inherit;
  font-size: 15px;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.customer_search input {
  padding: 0 16px 0 50px;
}

.customer_search input::placeholder {
  color: #9298a1;
}

.customer_select select {
  appearance: none;
  cursor: pointer;
  padding: 0 45px 0 17px;
}

.customer_search>svg {
  position: absolute;
  top: 50%;
  left: 17px;
  z-index: 1;
  width: 21px;
  height: 21px;
  fill: none;
  stroke: #8e959f;
  stroke-width: 1.8;
  stroke-linecap: round;
  transform: translateY(-50%);
  pointer-events: none;
}

.customer_select>svg {
  position: absolute;
  top: 50%;
  right: 15px;
  width: 18px;
  height: 18px;
  fill: none;
  stroke: #818892;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translateY(-50%);
  pointer-events: none;
}

.customer_search input:focus,
.customer_select select:focus {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.1);
}

.customer_reviews_count {
  margin: 13px 0 14px;
  color: #858b94;
  font-size: 14px;
  font-weight: 400;
}

.customer_reviews_list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.customer_review_card {
  min-height: 189px;
  padding: 18px 20px 15px;
  border: 1px solid #dfe3e8;
  border-radius: 6px;
  background: #ffffff;
}

.customer_review_card_header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.customer_review_person {
  display: flex;
  align-items: flex-start;
  gap: 20px;
}

.customer_review_avatar {
  display: flex;
  flex: 0 0 52px;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #eef0f3;
  color: #60656d;
  font-size: 16px;
  font-weight: 400;
}

.customer_review_person_info h2 {
  margin: -2px 0 2px;
  color: #272a2f;
  font-size: 16px;
  font-weight: 400;
  line-height: 22px;
}

.customer_review_person_info time {
  display: block;
  color: #a1a6ae;
  font-size: 14px;
  line-height: 20px;
}

.customer_review_stars,
.customer_google_stars {
  display: flex;
  align-items: center;
  color: #ffb316;
}

.customer_review_stars {
  gap: 3px;
  margin-top: 2px;
  font-size: 20px;
  line-height: 21px;
}

.customer_review_stars .empty {
  color: #ccd1d8;
}

.customer_review_google {
  flex: 0 0 28px;
  width: 28px;
  height: 28px;
}

.customer_review_text {
  margin: 13px 0 0;
  color: #5f646c;
  font-size: 15px;
  font-weight: 400;
  line-height: 24px;
}

.customer_review_link,
.customer_view_google {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: #4094fa;
  font-size: 14px;
  text-decoration: none;
}

.customer_review_link {
  margin-top: 8px;
}

.customer_review_link svg,
.customer_view_google svg,
.customer_write_review svg {
  width: 14px;
  height: 14px;
}

.customer_review_link:hover,
.customer_view_google:hover {
  text-decoration: underline;
}

.customer_reviews_empty {
  display: none;
  padding: 45px 20px;
  border: 1px solid #dfe3e8;
  border-radius: 6px;
  color: #858b94;
  text-align: center;
}

.customer_reviews_footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 17px;
}

.customer_reviews_footer>p {
  margin: 0;
  color: #858b94;
  font-size: 14px;
}

.customer_pagination {
  display: flex;
  align-items: center;
  gap: 8px;
}

.customer_page,
.customer_page_arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 35px;
  height: 35px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: #8a9099;
  font-family: inherit;
  font-size: 13px;
  cursor: pointer;
}

.customer_page:hover,
.customer_page.active {
  background: #ebf4ff;
  color: #4094fa;
}

.customer_page_arrow {
  border: 1px solid #dfe3e8;
  background: #ffffff;
}

.customer_page_arrow svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.customer_page_dots {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 35px;
  color: #9ca1a9;
  font-size: 13px;
}

.customer_reviews_sample {
  margin: 13px 0 0;
  color: #a0a5ad;
  font-size: 12px;
}

.customer_google_summary {
  position: sticky;
  top: 100px;
  padding: 20px 18px 15px;
  border: 1px solid #dfe3e8;
  border-radius: 6px;
  background: #ffffff;
}

.customer_google_title {
  display: flex;
  align-items: center;
  gap: 13px;
}

.customer_google_title svg {
  width: 28px;
  height: 28px;
}

.customer_google_title h2 {
  margin: 0;
  color: #34383d;
  font-size: 20px;
  font-weight: 400;
}

.customer_google_rating {
  display: flex;
  align-items: flex-end;
  margin-top: 12px;
}

.customer_google_rating_value {
  color: #1d2024;
  font-size: 56px;
  font-weight: 300;
  line-height: 57px;
  letter-spacing: -2px;
}

.customer_google_rating_max {
  margin: 0 0 4px 10px;
  color: #89909a;
  font-size: 15px;
}

.customer_google_stars {
  gap: 7px;
  margin-top: 8px;
  font-size: 25px;
  line-height: 26px;
}

.customer_google_based {
  margin: 11px 0 0;
  color: #858b94;
  font-size: 14px;
}

.customer_google_divider {
  height: 1px;
  margin: 15px 0 20px;
  background: #e2e5e9;
}

.customer_rating_rows {
  display: flex;
  flex-direction: column;
  gap: 13px;
}

.customer_rating_row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr) 42px;
  align-items: center;
  gap: 11px;
}

.customer_rating_number,
.customer_rating_amount {
  color: #737983;
  font-size: 14px;
}

.customer_rating_amount {
  text-align: right;
}

.customer_rating_track {
  position: relative;
  height: 11px;
  overflow: hidden;
  border-radius: 100px;
  background: #e4e6e9;
}

.customer_rating_track span {
  display: block;
  height: 100%;
  min-width: 0;
  border-radius: inherit;
  background: #ffb51b;
}

.customer_google_divider.bottom {
  margin: 23px 0 20px;
}

.customer_write_review {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 47px;
  border-radius: 4px;
  background: #4094fa;
  color: #ffffff;
  font-size: 14px;
  text-decoration: none;
  transition: background-color 0.2s ease;
}

.customer_write_review:hover {
  background: #287fe9;
}

.customer_view_google {
  justify-content: center;
  width: 100%;
  margin-top: 21px;
}

.customer_google_sample {
  margin: 20px 0 0;
  color: #a0a5ad;
  font-size: 12px;
}

.partner_section {
  width: 100%;
  max-width: 1440px;
  margin: 16px auto 0;
  padding: 0 50px;
  box-sizing: border-box;
  color: #242424;
  font-family: Manrope, Arial, sans-serif;
}

.partner_section *,
.partner_section *::before,
.partner_section *::after {
  box-sizing: border-box;
}

.partner_header h1 {
  margin: 0;
  color: #171717;
  font-size: 24px;
  font-weight: 400;
  line-height: 30px;
}

.partner_header p {
  margin: 0;
  color: #7b7b7b;
  font-size: 13px;
  font-weight: 300;
  line-height: 19px;
}

.partner_layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 245px;
  align-items: start;
  gap: 45px;
}

.partner_form {
  min-width: 0;
  padding-top: 25px;
}

.partner_form_group h2 {
  margin: 0 0 20px;
  color: #171717;
  font-size: 20px;
  font-weight: 400;
  line-height: 25px;
}

.partner_form_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 28px;
  row-gap: 16px;
}

.partner_field {
  display: block;
  min-width: 0;
}

.partner_field>span {
  display: block;
  margin-bottom: 6px;
  color: #747474;
  font-size: 14px;
  font-weight: 300;
  line-height: 18px;
}

.partner_field input,
.partner_field select,
.partner_field textarea {
  width: 100%;
  border: 1px solid #dedede;
  border-radius: 5px;
  outline: none;
  background: #ffffff;
  color: #343434;
  font-family: Manrope, Arial, sans-serif;
  font-size: 14px;
  font-weight: 300;
  transition: border-color 0.2s ease,
    box-shadow 0.2s ease;
}

.partner_field input,
.partner_field select {
  height: 47px;
  padding: 0 13px;
}

.partner_field input::placeholder,
.partner_field textarea::placeholder {
  color: #b1b1b1;
  opacity: 1;
}

.partner_field input:focus,
.partner_field select:focus,
.partner_field textarea:focus {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.1);
}

.partner_select_wrapper select {
  appearance: none;
  cursor: pointer;
  padding-right: 45px;
}

.partner_select_wrapper select:invalid {
  color: #b1b1b1;
}

.partner_select_wrapper svg {
  position: absolute;
  top: 50%;
  right: 13px;
  width: 20px;
  height: 20px;
  fill: none;
  stroke: #8b8b8b;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
  transform: translateY(-50%);
  pointer-events: none;
}

.partner_proposal_group {
  margin-top: 25px;
}

.partner_proposal_field {
  margin-top: 16px;
}

.partner_field textarea {
  display: block;
  height: 139px;
  padding: 14px 13px;
  resize: none;
  line-height: 21px;
}

.partner_proposal_hint {
  margin: 10px 0 0;
  color: #888888;
  font-size: 12px;
  font-weight: 300;
  line-height: 17px;
}

.partner_agreement {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 25px;
  cursor: pointer;
  user-select: none;
}

.partner_agreement input {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none;
}

.partner_checkbox {
  position: relative;
  display: block;
  flex: 0 0 19px;
  width: 19px;
  height: 19px;
  border: 1px solid #cfd3d7;
  border-radius: 5px;
  background: #ffffff;
}

.partner_agreement input:checked+.partner_checkbox {
  border-color: #4094fa;
  background: #4094fa;
}

.partner_agreement input:checked+.partner_checkbox::after {
  position: absolute;
  top: 3px;
  left: 6px;
  width: 5px;
  height: 9px;
  border-right: 2px solid #ffffff;
  border-bottom: 2px solid #ffffff;
  content: "";
  transform: rotate(45deg);
}

.partner_agreement_text {
  color: #898989;
  font-size: 16px;
  font-weight: 300;
}

.partner_agreement_text a {
  color: #0a65f0;
}

.partner_submit {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 230px;
  height: 51px;
  margin-top: 15px;
  padding: 0;
  border: 0;
  border-radius: 5px;
  background: #4094fa;
  color: #ffffff;
  font-family: Manrope, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  transition: background-color 0.2s ease;
}

.partner_submit:hover {
  background: #2e84ec;
}

.partner_submit:active {
  background: #2478db;
}

.partner_information {
  margin-top: 91px;
  padding: 13px 11px 17px;
  border: 1px solid #dfe2e5;
  border-radius: 5px;
  background: #ffffff;
}

.partner_information>h2,
.partner_apply h2 {
  margin: 0;
  color: #424242;
  font-size: 16px;
  font-weight: 500;
  line-height: 21px;
}

.partner_steps {
  display: flex;
  flex-direction: column;
  gap: 21px;
  margin-top: 11px;
}

.partner_step {
  display: grid;
  grid-template-columns: 35px minmax(0, 1fr);
  align-items: start;
  gap: 11px;
}

.partner_step_number {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border: 1px solid #d9dde1;
  border-radius: 50%;
  color: #969ba1;
  font-size: 15px;
  font-weight: 300;
}

.partner_step_content h3 {
  margin: 1px 0 2px;
  color: #3e3e3e;
  font-size: 13px;
  font-weight: 400;
  line-height: 17px;
}

.partner_step_content p {
  margin: 0;
  color: #8b8b8b;
  font-size: 11px;
  font-weight: 300;
  line-height: 15px;
}

.partner_information_divider {
  width: 100%;
  height: 1px;
  margin: 25px 0 14px;
  background: #e1e3e5;
}

.partner_apply p {
  margin: 5px 0 0;
  color: #8b8b8b;
  font-size: 11px;
  font-weight: 300;
  line-height: 15px;
}

.partner_apply a {
  display: inline-block;
  margin-top: 15px;
  color: #4094fa;
  font-size: 12px;
  font-weight: 400;
  text-decoration: none;
}

.partner_apply a:hover {
  text-decoration: underline;
}

.rights_section {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  display: flex;
  gap: 50px;
  margin-top: 50px;
}

.rights_left_bar {
  width: 250px;
}

.rights_left_button {
  width: 100%;
  height: 50px;
  border-radius: 5px;
  background-color: inherit;
  border: 0px;
  text-align: start;
  padding-left: 15px;
  font-size: 18px;
  color: #404040;
  font-weight: 300;
  cursor: pointer;
  transition: all 0.2s ease;
}

.rights_left_button:hover {
  background-color: #f2f2f2;
}

.rights_left_button.active {
  background-color: #f2f2f2;
}

.rights_left_buttons {
  margin-bottom: 10px;
}

.rights_text_right {
  width: 1000px;
}

.rights_text_title {
  font-size: 32px;
  color: #000000;
  font-weight: 300;
  margin-bottom: 25px;
}

.rights_text_desc {
  font-size: 16px;
  font-weight: 300;
  line-height: 155%;
  color: #363636;
  margin-bottom: 20px;
}

#partner-value-0 {
  font-weight: 300;
  font-size: 14px;
}

#partner-value-1 {
  font-weight: 300;
  font-size: 14px;
}

.my_bookings_card {
  margin-bottom: 20px;
}

.article_left_button.active {
  color: #404040;
  box-shadow: none;
}

.rights_left_bar {
  position: sticky;
  top: calc(var(--rights-header-height, 80px) + 10px);
  align-self: flex-start;
  max-height: calc(100vh - var(--rights-header-height, 80px) - 20px);
  overflow-y: auto;
  scrollbar-width: thin;
}

.rights_text_inner {
  scroll-margin-top: calc(var(--rights-header-height, 80px) + 18px);
}

.rights_text_inner+.rights_text_inner {
  padding-top: 8px;
}

.rights_left_button.active {
  color: #404040;
  background-color: #f2f2f2;
  box-shadow: none;
}

[hidden] {
  display: none !important;
}

button,
input {
  font: inherit;
}

.fav_content {
  padding: 0;
  border: 0;
  background: none;
  line-height: 0;
}

.menu_icon,
.menu_select {
  position: relative;
}

.menu_icon:focus-visible,
.menu_select:focus-visible,
button:focus-visible,
a:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 4px;
}

.nav_count {
  position: absolute;
  right: -4px;
  top: -4px;
  min-width: 17px;
  height: 17px;
  padding: 0 4px;
  border-radius: 20px;
  background: #4094fa;
  color: white;
  font: 10px/17px Manrope;
  text-align: center;
}

.nav_panel {
  position: fixed;
  z-index: 1200;
  width: 320px;
  max-width: calc(100vw - 24px);
  padding: 24px;
  background: #fff;
  color: #20282e;
  border: 1px solid #e8ebed;
  border-radius: 12px;
  box-shadow: 0 18px 60px #17232d20;
  animation: panel_enter 0.18s ease;
}

.nav_panel h3 {
  font: 500 19px Montserrat;
  margin: 0 0 12px;
}

.muted {
  font: 400 13px/1.7 Manrope;
  color: #7b8389;
  margin: 12px 0 20px;
}

.lux_button {
  display: block;
  box-sizing: border-box;
  width: 100%;
  background: #4094fa;
  color: #fff;
  border: 1px solid #4094fa;
  border-radius: 5px;
  padding: 12px 16px;
  margin-top: 12px;
  cursor: pointer;
  font: 500 13px Manrope;
  text-align: center;
  text-decoration: none;
  transition: background 0.18s;
}

.lux_button:hover {
  background: #2e83e5;
}

.lux_button.secondary {
  background: #fff;
  color: #26323a;
  border-color: #e3e7eb;
}

.option_row {
  width: 100%;
  padding: 12px 8px;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #f1f2f3;
  background: white;
  color: #46525a;
  font: 400 13px Manrope;
  cursor: pointer;
  border-radius: 4px;
}

.option_row:hover,
.option_row.selected {
  background: #f4f8fc;
  color: #3385e7;
}

.option_row[aria-disabled="true"] {
  cursor: default;
}

.panel_footer {
  display: block;
  box-sizing: border-box;
  width: 100%;
  padding: 17px 0 0;
  margin-top: 18px;
  border: 0;
  border-top: 1px solid #edf0f2;
  background: none;
  color: #348be9;
  font: 500 13px Manrope;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
}

.saved_list {
  max-height: 360px;
  overflow: auto;
  overscroll-behavior: contain;
}

.saved_row {
  display: flex;
  gap: 12px;
  align-items: center;
  position: relative;
  padding: 12px 0;
  border-bottom: 1px solid #f1f2f3;
}

.saved_row img {
  width: 64px;
  height: 58px;
  object-fit: cover;
  border-radius: 4px;
  flex-shrink: 0;
}

.saved_row>div {
  flex: 1;
  min-width: 0;
}

.saved_name {
  color: #263039;
  text-decoration: none;
  font: 500 13px/1.5 Montserrat;
}

.saved_row small {
  display: block;
  color: #8b9299;
  font: 12px/1.7 Manrope;
}

.saved_remove {
  border: 0;
  background: none;
  color: #899199;
  cursor: pointer;
  font: 22px Manrope;
  padding: 6px;
}

.lux_dialog {
  border: 1px solid #e7eaed;
  border-radius: 12px;
  background: white;
  color: #263039;
  width: 460px;
  max-width: calc(100vw - 32px);
  max-height: 85dvh;
  padding: 36px;
  box-shadow: 0 24px 100px #111a2930;
  overflow: auto;
  opacity: 0;
  transform: translateY(18px) scale(0.975);
  transition: opacity 0.28s ease,
    transform 0.34s cubic-bezier(0.22, 0.75, 0.2, 1);
}

.lux_dialog.dialog_visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.lux_dialog.dialog_closing {
  opacity: 0;
  transform: translateY(12px) scale(0.985);
}

.lux_dialog::backdrop {
  background: transparent;
  backdrop-filter: blur(0);
  transition: background 0.28s ease,
    backdrop-filter 0.28s ease;
}

.lux_dialog.dialog_visible::backdrop {
  background: #16233066;
  backdrop-filter: blur(3px);
}

.lux_dialog.dialog_closing::backdrop {
  background: transparent;
  backdrop-filter: blur(0);
}

.lux_dialog h2 {
  font: 400 28px/1.3 Montserrat;
  padding-right: 16px;
}

.lux_close {
  position: absolute;
  top: 12px;
  right: 14px;
  z-index: 2;
  background: white;
  border: 0;
  border-radius: 50%;
  width: 30px;
  height: 30px;
  cursor: pointer;
  color: #62717d;
  font: 26px/1 Manrope;
}

.bag_dialog {
  position: fixed;
  inset: 0 0 0 auto;
  margin: 0;
  width: 300px;
  max-width: 100vw;
  height: 100dvh;
  max-height: 100dvh;
  border-radius: 0;
  padding: 60px 25px 28px;
  opacity: 1;
  transform: translateX(100%);
  transition: transform 0.34s cubic-bezier(0.22, 0.75, 0.2, 1);
}

.bag_dialog.dialog_visible {
  transform: translateX(0);
}

.bag_dialog.dialog_closing {
  transform: translateX(100%);
}

.bag_dialog .lux_dialog_content {
  height: 100%;
  display: flex;
  flex-direction: column;
}

.bag_dialog h2 {
  font-size: 25px;
}

.bag_empty {
  margin: auto 0;
  text-align: center;
  color: #8b939b;
}

.bag_empty h3 {
  font: 400 18px/1.5 Montserrat;
  margin: 28px 0 12px;
  color: #34404a;
}

.bag_empty p {
  font: 13px/1.8 Manrope;
}

.bag_outline {
  display: block;
  width: 42px;
  height: 42px;
  border: 1px solid #b5bdc3;
  margin: auto;
  font-size: 0;
  position: relative;
}

.bag_outline:before {
  content: "";
  position: absolute;
  width: 17px;
  height: 14px;
  left: 11px;
  top: -12px;
  border: 1px solid #b5bdc3;
  border-bottom: 0;
  border-radius: 12px 12px 0 0;
}

.offer_trigger {
  background: none;
  border: 0;
  color: inherit;
  letter-spacing: inherit;
  font: inherit;
  cursor: pointer;
  padding: 4px;
}

.offer_trigger span {
  margin-left: 8px;
  opacity: 0.7;
}

.offer_image {
  width: calc(100% + 72px);
  max-width: none;
  height: 210px;
  object-fit: cover;
  display: block;
  margin: -36px -36px 24px;
}

.eyebrow {
  font: 10px Manrope;
  letter-spacing: 2px;
  color: #8895a0;
  margin-bottom: 12px;
}

.quiet_button {
  display: block;
  margin: 18px auto 0;
  border: 0;
  background: none;
  color: #899199;
  font: 12px Manrope;
  cursor: pointer;
}

.gallery_stage {
  position: relative;
  overflow: hidden;
  border-radius: 5px;
  background: #eef0f1;
}

.hotels_img>img,
.tours_slide_image img {
  transform: none !important;
  transition: none;
  opacity: 1;
  will-change: auto;
}

.gallery_stage>.gallery_front {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.4s ease;
  z-index: 1;
}

.hotels_img_slider {
  z-index: 3;
}

.hotels_img .fav_content {
  z-index: 4;
}

.tours_slide_circle_slide {
  z-index: 3;
}

.tours_prev,
.tours_next {
  width: 44px;
  height: 44px;
  padding: 12px;
  border: 1px solid #ffffff70;
  border-radius: 50%;
  background: #16222b35;
  backdrop-filter: blur(5px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.tours_prev svg,
.tours_next svg {
  width: 12px;
  height: 21px;
}

.tours_prev:hover,
.tours_next:hover {
  background: #16222b60;
  opacity: 1;
}

.tours_slide_circle {
  padding: 0;
  border: 0;
  position: relative;
}

.tours_slide_circle:before {
  content: "";
  position: absolute;
  inset: -6px;
}

@keyframes block_reveal {
from {
  opacity: 0;
}

to {
  opacity: 1;
}
}

@keyframes panel_enter {
from {
  opacity: 0;
  transform: translateY(5px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

[data-favorite-id] {
  scroll-margin-top: 120px;
}

.search_nearby {
  padding: 0 0 15px;
  margin-bottom: 9px;
  border-bottom: 1px solid #eeeeee;
}

.search_nearby[hidden] {
  display: none;
}

.search_nearby_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 9px;
}

.search_nearby_country {
  min-width: 0;
  min-height: 62px;
  padding: 5px;
  border: 1px solid #edf1f5;
  border-radius: 11px;
  background: #ffffff;
  color: #535353;
  font: inherit;
  font-size: 12px;
  text-align: left;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 10px;
  overflow: hidden;
  transition: border-color 0.18s ease,
    background-color 0.18s ease,
    color 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.search_nearby_country:hover {
  border-color: rgba(64, 148, 250, 0.35);
  background: #f5f9ff;
  color: #2685f8;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(45, 105, 173, 0.09);
}

.search_nearby_country img {
  width: 58px;
  height: 50px;
  flex: 0 0 58px;
  border-radius: 8px;
  object-fit: cover;
  background: #edf3fa;
}

.search_nearby_country>span:last-child {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.search_nearby_country strong,
.search_nearby_country small {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.search_nearby_country strong {
  color: #363636;
  font-size: 13px;
  font-weight: 500;
}

.search_nearby_country small {
  color: #999999;
  font-size: 11px;
  font-weight: 300;
}

.search_city_mini_icon,
.search_city_icon {
  flex: 0 0 auto;
  border-radius: 10px;
  background: #f0f6fd;
  color: #4094fa;
  display: flex;
  align-items: center;
  justify-content: center;
}

.search_city_mini_icon {
  width: 28px;
  height: 28px;
}

.search_city_icon {
  width: 46px;
  height: 46px;
}

.search_city_mini_icon svg,
.search_city_icon svg {
  width: 19px;
  height: 19px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.7;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.search_destination_list {
  max-height: 260px;
  overflow-y: auto;
  scroll-behavior: auto;
  overscroll-behavior-y: contain;
}

.search_destination_list .search_city_result {
  flex: 0 0 62px;
  height: 62px;
  min-height: 62px;
  box-sizing: border-box;
}

.search_city_result .search_destination_info span,
.search_city_result .search_destination_info small {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search_city_loading {
  padding: 10px 12px;
  color: #999999;
  font-size: 12px;
  text-align: center;
}

.search_inner[data-search="destination"] .search_text {
  min-width: 0;
  overflow: hidden;
}

.search_form:not(.search_form_compact) .search_inner[data-search="destination"] [data-search-value="destination"] {
  display: block;
  width: 132px;
  max-width: 132px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.search_no_results {
  padding: 28px 12px;
  color: #858585;
  font-size: 14px;
  text-align: center;
}

.hotels_search {
  position: relative;
  z-index: 35;
}

.search_form_compact {
  width: 100%;
  min-height: 80px;
  margin: 0;
  padding: 0;
  border: 1px solid #e1dfdc;
  border-radius: 6px;
  background: #ffffff;
  display: grid;
  grid-template-columns: 1.2fr 1fr 1fr 1.2fr 165px;
  align-items: stretch;
  overflow: visible;
}

.search_form_compact .search_inner,
.search_form_compact .search_inner[data-search="destination"],
.search_form_compact .search_inner[data-search="checkin"],
.search_form_compact .search_inner[data-search="checkout"],
.search_form_compact .search_inner[data-search="guests"],
.search_form_compact .search_inner_button {
  width: auto;
  min-width: 0;
  margin: 0;
  border-right: 1px solid #e1dfdc;
  flex: initial;
}

.search_form_compact .search_inner_button {
  min-width: 165px;
  padding: 0 15px;
  border-right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

.search_form_compact .search_inside {
  width: 100%;
  height: 100%;
  min-height: 78px;
  padding: 11px 17px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: left;
  display: flex;
  justify-content: flex-start;
  gap: 14px;
}

.search_form_compact .search_icon svg {
  width: 27px;
  height: 27px;
  overflow: visible;
  fill: none;
  stroke: #6f6f6f;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.search_form_compact .search_inner.active .search_icon svg {
  stroke: #4094fa;
}

.search_form_compact .search_inner.active .search_icon svg path {
  fill: none;
}

.search_form_compact .search_text {
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.search_form_compact .search_field_label {
  margin-bottom: 3px;
  color: #858585;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.1;
}

.search_form_compact [data-search-value] {
  max-width: 250px;
  overflow: hidden;
  color: #363636;
  font-size: 18px;
  font-weight: 300;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.search_form_compact .active [data-search-value] {
  color: #4094fa;
}

.search_form_compact .hotels_search_arrow {
  margin-left: auto;
  color: #535353;
  font-size: 22px;
}

.search_form_compact .hotels_search_button {
  width: 100%;
  height: 52px;
  flex-basis: auto;
  font-size: 20px;
}

.search_form_compact .search_popup {
  margin-top: 0;
}

.search_form_compact .search_guests {
  right: 0;
}

.filter_clean_action:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 3px;
  border-radius: 3px;
}

.filter_budget_range {
  height: 5px;
  border-radius: 999px;
  appearance: none;
  background: linear-gradient(to right,
      #4094fa var(--range-progress, 100%),
      #e9eef4 var(--range-progress, 100%));
  cursor: pointer;
}

.filter_budget_range::-webkit-slider-thumb {
  width: 19px;
  height: 19px;
  border: 3px solid #ffffff;
  border-radius: 50%;
  appearance: none;
  background: #4094fa;
  box-shadow: 0 1px 5px rgba(24, 82, 151, 0.35);
}

.filter_budget_range::-moz-range-thumb {
  width: 14px;
  height: 14px;
  border: 3px solid #ffffff;
  border-radius: 50%;
  background: #4094fa;
  box-shadow: 0 1px 5px rgba(24, 82, 151, 0.35);
}

.hotels_results_left {
  position: relative;
  flex: 0 0 350px;
}

.hotels_sort_label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
}

.hotels_sort_select {
  width: 230px;
  height: 45px;
  padding: 0 42px 0 15px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background: #ffffff;
  color: #535353;
  font: inherit;
  cursor: pointer;
}

.hotels_cards {
  width: 100%;
}

.hotel_card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 20px;
  min-height: 342px;
  padding: 16px;
  overflow: hidden;
  background: #ffffff;
  animation: hotel_card_enter 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: var(--hotel-card-delay, 0ms);
}

.hotel_card_left {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(225px, 300px) minmax(0, 1fr);
  gap: 18px;
}

.hotel_card_info {
  min-width: 0;
  padding: 3px 0;
  display: flex;
  flex-direction: column;
}

.hotel_card_img {
  width: 100%;
  height: 300px;
  min-height: 0;
  flex: none;
  overflow: hidden;
  border-radius: 5px;
}

.hotel_card_img img {
  height: 100%;
  opacity: 1;
  transition: opacity 0.28s ease,
    transform 0.6s cubic-bezier(0.22, 1, 0.36, 1);
}

.hotel_card:hover .hotel_card_img img {
  transform: scale(1.025);
}

.hotel_card_img.is_loading img {
  opacity: 0;
}

.hotel_card_img.is_loading::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
      transparent 32%,
      rgba(255, 255, 255, 0.72) 48%,
      transparent 64%) #edf1f5;
  background-size: 220% 100%;
  animation: hotel_skeleton_sweep 1.15s ease-in-out infinite;
}

.hotel_card_fav {
  z-index: 3;
  border: 0;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.12);
  width: 40px;
  height: 40px;
  right: 13px;
  top: 13px;
  transition: transform 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

.hotel_card_fav:hover {
  transform: scale(1.08);
}

.hotel_card_fav svg path {
  fill: #ffffff;
  stroke: #363636;
  stroke-width: 1.2;
  transition: fill 0.18s ease,
    stroke 0.18s ease;
}

.hotel_card_fav.active svg path {
  fill: #4094fa;
  stroke: #4094fa;
}

.hotel_card_heading {
  min-width: 0;
  display: block;
}

.hotel_card_name {
  min-width: 0;
  margin: 0;
  font-size: 24px;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.hotel_card_name_tail {
  display: inline;
  white-space: nowrap;
}

.hotel_card_stars {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 9px;
  vertical-align: 2px;
  white-space: nowrap;
}

.hotel_card_stars svg {
  flex: 0 0 auto;
}

.hotel_card_desc_content {
  min-width: 0;
  margin-top: 10px;
  display: block;
}

.hotel_card_desc {
  min-width: 0;
  margin: 0;
  display: inline;
  line-height: 1.45;
}

.hotel_card_flag {
  flex: 0 0 auto;
  width: 28px;
  height: 18px;
  overflow: hidden;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 2px;
  background: #f4f4f4;
  margin-left: 6px;
  vertical-align: -3px;
}

.hotel_card_flag img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
}

.hotel_card_tags {
  margin-top: 15px;
  flex-wrap: wrap;
}

.hotel_card_tag {
  margin-top: 0;
}

.hotel_card_room {
  margin-top: 15px;
}

.hotel_card_room_title,
.hotel_card_room_meta,
.hotel_card_room_features,
.hotel_card_room_cancel,
.hotel_card_room_left {
  margin-bottom: 0;
}

.hotel_card_right {
  width: auto;
  min-width: 0;
  padding: 4px 0 4px 20px;
  border-left: 1px solid #d9d9d9;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: left;
}

.hotel_card_guest_rating {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 11px;
}

.hotel_card_rating_text {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
}

.hotel_card_rating_label,
.hotel_card_reviews,
.hotel_card_stay,
.hotel_card_price_info p {
  margin: 0;
}

.hotel_card_stay {
  width: 100%;
  margin-top: 24px;
  white-space: nowrap;
  text-align: left;
}

.hotel_card_price {
  width: 100%;
  margin-top: 18px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
}

.hotel_card_price_current {
  margin: 2px 0 0;
}

.hotel_card_price_info {
  width: 100%;
  margin-top: 20px;
  text-align: left;
}

.hotel_card_price_info span {
  display: block;
  margin-top: 4px;
}

.hotel_card_availability {
  margin-top: auto;
  min-height: 48px;
  transition: transform 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

.hotel_card_availability:hover {
  background: #2685f8;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(64, 148, 250, 0.22);
}

.hotel_card_room_features {
  max-width: 360px;
  line-height: 1.45;
}

.hotel_result_skeleton {
  min-height: 342px;
  margin-top: 15px;
  padding: 16px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr) 280px;
  gap: 18px;
  overflow: hidden;
  background: #ffffff;
}

.hotel_skeleton_media,
.hotel_skeleton_line,
.hotel_skeleton_price i {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background: #e9edf2;
}

.hotel_skeleton_media::after,
.hotel_skeleton_line::after,
.hotel_skeleton_price i::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg,
      transparent 28%,
      rgba(255, 255, 255, 0.78) 48%,
      transparent 68%);
  transform: translateX(-105%);
  animation: hotel_skeleton_sweep 1.2s ease-in-out infinite;
}

.hotel_skeleton_copy {
  padding: 8px 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.hotel_skeleton_line {
  width: 88%;
  height: 14px;
}

.hotel_skeleton_line.is_title {
  width: 72%;
  height: 27px;
}

.hotel_skeleton_line.is_address {
  width: 92%;
}

.hotel_skeleton_line.is_tag {
  width: 58%;
  height: 32px;
}

.hotel_skeleton_line.is_short {
  width: 48%;
}

.hotel_skeleton_price {
  padding: 8px 0 8px 20px;
  border-left: 1px solid #e1dfdc;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 18px;
}

.hotel_skeleton_price i {
  display: block;
  width: 72%;
  height: 16px;
}

.hotel_skeleton_price i:nth-child(2) {
  width: 48%;
  height: 34px;
}

.hotel_skeleton_price i:last-child {
  width: 100%;
  height: 48px;
  margin-top: auto;
}

@keyframes hotel_skeleton_sweep {
from {
  transform: translateX(-105%);
}

to {
  transform: translateX(105%);
}
}

@keyframes hotel_card_enter {
from {
  opacity: 0;
  transform: translateY(12px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

.hotels_empty {
  min-height: 270px;
  margin-top: 15px;
  padding: 45px;
  border: 1px dashed #cfd9e5;
  border-radius: 8px;
  background: #f8fbff;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.hotels_empty[hidden] {
  display: none;
}

.hotels_empty strong {
  color: #222222;
  font-size: 22px;
}

.hotels_empty span {
  color: #6f6f6f;
  font-size: 14px;
}

.hotels_empty button {
  margin-top: 10px;
  padding: 11px 18px;
  border: 0;
  border-radius: 5px;
  background: #4094fa;
  color: #ffffff;
  font: inherit;
  cursor: pointer;
}

.hotels_map_preview {
  position: relative;
  width: 100%;
  height: 200px;
  margin-bottom: 15px;
  overflow: hidden;
  border-radius: 4px;
  background: #e9f2fb;
}

.hotels_map_preview iframe {
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
}

.hotels_map_preview::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(0, 48, 104, 0.12));
  pointer-events: none;
}

.hotels_map_button {
  position: absolute;
  z-index: 2;
  left: 50%;
  bottom: 14px;
  height: 46px;
  padding: 0 17px;
  border: 0;
  border-radius: 5px;
  background: #0874d1;
  color: #ffffff;
  font: inherit;
  font-size: 16px;
  font-weight: 600;
  white-space: nowrap;
  cursor: pointer;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 9px;
  box-shadow: 0 4px 12px rgba(0, 74, 139, 0.25);
  transition: background-color 0.18s ease,
    transform 0.18s ease;
}

.hotels_map_button:hover {
  background: #0069c2;
  transform: translateX(-50%) translateY(-2px);
}

.hotels_map_button svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.hotels_map_dialog {
  width: min(1240px, calc(100vw - 40px));
  height: min(780px, calc(100vh - 40px));
  padding: 0;
  border: 0;
  border-radius: 14px;
  overflow: hidden;
  background: #ffffff;
  box-shadow: 0 30px 90px rgba(0, 0, 0, 0.3);
}

.hotels_map_dialog::backdrop {
  background: rgba(10, 18, 28, 0.58);
  backdrop-filter: blur(3px);
}

.hotels_map_dialog_head {
  height: 88px;
  padding: 16px 22px;
  border-bottom: 1px solid #e7e7e7;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.hotels_map_dialog_head small {
  color: #858585;
  font-size: 12px;
}

.hotels_map_dialog_head h2 {
  margin: 3px 0 0;
  color: #171717;
  font-size: 24px;
  font-weight: 500;
}

.hotels_map_dialog_head button {
  width: 43px;
  height: 43px;
  border: 1px solid #e1e1e1;
  border-radius: 50%;
  background: #ffffff;
  color: #363636;
  font-size: 27px;
  cursor: pointer;
}

.hotels_map_dialog_body {
  height: calc(100% - 88px);
  display: grid;
  grid-template-columns: 330px 1fr;
}

.hotels_map_dialog_body aside {
  padding: 12px;
  overflow-y: auto;
  border-right: 1px solid #e7e7e7;
  background: #ffffff;
}

.hotels_map_dialog_body aside button {
  width: 100%;
  padding: 9px;
  border: 0;
  border-radius: 9px;
  background: #ffffff;
  text-align: left;
  cursor: pointer;
  display: grid;
  grid-template-columns: 72px 1fr;
  align-items: center;
  gap: 10px;
}

.hotels_map_dialog_body aside button:hover {
  background: #f0f7ff;
}

.hotels_map_dialog_body aside img {
  width: 72px;
  height: 62px;
  border-radius: 7px;
  object-fit: cover;
}

.hotels_map_dialog_body aside span {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.hotels_map_dialog_body aside strong {
  overflow: hidden;
  color: #242424;
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.hotels_map_dialog_body aside small {
  color: #777777;
  font-size: 11px;
  line-height: 1.35;
}

.hotels_map_dialog_body>iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.hotels_results_controls {
  display: flex;
  align-items: center;
  gap: 10px;
}

.hotels_filter_mobile_trigger,
.hotels_filter_mobile_header,
.hotels_filter_mobile_footer,
.hotels_filter_mobile_backdrop,
.hotels_mobile_map_trigger,
.hotels_mobile_search_summary,
.hotels_search_mobile_header {
  display: none;
}

.hotels_filter_mobile_content {
  display: contents;
}

@media (prefers-reduced-motion: reduce) {.hotel_card,
  .hotel_card_img img,
  .hotel_card_img.is_loading::after,
  .hotel_skeleton_media::after,
  .hotel_skeleton_line::after,
  .hotel_skeleton_price i::after {
  animation: none !important;
  transition: none !important;
}}

.hotel_card {
  position: relative;
  display: block;
  padding: 0;
}

.hotel_card_link {
  display: grid;
  grid-template-columns: inherit;
  gap: 20px;
  min-height: inherit;
  padding: 16px;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
}

.hotel_card_link:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: -3px;
  border-radius: inherit;
}

.hotel_card_link :is(h2,
  h3,
  p,
  .hotel_card_reviews,
  .hotel_card_stay,
  .hotel_card_score,
  .hotel_card_tag,
  .hotel_card_price_old,
  .hotel_card_price_info > span) {
  cursor: text;
  user-select: text;
}

.hotel_card_favorite_layer {
  position: absolute;
  inset: 16px;
  display: grid;
  grid-template-columns: inherit;
  gap: 20px;
  pointer-events: none;
}

.hotel_card_favorite_anchor {
  position: relative;
}

.hotel_card_favorite_anchor .hotel_card_fav {
  pointer-events: auto;
}

.hotel_card_availability {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  overflow: hidden;
}

.hotel_card_availability .button_ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.hotel_card.is_selected {
  border-color: #4094fa;
}

.search_destination_list[hidden] {
  display: none;
}

.search_nearby {
  padding-bottom: 0;
  margin-bottom: 0;
  border-bottom: 0;
}

.search_city_result.is_keyboard_active {
  background: #edf5ff;
  outline: 1px solid #c9e1ff;
  outline-offset: -1px;
}

.search_status {
  margin: 6px 8px 0;
  color: #999;
  font-size: 11px;
}

.search_status:empty {
  display: none;
}

.support_route_loader {
  position: fixed;
  inset: 84px 0 0;
  z-index: 900;
  overflow: hidden;
  background: #fff;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease,
    visibility 0.22s ease;
}

html.support_is_loading,
html.support_is_leaving {
  overflow: hidden;
}

html.support_is_loading .support_route_loader,
html.support_is_leaving .support_route_loader {
  opacity: 1;
  visibility: visible;
}

html.support_is_loading :is(.breadcrumbs, .support_section, .footer),
html.support_is_leaving :is(.breadcrumbs, .support_section, .footer) {
  opacity: 0;
}

html.support_is_ready :is(.breadcrumbs, .support_section, .footer) {
  animation: support_page_enter 0.42s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.support_route_loader_inner {
  width: min(1340px, calc(100% - 100px));
  margin: 66px auto 0;
  display: grid;
  grid-template-columns: 250px minmax(0, 1000px);
  gap: 50px;
}

.support_loader_sidebar,
.support_loader_content,
.support_loader_rows {
  display: flex;
  flex-direction: column;
}

.support_loader_sidebar {
  gap: 10px;
}

.support_loader_sidebar i,
.support_loader_content>i,
.support_loader_grid i,
.support_loader_rows i,
.alerts_api_skeleton i {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 5px;
  background: #e9eaec;
}

.support_loader_sidebar i::after,
.support_loader_content>i::after,
.support_loader_grid i::after,
.support_loader_rows i::after,
.alerts_api_skeleton i::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-105%);
  background: linear-gradient(100deg,
      transparent 20%,
      rgba(255, 255, 255, 0.78) 48%,
      transparent 76%);
  animation: support_skeleton_sweep 1.45s ease-in-out infinite;
}

.support_loader_sidebar i {
  height: 50px;
}

.support_loader_sidebar i:first-child {
  background: #e2e3e5;
}

.support_loader_content {
  gap: 10px;
}

.support_loader_title {
  width: 180px;
  height: 34px;
}

.support_loader_subtitle {
  width: 430px;
  max-width: 70%;
  height: 15px;
}

.support_loader_search {
  width: 100%;
  height: 60px;
  margin-top: 10px;
}

.support_loader_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  margin-top: 15px;
}

.support_loader_grid i {
  height: 112px;
  border-radius: 0;
  border-bottom: 1px solid #fff;
}

.support_loader_grid i:nth-child(odd) {
  border-right: 1px solid #fff;
}

.support_loader_heading {
  width: 190px;
  height: 24px;
  margin-top: 24px;
}

.support_loader_rows {
  gap: 1px;
}

.support_loader_rows i {
  height: 59px;
  border-radius: 0;
}

.support_toast {
  position: fixed;
  right: 24px;
  bottom: 24px;
  z-index: 3000;
  max-width: min(380px, calc(100vw - 32px));
  padding: 13px 17px;
  border: 1px solid #e3e7ec;
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(18, 31, 48, 0.14);
  color: #363636;
  font-size: 14px;
  opacity: 0;
  transform: translateY(12px);
  pointer-events: none;
  transition: opacity 0.2s ease,
    transform 0.2s ease;
}

.support_toast.is_visible {
  opacity: 1;
  transform: translateY(0);
}

.support_knowledge_panel {
  scroll-margin-top: 100px;
  animation: support_panel_enter 0.32s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.support_knowledge_header {
  display: grid;
  grid-template-columns: 110px minmax(0, 1fr);
  gap: 20px;
  align-items: start;
  padding: 26px 0 18px;
  border-bottom: 1px solid #e8e9ea;
}

.support_knowledge_back {
  min-height: 38px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #4094fa;
  font: 300 15px Manrope,
    sans-serif;
  text-align: left;
  cursor: pointer;
}

.support_knowledge_back:hover {
  color: #1478f2;
}

.support_knowledge_eyebrow {
  color: #4094fa;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.support_knowledge_title {
  margin: 3px 0 0;
  color: #000;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.3;
}

.support_knowledge_count {
  margin-top: 4px;
  color: #6f6f6f;
  font-size: 14px;
  font-weight: 300;
}

.support_knowledge_article {
  border-bottom: 1px solid #e8e9ea;
}

.support_knowledge_article summary {
  min-height: 66px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto 28px;
  gap: 16px;
  align-items: center;
  color: #363636;
  font-size: 16px;
  font-weight: 400;
  cursor: pointer;
  list-style: none;
  transition: color 0.2s ease;
}

.support_knowledge_article summary::-webkit-details-marker {
  display: none;
}

.support_knowledge_article summary:hover,
.support_knowledge_article[open] summary {
  color: #4094fa;
}

.support_knowledge_article summary small {
  color: #8b8b8b;
  font-size: 12px;
  font-weight: 300;
}

.support_knowledge_chevron {
  width: 28px;
  height: 28px;
  border: 1px solid #e1dfdc;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #6f6f6f;
  font: 300 20px/1 Montserrat,
    sans-serif;
  transition: transform 0.24s ease,
    color 0.2s ease,
    border-color 0.2s ease;
}

.support_knowledge_article[open] .support_knowledge_chevron {
  color: #4094fa;
  border-color: #a8cffd;
  transform: rotate(45deg);
}

.support_knowledge_answer {
  padding: 0 60px 23px 0;
  color: #606060;
  font-size: 15px;
  font-weight: 300;
  line-height: 1.65;
  animation: support_answer_enter 0.24s ease both;
}

.support_knowledge_answer p+p {
  margin-top: 10px;
}

.support_knowledge_empty,
.alerts_api_empty {
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-bottom: 1px solid #e8e9ea;
  color: #6f6f6f;
  text-align: center;
}

.support_knowledge_empty strong,
.alerts_api_empty strong {
  color: #222;
  font-size: 18px;
  font-weight: 500;
}

.about_left_bar {
  position: sticky;
  top: calc(var(--about-header-height, 80px) + 10px);
  align-self: flex-start;
  max-height: calc(100vh - var(--about-header-height, 80px) - 20px);
  overflow-y: auto;
  scrollbar-width: thin;
}

.about_text_inner {
  scroll-margin-top: calc(var(--about-header-height, 80px) + 18px);
}

.about_text_inner+.about_text_inner {
  padding-top: 8px;
}

.about_left_button.active {
  color: #111;
}

.alerts_api_toolbar {
  min-height: 44px;
  margin-bottom: 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.alerts_api_status {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #6f6f6f;
  font: 300 13px Manrope,
    sans-serif;
}

.alerts_live_dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: #2db66f;
  box-shadow: 0 0 0 4px rgba(45, 182, 111, 0.12);
}

.alerts_container.has_error .alerts_live_dot {
  background: #ef6a6a;
  box-shadow: 0 0 0 4px rgba(239, 106, 106, 0.12);
}

.alerts_filters {
  display: flex;
  align-items: center;
  gap: 6px;
}

.alerts_filters button {
  min-height: 34px;
  padding: 0 13px;
  border: 1px solid #e1dfdc;
  border-radius: 999px;
  background: #fff;
  color: #606060;
  font: 300 13px Manrope,
    sans-serif;
  cursor: pointer;
  transition: color 0.2s ease,
    border-color 0.2s ease,
    background 0.2s ease;
}

.alerts_filters button:hover {
  border-color: #9bc7fc;
  color: #1478f2;
}

.alerts_filters button.active {
  border-color: #4094fa;
  background: #4094fa;
  color: #fff;
}

.alerts_api_item {
  gap: 30px;
}

.alerts_api_item .alerts_left {
  min-width: 0;
  flex: 1;
}

.alerts_api_item .alerts_left_title,
.alerts_api_item .alerts_left_desc {
  width: auto;
  max-width: 805px;
}

.alerts_api_item .alerts_right {
  flex: 0 0 auto;
}

.alerts_right a {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #4094fa;
  font-size: 18px;
  font-weight: 300;
  text-decoration: none;
  white-space: nowrap;
  transition: color 0.2s ease,
    transform 0.2s ease;
}

.alerts_right a:hover {
  color: #1478f2;
  transform: translateX(3px);
}

.alerts_orange_span {
  color: #e98211;
  font-family: Montserrat, sans-serif;
  font-size: 14px;
  font-weight: 600;
  text-transform: uppercase;
}

.alerts_source_note {
  margin-top: 18px;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 20px;
  color: #8b8b8b;
  font-size: 12px;
  font-weight: 300;
  line-height: 1.5;
}

.alerts_api_skeleton {
  min-height: 132px;
  padding: 8px 0 17px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  border-bottom: 1px solid #e8e9ea;
}

.alerts_api_skeleton i {
  width: 76%;
  height: 12px;
}

.alerts_api_skeleton .wide {
  width: 35%;
  height: 11px;
}

.alerts_api_skeleton .title {
  width: 56%;
  height: 23px;
}

.alerts_api_skeleton .short {
  width: 48%;
}

.alerts_api_empty button {
  min-height: 38px;
  margin-top: 8px;
  padding: 0 18px;
  border: 0;
  border-radius: 5px;
  background: #4094fa;
  color: #fff;
  font: 400 14px Manrope,
    sans-serif;
  cursor: pointer;
}

@keyframes support_skeleton_sweep {
55%,
  100% {
  transform: translateX(105%);
}
}

@keyframes support_page_enter {
from {
  opacity: 0;
  transform: translateY(7px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@keyframes support_panel_enter {
from {
  opacity: 0;
  transform: translateY(10px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@keyframes support_answer_enter {
from {
  opacity: 0;
  transform: translateY(-4px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@media (prefers-reduced-motion: reduce) {.support_route_loader,
  .support_loader_sidebar i::after,
  .support_loader_content>i::after,
  .support_loader_grid i::after,
  .support_loader_rows i::after,
  .alerts_api_skeleton i::after,
  html.support_is_ready :is(.breadcrumbs, .support_section, .footer),
  .support_knowledge_panel,
  .support_knowledge_answer {
  animation: none !important;
  transition: none !important;
}}

.tours_deal_inner.tours_carousel {
  display: flex;
  justify-content: flex-start;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
  padding-bottom: 5px;
  scroll-behavior: smooth;
}

.tours_deal_inner.tours_carousel::-webkit-scrollbar {
  display: none;
}

.tours_carousel .tours_deal_inner_flex {
  flex: 0 0 min(435px, 100%);
  scroll-snap-align: start;
  overflow: hidden;
}

.tours_slider button {
  background: #fff;
  color: #363636;
  padding: 0;
}

.tours_slider button:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

.tours_price_button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.booking_lookup_message,
.partner_form_message {
  color: #31639d;
  padding: 12px 0;
}

.booking_notice {
  padding: 28px;
  border: 1px solid #e1dfdc;
  border-radius: 8px;
  color: #525252;
  background: #fbfcff;
}

.booking_notice a {
  color: #4094fa;
}

.my_bookings_manage {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.customer_review_stars {
  color: #ffbf40;
  letter-spacing: 2px;
}

.partner_field select {
  color: #333;
  background-color: #fff;
}

.rights_text_inner {
  scroll-margin-top: 100px;
}

.footer_social span {
  width: 55px;
  height: 55px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 5px;
}

.manage_booking_flex .booking_lookup_message {
  flex-basis: 100%;
  margin: 0;
}

.booking_list_skeleton {
  min-height: 235px;
  border-radius: 8px;
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%);
  background-size: 200% 100%;
  animation: booking_placeholder 1.4s infinite;
}

@keyframes booking_placeholder {
to {
  background-position-x: -200%;
}
}

@media (prefers-reduced-motion: reduce) {.booking_list_skeleton {
  animation: none;
}}

.partner_agreement {
  position: relative;
}

.support_contact_socials span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
}

.faq_card_link {
  border: 0;
  background: transparent;
  cursor: pointer;
  font: inherit;
}

.hotels_inner_flex>.hotels_inner[role="link"] {
  cursor: pointer;
}

.hotels_inner_flex>.hotels_inner[role="link"]:focus-visible {
  outline: 3px solid #4094fa;
  outline-offset: 3px;
}

.customer_reviews_list.reviews_loading {
  position: relative;
  min-height: 260px;
}

.customer_reviews_list.reviews_loading>.customer_review_card {
  visibility: hidden;
}

.customer_reviews_list.reviews_loading::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 8px;
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%);
  background-size: 200% 100%;
  animation: booking_placeholder 1.4s infinite;
}

@media (prefers-reduced-motion: reduce) {.customer_reviews_list.reviews_loading::after {
  animation: none;
}}

.my_bookings_manage,
.tours_price_button,
.partner_submit,
.find_booking_button,
.change_date_continue,
.hotels_saved_button_view {
  position: relative;
  overflow: hidden;
}

:is(.my_bookings_manage,
  .tours_price_button,
  .partner_submit,
  .find_booking_button,
  .change_date_continue,
  .hotels_saved_button_view,
  .destination_hero_btn) {
  overflow: hidden;
  transition: transform 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

:is(.my_bookings_manage,
  .tours_price_button,
  .partner_submit,
  .find_booking_button,
  .change_date_continue,
  .hotels_saved_button_view):hover {
  background: #2685f8;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(64, 148, 250, 0.22);
}

:is(.my_bookings_manage,
  .tours_price_button,
  .partner_submit,
  .find_booking_button,
  .change_date_continue,
  .hotels_saved_button_view,
  .destination_hero_btn) .button_ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.destination_form {
  width: min(700px, 100%);
  padding: 0 16px;
  box-sizing: border-box;
}

.destination_search {
  width: 100%;
  min-width: 0;
  text-align: left;
}

.destination_search>input {
  width: 100%;
  padding: 0 150px 0 45px;
  color: #363636;
}

.destination_search>.destination_hero_btn {
  position: absolute;
  right: 10px;
  top: 10px;
  height: 45px;
  transform: none;
}

.destination_search>.destination_hero_btn:hover {
  background: #2685f8;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(64, 148, 250, 0.22);
}

.destination_suggestions {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  background: white;
  border: 1px solid #e5e9ef;
  border-radius: 8px;
  box-shadow: 0 12px 35px #142b4c26;
  z-index: 20;
  padding: 6px;
  max-height: 280px;
  overflow: auto;
  color: #363636;
}

.destination_suggestions button {
  display: block;
  text-align: left;
  width: 100%;
  border: 0;
  background: white;
  padding: 12px;
  border-radius: 5px;
  cursor: pointer;
  font: inherit;
  color: #363636;
}

.destination_suggestions button:hover,
.destination_suggestions button:focus-visible {
  background: #edf5ff;
  outline: none;
}

.destination_suggestions p {
  font-size: 14px;
  color: #737b87;
  padding: 10px;
  text-align: left;
}

.partner_agreement input {
  position: static;
  opacity: 1;
  transform: none;
  pointer-events: auto;
  flex: 0 0 20px;
  margin: 0;
}

.partner_agreement input:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 4px;
}

.partner_select_wrapper {
  position: relative;
}

.partner_select_wrapper>svg {
  display: none;
}

.partner_select_wrapper select.is_enhanced {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  bottom: 0;
  left: 0;
}

.partner_select_trigger {
  width: 100%;
  height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  background: white;
  border: 1px solid #e2e2e2;
  border-radius: 5px;
  font: inherit;
  color: #333;
  cursor: pointer;
  text-align: left;
}

.partner_select_trigger::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 1.5px solid #7b7b7b;
  border-bottom: 1.5px solid #7b7b7b;
  transform: rotate(45deg);
  margin: 0 4px 5px 12px;
  transition: transform 0.2s;
}

.partner_select_trigger[aria-expanded="true"]::after {
  transform: rotate(225deg);
  margin-bottom: 0;
}

.partner_select_trigger.is_placeholder {
  color: #999;
}

.partner_select_trigger:focus-visible,
.partner_select_trigger[aria-expanded="true"] {
  outline: 2px solid #4094fa;
  outline-offset: 1px;
}

.partner_select_popup {
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  z-index: 40;
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 7px;
  box-shadow: 0 12px 32px #19395e24;
  padding: 8px;
}

.partner_select_popup input {
  height: 40px;
  width: 100%;
  padding: 0 12px;
  margin-bottom: 6px;
}

.partner_select_options {
  max-height: 240px;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.partner_select_option {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 4px;
  background: white;
  text-align: left;
  color: #333;
  font: inherit;
  cursor: pointer;
}

.partner_select_option img {
  width: 22px;
  height: 16px;
  object-fit: cover;
  border-radius: 2px;
}

.partner_select_option[aria-selected="true"]::after {
  content: "✓";
  margin-left: auto;
  color: #4094fa;
}

.partner_select_option:hover,
.partner_select_option:focus-visible {
  background: #edf5ff;
  outline: none;
}

.partner_select_options p {
  padding: 12px;
  font-size: 14px;
  color: #777;
}

.partner_select_popup[hidden],
.destination_suggestions[hidden] {
  display: none;
}

.saved_trips_section .hotels_inner {
  cursor: default;
}

.saved_trips_section .hotels_saved_button_view {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.partner_agreement input {
  width: 20px;
  height: 20px;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #d0d0d0;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0px;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.partner_agreement input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.partner_agreement input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
  box-shadow: 0 0 0 4px rgba(64, 148, 250, 0.12);
  animation: checkboxPop 0.28s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.partner_agreement input:active {
  box-shadow: 0 0 0 6px rgba(64, 148, 250, 0.1);
}

.customer_reviews_retry {
  border: 1px solid #4094fa;
  background: #fff;
  color: #2685f8;
  border-radius: 5px;
  padding: 10px 18px;
  cursor: pointer;
  font: inherit;
}

.customer_review_avatar {
  position: relative;
  overflow: hidden;
}

.customer_review_avatar img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.customer_review_person_info h3 a {
  color: inherit;
  text-decoration: none;
}

.customer_section [hidden] {
  display: none !important;
}

.customer_reviews_sample {
  line-height: 1.6;
}

.rights_left_bar {
  position: sticky;
  top: 110px;
  align-self: flex-start;
  flex: 0 0 250px;
  max-height: calc(100vh - 130px);
  overflow-y: auto;
}

.rights_text_right {
  min-width: 0;
  flex: 1;
}

:is(.manage_booking_inputs button,
  .support_contact_left_button button,
  .feedback_submit,
  .customer_write_review) {
  position: relative;
  overflow: hidden;
  transition: transform 0.18s ease,
    background-color 0.18s ease,
    box-shadow 0.18s ease;
}

:is(.manage_booking_inputs button,
  .support_contact_left_button button,
  .feedback_submit,
  .customer_write_review):hover {
  background: #2685f8;
  transform: translateY(-1px);
  box-shadow: 0 8px 18px rgba(64, 148, 250, 0.22);
}

:is(.manage_booking_inputs button,
  .support_contact_left_button button,
  .feedback_submit,
  .customer_write_review) .button_ripple {
  background-color: rgba(255, 255, 255, 0.45);
}

.saved_trips_section .hotels_inner_flex {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 26px 18px;
  align-items: stretch;
}

.saved_trips_section .hotels_inner {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
}

.saved_trips_section .hotels_img {
  width: 100%;
  height: 225px;
}

.saved_trips_section .hotels_img>img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.saved_trips_section .hotels_aside {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: start;
  min-height: 95px;
  padding: 13px 7px 0;
}

.saved_trips_section .hotels_aside_title {
  font-size: 20px;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.saved_trips_section .hotels_aside_count {
  margin-top: 8px;
}

.saved_trips_section .hotels_aside_right {
  text-align: right;
  min-width: 90px;
}

.saved_trips_section .hotels_aside_price {
  font-size: 24px;
  line-height: 1.15;
  white-space: normal;
}

.saved_trips_section .hotels_aside_price span {
  margin-top: 5px;
  font-size: 13px;
  white-space: nowrap;
}

.saved_trips_section .hotels_saved_buttons {
  margin-top: auto;
  padding-top: 18px;
}

.saved_trips_section .hotels_saved_button_view {
  min-width: 0;
  flex: 1;
}

.saved_trips_section .hotels_saved_button_remove {
  flex: 0 0 auto;
  padding: 0 10px;
}

.manage_booking_flex {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 275px;
  gap: 18px 28px;
  align-items: end;
}

.manage_booking_inputs input {
  width: 100%;
  box-sizing: border-box;
}

.manage_booking_inputs button {
  width: 100%;
}

.manage_booking_flex .booking_lookup_message {
  grid-column: 1/-1;
  width: 100%;
  margin: 0;
  padding: 12px 14px;
  box-sizing: border-box;
  border: 1px solid #f2b8b5;
  border-radius: 6px;
  background: #fff5f4;
  color: #bf2c2c;
  font-size: 14px;
}

.manage_booking_flex.has_error input[aria-invalid="true"] {
  border-color: #d94b47;
  box-shadow: 0 0 0 3px rgba(217, 75, 71, 0.09);
}

.my_bookings_cancel {
  border: 0;
  background: transparent;
  color: #b83b38;
  font: inherit;
  cursor: pointer;
  padding: 8px 2px;
}

.my_bookings_cancel:hover {
  text-decoration: underline;
}

.lorvean_prompt {
  width: min(520px, calc(100% - 32px));
  margin: auto;
  padding: 0;
  border: 0;
  border-radius: 16px;
  color: #20242a;
  background: #fff;
  box-shadow: 0 28px 90px rgba(11, 32, 59, 0.3);
  opacity: 0;
  transform: translateY(18px) scale(0.97);
  transition: opacity 0.22s ease,
    transform 0.22s cubic-bezier(0.22, 1, 0.36, 1),
    display 0.22s allow-discrete,
    overlay 0.22s allow-discrete;
}

.lorvean_prompt[open].is_visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.lorvean_prompt.is_closing {
  opacity: 0;
  transform: translateY(12px) scale(0.98);
}

.lorvean_prompt::backdrop {
  background: rgba(7, 20, 38, 0.48);
  backdrop-filter: blur(5px);
  opacity: 0;
  transition: opacity 0.22s ease,
    display 0.22s allow-discrete,
    overlay 0.22s allow-discrete;
}

.lorvean_prompt.is_visible::backdrop {
  opacity: 1;
}

.lorvean_prompt.is_closing::backdrop {
  opacity: 0;
}

.lorvean_prompt_shell {
  position: relative;
  padding: 36px;
  outline: 0;
}

.lorvean_prompt_close {
  position: absolute;
  right: 18px;
  top: 16px;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: #f1f4f7;
  color: #54606e;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

.lorvean_prompt_icon {
  width: 48px;
  height: 48px;
  margin-bottom: 20px;
  border-radius: 14px;
  background: linear-gradient(135deg, #4094fa, #72b6ff);
  box-shadow: 0 9px 24px rgba(64, 148, 250, 0.28);
  position: relative;
}

.lorvean_prompt_icon::before {
  content: "✦";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 23px;
}

.lorvean_prompt[data-kind="shortlist"] .lorvean_prompt_icon::before {
  content: "♥";
}

.lorvean_prompt[data-kind="support"] .lorvean_prompt_icon::before,
.lorvean_prompt[data-kind="concierge"] .lorvean_prompt_icon::before {
  content: "↗";
}

.lorvean_prompt[data-kind="review"] .lorvean_prompt_icon::before {
  content: "★";
}

.lorvean_prompt.is_danger .lorvean_prompt_icon {
  background: linear-gradient(135deg, #df514c, #ef7772);
  box-shadow: 0 9px 24px rgba(201, 53, 48, 0.22);
}

.lorvean_prompt.is_danger .lorvean_prompt_icon::before {
  content: "!";
}

.lorvean_prompt_eyebrow {
  margin: 0 0 8px;
  color: #4094fa;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
}

.lorvean_prompt.is_danger .lorvean_prompt_eyebrow {
  color: #c23e39;
}

.lorvean_prompt_title {
  margin: 0;
  font: 500 27px/1.25 Montserrat,
    Manrope,
    sans-serif;
  color: #151a20;
}

.lorvean_prompt_text {
  margin: 14px 0 0;
  color: #687383;
  font-size: 15px;
  line-height: 1.65;
}

.lorvean_prompt_context {
  margin-top: 18px;
  padding: 13px 15px;
  border-radius: 8px;
  background: #f5f7fa;
  color: #465263;
  font-size: 13px;
  line-height: 1.5;
}

.lorvean_prompt_actions {
  display: flex;
  gap: 10px;
  margin-top: 26px;
}

.lorvean_prompt_action {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 20px;
  border-radius: 6px;
  text-decoration: none;
  font: 500 14px Manrope,
    sans-serif;
  cursor: pointer;
  transition: background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}

.lorvean_prompt_action.primary {
  border: 1px solid #4094fa;
  background: #4094fa;
  color: #fff;
  box-shadow: 0 8px 18px rgba(64, 148, 250, 0.18);
}

.lorvean_prompt_action.primary:hover {
  background: #2784f5;
  transform: translateY(-1px);
}

.lorvean_prompt_action.quiet {
  border: 1px solid #dce3eb;
  background: #fff;
  color: #54606e;
}

.lorvean_prompt_action.quiet:hover {
  background: #f5f7fa;
}

.lorvean_prompt_action.danger {
  border: 1px solid #ca413c;
  background: #ca413c;
  color: #fff;
  margin-left: auto;
}

.lorvean_prompt_action.danger:hover {
  background: #b73531;
  transform: translateY(-1px);
}

@starting-style {.lorvean_prompt[open] {
  opacity: 0;
  transform: translateY(18px) scale(0.97);
}

.lorvean_prompt[open]::backdrop {
  opacity: 0;
}}

@media (prefers-reduced-motion: reduce) {.lorvean_prompt,
  .lorvean_prompt::backdrop,
  .lorvean_prompt_action {
  transition: none !important;
}}

.menu_logo {
  text-decoration: none;
}

.menu_container.menu_solid::before {
  transform: translateX(-50%);
  opacity: 1;
  background: #fff;
  box-shadow: 0 1px 0 #e9edf2;
  transition: none;
}

.menu_container.menu_solid::after {
  display: none;
}

.menu_container.menu_solid :is(.menu_logo, .menu_link, .menu_select, .menu_icon) {
  color: #535353;
}

.menu_container.menu_solid .menu_link:is(:hover, :focus-visible, .is_current) {
  color: #4094fa;
}

.menu_container.menu_solid .menu_item_has_dropdown:is(:hover, :focus-within)>.menu_link {
  color: #4094fa;
}

.menu_burger {
  display: none;
}

.region_dialog_header>button {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid #e6ebf0;
  border-radius: 50%;
  background: #fff;
  color: #364456;
  font: 300 30px Arial,
    sans-serif;
  cursor: pointer;
}

.footer_region {
  font: inherit;
  cursor: pointer;
  text-align: start;
}

.region_current {
  display: flex;
  align-items: center;
  min-width: 0;
  gap: 8px;
}

.region_current img {
  width: 22px;
  height: 16px;
  object-fit: contain;
  flex-shrink: 0;
}

.region_current>span {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.region_dialog {
  width: min(560px, calc(100vw - 32px));
  max-height: min(720px, calc(100dvh - 40px));
  padding: 28px;
  border: 1px solid #e6edf4;
  border-radius: 18px;
  color: #25374a;
  box-shadow: 0 20px 80px #081c3933;
  overflow: hidden;
}

.region_dialog[open] {
  display: flex;
  flex-direction: column;
}

.region_dialog::backdrop {
  background: #101f3680;
  backdrop-filter: blur(4px);
}

.region_dialog_header {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  justify-content: space-between;
}

.region_dialog_header h2 {
  font-size: 22px;
  font-weight: 600;
}

.region_dialog_header p {
  margin-top: 8px;
  font-size: 13px;
  color: #748293;
  line-height: 1.6;
}

.region_search {
  display: block;
  margin-top: 22px;
}

.region_search input {
  width: 100%;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid #dfe6ee;
  border-radius: 8px;
  font: inherit;
  font-size: 16px;
  box-sizing: border-box;
}

.region_automatic {
  text-align: left;
  margin: 14px 0;
  padding: 10px 0;
  color: #185cab;
  background: none;
  border: 0;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}

.region_country_list {
  overflow-y: auto;
  overscroll-behavior: contain;
  min-height: 120px;
  display: grid;
  align-content: start;
  gap: 2px;
}

.region_country_list>button {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 12px;
  color: #364b63;
  border: 0;
  border-radius: 7px;
  text-align: left;
  background: #fff;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
}

.region_country_list>button:is(:hover, [aria-pressed="true"]) {
  background: #eef5ff;
  color: #4094fa;
}

.region_country_list img {
  width: 26px;
  height: 20px;
  object-fit: contain;
}

.region_status {
  font-size: 14px;
  color: #64758a;
  padding: 12px 0;
}

.sr_only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.hero_slider {
  background: #111923 url("/images/home/main/3-preview.webp") center / cover no-repeat;
}

.hero_slide img {
  min-height: 100%;
}

.hotel_overview_nav {
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

.hotel_overview_nav.is_stuck {
  border: 0;
  box-shadow: none;
}

.hotel_overview_tabs {
  width: calc(100% - 340px);
  max-width: 1000px;
  gap: 8px;
  min-height: 48px;
  box-shadow: inset 0 -1px #e1e7ee;
}

.hotel_overview_nav.is_stuck .hotel_overview_tabs {
  box-shadow: 0 1px 0 #e1e7ee,
    0 6px 15px #263c500a;
}

.hotel_overview_tab {
  padding: 12px 18px;
  font-size: 16px;
}

.hotel_overview_highlights {
  top: var(--hotel-panel-sticky-top, 150px);
}

.media_loading {
  position: relative;
  background-color: #edf0f4;
}

.media_loading::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(100deg,
      transparent 25%,
      #ffffff80 45%,
      transparent 65%);
  background-size: 200% 100%;
  animation: media_loading_sweep 1.4s ease-in-out infinite;
}

.media_unavailable {
  background-color: #edf0f4;
}

@keyframes media_loading_sweep {
to {
  background-position: -200% 0;
}
}

@media (prefers-reduced-motion: reduce) {.media_loading::after {
  animation: none;
}}

.menu_container>.menu_inner:last-child {
  display: flex;
  align-items: center;
  gap: 20px;
}

.hotel_overview_tabs {
  border-bottom: 1px solid #e1e7ee;
  box-shadow: none;
}

.hotel_overview_nav.is_stuck .hotel_overview_tabs {
  border-bottom: 1px solid #e1e7ee;
  box-shadow: 0 6px 15px #263c500a;
}

.back_to_top {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 90;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border: 1px solid #e0e7ee;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 5px 20px #17395412;
  color: #214969;
  cursor: pointer;
}

.back_to_top:hover {
  background: #f0f6ff;
  border-color: #a5c6ed;
}

.back_to_top svg {
  width: 20px;
  height: 20px;
}

.customer_reviews_list.reviews_loading {
  min-height: 0;
}

.customer_reviews_list.reviews_loading::after {
  display: none;
}

.review_placeholder {
  border: 1px solid #e1e7ee;
  border-radius: 10px;
  padding: 20px;
  min-height: 172px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.review_placeholder_header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 4px;
}

.review_placeholder_header>div {
  display: grid;
  gap: 8px;
  width: 40%;
}

.review_placeholder i {
  display: block;
  background: #edf1f5;
  border-radius: 4px;
  height: 10px;
}

.review_placeholder .review_placeholder_avatar {
  width: 38px;
  height: 38px;
  flex-shrink: 0;
  border-radius: 50%;
}

.review_placeholder .short {
  width: 64%;
}

@media (prefers-reduced-motion: reduce) {* {
  scroll-behavior: auto !important;
}}

.menu_container .menu_link:is(.is_current, :hover, :focus-visible) {
  color: #4094fa;
}

.mobile_navigation {
  box-sizing: border-box;
  inset: 0 0 0 auto;
  margin: 0;
  width: min(360px, calc(100% - 24px));
  max-width: none;
  height: 100dvh;
  max-height: 100dvh;
  padding: 0;
  border: 0;
  background: #fff;
  color: #535353;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.mobile_navigation[open] {
  display: flex;
  flex-direction: column;
}

.mobile_navigation::backdrop {
  background: rgba(0, 0, 0, 0.4);
}

.mobile_navigation_header {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 76px;
  padding: 16px 20px;
  border-bottom: 1px solid #e8e9ea;
}

.mobile_navigation_brand {
  font: 500 23px Montserrat,
    Arial,
    sans-serif;
  color: #535353;
  text-decoration: none;
}

.mobile_navigation_close {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #535353;
  cursor: pointer;
}

.mobile_navigation_close:hover {
  color: #4094fa;
}

.mobile_navigation_links {
  flex-shrink: 0;
  display: grid;
  padding: 16px 20px;
}

.mobile_navigation_links>a {
  display: flex;
  align-items: center;
  min-height: 52px;
  padding: 12px 0;
  border-bottom: 1px solid #e8e9ea;
  color: #535353;
  text-decoration: none;
  font-size: 16px;
  font-weight: 400;
}

.mobile_navigation_links>a:last-child {
  border-bottom: 0;
}

.mobile_navigation_links>a:is([aria-current], :hover, :focus-visible) {
  color: #4094fa;
}

.mobile_navigation_account {
  flex-shrink: 0;
  display: grid;
  margin: 0 20px;
  padding: 16px 0;
  border-top: 1px solid #e8e9ea;
}

.mobile_navigation_account>a {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  color: #535353;
  text-decoration: none;
}

.mobile_navigation_account>a:is(:hover, :focus-visible) {
  color: #4094fa;
}

.mobile_navigation_contact {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  min-height: 64px;
  margin: auto 20px 0;
  padding: 12px 0 max(12px, env(safe-area-inset-bottom));
  border-top: 1px solid #e8e9ea;
  color: #4094fa;
  font-size: 14px;
  text-decoration: none;
}

.search_mobile_dialog {
  display: contents;
}

.search_mobile_header,
.search_mobile_footer {
  display: none;
}

.menu_burger span {
  transition: transform 280ms cubic-bezier(0.22, 1, 0.36, 1), opacity 180ms ease;
  transform-origin: center;
}

.menu_burger[aria-expanded="true"] span:nth-child(1) {
  transform: translateY(6.5px) rotate(45deg);
}

.menu_burger[aria-expanded="true"] span:nth-child(2) {
  opacity: 0;
  transform: scaleX(0.3);
}

.menu_burger[aria-expanded="true"] span:nth-child(3) {
  transform: translateY(-6.5px) rotate(-45deg);
}

.mobile_navigation.is_open {
  animation: navigation-enter 420ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.mobile_navigation.is_closing {
  animation: navigation-leave 260ms cubic-bezier(0.4, 0, 1, 1) both;
  pointer-events: none;
}

.mobile_navigation.is_open::backdrop {
  animation: navigation-backdrop-enter 360ms ease both;
}

.mobile_navigation.is_closing::backdrop {
  animation: navigation-backdrop-leave 260ms ease both;
}

.mobile_navigation.is_open .mobile_navigation_links>a {
  animation: navigation-link-enter 380ms cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay: 90ms;
}

.mobile_navigation.is_open .mobile_navigation_links>a:nth-child(2) {
  animation-delay: 125ms;
}

.mobile_navigation.is_open .mobile_navigation_links>a:nth-child(3) {
  animation-delay: 160ms;
}

.mobile_navigation.is_open .mobile_navigation_links>a:nth-child(4) {
  animation-delay: 195ms;
}

.mobile_navigation.is_open .mobile_navigation_links>a:nth-child(5) {
  animation-delay: 230ms;
}

.mobile_navigation.is_open .mobile_navigation_account,
.mobile_navigation.is_open .mobile_navigation_contact {
  animation: navigation-link-enter 380ms 240ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

.mobile_navigation_close {
  transition: color 180ms ease, transform 240ms ease;
}

.mobile_navigation_close:active {
  transform: scale(0.9) rotate(90deg);
}

@keyframes navigation-enter {
from {
  transform: translateX(100%);
}

to {
  transform: translateX(0);
}
}

@keyframes navigation-leave {
from {
  transform: translateX(0);
}

to {
  transform: translateX(100%);
}
}

@keyframes navigation-link-enter {
from {
  opacity: 0;
  transform: translateX(18px);
}

to {
  opacity: 1;
  transform: translateX(0);
}
}

@keyframes navigation-backdrop-enter {
from {
  opacity: 0;
}

to {
  opacity: 1;
}
}

@keyframes navigation-backdrop-leave {
from {
  opacity: 1;
}

to {
  opacity: 0;
}
}

@media (prefers-reduced-motion: reduce) {.mobile_navigation:is(.is_open, .is_closing),
  .mobile_navigation:is(.is_open, .is_closing)::backdrop,
  .mobile_navigation.is_open .mobile_navigation_links>a,
  .mobile_navigation.is_open .mobile_navigation_account,
  .mobile_navigation.is_open .mobile_navigation_contact {
  animation: none;
}

.menu_burger span,
  .mobile_navigation_close {
  transition: none;
}}

:where([data-booking]) :is(.booking_content) {
  gap: 24px;
  align-items: flex-start;
  justify-content: initial;
}

:where([data-booking]) :is(.booking_content .booking_left) {
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  max-width: 1000px;
}

:where([data-booking]) :is(.booking_content .hotel_room_summary_slot) {
  flex: 0 0 305px;
  width: 305px;
}

:where([data-booking]) :is(.booking_content .hotel_room_summary) {
  position: static;
}

:where([data-booking]) :is(.booking_content .hotel_room_summary_booking_button:hover),
:where([data-booking]) :is(.booking_card_pay_button:hover) {
  background-color: #287fec;
}

:where([data-booking]) :is(.booking_content :is(.hotel_room_summary_booking_button, .booking_card_pay_button)),
:where([data-booking]) :is(.booking_card_pay_button),
:where([data-booking]) :is(.booking_payment_method) {
  position: relative;
  overflow: hidden;
  transition: background-color 0.2s ease,
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

:where([data-booking]) :is(.booking_content .button_ripple) {
  background: rgba(255, 255, 255, 0.4);
}

:where([data-booking]) :is(.booking_content .hotel_room_summary_booking_button:disabled) {
  opacity: 0.55;
  cursor: not-allowed;
}

:where([data-booking]) :is(.booking_section_grid) {
  gap: 20px;
}

:where([data-booking]) :is(.booking_section_grid .booking_field) {
  width: auto;
  flex: 1;
  min-width: 0;
}

:where([data-booking]) :is(.booking_guest_other) {
  width: 48%;
}

:where([data-booking]) :is(.booking_guest_other[hidden]) {
  display: none;
}

:where([data-booking]) :is(.booking_input_number) {
  display: flex;
  align-items: center;
}

:where([data-booking]) :is(.booking_input_number .booking_phone_flag) {
  z-index: 1;
  width: 24px;
  height: 24px;
  object-fit: cover;
}

:where([data-booking]) :is(.booking_input_number .booking_country) {
  width: 125px;
  min-width: 125px;
  height: 50px;
  margin-top: 5px;
  padding: 0 17px 0 42px;
  border-radius: 5px 0 0 5px;
  background: transparent;
  cursor: pointer;
  font-size: 13px;
  text-overflow: ellipsis;
}

:where([data-booking]) :is(.booking_input_number input) {
  flex: 1;
  min-width: 0;
  padding-left: 12px;
  border-radius: 0 5px 5px 0;
  border-left: 0;
}

:where([data-booking]) :is(.booking_input_number:focus-within :is(select, input)) {
  border-color: #4094fa;
}

:where([data-booking]) :is(.booking_notice) {
  padding: 12px 16px;
  background: #f6fafe;
  border: 1px solid #c4dfff;
  border-radius: 5px;
  margin-top: 20px;
}

:where([data-booking]) :is(.review_card_edit:hover) {
  text-decoration: underline;
}

:where([data-booking]) :is(.booking_card_number_wrap) {
  position: relative;
}

:where([data-booking]) :is(.booking_card_number_wrap input) {
  padding-right: 88px;
}

:where([data-booking]) :is(.booking_card_brand) {
  position: absolute;
  right: 13px;
  top: 50%;
  transform: translateY(-35%);
  font: 700 13px Montserrat,
    sans-serif;
  color: #1d50a5;
  pointer-events: none;
}

:where([data-booking]) :is(.booking_card_brand[data-brand="mastercard"]) {
  color: #f45a27;
  letter-spacing: -7px;
  padding-right: 7px;
  font-size: 24px;
}

:where([data-booking]) :is(.booking_card_brand[data-brand="amex"]) {
  color: #fff;
  background: #2175c0;
  padding: 3px;
  border-radius: 2px;
}

:where([data-booking]) :is(.booking_card_brand[data-brand="discover"]) {
  color: #e47225;
}

:where([data-booking]) :is(.booking_payment_method:hover),
:where([data-booking]) :is(.booking_payment_method.is_selected) {
  border-color: #4094fa;
  background: #f4f9ff;
  box-shadow: 0 0 0 2px rgba(64, 148, 250, 0.1);
}

:where([data-booking]) :is(.booking_payment_notice) {
  margin-top: 8px;
  color: #6f6f6f;
  font-size: 13px;
}

:where([data-booking]) :is(.booking_card_name input:focus),
:where([data-booking]) :is(.booking_card_flex input:focus) {
  border-color: #4094fa;
}

:where([data-booking]) :is(.booking_card_pay_button) {
  width: min(100%, 450px);
}

:where([data-booking]) :is(.booking_confirmation) {
  max-width: calc(100% - 32px);
  height: auto;
  min-height: 75vh;
  padding: 55px 0;
}

:where([data-booking]) :is(.booking_confirmation_next p) {
  max-width: 100%;
}

:where([data-booking]) :is(.booking_confirmation_button:hover) {
  box-shadow: 0 4px 12px rgba(64, 148, 250, 0.22);
  transform: translateY(-1px);
}

:where([data-booking]) :is(.booking_list) {
  max-width: 1000px;
  margin: 40px auto 100px;
  padding: 0 24px;
  min-height: 45vh;
}

:where([data-booking]) :is(.booking_list h1) {
  font-size: 26px;
  font-weight: 500;
}

:where([data-booking]) :is(.booking_list > p) {
  color: #6f6f6f;
  margin: 8px 0 24px;
}

:where([data-booking]) :is(.booking_list_items) {
  display: grid;
  gap: 12px;
  margin-bottom: 24px;
}

:where([data-booking]) :is(.booking_list_card) {
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  padding: 18px;
}

:where([data-booking]) :is(.booking_list_card h2) {
  font-size: 18px;
  font-weight: 500;
}

:where([data-booking]) :is(.booking_list_card p) {
  color: #535353;
  font-size: 14px;
  margin-top: 6px;
}

:where([data-booking]) :is(.booking_list .booking_confirmation_button) {
  max-width: 200px;
}

:where([data-booking]) :is(.booking_summary_hotel) {
  font-weight: 500;
  font-size: 15px;
  margin-top: 5px;
}

:where([data-booking]) :is(.booking_content:has(.booking_payment) .booking_left) {
  max-width: 670px;
}

:where([data-booking]) :is(.booking_edit_group[hidden]),
:where([data-booking]) :is(.booking_checkbox[hidden]),
:where([data-booking]) :is(.booking_country_panel[hidden]),
:where([data-booking]) :is(.booking_country_option[hidden]),
:where([data-booking]) :is(.booking_country_empty[hidden]),
:where([data-booking]) :is(.booking_confirmation_stay[hidden]),
:where([data-booking]) :is(.booking_input_number .booking_country[hidden]) {
  display: none;
}

:where([data-booking]) :is(.booking_edit_group) {
  min-width: 0;
}

:where([data-booking]) :is(.booking_form.is_editing .booking_section_title) {
  margin-top: 0;
}

:where([data-booking]) :is(.booking_edit_cancel) {
  display: inline-block;
  margin-top: 25px;
  font-size: 14px;
  color: #4094fa;
  text-underline-offset: 4px;
}

:where([data-booking]) :is(.booking_input_number .booking_phone_flag) {
  pointer-events: none;
}

:where([data-booking]) :is(.booking_country_trigger) {
  flex: 0 0 145px;
  width: 145px;
  height: 50px;
  margin-top: 5px;
  padding: 0 12px 0 42px;
  background: #fff;
  border: 1px solid #e1dfdc;
  border-radius: 5px 0 0 5px;
  display: flex;
  align-items: center;
  gap: 5px;
  cursor: pointer;
  color: #535353;
  font: 400 13px Manrope,
    sans-serif;
}

:where([data-booking]) :is(.booking_country_trigger > span:first-child) {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

:where([data-booking]) :is(.booking_country_arrow) {
  margin-left: auto;
  transition: transform 0.2s;
}

:where([data-booking]) :is(.country_is_open .booking_country_arrow) {
  transform: rotate(180deg);
}

:where([data-booking]) :is(.booking_country_trigger:focus-visible) {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
}

:where([data-booking]) :is(.booking_input_number:focus-within .booking_country_trigger) {
  border-color: #4094fa;
}

:where([data-booking]) :is(.booking_country_panel) {
  position: absolute;
  z-index: 80;
  top: calc(100% + 8px);
  left: 0;
  bottom: auto;
  width: 100%;
  min-width: 250px;
  padding: 10px;
  border: 1px solid #dfebf8;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 12px 35px #163b6529;
  animation: booking_dropdown_in 0.18s ease-out;
}

:where([data-booking]) :is(.booking_input_number .booking_country_search) {
  display: block;
  width: 100%;
  height: 42px;
  padding: 0 12px;
  margin: 0 0 8px;
  border: 1px solid #d9e4f1;
  border-radius: 6px;
  font-size: 14px;
  background: #f8fbff;
}

:where([data-booking]) :is(.booking_country_list) {
  position: relative;
  max-height: 230px;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scroll-behavior: auto;
  outline: none;
}

:where([data-booking]) :is(.booking_country_option) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 40px;
  padding: 8px 10px;
  border-radius: 5px;
  cursor: pointer;
  color: #363636;
  font-size: 13px;
}

:where([data-booking]) :is(.booking_country_option:hover),
:where([data-booking]) :is(.booking_country_option.is_active) {
  background: #f0f6ff;
}

:where([data-booking]) :is(.booking_country_option[aria-selected="true"]) {
  color: #186ad0;
  background: #e6f1ff;
}

:where([data-booking]) :is(.booking_country_dial) {
  font: 400 12px Montserrat,
    sans-serif;
  color: #6d8198;
  white-space: nowrap;
}

:where([data-booking]) :is(.booking_country_empty) {
  padding: 15px 10px;
}

:where([data-booking]) :is(.country_is_open) {
  z-index: 10;
}

:where([data-booking]) :is(.stepper_line) {
  position: relative;
  height: 3px;
  border-radius: 3px;
  overflow: hidden;
  background: #edf0f4;
}

:where([data-booking]) :is(.stepper_line)::after {
  content: "";
  position: absolute;
  inset: 0;
  background: #4094fa;
  transform: scaleX(var(--step-fill, 0));
  transform-origin: left;
  transition: transform 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}

:where([data-booking]) :is(.stepper_number) {
  transition: background-color 0.3s,
    box-shadow 0.3s,
    border-color 0.3s;
}

:where([data-booking]) :is(.stepper_item[aria-current="step"] .stepper_number) {
  box-shadow: 0 0 0 4px #4094fa12;
}

:where([data-booking]) :is(.stepper_item.is_complete .stepper_number svg) {
  animation: booking_fade_in 0.35s ease-out;
}

:where([data-booking]) :is(.booking_field :is(input, textarea, select):focus) {
  box-shadow: 0 0 0 3px #4094fa0d;
}

:where([data-booking]) :is(.booking_guest_other:not([hidden])) {
  animation: booking_reveal 0.18s ease-out both;
}

:where([data-booking]) :is(.booking_confirmation) {
  width: 740px;
  min-height: auto;
  margin: 42px auto 64px;
  padding: 0;
}

:where([data-booking]) :is(.booking_confirmation_flex) {
  width: 100%;
  padding: 38px 42px 30px;
  border: 1px solid #e6edf5;
  border-radius: 20px;
  background: radial-gradient(ellipse at 50% 0, #edf6ff 0, #fff 52%);
  box-shadow: 0 14px 55px #203e6810;
}

:where([data-booking]) :is(.booking_confirmation_icon) {
  width: 78px;
  height: 78px;
  border-radius: 50%;
  box-shadow: 0 0 0 8px #4094fa0b;
}

:where([data-booking]) :is(.booking_confirmation_icon path) {
  animation: booking_fade_in 0.22s ease-out both;
}

:where([data-booking]) :is(.booking_confirmation_eyebrow) {
  margin-top: 25px;
  color: #3a7dc8;
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 2px;
}

:where([data-booking]) :is(.booking_confirmation_title) {
  margin-top: 8px;
  font-size: 29px;
  font-weight: 500;
  letter-spacing: -0.7px;
}

:where([data-booking]) :is(.booking_confirmation_subtitle) {
  margin: 10px auto 0;
  max-width: 450px;
  color: #718093;
  font-size: 14px;
  line-height: 1.7;
}

:where([data-booking]) :is(.booking_confirmation_reference) {
  margin-top: 25px;
  padding: 14px 18px;
  border: 1px dashed #c4d8ee;
  border-radius: 10px;
  background: #f8fbff;
  gap: 12px;
}

:where([data-booking]) :is(.booking_confirmation_reference_code) {
  gap: 12px;
}

:where([data-booking]) :is(#bookingReference) {
  font-family: Montserrat, sans-serif;
  font-size: 18px;
  font-weight: 500;
  user-select: all;
}

:where([data-booking]) :is(.booking_confirmation_copy) {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-width: 78px;
  min-height: 36px;
  padding: 7px 10px;
  border: 1px solid #dce7f5;
  border-radius: 7px;
  color: #287bdc;
  background: #fff;
  font: 500 12px Manrope,
    sans-serif;
  transition: background 0.2s,
    border-color 0.2s;
}

:where([data-booking]) :is(.booking_confirmation_copy svg) {
  width: 13px;
  height: 15px;
}

:where([data-booking]) :is(.booking_confirmation_copy path) {
  fill: currentColor;
}

:where([data-booking]) :is(.booking_confirmation_copy:hover) {
  background: #eaf3ff;
  border-color: #4094fa;
}

:where([data-booking]) :is(.booking_confirmation_copy.is_copied) {
  color: #238153;
  border-color: #b7dfc9;
  background: #eefaf3;
}

:where([data-booking]) :is(.booking_copy_status) {
  min-height: 20px;
  padding-top: 4px;
  color: #238153;
  font-size: 12px;
}

:where([data-booking]) :is(.booking_confirmation_stay) {
  display: flex;
  align-items: center;
  gap: 16px;
  text-align: left;
  border: 1px solid #e8edf3;
  border-radius: 12px;
  padding: 15px;
  margin-top: 6px;
  background: #fff;
}

:where([data-booking]) :is(.booking_confirmation_photo) {
  width: 92px;
  height: 96px;
  flex-shrink: 0;
  object-fit: cover;
  border-radius: 8px;
}

:where([data-booking]) :is(.booking_confirmation_stay_content) {
  min-width: 0;
  flex: 1;
}

:where([data-booking]) :is(.booking_confirmation_stay_label) {
  font-size: 9px;
  letter-spacing: 1.5px;
  color: #8392a3;
}

:where([data-booking]) :is(.booking_confirmation_hotel) {
  margin: 4px 0;
  font-size: 18px;
  font-weight: 500;
}

:where([data-booking]) :is(.booking_confirmation_room) {
  font-size: 12px;
  color: #647386;
  line-height: 1.6;
}

:where([data-booking]) :is(.booking_confirmation_dates) {
  margin-top: 8px;
  font: 400 11px Montserrat,
    sans-serif;
  color: #3b536e;
}

:where([data-booking]) :is(.booking_confirmation_total) {
  align-self: stretch;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  border-left: 1px solid #edf0f4;
  padding-left: 16px;
}

:where([data-booking]) :is(.booking_confirmation_total span) {
  font-size: 11px;
  color: #7e8b9c;
}

:where([data-booking]) :is(.booking_confirmation_total strong) {
  font: 500 18px Montserrat,
    sans-serif;
}

:where([data-booking]) :is(.booking_confirmation_email) {
  margin-top: 15px;
  color: #7a8797;
  font-size: 12px;
  line-height: 1.7;
}

:where([data-booking]) :is(.booking_confirmation_email span) {
  display: block;
  color: #42566f;
}

:where([data-booking]) :is(.booking_confirmation_next) {
  margin-top: 23px;
  padding: 18px 24px;
  border: 0;
  border-radius: 10px;
  background: #f4f8fd;
}

:where([data-booking]) :is(.booking_confirmation_next h2) {
  font-size: 15px;
  font-weight: 500;
  color: #376795;
}

:where([data-booking]) :is(.booking_confirmation_next p) {
  width: auto;
  max-width: 460px;
  margin-top: 6px;
  font-size: 12px;
  line-height: 1.75;
  color: #6f8093;
}

:where([data-booking]) :is(.booking_confirmation_actions) {
  gap: 12px;
  margin-top: 23px;
}

:where([data-booking]) :is(.booking_confirmation_actions .booking_confirmation_button) {
  width: auto;
  flex: 1;
  height: 47px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  transition: transform 0.2s,
    box-shadow 0.2s;
}

:where([data-booking]) :is(.booking_confirmation_button_secondary) {
  border-color: #d5e4f6;
}

:where([data-booking]) :is(.booking_confirmation_help) {
  margin-top: 22px;
  font-size: 12px;
  color: #8290a0;
}

@keyframes booking_reveal {
from {
  opacity: 0;
  transform: translateY(4px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@keyframes booking_dropdown_in {
from {
  opacity: 0;
  transform: translateY(-5px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@keyframes booking_fade_in {
from {
  opacity: 0;
}

to {
  opacity: 1;
}
}

@media (prefers-reduced-motion: reduce) {:where([data-booking]) :is(.booking_country_panel),
:where([data-booking]) :is(.booking_guest_other),
:where([data-booking]) :is(.stepper_number),
:where([data-booking]) :is(.stepper_number svg),
:where([data-booking]) :is(.booking_confirmation_icon),
:where([data-booking]) :is(.booking_confirmation_icon path) {
  animation: none !important;
  transition: none !important;
}

:where([data-booking]) :is(.stepper_line)::after,
:where([data-booking]) :is(.booking_route_loader),
:where([data-booking]) :is(.booking_page_frame),
:where([data-booking]) :is(.booking_main_title),
:where([data-booking]) :is(.breadcrumbs) {
  transition: none !important;
}

:where([data-booking]) :is(.booking_loader_circle),
:where([data-booking]) :is(.booking_loader_rail),
:where([data-booking]) :is(.booking_loader_bar),
:where([data-booking]) :is(.booking_loader_field),
:where([data-booking]) :is(.booking_loader_area),
:where([data-booking]) :is(.booking_loader_photo),
:where([data-booking]) :is(.booking_loader_room_copy),
:where([data-booking]) :is(.booking_loader_divider),
:where([data-booking]) :is(.booking_loader_dates span),
:where([data-booking]) :is(.booking_loader_button),
:where([data-booking]) :is(.booking_loader_success_icon),
:where([data-booking]) :is(.booking_loader_success_reference),
:where([data-booking]) :is(.booking_loader_success_card),
:where([data-booking]) :is(.booking_loader_success_actions span) {
  animation: none !important;
}}

:where([data-booking]) :is(.booking_route_loader) {
  position: fixed;
  z-index: 900;
  inset: 92px 0 0;
  overflow: hidden;
  padding: 38px 0 70px;
  background: rgba(255, 255, 255, 0.98);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.2s ease,
    visibility 0s linear 0.2s;
}

:where([data-booking]) :is(html.booking_is_loading .booking_route_loader),
:where([data-booking]) :is(body.booking_transition_out .booking_route_loader) {
  opacity: 1;
  visibility: visible;
  transition: opacity 0.2s ease,
    visibility 0s;
}

:where([data-booking]) :is(.booking_loader_flow) {
  width: min(1340px, calc(100% - 100px));
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 24px;
}

:where([data-booking]) :is(.booking_loader_main) {
  flex: 1;
  min-width: 0;
  max-width: 1000px;
}

:where([data-booking]) :is(.booking_loader_summary) {
  flex: 0 0 305px;
  min-height: 490px;
  padding: 20px;
  border: 1px solid #e9edf2;
  border-radius: 9px;
  background: #fff;
}

:where([data-booking]) :is(.booking_loader_stepper) {
  height: 40px;
  display: flex;
  align-items: center;
  margin: 0 0 28px;
}

:where([data-booking]) :is(.booking_loader_circle) {
  width: 40px;
  height: 40px;
  flex: 0 0 40px;
  border-radius: 50%;
}

:where([data-booking]) :is(.booking_loader_rail) {
  flex: 1;
  height: 3px;
  margin: 0 20px;
  border-radius: 3px;
}

:where([data-booking]) :is(.booking_loader_bar) {
  display: block;
  height: 14px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_heading) {
  width: 190px;
  height: 23px;
  margin-bottom: 24px;
}

:where([data-booking]) :is(.booking_loader_grid) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}

:where([data-booking]) :is(.booking_loader_field) {
  display: block;
  height: 70px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_subheading) {
  width: 170px;
  height: 22px;
  margin: 34px 0 20px;
}

:where([data-booking]) :is(.booking_loader_grid_bottom) {
  align-items: start;
}

:where([data-booking]) :is(.booking_loader_area) {
  display: block;
  height: 145px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_short) {
  width: 270px;
  height: 18px;
  margin-top: 26px;
}

:where([data-booking]) :is(.booking_loader_summary_title) {
  width: 135px;
  height: 22px;
}

:where([data-booking]) :is(.booking_loader_room) {
  display: flex;
  gap: 12px;
  margin: 22px 0 28px;
}

:where([data-booking]) :is(.booking_loader_photo) {
  display: block;
  width: 95px;
  height: 74px;
  flex: 0 0 95px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_room_copy) {
  display: block;
  flex: 1;
  height: 58px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_divider) {
  display: block;
  height: 1px;
  margin: 19px 0;
}

:where([data-booking]) :is(.booking_loader_dates) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}

:where([data-booking]) :is(.booking_loader_dates span) {
  display: block;
  height: 48px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_total) {
  width: 100%;
  height: 46px;
}

:where([data-booking]) :is(.booking_loader_button) {
  display: block;
  height: 48px;
  margin-top: 24px;
  border-radius: 7px;
}

:where([data-booking]) :is(.booking_loader_success) {
  display: none;
  width: min(740px, calc(100% - 40px));
  margin: 0 auto;
  padding: 38px 42px 30px;
  border: 1px solid #e9edf2;
  border-radius: 20px;
  background: #fff;
}

:where([data-booking]) :is(.booking_loader_success_icon) {
  display: block;
  width: 78px;
  height: 78px;
  margin: 0 auto 28px;
  border-radius: 50%;
}

:where([data-booking]) :is(.booking_loader_success_title) {
  width: 320px;
  max-width: 80%;
  height: 28px;
  margin: auto;
}

:where([data-booking]) :is(.booking_loader_success_text) {
  width: 420px;
  max-width: 92%;
  margin: 16px auto 28px;
}

:where([data-booking]) :is(.booking_loader_success_reference) {
  display: block;
  height: 68px;
  border-radius: 10px;
}

:where([data-booking]) :is(.booking_loader_success-card) {
  display: block;
  height: 128px;
  margin-top: 28px;
  border-radius: 12px;
}

:where([data-booking]) :is(.booking_loader_success_card) {
  display: block;
  height: 128px;
  margin-top: 28px;
  border-radius: 12px;
}

:where([data-booking]) :is(.booking_loader_success_actions) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-top: 24px;
}

:where([data-booking]) :is(.booking_loader_success_actions span) {
  display: block;
  height: 47px;
  border-radius: 8px;
}

:where([data-booking]) :is(.booking_success_page .booking_loader_flow) {
  display: none;
}

:where([data-booking]) :is(.booking_success_page .booking_loader_success) {
  display: block;
}

:where([data-booking]) :is(.booking_loader_circle),
:where([data-booking]) :is(.booking_loader_rail),
:where([data-booking]) :is(.booking_loader_bar),
:where([data-booking]) :is(.booking_loader_field),
:where([data-booking]) :is(.booking_loader_area),
:where([data-booking]) :is(.booking_loader_photo),
:where([data-booking]) :is(.booking_loader_room_copy),
:where([data-booking]) :is(.booking_loader_divider),
:where([data-booking]) :is(.booking_loader_dates span),
:where([data-booking]) :is(.booking_loader_button),
:where([data-booking]) :is(.booking_loader_success_icon),
:where([data-booking]) :is(.booking_loader_success_reference),
:where([data-booking]) :is(.booking_loader_success_card),
:where([data-booking]) :is(.booking_loader_success_actions span) {
  background: linear-gradient(100deg, #edf1f5 22%, #f7f9fb 40%, #edf1f5 58%);
  background-size: 260% 100%;
  animation: booking_skeleton_wave 1.35s ease-in-out infinite;
}

:where([data-booking]) :is(.booking_flow_page :is(.breadcrumbs, .booking_main_title, .booking_page_frame)),
:where([data-booking]) :is(.booking_success_page .booking_page_frame) {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.42s ease,
    transform 0.48s cubic-bezier(0.2, 0.75, 0.25, 1);
}

:where([data-booking]) :is(.booking_content_visible.booking_flow_page
  :is(.breadcrumbs, .booking_main_title, .booking_page_frame)),
:where([data-booking]) :is(.booking_content_visible.booking_success_page .booking_page_frame) {
  opacity: 1;
  transform: none;
}

:where([data-booking]) :is(.booking_content_visible .booking_main_title) {
  transition-delay: 0.035s;
}

:where([data-booking]) :is(.booking_content_visible .booking_page_frame) {
  transition-delay: 0.075s;
}

:where([data-booking]) :is(body.booking_transition_out :is(.breadcrumbs, .booking_main_title, .booking_page_frame)) {
  opacity: 0;
  transform: translateY(-4px);
  transition-duration: 0.16s;
  transition-delay: 0s;
}

:where([data-booking]) :is(.stepper_item[aria-current="step"] .stepper_number) {
  animation: booking_step_settle 0.42s cubic-bezier(0.2, 0.75, 0.25, 1) both;
}

:where([data-booking]) :is(.booking_confirmation_icon) {
  animation: booking_success_pop 0.48s 0.12s cubic-bezier(0.2, 0.8, 0.25, 1.25) both;
}

:where([data-booking]) :is(.booking_confirmation_icon path) {
  stroke-dasharray: 100;
  stroke-dashoffset: 100;
  animation: booking_check_draw 0.48s 0.32s ease-out forwards;
}

@keyframes booking_skeleton_wave {
from {
  background-position: 100% 0;
}

to {
  background-position: -100% 0;
}
}

@keyframes booking_step_settle {
from {
  opacity: 0.6;
  transform: scale(0.92);
}

to {
  opacity: 1;
  transform: scale(1);
}
}

@keyframes booking_success_pop {
from {
  opacity: 0;
  transform: scale(0.86);
}

to {
  opacity: 1;
  transform: scale(1);
}
}

@keyframes booking_check_draw {
to {
  stroke-dashoffset: 0;
}
}

.hotel_room_mobile_price_label,
.hotel_room_mobile_quantity_label,
.hotel_room_mobile_bar {
  display: none;
}

:where([data-account]) :is(.account_page) {
  color: #20242a;
  font-size: 14px;
  font-weight: 400;
}

:where([data-account]) :is(.account_page .breadcrumbs) {
  font-size: 13px;
}

:where([data-account]) :is(.account_page .breadcrumbs a),
:where([data-account]) :is(.account_page .breadcrumbs_slash) {
  font-size: 13px;
  color: #818790;
}

:where([data-account]) :is(.account_page .footer) {
  margin-top: 55px;
}

:where([data-account]) :is(.account_section) {
  max-width: 1440px;
  margin: 26px auto 0;
  padding: 0 50px;
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

:where([data-account]) :is(.account_left_bar) {
  padding: 16px 6px 28px;
  border: 1px solid #e3e5e8;
  border-radius: 5px;
  min-width: 0;
  min-height: 784px;
}

:where([data-account]) :is(.account_profile) {
  display: flex;
  align-items: center;
  gap: 13px;
  padding: 0 4px;
  margin-bottom: 22px;
}

:where([data-account]) :is(.account_avatar) {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background-color: #edf5ff;
  color: #4094fa;
  font-size: 20px;
  flex-shrink: 0;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
}

:where([data-account]) :is(.account_avatar img) {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

:where([data-account]) :is(.account_profile_inner) {
  min-width: 0;
}

:where([data-account]) :is(.account_profile_title) {
  font-size: 16px;
  margin-bottom: 6px;
}

:where([data-account]) :is(.account_profile_email) {
  font-size: 10px;
  color: #818790;
  overflow-wrap: anywhere;
}

:where([data-account]) :is(.account_left_nav) {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

:where([data-account]) :is(.account_left_button) {
  height: 42px;
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 0 16px;
  border-radius: 4px;
  color: #535963;
  font-size: 14px;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.2s ease, color 0.2s ease;
}

:where([data-account]) :is(.account_left_button svg) {
  flex-shrink: 0;
}

:where([data-account]) :is(.account_left_button svg:last-child:not(:first-child)) {
  margin-left: auto;
}

:where([data-account]) :is(.account_left_button:hover) {
  background-color: #f5f7fa;
  color: #4094fa;
}

:where([data-account]) :is(.account_left_button.active) {
  background-color: #edf5ff;
  color: #4094fa;
}

:where([data-account]) :is(.account_left_balance) {
  margin: 28px 6px 0;
  padding: 14px 16px 16px;
  border: 1px solid #e3e5e8;
  border-radius: 4px;
  position: relative;
}

:where([data-account]) :is(.account_left_balance)::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -19px;
  height: 1px;
  background-color: #dfe3e9;
}

:where([data-account]) :is(.account_left_balance p) {
  color: #535963;
  font-size: 13px;
}

:where([data-account]) :is(.account_left_balance strong) {
  display: block;
  font-size: 24px;
  font-weight: 400;
  margin: 4px 0 10px;
}

:where([data-account]) :is(.account_signout) {
  display: flex;
  align-items: center;
  gap: 16px;
  width: calc(100% - 12px);
  margin: 26px 6px 0;
  padding: 27px 12px 10px;
  border: 0;
  border-top: 1px solid #dfe3e9;
  font: inherit;
  color: #535963;
  background-color: transparent;
  cursor: pointer;
}

:where([data-account]) :is(.account_signout svg) {
  color: #818790;
}

:where([data-account]) :is(.account_signout:hover) {
  color: #4094fa;
}

:where([data-account]) :is(.account_inner) {
  min-width: 0;
}

:where([data-account]) :is(.account_titles) {
  display: flex;
  align-items: start;
  justify-content: space-between;
  gap: 20px;
  padding-top: 4px;
  margin-bottom: 24px;
}

:where([data-account]) :is(.account_title) {
  font-size: 28px;
  line-height: 1.4;
  font-weight: 400;
  letter-spacing: -0.6px;
  margin-bottom: 8px;
}

:where([data-account]) :is(.account_description) {
  color: #818790;
  font-size: 14px;
  line-height: 1.6;
}

:where([data-account]) :is(.account_card) {
  border: 1px solid #e3e5e8;
  border-radius: 5px;
  padding: 18px 19px;
  min-width: 0;
}

:where([data-account]) :is(.account_card_title) {
  font-size: 20px;
  font-weight: 400;
  line-height: 1.5;
  letter-spacing: -0.4px;
}

:where([data-account]) :is(.account_card_header) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

:where([data-account]) :is(.account_link),
:where([data-account]) :is(.account_muted_button) {
  padding: 0;
  border: 0;
  background-color: transparent;
  font-family: inherit;
  font-weight: 400;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.6;
}

:where([data-account]) :is(.account_link) {
  color: #4094fa;
  font-size: 12px;
}

:where([data-account]) :is(.account_link:hover) {
  color: #0a65f0;
  text-decoration: underline;
}

:where([data-account]) :is(.account_muted_button) {
  color: #818790;
  font-size: 14px;
}

:where([data-account]) :is(.account_muted_button:hover) {
  color: #535963;
}

:where([data-account]) :is(.account_button) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #4094fa;
  border-radius: 5px;
  background-color: #4094fa;
  color: #ffffff;
  min-height: 44px;
  padding: 10px 29px;
  font-family: inherit;
  font-weight: 400;
  font-size: 14px;
  line-height: 1.5;
  cursor: pointer;
  text-decoration: none;
  transition: background-color 0.2s ease, border-color 0.2s ease;
}

:where([data-account]) :is(.account_button:hover) {
  background-color: #2684f5;
  border-color: #2684f5;
}

:where([data-account]) :is(.account_button:active) {
  background-color: #0a65f0;
}

:where([data-account]) :is(.account_button.secondary) {
  border-color: #e3e5e8;
  background-color: #ffffff;
  color: #20242a;
}

:where([data-account]) :is(.account_button.secondary:hover) {
  background-color: #f5f7fa;
  border-color: #b8c5d5;
}

:where([data-account]) :is(.account_button:disabled),
:where([data-account]) :is(.account_muted_button:disabled) {
  opacity: 0.5;
  cursor: not-allowed;
}

:where([data-account]) :is(.account_section :is(a, button, input, select, summary):focus-visible),
:where([data-account]) :is(.account_dialog :is(button, input, select):focus-visible) {
  outline: 2px solid #4094fa;
  outline-offset: 3px;
}

:where([data-account]) :is(.account_stats) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 19px;
  margin-bottom: 19px;
}

:where([data-account]) :is(.account_stat) {
  display: flex;
  gap: 20px;
  min-height: 141px;
  padding: 21px 20px;
}

:where([data-account]) :is(.account_stat > svg) {
  margin-top: 2px;
  flex-shrink: 0;
  color: #4094fa;
  width: 22px;
  height: 22px;
}

:where([data-account]) :is(.account_stat p) {
  color: #535963;
  margin-bottom: 3px;
}

:where([data-account]) :is(.account_stat strong),
:where([data-account]) :is(.account_balance strong) {
  font-weight: 400;
  font-size: 32px;
  line-height: 1.4;
  letter-spacing: -0.7px;
}

:where([data-account]) :is(.account_stat :is(small, .account_link)) {
  display: block;
  margin-top: 8px;
}

:where([data-account]) :is(.account_stat small) {
  color: #818790;
  font-size: 11px;
}

:where([data-account]) :is(.account_overview_grid),
:where([data-account]) :is(.account_security_grid) {
  display: grid;
  grid-template-columns: minmax(0, 2.06fr) minmax(0, 1fr);
  gap: 19px;
}

:where([data-account]) :is(.account_next),
:where([data-account]) :is(.account_quick) {
  min-height: 310px;
}

:where([data-account]) :is(.account_trip) {
  display: flex;
  gap: 20px;
}

:where([data-account]) :is(.account_trip_image) {
  width: 205px;
  height: 171px;
  border-radius: 4px 4px 0 0;
  object-fit: cover;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_trip_inner) {
  flex: 1;
  min-width: 0;
}

:where([data-account]) :is(.account_trip_header) {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 3px;
}

:where([data-account]) :is(.account_trip_header h3) {
  font-size: 20px;
  font-weight: 400;
  letter-spacing: -0.4px;
}

:where([data-account]) :is(.account_badge) {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  font-size: 11px;
  white-space: nowrap;
  border-radius: 20px;
  color: #4094fa;
  background-color: #edf5ff;
  line-height: 1.5;
}

:where([data-account]) :is(.account_badge.confirmed) {
  color: #248855;
  background-color: #edf8f2;
}

:where([data-account]) :is(.account_badge.muted) {
  margin: 0;
  background-color: #f4f5f7;
  color: #818790;
}

:where([data-account]) :is(.account_trip_detail) {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #535963;
  margin-top: 10px;
}

:where([data-account]) :is(.account_trip_detail svg) {
  width: 17px;
  height: 17px;
  color: #818790;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_trip_reference) {
  font-size: 11px;
  color: #818790;
  margin-top: 16px;
}

:where([data-account]) :is(.account_trip_reference strong) {
  display: block;
  margin-top: 3px;
  color: #20242a;
  font-size: 14px;
  font-weight: 400;
}

:where([data-account]) :is(.account_actions) {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: 18px;
}

:where([data-account]) :is(.account_actions .account_link) {
  font-size: 14px;
}

:where([data-account]) :is(.account_quick_link) {
  display: flex;
  align-items: center;
  gap: 16px;
  min-height: 56px;
  border-bottom: 1px solid #dfe3e9;
  text-decoration: none;
  color: #535963;
  font-size: 12px;
}

:where([data-account]) :is(.account_quick_link:last-child) {
  border: 0;
}

:where([data-account]) :is(.account_quick_link svg) {
  color: #818790;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_quick_link svg:last-child) {
  margin-left: auto;
}

:where([data-account]) :is(.account_quick_link:hover) {
  color: #4094fa;
}

:where([data-account]) :is(.account_activity) {
  margin-top: 19px;
  min-height: 197px;
}

:where([data-account]) :is(.account_activity .account_card_header) {
  margin-bottom: 0;
}

:where([data-account]) :is(.account_activity_item) {
  display: flex;
  gap: 17px;
  align-items: center;
  min-height: 66px;
  border-bottom: 1px solid #dfe3e9;
}

:where([data-account]) :is(.account_activity_item:last-child) {
  border: 0;
}

:where([data-account]) :is(.account_activity_icon) {
  width: 43px;
  height: 43px;
  background-color: #edf5ff;
  color: #4094fa;
  border-radius: 50%;
  display: grid;
  place-items: center;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_activity_icon.confirmed) {
  background-color: #e9f7f0;
  color: #248855;
}

:where([data-account]) :is(.account_activity_icon svg) {
  width: 20px;
  height: 20px;
}

:where([data-account]) :is(.account_activity_item small) {
  display: block;
  color: #818790;
  font-size: 12px;
  margin-top: 5px;
}

:where([data-account]) :is(.account_activity_item time) {
  margin-left: auto;
  color: #818790;
  font-size: 12px;
}

:where([data-account]) :is(.account_activity_item .account_positive) {
  margin-left: auto;
}

:where([data-account]) :is(.account_activity_item .account_positive + time) {
  margin-left: 100px;
}

:where([data-account]) :is(.account_positive) {
  color: #248855;
}

:where([data-account]) :is(.account_photo_title) {
  font-size: 18px;
}

:where([data-account]) :is(.account_personal) {
  padding-bottom: 40px;
}

:where([data-account]) :is(.account_photo) {
  display: flex;
  gap: 17px;
  align-items: center;
  border-bottom: 1px solid #dfe3e9;
  padding: 7px 9px 20px;
  margin-bottom: 20px;
}

:where([data-account]) :is(.account_photo .account_avatar) {
  width: 60px;
  height: 60px;
  font-size: 22px;
}

:where([data-account]) :is(.account_photo p) {
  font-size: 16px;
}

:where([data-account]) :is(.account_photo small) {
  display: block;
  margin-top: 7px;
  font-size: 12px;
  color: #818790;
}

:where([data-account]) :is(.account_photo_actions) {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-left: auto;
}

:where([data-account]) :is(.account_photo_actions .account_button) {
  padding: 10px 24px;
}

:where([data-account]) :is(.account_form_grid) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 24px;
}

:where([data-account]) :is(.account_input) {
  display: block;
  min-width: 0;
}

:where([data-account]) :is(.account_input > span) {
  display: block;
  color: #535963;
  font-size: 13px;
  margin-bottom: 5px;
}

:where([data-account]) :is(.account_input :is(input, select)) {
  width: 100%;
  min-width: 0;
  height: 48px;
  border: 1px solid #e3e5e8;
  border-radius: 5px;
  padding: 0 13px;
  background-color: #ffffff;
  color: #20242a;
  font-family: inherit;
  font-weight: 400;
  font-size: 14px;
  outline: none;
  transition: border-color 0.2s ease;
}

:where([data-account]) :is(.account_date) {
  position: relative;
}

:where([data-account]) :is(.account_date input) {
  color: transparent;
  caret-color: transparent;
}

:where([data-account]) :is(.account_date input)::-webkit-calendar-picker-indicator {
  opacity: 0.5;
  cursor: pointer;
}

:where([data-account]) :is(.account_date > span) {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #20242a;
  font-size: 14px;
}

:where([data-account]) :is(.account_input select) {
  appearance: none;
  padding-right: 36px;
  background: #ffffff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M2 5L7 10L12 5' stroke='%23828b9a' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center;
}

:where([data-account]) :is(.account_input :is(input, select):focus) {
  border-color: #4094fa;
}

:where([data-account]) :is(.account_input input[aria-invalid="true"]) {
  border-color: #cf3a3a;
}

:where([data-account]) :is(.account_input input:disabled) {
  background-color: #f5f7fa;
  color: #818790;
}

:where([data-account]) :is(.account_verified) {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #248855;
  font-size: 11px;
  margin-top: 8px;
}

:where([data-account]) :is(.account_verified svg) {
  width: 16px;
  height: 16px;
}

:where([data-account]) :is(.account_form_bottom) {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 42px;
  padding-top: 33px;
  border-top: 1px solid #dfe3e9;
}

:where([data-account]) :is(.account_meta) {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  margin-top: 22px;
  color: #818790;
  font-size: 12px;
  padding: 16px 19px;
}

:where([data-account]) :is(.account_titles > .account_button) {
  min-width: 193px;
  margin-top: -2px;
}

:where([data-account]) :is(.account_travellers) {
  display: grid;
  gap: 17px;
}

:where([data-account]) :is(.account_traveller) {
  padding: 20px 19px 25px;
}

:where([data-account]) :is(.account_traveller_header) {
  display: flex;
  gap: 16px;
  align-items: start;
  border-bottom: 1px solid #dfe3e9;
  padding: 0 4px 18px;
}

:where([data-account]) :is(.account_traveller .account_avatar) {
  width: 44px;
  height: 44px;
  font-size: 16px;
}

:where([data-account]) :is(.account_traveller_title h2) {
  font-size: 18px;
  font-weight: 400;
  margin-bottom: 3px;
}

:where([data-account]) :is(.account_traveller_title small) {
  font-size: 12px;
  color: #818790;
}

:where([data-account]) :is(.account_traveller_header > .account_badge) {
  margin-left: 18px;
}

:where([data-account]) :is(.account_traveller_actions) {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-left: auto;
}

:where([data-account]) :is(.account_traveller_actions .account_button) {
  min-height: 37px;
  padding: 7px 24px;
}

:where([data-account]) :is(.account_more) {
  position: relative;
  color: #818790;
}

:where([data-account]) :is(.account_more summary) {
  list-style: none;
  padding: 8px 0;
  cursor: pointer;
  letter-spacing: 2px;
}

:where([data-account]) :is(.account_more summary)::-webkit-details-marker {
  display: none;
}

:where([data-account]) :is(.account_more button) {
  position: absolute;
  top: 100%;
  right: 0;
  padding: 12px 18px;
  font-family: inherit;
  color: #535963;
  border: 1px solid #e3e5e8;
  background-color: #ffffff;
  border-radius: 5px;
  white-space: nowrap;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.055);
  cursor: pointer;
  z-index: 2;
}

:where([data-account]) :is(.account_more button:hover) {
  background-color: #edf5ff;
}

:where([data-account]) :is(.account_traveller_details) {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 30px;
  margin: 18px 0 0;
}

:where([data-account]) :is(.account_traveller_details dt) {
  color: #818790;
  font-size: 12px;
  margin-bottom: 7px;
}

:where([data-account]) :is(.account_traveller_details dd) {
  margin: 0;
  overflow-wrap: anywhere;
}

:where([data-account]) :is(.account_invite) {
  display: flex;
  align-items: center;
  gap: 22px;
  min-height: 114px;
  margin-top: 36px;
  padding: 23px;
}

:where([data-account]) :is(.account_invite > svg) {
  color: #4094fa;
  width: 24px;
  height: 24px;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_invite h2) {
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 8px;
}

:where([data-account]) :is(.account_invite p),
:where([data-account]) :is(.account_note) {
  color: #818790;
  font-size: 13px;
}

:where([data-account]) :is(.account_invite .account_button) {
  margin-left: auto;
  min-width: 171px;
}

:where([data-account]) :is(.account_note) {
  display: flex;
  gap: 14px;
  align-items: center;
  margin-top: 42px;
}

:where([data-account]) :is(.account_note svg) {
  flex-shrink: 0;
}

:where([data-account]) :is(.account_balance) {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 22px;
  padding: 19px;
  min-height: 158px;
  scroll-margin-top: 100px;
}

:where([data-account]) :is(.account_balance > div > p) {
  color: #535963;
  margin-bottom: 3px;
}

:where([data-account]) :is(.account_balance > div > span) {
  margin-left: 50px;
  font-size: 11px;
  color: #818790;
}

:where([data-account]) :is(.account_balance .account_description) {
  grid-column: 1 / -1;
  font-size: 13px;
}

:where([data-account]) :is(.account_balance .account_button) {
  min-width: 171px;
}

:where([data-account]) :is(.account_cards_section) {
  margin-top: 25px;
}

:where([data-account]) :is(.account_cards_section .account_card_header) {
  margin-bottom: 14px;
}

:where([data-account]) :is(.account_cards_section > .account_card_header .account_button) {
  min-height: 37px;
  padding: 7px 24px;
}

:where([data-account]) :is(.account_cards) {
  display: grid;
  gap: 9px;
}

:where([data-account]) :is(.account_payment_card) {
  display: flex;
  align-items: center;
  gap: 30px;
  min-height: 73px;
  padding: 13px 23px;
}

:where([data-account]) :is(.account_card_brand) {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
  width: 52px;
  height: 34px;
}

:where([data-account]) :is(.account_card_brand.visa) {
  color: #163b9c;
  font-size: 22px;
  font-family: Arial, sans-serif;
}

:where([data-account]) :is(.account_card_brand.mastercard i) {
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background-color: #eb001b;
}

:where([data-account]) :is(.account_card_brand.mastercard i:last-child) {
  margin-left: -10px;
  background-color: #f79e1b;
}

:where([data-account]) :is(.account_card_info) {
  min-width: 0;
}

:where([data-account]) :is(.account_card_info h3) {
  font-weight: 400;
  font-size: 16px;
  margin-bottom: 3px;
}

:where([data-account]) :is(.account_card_info small) {
  font-size: 12px;
  color: #818790;
}

:where([data-account]) :is(.account_card_actions) {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 75px;
  padding-right: 14px;
}

:where([data-account]) :is(.account_card_actions .account_muted_button) {
  font-size: 12px;
}

:where([data-account]) :is(.account_payment_card .account_badge) {
  margin-left: 90px;
}

:where([data-account]) :is(.account_transactions) {
  margin-top: 42px;
}

:where([data-account]) :is(.account_table_inner) {
  width: 100%;
  overflow-x: auto;
}

:where([data-account]) :is(.account_table) {
  width: 100%;
  border-collapse: collapse;
  text-align: left;
  font-size: 13px;
  margin-top: 9px;
}

:where([data-account]) :is(.account_table th) {
  font-size: 11px;
  color: #818790;
  font-weight: 400;
  padding: 10px 0;
}

:where([data-account]) :is(.account_table td) {
  padding: 16px 0;
  border-top: 1px solid #dfe3e9;
}

:where([data-account]) :is(.account_table th:first-child) {
  width: 53%;
}

:where([data-account]) :is(.account_table td:nth-child(2)) {
  color: #818790;
}

:where([data-account]) :is(.account_table th:nth-child(3)) {
  width: 16%;
}

:where([data-account]) :is(.account_table td:nth-child(3)) {
  text-align: center;
  padding-right: 26px;
}

:where([data-account]) :is(.account_email) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 62px;
  font-size: 16px;
}

:where([data-account]) :is(.account_email span:last-child) {
  color: #818790;
  font-size: 13px;
  overflow-wrap: anywhere;
}

:where([data-account]) :is(.account_notification_list) {
  margin-top: 23px;
  padding: 0 19px;
}

:where([data-account]) :is(.account_notification) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 89px;
  padding: 20px 0;
  border-bottom: 1px solid #dfe3e9;
}

:where([data-account]) :is(.account_notification:last-child) {
  border: 0;
}

:where([data-account]) :is(.account_notification strong) {
  display: block;
  font-weight: 400;
  font-size: 16px;
}

:where([data-account]) :is(.account_notification small) {
  display: block;
  color: #818790;
  font-size: 13px;
  margin-top: 7px;
  line-height: 1.6;
}

:where([data-account]) :is(.account_switch) {
  appearance: none;
  width: 42px;
  height: 24px;
  border: 0;
  border-radius: 20px;
  background-color: #d8dee7;
  cursor: pointer;
  position: relative;
  margin: 0;
  flex-shrink: 0;
  transition: background-color 0.2s ease;
}

:where([data-account]) :is(.account_switch)::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  top: 3px;
  left: 3px;
  border-radius: 50%;
  background-color: #ffffff;
  transition: transform 0.2s ease;
}

:where([data-account]) :is(.account_switch:checked) {
  background-color: #4094fa;
}

:where([data-account]) :is(.account_switch:checked)::after {
  transform: translateX(18px);
}

:where([data-account]) :is(.account_switch:disabled) {
  opacity: 0.5;
  cursor: not-allowed;
}

:where([data-account]) :is(.account_browser) {
  margin-top: 23px;
  padding: 0 19px;
}

:where([data-account]) :is(#accountNotificationsForm > .account_button) {
  margin-top: 26px;
}

:where([data-account]) :is(.account_preferences_note) {
  margin-top: 15px;
  color: #818790;
  font-size: 12px;
}

:where([data-account]) :is(.account_security_grid) {
  margin-bottom: 28px;
}

:where([data-account]) :is(.account_password),
:where([data-account]) :is(.account_verification) {
  min-height: 220px;
  padding: 17px 19px 29px;
}

:where([data-account]) :is(.account_password > p),
:where([data-account]) :is(.account_verification > p) {
  color: #818790;
  font-size: 13px;
  margin-top: 7px;
}

:where([data-account]) :is(.account_password_mask) {
  display: block;
  letter-spacing: 5px;
  margin: 20px 0 28px;
}

:where([data-account]) :is(.account_verification .account_card_title) {
  font-size: 18px;
}

:where([data-account]) :is(.account_verification .account_card_header) {
  margin-bottom: 19px;
}

:where([data-account]) :is(.account_verification .account_button) {
  margin-top: 60px;
  padding: 10px 35px;
}

:where([data-account]) :is(.account_sessions) {
  padding-bottom: 26px;
}

:where([data-account]) :is(.account_sessions > .account_card_header) {
  margin-bottom: 7px;
}

:where([data-account]) :is(.account_sessions > .account_card_header > span) {
  color: #818790;
  font-size: 12px;
}

:where([data-account]) :is(.account_session) {
  display: flex;
  align-items: center;
  gap: 21px;
  padding: 19px 0 12px;
  border-bottom: 1px solid #dfe3e9;
}

:where([data-account]) :is(.account_session > svg) {
  color: #818790;
  flex-shrink: 0;
}

:where([data-account]) :is(.account_session h3) {
  font-weight: 400;
  font-size: 14px;
}

:where([data-account]) :is(.account_session small) {
  display: block;
  color: #818790;
  font-size: 12px;
  margin-top: 6px;
}

:where([data-account]) :is(.account_session > :last-child) {
  margin-left: auto;
}

:where([data-account]) :is(.account_session > .account_muted_button) {
  font-size: 12px;
}

:where([data-account]) :is(.account_session_bottom) {
  display: flex;
  align-items: center;
  gap: 21px;
  margin-top: 32px;
}

:where([data-account]) :is(.account_session_bottom > span) {
  color: #818790;
  font-size: 12px;
}

:where([data-account]) :is(.account_session_bottom .account_button) {
  padding: 10px 34px;
}

:where([data-account]) :is(.account_security_note) {
  margin-top: 48px;
  color: #818790;
  font-size: 13px;
}

:where([data-account]) :is(.account_security_note .account_link) {
  font-size: 13px;
  margin-left: 8px;
}

:where([data-account]) :is(.account_status) {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  padding: 14px 22px;
  max-width: calc(100% - 32px);
  background-color: #20242a;
  border-radius: 5px;
  color: #ffffff;
  font-size: 14px;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12);
  z-index: 1300;
}

:where([data-account]) :is(.account_dialog) {
  width: 520px;
  max-width: calc(100% - 32px);
  max-height: calc(100dvh - 40px);
  border: 1px solid #e3e5e8;
  border-radius: 5px;
  padding: 30px;
  color: #20242a;
  font-family: inherit;
  overflow-y: auto;
}

:where([data-account]) :is(.account_dialog)::backdrop {
  background-color: rgba(20, 28, 38, 0.4);
}

:where([data-account]) :is(.account_dialog h2) {
  font-size: 24px;
  font-weight: 400;
  padding-right: 26px;
  margin-bottom: 16px;
}

:where([data-account]) :is(.account_dialog_close) {
  position: absolute;
  top: 12px;
  right: 14px;
  width: 32px;
  height: 32px;
  border: 0;
  border-radius: 5px;
  background-color: transparent;
  color: #535963;
  cursor: pointer;
  font-size: 26px;
}

:where([data-account]) :is(.account_dialog_close:hover) {
  background-color: #edf5ff;
}

:where([data-account]) :is(.account_dialog .account_form_grid) {
  gap: 18px;
  margin-top: 18px;
}

:where([data-account]) :is(.account_dialog .account_actions) {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin-top: 24px;
}

:where([data-account]) :is(.account_dialog .account_error) {
  color: #cf3a3a;
  font-size: 13px;
  margin-top: 16px;
}

:where([data-account]) :is(.account_dialog:has(.account_card_form)) {
  width: 560px;
  border-radius: 18px;
  padding: 30px;
}

:where([data-account]) :is(.account_card_preview) {
  background: linear-gradient(125deg, #153a69, #2877cf 70%, #56a5ef);
  border-radius: 16px;
  padding: 23px;
  color: #fff;
  box-shadow: 0 12px 26px #1c65b32b;
  overflow: hidden;
}

:where([data-account]) :is(.account_card_preview_top),
:where([data-account]) :is(.account_card_preview_bottom) {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

:where([data-account]) :is(.account_card_preview_top strong) {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 18px;
  letter-spacing: 2px;
}

:where([data-account]) :is(.account_card_preview_top > span) {
  font-size: 14px;
  font-weight: 600;
}

:where([data-account]) :is(.account_card_chip) {
  display: block;
  width: 38px;
  height: 29px;
  margin-top: 22px;
  border: 1px solid #d9be81;
  border-radius: 6px;
  background: linear-gradient(135deg, #f6e2b3, #ccb37d);
  box-shadow: inset 0 0 0 5px #dfca9966;
}

:where([data-account]) :is(.account_card_preview_number) {
  margin-top: 14px;
  font-family: ui-monospace, monospace;
  font-size: clamp(18px, 5vw, 25px);
  letter-spacing: 1px;
  direction: ltr;
  text-align: start;
  white-space: nowrap;
}

:where([data-account]) :is(.account_card_preview_bottom) {
  align-items: flex-end;
  margin-top: 22px;
}

:where([data-account]) :is(.account_card_preview_bottom > div:first-child) {
  flex: 1;
  min-width: 0;
}

:where([data-account]) :is(.account_card_preview_bottom > div:last-child) {
  flex: 0 0 auto;
}

:where([data-account]) :is(.account_card_preview_bottom small) {
  display: block;
  font-size: 10px;
  line-height: 1.5;
  color: #e0edff;
  margin-bottom: 5px;
}

:where([data-account]) :is(.account_card_preview_bottom span) {
  font-size: 13px;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

:where([data-account]) :is(.account_card_preview_bottom [data-card-expiry]) {
  direction: ltr;
  unicode-bidi: isolate;
}

:where([data-account]) :is(.account_card_fields) {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 26px;
}

:where([data-account]) :is(.account_card_full) {
  grid-column: 1 / -1;
}

:where([data-account]) :is(.account_card_fields .account_input) {
  min-width: 0;
}

:where([data-account]) :is(.account_card_fields input) {
  width: 100%;
  border-radius: 9px;
  padding: 13px;
  min-height: 46px;
}

:where([data-account]) :is(.account_card_note) {
  color: #818790;
  font-size: 12px;
  line-height: 1.6;
  margin-top: 18px;
}

:where([data-account]) :is(.account_notification:has(.account_switch)) {
  cursor: pointer;
}

:where([data-account]) :is(.account_empty) {
  color: #818790;
  font-size: 14px;
  padding: 20px;
}

@media (prefers-reduced-motion: reduce) {:where([data-account]) :is(.account_section *),
:where([data-account]) :is(.account_dialog *) {
  transition: none;
  scroll-behavior: auto;
}}

.menu_container .locale_trigger {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 42px;
  white-space: nowrap;
  cursor: pointer;
  background: transparent;
  border: 0;
  color: inherit;
  font: inherit;
  padding: 5px 7px;
  margin: 0;
  border-radius: 9px;
  flex-shrink: 0;
}

.locale_trigger:focus-visible {
  outline: 2px solid #4094FA;
  outline-offset: 3px;
}

.locale_flag {
  object-fit: cover;
  border-radius: 3px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, .08);
}

.locale_arrow {
  width: 6px;
  height: 6px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  margin-inline-start: 2px;
  margin-top: -3px;
  transition: transform .2s;
}

.locale_trigger[aria-expanded="true"] .locale_arrow {
  transform: rotate(225deg);
  margin-top: 3px;
}

.locale_dropdown {
  position: fixed;
  z-index: 12000;
  background: #fff;
  border: 1px solid #E8E8E8;
  border-radius: 16px;
  box-shadow: 0 18px 48px rgba(18, 39, 64, .16);
  padding: 8px;
  color: #203148;
  max-width: calc(100vw - 20px);
  overflow: auto;
  font-family: Manrope, Arial, sans-serif;
  animation: locale_open .18s ease-out;
  box-sizing: border-box;
}

.locale_dropdown[hidden],
.currency_page_notice[hidden] {
  display: none;
}

.language_dropdown {
  width: 304px;
}

.currency_dropdown {
  width: 364px;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.locale_option {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 13px;
  border: 0;
  background: transparent;
  color: inherit;
  border-radius: 9px;
  padding: 12px 10px;
  min-height: 45px;
  text-align: start;
  font: inherit;
  font-size: 14px;
  cursor: pointer;
  box-sizing: border-box;
}

.locale_option img {
  flex-shrink: 0;
  border-radius: 3px;
  object-fit: cover;
  box-shadow: 0 0 0 1px #eee;
}

.locale_option>span:not(.currency_symbol) {
  flex: 1;
  min-width: 0;
}

.locale_option small {
  font-size: 11px;
  color: #76869b;
}

.locale_option:hover {
  background: #F1F6FC;
}

.locale_option[aria-selected="true"] {
  background: #EAF3FF;
  color: #1469CB;
}

.locale_option:focus-visible {
  outline: 2px solid #4094FA;
  outline-offset: -2px;
}

.currency_search {
  width: calc(100% - 8px);
  margin: 5px 4px 9px;
  border: 1px solid #E8E8E8;
  border-radius: 10px;
  padding: 12px 13px;
  min-height: 43px;
  font: inherit;
  font-size: 13px;
  background: #F8FAFC;
  color: #203148;
  box-sizing: border-box;
  flex-shrink: 0;
}

.currency_search:focus {
  outline: 2px solid #4094FA;
  outline-offset: 1px;
}

.currency_options {
  overflow: auto;
  min-height: 80px;
  max-height: 370px;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #bdcbe0 transparent;
}

.currency_options::-webkit-scrollbar {
  width: 5px;
}

.currency_options::-webkit-scrollbar-thumb {
  background: #bdcbe0;
  border-radius: 5px;
}

.currency_symbol {
  width: 39px;
  flex: 0 0 39px;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  direction: ltr;
  unicode-bidi: isolate;
}

.currency_option strong {
  width: 35px;
  flex: 0 0 35px;
  font-size: 12px;
  font-weight: 600;
  direction: ltr;
  unicode-bidi: isolate;
}

.currency_option .currency_name {
  font-size: 12px;
  color: #66758a;
  line-height: 1.5;
}

.currency_separator {
  border-top: 1px solid #E8E8E8;
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin-top: 5px;
  padding-top: 16px;
}

.locale_status:empty {
  display: none;
}

.currency_notice,
.locale_status,
.locale_empty {
  margin: 7px 8px;
  font-size: 11px;
  line-height: 1.6;
  color: #66758a;
}

.currency_notice {
  border-top: 1px solid #E8E8E8;
  padding-top: 9px;
  flex-shrink: 0;
}

.currency_page_notice {
  position: fixed;
  bottom: 14px;
  inset-inline-end: 14px;
  z-index: 11000;
  max-width: min(420px, calc(100vw - 28px));
  padding: 11px 15px;
  border: 1px solid #dbe5f2;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 6px 28px #152b4521;
  font-size: 12px;
  line-height: 1.6;
  color: #445771;
  pointer-events: none;
}

[data-price-amount] {
  unicode-bidi: isolate;
}

html[dir="rtl"] body {
  font-family: Manrope, Arial, Tahoma, sans-serif;
}

html[dir="rtl"] :is(.hero_texts, .about_inner, .hotel_overview_main, .booking_left, .account_section, .rights_main, .support_content, .faq_surface, .admin_content) {
  text-align: start;
}

html[dir="rtl"] :is(input[type="email"], input[type="tel"], input[autocomplete="cc-number"], [data-reference]) {
  direction: ltr;
}

html[dir="rtl"] .menu_container>.menu_inner:last-child {
  margin-left: 0;
  margin-right: auto;
}

html[dir="rtl"] .admin_sidebar {
  left: auto;
  right: 0;
  border-right: 0;
  border-left: 1px solid #e7ebf0;
}

html[dir="rtl"] .admin_content {
  margin-left: 0;
  margin-right: 264px;
}

html[dir="rtl"] .admin_header {
  padding-left: 32px;
  padding-right: 296px;
}

@keyframes locale_open {
from {
  opacity: 0;
  transform: translateY(-5px);
}

to {
  opacity: 1;
  transform: translateY(0);
}
}

@media (prefers-reduced-motion:reduce) {.locale_dropdown {
  animation: none;
}

.locale_arrow {
  transition: none;
}}

.menu_container .locale_trigger {
  color: #fff;
}

.header_plain .menu_container .locale_trigger,
.menu_container:is(.menu_scrolled, .menu_dropdown_open) .locale_trigger {
  color: #535353;
}

.admin_header_actions .locale_trigger {
  display: flex;
  align-items: center;
  gap: 7px;
  background: transparent;
  border: 0;
  padding: 5px;
  color: #445771;
  white-space: nowrap;
}

html[dir="rtl"] .admin_content {
  margin-right: 0;
}

html[dir="rtl"] .admin_header {
  padding: 16px max(30px, calc((100vw - 1340px)/2));
}

html[dir="rtl"] .admin_sidebar {
  border: 1px solid #e1e4e8;
}

[data-i18n] {
  overflow-wrap: break-word;
}

.newsletter_container {
  min-width: 0;
  max-width: 1340px;
  width: 100%;
  padding-inline: 24px;
  margin-inline: auto;
  text-align: center;
}

.newsletter_title {
  max-width: 1100px;
  margin-inline: auto;
  text-align: center;
  font-size: clamp(30px, 4.5vw, 64px);
  line-height: 1.2;
  text-wrap: balance;
}

.newsletter_desc {
  max-width: 800px;
  margin-inline: auto;
  text-align: center;
  line-height: 1.6;
}

.newsletter_form {
  width: min(700px, 100%);
  text-align: start;
}

.newsletter_checkbox {
  min-width: 0;
  max-width: 100%;
}

.newsletter_checkbox label {
  white-space: normal;
  min-width: 0;
  overflow-wrap: anywhere;
}

.account_notification>span:first-child {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}

.account_notification>.account_badge {
  max-width: 45%;
  white-space: normal;
  text-align: center;
}

.account_notification>div:first-child {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}

.menu_container .locale_trigger:hover {
  background: rgba(64, 148, 250, .10);
}

.menu_container.menu_hero:not(.menu_scrolled):not(.menu_dropdown_open) .locale_trigger:hover {
  background: rgba(255, 255, 255, .13);
}

body:has(dialog[open], .hotel_gallery_modal.is_open) .currency_page_notice {
  display: none;
}

html.i18n_loading::before,
html.i18n_revealing::before {
  content: "";
  position: fixed;
  inset: 0;
  background: #fff;
  z-index: 2147483600;
  pointer-events: all;
  opacity: 1;
}

html.i18n_loading::after,
html.i18n_revealing::after {
  content: "";
  position: fixed;
  top: calc(50% - 16px);
  left: calc(50% - 16px);
  width: 32px;
  height: 32px;
  box-sizing: border-box;
  border: 3px solid #e7f1fe;
  border-top-color: #4094FA;
  border-radius: 50%;
  z-index: 2147483601;
  animation: locale_spin .7s linear infinite;
}

html.i18n_revealing::before,
html.i18n_revealing::after {
  opacity: 0;
  pointer-events: none;
  transition: opacity .18s ease-out;
}

@keyframes locale_spin {
to {
  transform: rotate(360deg);
}
}

[data-price-amount],
.hotel_room_price_price,
.hotel_room_price_through,
.hotel_room_summary_total_price,
.hotel_room_mobile_bar strong,
.booking_confirmation_total strong {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  unicode-bidi: isolate;
}

.hotel_room_prices {
  min-width: 0;
}

.hotel_room_summary_info.second {
  flex-shrink: 0;
}

.hotel_room_summary_info :is(p, button) {
  overflow-wrap: break-word;
}

.hotel_room_button {
  white-space: normal;
  line-height: 1.3;
  padding-inline: 12px;
}

.hotel_room_choice_item {
  flex-wrap: wrap;
}

html[lang="ar"] :is(.hero_text_title, .hero_text, .newsletter_title) {
  line-height: 1.4;
  letter-spacing: 0;
  text-transform: none;
}

html[dir="rtl"] :is(.currency_trigger_symbol, .currency_symbol, .locale_option small) {
  direction: ltr;
  unicode-bidi: isolate;
}

@media (prefers-reduced-motion:reduce) {html.i18n_revealing::before,
    html.i18n_revealing::after {
  transition: none;
}

html.i18n_loading::after {
  animation-duration: 1.4s;
}}

.money_value {
  white-space: nowrap;
  overflow-wrap: normal;
  word-break: normal;
  unicode-bidi: isolate;
}

.locale_dialog {
  inset: 0;
  margin: auto;
  padding: 24px;
  width: 620px;
  max-width: calc(100vw - 32px);
  max-height: calc(100dvh - 32px);
  overflow: auto;
  border-radius: 18px;
  box-shadow: 0 24px 80px #12274038;
}

.locale_dialog:not([open]) {
  display: none;
}

.locale_dialog::backdrop {
  background: #12274070;
  backdrop-filter: blur(4px);
}

.locale_modal_header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 20px;
  flex-shrink: 0;
}

.locale_modal_header h2 {
  font-family: Montserrat, Arial, sans-serif;
  font-size: 24px;
  font-weight: 500;
  line-height: 1.4;
  min-width: 0;
}

.locale_modal_close {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: #f3f6fa;
  color: #526178;
  font-size: 26px;
  cursor: pointer;
}

.locale_modal_close:hover {
  background: #e7effb;
  color: #1469cb;
}

.locale_modal_close:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
}

.language_options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  max-height: 60dvh;
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
}

.language_options .locale_option {
  min-height: 62px;
  padding: 14px 12px;
  border: 1px solid #e8edf3;
  border-radius: 12px;
  gap: 10px;
}

.language_options .locale_option[aria-selected="true"] {
  border-color: #a8ccfb;
}

.currency_dropdown.locale_dialog {
  width: 560px;
}

.currency_dropdown.locale_dialog .currency_search {
  width: 100%;
  margin: 0 0 12px;
}

.currency_dropdown.locale_dialog .currency_options {
  max-height: min(48dvh, 400px);
  min-height: 0;
  flex: 1 1 auto;
}

.currency_dropdown.locale_dialog .locale_option {
  padding: 12px;
  min-height: 50px;
}

.currency_dropdown.locale_dialog .currency_name {
  font-size: 13px;
}

.locale_dialog .currency_notice {
  margin: 14px 0 0;
  font-size: 12px;
  line-height: 1.6;
}

.my_bookings_card_bottom {
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.my_bookings_card {
  height: auto;
  min-height: 300px;
}

.my_bookings_card_image {
  height: auto;
  min-height: 300px;
  align-self: stretch;
}

.my_bookings_status {
  height: auto;
  min-height: 34px;
  max-width: 100%;
  padding-block: 6px;
  line-height: 1.35;
}

.my_bookings_information {
  gap: 16px;
}

.my_bookings_information_item {
  padding-inline: 0 16px;
}

.my_bookings_information_item:last-child {
  padding-inline: 0;
}

.my_bookings_information_item p {
  white-space: normal;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

.my_bookings_information_item>span {
  line-height: 1.5;
  margin-bottom: 4px;
}

.my_bookings_cancellation {
  white-space: normal;
  line-height: 1.6;
  flex: 1 1 240px;
  min-width: 0;
}

.my_bookings_card_actions {
  flex-wrap: wrap;
  gap: 14px 20px;
  min-width: 0;
  margin-inline-start: auto;
}

.my_bookings_price {
  font-size: clamp(22px, 2.1vw, 30px);
  line-height: 1.4;
}

.my_bookings_manage {
  flex: 0 0 auto;
  width: auto;
  min-width: 150px;
  max-width: 100%;
  height: auto;
  min-height: 45px;
  padding: 12px 18px;
  text-align: center;
  line-height: 1.4;
}

.my_bookings_cancel {
  line-height: 1.5;
  max-width: 100%;
  white-space: normal;
}

.hotel_card_price_info>p [data-i18n] {
  font: inherit;
  color: inherit;
  display: inline;
  margin: 0;
}

.hotel_card_price_info>span>span {
  display: inline;
  margin: 0;
}

.find_booking_total strong :is([data-i18n], [data-price-amount]),
.find_booking_detail strong [data-i18n] {
  font: inherit;
  color: inherit;
  display: inline;
  white-space: inherit;
}

.hotel_room_choice_item>span:first-of-type,
#hotelRooms .hotel_room_choice_item>span:first-of-type {
  flex: 1 1 0;
  width: auto;
  min-width: 0;
  margin: 0;
  color: inherit;
  font-size: inherit;
}

.hotel_room_choice_item>span span,
#hotelRooms .hotel_room_choice_item>span span {
  flex: none;
  width: auto;
  margin: 0;
  font: inherit;
  color: inherit;
}

.my_bookings_information_item p>span {
  display: inline;
  font: inherit;
  color: inherit;
}

.language_options [lang="zh"],
html[lang="zh"] body {
  font-family: Manrope, "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", Arial, sans-serif;
}

.find_booking_summary {
  width: min(850px, 100%);
  box-sizing: border-box;
  align-items: flex-start;
}

.find_booking_summary_top {
  height: auto;
  min-height: 79px;
  padding-bottom: 14px;
  align-items: flex-start;
  flex-wrap: wrap;
  gap: 14px 20px;
}

.find_booking_hotel {
  flex: 1 1 220px;
  min-width: 0;
  overflow-wrap: anywhere;
}

.find_booking_total {
  flex: 0 1 280px;
  min-width: 0;
  max-width: 100%;
  text-align: end;
  overflow-wrap: anywhere;
}

.find_booking_total strong {
  font-size: clamp(22px, 2vw, 30px);
  white-space: normal;
  line-height: 1.3;
}

.find_booking_details {
  height: auto;
  min-height: 63px;
  grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1.3fr);
}

.find_booking_detail {
  padding-inline: 14px;
  padding-bottom: 8px;
}

.find_booking_detail:first-child {
  padding-inline-start: 0;
}

.find_booking_detail span,
.find_booking_detail strong {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.find_booking_detail strong {
  overflow: visible;
  text-overflow: clip;
}

.find_booking_actions {
  max-width: 100%;
  box-sizing: border-box;
}

.find_booking_action {
  min-width: 0;
}

.find_booking_action_info>div {
  min-width: 0;
  flex: 1;
}

.find_booking_action h3,
.find_booking_action p {
  overflow-wrap: anywhere;
  white-space: normal;
}

.find_booking_button {
  max-width: 100%;
  white-space: normal;
  min-height: 48px;
  height: auto;
  padding: 12px 16px;
  line-height: 1.4;
  box-sizing: border-box;
}

.hotels_aside {
  gap: 10px;
  align-items: flex-start;
  box-sizing: border-box;
}

.hotels_aside_left {
  min-width: 0;
  flex: 1;
}

.hotels_aside_right {
  flex: 0 0 auto;
  max-width: 52%;
  text-align: end;
}

.hotels_aside_title {
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hotels_aside_price {
  margin: 0;
  color: #4094FA;
  font-size: 18px;
  line-height: 1.4;
}

.hotels_aside_price [data-price-amount] {
  display: inline;
  font: inherit;
  color: inherit;
  text-align: inherit;
  white-space: normal;
  overflow-wrap: anywhere;
}

.hotels_aside_price>span:not([data-price-amount]) {
  margin-top: 3px;
  font-size: 12px;
  line-height: 1.5;
}

.hotels_aside_count {
  flex-wrap: wrap;
  gap: 4px;
  min-height: 24px;
}

.hotels_aside_count_title {
  min-width: 0;
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.hotels_aside_count_title [data-i18n] {
  font: inherit;
  color: inherit;
  display: inline;
}

.saved_trips_section .hotels_aside_title {
  min-height: 50px;
  display: block;
}

.saved_trips_section .hotels_aside_count {
  align-items: center;
}

.destination_region_tab {
  color: #171717;
}

.destination_region_tab.active {
  color: #fff;
}

.destination_region_tab [data-i18n] {
  font: inherit;
  color: inherit;
}

.account_left_nav {
  min-width: 0;
}

.account_left_button {
  height: auto;
  min-height: 44px;
  white-space: normal;
  line-height: 1.5;
  box-sizing: border-box;
}

.account_left_button>span {
  min-width: 0;
  flex: 1;
  overflow-wrap: anywhere;
}

.account_left_button>svg {
  flex: 0 0 20px;
}

.account_trip_empty {
  min-height: 250px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
  padding: 20px;
  box-sizing: border-box;
}

.account_trip_empty h3,
.account_trip_empty p {
  margin: 0;
  max-width: 400px;
}

.account_trip_empty_icon {
  width: 72px;
  height: 72px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #4094FA;
  background: #edf5ff;
}

.account_trip_empty .account_button {
  margin-top: 8px;
}

html[dir="rtl"] .menu_nav {
  gap: 15px;
}

html[dir="rtl"] .menu_container>.menu_inner {
  min-width: 0;
}

html[dir="rtl"] .menu_container>.menu_inner:first-child {
  margin-inline-end: 15px;
}

.mobile_navigation_preferences {
  display: flex;
  gap: 15px;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  border-bottom: 1px solid #e8e8e8;
}

.mobile_navigation_preferences .locale_trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  background: #fff;
  color: #535353;
  font: inherit;
  cursor: pointer;
}

.search_mobile_label {
  display: none;
}

.booking_cancel_dialog {
  width: min(460px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  padding: 30px;
  border: 1px solid #e1e4e8;
  border-radius: 14px;
  color: #363636;
  font-family: Manrope, Arial, sans-serif;
  box-sizing: border-box;
  overflow: auto;
}

.booking_cancel_dialog::backdrop {
  background: #10243b70;
}

.booking_cancel_icon {
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  margin: 0 auto 18px;
  border-radius: 50%;
  background: #fff1f1;
  color: #ff5050;
}

.booking_cancel_dialog h2 {
  margin: 0;
  font-size: 24px;
  line-height: 1.4;
  text-align: center;
}

.booking_cancel_description {
  margin: 14px 0;
  font-size: 14px;
  line-height: 1.6;
  text-align: center;
}

.booking_cancel_details {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 16px;
  border: 1px solid #e1e4e8;
  border-radius: 6px;
  overflow-wrap: anywhere;
  font-size: 14px;
  line-height: 1.5;
}

.booking_cancel_details small {
  color: #777;
}

.booking_cancel_actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}

.booking_cancel_actions button {
  flex: 1 1 160px;
  min-width: 0;
  min-height: 46px;
  padding: 12px 16px;
  border: 1px solid #e1e4e8;
  border-radius: 5px;
  background: #fff;
  color: #535353;
  font: inherit;
  line-height: 1.5;
  cursor: pointer;
}

.booking_cancel_actions .booking_cancel_confirm {
  border-color: #ff5050;
  background: #ff5050;
  color: #fff;
}

.booking_cancel_error {
  color: #d52d2d;
  font-size: 14px;
  line-height: 1.5;
}

.search_mobile_enter .search_popup {
  animation: search_mobile_next .28s ease-out;
}

@keyframes search_mobile_next {
from {
  opacity: 0;
  transform: translateX(35px);
}

to {
  opacity: 1;
  transform: translateX(0);
}
}

html[dir="rtl"] .search_mobile_enter .search_popup {
  animation-name: search_mobile_next_rtl;
}

@keyframes search_mobile_next_rtl {
from {
  opacity: 0;
  transform: translateX(-35px);
}

to {
  opacity: 1;
  transform: translateX(0);
}
}

@media (prefers-reduced-motion:reduce) {.search_mobile_enter .search_popup {
  animation: none;
}}

.saved_trips_section .hotels_aside_right {
  max-width: none;
}

.saved_trips_section .hotels_aside_price [data-price-amount] {
  display: inline;
  font: inherit;
  color: inherit;
  white-space: normal;
}

.hotel_card_rating_text {
  min-width: 0;
}

.hotel_card_reviews {
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.4;
}

.currency_dropdown.locale_dialog {
  width: min(960px, calc(100vw - 40px));
  max-height: min(88dvh, 820px);
  padding: 28px;
}

.currency_description {
  margin: 0 0 18px;
  color: #6f6f6f;
  font-size: 13px;
  line-height: 1.6;
}

.currency_dropdown.locale_dialog .currency_options {
  max-height: 57dvh;
  display: block;
  overflow-y: auto;
}

.currency_section_title {
  margin: 18px 0 10px;
  font-size: 14px;
  color: #242a32;
}

.currency_section_title:first-child {
  margin-top: 0;
}

.currency_grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.currency_grid .currency_option {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 4px;
  min-width: 0;
  min-height: 70px;
  border-radius: 5px;
  padding: 12px 28px 12px 12px;
  text-align: start;
}

.currency_grid .currency_option .currency_name {
  flex: none;
  width: 100%;
  color: inherit;
  font-size: 13px;
  line-height: 1.4;
  white-space: normal;
}

.currency_grid .currency_code {
  color: #6f6f6f;
  font-size: 12px;
}

.currency_grid .currency_option[aria-selected="true"]::after {
  content: "✓";
  position: absolute;
  inset-inline-end: 10px;
  top: 24px;
  color: #4094fa;
}

.find_booking_button_cancel:not(:disabled):hover,
.find_booking_button_cancel:not(:disabled):focus-visible {
  background: #ed3e49;
  border-color: #ed3e49;
  color: #fff;
  box-shadow: 0 4px 14px #ed3e4926;
}

.support_contact_socials {
  display: flex;
  align-items: center;
  gap: 12px;
}

.support_contact_socials > :is(a, span) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  line-height: 0;
}

.support_contact_socials svg {
  display: block;
  width: 30px;
  height: 30px;
}

#hotelRooms .hotel_room_choice_item {
  display: flex;
  flex-wrap: nowrap;
  gap: 5px;
  overflow-wrap: normal;
  word-break: normal;
  align-items: flex-start;
}

#hotelRooms .hotel_room_choice_item .hotel_room_choice_text {
  display: block;
  flex: 1 1 auto;
  width: auto;
  min-width: 0;
  margin: 0;
  color: #317e29;
}

#hotelRooms .hotel_room_choice_text > span {
  display: inline;
  width: auto;
  margin: 0;
  color: inherit;
  overflow-wrap: normal;
}

#hotelRooms .hotel_room_choice_text > small {
  display: block;
  margin-top: 3px;
  color: #6f6f6f;
  font: inherit;
  font-size: 12px;
}

.search_city_result.is_selected {
  background: #edf5ff;
  box-shadow: inset 0 0 0 1px #4094fa;
  transform: scale(.98);
}

.search_city_result {
  transition: background .18s, transform .18s, box-shadow .18s;
}

@media (prefers-reduced-motion: reduce) {.search_city_result {
  transition: none;
}}

#hotelRooms .hotel_room_choice_item > span.hotel_room_choice_text:first-of-type {
  flex: 1 1 auto;
  display: block;
  width: auto;
  min-width: 0;
  margin: 0;
  color: #317e29;
}

html[data-site] .customer_google_stars, html[data-site] .customer_review_stars { color: #00a879; }
html[data-site] .customer_review_source { color: #08775b; font-size: 12px; font-weight: 600; }
html[data-site] .customer_review_title { font-size: 16px; margin: 18px 0 8px; }
html[data-site] .customer_review_reply { margin-top: 18px; padding: 16px; background: #f6f8fa; border-radius: 10px; }
html[data-site] .customer_review_reply p { margin-top: 8px; line-height: 1.6; }

.live_booking { border:1px solid #e1e5ea; border-radius:6px; padding:24px; margin:24px 0; font-family:Manrope,Arial,sans-serif; }
.live_booking h2 { font-size:23px; margin-bottom:12px; }
.live_booking p { font-size:13px; line-height:1.7; margin:10px 0; color:#788393; }
.live_booking_fields { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:20px 0; }
.live_booking label { display:flex; flex-direction:column; gap:7px; font-size:12px; color:#687386; }
.live_booking input { font:inherit; padding:12px; border:1px solid #dfe4eb; border-radius:4px; min-width:0; }
.live_booking button { background:#4094fa; color:white; padding:12px 22px; border:0; border-radius:4px; cursor:pointer; font:inherit; }
.live_booking button:disabled { opacity:.5; }
.live_booking_offer { display:flex; align-items:center; gap:20px; border-top:1px solid #e1e5ea; padding:22px 0; font-size:13px; }
.live_booking_offer>div { flex:1; min-width:0; overflow-wrap:anywhere; }
.live_booking_offer small { color:#788393; }
[data-live-original][hidden] { display:none!important; }
.lorvean_published_reviews { margin:32px 0; }
.lorvean_published_reviews h2 { font-size:24px; margin-bottom:20px; }
.lorvean_published_review { border:1px solid #e1e5ea; border-radius:6px; padding:20px; margin:14px 0; }
.lorvean_published_review span { display:block; color:#748096; margin:8px 0; font-size:13px; }
.lorvean_published_review p { line-height:1.7; white-space:pre-line; }
.booking_unavailable{padding:32px;border:1px solid #e1e5eb;border-radius:8px;background:#fff;line-height:1.7}
.booking_unavailable h2{font-size:24px;font-weight:500;margin:0 0 12px}
.booking_unavailable p{font-size:15px;color:#6f6f6f;margin:0 0 24px}
.booking_checkout_link{display:inline-flex;padding:12px 22px;background:#4094fa;color:#fff;border-radius:5px;text-decoration:none}
.hotel_room [data-live-original],.hotel_room_summary_slot[hidden]{display:none!important}

/* My bookings: the tab counters and the list stay hidden until the server has answered. */
.my_bookings_header_button[data-my-bookings-tab]:not([data-counted]) {
  color: transparent !important;
  -webkit-text-fill-color: transparent;
  border-radius: 6px;
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%);
  background-size: 200% 100%;
  animation: booking_placeholder 1.4s infinite;
  pointer-events: none;
  user-select: none;
}

.my_bookings_list[aria-busy="true"] > :not(.booking_list_skeleton) {
  display: none;
}

@media (prefers-reduced-motion: reduce) {
  .my_bookings_header_button[data-my-bookings-tab]:not([data-counted]) {
    animation: none;
  }
}

/* ==========================================================================
   Customer accounts: captcha, field errors, status messages, state screens
   (auth/*.html, footer newsletter form)
   ========================================================================== */
.auth_inner [hidden],
.auth_resend[hidden] {
  display: none !important;
}

/* The forms grew (captcha, consent): the page may now be taller than the screen. */
.auth {
  height: auto;
  min-height: 100vh;
  padding: 70px 0 40px;
  box-sizing: border-box;
}

.auth_forgot,
.auth_email_sent,
.auth_reset {
  height: auto;
  min-height: 100vh;
  padding: 70px 0 40px;
  box-sizing: border-box;
}

.auth_hp {
  position: absolute !important;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
}

.auth_error {
  color: #cf2a2f;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
  margin: 6px 0 0;
  text-align: start;
}

.auth_input + .auth_error {
  margin: -20px 0 14px;
}

.auth_check + .auth_error {
  margin: -6px 0 12px;
}

.auth_error + .auth_generate {
  margin-top: 8px;
}

.auth_input input[aria-invalid="true"],
.auth_recovery_form input[aria-invalid="true"],
.auth_captcha_input[aria-invalid="true"] {
  border-color: #cf2a2f;
}

.auth_input input[aria-invalid="true"]:focus,
.auth_recovery_form input[aria-invalid="true"]:focus,
.auth_captcha_input[aria-invalid="true"]:focus {
  border-color: #cf2a2f;
  box-shadow: 0 0 0 3px rgba(207, 42, 47, 0.12);
}

.auth_recovery_form label {
  display: block;
}

.auth_recovery_form input {
  box-sizing: border-box;
  font-size: 16px;
}

.auth_generate {
  display: block;
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  font-weight: 300;
  text-align: start;
}

.auth_generate:focus-visible,
.auth_link_button:focus-visible,
.auth_captcha_refresh:focus-visible,
.auth_recovery_button:focus-visible,
.auth_button:focus-visible,
.auth_check input:focus-visible {
  outline: 2px solid #2684f5;
  outline-offset: 3px;
}

.auth_message {
  margin: 15px 0 0;
  padding: 12px 14px;
  border-radius: 5px;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.5;
  text-align: start;
  overflow-wrap: anywhere;
}

.auth_message.is-error {
  background-color: #fff1f1;
  border: 1px solid #f4c7c9;
  color: #b4232a;
}

.auth_message.is-success {
  background-color: #eaf8f1;
  border: 1px solid #bfe6d2;
  color: #17734c;
}

.auth_message .auth_link_button {
  margin-top: 6px;
}

.auth_link_button {
  background: none;
  border: 0;
  padding: 0;
  font: inherit;
  color: #4094fa;
  cursor: pointer;
  text-decoration: underline;
}

.auth_button:disabled,
.auth_recovery_button:disabled {
  opacity: 0.65;
  cursor: progress;
}

a.auth_recovery_button {
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  text-decoration: none;
  font-size: 16px;
}

a.auth_recovery_button.auth_button_secondary {
  background-color: #eaf3ff;
  color: #2f6fc3;
}

.auth_resend {
  margin-top: 10px;
}

/* captcha */
.auth_captcha {
  margin: 0 0 15px;
  text-align: start;
}

.auth_forg .auth_captcha,
.auth_resend .auth_captcha {
  margin-top: 20px;
}

.auth_captcha_hint {
  margin: 0 0 10px;
  font-size: 14px;
  font-weight: 300;
  color: #4e4e4e;
  line-height: 1.45;
}

.auth_captcha_row {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-bottom: 10px;
}

.auth_captcha_image {
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  height: 70px;
  object-fit: contain;
  box-sizing: border-box;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background: #f6f8fb;
  -webkit-user-select: none;
  user-select: none;
}

.auth_captcha:not(.is-ready) .auth_captcha_image,
.auth_captcha.is-loading .auth_captcha_image {
  opacity: 0.35;
}

.auth_captcha_refresh {
  flex: 0 0 55px;
  height: 70px;
  display: grid;
  place-items: center;
  padding: 0;
  box-sizing: border-box;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  background: transparent;
  color: #4e4e4e;
  cursor: pointer;
  transition: background-color 0.2s ease, color 0.2s ease;
}

.auth_captcha_refresh:hover {
  background-color: #e1dfdc;
  color: #000000;
}

.auth_captcha_refresh.is-spinning svg {
  animation: authSpin 0.6s ease-out;
}

.auth_captcha_input {
  width: 100%;
  height: 55px;
  box-sizing: border-box;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  padding: 0 15px;
  font-size: 16px;
  font-weight: 300;
  outline: none;
  transition: all 0.2s ease;
}

.auth_captcha_input:focus {
  border-color: #2684f5;
}

.auth_captcha_input:not(:placeholder-shown) {
  text-transform: uppercase;
  letter-spacing: 0.14em;
}

.auth_captcha .auth_error {
  margin: 6px 0 0;
}

html[dir="rtl"] .auth_captcha_input:not(:placeholder-shown) {
  direction: ltr;
  text-align: start;
}

/* consent checkboxes */
.auth_check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0 0 12px;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.45;
  color: #4e4e4e;
  text-align: start;
}

.auth_check label {
  cursor: pointer;
  min-width: 0;
}

.auth_check a {
  color: #4094fa;
  text-decoration: none;
}

.auth_check a:hover {
  text-decoration: underline;
}

.auth_check input {
  flex: 0 0 20px;
  width: 20px;
  height: 20px;
  margin: 0;
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  background-color: #ffffff;
  border: 1px solid #b9b9b9;
  border-radius: 5px;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 0px;
  transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease,
    background-size 0.2s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.auth_check input:hover {
  border-color: #4094fa;
  box-shadow: 0 0 0 3px rgba(64, 148, 250, 0.08);
}

.auth_check input:checked {
  background-color: #4094fa;
  border-color: #4094fa;
  background-image: url("data:image/svg+xml,%3Csvg width='14' height='14' viewBox='0 0 14 14' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M3 7.2L5.6 9.7L11 4.3' stroke='white' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-size: 14px;
}

.auth_check input[aria-invalid="true"] {
  border-color: #cf2a2f;
}

/* state screens (verify, newpass, newsletter) */
.auth_inner > div[data-state] {
  text-align: center;
}

.auth_inner > div[data-state] form,
.auth_inner > div[data-state] .auth_resend {
  text-align: start;
}

.auth_icon.is-success {
  background-color: #eaf8f1;
}

.auth_icon.is-error {
  background-color: #fff1f1;
}

.auth_spinner {
  display: block;
  width: 30px;
  height: 30px;
  border: 3px solid #cfe2fc;
  border-top-color: #4094fa;
  border-radius: 50%;
  animation: authSpin 0.8s linear infinite;
}

.auth_recovery_title:focus {
  outline: none;
}

.auth_recovery_checkemail {
  unicode-bidi: isolate;
  overflow-wrap: anywhere;
}

@keyframes authSpin {
  to {
    transform: rotate(360deg);
  }
}

@media (prefers-reduced-motion: reduce) {
  .auth_spinner,
  .auth_captcha_refresh.is-spinning svg {
    animation-duration: 2s;
  }
}

@media (max-width: 900px) {
  .auth_input + .auth_error {
    margin: -4px 0 0;
  }

  .auth_check + .auth_error {
    margin: -6px 0 0;
  }

  .auth_error + .auth_generate {
    margin-top: 0;
  }

  .auth_captcha {
    margin: 0;
  }

  .auth_forg .auth_captcha,
  .auth_resend .auth_captcha {
    margin-top: 16px;
  }

  .auth_captcha_input {
    height: 48px;
    padding: 0 14px;
  }

  .auth_check {
    margin: 0;
  }

  .auth_captcha_image {
    height: 62px;
  }

  .auth_captcha_refresh {
    height: 62px;
    flex-basis: 48px;
  }

  a.auth_recovery_button {
    height: 48px;
    margin-top: 20px;
  }
}

/* footer newsletter form */
.newsletter_status {
  margin: 12px 0 0;
  min-height: 0;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  text-align: start;
}

.newsletter_status:empty {
  display: none;
}

.newsletter_status.is-success {
  color: #17734c;
}

.newsletter_status.is-error {
  color: #b4232a;
}

.newsletter_input input[aria-invalid="true"] {
  border-color: #b4232a;
}

.newsletter_button:disabled {
  opacity: 0.65;
  cursor: progress;
}

.newsletter_checkbox input[aria-invalid="true"] {
  border-color: #b4232a;
}

.newsletter_checkbox input:focus-visible {
  outline: 2px solid #2684f5;
  outline-offset: 2px;
}
.auth_generate + .auth_captcha {
  margin-top: 18px;
}

@media (max-width: 900px) {
  .auth_generate + .auth_captcha {
    margin-top: 0;
  }
}

.auth_forg_link + .auth_captcha {
  margin-top: 16px;
}

/* RTL: the password eye sits on the inline-end side */
html[dir="rtl"] .auth_eye {
  right: auto;
  left: 15px;
}

html[dir="rtl"] .auth_input:has(.auth_eye) input,
html[dir="rtl"] .auth_recovery_password input {
  padding-right: 15px;
  padding-left: 60px;
}

@media (max-width: 900px) {
  html[dir="rtl"] .auth_eye {
    right: auto;
    left: 4px;
  }

  html[dir="rtl"] .auth_input:has(.auth_eye) input,
  html[dir="rtl"] .auth_recovery_password input {
    padding-right: 14px;
    padding-left: 56px;
  }
}

/* --------------------------------------------------------------------
   Tour detail (tours?tour=<id>) — the selected tour from the catalogue.
   -------------------------------------------------------------------- */
.tour_detail {
  max-width: 1440px;
  margin: auto;
  padding: 0 50px;
  margin-top: 20px;
}

.tour_detail_back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #6b7280;
  font-size: 16px;
  font-weight: 300;
  margin-bottom: 18px;
}

.tour_detail_back:hover {
  color: #4094fa;
}

.tour_detail_head {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}

.tour_detail_media img {
  width: 100%;
  height: 420px;
  object-fit: cover;
  border-radius: 5px;
  display: block;
}

.tour_detail_place {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 18px;
  font-weight: 300;
  color: #6b7280;
}

.tour_detail_place img {
  width: 22px;
  height: 16px;
  object-fit: cover;
  border-radius: 2px;
}

.tour_detail_body h1 {
  font-size: 40px;
  font-weight: 500;
  color: #000000;
  margin-top: 6px;
}

.tour_detail_info {
  font-size: 18px;
  font-weight: 300;
  color: #6b7280;
  margin-top: 6px;
}

.tour_detail_desc {
  font-size: 18px;
  font-weight: 300;
  color: #363636;
  line-height: 1.55;
  margin-top: 18px;
  white-space: pre-line;
}

.tour_detail_body h2 {
  font-size: 20px;
  font-weight: 500;
  color: #000000;
  margin-top: 26px;
}

.tour_detail_includes {
  margin-top: 12px;
  display: grid;
  gap: 8px;
}

.tour_detail_includes li {
  list-style: none;
  font-size: 16px;
  font-weight: 300;
  color: #363636;
  padding-left: 22px;
  position: relative;
}

.tour_detail_includes li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #4094fa;
}

.tour_detail_price {
  margin-top: 30px;
  flex-wrap: wrap;
  gap: 16px;
}

.tour_detail_enquire {
  font-size: 16px;
  font-weight: 300;
  color: #6b7280;
  text-decoration: underline;
}

.tour_detail_enquire:hover {
  color: #4094fa;
}

.tour_detail_itinerary {
  margin-top: 45px;
  border: 1px solid #e1dfdc;
  border-radius: 5px;
  padding: 35px;
}

.tour_detail_itinerary h2 {
  font-size: 24px;
  font-weight: 500;
  color: #000000;
}

.tour_detail_itinerary p {
  margin-top: 16px;
  font-size: 16px;
  font-weight: 300;
  color: #363636;
  line-height: 1.6;
  white-space: pre-line;
}

@media (max-width: 900px) {
  .tour_detail {
    padding: 0 16px;
  }

  .tour_detail_head {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .tour_detail_media img {
    height: 260px;
  }

  .tour_detail_body h1 {
    font-size: 30px;
  }

  .tour_detail_itinerary {
    padding: 20px;
  }
}

/* === site-forms (2026-10-17) === */
/* Keep the spam trap clipped in place; off-screen left offsets expand RTL pages. */
.lv_form_trap {
  position: absolute !important;
  left: auto !important;
  inset-inline-start: 0 !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  clip-path: inset(50%);
  white-space: nowrap;
  pointer-events: none;
}

.lv_form_error {
  display: block;
  flex-basis: 100%;
  width: 100%;
  margin: 6px 0 0;
  color: #d93025;
  font-size: 13px;
  font-weight: 400;
  line-height: 1.4;
}

.support_contact_left_input .lv_form_error {
  margin: -9px 0 12px;
}

.lv_field_invalid.partner_agreement,
.lv_field_invalid.booking_checkbox,
.lv_field_invalid.feedback_agreement {
  flex-wrap: wrap;
}

.lv_field_invalid.partner_agreement > .partner_agreement_text,
.lv_field_invalid.booking_checkbox > label,
.lv_field_invalid.feedback_agreement > label {
  flex: 1 1 0;
  min-width: 0;
}

.lv_field_invalid > input:not([type="checkbox"]):not([type="radio"]),
.lv_field_invalid > textarea,
.lv_field_invalid > select,
.lv_field_invalid .partner_select_trigger,
.lv_field_invalid .faq_input input,
.lv_field_invalid input[aria-invalid="true"]:not([type="checkbox"]):not([type="radio"]),
.lv_field_invalid textarea[aria-invalid="true"] {
  border-color: #d93025 !important;
}

.lv_field_invalid input[type="checkbox"][aria-invalid="true"] {
  outline: 2px solid rgba(217, 48, 37, 0.45);
  outline-offset: 2px;
}

.lv_form_status,
.partner_form_message.lv_form_status {
  margin: 14px 0 0;
  padding: 12px 14px;
  border-radius: 5px;
  font-size: 15px;
  line-height: 1.45;
}

.lv_form_status[hidden] {
  display: none;
}

.lv_form_status.is_success {
  color: #145c2c;
  background: #e8f6ec;
  border: 1px solid #bfe3c9;
}

.lv_form_status.is_error {
  color: #a1261d;
  background: #fdeeed;
  border: 1px solid #f5c6c2;
}

.lv_form_status.is_pending:empty {
  display: none;
}

button.lv_is_sending {
  cursor: progress !important;
  opacity: 0.75;
}

.feedback_contact_grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 15px;
}

.feedback_contact_item {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: #6f6f6f;
  font-size: 14px;
  font-weight: 300;
}

.feedback_contact_item > input {
  flex: none;
}

@media (max-width: 640px) {
  .feedback_contact_grid {
    grid-template-columns: minmax(0, 1fr);
  }
}
/* === end site-forms === */

/* === help-centre (2026-10-17) === */
/* A Help Centre link with #topic=, #article= or #search= shows a skeleton of
   the answers list until support.js has rendered it (no home → panel jump). */
.support_panel_skeleton {
  display: none;
}

html.support_hash_pending .support_panel_skeleton {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: 26px;
}

html.support_hash_pending :is(.support_topics, .support_popular) {
  display: none;
}

.support_panel_skeleton b {
  position: relative;
  display: block;
  height: 58px;
  overflow: hidden;
  border-radius: 5px;
  background: #e9eaec;
}

.support_panel_skeleton b::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-105%);
  background: linear-gradient(100deg, transparent 20%, rgba(255, 255, 255, 0.78) 48%, transparent 76%);
  animation: support_skeleton_sweep 1.45s ease-in-out infinite;
}

.support_panel_skeleton .sps_title {
  width: min(320px, 70%);
  height: 30px;
}

.support_panel_skeleton .sps_count {
  width: 120px;
  height: 14px;
  margin-bottom: 14px;
}

@media (prefers-reduced-motion: reduce) {
  .support_panel_skeleton b::after {
    animation: none;
  }
}
/* === end help-centre === */

/* === site-chrome (2026-10-17) === */
/* Loading screen (js/i18n.js shows it on every page load): the spinner only
   fades in when loading takes a moment, so quick loads show a plain fade. */
html.i18n_loading:not(.i18n_revealing)::after {
  animation: locale_spin .7s linear infinite, site_preloader_in .25s ease-out .2s backwards;
}

@keyframes site_preloader_in {
  from {
    opacity: 0;
  }
}

@keyframes site_chrome_shimmer {
  from {
    background-position: 100% 0;
  }

  to {
    background-position: -100% 0;
  }
}

/* Footer region while the visitor's country is being detected. */
.region_skeleton,
.region_country_skeleton i {
  display: block;
  border-radius: 4px;
  background: linear-gradient(105deg, transparent 32%, rgba(255, 255, 255, .75) 48%, transparent 64%) #dde6f0;
  background-size: 220% 100%;
  animation: site_chrome_shimmer 1.15s ease-in-out infinite;
}

.region_current .region_skeleton {
  width: 150px;
  max-width: 100%;
  height: 14px;
}

/* "Choose your region": rows shown while the country list loads. */
.region_country_skeleton {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
}

.region_country_skeleton i:first-child {
  flex: 0 0 26px;
  height: 20px;
}

.region_country_skeleton i:last-child {
  width: 46%;
  height: 12px;
}

.region_country_skeleton:nth-child(3n+2) i:last-child {
  width: 34%;
}

.region_country_skeleton:nth-child(3n) i:last-child {
  width: 58%;
}

/* Newsletter e-mail field: the smooth focus animation of the site's inputs. */
.newsletter_input input {
  transition: border-color .25s ease, box-shadow .25s ease, background-color .25s ease;
}

.newsletter_input input:hover {
  border-color: #b8c4d2;
}

.newsletter_input input:focus {
  border-color: #2684f5;
  box-shadow: 0 0 0 4px rgba(38, 132, 245, .14);
}

.newsletter_input input[aria-invalid="true"],
.newsletter_input input[aria-invalid="true"]:hover {
  border-color: #b4232a;
}

.newsletter_input input[aria-invalid="true"]:focus {
  border-color: #b4232a;
  box-shadow: 0 0 0 4px rgba(180, 35, 42, .12);
}

@media (prefers-reduced-motion: reduce) {
  html.i18n_loading:not(.i18n_revealing)::after {
    animation: locale_spin 1.4s linear infinite;
  }

  .region_skeleton,
  .region_country_skeleton i {
    animation: none;
  }

  .newsletter_input input {
    transition: none;
  }
}
/* === end site-chrome === */

/* === home: search form, popular hotels, last-minute tours (2026-10-17) === */
/* Line boxes that do not depend on which font is loaded yet: the hero texts
   and the search form keep their exact size and position from the first
   paint (fallback font) to the web font (font-display: swap). The values are
   what "normal" resolved to with Montserrat / Manrope. */
.hero_text_title,
.hero_text,
.hero_text_desc {
  line-height: 1.22;
}

.search_text p {
  line-height: 1.7;
}

.search_text h1 {
  line-height: 1.65;
}

/* The destination value is clipped the same way before and after search.js
   starts (the script only adds data-search-value). */
.search_form:not(.search_form_compact) #destinationValue {
  display: block;
  width: 132px;
  max-width: 132px;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

/* Most popular hotels: skeleton cards in the exact card layout while the
   supplier list loads. */
.hotels_skeleton {
  pointer-events: none;
}

.hotels_skeleton_block {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  background: #e9edf2;
}

.hotels_skeleton_block::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, 0.78) 48%, transparent 68%);
  transform: translateX(-105%);
  animation: hotel_skeleton_sweep 1.2s ease-in-out infinite;
}

.hotels_skeleton .hotels_img .hotels_skeleton_media {
  width: 100%;
  height: 180px;
  border-radius: 5px;
}

.hotels_skeleton .hotels_aside_title {
  height: 1.4em;
  display: flex;
  align-items: center;
}

.hotels_skeleton .hotels_skeleton_title {
  width: 72%;
  height: 15px;
}

.hotels_skeleton .hotels_aside_count {
  align-items: center;
  min-height: 27px;
}

/* The rating's line box, fixed (it was "normal" = 27px with Manrope) so a
   card is as tall as its skeleton whichever font has loaded. */
.hotels_inner_flex .hotels_aside_review span {
  line-height: 1.69;
}

.hotels_skeleton .hotels_skeleton_flag {
  width: 20px;
  height: 20px;
  border-radius: 50%;
}

.hotels_skeleton .hotels_skeleton_country {
  width: 76px;
  height: 11px;
}

.hotels_skeleton .hotels_aside_price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 9px;
  padding-top: 5px;
}

.hotels_skeleton .hotels_aside_price .hotels_skeleton_price {
  width: 66px;
  height: 16px;
  margin: 0;
}

.hotels_skeleton .hotels_aside_price .hotels_skeleton_unit {
  width: 52px;
  height: 10px;
  margin: 0;
}

.hotels_inner_flex > .hotels_inner:not(.hotels_skeleton) {
  cursor: pointer;
}

.hotels_card_link {
  color: inherit;
  text-decoration: none;
}

.hotels_card_link:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
  border-radius: 3px;
}

@media (prefers-reduced-motion: reduce) {
  .hotels_skeleton_block::after {
    animation: none;
  }
}

/* Last-minute tours: one slide at a time. Every slide sits in the same grid
   cell, so the section is as tall as its tallest slide from the first paint
   and never changes height; only opacity/transform animate. */
.tours {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
}

.tours > .tours_body {
  grid-row: 1;
}

.tours > .tours_inner {
  grid-row: 2;
  grid-column: 1;
  touch-action: pan-y;
  opacity: 1;
  transform: translateX(0);
  transition: opacity 0.45s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0s;
}

.tours > .tours_inner:not(.is_active) {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateX(var(--tours-leave, 0));
  transition: opacity 0.3s ease, transform 0.5s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.5s;
}

.tours > .tours_inner.is_entering {
  opacity: 0;
  transform: translateX(var(--tours-enter, 0));
  transition: none;
}

.tours > .tours_carousel_nav {
  grid-row: 3;
}

.tours_carousel_nav {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 22px;
  margin-top: 44px;
}

.tours_carousel_nav[hidden] {
  display: none;
}

.tours_carousel_prev,
.tours_carousel_next {
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #afafaf;
  border-radius: 50%;
  background: #ffffff;
  color: #363636;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: border-color 0.2s ease, color 0.2s ease, transform 0.18s ease;
}

.tours_carousel_prev:hover,
.tours_carousel_next:hover {
  border-color: #4094fa;
  color: #4094fa;
}

.tours_carousel_prev:active {
  transform: translateX(-2px) scale(0.95);
}

.tours_carousel_next:active {
  transform: translateX(2px) scale(0.95);
}

.tours_carousel_prev:focus-visible,
.tours_carousel_next:focus-visible {
  outline: 3px solid rgba(64, 148, 250, 0.24);
  outline-offset: 3px;
  border-color: #4094fa;
}

.tours_carousel_counter {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-family: Montserrat, Arial, sans-serif;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  color: #363636;
  font-variant-numeric: tabular-nums;
}

.tours_carousel_line {
  width: 48px;
  height: 1px;
  background: #cfcfcf;
}

html[dir="rtl"] .tours_carousel_nav svg {
  transform: scaleX(-1);
}

@media (max-width: 820px) {
  .tours > .tours_inner {
    padding-bottom: 0;
    border-bottom: 0;
  }

  .tours_carousel_nav {
    margin-top: 28px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tours > .tours_inner,
  .tours > .tours_inner:not(.is_active) {
    transition: none;
    transform: none;
  }
}
/* === end home: search form, popular hotels, last-minute tours === */

/* === account pages: first paint (2026-10-17) === */
/* Until js/account.js knows the signed-in person, the bookings and what this
   browser saved, every place that shows them is a skeleton of the final size
   (the static HTML carries no demo values any more). */
@keyframes account_load_sweep {
  to {
    background-position-x: -200%;
  }
}

.account_section:not(.account_loaded) :is([data-account-name], [data-account-email], [data-account-firstname], [data-account-bookings], [data-account-saved], [data-account-departure], [data-account-date-label], [data-account-device], [data-account-devices], .account_avatar, .account_trip h3, .account_trip .account_badge, .account_trip .account_description, .account_trip_detail span, .account_trip_reference strong, .account_trip_image, .account_activity_pending :is(p, small, .account_activity_icon), .account_payment_card :is(h3, small, .account_card_brand), .account_traveller :is(h2, dd)),
.account_section [data-account-balance]:empty {
  color: transparent !important;
  border-color: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%) !important;
  background-repeat: repeat-x !important;
  background-size: 200% var(--account-skeleton-fill, 100%) !important;
  background-position-y: center !important;
  border-radius: 6px;
  animation: account_load_sweep 1.4s infinite;
}

.account_section:not(.account_loaded) .account_avatar {
  border-radius: 50% !important;
}

/* A line of text: as tall as the line it stands for (1lh), the bar drawn
   across the middle of it, so nothing moves when the words arrive. */
.account_section:not(.account_loaded) :is([data-account-name], [data-account-email], [data-account-bookings], [data-account-saved], [data-account-departure], [data-account-device], .account_trip h3, .account_trip .account_description, .account_trip_reference strong, .account_activity_pending :is(p, small), .account_payment_card :is(h3, small), .account_traveller :is(h2, dd)),
.account_section [data-account-balance]:empty {
  --account-skeleton-fill: 72%;
  display: block;
  height: 1lh;
  max-width: 100%;
}

.account_section:not(.account_loaded) :is([data-account-firstname], [data-account-date-label], [data-account-devices], .account_trip_detail span) {
  display: inline-block;
  height: 1em;
  vertical-align: -0.12em;
}

.account_section:not(.account_loaded) [data-account-name] { width: 8.5em; }
.account_section:not(.account_loaded) [data-account-email] { width: 12em; }
.account_section:not(.account_loaded) [data-account-firstname] { width: 4em; }
.account_section:not(.account_loaded) :is([data-account-bookings], [data-account-saved]) { width: 1em; }
.account_section [data-account-balance]:empty { width: 4.2em; }
.account_section:not(.account_loaded) [data-account-departure] { width: 10em; }
.account_section:not(.account_loaded) [data-account-date-label] { width: 6em; }
.account_section:not(.account_loaded) [data-account-device] { width: 9em; }
.account_section:not(.account_loaded) [data-account-devices] { width: 5em; }
.account_section:not(.account_loaded) .account_trip h3 { width: 9em; }
.account_section:not(.account_loaded) .account_trip .account_badge { width: 5.5em; height: 1.6em; }
.account_section:not(.account_loaded) .account_trip .account_description { width: 10em; }
.account_section:not(.account_loaded) .account_trip_detail span { width: 8em; }
.account_section:not(.account_loaded) .account_trip_reference strong { width: 5em; }
.account_section:not(.account_loaded) .account_activity_pending p { width: 11em; }
.account_section:not(.account_loaded) .account_activity_pending small { width: 7em; }
.account_section:not(.account_loaded) .account_payment_card h3 { width: 9em; }
.account_section:not(.account_loaded) .account_payment_card small { width: 6em; }
.account_section:not(.account_loaded) .account_traveller h2 { width: 8em; }
.account_section:not(.account_loaded) .account_traveller dd { width: 7em; }

/* A visitor without an e-mail address keeps the line, so the card does not
   shrink once the profile is known. */
.account_section .account_profile [data-account-email]:empty {
  display: block;
  height: 1lh;
}

/* Rows the script hides (other sessions, the verified badge, account meta)
   stay hidden whatever display the card styles give them. */
.account_section [hidden] {
  display: none !important;
}

/* A trip without a photo of its own keeps the frame as a neutral block. */
.account_section .account_trip_image:not([src]) {
  display: block;
  background-color: #eef2f7;
}

.account_section .account_table_empty {
  padding: 24px 12px;
  text-align: center;
  color: #818790;
}

@media (prefers-reduced-motion: reduce) {
  .account_section:not(.account_loaded) *,
  .account_section [data-account-balance]:empty {
    animation: none !important;
  }
}
/* === end account pages: first paint === */

/* === booking management: first paint (2026-10-17) === */
/* find-booking and change-dates are painted as skeletons of their final
   layout (find_booking_loading / change_date_loading) until js/app.js has the
   booking, instead of an empty page that later jumps into place. */
.find_booking_loading :is(.find_booking_hotel h1, .find_booking_hotel p, .find_booking_total strong, .find_booking_detail strong, .find_booking_image, [data-booking-cancel-hint]),
.change_date_loading :is(.change_date_hotel_image, .change_date_hotel_name, .change_date_hotel_location, .change_date_current_dates time, .change_date_detail span, [data-current-legend], .change_date_months) {
  color: transparent !important;
  visibility: visible !important;
  background-color: transparent !important;
  background-image: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%) !important;
  background-repeat: repeat-x !important;
  background-size: 200% var(--account-skeleton-fill, 100%) !important;
  background-position-y: center !important;
  border-radius: 6px;
  animation: account_load_sweep 1.4s infinite;
}

/* Text lines keep the height of the line they stand for (1lh). */
.find_booking_loading :is(.find_booking_hotel h1, .find_booking_hotel p, .find_booking_total strong, .find_booking_detail strong),
.change_date_loading :is(.change_date_hotel_name, .change_date_hotel_location) {
  --account-skeleton-fill: 72%;
  display: block;
  height: 1lh;
  max-width: 100%;
}

.find_booking_loading .find_booking_hotel h1 { width: 12em; }
.find_booking_loading .find_booking_hotel p { width: 14em; }
.find_booking_loading :is(.find_booking_total strong, .find_booking_detail strong) { width: 6em; }
.find_booking_loading [data-booking-cancel-hint] { --account-skeleton-fill: 80%; width: 100%; height: 2lh; }
.change_date_loading :is(.change_date_hotel_name, .change_date_hotel_location) { width: 9em; }
.change_date_loading .change_date_current_dates time { display: inline-block; width: 6em; height: 1em; vertical-align: middle; }
.change_date_loading .change_date_detail span { display: inline-block; width: 5em; height: 1em; }
.change_date_loading [data-current-legend] { display: inline-block; width: 8em; height: 1em; vertical-align: middle; }

/* Opened without ?reference= (flag from js/platform.js): the page can only
   show "booking not found", so that notice is painted at once - the same
   markup the script then puts in its place. */
[data-missing-reference] {
  display: none;
}

.booking_reference_missing :is(.find_booking_loading, .change_date_loading) [data-missing-reference] {
  display: block;
}

.booking_reference_missing .find_booking_loading > :not([data-missing-reference]),
.booking_reference_missing .change_date_loading :is(.change_date_header, [data-date-picker] > :not([data-missing-reference])) {
  display: none !important;
}

/* Two months of 5-6 weeks: the calendar keeps its height while it is built. */
.change_date_months:empty {
  min-height: 327px;
}

@media (max-width: 650px) {
  .change_date_months:empty {
    min-height: 674px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .find_booking_loading *,
  .change_date_loading * {
    animation: none !important;
  }
}
/* === end booking management: first paint === */

/* === tours page: first paint (2026-10-17) === */
/* The hot-deal cards come from the admin catalogue: until js/app.js has it
   they are skeletons of the final cards (no seeded offer, price or clock). */
.tours_deals_loading :is(.tours_deal_img > img, .tours_deal_name p, .tours_deal_name img, .tours_deal_desc, .tours_icon p, .tours_price_title, [data-offer-clock]) {
  color: transparent !important;
  background-color: transparent !important;
  background-image: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%) !important;
  background-repeat: repeat-x !important;
  background-size: 200% var(--account-skeleton-fill, 100%) !important;
  background-position-y: center !important;
  border-radius: 6px;
  animation: account_load_sweep 1.4s infinite;
}

/* Text lines keep the height of the line they stand for (1lh). */
.tours_deals_loading :is(.tours_deal_name p, .tours_deal_desc, .tours_price_title) {
  --account-skeleton-fill: 72%;
  height: 1lh;
}

.tours_deals_loading .tours_deal_name p { width: 6em; }
.tours_deals_loading .tours_deal_desc { width: 85%; }
.tours_deals_loading .tours_price_title { width: 4.5em; }
.tours_deals_loading [data-offer-clock] { display: inline-block; width: 4.5em; height: 1em; vertical-align: middle; }
.tours_deals_loading .tours_price_button { pointer-events: none; }

/* tours?tour=<id> (flag set by js/platform.js): the carousel only holds the
   place of the tour that replaces it. */
.tour_detail_view :is(.tours_deal_title, .tours_slider) {
  visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .tours_deals_loading * {
    animation: none !important;
  }
}
/* === end tours page: first paint === */

/* === saved trips: first paint (2026-10-17) === */
/* The number of saved stays is only known once js/app.js has read them: until
   then the title carries a skeleton instead of a made-up "(0)". */
.saved_trips_section:has(.booking_list_skeleton) .saved_trips_title::after {
  content: "";
  display: inline-block;
  width: 1.7em;
  height: 0.8em;
  margin-inline-start: 0.3em;
  vertical-align: baseline;
  border-radius: 6px;
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%);
  background-size: 200% 100%;
  animation: account_load_sweep 1.4s infinite;
}
/* Nothing saved in this browser (flag from js/platform.js): the empty notice
   is painted at once, with the markup the script then renders itself. */
[data-saved-empty] {
  display: none;
}

.saved_list_empty .hotels_inner_flex [data-saved-empty] {
  display: block;
}

.saved_list_empty .hotels_inner_flex .booking_list_skeleton {
  display: none;
}
/* === end saved trips: first paint === */
/* === reviews page: first paint (2026-10-17) === */
/* Until js/reviews.js has the rating source, the summary is a skeleton rather
   than "Rating unavailable" / "—" (the list already shows its placeholders). */
.customer_section_loading :is(.customer_google_rating_value, .customer_google_rating_max, .customer_google_based) {
  color: transparent !important;
  border-radius: 6px;
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%);
  background-size: 200% 100%;
  animation: account_load_sweep 1.4s infinite;
}
@media (prefers-reduced-motion: reduce) {
  .customer_section_loading * {
    animation: none !important;
  }
}
/* === end reviews page: first paint === */
/* === my bookings: first paint (2026-10-17) === */
/* No booking kept in this browser (flag from js/platform.js): the list
   skeleton has the size of the "no bookings" notice instead of a full card. */
.bookings_cache_empty .my_bookings_list > .booking_list_skeleton {
  min-height: calc(58px + 1lh);
}
/* === end my bookings: first paint === */
/* === lead: booking list & confirmation first paint (2026-10-17) === */
.visually_hidden_loading { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.booking_list_skeleton { display: flex; gap: 18px; align-items: center; padding: 18px; border: 1px solid #e6ebf2; border-radius: 16px; margin-bottom: 14px; }
.booking_list_skeleton .bls_photo { flex: 0 0 120px; height: 90px; border-radius: 12px; }
.booking_list_skeleton .bls_lines { flex: 1; display: grid; gap: 10px; }
.booking_list_skeleton .bls_lines i { display: block; height: 14px; border-radius: 7px; }
.booking_list_skeleton .bls_lines i:nth-child(1) { width: 55%; height: 18px; }
.booking_list_skeleton .bls_lines i:nth-child(2) { width: 75%; }
.booking_list_skeleton .bls_lines i:nth-child(3) { width: 35%; }
.booking_list_skeleton .bls_photo, .booking_list_skeleton .bls_lines i,
.booking_confirmation_flex[aria-busy="true"] :is(.booking_confirmation_title, .booking_confirmation_subtitle, #bookingReference) {
  background: linear-gradient(90deg, #eef2f7 25%, #f7f9fc 50%, #eef2f7 75%);
  background-size: 200% 100%;
  animation: booking_skeleton_wave 1.4s ease-in-out infinite;
}
.booking_confirmation_flex[aria-busy="true"] :is(.booking_confirmation_title, .booking_confirmation_subtitle, #bookingReference) {
  color: transparent !important; border-radius: 8px; user-select: none;
}
.booking_confirmation_flex[aria-busy="true"] .booking_confirmation_title { display: inline-block; min-width: 260px; }
.booking_confirmation_flex[aria-busy="true"] .booking_confirmation_subtitle { display: inline-block; min-width: 320px; max-width: 90%; }
.booking_confirmation_flex[aria-busy="true"] #bookingReference { display: inline-block; min-width: 150px; }
@media (prefers-reduced-motion: reduce) { .booking_list_skeleton *, .booking_confirmation_flex[aria-busy="true"] * { animation: none !important; } }
/* === end lead === */

/* === account area: dialogs, header account menu, saved trips, manage booking (2026-10-17) === */
:root {
  --lv-radius: 5px;
  --lv-ease-out: cubic-bezier(.2, .8, .2, 1);
  --lv-ease-in: cubic-bezier(.4, 0, 1, 1);
  --lv-modal-in: 240ms;
  --lv-modal-out: 180ms;
  --lv-pop-in: 160ms;
  --lv-pop-out: 120ms;
  --lv-shadow: 0 20px 50px rgba(15, 23, 42, .18);
  --lv-backdrop: rgba(15, 23, 42, .45);
}

/* --- Account dialogs (js/account.js LorveanAccountModal) ------------------ */
html[data-account] dialog.account_dialog.lv_modal {
  width: 520px;
  max-width: calc(100% - 32px);
  max-height: calc(100dvh - 48px);
  padding: 28px 28px 24px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  outline: none;
  background: #fff;
  color: #1f2937;
  box-shadow: var(--lv-shadow);
  overflow-y: auto;
  overscroll-behavior: contain;
  opacity: 0;
  transform: translateY(12px) scale(.98);
  transition: opacity var(--lv-modal-out) var(--lv-ease-in), transform var(--lv-modal-out) var(--lv-ease-in);
}

html[data-account] dialog.account_dialog.lv_modal.is_open {
  opacity: 1;
  transform: none;
  transition-duration: var(--lv-modal-in);
  transition-timing-function: var(--lv-ease-out);
}

html[data-account] dialog.account_dialog.lv_modal::backdrop {
  background: var(--lv-backdrop);
  backdrop-filter: blur(2px);
  opacity: 0;
  transition: opacity 200ms ease;
}

html[data-account] dialog.account_dialog.lv_modal.is_open::backdrop {
  opacity: 1;
}

html[data-account] dialog.account_dialog.lv_modal:focus,
html[data-account] dialog.account_dialog.lv_modal:focus-visible {
  outline: none;
}

html[data-account] .account_dialog.lv_modal h2 {
  margin: 0 0 6px;
  padding-right: 36px;
  font-size: 22px;
  line-height: 1.3;
  font-weight: 500;
  color: #111827;
}

html[data-account] .account_dialog.lv_modal .account_dialog_close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  border: 0;
  border-radius: var(--lv-radius);
  background: transparent;
  color: #6b7280;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease;
}

html[data-account] .account_dialog.lv_modal .account_dialog_close:hover {
  background: #f3f4f6;
  color: #111827;
}

html[data-account] .account_dialog.lv_modal .account_description {
  margin: 0;
  color: #6b7280;
  font-size: 14px;
  line-height: 1.6;
}

html[data-account] .account_dialog.lv_modal .account_form_grid {
  gap: 16px;
  margin-top: 18px;
}

html[data-account] .account_dialog.lv_modal .account_input > span {
  margin-bottom: 6px;
  color: #374151;
  font-size: 13px;
  font-weight: 500;
}

html[data-account] .account_dialog.lv_modal .account_input :is(input, select) {
  height: 46px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  padding: 0 14px;
  background-color: #fff;
  color: #111827;
  font: 400 14px/1.2 inherit;
  font-family: inherit;
  box-shadow: none;
  transition: border-color .15s ease, box-shadow .15s ease;
}

html[data-account] .account_dialog.lv_modal .account_input select {
  padding-right: 38px;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 14 14' fill='none'%3E%3Cpath d='M3 5.5L7 9.5L11 5.5' stroke='%236b7280' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 14px center;
}

html[data-account] .account_dialog.lv_modal .account_input :is(input, select):hover {
  border-color: #cbd5e1;
}

html[data-account] .account_dialog.lv_modal .account_input :is(input, select):focus,
html[data-account] .account_dialog.lv_modal .account_member_field:focus-within {
  border-color: #4096ff;
  box-shadow: 0 0 0 3px rgba(64, 150, 255, .15);
  outline: none;
}

html[data-account] .account_dialog.lv_modal :is(button, a, input, select):focus-visible {
  outline: 2px solid #4096ff;
  outline-offset: 2px;
}

html[data-account] .account_dialog.lv_modal .account_input :is(input, select):focus-visible {
  outline: none;
}

/* Date of birth: the native field, styled like the others. */
html[data-account] .account_dialog.lv_modal .account_input input[type="date"] {
  position: relative;
  display: flex;
  align-items: center;
  appearance: none;
  -webkit-appearance: none;
  min-height: 46px;
}

html[data-account] .account_dialog.lv_modal .account_input input[type="date"]::-webkit-datetime-edit {
  padding: 0;
  color: #111827;
}

html[data-account] .account_dialog.lv_modal .account_input input[type="date"]:invalid::-webkit-datetime-edit,
html[data-account] .account_dialog.lv_modal .account_input input[type="date"]:not(:focus):placeholder-shown::-webkit-datetime-edit {
  color: #9ca3af;
}

html[data-account] .account_dialog.lv_modal .account_input input[type="date"]::-webkit-calendar-picker-indicator {
  width: 18px;
  height: 18px;
  margin: 0 0 0 auto;
  padding: 0;
  opacity: 1;
  cursor: pointer;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2' stroke='%236b7280' stroke-width='1.5'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat center / 18px;
}

html[data-account] .account_dialog.lv_modal .account_actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

html[data-account] .account_dialog.lv_modal .account_actions .account_button {
  min-width: 120px;
  min-height: 44px;
  padding: 10px 22px;
  border-radius: var(--lv-radius);
  font-weight: 500;
}

html[data-account] .account_dialog.lv_modal .account_button[aria-busy="true"] {
  cursor: progress;
}

html[data-account] .account_dialog.lv_modal .account_error {
  margin: 14px 0 0;
  padding: 10px 12px;
  border: 1px solid #fecaca;
  border-radius: var(--lv-radius);
  background: #fef2f2;
  color: #b91c1c;
  font-size: 13px;
  line-height: 1.5;
}

html[data-account] .account_dialog.lv_modal .account_error[hidden] {
  display: none;
}

html[data-account] .account_dialog.lv_modal .account_form_note {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 16px 0 0;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.5;
}

html[data-account] .account_dialog.lv_modal .account_form_note svg {
  flex: none;
  margin-top: 1px;
  color: #9ca3af;
}

/* Confirmation states (password changed, reset link sent). */
html[data-account] .account_dialog.lv_modal .account_dialog_done {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-top: 14px;
}

html[data-account] .account_dialog.lv_modal .account_done_icon {
  flex: none;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef6ff;
  color: #2f80ed;
}

/* Find a LORVEAN member (Add traveller). */
html[data-account] .account_member {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  background: #f9fafb;
}

html[data-account] .account_member_label {
  display: block;
  margin-bottom: 8px;
  color: #111827;
  font-size: 14px;
  font-weight: 500;
}

html[data-account] .account_member_row {
  display: flex;
  gap: 8px;
}

html[data-account] .account_member_field {
  flex: 1;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 8px;
  height: 46px;
  padding: 0 12px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  background: #fff;
  color: #9ca3af;
  transition: border-color .15s ease, box-shadow .15s ease;
}

html[data-account] .account_member_field input {
  flex: 1;
  min-width: 0;
  height: 100%;
  border: 0;
  outline: none;
  background: transparent;
  color: #111827;
  font: 400 14px inherit;
  font-family: inherit;
}

html[data-account] .account_member_field input:focus-visible {
  outline: none;
}

html[data-account] .account_member_field:has(input:disabled) {
  background: #f3f4f6;
}

html[data-account] .account_dialog.lv_modal .account_member_find {
  flex: none;
  min-width: 88px;
  min-height: 46px;
  padding: 0 18px;
  border-radius: var(--lv-radius);
  font-weight: 500;
}

html[data-account] .account_member[aria-busy="true"] .account_member_find {
  color: transparent;
  position: relative;
}

html[data-account] .account_member[aria-busy="true"] .account_member_find::after {
  content: "";
  position: absolute;
  inset: 0;
  margin: auto;
  width: 16px;
  height: 16px;
  border: 2px solid #cbd5e1;
  border-top-color: #4096ff;
  border-radius: 50%;
  animation: lv_spin .7s linear infinite;
}

@keyframes lv_spin {
  to { transform: rotate(360deg); }
}

html[data-account] .account_member_status {
  margin: 8px 0 0;
  color: #6b7280;
  font-size: 12.5px;
  line-height: 1.5;
}

html[data-account] .account_member_status[data-tone="error"] {
  color: #b91c1c;
}

html[data-account] .account_member_status[data-tone="ok"] {
  color: #047857;
}

html[data-account] .account_member_card {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #dbeafe;
  border-radius: var(--lv-radius);
  background: #fff;
  animation: lv_pop_in var(--lv-pop-in) var(--lv-ease-out);
}

html[data-account] .account_member_card[hidden] {
  display: none;
}

html[data-account] .account_member_avatar {
  flex: none;
  width: 40px;
  height: 40px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef6ff;
  color: #2f80ed;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
}

html[data-account] .account_member_who {
  flex: 1;
  min-width: 0;
  display: grid;
  gap: 2px;
}

html[data-account] .account_member_who strong {
  color: #111827;
  font-size: 14px;
  font-weight: 600;
}

html[data-account] .account_member_who small {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #2f80ed;
  font-size: 12px;
}

html[data-account] .account_member_clear {
  flex: none;
  border: 0;
  background: none;
  color: #6b7280;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
  padding: 6px;
  border-radius: var(--lv-radius);
}

html[data-account] .account_member_clear:hover {
  color: #111827;
  background: #f3f4f6;
}

html[data-account] .account_member_divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 18px 0 0;
  color: #9ca3af;
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

html[data-account] .account_member_divider::before,
html[data-account] .account_member_divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: #e5e7eb;
}

html[data-account] .account_member + .account_member_divider + .account_traveller_form .account_form_grid {
  margin-top: 14px;
}

/* Change password: one column, show/hide toggles, strength hint. */
html[data-account] .account_dialog.lv_modal:has(.account_password_form) {
  width: 460px;
}

html[data-account] .account_password_form > .account_description {
  margin-top: 2px;
}

html[data-account] .account_password_fields {
  display: grid;
  gap: 14px;
  margin-top: 20px;
}

html[data-account] .account_password_wrap {
  position: relative;
  display: block;
}

html[data-account] .account_dialog.lv_modal .account_password_wrap input {
  padding-right: 48px;
}

html[data-account] .account_password_toggle {
  position: absolute;
  top: 50%;
  right: 6px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  transform: translateY(-50%);
  border: 0;
  border-radius: var(--lv-radius);
  background: transparent;
  color: #6b7280;
  cursor: pointer;
}

html[data-account] .account_password_toggle:hover {
  background: #f3f4f6;
  color: #111827;
}

html[data-account] .account_password_toggle .eye_closed,
html[data-account] .account_password_toggle[aria-pressed="true"] .eye_open {
  display: none;
}

html[data-account] .account_password_toggle[aria-pressed="true"] .eye_closed {
  display: block;
}

html[data-account] .account_password_forgot {
  display: flex;
  justify-content: flex-end;
  margin-top: -8px;
}

html[data-account] .account_password_forgot .account_link {
  border: 0;
  background: none;
  padding: 2px 0;
  color: #2f80ed;
  font: inherit;
  font-size: 13px;
  cursor: pointer;
}

html[data-account] .account_password_forgot .account_link:hover {
  text-decoration: underline;
}

html[data-account] .account_password_forgot .account_link:disabled {
  opacity: .6;
  cursor: progress;
}

html[data-account] .account_strength {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 18px;
  margin-top: -6px;
}

html[data-account] .account_strength_bars {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 4px;
  width: 120px;
}

html[data-account] .account_strength_bars i {
  height: 4px;
  border-radius: 2px;
  background: #e5e7eb;
  transition: background-color .2s ease;
}

html[data-account] .account_strength_text {
  color: #6b7280;
  font-size: 12px;
}

html[data-account] .account_strength[data-strength="0"] {
  visibility: hidden;
}

html[data-account] .account_strength[data-strength="1"] .account_strength_bars i:nth-child(-n+1) { background: #ef4444; }
html[data-account] .account_strength[data-strength="2"] .account_strength_bars i:nth-child(-n+2) { background: #f59e0b; }
html[data-account] .account_strength[data-strength="3"] .account_strength_bars i:nth-child(-n+3) { background: #4096ff; }
html[data-account] .account_strength[data-strength="4"] .account_strength_bars i { background: #10b981; }

/* Phones: dialogs become bottom sheets. */
@media (max-width: 640px) {
  html[data-account] dialog.account_dialog.lv_modal {
    width: 100%;
    max-width: 100%;
    max-height: calc(100dvh - 24px);
    margin: auto 0 0;
    padding: 22px 18px calc(18px + env(safe-area-inset-bottom));
    border-width: 1px 0 0;
    border-radius: var(--lv-radius) var(--lv-radius) 0 0;
    transform: translateY(100%);
    transition: opacity var(--lv-modal-out) var(--lv-ease-in), transform var(--lv-modal-out) var(--lv-ease-in);
  }

  html[data-account] dialog.account_dialog.lv_modal.is_open {
    transform: none;
    transition-duration: 280ms;
  }

  html[data-account] dialog.account_dialog.lv_modal::before {
    content: "";
    display: block;
    width: 36px;
    height: 4px;
    margin: -10px auto 14px;
    border-radius: 2px;
    background: #e5e7eb;
  }

  html[data-account] .account_dialog.lv_modal h2 {
    margin-left: 0;
    font-size: 20px;
  }

  html[data-account] .account_dialog.lv_modal .account_dialog_close {
    top: 16px;
    right: 12px;
  }

  html[data-account] .account_dialog.lv_modal .account_form_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  html[data-account] .account_dialog.lv_modal .account_actions {
    flex-direction: column-reverse;
  }

  html[data-account] .account_dialog.lv_modal .account_actions .account_button {
    width: 100%;
  }

  html[data-account] .account_member {
    padding: 14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html[data-account] dialog.account_dialog.lv_modal,
  html[data-account] dialog.account_dialog.lv_modal.is_open {
    transform: none;
    transition: opacity 120ms linear;
  }

  html[data-account] .account_member_card {
    animation: none;
  }
}

/* --- Header panels (favourites / account) -------------------------------- */
@keyframes lv_pop_in {
  from { opacity: 0; transform: translateY(-4px); }
}

.nav_panel {
  border-radius: var(--lv-radius);
  border-color: #e5e7eb;
  box-shadow: var(--lv-shadow);
  animation: none;
  opacity: 0;
  transform: translateY(-4px);
  transition: opacity var(--lv-pop-out) var(--lv-ease-in), transform var(--lv-pop-out) var(--lv-ease-in);
}

.nav_panel.is_open {
  opacity: 1;
  transform: none;
  transition-duration: var(--lv-pop-in);
  transition-timing-function: var(--lv-ease-out);
}

.nav_panel.is_closing {
  pointer-events: none;
}

.nav_panel :is(.lux_button) {
  border-radius: var(--lv-radius);
}

/* Signed-in account menu. */
.nav_panel.nav_panel_account {
  width: 288px;
  padding: 8px;
}

.nav_panel_account .account_menu_head {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 10px 14px;
  margin-bottom: 6px;
  border-bottom: 1px solid #eef0f3;
}

.nav_panel_account .account_menu_avatar {
  flex: none;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  overflow: hidden;
  border-radius: 50%;
  background: #eef6ff;
  color: #2f80ed;
  font: 600 15px/1 Manrope, Arial, sans-serif;
  letter-spacing: .02em;
}

.nav_panel_account .account_menu_avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.nav_panel_account .account_menu_who {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.nav_panel_account .account_menu_who strong {
  overflow: hidden;
  color: #111827;
  font: 600 15px/1.3 Manrope, Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav_panel_account .account_menu_who small {
  overflow: hidden;
  color: #6b7280;
  font: 400 13px/1.3 Manrope, Arial, sans-serif;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.nav_panel_account .account_menu_links {
  display: grid;
  gap: 1px;
  padding-bottom: 6px;
  margin-bottom: 6px;
  border-bottom: 1px solid #eef0f3;
}

.nav_panel_account .account_menu_link {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 40px;
  padding: 8px 10px;
  border: 0;
  border-radius: var(--lv-radius);
  background: transparent;
  color: #1f2937;
  font: 400 14px/1.3 Manrope, Arial, sans-serif;
  text-align: start;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .12s ease, color .12s ease;
}

.nav_panel_account .account_menu_link svg {
  flex: none;
  color: #6b7280;
  transition: color .12s ease;
}

.nav_panel_account .account_menu_link:hover,
.nav_panel_account .account_menu_link:focus-visible {
  background: #f3f6fa;
  color: #111827;
  outline: none;
}

.nav_panel_account .account_menu_link:hover svg,
.nav_panel_account .account_menu_link[aria-current="page"] svg {
  color: #2f80ed;
}

.nav_panel_account .account_menu_link[aria-current="page"] {
  color: #2f80ed;
}

.nav_panel_account .account_menu_logout {
  color: #b42318;
}

.nav_panel_account .account_menu_logout svg {
  color: #d92d20;
}

.nav_panel_account .account_menu_logout:hover,
.nav_panel_account .account_menu_logout:focus-visible {
  background: #fef3f2;
  color: #b42318;
}

.nav_panel_account .account_menu_logout:hover svg {
  color: #d92d20;
}

.nav_panel_account .account_menu_logout:disabled {
  opacity: .6;
  cursor: progress;
}

/* While user_me is still on its way: the same frame, as a skeleton. */
.nav_panel_pending :is(.account_menu_avatar, .account_menu_who i, .account_menu_links i) {
  background: linear-gradient(100deg, #eceff3 15%, #f6f7f9 35%, #eceff3 55%) 0 0 / 200% 100%;
  animation: account_load_sweep 1.4s infinite;
}

.nav_panel_pending .account_menu_who {
  width: 100%;
  gap: 7px;
}

.nav_panel_pending .account_menu_who i {
  display: block;
  height: 12px;
  border-radius: 3px;
  width: 70%;
}

.nav_panel_pending .account_menu_who i + i {
  width: 90%;
  height: 10px;
}

.nav_panel_pending .account_menu_links {
  gap: 8px;
  padding: 8px 10px 12px;
  border-bottom: 0;
}

.nav_panel_pending .account_menu_links i {
  display: block;
  height: 24px;
  border-radius: var(--lv-radius);
}

@media (prefers-reduced-motion: reduce) {
  .nav_panel,
  .nav_panel.is_open {
    transform: none;
  }

  .nav_panel_pending :is(.account_menu_avatar, .account_menu_who i, .account_menu_links i) {
    animation: none;
  }
}

/* --- Saved trips: photo skeleton while a hotel's own photo is fetched ----- */
.saved_trips_section .hotels_img.saved_photo_pending {
  background: linear-gradient(100deg, #e8edf4 15%, #f5f7fa 35%, #e8edf4 55%) 0 0 / 200% 100%;
  animation: account_load_sweep 1.4s infinite;
}

.saved_trips_section .hotels_img.saved_photo_pending > img,
.saved_trips_section .hotels_img.saved_photo_pending .hotels_img_slider {
  visibility: hidden;
}

.saved_trips_section .hotels_img.saved_photo_none {
  background: #f1f4f8 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' viewBox='0 0 24 24' fill='none'%3E%3Cpath d='M4 20.5V6.5l8-3 8 3v14M2.5 20.5h19M9 20.5v-4h6v4M8 9h.01M12 9h.01M16 9h.01M8 12.5h.01M12 12.5h.01M16 12.5h.01' stroke='%23a3adbb' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat center;
}

.saved_trips_section .hotels_img.saved_photo_none > img,
.saved_trips_section .hotels_img.saved_photo_none .hotels_img_slider {
  visibility: hidden;
}

@media (prefers-reduced-motion: reduce) {
  .saved_trips_section .hotels_img.saved_photo_pending {
    animation: none;
  }
}

/* --- Manage booking (booking-managment/find-booking) ---------------------- */
section.find_booking {
  --fb-width: 880px;
  --fb-border: #e5e7eb;
  --fb-muted: #6b7280;
  color: #111827;
}

section.find_booking > :is(.find_booking_summary, .find_booking_actions, .find_booking_conditions, .pay_message) {
  width: min(var(--fb-width), 100%);
  max-width: 100%;
}

section.find_booking .find_booking_summary {
  margin-top: 24px;
  min-height: 0;
  padding: 20px;
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  border: 1px solid var(--fb-border);
  border-radius: var(--lv-radius);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

section.find_booking .find_booking_image {
  width: 100%;
  height: 100%;
  min-height: 190px;
  max-height: 230px;
  aspect-ratio: 4 / 3;
  flex: none;
  border-radius: var(--lv-radius);
  object-fit: cover;
  background: #eef2f6;
}

section.find_booking .find_booking_summary_top {
  min-height: 0;
  padding: 0 0 18px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px 24px;
  flex-wrap: wrap;
  border-bottom: 1px solid #eef0f3;
}

section.find_booking .find_booking_hotel h1 {
  font-size: 22px;
  line-height: 1.3;
  font-weight: 600;
  color: #111827;
}

section.find_booking .find_booking_hotel p {
  margin-top: 6px;
  color: var(--fb-muted);
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
}

section.find_booking .find_booking_hotel .pay_badge {
  margin-top: 12px;
}

section.find_booking .find_booking_total {
  flex: 0 1 auto;
  text-align: end;
}

section.find_booking .find_booking_total span {
  color: var(--fb-muted);
  font-size: 13px;
  line-height: 1.4;
  font-weight: 400;
}

section.find_booking .find_booking_total strong {
  margin-top: 4px;
  font-size: clamp(22px, 2.2vw, 28px);
  line-height: 1.2;
  font-weight: 600;
  color: #111827;
}

section.find_booking .find_booking_details {
  min-height: 0;
  height: auto;
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

section.find_booking .find_booking_detail {
  min-width: 0;
  padding: 12px;
  display: flex;
  align-items: flex-start;
  gap: 10px;
  border: 0;
  border-radius: var(--lv-radius);
  background: #f8fafc;
}

section.find_booking .find_booking_detail + .find_booking_detail {
  border-left: 0;
}

section.find_booking .find_booking_detail > div {
  min-width: 0;
}

section.find_booking .find_booking_detail_icon {
  flex: none;
  margin-top: 1px;
  color: #2f80ed;
}

section.find_booking .find_booking_detail span {
  color: var(--fb-muted);
  font-size: 12.5px;
  line-height: 1.4;
  font-weight: 400;
}

section.find_booking .find_booking_detail strong {
  margin-top: 2px;
  font-size: 14.5px;
  line-height: 1.4;
  font-weight: 500;
  color: #111827;
  overflow-wrap: anywhere;
  white-space: normal;
}

section.find_booking .find_booking_summary .find_booking_details {
  grid-template-columns: minmax(0, 1fr) minmax(0, .72fr) minmax(0, 1.4fr);
}

section.find_booking .find_booking_detail_reference strong {
  font-size: 13.5px;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
}

section.find_booking .find_booking_facts {
  margin-top: 12px;
  border: 1px solid #eef0f3;
  border-radius: var(--lv-radius);
}

section.find_booking .find_booking_actions {
  margin-top: 20px;
  min-height: 0;
  padding: 24px;
  border: 1px solid var(--fb-border);
  border-radius: var(--lv-radius);
  background: #fff;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
}

section.find_booking .find_booking_actions h2 {
  font-size: 18px;
  line-height: 1.35;
  font-weight: 600;
  color: #111827;
}

section.find_booking .find_booking_actions_grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

section.find_booking .find_booking_action {
  min-width: 0;
  padding: 18px;
  display: flex;
  flex-direction: column;
  border: 1px solid #eef0f3;
  border-radius: var(--lv-radius);
  background: #fbfcfd;
}

section.find_booking .find_booking_action_change,
section.find_booking .find_booking_action_cancel {
  padding: 18px;
  border-left: 1px solid #eef0f3;
}

section.find_booking .find_booking_action_info {
  min-height: 0;
  flex: 1;
  display: flex;
  align-items: flex-start;
  gap: 14px;
}

section.find_booking .find_booking_action_icon {
  flex: none;
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #eef6ff;
  color: #2f80ed;
}

section.find_booking .find_booking_action_cancel .find_booking_action_icon {
  background: #fef3f2;
  color: #d92d20;
}

section.find_booking .find_booking_action h3 {
  font-size: 16px;
  line-height: 1.35;
  font-weight: 600;
  color: #111827;
}

section.find_booking .find_booking_action p {
  margin-top: 4px;
  color: var(--fb-muted);
  font-size: 13.5px;
  line-height: 1.5;
  font-weight: 400;
  white-space: normal;
}

section.find_booking .find_booking_button {
  width: 100%;
  min-height: 46px;
  height: auto;
  margin-top: 18px;
  padding: 11px 16px;
  border-radius: var(--lv-radius);
  font: 500 15px/1.3 Manrope, Arial, sans-serif;
}

section.find_booking .find_booking_button_cancel {
  color: #d92d20;
  border-color: #f4b4ae;
  background: #fff;
}

section.find_booking .find_booking_button_cancel:hover {
  color: #fff;
  border-color: #d92d20;
  background: #d92d20;
}

section.find_booking .find_booking_conditions {
  margin-top: 20px;
  padding: 0 4px;
}

section.find_booking .find_booking_conditions p {
  color: var(--fb-muted);
  font-size: 14px;
}

section.find_booking .find_booking_conditions a {
  gap: 10px;
  margin-top: 10px;
  font-size: 14.5px;
  font-weight: 500;
  color: #2f80ed;
}

section.find_booking .find_booking_conditions a svg {
  transition: transform .15s ease;
}

section.find_booking .find_booking_conditions a:hover svg {
  transform: translateX(3px);
}

section.find_booking.find_booking_loading .find_booking_detail_icon {
  visibility: hidden;
}

@media (max-width: 760px) {
  section.find_booking .find_booking_summary {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
    padding: 14px;
  }

  section.find_booking .find_booking_image {
    max-height: 200px;
    min-height: 160px;
    aspect-ratio: 16 / 9;
  }

  section.find_booking .find_booking_summary_top {
    flex-direction: column;
  }

  section.find_booking .find_booking_total {
    text-align: start;
  }

  section.find_booking .find_booking_summary .find_booking_details {
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  section.find_booking .find_booking_actions {
    padding: 18px 14px;
  }

  section.find_booking .find_booking_actions_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }
}

@media (max-width: 640px) {
  section.find_booking {
    padding: 0 16px;
  }
}
/* === end account area === */

/* === tours (2026-10-17) === */
:root {
  --lv-radius: 5px;
  --lv-ease-out: cubic-bezier(.2, .8, .2, 1);
  --lv-ease-in: cubic-bezier(.4, 0, 1, 1);
  --lv-modal-in: 240ms;
  --lv-modal-out: 180ms;
  --lv-pop-in: 160ms;
  --lv-pop-out: 120ms;
  --lv-shadow: 0 20px 50px rgba(15, 23, 42, .18);
  --lv-backdrop: rgba(15, 23, 42, .45);
}

.tours_page,
.tour_page {
  max-width: 1440px;
  margin: 0 auto;
  padding: 0 50px;
  box-sizing: border-box;
  color: #1f2937;
}

.tours_visually_hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/* Hero */
.tours_hero {
  padding: 44px 0 36px;
  max-width: 760px;
}

.tours_eyebrow {
  margin: 0 0 12px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #4094fa;
}

.tours_hero_title {
  margin: 0;
  font-size: 40px;
  line-height: 1.15;
  font-weight: 500;
  letter-spacing: -.01em;
  color: #111827;
}

.tours_hero_text {
  margin: 16px 0 0;
  font-size: 17px;
  line-height: 1.6;
  font-weight: 300;
  color: #6b7280;
}

/* Toolbar: count + destination chips */
.tours_toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px 24px;
  flex-wrap: wrap;
  padding: 0 0 22px;
  border-bottom: 1px solid #e5e7eb;
  margin-bottom: 28px;
}

.tours_toolbar[hidden],
.tours_filters[hidden] {
  display: none;
}

.tours_count {
  margin: 0;
  font-size: 15px;
  color: #6b7280;
}

.tours_filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.tours_chip {
  font: inherit;
  font-size: 14px;
  line-height: 1;
  padding: 10px 14px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  background: #fff;
  color: #374151;
  cursor: pointer;
  transition: border-color .15s, color .15s, background-color .15s;
}

.tours_chip:hover {
  border-color: #4094fa;
  color: #4094fa;
}

.tours_chip[aria-pressed="true"] {
  background: #4094fa;
  border-color: #4094fa;
  color: #fff;
}

.tours_chip:focus-visible,
.tour_card:focus-visible,
.tour_button:focus-visible,
.tour_back:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
}

/* Grid of cards */
.tours_grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 36px 24px;
}

.tours_grid[hidden] {
  display: none;
}

.tour_card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  color: inherit;
  text-decoration: none;
  border-radius: var(--lv-radius);
}

.tour_card_media {
  position: relative;
  aspect-ratio: 4 / 3;
  border-radius: var(--lv-radius);
  overflow: hidden;
  background: #eef1f5;
}

.tour_card_image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transform: scale(1);
  transition: opacity .35s ease, transform .6s var(--lv-ease-out);
}

.tour_card_image.is_loaded {
  opacity: 1;
}

.tour_card:hover .tour_card_image {
  transform: scale(1.035);
}

.tour_card_badge {
  position: absolute;
  left: 12px;
  bottom: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border-radius: var(--lv-radius);
  background: rgba(255, 255, 255, .94);
  color: #111827;
  font-size: 13px;
  line-height: 1;
  box-shadow: 0 2px 10px rgba(15, 23, 42, .08);
}

.tour_card_body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding-top: 16px;
}

.tour_card_place,
.tour_place {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 13px;
  color: #6b7280;
}

.tour_flag {
  width: 18px;
  height: 13px;
  border-radius: 2px;
  object-fit: cover;
  flex: none;
  box-shadow: 0 0 0 1px rgba(15, 23, 42, .06);
}

.tour_card_title {
  margin: 8px 0 0;
  font-size: 19px;
  line-height: 1.35;
  font-weight: 500;
  color: #111827;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  transition: color .15s;
}

.tour_card:hover .tour_card_title {
  color: #4094fa;
}

.tour_card_summary {
  margin: 8px 0 0;
  font-size: 14px;
  line-height: 1.6;
  font-weight: 300;
  color: #6b7280;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.tour_card_footer {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
}

.tour_card_price {
  margin: 0;
  display: flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}

.tour_card_from,
.tour_book_from {
  font-size: 13px;
  color: #6b7280;
}

.tour_card_price .tour_price_amount {
  font-size: 19px;
  font-weight: 500;
  color: #111827;
}

.tour_card_request,
.tour_book_request {
  font-size: 15px;
  color: #374151;
}

.tour_card_more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #4094fa;
  white-space: nowrap;
}

.tour_card_more svg {
  transition: transform .2s var(--lv-ease-out);
}

.tour_card:hover .tour_card_more svg {
  transform: translateX(3px);
}

/* Skeletons (same footprint as the cards) */
.tour_skel {
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: var(--lv-radius);
  background: #e9edf2;
}

.tour_skel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, .78) 48%, transparent 68%);
  transform: translateX(-105%);
  animation: tour_skeleton_sweep 1.2s ease-in-out infinite;
}

@keyframes tour_skeleton_sweep {
  to { transform: translateX(105%); }
}

.tour_card_skeleton {
  pointer-events: none;
}

.tour_skel_media { position: absolute; inset: 0; border-radius: 0; }
.tour_skel_meta { width: 38%; height: 12px; margin-top: 2px; }
.tour_skel_title { width: 78%; height: 20px; margin-top: 12px; }
.tour_skel_line { width: 100%; height: 12px; margin-top: 12px; }
.tour_skel_short { width: 62%; }
.tour_skel_price { width: 96px; height: 20px; }
.tour_skel_more { width: 80px; height: 14px; }

/* Empty / error states */
.tours_state {
  max-width: 560px;
  margin: 24px auto 0;
  padding: 56px 32px;
  text-align: center;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
}

.tours_state[hidden] {
  display: none;
}

.tours_state_icon {
  display: inline-flex;
  color: #4094fa;
  margin-bottom: 14px;
}

.tours_state_title {
  margin: 0;
  font-size: 22px;
  font-weight: 500;
  color: #111827;
}

.tours_state_text {
  margin: 12px auto 24px;
  max-width: 440px;
  font-size: 15px;
  line-height: 1.6;
  font-weight: 300;
  color: #6b7280;
}

.tour_button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 46px;
  padding: 0 22px;
  border: 0;
  border-radius: var(--lv-radius);
  background: #4094fa;
  color: #fff;
  font: inherit;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background-color .15s;
  box-sizing: border-box;
}

.tour_button:hover {
  background: #2f7fe0;
}

.tours_hotels {
  margin-top: 96px;
}

.tours_hotels[hidden] {
  display: none;
}

/* ----- Tour page ----- */
.tour_page {
  padding-top: 24px;
  padding-bottom: 40px;
}

.tour_head {
  margin-bottom: 22px;
}

.tour_title {
  margin: 10px 0 0;
  font-size: 36px;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: -.01em;
  color: #111827;
}

.tour_tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 0;
  padding: 0;
  list-style: none;
}

.tour_tag {
  padding: 6px 10px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  font-size: 13px;
  color: #4b5563;
}

.tour_tag::first-letter {
  text-transform: uppercase;
}

/* Gallery: the shared photo gallery (js/photo-gallery.js, .hotel_gallery_*
   rules and the "photo gallery" block at the end of this file). */
.tour_gallery_preview {
  margin-top: 0;
}

/* Layout: text + booking card */
.tour_layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 56px;
  margin-top: 40px;
  align-items: start;
}

.tour_facts {
  display: flex;
  flex-wrap: wrap;
  gap: 16px 40px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e5e7eb;
}

.tour_fact {
  display: flex;
  align-items: center;
  gap: 12px;
}

.tour_fact_icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--lv-radius);
  background: #f3f7ff;
  color: #4094fa;
  flex: none;
}

.tour_fact_icon svg {
  width: 20px;
  height: 20px;
}

.tour_fact_label {
  display: block;
  font-size: 12px;
  color: #6b7280;
}

.tour_fact_value {
  display: block;
  margin-top: 2px;
  font-size: 15px;
  color: #111827;
}

.tour_lead {
  margin: 28px 0 0;
  font-size: 19px;
  line-height: 1.6;
  font-weight: 300;
  color: #374151;
}

.tour_section {
  padding-top: 36px;
  margin-top: 36px;
  border-top: 1px solid #e5e7eb;
}

.tour_lead + .tour_section,
.tour_facts + .tour_section {
  border-top: 0;
  margin-top: 0;
}

.tour_section_title {
  margin: 0 0 18px;
  font-size: 22px;
  font-weight: 500;
  color: #111827;
}

.tour_section p,
.tour_day_text p {
  margin: 0 0 14px;
  font-size: 16px;
  line-height: 1.75;
  font-weight: 300;
  color: #374151;
}

.tour_list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 12px;
}

.tour_list.is_highlights {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px 28px;
}

.tour_list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  line-height: 1.55;
  color: #374151;
}

.tour_list svg {
  flex: none;
  margin-top: 1px;
}

.tour_list.is_highlights svg,
.tour_list.is_included svg {
  color: #4094fa;
}

.tour_list.is_excluded svg {
  color: #9ca3af;
}

.tour_terms {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 32px 40px;
}

/* Itinerary: a quiet timeline */
.tour_days {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tour_day {
  position: relative;
  display: grid;
  grid-template-columns: 36px minmax(0, 1fr);
  gap: 18px;
  padding-bottom: 26px;
}

.tour_day:not(:last-child)::before {
  content: "";
  position: absolute;
  left: 17.5px;
  top: 40px;
  bottom: 4px;
  width: 1px;
  background: #e5e7eb;
}

.tour_day_marker {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid #cfe1fd;
  background: #f3f7ff;
  color: #4094fa;
  font-size: 14px;
  font-weight: 500;
}

.tour_day_label {
  margin: 0 !important;
  font-size: 12px !important;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #6b7280 !important;
  line-height: 1.4 !important;
}

.tour_day_title {
  margin: 4px 0 8px;
  font-size: 17px;
  font-weight: 500;
  color: #111827;
}

.tour_day_body {
  padding-top: 8px;
}

/* Booking card */
.tour_aside {
  position: sticky;
  top: 24px;
}

.tour_book {
  padding: 26px;
  border: 1px solid #e5e7eb;
  border-radius: var(--lv-radius);
  background: #fff;
  box-shadow: 0 10px 30px rgba(15, 23, 42, .06);
}

.tour_book_price {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.tour_book_price .tour_price_amount {
  font-size: 30px;
  font-weight: 500;
  color: #111827;
}

.tour_book_meta {
  margin: 6px 0 0;
  font-size: 14px;
  color: #6b7280;
}

.tour_book .tour_button {
  width: 100%;
  margin-top: 22px;
}

.tour_book_note {
  margin: 12px 0 0;
  font-size: 13px;
  line-height: 1.55;
  color: #6b7280;
}

.tour_book_dates {
  display: flex;
  gap: 10px;
  margin: 18px 0 0;
  padding-top: 18px;
  border-top: 1px solid #e5e7eb;
  font-size: 14px;
  line-height: 1.5;
  color: #374151;
}

.tour_book_dates svg {
  flex: none;
  margin-top: 2px;
  color: #4094fa;
}

.tour_back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 40px;
  color: #4094fa;
  font-size: 15px;
  text-decoration: none;
}

.tour_mobile_bar {
  display: none;
}

/* Tour page skeleton */
.tour_skel_place { width: 160px; height: 13px; }
.tour_skel_heading { width: min(520px, 80%); height: 34px; margin: 14px 0 24px; }
.tour_skel_card { height: 230px; }

@media (max-width: 1100px) {
  .tour_layout {
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
  }
}

@media (max-width: 1024px) {
  .tours_page,
  .tour_page {
    padding: 0 24px;
  }

  .tour_page {
    padding-top: 20px;
    padding-bottom: 40px;
  }

  .tour_layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .tour_aside {
    position: static;
  }
}

@media (max-width: 640px) {
  .tours_page,
  .tour_page {
    padding: 0 16px;
  }

  .tours_hero {
    padding: 28px 0 24px;
  }

  .tours_hero_title {
    font-size: 28px;
  }

  .tours_hero_text {
    font-size: 15px;
  }

  .tours_toolbar {
    margin-bottom: 20px;
    padding-bottom: 16px;
  }

  .tours_filters {
    flex-wrap: nowrap;
    overflow-x: auto;
    width: 100%;
    margin: 0 -16px;
    padding: 0 16px;
    scrollbar-width: none;
  }

  .tours_filters::-webkit-scrollbar {
    display: none;
  }

  .tours_chip {
    flex: none;
  }

  .tours_grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  .tours_state {
    padding: 40px 20px;
  }

  .tours_hotels {
    margin-top: 64px;
  }

  .tour_title {
    font-size: 26px;
  }

  .tour_layout {
    margin-top: 28px;
    gap: 32px;
  }

  .tour_facts {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
  }

  .tour_lead {
    font-size: 17px;
  }

  .tour_list.is_highlights,
  .tour_terms {
    grid-template-columns: minmax(0, 1fr);
  }

  .tour_section {
    padding-top: 28px;
    margin-top: 28px;
  }

  /* The booking card's action moves to a bar at the bottom of the screen. */
  .tour_aside {
    display: none;
  }

  .tour_mobile_bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 900;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom));
    border-top: 1px solid #e5e7eb;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 -8px 24px rgba(15, 23, 42, .06);
  }

  .tour_mobile_price {
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  .tour_mobile_price .tour_price_amount {
    font-size: 19px;
    font-weight: 500;
    color: #111827;
  }

  .tour_mobile_bar .tour_button {
    flex: none;
  }

  .tour_has_bar body {
    padding-bottom: calc(76px + env(safe-area-inset-bottom));
  }
}

@media (prefers-reduced-motion: reduce) {
  .tour_skel::after {
    animation: none;
  }

  .tour_card_image,
  .tour_card_more svg {
    transition: opacity .2s ease;
    transform: none !important;
  }
}
/* === end tours === */

/* === home last-minute tours from the database (2026-10-18) === */
/* Until js/home.js has the published tours, the slider shows one skeleton
   slide of the real slide's size; the server hides the section when there
   are none, so it never appears and disappears. */
.tours[hidden] {
  display: none;
}

.tours_inner_skeleton {
  pointer-events: none;
}

.tours_inner_skeleton .tours_slide_image {
  position: relative;
}

.tours_skel {
  display: block;
  position: relative;
  overflow: hidden;
  margin: 0 auto;
  border-radius: 6px;
  background: #e9edf2;
}

.tours_inner_skeleton .tours_slide_image::after,
.tours_skel::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 28%, rgba(255, 255, 255, .78) 48%, transparent 68%);
  transform: translateX(-105%);
  animation: tour_skeleton_sweep 1.2s ease-in-out infinite;
}

.tours_skel_name { width: 52%; height: clamp(42px, 4.45vw, 64px); }
.tours_skel_info { width: 70%; height: 26px; margin-top: 16px; }
.tours_inner_skeleton .tours_inner_flex { margin-top: 30px; }
.tours_skel_price { width: 150px; height: 26px; margin: 0; }
.tours_skel_button { width: 225px; height: 48px; margin: 0; border-radius: 8px; }
.tours_inner_skeleton .tours_inner_desc { margin-top: 30px; }
.tours_skel_line { width: 82%; height: 14px; margin-top: 10px; }
.tours_skel_short { width: 56%; }

.tours_inner_column .tours_inner_meta {
  margin: 10px auto 0;
  font-size: 15px;
  color: #6b7280;
}

.tours_inner_column .tours_inner_meta img {
  width: 18px;
  height: 13px;
  border-radius: 2px;
  vertical-align: -1px;
  margin-inline-end: 6px;
  object-fit: cover;
}

@keyframes tour_skeleton_sweep {
  to { transform: translateX(105%); }
}

@media (prefers-reduced-motion: reduce) {
  .tours_inner_skeleton .tours_slide_image::after,
  .tours_skel::after {
    animation: none;
  }
}
/* === end home last-minute tours === */

/* === photo gallery (2026-10-19) ===
   The shared photo gallery (js/photo-gallery.js) of the hotel page and the
   tour page: the mosaic (.lv_photo_preview on .hotel_gallery_img) and the
   full-screen gallery (.lv_photo_gallery on .hotel_gallery_modal). The base
   look is the .hotel_gallery_* rules above and in mobile.css; these are the
   parts that depend on the number of photos and on the viewer. */
.lv_photo_preview[hidden] {
  display: none;
}

/* Tiles keep the mosaic's height whatever the photos' proportions. */
.lv_photo_preview {
  grid-template-rows: minmax(0, 1fr);
}

.lv_photo_preview .hotel_gallery_img_side {
  grid-template-rows: repeat(2, minmax(0, 1fr));
}

.lv_photo_preview > *,
.lv_photo_preview .hotel_gallery_img_item {
  min-width: 0;
  min-height: 0;
}

.lv_photo_preview[data-count="1"] {
  grid-template-columns: 1fr;
}

.lv_photo_preview[data-count="2"] .hotel_gallery_img_side {
  grid-template-columns: 1fr;
  grid-template-rows: minmax(0, 1fr);
}

.lv_photo_preview[data-count="3"] .hotel_gallery_img_side {
  grid-template-columns: 1fr;
}

.lv_photo_preview[data-count="4"] .hotel_gallery_img_item:last-child {
  grid-column: span 2;
}

.lv_photo_preview .hotel_gallery_img_more button {
  max-width: calc(100% - 12px);
  white-space: normal;
  line-height: 1.25;
}

.lv_photo_preview [role="button"]:focus-visible,
.lv_photo_preview .hotel_gallery_img_more button:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
}

@media (max-width: 760px) {
  .lv_photo_preview .hotel_gallery_img_more button {
    padding: 6px 8px;
    font-size: 13px;
  }
}

/* The viewer box keeps its size while the small copy of a photo stands in
   for the full one; grid tiles off screen are not laid out or painted. */
.lv_photo_gallery .hotel_gallery_viewer_image {
  width: 100%;
  height: 100%;
  max-width: 1100px;
  object-fit: contain;
  background: transparent;
}

.lv_photo_gallery .hotel_gallery_modal_photo {
  content-visibility: auto;
  contain-intrinsic-size: auto 220px auto 142px;
}

/* Without the reviews column the photos take the whole width. */
.lv_photo_gallery .hotel_gallery_modal_body:not(:has(> .hotel_gallery_modal_reviews:not([hidden]))) {
  grid-template-columns: minmax(0, 1fr);
}

/* Vertical pans stay with the browser; horizontal swipes change the photo. */
.lv_photo_gallery .hotel_gallery_viewer_stage {
  touch-action: pan-y;
}

.lv_photo_gallery .hotel_gallery_viewer_arrow[hidden] {
  display: none;
}

.lv_photo_gallery a.hotel_gallery_modal_select {
  text-decoration: none;
}

@media (min-width: 561px) {
  .lv_photo_gallery a.hotel_gallery_modal_select {
    display: inline-flex;
    align-items: center;
  }
}

/* Phones: with no reviews under the photos, the grid and the viewer use the
   whole screen. */
@media (max-width: 900px) {
  .lv_photo_gallery .hotel_gallery_modal_body:not(:has(> .hotel_gallery_modal_reviews:not([hidden]))) {
    display: flex;
    overflow: hidden;
  }

  .lv_photo_gallery .hotel_gallery_modal_body:not(:has(> .hotel_gallery_modal_reviews:not([hidden]))) .hotel_gallery_modal_media {
    flex: 1;
    height: auto;
  }

  .lv_photo_gallery .hotel_gallery_modal_body:not(:has(> .hotel_gallery_modal_reviews:not([hidden]))) .hotel_gallery_modal_photos {
    overflow-y: auto;
  }
}
/* === end photo gallery === */

/* === account personal details + sign-up e-mail check (2026-10-19) === */
/* "Optional" next to the label of a field that may stay empty. */
:where([data-account]) .account_personal .account_input > span {
  display: inline-block;
}
:where([data-account]) .account_personal .account_optional {
  display: inline-block;
  margin-inline-start: 8px;
  color: #9aa1ab;
  font-size: 12px;
  font-style: normal;
  font-weight: 400;
}
:where([data-account]) .account_personal .account_input > :is(input, select) {
  display: block;
}
:where([data-account]) .account_personal .account_input input[readonly] {
  background-color: #f7f8fa;
  color: #535963;
  cursor: default;
}
:where([data-account]) .account_personal .account_input input[readonly]:focus {
  border-color: #e3e5e8;
}

/* Inline field errors. */
:where([data-account]) .account_personal .account_field_error {
  display: block;
  margin-top: 6px;
  color: #cf3a3a;
  font-size: 12px;
  line-height: 1.4;
}
:where([data-account]) .account_personal :is(input, select)[aria-invalid="true"] {
  border-color: #cf3a3a;
}

/* Date of birth: day / month / year selects in the page's language. */
:where([data-account]) .account_personal .account_dob_fields {
  position: relative;
  display: grid;
  grid-template-columns: minmax(86px, .8fr) minmax(0, 1.6fr) minmax(96px, 1fr);
  gap: 8px;
  align-items: center;
}
:where([data-account]) .account_personal .account_dob_fields select {
  width: 100%;
  min-width: 0;
  height: 48px;
  padding: 0 30px 0 12px;
  background-position: right 11px center;
  text-overflow: ellipsis;
  cursor: pointer;
}
:where([data-account]) .account_personal .account_dob_fields select:has(option[value=""]:checked) {
  color: #9aa1ab;
}
:where([data-account]) .account_personal .account_dob_fields option {
  color: #20242a;
}
:where([data-account]) .account_personal .account_dob_clear {
  position: absolute;
  inset-inline-end: 0;
  bottom: calc(100% + 5px);
  padding: 0;
  border: 0;
  background: none;
  color: #4094fa;
  font: inherit;
  font-size: 12px;
  line-height: 1.4;
  cursor: pointer;
}
:where([data-account]) .account_personal .account_dob_clear:hover {
  text-decoration: underline;
}
:where([data-account]) .account_personal .account_dob_clear:focus-visible {
  outline: 2px solid #4094fa;
  outline-offset: 2px;
  border-radius: 2px;
}
:where([data-account]) .account_personal .account_dob_clear[hidden] {
  display: none !important;
}

/* The fields are drawn as skeletons until the account's details are in. */
.account_section:not(.account_loaded) .account_personal .account_input :is(input:not([type="hidden"]), select) {
  color: transparent !important;
  border-color: #eef1f5 !important;
  background-image: linear-gradient(100deg, #eef1f5 15%, #f7f8fa 35%, #eef1f5 55%) !important;
  background-size: 200% 100% !important;
  animation: account_load_sweep 1.4s infinite;
}
.account_section:not(.account_loaded) .account_personal .account_optional {
  visibility: hidden;
}

@media (max-width: 640px) {
  :where([data-account]) .account_personal .account_dob_fields {
    grid-template-columns: 82px minmax(0, 1fr) 90px;
    gap: 6px;
  }
  :where([data-account]) .account_personal .account_dob_fields select {
    padding: 0 26px 0 10px;
    background-position: right 9px center;
    font-size: 16px; /* no zoom-in on iOS */
  }
}
@media (prefers-reduced-motion: reduce) {
  .account_section:not(.account_loaded) .account_personal .account_input :is(input, select) {
    animation: none;
  }
}

/* Sign-up: "an account with this email already exists" + sign in instead. */
.auth_error.auth_error_exists .auth_error_action {
  margin-inline-start: 4px;
  color: #4094fa;
  font-weight: 500;
  white-space: nowrap;
}
/* === end account personal details + sign-up e-mail check === */

/* === booking requests (2026-10-19) === */
/* A cancellation / date-change request and its outcome on the bookings list. */
.my_bookings_card_content > .my_bookings_request { margin: 12px 0 0; padding: 10px 14px; font-size: 13px; line-height: 1.55; }
section.find_booking > [data-booking-request] { margin: 16px 0 0; }
section.find_booking > [data-booking-request] + .find_booking_actions { margin-top: 20px; }
.find_booking_button:disabled { opacity: .6; cursor: default; }
/* === end booking requests === */

/* === reviewers (2026-10-19) === */
.lv_person_avatar { position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; border-radius:50%; background:var(--lv-person, #5a6b8c) !important; color:#fff !important; font-weight:500; letter-spacing:.02em; line-height:1; user-select:none; }
.lv_person_avatar img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; border-radius:50%; }
.hotel_review_avatar.lv_person_avatar { font-size:20px; }
.customer_review_avatar.lv_person_avatar { font-size:16px; }
.hotel_gallery_review_avatar.lv_person_avatar { font-size:13px; }
.lv_person_country { display:inline-flex; align-items:center; gap:6px; white-space:nowrap; }
.lv_person_country img { width:16px; height:12px; flex:none; border-radius:2px; object-fit:cover; box-shadow:0 0 0 1px rgba(15,23,42,.08); }
.customer_review_from { display:flex; flex-wrap:wrap; align-items:center; gap:0 4px; margin:2px 0 0; font-size:13px; color:#6b7280; }
/* === end reviewers === */
/* === destination-menu-picks (2026-10-19) === */
.destination_preview_image img {
  opacity: 0;
  transition: opacity 0.3s ease, transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.3s ease;
}
.destination_preview_image img.is_ready {
  opacity: 1;
}
.destination_preview.is_skeleton {
  pointer-events: none;
}
.destination_preview.is_skeleton .destination_preview_image,
.destination_preview.is_skeleton strong,
.destination_preview.is_skeleton small {
  background: linear-gradient(90deg, #eef3f7 25%, #f6f9fb 50%, #eef3f7 75%);
  background-size: 200% 100%;
  animation: destination-skeleton 1.4s ease-in-out infinite;
}
.destination_preview.is_skeleton strong {
  width: 72%;
  height: 16px;
  border-radius: 5px;
}
.destination_preview.is_skeleton small {
  width: 46%;
  height: 12px;
  margin-top: 6px;
  border-radius: 5px;
}
.destination_preview[hidden] {
  display: none;
}
.destinations_dropdown_featured.is_empty {
  visibility: hidden;
}
@keyframes destination-skeleton {
  from { background-position: 200% 0; }
  to { background-position: -200% 0; }
}
@media (prefers-reduced-motion: reduce) {
  .destination_preview.is_skeleton .destination_preview_image,
  .destination_preview.is_skeleton strong,
  .destination_preview.is_skeleton small { animation: none; }
}
/* === end destination-menu-picks === */

/* Shared submission result, outside account authentication. */
.lv_feedback_dialog{box-sizing:border-box;width:min(440px,calc(100% - 32px));max-height:calc(100dvh - 40px);padding:40px 32px 28px;border:1px solid #e8e9eb;border-radius:22px;background:#fff;color:#20262b;text-align:center;box-shadow:0 24px 90px #182b3b30;overflow:auto;font-family:Manrope,Arial,sans-serif}
.lv_feedback_dialog[open]{animation:lv-feedback-in .18s ease-out}
.lv_feedback_dialog::backdrop{background:#18222e66;backdrop-filter:blur(5px)}
.lv_feedback_dialog h2{margin:20px 0 10px;font:600 23px/1.3 Manrope,Arial,sans-serif;letter-spacing:-.4px}
.lv_feedback_dialog p{margin:0;color:#657079;font:400 15px/1.65 Manrope,Arial,sans-serif;overflow-wrap:anywhere}
.lv_feedback_close{position:absolute;inset:14px 14px auto auto;width:32px;height:32px;border:0;border-radius:50%;display:grid;place-items:center;background:#f4f5f6;color:#737c83;cursor:pointer}
.lv_feedback_close svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6}
.lv_feedback_icon{width:62px;height:62px;margin:auto;border-radius:50%;background:#edf6f1;color:#34755b;display:grid;place-items:center}
.lv_feedback_icon svg{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.lv_feedback_dialog[data-tone=error] .lv_feedback_icon{color:#a34c45;background:#fdf0ee}
.lv_feedback_dialog[data-tone=info] .lv_feedback_icon{color:#527292;background:#eef4f9}
.lv_feedback_done{margin-top:28px;width:100%;padding:13px 20px;border:0;border-radius:12px;background:#253b48;color:#fff;font:600 14px/1.5 Manrope,Arial,sans-serif;cursor:pointer;transition:background .15s}
.lv_feedback_done:hover{background:#365463}.lv_feedback_done:focus-visible,.lv_feedback_close:focus-visible{outline:3px solid #9bbac7;outline-offset:3px}
.footer_social a{display:inline-flex;align-items:center;justify-content:center;color:#535353;transition:opacity .15s}.footer_social a:hover{opacity:.65}.footer_social a:focus-visible{outline:2px solid currentColor;outline-offset:5px;border-radius:3px}
@keyframes lv-feedback-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@media(prefers-reduced-motion:reduce){.lv_feedback_dialog[open]{animation:none}.lv_feedback_done,.footer_social a{transition:none}}
@media(max-width:480px){.lv_feedback_dialog{padding:36px 24px 24px}.lv_feedback_dialog h2{font-size:21px}}

html.lv_feedback_open,body.lv_feedback_open{overflow:hidden}

.support_contact_socials a{display:inline-flex;align-items:center;justify-content:center;color:#535353}.support_contact_socials a:hover{opacity:.65}.support_contact_socials a:focus-visible{outline:2px solid currentColor;outline-offset:4px}.support_contact_socials svg{max-width:25px;max-height:25px}

/* Booking usability update — 25 Oct 2026 */
.hotel_overview_text, .hotel_page_important_text {
  font-size: 15px;
  font-weight: 400;
  line-height: 1.85;
  letter-spacing: .025em;
  color: #505967;
  max-width: 78ch;
  margin: 0 0 18px;
}
[data-hotel-description] { padding-block: 6px 14px; border-bottom: 1px solid #e8edf3; }
[data-hotel-description] p + p { margin-top: 16px; }
.hotel_room_summary_total_price, .hotel_room_mobile_bar strong, .rates_price_total {
  font-family: Manrope, Arial, sans-serif;
  font-weight: 600;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  line-height: 1.3;
}
.rates_row_book, .rates_book, [data-rates-pick] { white-space: nowrap; word-break: normal; overflow-wrap: normal; }
.home_hotels_notice { grid-column: 1 / -1; width: 100%; padding: 28px; border: 1px solid #e6ebf1; border-radius: 8px; text-align: center; color: #616b79; }
.home_hotels_notice button { margin-top: 12px; min-height: 44px; padding: 10px 22px; background: #4094fa; border: 0; border-radius: 6px; color: white; font: 500 14px Manrope, sans-serif; cursor: pointer; }
.booking_mobile_bar { display: none; }
