.room-panel-navigation {
  --room-navigation-height: var(--dia-front-space-88);
  --room-navigation-mobile-tab-min: 8.75rem;
  position: fixed;
  z-index: 1;
  top: var(--room-navigation-top);
  right: 0;
  left: 0;
  display: flex;
  align-items: center;
  gap: 0;
  height: var(--room-navigation-height);
  padding: var(--dia-front-space-8) calc(var(--dia-front-space-64) + env(safe-area-inset-right, 0px)) var(--dia-front-space-8) var(--dia-front-space-8);
  background: var(--dia-front-color-white);
  box-shadow: var(--dia-front-shadow-navigation);
}
.room-panel-navigation[hidden] {
  display: none;
}
.room-panel-navigation__items {
  flex: 1 1 auto;
  min-width: 0;
  height: var(--dia-front-space-72);
  overflow: hidden;
  touch-action: pan-y;
}
.room-panel-navigation__items:not(.swiper-initialized) {
  overflow-x: auto;
}
.room-panel-navigation__track {
  display: flex;
  height: 100%;
  gap: var(--dia-front-space-16);
  width: 100%;
}
.room-panel-navigation__items.swiper-initialized .room-panel-navigation__track {
  gap: 0;
}
.room-panel-navigation[data-room-panel-navigation-overflow=true] .room-panel-navigation__items {
  margin-inline: var(--dia-front-space-32);
}
.room-panel-navigation[data-room-panel-navigation-overflow=false] .room-panel-navigation__items {
  touch-action: auto;
}
.room-panel-navigation .room-panel-navigation__link {
  display: flex;
  flex: 0 0 auto;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: var(--room-navigation-mobile-tab-min);
  height: 100%;
  padding: var(--dia-front-space-8) var(--dia-front-space-24);
  border-radius: var(--dia-front-radius-8);
  color: var(--dia-front-color-text);
  text-decoration: none;
  white-space: nowrap;
  transform-origin: center;
  transition: color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), background-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), border-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), opacity var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), transform var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard);
}
.room-panel-navigation .room-panel-navigation__link:hover, .room-panel-navigation .room-panel-navigation__link:focus-visible {
  transform: none;
}
.room-panel-navigation .room-panel-navigation__link:active {
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .room-panel-navigation .room-panel-navigation__link {
    transition: none;
  }
  .room-panel-navigation .room-panel-navigation__link:hover, .room-panel-navigation .room-panel-navigation__link:focus-visible, .room-panel-navigation .room-panel-navigation__link:active {
    transform: none;
  }
}
.room-panel-navigation .room-panel-navigation__link[aria-current=page] {
  background: var(--dia-front-color-mint);
  color: var(--dia-front-color-white);
}
.room-panel-navigation .room-panel-navigation__link:hover:not([aria-current=page]) {
  background: var(--dia-front-color-room-filter-empty);
}
.room-panel-navigation__name {
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-menu-item);
  font-weight: var(--dia-front-font-weight-filter);
  line-height: var(--dia-front-line-height-filter);
}
.room-panel-navigation__summary {
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body-small);
  line-height: var(--dia-front-line-height-body);
}
.room-panel-navigation__previous, .room-panel-navigation__next {
  position: absolute;
  display: grid;
  flex: 0 0 var(--dia-front-space-24);
  place-items: center;
  width: var(--dia-front-space-24);
  height: var(--dia-front-space-72);
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  transform-origin: center;
  transition: color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), background-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), border-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), opacity var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), transform var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard);
}
.room-panel-navigation__previous:hover, .room-panel-navigation__previous:focus-visible, .room-panel-navigation__next:hover, .room-panel-navigation__next:focus-visible {
  transform: none;
}
.room-panel-navigation__previous:active, .room-panel-navigation__next:active {
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .room-panel-navigation__previous, .room-panel-navigation__next {
    transition: none;
  }
  .room-panel-navigation__previous:hover, .room-panel-navigation__previous:focus-visible, .room-panel-navigation__previous:active, .room-panel-navigation__next:hover, .room-panel-navigation__next:focus-visible, .room-panel-navigation__next:active {
    transform: none;
  }
}
.room-panel-navigation__previous img, .room-panel-navigation__next img {
  width: var(--dia-front-space-24);
  height: var(--dia-front-space-24);
}
.room-panel-navigation__previous[hidden], .room-panel-navigation__next[hidden] {
  display: none;
}
.room-panel-navigation__previous:disabled, .room-panel-navigation__next:disabled {
  opacity: 0.35;
  cursor: default;
}
.room-panel-navigation__previous {
  left: var(--dia-front-space-8);
}
.room-panel-navigation__next {
  right: calc(var(--dia-front-space-64) + env(safe-area-inset-right, 0px));
}
.room-panel-navigation__previous img {
  transform: rotate(90deg);
}
.room-panel-navigation__next img {
  transform: rotate(-90deg);
}
.room-panel-navigation__error {
  margin: 0;
  font-size: var(--dia-front-font-size-body-small);
  line-height: var(--dia-front-line-height-body);
}
.room-panel-navigation__error a {
  color: inherit;
}
.room-panel-navigation[data-room-panel-navigation-state=error] :is(.room-panel-navigation__items, .room-panel-navigation__previous, .room-panel-navigation__next) {
  display: none;
}
@media (min-width: 992px) {
  .room-panel-navigation {
    right: var(--dia-front-space-24);
    left: 12.03125%;
    height: var(--room-navigation-height);
    padding: var(--dia-front-space-8) var(--dia-front-space-72) var(--dia-front-space-8) var(--dia-front-space-16);
    border-radius: var(--dia-front-radius-12);
  }
  .room-panel-navigation .room-panel-navigation__link {
    min-width: 0;
    padding-inline: var(--dia-front-space-16);
  }
  .room-panel-navigation__previous {
    left: var(--dia-front-space-16);
  }
  .room-panel-navigation__next {
    right: var(--dia-front-space-72);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .room-panel-navigation {
    right: var(--dia-front-space-32);
    left: var(--dia-front-space-32);
  }
}

.room-single:has(.room-panel-navigation),
.dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation) {
  --room-navigation-top: max(var(--dia-front-sticky-offset), env(safe-area-inset-top, 0px));
}
@media (min-width: 992px) {
  .room-single:has(.room-panel-navigation),
  .dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation) {
    --room-navigation-top: max(var(--dia-front-space-30), var(--dia-front-sticky-offset), env(safe-area-inset-top, 0px));
  }
}
.room-single:has(.room-panel-navigation)[data-dia-front-panel-phase=open],
.dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation)[data-dia-front-panel-phase=open] {
  transform: none;
}
.room-single:has(.room-panel-navigation) .dia-front-content-panel__header,
.dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation) .dia-front-content-panel__header {
  z-index: 2;
  padding-top: calc(var(--room-navigation-top) + var(--dia-front-space-20));
}
@media (min-width: 992px) {
  .room-single:has(.room-panel-navigation) .dia-front-content-panel__header,
  .dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation) .dia-front-content-panel__header {
    padding-right: calc(var(--dia-front-space-40) + var(--dia-front-dialog-root-gutter, 0px));
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .room-single:has(.room-panel-navigation) .dia-front-content-panel__header,
  .dia-front-content-panel[data-dia-front-panel-type=room]:has(.room-panel-navigation) .dia-front-content-panel__header {
    padding-right: calc(var(--dia-front-space-48) + var(--dia-front-dialog-root-gutter, 0px));
  }
}

.room-single:has(.room-panel-navigation) .room-single__close {
  top: calc(var(--room-navigation-top) + var(--dia-front-space-20));
}
@media (min-width: 992px) {
  .room-single:has(.room-panel-navigation) .room-single__close {
    right: calc(var(--dia-front-space-40) + env(safe-area-inset-right, 0px));
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .room-single:has(.room-panel-navigation) .room-single__close {
    right: calc(var(--dia-front-space-48) + env(safe-area-inset-right, 0px));
  }
}

.dia-front-content-panel[data-dia-front-panel-presentation=immersive][data-dia-front-panel-type=room] {
  --dia-front-panel-replacement-duration: var(--dia-front-transition-reveal);
  width: 100vw;
}
.dia-front-content-panel[data-dia-front-panel-presentation=immersive][data-dia-front-panel-type=room] .dia-front-content-panel__header {
  padding-right: calc(1rem + env(safe-area-inset-right, 0px) + var(--dia-front-dialog-root-gutter, 0px));
}
@media (min-width: 992px) {
  .dia-front-content-panel[data-dia-front-panel-presentation=immersive][data-dia-front-panel-type=room]:has(.room-panel-navigation) .dia-front-content-panel__header {
    padding-right: calc(var(--dia-front-space-40) + env(safe-area-inset-right, 0px) + var(--dia-front-dialog-root-gutter, 0px));
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .dia-front-content-panel[data-dia-front-panel-presentation=immersive][data-dia-front-panel-type=room]:has(.room-panel-navigation) .dia-front-content-panel__header {
    padding-right: calc(var(--dia-front-space-48) + env(safe-area-inset-right, 0px) + var(--dia-front-dialog-root-gutter, 0px));
  }
}

.dia-front-content-panel[data-dia-front-panel-presentation=immersive][data-dia-front-panel-phase=open]:has(.room-detail--has-booking) {
  transform: none;
}

.room-detail--has-booking {
  position: relative;
  --room-booking-mobile-height: 3.25rem;
  --room-booking-mobile-action-width: 6.5rem;
  --room-booking-mobile-action-height: 2.25rem;
  --room-booking-desktop-width: 23.75rem;
  --room-booking-desktop-height: 19.375rem;
  --room-booking-price-height: 7.875rem;
  --room-booking-desktop-top: 5.6875rem;
  --room-booking-popup-reserve: 20rem;
  --room-booking-popup-width: 49.625rem;
}
.room-detail--has-booking .room-detail__inner {
  padding-bottom: calc(var(--dia-front-space-80) + var(--room-booking-mobile-height));
}

.room-detail__booking {
  position: fixed;
  z-index: 20;
  right: var(--dia-front-space-16);
  bottom: calc(var(--dia-front-space-16) + env(safe-area-inset-bottom, 0px));
  left: var(--dia-front-space-16);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--dia-front-space-8);
  height: var(--room-booking-mobile-height);
  padding: var(--dia-front-space-8);
  border-radius: var(--dia-front-radius-12);
  background: var(--dia-front-color-white);
  box-shadow: var(--dia-front-shadow-navigation);
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body);
  line-height: var(--dia-front-line-height-body);
}
.room-detail__booking .dia-front-booking-engine {
  position: absolute;
  width: 0;
}
.room-detail__booking .dia-front-booking-engine > .dia-front-booking-engine__fallback {
  display: none;
}
.room-detail__booking .dia-front-booking-engine__trigger {
  display: none;
}
.room-detail__booking .dia-front-booking-engine__panel {
  position: fixed;
  z-index: 1100;
  inset: var(--dia-front-space-16) var(--dia-front-space-16) auto;
  width: auto;
  min-height: min(var(--room-booking-popup-reserve), 100dvh - 2 * var(--dia-front-space-16));
  max-height: calc(100dvh - 2 * var(--dia-front-space-16));
  padding: var(--dia-front-space-64) var(--dia-front-space-16) var(--dia-front-space-16);
  overflow-y: auto;
  border-radius: var(--dia-front-radius-24);
  background: var(--dia-front-color-white);
  box-shadow: var(--dia-front-shadow-control);
  transform: none;
}
.room-detail__booking .dia-front-booking-engine__panel[hidden] {
  display: none;
}
.room-detail__booking .dia-front-booking-engine__close {
  position: absolute;
  top: var(--dia-front-space-16);
  right: var(--dia-front-space-16);
  box-sizing: border-box;
  display: grid;
  flex: 0 0 auto;
  width: var(--dia-front-space-48);
  min-width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  min-height: var(--dia-front-space-48);
  place-items: center;
  padding: var(--dia-front-space-16);
  border: 0;
  border-radius: var(--dia-front-radius-8);
  background-color: var(--dia-front-color-cta-main);
  background-image: url("../images/icons/icon-close.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--dia-front-close-icon-size);
  box-shadow: none;
  color: var(--dia-front-color-heading);
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dia-front-transition-fast) ease;
}
.room-detail__booking .dia-front-booking-engine__close > :where(svg, img, span) {
  display: none;
}
.room-detail__booking .dia-front-booking-engine__close::before {
  content: none;
}
.room-detail__booking .dia-front-booking-engine__close:hover, .room-detail__booking .dia-front-booking-engine__close:active {
  background-color: var(--dia-front-color-cta-main-hover);
}
.room-detail__booking .dia-front-booking-engine__close:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring-inset);
}
@media (prefers-reduced-motion: reduce) {
  .room-detail__booking .dia-front-booking-engine__close {
    transition: none;
  }
}
.room-detail__booking .dia-front-booking-engine__status {
  margin: 0;
  text-align: center;
  font-size: var(--dia-front-font-size-body);
}

.room-detail__booking-caption,
.room-detail__booking-contact,
.room-detail__booking-action-desktop {
  display: none;
}

.room-detail__booking-price {
  min-width: 0;
}

.room-detail__booking-direct,
.room-detail__booking-panel-direct {
  color: var(--dia-front-color-text);
  text-decoration: underline;
  text-underline-offset: 0.2em;
}
.room-detail__booking-direct:focus-visible,
.room-detail__booking-panel-direct:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring);
}

.room-detail__booking-direct {
  font-size: var(--dia-front-font-size-body-small);
}

.room-detail__booking-panel-direct {
  display: block;
  margin-top: var(--dia-front-space-16);
  text-align: center;
}

.room-detail__booking-action {
  display: inline-flex;
  flex: 0 0 var(--room-booking-mobile-action-width);
  align-items: center;
  justify-content: center;
  width: var(--room-booking-mobile-action-width);
  min-height: var(--room-booking-mobile-action-height);
  height: var(--room-booking-mobile-action-height);
  padding: var(--dia-front-space-8) var(--dia-front-space-12);
  border-radius: var(--dia-front-radius-8);
  color: var(--dia-front-color-text);
  background: var(--dia-front-color-cta-main);
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-meta);
  font-weight: var(--dia-front-font-weight-filter);
  line-height: var(--dia-front-line-height-body);
  text-decoration: none;
  transform-origin: center;
  transition: color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), background-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), border-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), opacity var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), transform var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard);
}
.room-detail__booking-action:hover, .room-detail__booking-action:focus-visible {
  transform: none;
}
.room-detail__booking-action:active {
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .room-detail__booking-action {
    transition: none;
  }
  .room-detail__booking-action:hover, .room-detail__booking-action:focus-visible, .room-detail__booking-action:active {
    transform: none;
  }
}
.room-detail__booking-action:hover {
  background: var(--dia-front-color-cta-main-hover);
}
.room-detail__booking-action:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring);
}

@media (min-width: 992px) {
  .room-detail--has-booking .room-detail__inner {
    min-height: calc(var(--room-booking-desktop-top) + var(--room-booking-desktop-height) + var(--dia-front-space-144));
    padding-bottom: var(--dia-front-space-144);
  }
  .room-detail--has-booking :is(.room-detail__title, .dia-front-content-panel__title, .room-detail__facts, .room-detail__copy, .room-detail__editorial-zones, .room-detail__gallery) {
    max-width: calc(100% - var(--room-booking-desktop-width) - var(--dia-front-space-32));
  }
  .room-detail--has-booking :is(.room-detail__copy, .room-detail__editorial-zones, .room-detail__gallery) {
    width: min(var(--room-detail-copy-max), 100% - var(--room-booking-desktop-width) - var(--dia-front-space-32));
  }
  .room-detail__booking {
    position: absolute;
    top: max(var(--room-detail-hero-height-desktop) + var(--room-booking-desktop-top), min(var(--room-booking-navigation-bottom, 0px) + var(--dia-front-space-16), var(--room-booking-content-bottom, 100%)));
    right: max(var(--room-detail-gutter), (100% - var(--room-detail-content-max)) / 2);
    bottom: auto;
    left: auto;
    flex-direction: column;
    align-items: stretch;
    gap: var(--dia-front-space-16);
    width: var(--room-booking-desktop-width);
    height: var(--room-booking-desktop-height);
    padding: var(--dia-front-space-16);
    border-radius: var(--dia-front-radius-24);
  }
  .room-detail__booking-price {
    display: flex;
    flex: 0 0 var(--room-booking-price-height);
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--dia-front-space-8);
    height: var(--room-booking-price-height);
    padding: var(--dia-front-space-24) var(--dia-front-space-16);
  }
  .room-detail__booking-caption {
    display: block;
    font-size: var(--dia-front-font-size-body-large);
  }
  .room-detail__booking-direct {
    font-size: var(--dia-front-font-size-body);
  }
  .room-detail__booking-action {
    flex: 0 0 var(--dia-front-space-56);
    width: 100%;
    min-height: var(--dia-front-space-56);
    height: var(--dia-front-space-56);
    margin-top: calc(-1 * var(--dia-front-space-8));
    padding: var(--dia-front-space-12) var(--dia-front-space-24);
    font-size: var(--dia-front-font-size-body);
  }
  .room-detail__booking-action-desktop {
    display: inline;
  }
  .room-detail__booking-action-mobile {
    display: none;
  }
  .room-detail__booking-contact {
    display: block;
    margin: 0;
    font-size: var(--dia-front-font-size-body);
    line-height: var(--dia-front-line-height-body);
    text-align: center;
  }
  .room-detail__booking-contact a {
    color: inherit;
    text-decoration: underline;
  }
  .room-detail__booking .dia-front-booking-engine__panel {
    right: max(var(--dia-front-space-16), (100vw - var(--room-booking-popup-width)) / 2);
    left: max(var(--dia-front-space-16), (100vw - var(--room-booking-popup-width)) / 2);
  }
}
.room-single {
  position: relative;
}

.room-plan-dialog {
  --room-plan-source-width: 75.176188rem;
  --room-plan-image-ratio: 1.503512;
  --room-plan-overlay: rgb(0 0 0 / 60%);
  box-sizing: border-box;
  width: min(var(--room-plan-source-width), 100vw - 2rem, (100dvh - 6rem) * var(--room-plan-image-ratio) + 4rem);
  max-width: calc(100vw - 2rem);
  max-height: calc(100dvh - 2rem);
  margin: auto;
  padding: var(--dia-front-space-32);
  border: 0;
  border-radius: var(--dia-front-radius-12);
  background: var(--dia-front-color-white);
  color: var(--dia-front-color-text);
  overflow: hidden;
}
.room-plan-dialog::backdrop {
  --room-plan-overlay: rgb(0 0 0 / 60%);
  background: var(--room-plan-overlay);
}
.room-plan-dialog__viewport {
  width: 100%;
  aspect-ratio: var(--room-plan-image-ratio);
  overflow: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  border-radius: var(--dia-front-radius-12);
  cursor: zoom-in;
}
.room-plan-dialog__viewport.is-zoomed {
  cursor: grab;
}
.room-plan-dialog__viewport.is-zoomed:active {
  cursor: grabbing;
}
.room-plan-dialog__viewport.is-zoomed .room-plan-dialog__image {
  width: 200%;
  max-width: none;
}
.room-plan-dialog__zoom {
  box-sizing: border-box;
  display: grid;
  flex: 0 0 auto;
  width: var(--dia-front-space-48);
  min-width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  min-height: var(--dia-front-space-48);
  place-items: center;
  padding: var(--dia-front-space-16);
  border: 0;
  border-radius: var(--dia-front-radius-8);
  background-color: var(--dia-front-color-cta-main);
  background-image: url("../images/icons/icon-close.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--dia-front-close-icon-size);
  box-shadow: none;
  color: var(--dia-front-color-heading);
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dia-front-transition-fast) ease;
}
.room-plan-dialog__zoom > :where(svg, img, span) {
  display: none;
}
.room-plan-dialog__zoom::before {
  content: none;
}
.room-plan-dialog__zoom:hover, .room-plan-dialog__zoom:active {
  background-color: var(--dia-front-color-cta-main-hover);
}
.room-plan-dialog__zoom:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring-inset);
}
@media (prefers-reduced-motion: reduce) {
  .room-plan-dialog__zoom {
    transition: none;
  }
}
.room-plan-dialog__zoom {
  position: absolute;
  top: var(--dia-front-space-16);
  right: calc(var(--dia-front-space-16) + var(--dia-front-space-48) + var(--dia-front-space-8));
  width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  background: var(--dia-front-color-cta-main);
}
.room-plan-dialog__zoom svg {
  display: block;
  width: var(--dia-front-space-24);
  height: var(--dia-front-space-24);
}
.room-plan-dialog__image {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: var(--room-plan-image-ratio);
  border-radius: var(--dia-front-radius-12);
  object-fit: contain;
}
.room-plan-dialog__close {
  box-sizing: border-box;
  display: grid;
  flex: 0 0 auto;
  width: var(--dia-front-space-48);
  min-width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  min-height: var(--dia-front-space-48);
  place-items: center;
  padding: var(--dia-front-space-16);
  border: 0;
  border-radius: var(--dia-front-radius-8);
  background-color: var(--dia-front-color-cta-main);
  background-image: url("../images/icons/icon-close.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--dia-front-close-icon-size);
  box-shadow: none;
  color: var(--dia-front-color-heading);
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dia-front-transition-fast) ease;
}
.room-plan-dialog__close > :where(svg, img, span) {
  display: none;
}
.room-plan-dialog__close::before {
  content: none;
}
.room-plan-dialog__close:hover, .room-plan-dialog__close:active {
  background-color: var(--dia-front-color-cta-main-hover);
}
.room-plan-dialog__close:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring-inset);
}
@media (prefers-reduced-motion: reduce) {
  .room-plan-dialog__close {
    transition: none;
  }
}
.room-plan-dialog__close {
  position: absolute;
  top: var(--dia-front-space-16);
  right: var(--dia-front-space-16);
  width: var(--dia-front-space-48);
  min-width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  min-height: var(--dia-front-space-48);
  background-color: var(--dia-front-color-cta-main);
  background-image: none;
}
.room-plan-dialog__close > img {
  display: block;
  width: var(--dia-front-space-16);
  height: var(--dia-front-space-16);
}
.room-plan-dialog__status {
  position: absolute;
  top: 50%;
  left: var(--dia-front-space-32);
  right: var(--dia-front-space-32);
  margin: 0;
  transform: translateY(-50%);
  background: var(--dia-front-color-white);
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body-small);
  line-height: var(--dia-front-line-height-body);
  text-align: center;
}
.room-plan-dialog__status a:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring);
}

.room-detail__plan-error {
  color: var(--dia-front-color-error);
  font-size: var(--dia-front-font-size-body-small);
}

.room-single__close {
  position: fixed;
  z-index: 20;
  top: max(var(--dia-front-sticky-offset), env(safe-area-inset-top, 0px));
  right: calc(var(--dia-front-space-16) + env(safe-area-inset-right, 0px));
  box-sizing: border-box;
  display: grid;
  flex: 0 0 auto;
  width: var(--dia-front-space-48);
  min-width: var(--dia-front-space-48);
  height: var(--dia-front-space-48);
  min-height: var(--dia-front-space-48);
  place-items: center;
  padding: var(--dia-front-space-16);
  border: 0;
  border-radius: var(--dia-front-radius-8);
  background-color: var(--dia-front-color-cta-main);
  background-image: url("../images/icons/icon-close.svg");
  background-position: center;
  background-repeat: no-repeat;
  background-size: var(--dia-front-close-icon-size);
  box-shadow: none;
  color: var(--dia-front-color-heading);
  font-size: 0;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  transition: background-color var(--dia-front-transition-fast) ease;
}
.room-single__close > :where(svg, img, span) {
  display: none;
}
.room-single__close::before {
  content: none;
}
.room-single__close:hover, .room-single__close:active {
  background-color: var(--dia-front-color-cta-main-hover);
}
.room-single__close:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring-inset);
}
@media (prefers-reduced-motion: reduce) {
  .room-single__close {
    transition: none;
  }
}

.room-single__close,
.dia-front-content-panel[data-dia-front-panel-type=room] .dia-front-content-panel__close {
  transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1), transform 0.28s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.28s cubic-bezier(0.4, 0, 0.2, 1);
}
@media (prefers-reduced-motion: reduce) {
  .room-single__close,
  .dia-front-content-panel[data-dia-front-panel-type=room] .dia-front-content-panel__close {
    transition: none;
  }
}

.room-detail {
  --room-detail-hero-height-mobile: 32.3125rem;
  --room-detail-hero-height-desktop: 37.75rem;
  --room-detail-content-start-mobile: 2.875rem;
  --room-detail-content-max: 85.625rem;
  --room-detail-gutter: var(--dia-front-space-16);
  --room-detail-copy-max: 56.4375rem;
  background: var(--dia-front-color-surface);
  color: var(--dia-front-color-text);
}
.room-detail__hero {
  isolation: isolate;
  position: relative;
  height: var(--room-detail-hero-height-mobile);
  margin: 0;
  overflow: clip;
}
.room-detail__hero-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.room-detail__photo-viewport {
  width: 100%;
  height: 100%;
  overflow: hidden;
  touch-action: pan-y;
}
.room-detail__photo-viewport:not(.swiper) {
  overflow-x: auto;
  scroll-snap-type: x mandatory;
}
.room-detail__photo-viewport:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring-inset);
}
.room-detail__photo-track {
  display: flex;
  width: 100%;
  height: 100%;
}
.room-detail__photo {
  flex: 0 0 100%;
  min-width: 0;
  height: 100%;
  scroll-snap-align: start;
}
.room-detail__photo-link {
  display: block;
  width: 100%;
  height: 100%;
}
.room-detail__photo-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.room-detail__control .dia-front-carousel-edge-navigation__icon {
  left: -37.455%;
}
.room-detail__control .dia-front-carousel-edge-navigation__icon .dia-front-carousel-edge-navigation__shape,
.room-detail__control .dia-front-carousel-edge-navigation__icon .dia-front-carousel-edge-navigation__arrow {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  max-width: none;
}
.room-detail__navigation {
  --dia-front-carousel-edge-control-width: 3.75rem;
  --dia-front-carousel-edge-control-height: 6rem;
  --dia-front-carousel-edge-control-bleed: -1.3125rem;
}
.room-detail__navigation .room-detail__control {
  top: 18rem;
}
@media (min-width: 992px) {
  .room-detail__navigation {
    --dia-front-carousel-edge-control-width: 5.5625rem;
    --dia-front-carousel-edge-control-height: 9rem;
    --dia-front-carousel-edge-control-bleed: -1.8125rem;
  }
  .room-detail__navigation .room-detail__control {
    top: 50%;
  }
}
.room-detail__photo-error {
  position: absolute;
  right: var(--dia-front-space-16);
  bottom: var(--dia-front-space-16);
  left: var(--dia-front-space-16);
  padding: var(--dia-front-space-16);
  background: var(--dia-front-color-white);
}
.room-detail__photo-error[hidden] {
  display: none;
}
.room-detail__gallery {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  width: 100%;
  max-width: var(--room-detail-copy-max);
  margin-top: var(--dia-front-space-32);
}
@media (min-width: 992px) {
  .room-detail__gallery {
    grid-template-columns: minmax(0, 550fr) minmax(0, 335fr);
    gap: 1.125rem;
    height: 25.875rem;
    margin-top: var(--dia-front-space-56);
  }
}
.room-detail__gallery-photo {
  position: relative;
  min-width: 0;
  overflow: clip;
  border-radius: var(--dia-front-radius-24);
  aspect-ratio: 328/229;
}
.room-detail__gallery-photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--dia-front-color-gallery-hover);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--dia-front-transition-fast) ease;
}
.room-detail__gallery-photo--secondary {
  display: none;
}
@media (min-width: 992px) and (hover: hover) and (pointer: fine) {
  .room-detail__gallery-photo--primary:hover::after {
    opacity: 1;
  }
}
@media (prefers-reduced-motion: reduce) {
  .room-detail__gallery-photo::after {
    transition: none;
  }
}
@media (min-width: 992px) {
  .room-detail__gallery-photo {
    height: 100%;
    aspect-ratio: auto;
  }
  .room-detail__gallery-photo--secondary {
    display: block;
  }
}
.room-detail__gallery-count {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: var(--dia-front-color-white);
  background: var(--dia-front-color-gallery-count);
  transition: background-color var(--dia-front-transition-fast) ease;
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-card-title-large);
  font-weight: var(--dia-front-font-weight-heading);
  pointer-events: none;
}
.room-detail__gallery-count--desktop {
  display: none;
}
@media (min-width: 992px) {
  .room-detail__gallery-count--desktop {
    display: grid;
  }
  .room-detail__gallery-count--mobile {
    display: none;
  }
}
.room-detail__gallery-photo:focus-within .room-detail__gallery-count {
  background: var(--dia-front-color-gallery-count-hover);
}
@media (hover: hover) and (pointer: fine) {
  .room-detail__gallery-photo:hover .room-detail__gallery-count {
    background: var(--dia-front-color-gallery-count-hover);
  }
}
@media (prefers-reduced-motion: reduce) {
  .room-detail__gallery-count {
    transition: none;
  }
}
.room-detail__hero-caption {
  position: absolute;
  right: var(--dia-front-space-16);
  bottom: var(--dia-front-space-16);
  left: var(--dia-front-space-16);
  color: var(--dia-front-color-white);
  font-size: var(--dia-front-font-size-caption);
  text-shadow: var(--dia-front-shadow-text-media);
}
.room-detail__hero-caption--notice {
  z-index: 1;
  margin: 0;
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body-small);
  font-style: italic;
  pointer-events: none;
}
@media (min-width: 992px) {
  .room-detail__hero-caption--notice {
    right: var(--dia-front-space-32);
    bottom: var(--dia-front-space-32);
    left: var(--dia-front-space-32);
  }
}
.room-detail__inner {
  width: min(100% - 2 * var(--room-detail-gutter), var(--room-detail-content-max));
  margin-inline: auto;
  padding-block: var(--room-detail-content-start-mobile) var(--dia-front-space-80);
}
.room-detail__plans {
  margin-bottom: var(--dia-front-space-16);
}
.room-detail__plan {
  display: inline-flex;
  align-items: center;
  gap: 0.3125rem;
  height: var(--dia-front-space-24);
  padding-inline: var(--dia-front-space-8);
  border-radius: 0.3125rem;
  color: var(--dia-front-color-white);
  background: var(--dia-front-color-menu-map);
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body-small);
  font-weight: var(--dia-front-font-weight-body-medium);
  line-height: 1.5;
  text-decoration: none;
  cursor: pointer;
  transform-origin: center;
  transition: color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), background-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), border-color var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), opacity var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard), transform var(--dia-front-transition-fast) var(--dia-front-motion-ease-standard);
}
.room-detail__plan:hover, .room-detail__plan:focus-visible {
  transform: none;
}
.room-detail__plan:active {
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  .room-detail__plan {
    transition: none;
  }
  .room-detail__plan:hover, .room-detail__plan:focus-visible, .room-detail__plan:active {
    transform: none;
  }
}
.room-detail__plan[hidden] {
  display: none;
}
.room-detail__plan img {
  width: 0.9375rem;
  height: 0.9375rem;
}
.room-detail__plan:hover {
  background: var(--dia-front-color-text);
}
.room-detail__plan:focus-visible {
  outline: 0;
  box-shadow: var(--dia-front-focus-ring);
}
.room-detail__title {
  margin: 0 0 var(--dia-front-space-32);
  color: var(--dia-front-color-heading);
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-section-title-mobile);
  font-weight: var(--dia-front-font-weight-heading);
  line-height: var(--dia-front-line-height-solid);
}
.room-detail__facts {
  display: flex;
  flex-wrap: wrap;
  gap: var(--dia-front-space-24);
  margin: 0 0 var(--dia-front-space-32);
  padding: 0;
  list-style: none;
  color: var(--dia-front-color-text);
  font-family: var(--dia-front-font-body);
  font-size: var(--dia-front-font-size-body);
  font-weight: var(--dia-front-font-weight-heading);
  line-height: var(--dia-front-line-height-body);
}
.room-detail__fact {
  display: inline-flex;
  align-items: center;
  gap: var(--dia-front-space-8);
  min-width: 0;
}
.room-detail__fact img {
  display: block;
  flex: 0 0 var(--dia-front-space-24);
  width: var(--dia-front-space-24);
  height: var(--dia-front-space-24);
}
.room-detail--has-facts .room-detail__title {
  margin-block-end: var(--dia-front-space-16);
}
.room-detail__copy {
  display: grid;
  gap: var(--dia-front-space-32);
  max-width: var(--room-detail-copy-max);
  min-width: 0;
  font-size: var(--dia-front-font-size-body);
  line-height: var(--dia-front-line-height-body);
  overflow-wrap: break-word;
  font-family: var(--dia-front-font-body-editorial-source);
  font-synthesis: none;
}
.room-detail__copy :where(p) {
  text-wrap: pretty;
}
.room-detail__copy :where(strong, b) {
  font-family: var(--dia-front-font-body);
  font-synthesis: none;
}
.room-detail__editorial-zones {
  display: grid;
  gap: var(--dia-front-space-24);
  width: 100%;
  max-width: var(--room-detail-copy-max);
  margin-top: var(--dia-front-space-32);
}
.room-detail__editorial-zone {
  min-width: 0;
}
.room-detail__editorial-icon {
  display: block;
  width: var(--dia-front-space-24);
  height: var(--dia-front-space-24);
  margin-block-end: var(--dia-front-space-16);
  visibility: hidden;
}
.room-detail__editorial-icon[data-room-icon-state=loaded] {
  visibility: visible;
}
.room-detail__editorial-title {
  margin: 0 0 var(--dia-front-space-16);
  color: var(--dia-front-color-heading);
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-card-title-small);
  font-weight: var(--dia-front-font-weight-heading);
  line-height: var(--dia-front-line-height-room-card-title);
}
.room-detail__editorial-list {
  display: grid;
  gap: var(--dia-front-space-4);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: var(--dia-front-font-size-body);
  line-height: var(--dia-front-line-height-body);
  overflow-wrap: break-word;
  font-family: var(--dia-front-font-body-editorial-source);
  font-synthesis: none;
}
.room-detail__editorial-list :where(p) {
  text-wrap: pretty;
}
.room-detail__editorial-list :where(strong, b) {
  font-family: var(--dia-front-font-body);
  font-synthesis: none;
}
.room-detail__editorial-list li > p {
  margin: 0;
}
.room-detail__editorial-list li > p + p {
  margin-top: var(--dia-front-space-16);
}
.room-detail :is(.room-detail__intro, .room-detail__body) > * {
  margin-block: 0;
}
.room-detail :is(.room-detail__intro, .room-detail__body) > * + * {
  margin-block-start: var(--dia-front-space-16);
}

.dia-front-content-panel__body .room-detail__hero {
  height: var(--room-detail-hero-height-mobile);
}
.dia-front-content-panel__body .room-detail__inner {
  padding-block: var(--room-detail-content-start-mobile) var(--dia-front-space-80);
}
.dia-front-content-panel__body .room-detail .dia-front-content-panel__title {
  margin: 0 0 var(--dia-front-space-32);
  color: var(--dia-front-color-heading);
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-section-title-mobile);
  font-weight: var(--dia-front-font-weight-heading);
  line-height: var(--dia-front-line-height-solid);
}
.dia-front-content-panel__body .room-detail .dia-front-content-panel__title[tabindex="-1"]:focus {
  outline: none;
}
.dia-front-content-panel__body .room-detail--has-facts .dia-front-content-panel__title {
  margin-block-end: var(--dia-front-space-16);
}

@media (min-width: 992px) {
  .room-detail__hero {
    height: var(--room-detail-hero-height-desktop);
  }
  .room-detail__inner {
    padding-block: var(--dia-front-space-64) var(--dia-front-space-144);
  }
  .room-detail__plans {
    margin-bottom: var(--dia-front-space-12);
  }
  .room-detail__plan {
    gap: var(--dia-front-space-12);
    height: 2.3rem;
    padding-inline: 0.4rem;
    border-radius: 0.4rem;
    font-size: var(--dia-front-font-size-body);
    font-weight: var(--dia-front-font-weight-heading);
  }
  .room-detail__plan img {
    width: 1.2rem;
    height: 1.2rem;
  }
  .room-detail__title {
    margin-block-end: var(--dia-front-space-56);
    font-size: var(--dia-front-font-size-section-title);
  }
  .room-detail--has-facts .room-detail__title {
    margin-block-end: var(--dia-front-space-24);
  }
  .room-detail__facts {
    margin-block-end: var(--dia-front-space-80);
  }
  .room-detail__copy {
    font-size: var(--dia-front-font-size-body-large);
  }
  .room-detail__editorial-zones {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: var(--dia-front-space-56);
    margin-top: var(--dia-front-space-56);
  }
  .room-detail__editorial-title {
    font-size: var(--dia-front-font-size-card-title-large);
  }
  .room-detail__editorial-icon {
    width: var(--dia-front-space-32);
    height: var(--dia-front-space-32);
  }
  .room-detail__editorial-list {
    gap: var(--dia-front-space-4);
    font-size: var(--dia-front-font-size-body-large);
  }
  .dia-front-content-panel__body .room-detail__hero {
    height: var(--room-detail-hero-height-desktop);
  }
  .dia-front-content-panel__body .room-detail__inner {
    padding-block: var(--dia-front-space-64) var(--dia-front-space-144);
  }
  .dia-front-content-panel__body .room-detail .dia-front-content-panel__title {
    margin-block-end: var(--dia-front-space-56);
    font-size: var(--dia-front-font-size-section-title);
  }
  .dia-front-content-panel__body .room-detail--has-facts .dia-front-content-panel__title {
    margin-block-end: var(--dia-front-space-24);
  }
}
@media (min-width: 992px) and (max-width: 1279px) {
  .room-detail__title {
    font-size: var(--dia-front-font-size-section-title-tablet);
  }
}
@media (min-width: 992px) and (max-width: 1439px) {
  .room-detail {
    --room-detail-gutter: var(--dia-front-space-32);
  }
}
.room-detail__booking-amount {
  font-family: var(--dia-front-font-heading);
  font-size: var(--dia-front-font-size-body);
  font-weight: var(--dia-front-font-weight-heading);
  line-height: var(--dia-front-line-height-solid);
}

.room-detail__booking--without-price {
  justify-content: center;
}

@media (min-width: 992px) {
  .room-detail__booking-amount {
    font-size: var(--dia-front-font-size-card-title-large);
  }
  .room-detail__booking--without-price {
    height: auto;
  }
  .room-detail__booking--without-price .room-detail__booking-action {
    margin-top: 0;
  }
}
@media (max-width: 991px) {
  .room-detail__editorial-zones {
    gap: var(--dia-front-space-40);
  }
  .room-detail__editorial-icon {
    margin-block-end: var(--dia-front-space-8);
  }
  .room-detail__editorial-title {
    margin-block-end: 0;
  }
}
