/* responsive.css
   Central responsive override layer. Keep it loaded after page-specific CSS.
   Breakpoint map:
   - 1440: common desktop / large laptop
   - 1366: 13-inch laptop
   - 1180+: desktop / small laptop and up
   - 768-1179: tablet / iPad overrides
   - 375-767: phones
   - <=1179: mobile header, services carousel, guest carousel
   - <=374: narrow legacy phones
*/

@media (max-width: 1440px) {
  :root {
    --container-wide: min(100vw - 48px, 1480px);
    --container: min(100vw - 48px, 1180px);
  }

  .hero-booking-bar,
  .booking-widget {
    padding-left: 18px;
    padding-right: 18px;
  }

  .hero-booking-bar__field,
  .booking-widget__toggle {
    padding-left: 18px;
  }

  .home-hero__inner {
    width: min(100vw - 48px, 1530px);
    padding-top: calc(var(--header-height) + 210px);
  }

  .home-rooms__inner {
    padding-left: 48px;
    padding-right: 48px;
    grid-template-columns: minmax(320px, 0.9fr) minmax(520px, 1.1fr);
    gap: 0 72px;
  }

  .home-room-panel {
    height: 540px;
  }

  .home-service-card__content {
    padding-left: 40px;
    padding-right: 40px;
  }

  .restaurant-page--restaurant .dining-section,
  .spa-section,
  .dessange-section {
    padding-top: 128px;
  }

  .restaurant-page--restaurant .dining-photo,
  .spa-section .dining-gallery--spa .dining-photo,
  .dessange-gallery__photo,
  .conference-detail__photo {
    min-height: 520px;
    height: 520px;
  }

  .booking-room-list,
  .booking-services,
  .booking-confirm {
    width: min(1160px, calc(100vw - 48px));
  }
}

@media (min-width: 1367px) and (max-width: 1440px) {
  .home-hero {
    height: 100svh;
    min-height: 100svh;
    color: #fff;
  }

  .home-hero__media {
    inset: 0;
    width: auto;
    height: 100%;
    background-position: calc(50% - 61px) center;
    background-size: 1859px 100%;
  }

  .home-hero__inner {
    width: min(1312px, calc(100vw - 128px));
    min-height: 100svh;
    padding: clamp(190px, 36.9186046512svh, 381px) 0 clamp(24px, 5.4263565891svh, 56px);
  }

  .home-hero__content {
    max-width: 415px;
    margin: 0 0 auto;
  }

  .home-hero .home-display-title {
    width: 415px;
    max-width: 100%;
    margin: 0 0 16px;
    font-size: 70px;
    line-height: 70px;
  }

  .home-hero__text {
    max-width: 409px;
    color: #fff;
    font-size: 24px;
    line-height: normal;
  }

  .hero-booking-bar {
    --hero-booking-search-width: 231px;
    grid-template-columns: repeat(2, minmax(240px, 261px)) 231px;
    width: 100%;
    height: 113px;
    min-height: 113px;
    padding: 17px 19px 17px 20px;
  }

  .hero-booking-bar__field,
  .hero-booking-bar__search {
    min-height: 79px;
  }

  .hero-booking-bar__field {
    padding: 13px 24px 13px 20px;
  }

  .hero-booking-bar__search {
    padding: 16px 16px 14px;
  }

  .home-story__inner {
    width: min(1312px, calc(100vw - 128px));
    min-height: 100svh;
    margin: 0 auto;
    padding-top: 310px;
    justify-content: flex-start;
    gap: 83px;
  }

  .home-story__crest {
    flex: 0 0 474.231px;
    max-width: 474.231px;
  }

  .home-story__content {
    width: 641px;
    max-width: 641px;
  }

  .home-story__tags {
    width: auto;
    margin-bottom: 24px;
  }

  .home-story .home-display-subtitle {
    font-size: 70px;
    line-height: 75px;
  }

  .home-story__text {
    max-width: 641px;
    margin-top: 24px;
    line-height: normal;
  }

  .home-scroll-next {
    margin-top: 51px;
    margin-left: 111px;
  }

  .home-rooms {
    background: #fffcf3;
    border: 0;
  }

  .home-rooms__inner {
    width: min(1312px, calc(100vw - 128px));
    margin: 0 auto;
    padding: 96px 0 0;
    grid-template-columns: 420px 754px;
    gap: 0 138px;
  }

  .home-rooms__aside {
    align-self: flex-start;
    padding-top: 0;
  }

  .home-rooms__aside-inner {
    top: 96px;
    max-width: 420px;
  }

  .home-rooms .home-display-subtitle {
    margin-bottom: 16px;
    font-size: 70px;
    line-height: 75px;
  }

  .home-rooms__text {
    max-width: 420px;
    margin-bottom: 36px;
    line-height: normal;
  }

  .home-rooms__button {
    width: 198px;
    min-height: 49px;
    padding: 0;
  }

  .home-rooms__gallery {
    width: 754px;
    gap: 48px;
  }

  .home-room-panel {
    height: 600px;
  }

  .home-services__grid {
    min-height: min(900px, 100svh);
    grid-template-columns: 485px 476px minmax(0, 1fr);
  }

  .home-service-card {
    min-height: min(900px, 100svh);
    height: auto;
    display: flex;
    align-items: flex-end;
  }

  .home-service-card__content {
    position: relative;
    left: auto;
    top: auto;
    bottom: auto;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0 45px 96px;
    box-sizing: border-box;
  }

  .home-service-card.is-spa .home-service-card__content {
    padding-left: 43px;
    padding-right: 43px;
  }

  .home-service-card.is-dessange .home-service-card__content {
    padding-left: 45px;
    padding-right: 45px;
  }

  .home-service-card h3 {
    margin-bottom: 16px;
    font-size: 65px;
    line-height: 65px;
    white-space: nowrap;
  }

  .home-service-card p {
    max-width: 390px;
    margin-bottom: 24px;
    font-size: 24px;
    line-height: 1.2;
  }

  .home-conference {
    min-height: min(900px, 100svh);
    height: auto;
  }

  .home-conference__content {
    left: 64px;
    top: auto;
    bottom: 120px;
    width: 514px;
  }

  .home-conference__content h2 {
    margin-bottom: 16px;
    font-size: 65px;
    line-height: 65px;
  }

  .home-conference__content p {
    max-width: 514px;
    font-size: 24px;
    line-height: 1.2;
  }

  .home-conference__button {
    margin-top: 36px;
  }

  .home-guests {
    height: auto;
    min-height: min(730px, 100svh);
  }

  .home-guests__inner {
    min-height: min(730px, 100svh);
    height: auto;
  }

  .home-guests__title {
    top: 90px;
    width: 423px;
    font-size: 65px;
    line-height: 75px;
  }

  .home-guests__carousel {
    top: 265px;
  }

  .home-guests__viewport {
    width: 1089px;
    margin: 0 auto;
  }

  .home-guests__track {
    gap: 25px;
  }

  .home-guest-card {
    flex: 0 0 532px;
    width: 532px;
    grid-template-columns: 170px 300px;
    gap: 30px;
  }

  .home-guest-card__text {
    font-size: 26px;
    line-height: 30px;
  }

  .home-guest-card__name {
    font-size: 26px;
    line-height: 28px;
  }

  .home-guests__nav {
    --button-circle-size: 50px;
    top: 75px;
  }

  .home-guests__nav--prev {
    left: 16px;
  }

  .home-guests__nav--next {
    right: 16px;
  }

  .home-footer-section,
  .home-footer-section .site-footer {
    height: 630px;
    min-height: 630px;
  }

  .home-footer-section .site-footer {
    align-items: flex-start;
  }

  .site-footer__inner {
    width: 100%;
    height: 100%;
    padding: 54px 0 0;
  }

  .site-footer__brand {
    margin: 0 0 70.477px;
  }

  .site-footer__crest {
    width: 410px;
    height: 190.523px;
    max-width: none;
    aspect-ratio: auto;
    transform: translateX(-3px);
  }

  .site-footer__columns {
    width: 1312px;
    max-width: none;
    margin: 0 auto;
    grid-template-columns: 239px 238px 238px 238px 239px;
    justify-content: start;
    gap: 30px;
  }

  .site-footer__column h3 {
    margin-bottom: 21px;
    font-size: 16px;
    line-height: normal;
    letter-spacing: 3.2px;
  }

  .site-footer__column:nth-child(3) h3,
  .site-footer__column:nth-child(5) h3 {
    margin-bottom: 22px;
  }

  .site-footer__column:nth-child(4) h3 {
    margin-bottom: 24px;
  }

  .site-footer__text-group {
    gap: 0;
  }

  .site-footer__text,
  .site-footer__nav {
    font-size: 18px;
    line-height: normal;
  }

  .site-footer__column:nth-child(1) .site-footer__text {
    font-size: 24px;
    line-height: 28px;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(2) {
    margin-bottom: 10px;
  }

  .site-footer__nav {
    gap: 10px;
  }

  .site-footer__nav--social {
    gap: 6px;
  }

  .site-footer__social-link {
    gap: 9px;
  }

  .site-footer__nav--social .site-footer__social-link:nth-child(2) {
    gap: 7px;
  }

  .site-footer__social-link img {
    width: 15px;
    height: 15px;
  }

  .site-footer__nav--social .site-footer__social-link:nth-child(3) img {
    width: 16.667px;
    height: 16.667px;
  }

  .spa-page .restaurant-hero {
    min-height: min(900px, 100svh);
    height: auto;
  }

  .spa-page .restaurant-hero__media,
  .spa-page .restaurant-hero__overlay {
    inset: -2px 0 0;
  }

  .spa-page .restaurant-shell--hero {
    width: min(1312px, calc(100vw - 128px));
  }

  .spa-page .restaurant-hero__content {
    max-width: 534px;
    margin-left: 0;
  }

  .spa-page .restaurant-hero__crest {
    width: 222px;
    margin-bottom: 20px;
  }

  .spa-page .restaurant-title {
    max-width: 534px;
    font-size: 65px;
    line-height: 65px;
  }

  .spa-page .restaurant-lead {
    max-width: 534px;
    font-size: 24px;
    line-height: 29px;
  }

  .spa-page .restaurant-hero__actions--dining {
    gap: 24px;
    margin-top: 48px;
  }

  .spa-page .restaurant-button--tab {
    gap: 10px;
    width: 180px;
    padding: 0 32px;
    font-weight: 400;
    letter-spacing: 1.8px;
  }

  .spa-page #spa-main {
    min-height: min(900px, 100svh);
    height: auto;
    padding: 184px 0 77px;
  }

  .spa-page #spa-main .restaurant-shell {
    width: min(1312px, calc(100vw - 128px));
  }

  .spa-page #spa-main .dining-section__intro {
    grid-template-columns: 417px 422px minmax(0, 1fr);
    column-gap: 24px;
    row-gap: 24px;
    margin-bottom: 44px;
  }

  .spa-page #spa-main .dining-section__heading {
    width: 863px;
    transform: translateX(4px);
  }

  .spa-page #spa-main .dining-section__heading .restaurant-section-title {
    font-size: 65px;
    line-height: 65px;
  }

  .spa-page #spa-main .dining-section__copy {
    transform: translateX(4px);
  }

  .spa-page #spa-main .dining-section__copy p {
    max-width: none;
    font-size: 22px;
    line-height: 26px;
  }

  .spa-page #spa-main .dining-section__copy:nth-child(2) p {
    width: 417px;
  }

  .spa-page #spa-main .dining-section__copy:nth-child(3) p {
    width: 422px;
  }

  .spa-page #spa-main .dining-section__controls {
    gap: 24px;
    align-self: end;
    padding-top: 0;
  }

  .spa-page #spa-main .dining-section__menu-button {
    width: 162px;
    padding: 0 32px;
  }

  .spa-page #spa-main .dining-section__nav {
    gap: 16px;
  }

  .spa-page #spa-main .dining-gallery--spa {
    grid-template-columns: 755px 533px;
    column-gap: 24px;
    row-gap: 24px;
  }

  .spa-page #spa-main .dining-gallery--spa .dining-photo {
    height: 500px;
    min-height: 500px;
  }

  .conference-detail {
    min-height: min(900px, 100svh);
    height: auto;
    padding: 140px 0 48px;
  }

  .conference-detail__shell {
    width: min(1312px, calc(100vw - 128px));
    grid-template-columns: 421px 422px minmax(0, 421px);
    column-gap: 24px;
    row-gap: 24px;
  }

  .conference-detail__back {
    width: 48.995px;
    height: 48.995px;
    margin-bottom: 0;
    transform: translateX(1px);
  }

  .conference-detail__title {
    width: 867px;
    font-size: 65px;
    line-height: 65px;
  }

  .conference-detail__copy {
    width: 867px;
    grid-template-columns: 421px 422px;
    gap: 24px;
    margin-top: 24px;
    font-size: 22px;
    line-height: 26px;
  }

  .conference-detail__copy p {
    max-width: none;
  }

  .conference-detail__actions {
    gap: 24px;
    margin-bottom: 0;
    transform: translate(1px, -4px);
  }

  .conference-detail__price {
    width: 162px;
    padding: 0 32px;
  }

  .conference-detail__arrows {
    gap: 16px;
  }

  .conference-detail__gallery {
    width: 1311px;
    grid-template-columns: 754px 533px;
    justify-content: start;
    gap: 24px;
    margin-top: 20px;
    transform: translateX(1px);
  }

  .conference-detail__photo {
    height: 500px;
    min-height: 500px;
  }

  .dessange-page .restaurant-hero {
    min-height: min(900px, 100svh);
    height: auto;
  }

  .dessange-page .restaurant-hero__media,
  .dessange-page .restaurant-hero__overlay {
    inset: -2px 0 0;
  }

  .dessange-page .restaurant-shell--hero {
    width: min(1312px, calc(100vw - 128px));
  }

  .dessange-hero__content--nobil {
    max-width: 532px;
    padding-left: 1px;
  }

  .dessange-hero__content--nobil .restaurant-hero__crest {
    width: 195px;
    height: 160px;
    margin-bottom: 24px;
  }

  .dessange-hero__content--nobil .restaurant-hero__crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .dessange-hero__title {
    display: block;
    max-width: 532px;
    font-family: var(--font-heading);
    font-size: 60px;
    font-weight: 400;
    line-height: 50px;
    text-transform: none;
  }

  .dessange-hero__content--nobil .restaurant-lead {
    max-width: 532px;
    margin-top: 20px;
    font-size: 24px;
    line-height: 29px;
  }

  .dessange-page .restaurant-hero__actions--dining {
    gap: 24px;
    margin-top: 19px;
  }

  .dessange-page .restaurant-button--tab {
    gap: 10px;
    width: 180px;
    padding: 0 32px;
    font-weight: 400;
    letter-spacing: 1.8px;
  }

  .dessange-page #dessange-main {
    min-height: min(900px, 100svh);
    height: auto;
    padding: 184px 0 77px;
  }

  .dessange-page #dessange-main .restaurant-shell {
    width: min(1312px, calc(100vw - 128px));
  }

  .dessange-page #dessange-main .dessange-section__intro {
    grid-template-columns: 421px 422px minmax(0, 421px);
    column-gap: 24px;
    row-gap: 24px;
    margin-bottom: 44px;
  }

  .dessange-page #dessange-main .dining-section__heading {
    grid-column: 1 / span 2;
    width: 863px;
    transform: translateX(4px);
  }

  .dessange-page #dessange-main .restaurant-section-title {
    max-width: none;
    font-size: 65px;
    line-height: 65px;
    letter-spacing: 0;
  }

  .dessange-page #dessange-main .dining-section__copy {
    transform: translateX(4px);
  }

  .dessange-page #dessange-main .dining-section__copy p {
    max-width: none;
    font-size: 22px;
    line-height: 26px;
  }

  .dessange-page #dessange-main .dining-section__copy:nth-child(2) p {
    width: 416px;
  }

  .dessange-page #dessange-main .dining-section__copy:nth-child(3) p {
    width: 422px;
  }

  .dessange-page #dessange-main .dining-section__controls {
    gap: 24px;
    align-self: end;
    padding-top: 0;
  }

  .dessange-page #dessange-main .dining-section__menu-button {
    width: 162px;
    padding: 0 32px;
    font-weight: 500;
    letter-spacing: 2.4px;
  }

  .dessange-page #dessange-main .dining-section__nav {
    gap: 16px;
  }

  .dessange-page #dessange-main .dessange-gallery {
    width: 1313px;
    max-width: calc(100vw - 127px);
    grid-template-columns: 421px 423px 421px;
    gap: 24px;
  }

  .dessange-page #dessange-main .dessange-gallery__photo {
    height: 500px;
    min-height: 500px;
  }

  .restaurant-page--restaurant .restaurant-hero {
    min-height: min(900px, 100svh);
    height: auto;
  }

  .restaurant-page--restaurant .restaurant-shell--hero {
    width: min(1312px, calc(100vw - 128px));
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining {
    max-width: 533px;
    padding-left: 0;
  }

  .restaurant-page--restaurant .restaurant-lead {
    max-width: 533px;
    font-size: 24px;
    line-height: normal;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining {
    gap: 24px;
  }

  .restaurant-page--restaurant .restaurant-button--tab {
    width: 165px;
    padding: 0 32px;
  }

  .restaurant-page--restaurant #restaurant-main {
    min-height: min(900px, 100svh);
    height: auto;
    padding: 184px 0 47px;
  }

  .restaurant-page--restaurant #restaurant-main .restaurant-shell {
    width: min(1312px, calc(100vw - 128px));
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__intro {
    grid-template-columns: 421px 422px minmax(0, 421px);
    grid-template-areas:
      "heading heading ."
      "copy-left copy-right controls";
    column-gap: 24px;
    row-gap: 24px;
    margin-bottom: 48px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__heading {
    grid-column: 1 / span 2;
    width: 867px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__heading .restaurant-section-title {
    font-size: 65px;
    line-height: 65px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__copy p {
    max-width: none;
    font-size: 22px;
    line-height: 26px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__controls {
    gap: 24px;
    align-self: end;
    margin-top: 0;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__menu-button {
    width: 200px;
    padding: 0 32px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__nav {
    gap: 16px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-gallery--restaurant {
    grid-template-columns: minmax(0, 867fr) minmax(0, 422fr);
    column-gap: 24px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-photo {
    height: 500px;
    min-height: 500px;
  }

  .restaurant-page--restaurant #terrace-main {
    min-height: min(900px, 100svh);
    height: auto;
    padding: 184px 0 47px;
  }

  .restaurant-page--restaurant #terrace-main .restaurant-shell {
    width: min(1312px, calc(100vw - 128px));
  }

  .restaurant-page--restaurant #terrace-main .dining-section__intro {
    grid-template-columns: 421px 422px minmax(0, 421px);
    grid-template-areas:
      "heading heading ."
      "copy-left copy-right controls";
    column-gap: 24px;
    row-gap: 24px;
    margin-bottom: 48px;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__heading {
    grid-column: 1 / span 2;
    width: 867px;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__heading .restaurant-section-title {
    font-size: 65px;
    line-height: 65px;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__copy p {
    max-width: none;
    font-size: 22px;
    line-height: 26px;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__controls {
    gap: 24px;
    align-self: end;
    margin-top: 0;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__menu-button {
    width: 200px;
    padding: 0 32px;
  }

  .restaurant-page--restaurant #terrace-main .dining-section__nav {
    gap: 16px;
  }

  .restaurant-page--restaurant #terrace-main .dining-gallery--terrace {
    grid-template-columns: minmax(0, 755fr) minmax(0, 533fr);
    column-gap: 24px;
  }

  .restaurant-page--restaurant #terrace-main .dining-photo {
    height: 500px;
    min-height: 500px;
  }

  .booking-flow {
    padding-top: 167px;
  }

  .booking-flow__head {
    width: min(1312px, calc(100vw - 128px));
  }

  .booking-progress {
    width: 860px;
    margin-top: 44px;
    grid-template-columns: 280px 282px 282px;
    column-gap: 8px;
  }

  .booking-progress__step {
    min-height: 64px;
    padding-top: 38px;
    line-height: 18px;
  }

  .booking-progress__step::before {
    left: 38px;
    width: calc(100% - 38px);
    max-width: none;
  }

  .booking-widget {
    min-height: 113px;
    margin-top: 48px;
    padding: 17px 16px 17px 19px;
    grid-template-columns: 261px 261px 261px 231px;
    justify-content: center;
  }

  .booking-widget__field,
  .booking-widget__search {
    min-height: 77px;
  }

  .booking-widget__toggle {
    padding: 13px 48px 13px 20px;
  }

  .booking-widget__label {
    margin-bottom: 8px;
    line-height: 18px;
  }

  .booking-widget__value {
    line-height: 19px;
  }

  .booking-widget__field::after {
    right: 19px;
    top: 51px;
  }

  .booking-widget__field--special::after {
    top: 50%;
  }

  .booking-widget__search {
    padding: 16px 15px 12px;
  }

  .booking-widget__button {
    width: 198px;
    min-height: 49px;
    height: 49px;
    padding: 0 32px;
    justify-self: end;
  }

  .booking-room-list {
    width: min(1138px, calc(100vw - 302px));
    margin-top: 55px;
    gap: 48px;
  }

  .booking-room-list .booking-room-card {
    height: 374px;
    min-height: 374px;
    grid-template-columns: 406px minmax(0, 1fr);
    box-sizing: border-box;
  }

  .booking-room-list .room-card__media {
    min-height: 100%;
  }

  .booking-room-list .room-card__gallery-dots {
    bottom: 20px;
    gap: 6.5px;
  }

  .booking-room-list .room-card__body {
    grid-template-rows: 262px 110px;
  }

  .booking-room-list .room-card__top {
    padding: 18px 25px 0 27px;
  }

  .booking-room-list .room-card__copy,
  .booking-room-list .room-card__text {
    max-width: 440px;
  }

  .booking-room-list .room-card__price {
    right: 22px;
  }

  .booking-room-list .room-card__bottom {
    align-items: flex-start;
    min-height: 110px;
    padding: 8px 22px 0 27px;
  }

  .booking-room-list .room-card__button {
    width: 180px;
    min-height: 49px;
    height: 49px;
    margin-top: 23px;
    padding: 0 32px;
  }

  .booking-services {
    width: min(1138px, calc(100vw - 302px));
    margin-top: 49px;
    gap: 40px;
  }

  .booking-services__form {
    width: 100%;
    gap: 40px;
  }

  .booking-services > .booking-room-card {
    position: relative;
    width: 100%;
    height: 395px;
    min-height: 395px;
    border: 0;
    grid-template-columns: 406px minmax(0, 1fr);
    background: transparent;
    overflow: visible;
  }

  .booking-services > .booking-room-card::before {
    content: "";
    position: absolute;
    left: 0;
    top: 21px;
    z-index: 0;
    width: 100%;
    height: 374px;
    border: 1px solid var(--booking-line);
    pointer-events: none;
  }

  .booking-services > .booking-room-card::after {
    content: "";
    position: absolute;
    left: 434px;
    top: 283px;
    z-index: 2;
    width: 680px;
    height: 1px;
    background: var(--booking-line);
    pointer-events: none;
  }

  .booking-services > .booking-room-card .room-card__media,
  .booking-services > .booking-room-card .room-card__body {
    height: 374px;
    min-height: 374px;
    align-self: end;
    z-index: 1;
  }

  .booking-services > .booking-room-card .room-card__media {
    width: 406px;
  }

  .booking-services > .booking-room-card .room-card__body {
    grid-template-rows: 262px 112px;
  }

  .booking-services > .booking-room-card .room-card__top {
    padding: 18px 25px 0 27px;
  }

  .booking-services > .booking-room-card .room-card__copy {
    max-width: 440px;
    padding-top: 4px;
  }

  .booking-services > .booking-room-card .room-card__title {
    margin-bottom: 10px;
  }

  .booking-services > .booking-room-card .room-card__text {
    max-width: 440px;
  }

  .booking-services > .booking-room-card .room-card__price {
    top: 156px;
    right: 24px;
  }

  .booking-services > .booking-room-card .room-card__bottom {
    display: block;
    min-height: 0;
    padding: 0;
    border: 0;
  }

  .booking-services > .booking-room-card .room-card__details {
    position: absolute;
    left: 28px;
    top: auto;
    bottom: 31px;
    z-index: 3;
    width: 269px;
  }

  .booking-room-card--selected .booking-service-actions {
    position: absolute;
    right: 24px;
    bottom: 31px;
    z-index: 3;
    gap: 16px;
  }

  .booking-room-card--selected .booking-service-actions .button-secondary,
  .booking-room-card--selected .booking-service-actions .button-primary {
    min-height: 49px;
    height: 49px;
    padding: 0 10px;
    font-size: 12px;
  }

  .booking-room-card--selected .booking-service-actions .button-secondary {
    width: 185px;
    min-width: 185px;
    letter-spacing: 1.8px;
  }

  .booking-room-card--selected .booking-service-actions .button-primary {
    width: 180px;
    min-width: 180px;
    letter-spacing: 2.4px;
  }

  .booking-extra {
    width: 100%;
    height: 222px;
    min-height: 222px;
    grid-template-columns: 223px minmax(0, 1fr) 190px;
  }

  .booking-extra__image {
    width: 180px;
    height: 180px;
    margin: 20px;
  }

  .booking-extra__copy {
    padding: 30px 23px;
  }

  .booking-extra__copy h2 {
    width: 475px;
    font-size: 40px;
    line-height: 47px;
  }

  .booking-extra__copy p {
    max-width: 475px;
    margin-top: 10px;
    line-height: normal;
  }

  .booking-extra__side {
    padding: 81px 23px 30px 0;
  }

  .booking-extra__price,
  .booking-transfer__price,
  .booking-total-card__price {
    font-size: 22px;
    line-height: 26px;
  }

  .booking-extra__price span,
  .booking-transfer__price span,
  .booking-total-card__price em {
    font-size: 16px;
    line-height: 19px;
  }

  .booking-extra__toggle,
  .booking-transfer__button {
    width: 142px;
    min-height: 49px;
    height: 49px;
    padding: 0 14px;
    flex-basis: 142px;
    letter-spacing: 1.8px;
  }

  .booking-transfer {
    width: 100%;
  }

  .booking-transfer.is-open {
    height: 1157px;
    min-height: 1157px;
  }

  .booking-transfer__head {
    height: 85px;
    min-height: 85px;
    padding: 19px 23px 20px 22px;
    align-items: flex-start;
  }

  .booking-transfer h2 {
    font-size: 36px;
    line-height: 42px;
  }

  .booking-transfer__plus {
    width: 50px;
    height: 50px;
    margin-top: -2px;
  }

  .booking-transfer__body {
    min-height: 1072px;
    height: 1072px;
    padding: 51px 23px 28px;
  }

  .booking-transfer__workflow {
    max-width: 881px;
    gap: 14px;
  }

  .booking-transfer__step {
    min-height: 170px;
    padding-left: 50px;
  }

  .booking-transfer__step--arrival {
    min-height: 443px;
    margin-top: -4px;
  }

  .booking-transfer__step:not(:last-child)::after {
    left: 14px;
    top: 43px;
    height: 127px;
  }

  .booking-transfer__step--arrival::after {
    left: 14px;
    top: 43px;
    height: calc(100% - 8px);
  }

  .booking-transfer__step-head {
    margin-left: -50px;
    margin-bottom: 35px;
  }

  .booking-transfer__step--arrival .booking-transfer__step-head {
    margin-bottom: 20px;
  }

  .booking-transfer__step-head h3 {
    font-size: 28px;
    line-height: 33px;
  }

  .booking-transfer__choices {
    max-width: 474px;
  }

  .booking-transfer__fields {
    grid-template-columns: 260px 263px 260px;
    gap: 26px 24px;
  }

  .booking-transfer-field__split {
    grid-template-columns: 122px 125px;
    gap: 16px;
  }

  .booking-transfer__guests {
    left: 23px;
    bottom: 170px;
    display: flex;
    align-items: center;
    gap: 27px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-transfer__guests::before {
    content: "";
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    border-radius: 50%;
    background: #dbd6c2 url("../images/figma/room-modal/icon-people.svg") center / 17px 17px no-repeat;
  }

  .booking-transfer__price {
    right: 24px;
    bottom: 88px;
  }

  .booking-transfer__button {
    right: 23px;
    bottom: 24px;
  }

  .booking-total-card {
    position: relative;
    width: 100%;
    height: 210px;
    min-height: 210px;
    margin-top: 10px;
    padding: 0;
    display: block;
  }

  .booking-total-card h2 {
    position: absolute;
    left: 21px;
    top: 27px;
    width: 199px;
    font-size: 36px;
    line-height: 42px;
  }

  .booking-total-card__price {
    position: absolute;
    right: 23px;
    top: 41px;
    width: 110px;
    text-align: right;
  }

  .booking-total-card__price span {
    margin-top: 4px;
    font-size: 18px;
    line-height: 21px;
  }

  .booking-total-card__price strong {
    font-size: 22px;
    line-height: 26px;
  }

  .booking-total-card__actions {
    position: absolute;
    right: 24px;
    bottom: 26px;
    display: flex;
    gap: 16px;
  }

  .booking-total-card__actions .button-secondary,
  .booking-total-card__actions .button-primary {
    min-height: 49px;
    height: 49px;
    padding: 0 10px;
    font-size: 12px;
  }

  .booking-total-card__actions .button-secondary {
    width: 185px;
    min-width: 185px;
    letter-spacing: 1.8px;
  }

  .booking-total-card__actions .button-secondary.button-icon-left.is-phone {
    width: 185px;
    min-width: 185px;
    padding: 0 10px;
  }

  .booking-total-card__actions .button-primary {
    width: 180px;
    min-width: 180px;
    letter-spacing: 2.4px;
  }

  .booking-confirm {
    width: min(1138px, calc(100vw - 302px));
    margin-top: 72px;
    grid-template-columns: 446px 638px;
    gap: 54px;
  }

  .booking-confirm__column {
    width: 446px;
  }

  .booking-confirm__summary {
    width: 638px;
    min-height: 1192px;
    padding-top: 2px;
    padding-left: 56px;
    border-left: 1px solid var(--booking-line, #c6c1a1);
  }

  .booking-confirm__section-title,
  .booking-confirm__summary-title {
    gap: 20px;
    margin-bottom: 50px;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-confirm__section-title span,
  .booking-confirm__summary-title span {
    width: 30px;
    height: 30px;
    font-size: 20px;
    line-height: normal;
  }

  .booking-confirm__section-title--payment {
    margin-top: 87px;
  }

  .booking-confirm__fields {
    gap: 40px;
  }

  .booking-confirm .booking-field {
    min-height: 30px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-confirm .booking-field:not(.booking-field--textarea) {
    height: 30px;
  }

  .booking-confirm .booking-field__control {
    box-sizing: border-box;
    height: 30px;
    min-height: 30px;
    padding: 10px 0 0;
    line-height: normal;
  }

  .booking-confirm .booking-field__label {
    top: 0;
    line-height: normal;
  }

  .booking-confirm .booking-field:focus-within .booking-field__label,
  .booking-confirm input.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-confirm textarea.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-confirm .booking-field.has-value .booking-field__label,
  .booking-confirm .booking-field__control:-webkit-autofill + .booking-field__label {
    top: -10px;
  }

  .booking-confirm .booking-field--select::after {
    right: 2px;
    bottom: 10px;
  }

  .booking-confirm .booking-field--textarea {
    min-height: 117px;
  }

  .booking-confirm .booking-field--textarea .booking-field__label {
    top: 0;
  }

  .booking-confirm .booking-field--textarea .booking-field__control {
    min-height: 82px;
    height: 82px;
    margin-top: 30px;
    padding: 10px;
  }

  .booking-payment-grid {
    grid-template-columns: 118px 300px;
    column-gap: 27px;
    row-gap: 40px;
  }

  .booking-payment-grid__hint {
    padding-top: 0;
    padding-left: 3px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-payment-grid__hint:nth-of-type(2) {
    padding-top: 0;
  }

  .booking-payment-grid__hint:nth-of-type(3) {
    padding-top: 0;
  }

  .booking-payment-grid__split {
    grid-template-columns: 140px 140px;
    gap: 20px;
  }

  .booking-confirm__check {
    grid-template-columns: 21px 400px;
    gap: 20px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-confirm__check--dark {
    margin-top: 10px;
  }

  .booking-confirm__check--light {
    margin-top: -10px;
  }

  .booking-confirm__submit {
    min-height: 49px;
    height: 49px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 2.4px;
  }

  .booking-confirm__summary-title {
    width: 581px;
    margin-bottom: 50px;
  }

  .booking-confirm__summary-title strong {
    flex: 0 0 279px;
    width: 279px;
    font-size: 20px;
    line-height: normal;
  }

  .booking-confirm__room-label {
    width: 581px;
    margin-bottom: 27px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-confirm__room {
    width: 581px;
    grid-template-columns: 200px 358px;
    gap: 23px;
    align-items: end;
  }

  .booking-confirm__image {
    width: 200px;
    height: 250px;
  }

  .booking-confirm__room-body {
    width: 358px;
  }

  .booking-confirm__room-body h2 {
    width: 100%;
    margin-bottom: 5px;
    font-size: 28px;
    line-height: normal;
    white-space: nowrap;
  }

  .booking-confirm__room-body em {
    width: 228px;
    margin-bottom: 52px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-confirm__service-list {
    width: 257px;
    gap: 5px;
    margin-bottom: 5px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-confirm__room-body p {
    width: 257px;
    margin-bottom: 52px;
    gap: 15px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-confirm__room-bottom {
    width: 358px;
    gap: 20px;
    font-size: 18px;
    line-height: normal;
  }

  .booking-confirm__total {
    width: 581px;
    margin-top: 50px;
    padding-top: 24px;
    font-size: 28px;
    line-height: normal;
  }

  .booking-flow.booking-flow--success {
    min-height: 100svh;
    padding-top: clamp(180px, 22.87svh, 252px);
    padding-bottom: 0;
    background: #fffced;
  }

  .booking-flow--success .booking-success {
    width: 505px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 50px;
  }

  .booking-flow--success .booking-success__logo {
    width: 794.086px;
    max-width: none;
    height: auto;
  }

  .booking-flow--success .booking-success p {
    width: 371px;
    font-size: 32px;
    line-height: 40px;
  }

  .booking-flow--success .booking-success .button-primary {
    width: 165px;
    min-width: 165px;
    min-height: 49px;
    height: 49px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 2.4px;
  }
}

@media (max-width: 1366px) {
  :root {
    --button-height: 46px;
    --button-padding-x: 24px;
  }

  .home-hero__inner {
    padding-top: calc(var(--header-height) + 170px);
    padding-bottom: 56px;
  }

  .home-display-title {
    font-size: clamp(3rem, 4vw, 4rem);
  }

  .home-hero__text,
  .home-story__text,
  .home-rooms__text,
  .home-service-card p,
  .home-conference__content p {
    font-size: 1.25rem;
  }

  .hero-booking-bar {
    --hero-booking-search-width: 245px;
    grid-template-columns: repeat(2, minmax(220px, 261px)) minmax(220px, 245px);
  }

  .hero-booking-bar__field,
  .hero-booking-bar__search,
  .booking-widget__field,
  .booking-widget__search {
    min-height: 78px;
  }

  .hero-booking-bar__label,
  .booking-widget__label {
    font-size: 0.78rem;
    letter-spacing: 0.18em;
  }

  .hero-booking-bar__value,
  .booking-widget__value {
    font-size: 1rem;
  }

  .home-story__inner {
    gap: clamp(64px, 8vw, 120px);
  }

  .home-story__crest {
    max-width: 390px;
  }

  .home-rooms__inner {
    padding-top: 170px;
    grid-template-columns: minmax(300px, 480px) minmax(500px, 760px);
    gap: 0 56px;
  }

  .home-room-panel {
    height: 500px;
  }

  .home-guests__viewport {
    width: min(1120px, calc(100vw - 220px));
  }

  .home-guest-card {
    grid-template-columns: 140px minmax(260px, 1fr);
  }

  .home-guest-card__avatar {
    width: 140px;
  }

  .restaurant-page--restaurant .dining-section__copy p,
  .spa-section .dining-section__copy p,
  .dessange-section__intro .dining-section__copy p,
  .conference-detail__copy {
    font-size: 1.18rem;
    line-height: 1.35;
  }

  .booking-flow {
    padding-top: 176px;
  }

  .booking-progress {
    margin-top: 36px;
  }
}

@media (max-width: 1179px) {
  :root {
    --container-wide: min(100vw - 40px, 1480px);
    --container: min(100vw - 40px, 1180px);
  }

  .button-primary,
  .button-secondary,
  .wp-block-button__link {
    padding-left: 22px;
    padding-right: 22px;
  }

  .home-hero__media {
    background-position: center top;
    background-size: cover;
  }

  .home-hero__inner {
    padding-top: calc(var(--header-height) + 140px);
  }

  .home-rooms__inner {
    padding-left: 40px;
    padding-right: 40px;
    grid-template-columns: minmax(300px, 430px) minmax(480px, 1fr);
    gap: 0 44px;
  }

  .home-room-panel {
    height: 460px;
  }

  .home-service-card__content {
    padding-bottom: 92px;
  }

  .home-service-card h3,
  .home-conference__content h2,
  .home-guests__title {
    font-size: clamp(3rem, 4vw, 3.75rem);
  }

  .restaurant-shell,
  .restaurant-shell--hero,
  .restaurant-page--restaurant .restaurant-shell,
  .spa-page .restaurant-shell,
  .dessange-section .restaurant-shell {
    width: min(100vw - 40px, 1840px);
  }

  .restaurant-page--restaurant .dining-section__intro,
  .spa-section .dining-section__intro,
  .dessange-section__intro {
    column-gap: 18px;
  }

  .restaurant-page--restaurant .dining-photo,
  .spa-section .dining-gallery--spa .dining-photo,
  .dessange-gallery__photo,
  .conference-detail__photo {
    min-height: 440px;
    height: 440px;
  }

  .service-zoom-modal {
    --zoom-image-width: min(1100px, calc(100vw - 220px));
  }

  .booking-flow__head {
    width: min(1180px, calc(100vw - 40px));
  }

  .booking-widget {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .booking-widget__field + .booking-widget__field,
  .booking-widget__search {
    border-left: 1px solid var(--booking-line);
  }
}

@media (max-width: 1179px), (hover: none), (pointer: coarse) {
  .home-main {
    height: auto;
    min-height: 100svh;
    overflow: visible;
    scroll-behavior: auto;
    overscroll-behavior-y: auto;
  }

  .home-main.is-free-scroll,
  .home-main.is-story-active {
    scroll-snap-type: none;
  }
}

@media (max-width: 1179px) {
  :root {
    --container-wide: min(100vw - 32px, 1480px);
    --container: min(100vw - 32px, 1180px);
  }

  .hero-booking-bar {
    --hero-booking-search-width: 220px;
    grid-template-columns: repeat(2, minmax(0, 1fr)) minmax(180px, 220px);
  }

  .hero-booking-bar__field + .hero-booking-bar__field,
  .hero-booking-bar__search {
    border-left: 1px solid #c6c1a1;
  }

  .home-main {
    height: auto;
    overflow: visible;
  }

  .home-hero {
    position: relative;
  }

  .home-hero__inner {
    width: min(100vw - 32px, 1530px);
    min-height: 820px;
  }

  .home-story__inner {
    width: min(100vw - 32px, 760px);
    flex-direction: column;
    align-items: center;
    gap: 42px;
    min-height: auto;
    padding: 130px 0 72px;
  }

  .home-story__content {
    width: 100%;
  }

  .home-rooms__inner {
    min-height: auto;
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 88px 32px 72px;
  }

  .home-rooms__aside {
    padding-top: 0;
  }

  .home-rooms__aside-inner {
    position: static;
    max-width: 760px;
  }

  .home-rooms__gallery {
    width: 100%;
    max-width: 760px;
  }

  .home-services__grid {
    grid-template-columns: 1fr;
  }

  .home-service-card {
    min-height: 680px;
  }

  .home-conference__content {
    left: 32px;
    bottom: 90px;
    width: min(620px, calc(100vw - 64px));
  }

  .home-guests {
    height: auto;
    min-height: auto;
    padding: 72px 0;
  }

  .home-guests__title,
  .home-guests__carousel {
    position: static;
    transform: none;
  }

  .home-guests__inner {
    width: min(100vw - 32px, 900px);
  }

  .home-guests__carousel {
    display: grid;
    grid-template-columns: 50px minmax(0, 1fr) 50px;
    gap: 16px;
    align-items: center;
  }

  .home-guests__viewport {
    width: 100%;
  }

  .home-guests__track {
    gap: 0;
  }

  .home-guest-card {
    flex-basis: 100%;
  }

  .home-guests__nav {
    position: static;
  }

  .home-footer-section,
  .home-footer-section .site-footer {
    height: auto;
    min-height: auto;
  }

  .site-footer__columns {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
  }

  .restaurant-hero__actions,
  .restaurant-hero__actions--dining,
  .dining-section__controls {
    flex-wrap: wrap;
  }

  .dining-section__intro,
  .restaurant-page--restaurant .dining-section__intro,
  .spa-section .dining-section__intro,
  .dessange-section__intro {
    grid-template-columns: 1fr;
    grid-template-areas:
      "heading"
      "copy-left"
      "copy-right"
      "controls";
  }

  .spa-section .dining-section__copy:nth-child(2) {
    grid-area: copy-left;
  }

  .spa-section .dining-section__copy:nth-child(3) {
    grid-area: copy-right;
  }

  .dining-section__controls,
  .restaurant-page--restaurant .dining-section__controls,
  .spa-section .dining-section__controls,
  .dessange-section__intro .dining-section__controls {
    justify-self: start;
    padding-top: 0;
    margin-top: 8px;
  }

  .dining-gallery,
  .dining-gallery--restaurant,
  .dining-gallery--terrace,
  .dining-gallery--spa,
  .dessange-gallery,
  .conference-detail__gallery {
    grid-template-columns: 1fr;
  }

  .conference-detail,
  .conference-detail__shell {
    min-height: auto;
  }

  .conference-detail {
    padding: calc(var(--header-height) + 72px) 0 64px;
  }

  .conference-detail__shell {
    width: min(100vw - 32px, 860px);
  }

  .conference-detail__back,
  .conference-detail__intro,
  .conference-detail__actions,
  .conference-detail__gallery {
    position: static;
  }

  .conference-detail__actions {
    width: auto;
    margin: 36px 0 48px;
    justify-content: flex-start;
  }

  .booking-confirm {
    grid-template-columns: 1fr;
    gap: 54px;
  }

  .booking-confirm__summary {
    min-height: auto;
    padding-left: 0;
    border-left: 0;
  }

  .booking-transfer__fields {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 767px) {
  :root {
    --container-wide: min(100vw - 28px, 1480px);
    --container: min(100vw - 28px, 1180px);
    --button-padding-x: 20px;
  }

  .home-hero__inner {
    width: min(100vw - 28px, 1530px);
    min-height: 720px;
    padding-top: calc(var(--header-height) + 96px);
    padding-bottom: 42px;
  }

  .home-display-title {
    font-size: clamp(2.6rem, 10vw, 3.4rem);
  }

  .home-display-subtitle,
  .home-story .home-display-subtitle,
  .home-rooms .home-display-subtitle,
  .home-service-card h3,
  .home-conference__content h2,
  .home-guests__title {
    font-size: clamp(2.5rem, 10vw, 3.5rem);
    line-height: 1.08;
  }

  .home-hero__text,
  .home-story__text,
  .home-rooms__text,
  .home-service-card p,
  .home-conference__content p {
    font-size: 1.0625rem;
    line-height: 1.42;
  }

  .hero-booking-bar,
  .booking-widget {
    grid-template-columns: 1fr;
    padding: 14px;
  }

  .hero-booking-bar__field + .hero-booking-bar__field,
  .hero-booking-bar__search,
  .booking-widget__field + .booking-widget__field,
  .booking-widget__search {
    border-top: 0;
  }

  .hero-booking-bar .hero-booking-bar__dropdown,
  .booking-dropdown {
    width: min(100%, calc(100vw - 28px));
  }

  .booking-dropdown .booking-calendar,
  .booking-calendar {
    grid-template-columns: 1fr;
  }

  .booking-dropdown--calendar::before {
    content: none;
  }

  .booking-calendar__month + .booking-calendar__month,
  .booking-dropdown .booking-calendar__month + .booking-calendar__month {
    border-left: 0;
    border-top: 1px solid var(--booking-line, var(--color-line));
  }

  .home-story__tags {
    gap: 10px;
  }

  .home-story__tags span {
    min-height: 38px;
    padding: 0 18px;
    font-size: 1rem;
  }

  .home-room-panel {
    height: min(78vw, 420px);
  }

  .home-service-card {
    min-height: 620px;
  }

  .home-service-card__content {
    padding: 0 28px 64px;
  }

  .home-conference {
    min-height: 620px;
  }

  .home-conference__content {
    left: 28px;
    bottom: 64px;
    width: calc(100vw - 56px);
  }

  .home-guests__carousel {
    grid-template-columns: 44px minmax(0, 1fr) 44px;
    gap: 10px;
  }

  .home-guest-card {
    grid-template-columns: 90px minmax(0, 1fr);
    gap: 16px;
  }

  .home-guest-card__avatar {
    width: 90px;
  }

  .home-guest-card__text,
  .home-guest-card__name {
    font-size: 1.15rem;
  }

  .restaurant-hero,
  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-hero--nobil {
    min-height: 680px;
    padding-top: calc(var(--header-height) + 76px);
    padding-bottom: 56px;
  }

  .restaurant-hero__content--dining,
  .dessange-hero__content--nobil,
  .spa-page .restaurant-hero__content {
    padding-left: 0;
    margin-left: 0;
  }

  .restaurant-title,
  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title {
    font-size: clamp(2.625rem, 12vw, 4rem);
    line-height: 1.05;
  }

  .restaurant-lead,
  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-hero__content--nobil .restaurant-lead {
    font-size: 1.0625rem;
    line-height: 1.36;
  }

  .dining-section,
  .restaurant-page--restaurant .dining-section,
  .spa-section,
  .dessange-section {
    padding-top: 72px;
  }

  .restaurant-page--restaurant .dining-section__heading .restaurant-section-title,
  .spa-section .dining-section__heading .restaurant-section-title,
  .dessange-section__intro .restaurant-section-title,
  .conference-detail__title {
    font-size: clamp(2.5rem, 11vw, 3.5rem);
    line-height: 1.12;
  }

  .restaurant-page--restaurant .dining-section__copy p,
  .spa-section .dining-section__copy p,
  .dessange-section__intro .dining-section__copy p,
  .conference-detail__copy {
    font-size: 1rem;
    line-height: 1.45;
  }

  .restaurant-page--restaurant .dining-photo,
  .spa-section .dining-gallery--spa .dining-photo,
  .dessange-gallery__photo,
  .conference-detail__photo {
    min-height: 320px;
    height: 320px;
  }

  .booking-flow {
    padding-top: 136px;
    padding-bottom: 88px;
  }

  .booking-flow__title {
    font-size: 38px;
    line-height: 1.15;
  }

  .booking-progress {
    width: min(100%, 520px);
    grid-template-columns: 1fr;
    row-gap: 18px;
  }

  .booking-progress__label {
    white-space: normal;
  }

  .booking-flow .booking-room-card,
  .booking-extra,
  .booking-total-card,
  .booking-confirm__room {
    grid-template-columns: 1fr;
  }

  .booking-flow .room-card__body {
    grid-template-rows: auto auto;
  }

  .booking-flow .room-card__price {
    position: static;
    padding: 0 29px 20px;
  }

  .booking-extra__side,
  .booking-total-card__actions {
    grid-column: auto;
    justify-items: start;
  }

  .booking-transfer__head {
    padding: 20px 24px;
  }

  .booking-transfer__body {
    padding: 32px 24px;
  }

  .booking-transfer__fields,
  .booking-transfer-field--comments,
  .booking-payment-grid {
    grid-template-columns: 1fr;
    grid-column: auto;
  }

  .booking-transfer__guests,
  .booking-transfer__price,
  .booking-transfer__button {
    position: static;
  }

  .booking-confirm__image {
    width: 100%;
    height: min(72vw, 320px);
  }

  .booking-success p {
    white-space: normal;
  }

  .service-price-modal__content {
    width: min(562px, calc(100% - 48px));
    padding-top: 36px;
    padding-bottom: 60px;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  :root {
    --button-circle-size: 44px;
  }

  .button-primary,
  .button-secondary,
  .wp-block-button__link {
    min-height: 44px;
  }

  .home-hero__inner,
  .home-story__inner,
  .home-rooms__inner,
  .home-guests__inner,
  .site-footer__inner,
  .restaurant-shell,
  .restaurant-shell--hero,
  .restaurant-page--restaurant .restaurant-shell,
  .spa-page .restaurant-shell,
  .dessange-section .restaurant-shell,
  .conference-detail__shell,
  .booking-flow__head,
  .booking-room-list,
  .booking-services,
  .booking-confirm {
    width: min(100vw - 28px, 760px);
  }

  .home-rooms__inner {
    padding-left: 0;
    padding-right: 0;
  }

  .home-guests__carousel {
    grid-template-columns: 1fr;
  }

  .home-guests__nav {
    display: none;
  }

  .home-guest-card {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .home-guest-card__text {
    max-width: none;
  }

  .restaurant-hero__actions--dining,
  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining,
  .dining-section__controls,
  .spa-section .dining-section__controls,
  .dessange-section__intro .dining-section__controls,
  .conference-detail__actions {
    gap: 14px;
  }

  .dining-section__nav,
  .conference-detail__arrows {
    gap: 12px;
  }

  .booking-room-card--selected .booking-service-actions,
  .booking-total-card__actions {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .booking-extra__side {
    padding: 0 24px 24px;
  }

  .booking-confirm__check {
    grid-template-columns: 21px minmax(0, 1fr);
  }
}

@media (max-width: 374px) {
  :root {
    --container-wide: min(100vw - 20px, 1480px);
    --container: min(100vw - 20px, 1180px);
    --button-padding-x: 16px;
    --button-circle-size: 40px;
  }

  .home-hero__inner,
  .home-story__inner,
  .home-rooms__inner,
  .home-guests__inner,
  .site-footer__inner,
  .restaurant-shell,
  .restaurant-shell--hero,
  .restaurant-page--restaurant .restaurant-shell,
  .spa-page .restaurant-shell,
  .dessange-section .restaurant-shell,
  .conference-detail__shell,
  .booking-flow__head,
  .booking-room-list,
  .booking-services,
  .booking-confirm {
    width: min(100vw - 20px, 760px);
  }

  .home-display-title {
    font-size: 2.35rem;
  }

  .home-display-subtitle,
  .home-story .home-display-subtitle,
  .home-rooms .home-display-subtitle,
  .home-service-card h3,
  .home-conference__content h2,
  .home-guests__title,
  .booking-flow__title,
  .restaurant-title,
  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .restaurant-page--restaurant .dining-section__heading .restaurant-section-title,
  .spa-section .dining-section__heading .restaurant-section-title,
  .dessange-section__intro .restaurant-section-title,
  .conference-detail__title {
    font-size: 2.25rem;
  }

  .hero-booking-bar,
  .booking-widget {
    padding: 10px;
  }

  .home-service-card__content {
    padding-left: 20px;
    padding-right: 20px;
  }

  .booking-transfer__head,
  .booking-transfer__body,
  .booking-extra__copy,
  .booking-flow .room-card__top,
  .booking-flow .room-card__bottom,
  .booking-total-card {
    padding-left: 18px;
    padding-right: 18px;
  }
}

@media (hover: none) and (pointer: coarse) {
  .button-primary,
  .button-secondary,
  .button-circle,
  .home-guests__nav,
  .booking-guest-dropdown__step,
  .booking-transfer__plus,
  .service-zoom-modal__nav,
  .service-price-modal__close {
    touch-action: manipulation;
  }
}

@media (max-width: 1179px) {
  .modal-backdrop--contact {
    align-items: stretch;
    justify-content: stretch;
    padding: 0;
    background: #fffced;
  }

  .contact-modal {
    width: 100%;
    max-width: none;
    height: 100dvh;
    max-height: none;
    min-height: 100dvh;
    padding: 24px 16px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 48px;
    box-shadow: none;
  }

  .contact-modal__close {
    top: 19px;
    right: 18px;
    width: 15px;
    height: 15px;
    min-width: 15px;
    min-height: 15px;
  }

  .contact-modal__close::before,
  .contact-modal__close::after {
    top: 7px;
    width: 15px;
  }

  .contact-modal__text,
  .contact-modal__actions {
    position: static;
    left: auto;
    top: auto;
    width: min(338px, calc(100vw - 32px));
    transform: none;
  }

  .contact-modal__text {
    gap: 4px;
  }

  .contact-modal__text h2 {
    font-size: 28px;
    line-height: normal;
  }

  .contact-modal__text a {
    font-size: 20px;
    line-height: 28px;
  }

  .contact-modal__actions {
    gap: 24px;
  }

  .contact-modal__button {
    height: 52px;
    min-height: 52px;
    padding: 0 32px;
    gap: 10px;
    letter-spacing: 2.4px;
  }

  .contact-modal__button--phone {
    height: 56px;
    min-height: 56px;
    letter-spacing: 1.2px;
  }

  .home-main {
    height: auto;
    min-height: 100svh;
    overflow: visible;
    background: #081412;
  }

  .home-hero {
    height: 100svh;
    min-height: 100svh;
    position: relative;
    overflow: hidden;
  }

  .home-hero__media {
    background-position: 37% top;
    background-size: auto 100%;
  }

  .home-hero__inner {
    width: min(342px, calc(100vw - 33px));
    min-height: 100svh;
    padding: 299px 0 0;
  }

  .home-main.is-story-active .home-hero__inner {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .home-hero__content {
    max-width: none;
    margin: 0;
    padding-left: 0;
  }

  .home-display-title {
    margin: 0 0 16px;
    font-size: 60px;
    line-height: 55px;
    letter-spacing: 0;
  }

  .home-hero__text {
    max-width: none;
    margin: 0;
    color: #fff;
    font-size: 20px;
    line-height: 26px;
    hyphens: auto;
  }

  .hero-booking-bar {
    display: none;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .booking-flow {
    min-height: 100svh;
    padding: 98px 0 56px;
    background: #fffced;
  }

  .booking-flow__head {
    max-width: calc(100vw - 14px);
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .booking-flow__title {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-progress {
    width: 100%;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 8px;
  }

  .booking-progress__step {
    min-width: 0;
    padding-top: 28px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-progress__step::before {
    top: 9px;
    left: 28px;
    width: calc(100% - 28px);
    max-width: none;
    height: 2px;
    background: #dbd6c2;
  }

  .booking-progress__number {
    width: 20px;
    height: 20px;
    background: #c6c1a1;
    color: #141414;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-progress__step.is-current .booking-progress__number,
  .booking-progress__step.is-complete .booking-progress__number {
    background: #141414;
    color: #fff;
  }

  .booking-progress__label {
    font-size: 0;
    line-height: 0;
    white-space: normal;
  }

  .booking-progress__label::after {
    content: attr(data-mobile-label);
    display: block;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    line-height: 12px;
  }

  .booking-widget {
    width: 100%;
    min-height: 65px;
    margin: 0;
    padding: 0 16px;
    grid-template-columns: minmax(80px, 0.85fr) minmax(112px, 1fr) minmax(128px, 1.15fr);
    justify-content: stretch;
    border: 1px solid var(--booking-line);
  }

  .booking-widget__field,
  .booking-widget__search {
    min-height: 63px;
    border: 0;
  }

  .booking-flow .booking-widget,
  .booking-flow .booking-widget__field,
  .booking-flow .booking-widget__search {
    z-index: auto;
  }

  .booking-widget__field + .booking-widget__field,
  .booking-widget__search {
    border: 0;
  }

  .booking-widget__search {
    display: none;
  }

  .header-booking-modal .booking-widget__field--special {
    display: none;
  }

  .booking-widget__toggle {
    height: 63px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .booking-widget__label,
  .booking-widget__field::after {
    display: none;
  }

  .booking-widget__field--special .booking-widget__label {
    display: block;
    margin: 0;
    font-size: 10px;
    line-height: 12px;
    letter-spacing: 1.8px;
    white-space: nowrap;
  }

  .booking-widget__value {
    font-size: 14px;
    line-height: 14px;
    white-space: nowrap;
  }

  .booking-widget__field--guest .booking-widget__value {
    font-size: 13px;
  }

  .booking-widget__field--currency .booking-widget__value {
    font-size: 0;
    line-height: 0;
  }

  .booking-widget__field--currency .booking-widget__value::after {
    content: attr(data-mobile-label);
    font-size: 14px;
    line-height: 14px;
  }

  .booking-widget .booking-dropdown {
    left: -17px;
    max-width: calc(100vw - 14px);
    border-top: 1px solid var(--booking-line);
  }

  .booking-dropdown .booking-calendar {
    grid-template-columns: 1fr;
  }

  .booking-dropdown--calendar::before {
    content: none;
  }

  .booking-dropdown .booking-calendar__month + .booking-calendar__month {
    border-left: 0;
    border-top: 1px solid var(--booking-line);
  }

  .booking-flow .booking-widget .booking-dropdown:not(.booking-dropdown--transfer-calendar):not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 800;
    width: 100vw;
    min-width: 100vw;
    max-width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 69px 16px 120px;
    overflow-y: auto;
    border: 0;
    background: #fffced;
    box-shadow: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .booking-flow .booking-widget .booking-dropdown:not(.booking-dropdown--transfer-calendar):not([hidden])::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  @supports (height: 100dvh) {
    .booking-flow .booking-widget .booking-dropdown:not(.booking-dropdown--transfer-calendar):not([hidden]) {
      height: 100dvh;
    }
  }

  .booking-flow .booking-dropdown__mobile-title {
    margin: 0 0 48px;
    display: block;
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 400;
    line-height: 28px;
  }

  .booking-flow .booking-dropdown__mobile-close {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 802;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    display: block;
    background: transparent;
  }

  .booking-flow .booking-dropdown__mobile-close::before,
  .booking-flow .booking-dropdown__mobile-close::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 1px;
    background: #000;
  }

  .booking-flow .booking-dropdown__mobile-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .booking-flow .booking-dropdown__mobile-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar {
    width: 100%;
    min-height: 0;
    height: auto;
    display: block;
    border: 1px solid var(--booking-line);
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month] {
    min-height: 0;
    padding: 24px 24px 28px;
    border: 0;
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month] + [data-booking-month] {
    display: none;
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month]:first-child .booking-calendar__nav-placeholder {
    display: none;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__nav--mobile-next {
    display: inline-grid;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__header {
    margin-bottom: 25px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    line-height: 23px;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__grid {
    gap: 0;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__day {
    min-height: 41px;
    font-size: 15px;
    line-height: 1;
  }

  .booking-flow .booking-dropdown__actions,
  .booking-flow .booking-guest-dropdown__actions,
  .booking-flow .booking-special-dropdown__actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 802;
    width: 100%;
    min-height: 92px;
    margin: 0;
    padding: 24px 16px;
    border-top: 1px solid var(--booking-line);
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #fffced;
  }

  .booking-flow .booking-dropdown__actions [data-booking-clear-dates] {
    display: none;
  }

  .booking-flow .booking-dropdown__cancel-mobile {
    display: flex;
  }

  .booking-flow .booking-dropdown__actions .button-primary,
  .booking-flow .booking-dropdown__actions .button-secondary,
  .booking-flow .booking-guest-dropdown__actions .button-primary,
  .booking-flow .booking-guest-dropdown__actions .button-secondary,
  .booking-flow .booking-special-dropdown__actions .button-primary {
    width: 100%;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-flow .booking-currency-dropdown__option {
    min-height: 24px;
    padding: 0;
    font-family: var(--font-heading);
    font-size: 18px;
    line-height: 24px;
  }

  .booking-flow .booking-currency-dropdown__option + .booking-currency-dropdown__option {
    margin-top: 24px;
  }

  .booking-flow .booking-currency-dropdown__option:hover,
  .booking-flow .booking-currency-dropdown__option:focus-visible {
    background: transparent;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .booking-flow .booking-currency-dropdown__option[aria-selected="true"] {
    background: transparent;
    text-decoration: none;
  }

  .booking-flow .booking-special-dropdown__field {
    min-height: 65px;
    font-size: 18px;
  }

  .booking-flow .booking-special-dropdown__field + .booking-special-dropdown__field {
    margin-top: 16px;
  }

  .booking-flow .booking-special-dropdown__field input {
    height: 65px;
    padding-top: 22px;
  }

  .booking-room-list {
    max-width: calc(100vw - 14px);
    margin: 48px auto 0;
    gap: 48px;
  }

  .booking-flow .booking-room-card {
    width: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    border: 0;
    background: #fffced;
  }

  .booking-flow .room-card__media {
    width: 100%;
    min-height: 240px;
    height: 240px;
    border: 1px solid var(--booking-line);
    border-bottom: 0;
    touch-action: pan-x pan-y;
  }

  .booking-flow .room-card__gallery-dots {
    bottom: 16px;
    gap: 10px;
  }

  .booking-flow .room-card__gallery-dot {
    width: 6px;
    height: 6px;
    background: rgba(255, 255, 255, 0.72);
    box-shadow: none;
  }

  .booking-flow .room-card__gallery-dot.is-active,
  .booking-flow .room-card__gallery-dot:hover,
  .booking-flow .room-card__gallery-dot:focus-visible {
    background: #fff;
  }

  .booking-flow .room-card__body {
    display: flex;
    flex-direction: column;
    padding: 24px 16px;
    border: 1px solid var(--booking-line);
    border-top: 0;
  }

  .booking-flow .booking-room-card .room-card__body::after {
    content: "";
    order: 6;
    width: 100%;
    height: 1px;
    margin-top: 24px;
    display: block;
    background: var(--booking-line);
    flex: 0 0 auto;
  }

  .booking-flow .room-card__top {
    padding: 0;
    display: contents;
  }

  .booking-flow .room-card__copy {
    order: 1;
    max-width: none;
  }

  .booking-flow .room-card__title {
    margin: 0;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-flow .room-card__text {
    display: none;
  }

  .booking-flow .room-card__meta-link {
    order: 3;
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 14px;
    text-underline-offset: 2px;
  }

  .booking-flow .room-card__price {
    order: 4;
    position: static;
    margin: 24px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid var(--booking-line);
    text-align: left;
  }

  .booking-flow .room-card__price-current {
    font-size: 18px;
    line-height: 22px;
  }

  .booking-flow .room-card__price-old,
  .booking-flow .room-card__price-note {
    font-size: 12px;
    line-height: 16px;
  }

  .booking-flow .room-card__bottom {
    display: contents;
    min-height: 0;
    padding: 0;
    border: 0;
  }

  .booking-flow .room-card__details {
    order: 2;
    margin: 16px 0 0;
    font-size: 12px;
    line-height: 17px;
  }

  .booking-flow .room-card__button,
  .booking-flow .room-card__bottom .button-primary {
    order: 5;
    width: 100%;
    min-height: 45px;
    height: 45px;
    margin-top: 16px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-services,
  .booking-services__form {
    max-width: calc(100vw - 14px);
    margin: 48px auto 0;
    display: grid;
    gap: 48px;
  }

  .booking-services__form {
    margin-top: 0;
  }

  .booking-room-card--selected .booking-service-actions {
    order: 5;
    width: 100%;
    margin: 24px 0 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .booking-room-card--selected .booking-service-actions .button-secondary,
  .booking-room-card--selected .booking-service-actions .button-primary {
    width: 100%;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-extra {
    min-height: 0;
    padding: 0;
    border: 1px solid var(--booking-line);
    display: flex;
    flex-direction: column;
    background: #fffced;
  }

  .booking-gift-card {
    min-height: 0;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .booking-gift-card__image {
    min-height: 142px;
    height: 142px;
  }

  .booking-gift-card__copy {
    max-width: none;
    padding: 24px 16px;
  }

  .booking-gift-card__copy h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-gift-card__copy p {
    margin-top: 16px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-gift-card__flag {
    right: 16px;
  }

  .booking-extra__copy {
    display: contents;
    padding: 0;
  }

  .booking-extra__copy h2 {
    order: 1;
    width: 100%;
    min-height: 75px;
    padding: 0 16px;
    border-bottom: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-extra__image {
    order: 2;
    width: auto;
    height: 142px;
    margin: 16px 16px 0;
    border-radius: 0;
  }

  .booking-extra__copy p {
    order: 3;
    max-width: none;
    margin: 24px 16px 0;
    font-size: 14px;
    line-height: normal;
  }

  .booking-extra__side {
    order: 4;
    width: auto;
    margin: 24px 16px 0;
    padding: 24px 0;
    border-top: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .booking-extra__price,
  .booking-transfer__price,
  .booking-total-card__price {
    font-size: 18px;
    line-height: 18px;
    text-align: left;
  }

  .booking-extra__price span,
  .booking-transfer__price span,
  .booking-total-card__price em {
    font-size: 12px;
    line-height: 12px;
  }

  .booking-extra__toggle,
  .booking-transfer__button {
    width: 155px;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    flex: 0 0 155px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-transfer {
    min-height: 0;
    border: 1px solid var(--booking-line);
    background: #fffced;
    overflow: visible;
  }

  .booking-transfer.is-open {
    min-height: 0;
  }

  .booking-transfer__head {
    min-height: 75px;
    padding: 0 16px;
  }

  .booking-transfer h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-transfer__plus {
    width: 40px;
    height: 40px;
  }

  .booking-transfer__plus::before,
  .booking-transfer__plus::after {
    width: 20px;
  }

  .booking-transfer__body {
    position: static;
    min-height: 0;
    padding: 16px 16px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 155px;
    column-gap: 16px;
    row-gap: 24px;
  }

  .booking-transfer__body[hidden] {
    display: none;
  }

  .booking-transfer__workflow {
    grid-column: 1 / -1;
    max-width: none;
    gap: 8px;
  }

  .booking-transfer__step {
    min-height: 0;
    padding-left: 33px;
  }

  .booking-transfer__step:not(:last-child)::after {
    left: 12px;
    top: 33px;
    height: calc(100% - 25px);
  }

  .booking-transfer__step--arrival::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 33px;
    width: 1px;
    height: calc(100% - 8px);
    background: var(--booking-line);
  }

  .booking-transfer__step-head {
    min-height: 25px;
    margin: 0 0 16px -33px;
    gap: 8px;
    align-items: center;
  }

  .booking-transfer__step-head h3 {
    font-size: 22px;
    line-height: 22px;
  }

  .booking-transfer__step-number {
    width: 25px;
    height: 25px;
    font-size: 14px;
  }

  .booking-transfer__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    max-width: none;
    gap: 12px 24px;
  }

  .booking-transfer__choices--transport {
    grid-template-columns: 1fr;
  }

  .booking-transfer__choice {
    gap: 8px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-transfer__choice-box {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .booking-transfer__choice-box::after {
    left: 4px;
    top: 0;
    width: 8px;
    height: 13px;
  }

  .booking-transfer__step--arrival {
    min-height: 0;
  }

  .booking-transfer__fields {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .booking-transfer-field {
    gap: 6px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-transfer-field input,
  .booking-transfer-field select {
    height: 45px;
    padding: 0 12px;
  }

  .booking-transfer-field textarea {
    height: 90px;
    padding: 12px;
  }

  .booking-transfer-field__split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .booking-transfer-field--comments {
    grid-column: auto;
  }

  .booking-transfer-field--flight {
    grid-template-columns: 1fr auto;
    align-items: end;
  }

  .booking-transfer-field--flight span {
    grid-column: 1;
  }

  .booking-transfer-field--flight em {
    position: static;
    grid-column: 2;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-transfer-field--flight input {
    grid-column: 1 / -1;
  }

  .booking-dropdown--transfer-calendar {
    width: 100%;
    max-width: none;
  }

  .booking-transfer__guests {
    position: static;
    grid-column: 1 / -1;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-transfer__guests::before {
    content: "";
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    border-radius: 50%;
    background: #dbd6c2 url("../images/figma/room-modal/icon-people.svg") center / 16px 12px no-repeat;
  }

  .booking-transfer__price {
    position: static;
    grid-column: 1;
    align-self: center;
  }

  .booking-transfer__button {
    position: static;
    grid-column: 2;
    justify-self: end;
  }

  .booking-total-card {
    min-height: 0;
    padding: 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .booking-total-card h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-total-card__price {
    width: 100%;
    padding-top: 24px;
    border-top: 1px solid var(--booking-line);
  }

  .booking-total-card__price strong {
    font-size: 18px;
    line-height: 18px;
  }

  .booking-total-card__price span {
    margin-top: 2px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-total-card__actions {
    width: 100%;
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .booking-total-card__actions .button-secondary,
  .booking-total-card__actions .button-primary {
    width: 100%;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  body.is-booking-summary-open {
    overflow: hidden;
  }

  .booking-confirm {
    max-width: calc(100vw - 14px);
    margin: 48px auto 0;
    padding-bottom: 110px;
    display: block;
  }

  .booking-confirm__section-title,
  .booking-confirm__summary-title {
    gap: 16px;
    margin-bottom: 16px;
    font-size: 24px;
    line-height: 28px;
  }

  .booking-confirm__section-title span,
  .booking-confirm__summary-title span {
    width: 25px;
    height: 25px;
    font-size: 16px;
    line-height: 16px;
  }

  .booking-confirm__section-title--payment {
    margin-top: 48px;
  }

  .booking-confirm__fields {
    gap: 16px;
  }

  .booking-confirm .booking-field {
    min-height: 60px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-confirm .booking-field__control {
    min-height: 60px;
    padding: 26px 8px 16px;
    border-bottom-color: #c1c1c1;
    line-height: 14px;
  }

  .booking-confirm .booking-field__label {
    left: 8px;
    top: 36px;
    line-height: 14px;
  }

  .booking-confirm .booking-field:focus-within .booking-field__label,
  .booking-confirm input.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-confirm textarea.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-confirm .booking-field.has-value .booking-field__label,
  .booking-confirm .booking-field__control:-webkit-autofill + .booking-field__label {
    top: 8px;
  }

  .booking-confirm .booking-field--select::after {
    right: 8px;
    bottom: 21px;
  }

  .booking-confirm .booking-field--textarea {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .booking-confirm .booking-field--textarea .booking-field__label {
    position: static;
    order: -1;
    padding-left: 8px;
  }

  .booking-confirm .booking-field--textarea .booking-field__control {
    min-height: 82px;
    height: 82px;
    margin-top: 0;
    padding: 10px;
    border: 1px solid #c1c1c1;
  }

  .booking-payment-grid {
    grid-template-columns: 88px minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 23px;
  }

  .booking-payment-grid__hint {
    min-height: 60px;
    padding: 36px 8px 0;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-payment-grid__split {
    gap: 16px;
  }

  .booking-confirm__check {
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 16px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-confirm__check-box {
    width: 18px;
    height: 18px;
  }

  .booking-confirm__check-box::after {
    left: 5px;
    top: 1px;
    width: 6px;
    height: 11px;
  }

  .booking-confirm__submit {
    min-height: 45px;
    height: 45px;
    margin-top: 32px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-confirm__summary {
    position: fixed;
    inset: 0;
    z-index: 800;
    width: 100%;
    max-width: none;
    height: 100vh;
    min-height: 100vh;
    padding: 20px 16px 0;
    border-left: 0;
    display: flex;
    flex-direction: column;
    background: #fffced;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(100%);
    transition:
      transform 280ms ease,
      visibility 0s linear 280ms;
    -webkit-overflow-scrolling: touch;
  }

  @supports (height: 100dvh) {
    .booking-confirm__summary {
      height: 100dvh;
      min-height: 100dvh;
    }
  }

  .booking-confirm.is-summary-open .booking-confirm__summary {
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: transform 280ms ease;
  }

  .booking-confirm__mobile-summary-head {
    margin: 0 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #040404;
    font-family: var(--font-heading);
    font-size: 20px;
    line-height: normal;
  }

  .booking-confirm__summary-close {
    width: 34px;
    height: 34px;
    border: 0;
    display: grid;
    place-items: center;
    background: transparent;
    color: #141414;
    cursor: pointer;
  }

  .booking-confirm__summary-close::before {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
  }

  .booking-confirm__summary-title {
    margin: 0 0 48px;
    flex-wrap: wrap;
    justify-content: flex-start;
  }

  .booking-confirm__summary-title strong {
    flex: 0 0 calc(100% - 41px);
    margin: -8px 0 0 41px;
    font-size: 16px;
    line-height: normal;
    text-align: left;
  }

  .booking-confirm__room-label {
    margin-bottom: 24px;
    font-size: 12px;
    line-height: normal;
    letter-spacing: 1.8px;
  }

  .booking-confirm__room-label button,
  .booking-confirm__room-remove {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 18px;
  }

  .booking-confirm__room {
    grid-template-columns: 91px minmax(0, 1fr);
    gap: 16px;
    align-items: stretch;
  }

  .booking-confirm__image {
    width: 91px;
    height: 136px;
  }

  .booking-confirm__room-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
  }

  .booking-confirm__room-body h2 {
    margin: 0;
    font-size: 18px;
    line-height: 18px;
  }

  .booking-confirm__room-body em {
    margin: 0 0 16px;
    font-size: 12px;
    line-height: normal;
  }

  .booking-confirm__service-list {
    gap: 0;
    margin: 0 0 16px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-confirm__room-body p {
    margin: 0 0 15px;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-confirm__room-bottom {
    margin-top: auto;
    gap: 16px;
    align-items: flex-end;
    font-size: 14px;
    line-height: normal;
  }

  .booking-confirm__room-bottom strong {
    white-space: nowrap;
  }

  .booking-confirm__total {
    min-height: 81px;
    margin: auto -16px 0;
    padding: 0 16px;
    border-top: 1px solid var(--booking-line, #c6c1a1);
    align-items: center;
    font-size: 20px;
    line-height: normal;
  }

  .booking-confirm__total strong {
    margin-left: auto;
    font-size: 18px;
    line-height: normal;
    white-space: nowrap;
  }

  .booking-confirm__mobile-total {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 75;
    min-height: 81px;
    padding: 0 16px;
    border: 0;
    border-top: 1px solid var(--booking-line, #c6c1a1);
    display: flex;
    align-items: center;
    background: #fffced;
    color: #040404;
    font-family: var(--font-heading);
    cursor: pointer;
  }

  .booking-confirm.is-summary-open .booking-confirm__mobile-total {
    visibility: hidden;
    pointer-events: none;
  }

  .booking-confirm__mobile-total span {
    width: 110px;
    font-size: 20px;
    line-height: normal;
    text-align: left;
  }

  .booking-confirm__mobile-total strong {
    margin-left: auto;
    font-size: 18px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
  }

  .booking-confirm__mobile-total i {
    width: 9px;
    height: 9px;
    margin-left: 16px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    display: block;
    background: transparent;
    color: #141414;
    font-style: normal;
    transform: rotate(225deg);
  }

  .booking-confirm__mobile-total i::before {
    content: none;
  }

  .booking-flow--success {
    min-height: 100vh;
    min-height: 100svh;
    padding: 60px 0 0;
    display: flex;
    background: #fffced;
  }

  .booking-success {
    width: 100%;
    min-height: calc(100vh - 60px);
    min-height: calc(100svh - 60px);
    padding: 187px 16px 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 48px;
    text-align: center;
  }

  .booking-success__logo {
    width: min(343px, calc(100vw - 32px));
    max-width: 100%;
    height: auto;
  }

  .booking-success p {
    max-width: 343px;
    color: #000;
    font-size: 24px;
    line-height: 30px;
    white-space: normal;
  }

  .booking-success .button-primary {
    position: relative;
    width: min(343px, calc(100vw - 32px));
    min-height: 45px;
    height: 45px;
    margin-top: auto;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-success .button-primary::before {
    content: "";
    position: absolute;
    left: 50%;
    top: -40px;
    width: 100vw;
    height: 1px;
    background: #c6c1a1;
    transform: translateX(-50%);
  }

  .home-hero__inner {
    width: 342px;
    padding: 299px 0 0;
  }

  .home-story {
    padding: 37px 0 110px;
    min-height: initial;
    background: #081412 url("../images/figma/home-hero-figma.webp") -40px 0 / 622px 900px no-repeat;
  }

  .home-story::before {
    background: rgba(193, 247, 255, 0.1);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
  }

  .home-story__inner {
    width: calc(100vw - 30px);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    padding: 0;
  }

  .home-story__crest {
    width: 247px;
    height: 220px;
    max-width: none;
    flex: 0 0 auto;
    margin: 40px auto;
  }

  .home-story__content {
    width: 100%;
    max-width: none;
  }

  .home-story__tags {
    width: 100%;
    margin: 0 0 48px;
    display: flex;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .home-story__tags span {
    height: 47px;
    min-height: 47px;
    min-width: 0;
    flex: 1 1 0;
    padding: 0 10px;
    border-color: #fff;
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    line-height: 1;
  }

  .home-story__tags span:first-child {
    opacity: 0.8;
  }

  .home-story .home-display-subtitle {
    margin: 0 0 24px;
    font-size: 50px;
    line-height: 40px;
    letter-spacing: 0;
  }

  .home-story__text {
    max-width: none;
    margin: 0;
    color: #fff;
    font-size: 18px;
    line-height: 26px;
  }

  .home-story .home-scroll-next {
    display: none;
  }

  .home-rooms {
    padding-bottom: 52px;
    background: #fffced;
    border: 0;
    color: #000;
  }

  .home-rooms__inner {
    width: calc(100vw - 32px);
    margin: 0 auto;
    padding: 56px 0 0;
    display: flex;
    flex-direction: column;
    gap: 50px;
  }

  .home-rooms__aside {
    align-self: stretch;
    padding: 0;
  }

  .home-rooms__aside-inner {
    position: static;
    top: auto;
    max-width: none;
  }

  .home-rooms .home-display-subtitle {
    margin: 0 0 16px;
    font-size: 50px;
    line-height: 50px;
    letter-spacing: 0;
  }

  .home-rooms__text {
    max-width: none;
    margin: 0 0 24px;
    font-size: 18px;
    line-height: normal;
  }

  .home-rooms__button {
    width: max-content;
    min-height: 49px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 2.4px;
  }

  .home-rooms__gallery {
    width: 100%;
    gap: 10px;
  }

  .home-room-panel {
    height: 202.418px;
    min-height: 0;
  }

  .home-services {
    min-height: 913px;
    padding: 108px 0 72px;
    background: #141414;
    color: #fff;
    overflow: hidden;
  }

  .home-services__intro {
    width: calc(100vw - 31px);
    margin: 0 auto 59px;
    display: block;
    color: #fff;
    opacity: 0.8;
  }

  .home-services__intro .home-display-subtitle {
    margin: 0 0 8px;
    font-size: 50px;
    line-height: 50px;
    letter-spacing: 0;
  }

  .home-services__intro p {
    margin: 0;
    font-size: 18px;
    line-height: 22px;
  }

  .home-services__grid {
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
    padding: 0 24px 8px;
    display: flex;
    grid-template-columns: none;
    gap: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-padding-inline: 24px;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .home-services__grid .home-service-card:first-child {
    margin-left: 0;
  }

  .home-services__grid .home-service-card:last-child {
    margin-right: 0;
  }

  .home-services__grid::-webkit-scrollbar {
    display: none;
  }

  .home-service-card,
  .home-service-card.is-mobile-service-only {
    width: 256px;
    min-height: 0;
    height: auto;
    flex: 0 0 256px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    background: transparent;
    color: #fff;
    overflow: visible;
    scroll-snap-align: start;
  }

  .home-service-card::before {
    content: none;
  }

  .home-service-card.is-restaurant,
  .home-service-card.is-spa,
  .home-service-card.is-dessange,
  .home-service-card.is-conference {
    background: transparent;
  }

  .home-service-card__image {
    position: static;
    inset: auto;
    width: 100%;
    height: 318px;
    max-width: none;
    flex: 0 0 318px;
    object-fit: cover;
    object-position: center;
    opacity: 0.78;
  }

  .home-service-card__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    margin: 24px 0 0;
    padding: 0 8px;
    background: transparent;
  }

  .home-service-card h3 {
    margin: 0 0 8px;
    font-size: 32px;
    line-height: 50px;
    letter-spacing: 0;
    color: #fff;
    white-space: nowrap;
  }

  .home-service-card__title-desktop {
    display: none;
  }

  .home-service-card__title-mobile {
    display: inline;
  }

  .home-service-card p {
    max-width: none;
    margin: 0 0 24px;
    color: #bababa;
    font-size: 16px;
    line-height: normal;
  }

  .home-service-card__button {
    width: 144px;
    min-height: 38px;
    height: 38px;
    padding: 0 32px;
    border-color: #c6c1a1;
    color: #fff;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 1.8px;
  }

  .home-conference {
    display: none;
  }

  .home-guests {
    height: 703px;
    min-height: 703px;
    padding: 111px 0 0;
    background: #fffced;
    color: #000;
    overflow: hidden;
  }

  .home-guests__inner {
    width: calc(100vw - 31px);
    height: auto;
    margin: 0 auto;
    position: relative;
  }

  .home-guests__title {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    min-height: 0;
    margin: 0 0 24px;
    font-size: 50px;
    line-height: 50px;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
  }

  .home-guests__carousel {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
  }

  .home-guests__viewport {
    width: 100%;
    margin: 0;
    overflow: hidden;
    touch-action: pan-y;
  }

  .home-guests__track {
    gap: 0;
    align-items: stretch;
    transition: transform 260ms ease;
  }

  .home-guest-card {
    flex: 0 0 100%;
    width: 100%;
    min-height: 370px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
    text-align: center;
  }

  .home-guest-card__avatar {
    width: 160px;
    height: 160px;
    margin: 0 0 16px;
    flex: 0 0 160px;
  }

  .home-guest-card__stars {
    width: 145px;
    height: 23px;
    max-width: none;
    margin: 0 auto 18px;
  }

  .home-guest-card__content {
    width: 100%;
  }

  .home-guest-card__text {
    max-width: none;
    margin: 0 0 18px;
    font-size: 20px;
    line-height: 22px;
  }

  .home-guest-card__name {
    margin: 0 0 7px;
    font-size: 22px;
    line-height: 22px;
  }

  .home-guest-card__role {
    font-size: 14px;
    line-height: 14px;
  }

  .home-guests__nav {
    --button-circle-size: 25px;
    position: absolute;
    display: inline-grid;
    top: 166px;
    z-index: 2;
    border-color: #000;
    background: #fffced;
    color: #000;
  }

  .home-guests__nav::before {
    width: 12px;
    height: 12px;
  }

  .home-guests__nav--prev {
    left: 0;
  }

  .home-guests__nav--next {
    right: 0;
  }

  .home-guests__dots {
    width: 100%;
    margin: 24px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }

  .home-guests__dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #a8a699;
  }

  .home-guests__dot.is-active,
  .home-guests__dot[aria-current="true"] {
    background: #000;
  }

  .home-footer-section,
  .home-footer-section .site-footer {
    height: auto;
    min-height: 1101px;
  }

  .home-footer-section {
    display: block;
    background: #1d1d1d;
  }

  .site-footer,
  .home-footer-section .site-footer {
    display: block;
    background: #1d1d1d;
    color: #fff;
  }

  .site-footer__inner {
    width: 343px;
    margin: 0 auto;
    padding: 98px 0 30px;
  }

  .site-footer__brand {
    width: 343px;
    margin: 0 0 48px;
    display: block;
  }

  .site-footer__crest {
    width: 343px;
    height: 166.622px;
    max-width: none;
    aspect-ratio: auto;
    object-fit: contain;
  }

  .site-footer__columns {
    width: 100%;
    height: 758px;
    margin: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0;
  }

  .site-footer__column {
    width: 100%;
    padding: 0 0 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .site-footer__column:nth-child(1) {
    order: 2;
  }

  .site-footer__column:nth-child(2) {
    order: 1;
  }

  .site-footer__column:nth-child(3) {
    order: 3;
  }

  .site-footer__column:nth-child(4) {
    order: 4;
  }

  .site-footer__column:nth-child(5) {
    order: 5;
  }

  .site-footer__column h3 {
    margin: 0 0 16px;
    font-size: 14px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 2.8px;
    color: #af6c37;
  }

  .site-footer__text-group {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__text,
  .site-footer__nav {
    font-size: 18px;
    line-height: 22px;
  }

  .site-footer__text {
    margin: 0;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(1),
  .site-footer__column:nth-child(2) .site-footer__text:nth-child(3) {
    font-size: 18px;
    line-height: 33px;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(2) {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 33px;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(4) {
    font-size: 28px;
    line-height: 32px;
  }

  .site-footer__nav {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__nav--social {
    gap: 5px;
  }

  .site-footer__social-link {
    gap: 7px;
  }

  .site-footer__social-link img {
    width: 15px;
    height: 15px;
  }

  .restaurant-page .dining-section__controls,
  .spa-section .dining-section__controls,
  .dessange-section__intro .dining-section__controls,
  .conference-detail__actions {
    width: 100%;
    justify-content: space-between;
  }

  .dining-gallery[data-gallery-carousel],
  .dessange-gallery[data-gallery-carousel],
  .conference-detail__gallery[data-gallery-carousel] {
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .dining-gallery[data-gallery-carousel]::-webkit-scrollbar,
  .dessange-gallery[data-gallery-carousel]::-webkit-scrollbar,
  .conference-detail__gallery[data-gallery-carousel]::-webkit-scrollbar {
    display: none;
  }

  .dining-gallery[data-gallery-carousel] > *,
  .dessange-gallery[data-gallery-carousel] > *,
  .conference-detail__gallery[data-gallery-carousel] > * {
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: start;
  }

  .dining-photo,
  .spa-section .dining-gallery--spa .dining-photo,
  .dessange-gallery__photo,
  .conference-detail__photo {
    height: clamp(440px, 118vw, 560px);
    min-height: clamp(440px, 118vw, 560px);
  }

  .conference-detail__photo {
    margin: 0;
  }

  .conference-detail__photo img,
  .conference-detail__photo--left img,
  .conference-detail__photo--right img {
    position: static;
    width: 100%;
    height: 100%;
    max-width: none;
    padding: 0;
    object-fit: cover;
  }

  body.is-header-booking-open {
    overflow: hidden;
  }

  .header-booking-modal:not([hidden]) {
    position: fixed;
    inset: 60px 0 0;
    z-index: 350;
    display: block;
    height: calc(100vh - 60px);
    overflow-y: auto;
    background: #fffced;
    color: #000;
  }

  @supports (height: 100dvh) {
    .header-booking-modal:not([hidden]) {
      height: calc(100dvh - 60px);
    }
  }

  .header-booking-modal__form {
    width: 100%;
    min-height: calc(100vh - 60px);
    margin: 0;
    padding: 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
    justify-content: flex-start;
    border: 0;
    background: #fffced;
  }

  @supports (height: 100dvh) {
    .header-booking-modal__form {
      min-height: calc(100dvh - 60px);
    }
  }

  .header-booking-modal__fields,
  .header-booking-modal__actions {
    width: 100%;
    display: flex;
    flex-direction: column;
  }

  .header-booking-modal__actions {
    gap: 8px;
  }

  .header-booking-modal .booking-widget__field,
  .header-booking-modal .booking-widget__field--special {
    z-index: auto;
    min-height: 65px;
    height: 65px;
    display: block;
    border: 1px solid #c6c1a1;
    background: #fffced;
  }

  .header-booking-modal .booking-widget__field.has-value {
    min-height: 85px;
    height: 85px;
  }

  .header-booking-modal .booking-widget__field + .booking-widget__field {
    margin-top: -1px;
    border-left: 1px solid #c6c1a1;
  }

  .header-booking-modal .booking-widget__toggle {
    min-height: 65px;
    height: 65px;
    padding: 16px 44px 16px 24px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
  }

  .header-booking-modal .booking-widget__field.has-value .booking-widget__toggle {
    min-height: 85px;
    height: 85px;
    justify-content: flex-end;
  }

  .header-booking-modal .booking-widget__label {
    display: block;
    margin: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 12px;
    letter-spacing: 1.8px;
  }

  .header-booking-modal .booking-widget__value {
    display: none;
    margin-top: 8px;
    font-family: var(--font-heading);
    font-size: 14px;
    line-height: 25px;
    white-space: nowrap;
  }

  .header-booking-modal .booking-widget__field.has-value .booking-widget__value {
    display: block;
  }

  .header-booking-modal .booking-widget__field--currency .booking-widget__value {
    font-size: 14px;
    line-height: 25px;
  }

  .header-booking-modal .booking-widget__field--currency .booking-widget__value::after {
    content: none;
  }

  .header-booking-modal .booking-widget__field::after {
    display: block;
    right: 24px;
    top: 50%;
    width: 11px;
    height: 7px;
    background: #000;
    mask: url("../images/figma/mobile-arrow-down-figma.svg") center / contain no-repeat;
    -webkit-mask: url("../images/figma/mobile-arrow-down-figma.svg") center / contain no-repeat;
    transform: translateY(-50%);
  }

  .header-booking-modal .booking-widget__search {
    min-height: 45px;
    display: block;
    padding: 0;
    border: 0;
  }

  .header-booking-modal .booking-widget__button,
  .header-booking-modal__close-button,
  .header-booking-modal__panel-actions .button-primary,
  .header-booking-modal__panel-actions .button-secondary {
    width: 100%;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .header-booking-modal .booking-widget__button:disabled {
    opacity: 1;
    background: #c2c2c2;
    border-color: #c2c2c2;
    color: #fff;
  }

  .header-booking-modal__close-button {
    background: transparent;
    border-color: #c6c1a1;
    color: #000;
  }

  .header-booking-modal .header-booking-modal__panel:not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 800;
    display: block;
    width: 100vw;
    min-width: 100vw;
    max-width: 100vw;
    height: 100vh;
    min-height: 100vh;
    margin: 0;
    padding: 0;
    overflow-y: auto;
    border: 0;
    background: #fffced;
    box-shadow: none;
    scrollbar-width: none;
    -ms-overflow-style: none;
  }

  .header-booking-modal .header-booking-modal__panel:not([hidden])::-webkit-scrollbar {
    width: 0;
    height: 0;
    display: none;
  }

  @supports (height: 100dvh) {
    .header-booking-modal .header-booking-modal__panel:not([hidden]) {
      height: 100dvh;
      min-height: 100dvh;
    }
  }

  .header-booking-modal__panel-close {
    position: fixed;
    top: 18px;
    right: 18px;
    z-index: 802;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: transparent;
  }

  .header-booking-modal__panel-close::before,
  .header-booking-modal__panel-close::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 1px;
    background: #000;
  }

  .header-booking-modal__panel-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .header-booking-modal__panel-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .header-booking-modal__panel-content {
    padding: 69px 16px 120px;
  }

  .header-booking-modal__panel-title {
    margin: 0 0 48px;
    font-family: var(--font-heading);
    font-size: 28px;
    font-weight: 400;
    line-height: 28px;
  }

  .header-booking-modal__panel-actions,
  .header-booking-modal .booking-guest-dropdown__actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 802;
    width: 100%;
    min-height: 92px;
    margin: 0;
    padding: 24px 16px;
    border-top: 1px solid #c6c1a1;
    display: flex;
    flex-direction: column;
    gap: 8px;
    background: #fffced;
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar {
    width: 100%;
    min-height: 0;
    height: auto;
    margin: 0;
    display: block;
    border: 1px solid #c6c1a1;
  }

  .header-booking-modal .booking-dropdown--calendar::before,
  .header-booking-modal .booking-calendar__month + .booking-calendar__month {
    content: none;
    border: 0;
  }

  .header-booking-modal .booking-dropdown--calendar [data-booking-month] + [data-booking-month] {
    display: none;
  }

  .header-booking-modal .booking-dropdown--calendar [data-booking-month]:first-child .booking-calendar__nav-placeholder {
    display: none;
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar__nav--mobile-next {
    display: inline-grid;
  }

  .header-booking-modal .booking-calendar__month {
    min-height: 0;
    padding: 24px 24px 28px;
  }

  .header-booking-modal .booking-calendar__header {
    margin-bottom: 25px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    line-height: 23px;
  }

  .header-booking-modal .booking-calendar__grid {
    gap: 0;
  }

  .header-booking-modal .booking-calendar__day {
    min-height: 41px;
    font-family: var(--font-heading);
    font-size: 15px;
    line-height: 1;
  }

  .header-booking-modal .booking-currency-dropdown__option {
    min-height: 24px;
    padding: 0;
    font-family: var(--font-heading);
    font-size: 18px;
    line-height: 24px;
  }

  .header-booking-modal .booking-currency-dropdown__option + .booking-currency-dropdown__option {
    margin-top: 24px;
  }

  .header-booking-modal .booking-currency-dropdown__option:hover,
  .header-booking-modal .booking-currency-dropdown__option:focus-visible {
    background: transparent;
    text-decoration: underline;
    text-underline-offset: 4px;
  }

  .header-booking-modal .booking-currency-dropdown__option[aria-selected="true"] {
    background: transparent;
    text-decoration: none;
  }

  .header-booking-modal .booking-special-dropdown__field {
    min-height: 65px;
    font-size: 18px;
  }

  .header-booking-modal .booking-special-dropdown__field + .booking-special-dropdown__field {
    margin-top: 16px;
  }

  .header-booking-modal .booking-special-dropdown__field input {
    height: 65px;
    padding-top: 22px;
  }

  .service-zoom-modal {
    --zoom-control-size: 54px;
    --button-circle-size: var(--zoom-control-size);
    --zoom-image-width: calc(100vw - 32px);
    padding: 0 16px;
  }

  .service-zoom-modal__stage {
    width: 100%;
    display: block;
  }

  .service-zoom-modal__figure {
    width: var(--zoom-image-width);
    height: min(62dvh, 560px);
    margin: 0 auto;
    aspect-ratio: auto;
  }

  .service-zoom-modal__image {
    object-fit: cover;
  }

  .service-zoom-modal__close {
    top: -58px;
    right: 16px;
  }

  .service-zoom-modal__nav {
    position: absolute;
    top: 50%;
    width: var(--zoom-control-size);
    height: var(--zoom-control-size);
    transform: translateY(-50%);
  }

  .service-zoom-modal__nav--prev {
    left: 8px;
    grid-column: auto;
  }

  .service-zoom-modal__nav--next {
    right: 8px;
    grid-column: auto;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .header-booking-modal:not([hidden]) {
    --header-booking-side: clamp(32px, 4.688vw, 48px);
    position: fixed;
    inset: 60px 0 auto;
    z-index: 350;
    display: block;
    width: 100%;
    height: min(422px, calc(100vh - 60px));
    max-height: 422px;
    overflow: hidden;
    background: #fffced;
    color: #000;
    box-shadow: 0 18px 60px rgba(20, 20, 20, 0.12);
  }

  @supports (height: 100dvh) {
    .header-booking-modal:not([hidden]) {
      height: min(422px, calc(100dvh - 60px));
    }
  }

  .header-booking-modal__form {
    width: 100%;
    min-height: 0;
    height: 100%;
    margin: 0;
    padding: 24px var(--header-booking-side);
    display: flex;
    flex-direction: column;
    gap: 16px;
    border: 0;
    background: #fffced;
  }

  .header-booking-modal__fields {
    width: 100%;
    min-height: 0;
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  .header-booking-modal__actions {
    width: 100%;
    height: 45px;
    flex: 0 0 45px;
    display: flex;
    align-items: stretch;
    gap: 24px;
  }

  .header-booking-modal .booking-widget__field {
    z-index: auto;
    min-height: 0;
    height: auto;
    flex: 1 1 0;
    border: 1px solid #c6c1a1;
    background: #fffced;
  }

  .header-booking-modal .booking-widget__field:first-child {
    border-left: 1px solid #c6c1a1;
  }

  .header-booking-modal .booking-widget__field + .booking-widget__field {
    margin-top: -1px;
    border-left: 1px solid #c6c1a1;
  }

  .header-booking-modal .booking-widget__toggle {
    min-height: 0;
    height: 100%;
    padding: 15px 40px 15px 24px;
    display: grid;
    align-content: center;
    justify-items: start;
  }

  .header-booking-modal .booking-widget__label {
    display: block;
    margin: 0 0 7px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: 1.8px;
  }

  .header-booking-modal .booking-widget__value {
    display: block;
    max-width: 100%;
    overflow: hidden;
    color: #040404;
    font-family: var(--font-heading);
    font-size: clamp(14px, 1.758vw, 18px);
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .header-booking-modal .booking-widget__field--currency .booking-widget__value {
    font-size: clamp(14px, 1.758vw, 18px);
    line-height: 1.35;
  }

  .header-booking-modal .booking-widget__field--currency .booking-widget__value::after {
    content: none;
  }

  .header-booking-modal .booking-widget__field::after {
    display: block;
    right: 24px;
    top: 50%;
    width: 10px;
    height: 5px;
    background: #000;
    mask: url("../images/figma/mobile-arrow-down-figma.svg") center / contain no-repeat;
    -webkit-mask: url("../images/figma/mobile-arrow-down-figma.svg") center / contain no-repeat;
    transform: translateY(-50%);
  }

  .header-booking-modal .booking-widget__search {
    min-height: 0;
    height: 100%;
    padding: 0;
    border: 0;
    display: block;
    flex: 1 1 0;
    order: 2;
  }

  .header-booking-modal .booking-widget__button {
    width: 100%;
    min-height: 0;
    height: 100%;
    padding: 0 16px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .header-booking-modal__close-button {
    display: inline-flex;
    flex: 1 1 0;
    order: 1;
    min-height: 0;
    height: 100%;
    padding: 0 16px;
    align-items: center;
    justify-content: center;
    border: 1px solid #c6c1a1;
    background: transparent;
    color: #000;
    font-size: 12px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1.8px;
  }

  .header-booking-modal .header-booking-modal__panel:not([hidden]) {
    position: fixed;
    inset: 60px 0 0;
    z-index: 800;
    display: block;
    width: 100vw;
    min-width: 0;
    max-width: none;
    height: calc(100vh - 60px);
    min-height: 0;
    max-height: none;
    margin: 0;
    padding: 0;
    overflow: hidden;
    border: 0;
    background: #fffced;
    box-shadow: none;
  }

  @supports (height: 100dvh) {
    .header-booking-modal .header-booking-modal__panel:not([hidden]) {
      height: calc(100dvh - 60px);
    }
  }

  .header-booking-modal__panel-close {
    position: absolute;
    top: 30px;
    right: var(--header-booking-side);
    z-index: 802;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    display: block;
    background: transparent;
  }

  .header-booking-modal__panel-close::before,
  .header-booking-modal__panel-close::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 1px;
    background: #000;
  }

  .header-booking-modal__panel-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .header-booking-modal__panel-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .header-booking-modal__panel-content {
    height: calc(100% - 69px);
    padding: 32px var(--header-booking-side) 0;
    display: flex;
    flex-direction: column;
    gap: 20px;
    overflow: hidden;
  }

  .header-booking-modal__panel-title {
    margin: 0;
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 400;
    line-height: 1;
  }

  .header-booking-modal__panel-actions,
  .header-booking-modal .booking-guest-dropdown__actions {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 802;
    width: 100%;
    min-height: 0;
    height: 69px;
    margin: 0;
    padding: 12px var(--header-booking-side);
    border-top: 1px solid #c6c1a1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    background: #fffced;
  }

  .header-booking-modal__panel-actions .button-primary,
  .header-booking-modal__panel-actions .button-secondary {
    width: 100%;
    min-height: 45px;
    height: 45px;
    padding: 0 24px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .header-booking-modal .booking-dropdown--currency .header-booking-modal__panel-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar {
    width: 100%;
    min-height: 0;
    height: 100%;
    max-height: 249px;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    flex: 1 1 auto;
    border: 1px solid #c6c1a1;
    overflow: hidden;
  }

  .header-booking-modal .booking-dropdown--calendar::before {
    content: none;
  }

  .header-booking-modal .booking-dropdown--calendar [data-booking-month] {
    min-height: 0;
    height: 100%;
    padding: 18px 22px 14px;
    border: 0;
  }

  .header-booking-modal .booking-dropdown--calendar [data-booking-month] + [data-booking-month] {
    display: block;
    border-top: 0;
    border-left: 1px solid #c6c1a1;
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar__nav--mobile-next {
    display: none;
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar__nav-placeholder {
    display: inline-grid;
  }

  .header-booking-modal .booking-calendar__header {
    margin-bottom: 12px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
  }

  .header-booking-modal .booking-calendar__grid {
    gap: 0;
  }

  .header-booking-modal .booking-calendar__day {
    min-height: 26px;
    font-family: var(--font-heading);
    font-size: 15px;
    line-height: 1;
  }

  .header-booking-modal .booking-currency-dropdown__option {
    min-height: 28px;
    padding: 0;
    font-family: var(--font-heading);
    font-size: 22px;
    line-height: 28px;
  }

  .header-booking-modal .booking-currency-dropdown__option + .booking-currency-dropdown__option {
    margin-top: 24px;
  }

  .header-booking-modal .booking-currency-dropdown__option[aria-selected="true"] {
    background: transparent;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .booking-flow .booking-widget__field:has(.booking-dropdown:not([hidden])) {
    z-index: 1300;
  }

  .booking-flow .booking-widget .booking-dropdown:not(.booking-dropdown--transfer-calendar):not([hidden]) {
    position: fixed;
    inset: 0;
    z-index: 800;
    width: 100vw;
    min-width: 100vw;
    max-width: 100vw;
    height: 100vh;
    margin: 0;
    padding: 72px 32px 92px;
    border: 0;
    overflow: hidden;
    background: #fffced;
    box-shadow: none;
  }

  @supports (height: 100dvh) {
    .booking-flow .booking-widget .booking-dropdown:not(.booking-dropdown--transfer-calendar):not([hidden]) {
      height: 100dvh;
    }
  }

  .booking-flow .booking-dropdown--calendar::before {
    content: none;
  }

  .booking-flow .booking-dropdown__mobile-title {
    margin: 0 0 48px;
    display: block;
    font-family: var(--font-heading);
    font-size: 32px;
    font-weight: 400;
    line-height: 28px;
  }

  .booking-flow .booking-dropdown__mobile-close {
    position: fixed;
    top: 24px;
    right: 32px;
    z-index: 802;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    display: block;
    background: transparent;
  }

  .booking-flow .booking-dropdown__mobile-close::before,
  .booking-flow .booking-dropdown__mobile-close::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 20px;
    height: 1px;
    background: #000;
  }

  .booking-flow .booking-dropdown__mobile-close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .booking-flow .booking-dropdown__mobile-close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar,
  .header-booking-modal .booking-dropdown--calendar .booking-calendar {
    width: 100%;
    min-height: 0;
    height: 389px;
    max-height: 389px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border: 1px solid #c6c1a1;
    overflow: hidden;
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month],
  .header-booking-modal .booking-dropdown--calendar [data-booking-month] {
    display: block;
    min-height: 0;
    height: 389px;
    padding: 24px 24px 0;
    border: 0;
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month] + [data-booking-month],
  .header-booking-modal .booking-dropdown--calendar [data-booking-month] + [data-booking-month] {
    display: block;
    border-top: 0;
    border-left: 1px solid #c6c1a1;
  }

  .booking-flow .booking-dropdown--calendar [data-booking-month]:first-child .booking-calendar__nav-placeholder,
  .header-booking-modal .booking-dropdown--calendar [data-booking-month]:first-child .booking-calendar__nav-placeholder {
    display: none;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__nav--mobile-next,
  .header-booking-modal .booking-dropdown--calendar .booking-calendar__nav--mobile-next {
    display: inline-grid;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__header,
  .header-booking-modal .booking-calendar__header {
    margin-bottom: 46px;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 500;
    line-height: 23px;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__grid,
  .header-booking-modal .booking-calendar__grid {
    gap: 0;
  }

  .booking-flow .booking-dropdown--calendar .booking-calendar__day,
  .header-booking-modal .booking-calendar__day {
    min-height: 41px;
    font-family: var(--font-heading);
    font-size: 15px;
    line-height: 1;
  }

  .booking-flow .booking-dropdown__actions,
  .booking-flow .booking-guest-dropdown__actions,
  .booking-flow .booking-special-dropdown__actions {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 802;
    width: 100%;
    min-height: 92px;
    height: 92px;
    margin: 0;
    padding: 24px 32px;
    border-top: 1px solid var(--booking-line);
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    background: #fffced;
  }

  .booking-flow .booking-dropdown__actions [data-booking-clear-dates] {
    display: none;
  }

  .booking-flow .booking-dropdown__actions .button-primary,
  .booking-flow .booking-dropdown__actions .button-secondary,
  .booking-flow .booking-guest-dropdown__actions .button-primary,
  .booking-flow .booking-guest-dropdown__actions .button-secondary,
  .booking-flow .booking-special-dropdown__actions .button-primary {
    width: 100%;
  }

  .booking-flow .booking-dropdown__cancel-mobile {
    display: flex;
    order: -1;
  }

  .header-booking-modal__panel-content {
    height: calc(100% - 92px);
    padding: 72px var(--header-booking-side) 0;
    gap: 48px;
  }

  .header-booking-modal__panel-title {
    font-size: 32px;
    line-height: 28px;
  }

  .header-booking-modal__panel-close {
    top: 24px;
  }

  .header-booking-modal__panel-actions,
  .header-booking-modal .booking-guest-dropdown__actions {
    height: 92px;
    padding: 24px var(--header-booking-side);
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar {
    flex: 0 0 389px;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .booking-flow:has(.booking-room-list) {
    min-height: 100svh;
    padding: 98px 0 56px;
    background: #fffced;
  }

  .booking-flow:has(.booking-room-list) .booking-flow__head,
  .booking-flow:has(.booking-room-list) .booking-room-list {
    width: min(705px, calc(100vw - 63px));
    max-width: none;
  }

  .booking-flow:has(.booking-room-list) .booking-flow__head {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .booking-flow:has(.booking-room-list) .booking-flow__title {
    padding: 10px;
    font-size: 32px;
    line-height: 28px;
  }

  .booking-flow:has(.booking-room-list) .booking-progress {
    width: min(523px, 100%);
    margin: 0 auto;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 8px;
  }

  .booking-flow:has(.booking-room-list) .booking-progress__step {
    min-width: 0;
    min-height: 40px;
    padding-top: 28px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-room-list) .booking-progress__step::before {
    top: 9px;
    left: 28px;
    width: calc(100% - 28px);
    max-width: none;
    height: 2px;
  }

  .booking-flow:has(.booking-room-list) .booking-progress__number {
    width: 20px;
    height: 20px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-room-list) .booking-progress__label {
    font-size: 0;
    line-height: 0;
    white-space: normal;
  }

  .booking-flow:has(.booking-room-list) .booking-progress__label::after {
    content: attr(data-mobile-label);
    display: block;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    line-height: 12px;
  }

  .booking-flow:has(.booking-room-list) .booking-room-list {
    margin: 48px auto 0;
    gap: 48px;
  }

  .booking-flow:has(.booking-room-list) .booking-room-card {
    width: 100%;
    min-height: 0;
    height: auto;
    border: 0;
    display: flex;
    flex-direction: column;
    background: #fffced;
  }

  .booking-flow:has(.booking-room-list) .room-card__media {
    width: 100%;
    min-height: 340px;
    height: 340px;
    border: 1px solid var(--booking-line);
    border-bottom: 0;
    background-position: center;
  }

  .booking-flow:has(.booking-room-list) .room-card__gallery-dots {
    bottom: 16px;
  }

  .booking-flow:has(.booking-room-list) .room-card__body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: auto;
    padding: 24px 16px;
    border: 1px solid var(--booking-line);
    border-top: 0;
  }

  .booking-flow:has(.booking-room-list) .booking-room-card .room-card__body::after {
    content: "";
    order: 6;
    width: 100%;
    height: 1px;
    margin-top: 24px;
    display: block;
    background: var(--booking-line);
    flex: 0 0 auto;
  }

  .booking-flow:has(.booking-room-list) .room-card__top {
    padding: 0;
    display: contents;
  }

  .booking-flow:has(.booking-room-list) .room-card__copy {
    order: 1;
    max-width: none;
  }

  .booking-flow:has(.booking-room-list) .room-card__title {
    margin: 0;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-flow:has(.booking-room-list) .room-card__text {
    display: none;
  }

  .booking-flow:has(.booking-room-list) .room-card__details {
    order: 2;
    width: 100%;
    margin: 16px 0 0;
    color: #676767;
    font-size: 12px;
    line-height: normal;
  }

  .booking-flow:has(.booking-room-list) .room-card__meta-link {
    order: 3;
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 14px;
    text-underline-offset: 2px;
  }

  .booking-flow:has(.booking-room-list) .room-card__price {
    order: 4;
    position: static;
    width: 100%;
    margin: 24px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid var(--booking-line);
    text-align: left;
  }

  .booking-flow:has(.booking-room-list) .room-card__price-current {
    font-size: 18px;
    line-height: 22px;
  }

  .booking-flow:has(.booking-room-list) .room-card__price-old,
  .booking-flow:has(.booking-room-list) .room-card__price-note {
    font-size: 12px;
    line-height: normal;
  }

  .booking-flow:has(.booking-room-list) .room-card__bottom {
    display: contents;
    min-height: 0;
    padding: 0;
    border: 0;
  }

  .booking-flow:has(.booking-room-list) .room-card__button,
  .booking-flow:has(.booking-room-list) .room-card__bottom .button-primary {
    order: 5;
    width: 100%;
    min-height: 45px;
    height: 45px;
    margin: 24px 0 0;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }
}

@media (min-width: 768px) and (max-width: 1023px) {
  .booking-flow:has(.booking-services) {
    min-height: 100svh;
    padding: 98px 0 56px;
    background: #fffced;
  }

  .booking-flow:has(.booking-services) .booking-flow__head {
    width: min(523px, calc(100vw - 64px));
    max-width: none;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .booking-flow:has(.booking-services) .booking-flow__title {
    padding: 10px;
    font-size: 32px;
    line-height: 28px;
  }

  .booking-flow:has(.booking-services) .booking-progress {
    width: 100%;
    margin: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 8px;
  }

  .booking-flow:has(.booking-services) .booking-progress__step {
    min-width: 0;
    min-height: 40px;
    padding-top: 28px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-services) .booking-progress__step::before {
    top: 9px;
    left: 28px;
    width: calc(100% - 28px);
    max-width: none;
    height: 2px;
  }

  .booking-flow:has(.booking-services) .booking-progress__number {
    width: 20px;
    height: 20px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-services) .booking-progress__label {
    font-size: 0;
    line-height: 0;
    white-space: normal;
  }

  .booking-flow:has(.booking-services) .booking-progress__label::after {
    content: attr(data-mobile-label);
    display: block;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    line-height: 12px;
  }

  .booking-flow:has(.booking-services) .booking-services,
  .booking-flow:has(.booking-services) .booking-services__form {
    width: min(704px, calc(100vw - 64px));
    max-width: none;
    margin: 48px auto 0;
    display: grid;
    gap: 48px;
  }

  .booking-flow:has(.booking-services) .booking-services__form {
    margin-top: 0;
  }

  .booking-services > .booking-room-card {
    width: 100%;
    min-height: 0;
    height: auto;
    border: 0;
    display: flex;
    flex-direction: column;
    background: #fffced;
    overflow: visible;
  }

  .booking-services > .booking-room-card::before,
  .booking-services > .booking-room-card::after {
    content: none;
  }

  .booking-services > .booking-room-card .room-card__media {
    width: 100%;
    min-height: 440px;
    height: 440px;
    align-self: stretch;
    border: 1px solid var(--booking-line);
    border-bottom: 0;
    background-position: center;
  }

  .booking-services > .booking-room-card .room-card__gallery-dots {
    bottom: 16px;
  }

  .booking-services > .booking-room-card .room-card__body {
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: auto;
    padding: 24px 16px;
    border: 1px solid var(--booking-line);
    border-top: 0;
  }

  .booking-services > .booking-room-card .room-card__body::after {
    content: "";
    order: 6;
    width: 100%;
    height: 1px;
    margin-top: 24px;
    display: block;
    background: var(--booking-line);
    flex: 0 0 auto;
  }

  .booking-services > .booking-room-card .room-card__top {
    padding: 0;
    display: contents;
  }

  .booking-services > .booking-room-card .room-card__copy {
    order: 1;
    max-width: none;
    padding-top: 0;
  }

  .booking-services > .booking-room-card .room-card__title {
    margin: 0;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-services > .booking-room-card .room-card__text {
    display: none;
  }

  .booking-services > .booking-room-card .room-card__details {
    order: 2;
    position: static;
    width: 100%;
    margin: 16px 0 0;
    color: #676767;
    font-size: 12px;
    line-height: normal;
  }

  .booking-services > .booking-room-card .room-card__meta-link {
    order: 3;
    margin: 16px 0 0;
    font-size: 14px;
    line-height: 14px;
    text-underline-offset: 2px;
  }

  .booking-services > .booking-room-card .room-card__price {
    order: 4;
    position: static;
    width: 100%;
    margin: 24px 0 0;
    padding: 24px 0 0;
    border-top: 1px solid var(--booking-line);
    text-align: left;
  }

  .booking-services > .booking-room-card .room-card__price-current {
    font-size: 18px;
    line-height: 22px;
  }

  .booking-services > .booking-room-card .room-card__price-old,
  .booking-services > .booking-room-card .room-card__price-note {
    font-size: 12px;
    line-height: normal;
  }

  .booking-services > .booking-room-card .room-card__bottom {
    display: contents;
    min-height: 0;
    padding: 0;
    border: 0;
  }

  .booking-room-card--selected .booking-service-actions {
    order: 5;
    position: static;
    width: 100%;
    margin: 24px 0 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .booking-room-card--selected .booking-service-actions .button-secondary,
  .booking-room-card--selected .booking-service-actions .button-primary {
    width: 100%;
    min-width: 0;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-extra {
    min-height: 0;
    height: auto;
    padding: 0;
    border: 1px solid var(--booking-line);
    display: flex;
    flex-direction: column;
    background: #fffced;
  }

  .booking-gift-card {
    min-height: 0;
    height: auto;
    display: flex;
    flex-direction: column;
  }

  .booking-gift-card__image {
    min-height: 240px;
    height: 240px;
  }

  .booking-gift-card__copy {
    max-width: none;
    padding: 24px 16px;
  }

  .booking-gift-card__copy h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-gift-card__copy p {
    margin-top: 16px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-gift-card__flag {
    right: 16px;
  }

  .booking-extra__copy {
    display: contents;
    padding: 0;
  }

  .booking-extra__copy h2 {
    order: 1;
    width: 100%;
    min-height: 75px;
    padding: 0 16px;
    border-bottom: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-extra__image {
    order: 2;
    width: auto;
    height: 240px;
    margin: 16px 16px 0;
    border-radius: 0;
  }

  .booking-extra__copy p {
    order: 3;
    max-width: none;
    margin: 24px 16px 0;
    font-size: 14px;
    line-height: normal;
  }

  .booking-extra__side {
    order: 4;
    width: auto;
    margin: 24px 16px 0;
    padding: 24px 0;
    border-top: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
  }

  .booking-extra__price,
  .booking-transfer__price,
  .booking-total-card__price {
    font-size: 18px;
    line-height: 18px;
    text-align: left;
  }

  .booking-extra__price span,
  .booking-transfer__price span,
  .booking-total-card__price em {
    font-size: 12px;
    line-height: 12px;
  }

  .booking-extra__toggle,
  .booking-transfer__button {
    width: 155px;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    flex: 0 0 155px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-transfer {
    min-height: 0;
    height: auto;
    border: 1px solid var(--booking-line);
    background: #fffced;
    overflow: hidden;
  }

  .booking-transfer.is-open {
    min-height: 0;
    height: auto;
  }

  .booking-transfer__head {
    min-height: 75px;
    height: 75px;
    padding: 0 16px;
  }

  .booking-transfer h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-transfer__plus {
    width: 40px;
    height: 40px;
  }

  .booking-transfer__plus::before,
  .booking-transfer__plus::after {
    width: 20px;
  }

  .booking-transfer__body {
    position: static;
    min-height: 0;
    height: auto;
    padding: 16px 16px 24px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 155px;
    column-gap: 16px;
    row-gap: 24px;
  }

  .booking-transfer__body[hidden] {
    display: none;
  }

  .booking-transfer__workflow {
    grid-column: 1 / -1;
    max-width: none;
    gap: 8px;
  }

  .booking-transfer__step {
    min-height: 0;
    padding-left: 33px;
  }

  .booking-transfer__step--arrival {
    min-height: 0;
  }

  .booking-transfer__step:not(:last-child)::after {
    left: 12px;
    top: 33px;
    height: calc(100% - 25px);
  }

  .booking-transfer__step--arrival::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 33px;
    width: 1px;
    height: calc(100% - 8px);
    background: var(--booking-line);
  }

  .booking-transfer__step-head {
    min-height: 25px;
    margin: 0 0 16px -33px;
    gap: 8px;
    align-items: center;
  }

  .booking-transfer__step-head h3 {
    font-size: 22px;
    line-height: 22px;
  }

  .booking-transfer__step-number {
    width: 25px;
    height: 25px;
    font-size: 14px;
  }

  .booking-transfer__choices {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, max-content));
    max-width: none;
    gap: 12px 24px;
  }

  .booking-transfer__choices--transport {
    grid-template-columns: 1fr;
  }

  .booking-transfer__choice {
    gap: 8px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-transfer__choice-box {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .booking-transfer__choice-box::after {
    left: 4px;
    top: 0;
    width: 8px;
    height: 13px;
  }

  .booking-transfer__fields {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .booking-transfer-field {
    gap: 6px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-transfer-field input,
  .booking-transfer-field select {
    height: 45px;
    padding: 0 12px;
  }

  .booking-transfer-field textarea {
    height: 90px;
    padding: 12px;
  }

  .booking-transfer-field__split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
  }

  .booking-transfer-field--comments {
    grid-column: auto;
  }

  .booking-transfer-field--flight {
    grid-template-columns: 1fr auto;
    align-items: end;
  }

  .booking-transfer-field--flight span {
    grid-column: 1;
  }

  .booking-transfer-field--flight em {
    position: static;
    grid-column: 2;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-transfer-field--flight input {
    grid-column: 1 / -1;
  }

  .booking-transfer__guests {
    position: static;
    grid-column: 1 / -1;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--booking-line);
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-transfer__guests::before {
    content: "";
    width: 25px;
    height: 25px;
    flex: 0 0 25px;
    border-radius: 50%;
    background: #dbd6c2 url("../images/figma/room-modal/icon-people.svg") center / 16px 12px no-repeat;
  }

  .booking-transfer__price {
    position: static;
    grid-column: 1;
    align-self: center;
  }

  .booking-transfer__button {
    position: static;
    grid-column: 2;
    justify-self: end;
  }

  .booking-total-card {
    position: static;
    min-height: 0;
    height: auto;
    margin-top: 0;
    padding: 24px 16px;
    display: flex;
    flex-direction: column;
    gap: 24px;
  }

  .booking-total-card h2 {
    position: static;
    width: 100%;
    font-size: 28px;
    line-height: 28px;
  }

  .booking-total-card__price {
    position: static;
    width: 100%;
    padding-top: 24px;
    border-top: 1px solid var(--booking-line);
  }

  .booking-total-card__price strong {
    font-size: 18px;
    line-height: 18px;
  }

  .booking-total-card__price span {
    margin-top: 2px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-total-card__actions {
    position: static;
    width: 100%;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .booking-total-card__actions .button-secondary,
  .booking-total-card__actions .button-primary {
    width: 100%;
    min-width: 0;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }
}

.booking-flow:has(.booking-confirm) .booking-widget {
  display: none;
}

@media (min-width: 768px) and (max-width: 1023px) {
  .booking-flow:has(.booking-confirm) {
    --booking-confirm-summary-side: max(32px, calc((100vw - 702px) / 2));
    min-height: 100svh;
    padding: 88px 0 129px;
    background: #fffced;
  }

  .booking-flow:has(.booking-confirm) .booking-flow__head {
    width: min(704px, calc(100vw - 64px));
    max-width: none;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
  }

  .booking-flow:has(.booking-confirm) .booking-flow__title {
    width: 100%;
    min-height: 76px;
    padding: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    line-height: 28px;
    text-align: center;
  }

  .booking-flow:has(.booking-confirm) .booking-progress {
    width: min(521px, 100%);
    margin: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 8px;
  }

  .booking-flow:has(.booking-confirm) .booking-progress__step {
    min-width: 0;
    min-height: 40px;
    padding-top: 28px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-confirm) .booking-progress__step::before {
    top: 9px;
    left: 28px;
    width: calc(100% - 28px);
    max-width: none;
    height: 2px;
  }

  .booking-flow:has(.booking-confirm) .booking-progress__number {
    width: 20px;
    height: 20px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-confirm) .booking-progress__label {
    font-size: 0;
    line-height: 0;
    white-space: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-progress__label::after {
    content: attr(data-mobile-label);
    display: block;
    color: #000;
    font-size: 12px;
    font-weight: 400;
    line-height: 12px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm {
    width: min(704px, calc(100vw - 64px));
    max-width: none;
    margin: 48px auto 0;
    padding-bottom: 0;
    display: block;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__column {
    width: 100%;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__section-title,
  .booking-flow:has(.booking-confirm) .booking-confirm__summary-title {
    gap: 16px;
    margin-bottom: 16px;
    font-size: 24px;
    line-height: 28px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__section-title span,
  .booking-flow:has(.booking-confirm) .booking-confirm__summary-title span {
    width: 25px;
    height: 25px;
    font-size: 16px;
    line-height: 16px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__section-title--payment {
    margin-top: 48px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__fields {
    gap: 16px;
  }

  .booking-flow:has(.booking-confirm) .booking-field {
    min-height: 60px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-flow:has(.booking-confirm) .booking-field__control {
    min-height: 60px;
    padding: 26px 8px 16px;
    border-bottom-color: #c1c1c1;
    line-height: 14px;
  }

  .booking-flow:has(.booking-confirm) .booking-field__label {
    left: 8px;
    top: 36px;
    line-height: 14px;
  }

  .booking-flow:has(.booking-confirm) .booking-field:focus-within .booking-field__label,
  .booking-flow:has(.booking-confirm) input.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-flow:has(.booking-confirm) textarea.booking-field__control:not(:placeholder-shown) + .booking-field__label,
  .booking-flow:has(.booking-confirm) .booking-field.has-value .booking-field__label,
  .booking-flow:has(.booking-confirm) .booking-field__control:-webkit-autofill + .booking-field__label {
    top: 8px;
  }

  .booking-flow:has(.booking-confirm) .booking-field--select::after {
    right: 8px;
    bottom: 21px;
  }

  .booking-flow:has(.booking-confirm) .booking-field--textarea {
    min-height: 112px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .booking-flow:has(.booking-confirm) .booking-field--textarea .booking-field__label {
    position: static;
    order: -1;
    padding-left: 8px;
  }

  .booking-flow:has(.booking-confirm) .booking-field--textarea .booking-field__control {
    min-height: 82px;
    height: 82px;
    margin-top: 0;
    padding: 10px;
    border: 1px solid #c1c1c1;
  }

  .booking-flow:has(.booking-confirm) .booking-payment-grid {
    grid-template-columns: 88px minmax(0, 1fr);
    column-gap: 16px;
    row-gap: 23px;
  }

  .booking-flow:has(.booking-confirm) .booking-payment-grid__hint {
    min-height: 60px;
    padding: 36px 8px 0;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-flow:has(.booking-confirm) .booking-payment-grid__split {
    gap: 16px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__check {
    grid-template-columns: 18px minmax(0, 1fr);
    gap: 16px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__check-box {
    width: 18px;
    height: 18px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__check-box::after {
    left: 5px;
    top: 1px;
    width: 6px;
    height: 11px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__submit {
    width: 100%;
    min-height: 45px;
    height: 45px;
    margin-top: 32px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 1.8px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__summary {
    position: fixed;
    inset: 0;
    z-index: 800;
    width: 100%;
    max-width: none;
    height: 100vh;
    min-height: 100vh;
    padding: 20px var(--booking-confirm-summary-side) 0;
    border-left: 0;
    display: flex;
    flex-direction: column;
    background: #fffced;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(100%);
    transition:
      transform 280ms ease,
      visibility 0s linear 280ms;
    -webkit-overflow-scrolling: touch;
  }

  @supports (height: 100dvh) {
    .booking-flow:has(.booking-confirm) .booking-confirm__summary {
      height: 100dvh;
      min-height: 100dvh;
    }
  }

  .booking-confirm.is-summary-open .booking-confirm__summary {
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition: transform 280ms ease;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-summary-head {
    min-height: 24px;
    margin: 0 0 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    color: #040404;
    font-family: var(--font-heading);
    font-size: 20px;
    line-height: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__summary-close {
    width: 34px;
    height: 24px;
    border: 0;
    display: grid;
    place-items: center;
    background: transparent;
    color: #141414;
    cursor: pointer;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__summary-close::before {
    content: "";
    width: 9px;
    height: 9px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__summary-title {
    width: 100%;
    min-height: 28px;
    margin: 0 0 48px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    gap: 16px;
    font-size: 24px;
    line-height: 28px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__summary-title strong {
    flex: 0 0 auto;
    width: 202px;
    margin: 0 0 0 auto;
    font-size: 16px;
    line-height: normal;
    text-align: right;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-label {
    width: 100%;
    margin-bottom: 24px;
    font-size: 12px;
    line-height: normal;
    letter-spacing: 1.8px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-label button,
  .booking-flow:has(.booking-confirm) .booking-confirm__room-remove {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-family: var(--font-body);
    font-size: 14px;
    line-height: 18px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room {
    width: 100%;
    min-height: 200px;
    padding-bottom: 29px;
    border-bottom: 1px solid var(--booking-line, #c6c1a1);
    grid-template-columns: 247px minmax(0, 1fr);
    gap: 24px;
    align-items: stretch;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__image {
    width: 247px;
    height: 200px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-body {
    min-width: 0;
    display: flex;
    flex-direction: column;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-body h2 {
    margin: 0 0 8px;
    font-size: 20px;
    line-height: 18px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-body em {
    margin: 0 0 16px;
    font-size: 12px;
    line-height: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__service-list {
    gap: 0;
    margin: 0 0 16px;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-body p {
    margin: 0 0 15px;
    gap: 16px;
    flex-wrap: wrap;
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-bottom {
    margin-top: auto;
    gap: 16px;
    align-items: flex-end;
    font-size: 14px;
    line-height: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__room-bottom strong {
    white-space: nowrap;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__total {
    min-height: 81px;
    margin: auto calc(-1 * var(--booking-confirm-summary-side)) 0;
    padding: 0 var(--booking-confirm-summary-side);
    border-top: 0;
    align-items: center;
    font-size: 20px;
    line-height: normal;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__total strong {
    margin-left: auto;
    font-size: 18px;
    line-height: normal;
    white-space: nowrap;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-total {
    position: fixed;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 75;
    min-height: 81px;
    padding: 0 32px;
    border: 0;
    border-top: 1px solid var(--booking-line, #c6c1a1);
    display: flex;
    align-items: center;
    background: #fffced;
    color: #040404;
    font-family: var(--font-heading);
    cursor: pointer;
  }

  .booking-confirm.is-summary-open .booking-confirm__mobile-total {
    visibility: hidden;
    pointer-events: none;
  }

  body.is-booking-summary-open {
    overflow: hidden;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-total span {
    width: 110px;
    font-size: 20px;
    line-height: normal;
    text-align: left;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-total strong {
    margin-left: auto;
    font-size: 18px;
    font-weight: 400;
    line-height: normal;
    white-space: nowrap;
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-total i {
    width: 9px;
    height: 9px;
    margin-left: 16px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    display: block;
    background: transparent;
    color: #141414;
    font-style: normal;
    transform: rotate(225deg);
  }

  .booking-flow:has(.booking-confirm) .booking-confirm__mobile-total i::before {
    content: none;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .home-hero__media {
    background-position: center top;
  }

  .home-hero__inner {
    width: 100%;
    max-width: 431px;
    margin: 0 auto 0 48px;
    padding-top: 296px;
  }

  .home-hero .home-display-title {
    font-size: 65px;
    line-height: 55px;
  }

  .home-hero__text {
    max-width: 431px;
    font-size: 22px;
    line-height: 26px;
    hyphens: none;
  }

  .home-rooms {
    padding-bottom: 56px;
    background: #fffced;
    border: 0;
    color: #000;
  }

  .home-rooms__inner {
    width: 100%;
    margin: 0;
    padding: 132px 48px 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    justify-content: space-between;
    gap: 24px;
  }

  .home-rooms__aside {
    flex: 0 0 373px;
    align-self: stretch;
    padding: 0;
  }

  .home-rooms__aside-inner {
    position: sticky;
    top: 132px;
    max-width: 373px;
  }

  .home-rooms .home-display-subtitle {
    margin: 0 0 16px;
    font-size: 60px;
    line-height: 50px;
  }

  .home-rooms__text {
    max-width: 373px;
    margin: 0 0 24px;
    font-size: 20px;
    line-height: normal;
  }

  .home-rooms__button {
    width: max-content;
    min-height: 49px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 2.4px;
  }

  .home-rooms__gallery {
    width: 531px;
    max-width: none;
    flex: 0 0 531px;
    gap: 24px;
  }

  .home-room-panel {
    height: 380px;
    min-height: 0;
  }
}

@media (min-width: 900px) and (max-width: 1179px) {
  .home-story {
    min-height: 100svh;
    padding: 0;
    background: #081412 url("../images/figma/home-hero-figma.webp") center / cover no-repeat;
  }

  .home-story__inner {
    width: min(946px, calc(100vw - 78px));
    min-height: auto;
    margin: 0 auto;
    padding: clamp(210px, 22.461vw, 230px) 0 0;
    display: flex;
    flex-direction: row;
    align-items: flex-start;
    justify-content: center;
    gap: 24px;
  }

  .home-story__crest {
    width: clamp(320px, 36.621vw, 375px);
    height: auto;
    aspect-ratio: 375 / 337.678;
    max-width: none;
    flex: 0 1 clamp(320px, 36.621vw, 375px);
    margin: 0;
  }

  .home-story__content {
    width: auto;
    max-width: 547px;
    flex: 1 1 0;
  }

  .home-story__tags {
    width: min(390px, 100%);
    margin: 0 0 24px;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .home-story__tags span {
    height: 47px;
    min-height: 47px;
    flex: 1 1 0;
    padding: 0 12px;
    font-size: 18px;
    line-height: 1;
  }

  .home-story .home-display-subtitle {
    margin: 0 0 24px;
    font-size: 60px;
    line-height: 40px;
  }

  .home-story__text {
    max-width: none;
    margin: 0;
    font-size: 20px;
    line-height: 26px;
  }

  .home-story .home-scroll-next {
    display: none;
  }

  .site-footer__inner {
    width: 100%;
    padding: 92px 48px 0;
    box-sizing: border-box;
  }

  .site-footer__brand {
    margin: 0 auto 67px;
  }
}

@media (min-width: 768px) and (max-width: 899px) {
  .home-story {
    min-height: 100svh;
    padding: 0;
    background: #081412 url("../images/figma/home-hero-figma.webp") center / cover no-repeat;
  }

  .home-story__inner {
    width: auto;
    min-height: auto;
    margin: 0 32px;
    padding: 217px 0 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .home-story__crest {
    width: 247px;
    height: 220px;
    max-width: none;
    flex: 0 0 auto;
    margin: 40px 0 40px 8px;
  }

  .home-story__content {
    width: 100%;
    max-width: none;
  }

  .home-story__tags {
    width: min(432px, 100%);
    margin: 0 0 48px;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .home-story__tags span {
    height: 47px;
    min-height: 47px;
    flex: 1 1 0;
    padding: 0 12px;
    font-size: 18px;
    line-height: 1;
  }

  .home-story .home-display-subtitle {
    margin: 0 0 24px;
    font-size: 60px;
    line-height: 40px;
  }

  .home-story__text {
    max-width: none;
    margin: 0;
    font-size: 20px;
    line-height: 26px;
  }

  .home-story .home-scroll-next {
    display: none;
  }

  .home-footer-section,
  .home-footer-section .site-footer {
    height: auto;
    min-height: 1101px;
  }

  .home-footer-section {
    display: block;
    background: #1d1d1d;
  }

  .site-footer,
  .home-footer-section .site-footer {
    display: block;
    background: #1d1d1d;
    color: #fff;
  }

  .site-footer__inner {
    width: 100%;
    padding: 104px 0 30px;
    box-sizing: border-box;
  }

  .site-footer__brand {
    width: 343px;
    margin: 0 0 43px calc((100vw - 343px) / 2);
    display: block;
  }

  .site-footer__crest {
    width: 343px;
    height: 166.622px;
    max-width: none;
    aspect-ratio: auto;
    object-fit: contain;
  }

  .site-footer__columns {
    width: calc(100vw - 64px);
    height: 758px;
    margin: 0 0 0 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0;
  }

  .site-footer__column {
    width: 100%;
    padding: 0 0 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .site-footer__column:nth-child(1) {
    order: 2;
  }

  .site-footer__column:nth-child(2) {
    order: 1;
  }

  .site-footer__column:nth-child(3) {
    order: 3;
  }

  .site-footer__column:nth-child(4) {
    order: 4;
  }

  .site-footer__column:nth-child(5) {
    order: 5;
  }

  .site-footer__column h3 {
    margin: 0 0 16px;
    font-size: 14px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 2.8px;
    color: #af6c37;
  }

  .site-footer__text-group {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__text,
  .site-footer__nav {
    font-size: 18px;
    line-height: 22px;
  }

  .site-footer__text {
    margin: 0;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(1),
  .site-footer__column:nth-child(2) .site-footer__text:nth-child(3) {
    font-size: 18px;
    line-height: 33px;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(2) {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 33px;
  }

  .site-footer__nav {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__nav--social {
    gap: 5px;
  }

  .site-footer__social-link {
    gap: 7px;
  }

  .site-footer__social-link img {
    width: 15px;
    height: 15px;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .home-hero__media {
    background-position: center top;
  }

  .home-hero__inner {
    width: 100%;
    max-width: 431px;
    margin: 0 auto 0 32px;
    padding-top: 458px;
  }

  .home-hero .home-display-title {
    font-size: 65px;
    line-height: 55px;
  }

  .home-hero__text {
    max-width: 431px;
    font-size: 22px;
    line-height: 26px;
    hyphens: none;
  }

  .home-rooms {
    padding-bottom: 39px;
    background: #fffced;
    border: 0;
    color: #000;
  }

  .home-rooms__inner {
    width: 100%;
    margin: 0;
    padding: 132px 32px 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 48px;
  }

  .home-rooms__aside {
    align-self: stretch;
    padding: 0;
  }

  .home-rooms__aside-inner {
    position: static;
    top: auto;
    max-width: none;
  }

  .home-rooms .home-display-subtitle {
    margin: 0 0 16px;
    font-size: 60px;
    line-height: 50px;
  }

  .home-rooms__text {
    max-width: none;
    margin: 0 0 24px;
    font-size: 20px;
    line-height: normal;
  }

  .home-rooms__button {
    width: max-content;
    min-height: 49px;
    padding: 0 32px;
    font-size: 12px;
    letter-spacing: 2.4px;
  }

  .home-rooms__gallery {
    width: 100%;
    max-width: none;
    gap: 24px;
  }

  .home-room-panel {
    height: 380px;
    min-height: 0;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .home-rooms {
    padding-bottom: 39px;
  }

  .home-rooms__inner {
    padding: 132px 32px 0;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-start;
    gap: 48px;
  }

  .home-rooms__aside {
    flex: 0 1 auto;
  }

  .home-rooms__aside-inner {
    position: static;
    top: auto;
    max-width: none;
  }

  .home-rooms__text {
    max-width: none;
  }

  .home-rooms__gallery {
    width: 100%;
    max-width: none;
    flex: 0 1 auto;
    gap: 24px;
  }
}

@media (min-width: 900px) and (max-width: 1179px) {
  .home-rooms {
    padding-bottom: 56px;
  }

  .home-rooms__inner {
    padding: 132px 32px 0;
    flex-direction: row;
    align-items: stretch;
    justify-content: center;
    gap: 24px;
  }

  .home-rooms__aside {
    flex: 0 0 373px;
    align-self: stretch;
  }

  .home-rooms__aside-inner {
    position: sticky;
    top: 132px;
    max-width: 373px;
  }

  .home-rooms__text {
    max-width: 373px;
  }

  .home-rooms__gallery {
    width: min(531px, calc(100vw - 461px));
    max-width: none;
    flex: 1 1 auto;
  }

  .home-footer-section,
  .home-footer-section .site-footer {
    height: auto;
    min-height: 1101px;
  }

  .home-footer-section {
    display: block;
    background: #1d1d1d;
  }

  .site-footer,
  .home-footer-section .site-footer {
    display: block;
    background: #1d1d1d;
    color: #fff;
  }

  .site-footer__inner {
    width: 100%;
    padding: 104px 0 30px;
    box-sizing: border-box;
  }

  .site-footer__brand {
    width: 343px;
    margin: 0 0 43px calc((100vw - 343px) / 2);
    display: block;
  }

  .site-footer__crest {
    width: 343px;
    height: 166.622px;
    max-width: none;
    aspect-ratio: auto;
    object-fit: contain;
  }

  .site-footer__columns {
    width: calc(100vw - 64px);
    height: 758px;
    margin: 0 0 0 32px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 0;
  }

  .site-footer__column {
    width: 100%;
    padding: 0 0 24px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  }

  .site-footer__column:nth-child(1) {
    order: 2;
  }

  .site-footer__column:nth-child(2) {
    order: 1;
  }

  .site-footer__column:nth-child(3) {
    order: 3;
  }

  .site-footer__column:nth-child(4) {
    order: 4;
  }

  .site-footer__column:nth-child(5) {
    order: 5;
  }

  .site-footer__column h3 {
    margin: 0 0 16px;
    font-size: 14px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 2.8px;
    color: #af6c37;
  }

  .site-footer__text-group {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__text,
  .site-footer__nav {
    font-size: 18px;
    line-height: 22px;
  }

  .site-footer__text {
    margin: 0;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(1),
  .site-footer__column:nth-child(2) .site-footer__text:nth-child(3) {
    font-size: 18px;
    line-height: 33px;
  }

  .site-footer__column:nth-child(2) .site-footer__text:nth-child(2) {
    margin: 0 0 8px;
    font-size: 28px;
    line-height: 33px;
  }

  .site-footer__nav {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .site-footer__nav--social {
    gap: 5px;
  }

  .site-footer__social-link {
    gap: 7px;
  }

  .site-footer__social-link img {
    width: 15px;
    height: 15px;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .home-conference {
    display: none;
  }

  .home-services {
    background: #1d1d1d;
    color: #fff;
    overflow: hidden;
  }

  .home-services__intro {
    display: block;
    color: #fff;
    opacity: 0.8;
  }

  .home-services__grid {
    min-height: 0;
    width: 100%;
    box-sizing: border-box;
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .home-services__grid::-webkit-scrollbar {
    display: none;
  }

  .home-service-card,
  .home-service-card.is-mobile-service-only {
    min-height: 0;
    height: auto;
    display: flex;
    flex-grow: 0;
    flex-shrink: 0;
    flex-direction: column;
    align-items: stretch;
    padding: 0;
    background: transparent;
    color: #fff;
    overflow: visible;
    scroll-snap-align: start;
  }

  .home-service-card::before {
    content: none;
  }

  .home-service-card.is-restaurant,
  .home-service-card.is-spa,
  .home-service-card.is-dessange,
  .home-service-card.is-conference {
    background: transparent;
  }

  .home-service-card__image {
    position: static;
    inset: auto;
    width: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
    opacity: 0.78;
  }

  .home-service-card__content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: none;
    background: transparent;
  }

  .home-service-card__title-desktop {
    display: none;
  }

  .home-service-card__title-mobile {
    display: inline;
  }

  .home-service-card p {
    max-width: none;
    color: #bababa;
  }

  .home-service-card__button {
    width: 144px;
    min-height: 38px;
    height: 38px;
    padding: 0 32px;
    border-color: #c6c1a1;
    color: #fff;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 1.8px;
  }

  .home-guests {
    height: 703px;
    min-height: 703px;
    padding: 111px 32px 0;
    box-sizing: border-box;
    background: #fffced;
    color: #000;
    overflow: hidden;
  }

  .home-guests__inner {
    width: 100%;
    height: auto;
    margin: 0;
    position: relative;
  }

  .home-guests__title {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    width: 100%;
    min-height: 0;
    margin: 0 0 24px;
    font-size: 60px;
    line-height: 50px;
    letter-spacing: 0;
    text-align: center;
    white-space: nowrap;
  }

  .home-guests__carousel {
    position: relative;
    top: auto;
    right: auto;
    left: auto;
    width: 100%;
    display: block;
  }

  .home-guests__viewport {
    width: 100%;
    margin: 0;
    overflow: hidden;
    touch-action: pan-y;
  }

  .home-guests__track {
    gap: 0;
    align-items: stretch;
    transition: transform 260ms ease;
  }

  .home-guest-card {
    flex: 0 0 100%;
    width: 100%;
    min-height: 370px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    padding: 0;
    text-align: center;
  }

  .home-guest-card__avatar {
    width: 160px;
    height: 160px;
    margin: 0 0 16px;
    flex: 0 0 160px;
  }

  .home-guest-card__stars {
    width: 145px;
    height: 23px;
    max-width: none;
    margin: 0 auto 18px;
  }

  .home-guest-card__content {
    width: 100%;
  }

  .home-guest-card__text {
    max-width: none;
    margin: 0 0 18px;
    font-size: 20px;
    line-height: 22px;
  }

  .home-guest-card__name {
    margin: 0 0 7px;
    font-size: 22px;
    line-height: 22px;
  }

  .home-guest-card__role {
    font-size: 14px;
    line-height: 14px;
  }

  .home-guests__nav {
    --button-circle-size: 25px;
    position: absolute;
    display: inline-grid;
    top: 166px;
    z-index: 2;
    border-color: #000;
    background: #fffced;
    color: #000;
  }

  .home-guests__nav::before {
    width: 12px;
    height: 12px;
  }

  .home-guests__nav--prev {
    left: 0;
  }

  .home-guests__nav--next {
    right: 0;
  }

  .home-guests__dots {
    width: 100%;
    margin: 24px 0 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
  }

  .home-guests__dot {
    width: 6px;
    height: 6px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: #a8a699;
  }

  .home-guests__dot.is-active,
  .home-guests__dot[aria-current="true"] {
    background: #000;
  }
}

@media (min-width: 901px) and (max-width: 1179px) {
  .home-services {
    min-height: 840px;
    padding: 110px 0 54px;
    background: #1d1d1d;
  }

  .home-services__intro {
    width: 710px;
    margin: 0 0 38px 48px;
  }

  .home-services__intro .home-display-subtitle {
    font-size: 60px;
    line-height: 50px;
  }

  .home-services__intro p {
    font-size: 20px;
    line-height: 22px;
  }

  .home-services__grid {
    padding: 0 0 8px 48px;
    gap: 24px;
    scroll-padding-inline: 48px;
  }

  .home-service-card,
  .home-service-card.is-mobile-service-only {
    width: 373px;
    flex-basis: 373px;
  }

  .home-service-card__image {
    height: 320px;
    flex-basis: 320px;
  }

  .home-service-card__content {
    margin-top: 24px;
    padding: 0;
  }

  .home-service-card h3 {
    margin-bottom: 8px;
    font-size: 32px;
    line-height: 32px;
  }

  .home-service-card p {
    min-height: 106px;
    font-size: 18px;
    line-height: normal;
  }
}

@media (min-width: 768px) and (max-width: 900px) {
  .home-services {
    min-height: 1024px;
    padding: 149px 32px 70px;
    box-sizing: border-box;
    background: #1d1d1d;
  }

  .home-services__intro {
    width: 100%;
    margin: 0 0 26px;
  }

  .home-services__intro .home-display-subtitle {
    font-size: 60px;
    line-height: 50px;
  }

  .home-services__intro p {
    font-size: 20px;
    line-height: 22px;
  }

  .home-services__grid {
    padding: 0 0 8px;
    gap: 24px;
    scroll-padding-inline: 0;
  }

  .home-service-card,
  .home-service-card.is-mobile-service-only {
    width: 431px;
    flex-basis: 431px;
  }

  .home-service-card__image {
    height: 450px;
    flex-basis: 450px;
  }

  .home-service-card__content {
    margin-top: 24px;
    padding: 0;
  }

  .home-service-card h3 {
    margin-bottom: 8px;
    font-size: 32px;
    line-height: 32px;
  }

  .home-service-card p {
    min-height: 80px;
    font-size: 18px;
    line-height: normal;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .restaurant-page--restaurant #restaurant-main,
  .restaurant-page--restaurant #terrace-main,
  .spa-page #spa-main,
  .dessange-page #dessange-main,
  .conference-page--figma .conference-detail {
    min-height: auto;
    height: auto;
    padding: 96px 32px 56px;
    box-sizing: border-box;
  }

  .restaurant-page--restaurant #restaurant-main .restaurant-shell,
  .restaurant-page--restaurant #terrace-main .restaurant-shell,
  .spa-page #spa-main .restaurant-shell,
  .dessange-page #dessange-main .restaurant-shell,
  .conference-page--figma .conference-detail__shell {
    width: 100%;
    margin: 0;
  }

  .conference-page--figma .conference-detail__shell {
    min-height: auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    grid-template-columns: none;
    grid-template-areas: none;
    gap: 0;
  }

  .conference-page--figma .conference-detail__back {
    width: 45px;
    height: 45px;
    margin: 0 0 24px;
    transform: none;
    flex: 0 0 auto;
  }

  .conference-page--figma .conference-detail__intro {
    width: 100%;
    margin: 0;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    grid-area: auto;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__intro,
  .restaurant-page--restaurant #terrace-main .dining-section__intro,
  .spa-page #spa-main .dining-section__intro,
  .dessange-page #dessange-main .dessange-section__intro {
    width: 100%;
    margin: 0 0 24px;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__heading,
  .restaurant-page--restaurant #terrace-main .dining-section__heading,
  .spa-page #spa-main .dining-section__heading,
  .dessange-page #dessange-main .dining-section__heading {
    width: 100%;
    margin: 0 0 24px;
    grid-column: auto;
    transform: none;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__heading .restaurant-section-title,
  .restaurant-page--restaurant #terrace-main .dining-section__heading .restaurant-section-title,
  .spa-page #spa-main .dining-section__heading .restaurant-section-title,
  .dessange-page #dessange-main .restaurant-section-title,
  .conference-page--figma .conference-detail__title {
    max-width: none;
    margin: 0;
    font-size: 60px;
    line-height: 50px;
    letter-spacing: 0;
  }

  .conference-page--figma .conference-detail__title {
    width: 100%;
  }

  .dessange-page #dessange-main .restaurant-section-title {
    max-width: 520px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__copy,
  .restaurant-page--restaurant #terrace-main .dining-section__copy,
  .spa-page #spa-main .dining-section__copy,
  .dessange-page #dessange-main .dining-section__copy {
    width: 100%;
    margin: 0;
    padding: 0;
    transform: none;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__copy + .dining-section__copy,
  .restaurant-page--restaurant #terrace-main .dining-section__copy + .dining-section__copy,
  .spa-page #spa-main .dining-section__copy + .dining-section__copy,
  .dessange-page #dessange-main .dining-section__copy + .dining-section__copy {
    margin-top: 16px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__copy p,
  .restaurant-page--restaurant #terrace-main .dining-section__copy p,
  .spa-page #spa-main .dining-section__copy p,
  .spa-page #spa-main .dining-section__copy:nth-child(2) p,
  .spa-page #spa-main .dining-section__copy:nth-child(3) p,
  .dessange-page #dessange-main .dining-section__copy p,
  .dessange-page #dessange-main .dining-section__copy:nth-child(2) p,
  .dessange-page #dessange-main .dining-section__copy:nth-child(3) p {
    width: 100%;
    max-width: none;
    margin: 0;
    font-size: 16px;
    line-height: normal;
    color: #222121;
  }

  .conference-page--figma .conference-detail__copy {
    width: 100%;
    max-width: none;
    margin: 24px 0 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    grid-template-columns: none;
    font-size: 16px;
    line-height: normal;
    color: #222121;
  }

  .conference-page--figma .conference-detail__copy p {
    max-width: none;
    margin: 0;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__controls,
  .restaurant-page--restaurant #terrace-main .dining-section__controls,
  .spa-page #spa-main .dining-section__controls,
  .dessange-page #dessange-main .dining-section__controls,
  .conference-page--figma .conference-detail__actions {
    width: 100%;
    margin: 48px 0 0;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    align-self: stretch;
    justify-self: auto;
    grid-area: auto;
  }

  .conference-page--figma .conference-detail__actions {
    margin-bottom: 24px;
    transform: none;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__menu-button,
  .restaurant-page--restaurant #terrace-main .dining-section__menu-button,
  .spa-page #spa-main .dining-section__menu-button,
  .dessange-page #dessange-main .dining-section__menu-button,
  .conference-page--figma .conference-detail__price {
    width: 180px;
    min-height: 45px;
    padding: 0 16px;
    border-color: #c6c1a1;
    font-size: 12px;
    line-height: normal;
    letter-spacing: 2.4px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__nav,
  .restaurant-page--restaurant #terrace-main .dining-section__nav,
  .spa-page #spa-main .dining-section__nav,
  .dessange-page #dessange-main .dining-section__nav,
  .conference-page--figma .conference-detail__arrows {
    gap: 16px;
  }

  .restaurant-page--restaurant #restaurant-main .dining-section__nav .button-circle,
  .restaurant-page--restaurant #terrace-main .dining-section__nav .button-circle,
  .spa-page #spa-main .dining-section__nav .button-circle,
  .dessange-page #dessange-main .dining-section__nav .button-circle,
  .conference-page--figma .conference-detail__arrow {
    width: 45px;
    height: 45px;
    min-width: 45px;
    min-height: 45px;
    flex: 0 0 45px;
    box-sizing: border-box;
  }

  .restaurant-page--restaurant #restaurant-main .dining-gallery--restaurant,
  .restaurant-page--restaurant #terrace-main .dining-gallery--terrace,
  .spa-page #spa-main .dining-gallery--spa,
  .dessange-page #dessange-main .dessange-gallery,
  .conference-page--figma .conference-detail__gallery {
    width: 100%;
    max-width: none;
    display: flex;
    grid-template-columns: none;
    gap: 24px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .conference-page--figma .conference-detail__gallery {
    margin: 0;
    transform: none;
  }

  .restaurant-page--restaurant #restaurant-main .dining-gallery--restaurant::-webkit-scrollbar,
  .restaurant-page--restaurant #terrace-main .dining-gallery--terrace::-webkit-scrollbar,
  .spa-page #spa-main .dining-gallery--spa::-webkit-scrollbar,
  .dessange-page #dessange-main .dessange-gallery::-webkit-scrollbar,
  .conference-page--figma .conference-detail__gallery::-webkit-scrollbar {
    display: none;
  }

  .restaurant-page--restaurant #restaurant-main .dining-gallery--restaurant > *,
  .restaurant-page--restaurant #terrace-main .dining-gallery--terrace > *,
  .spa-page #spa-main .dining-gallery--spa > *,
  .dessange-page #dessange-main .dessange-gallery > *,
  .conference-page--figma .conference-detail__gallery > * {
    flex: 0 0 100%;
    width: 100%;
    scroll-snap-align: start;
  }

  .restaurant-page--restaurant #restaurant-main .dining-photo,
  .restaurant-page--restaurant #terrace-main .dining-photo,
  .spa-page #spa-main .dining-gallery--spa .dining-photo,
  .dessange-page #dessange-main .dessange-gallery__photo,
  .conference-page--figma .conference-detail__photo {
    height: 500px;
    min-height: 500px;
    background-size: cover;
    background-position: center;
  }

  .conference-page--figma .conference-detail__photo {
    margin: 0;
  }

  .conference-page--figma .conference-detail__photo img,
  .conference-page--figma .conference-detail__photo--left img,
  .conference-page--figma .conference-detail__photo--right img {
    position: static;
    width: 100%;
    height: 100%;
    max-width: none;
    padding: 0;
    object-fit: cover;
  }
}

@media (min-width: 768px) and (max-width: 1179px) {
  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-page .restaurant-hero {
    min-height: 100svh;
    height: auto;
    padding: 0;
    align-items: stretch;
    overflow: hidden;
    background: #141414;
  }

  .restaurant-page--restaurant .restaurant-hero__media,
  .restaurant-page--restaurant .restaurant-hero__overlay,
  .spa-page .restaurant-hero__media,
  .spa-page .restaurant-hero__overlay,
  .dessange-page .restaurant-hero__media,
  .dessange-page .restaurant-hero__overlay {
    inset: 0;
  }

  .restaurant-page--restaurant .restaurant-hero__overlay--dining,
  .spa-page .restaurant-hero__overlay {
    mix-blend-mode: multiply;
  }

  .dessange-page .dessange-hero__overlay--nobil {
    background: linear-gradient(37.603deg, #000 1.665%, rgba(0, 0, 0, 0) 127.15%);
    mix-blend-mode: multiply;
  }

  .restaurant-page--restaurant .restaurant-shell--hero,
  .spa-page .restaurant-shell--hero,
  .dessange-page .restaurant-shell--hero {
    width: 100%;
    min-height: 100svh;
    margin: 0;
    display: flex;
    justify-content: center;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    width: 100%;
    max-width: none;
    min-height: 100svh;
    margin: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-left: 32px;
    padding-right: 32px;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining {
    padding-top: clamp(300px, 33.4svh, 342px);
    padding-bottom: 42px;
  }

  .spa-page .restaurant-hero__content {
    padding-top: clamp(260px, 30.7svh, 314px);
    padding-bottom: 23px;
  }

  .dessange-page .dessange-hero__content--nobil {
    padding-top: clamp(260px, 30.3svh, 310px);
    padding-bottom: 23px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest,
  .spa-page .restaurant-hero__crest,
  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    flex: 0 0 auto;
    margin: 0 0 48px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest {
    width: 250px;
    height: 152px;
  }

  .spa-page .restaurant-hero__crest {
    width: 221.662px;
    height: 160.498px;
  }

  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    width: 204px;
    height: 167px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest img,
  .spa-page .restaurant-hero__crest img,
  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .dessange-page .dessange-hero__title {
    width: 100%;
    max-width: 388px;
    margin: 0;
    display: block;
    font-family: var(--font-heading);
    font-size: 60px;
    font-weight: 400;
    line-height: 50px;
    letter-spacing: 0;
    text-align: center;
    text-transform: none;
  }

  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-page .dessange-hero__content--nobil .restaurant-lead {
    width: 100%;
    max-width: 388px;
    margin: 16px 0 0;
    color: #fff;
    font-size: 20px;
    font-weight: 400;
    line-height: normal;
    text-align: center;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining,
  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining {
    margin-top: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining {
    width: 100%;
    max-width: 704px;
    gap: 24px;
  }

  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining {
    width: 100%;
    max-width: 340px;
    gap: 16px;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining .button-circle,
  .spa-page .restaurant-hero__actions--dining .button-circle,
  .dessange-page .restaurant-hero__actions--dining .button-circle {
    flex: 0 0 45px;
    width: 45px;
    min-width: 45px;
    height: 45px;
    min-height: 45px;
  }

  .restaurant-page--restaurant .restaurant-button--tab,
  .spa-page .restaurant-button--tab,
  .dessange-page .restaurant-button--tab {
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-color: #fff;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1.8px;
    white-space: nowrap;
  }

  .restaurant-page--restaurant .restaurant-button--tab {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }

  .spa-page .restaurant-button--tab,
  .dessange-page .restaurant-button--tab {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }

}

@media (min-width: 901px) and (max-width: 1179px) and (max-height: 900px) {
  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    padding-top: clamp(150px, 21svh, 180px);
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .conference-page--figma .conference-detail {
    min-height: auto;
    height: auto;
    padding: 96px 0 24px;
  }

  .conference-page--figma .conference-detail__shell {
    width: 100%;
    padding: 16px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
  }

  .conference-page--figma .conference-detail__back {
    width: 45px;
    height: 45px;
    margin: 0 0 24px;
    transform: none;
  }

  .conference-page--figma .conference-detail__title {
    width: 100%;
    margin: 0;
    font-size: 60px;
    line-height: 50px;
  }

  .conference-page--figma .conference-detail__title-extra {
    display: none;
  }

  .conference-page--figma .conference-detail__copy {
    width: 100%;
    margin: 24px 0 0;
    display: flex;
    flex-direction: column;
    gap: 24px;
    font-size: 16px;
    line-height: normal;
    color: #222121;
  }

  .conference-page--figma .conference-detail__copy p {
    margin: 0;
    max-width: none;
  }

  .conference-page--figma .conference-detail__actions {
    width: 100%;
    height: 45px;
    margin: 48px 0 24px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    transform: none;
  }

  .conference-page--figma .conference-detail__price {
    width: 179px;
    min-height: 45px;
    height: 45px;
    padding: 0 32px;
    border-color: #c6c1a1;
    font-size: 12px;
    line-height: normal;
    letter-spacing: 2.4px;
  }

  .conference-page--figma .conference-detail__arrows {
    gap: 16px;
  }

  .conference-page--figma .conference-detail__arrow {
    width: 45px;
    min-width: 45px;
    height: 45px;
    min-height: 45px;
    flex: 0 0 45px;
  }

  .conference-page--figma .conference-detail__gallery {
    width: 100%;
    margin: 0;
    display: flex;
    grid-template-columns: none;
    gap: 16px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  .conference-page--figma .conference-detail__gallery::-webkit-scrollbar {
    display: none;
  }

  .conference-page--figma .conference-detail__gallery > * {
    flex: 0 0 342px;
    width: 342px;
    scroll-snap-align: start;
  }

  .conference-page--figma .conference-detail__photo {
    height: 340px;
    min-height: 340px;
    margin: 0;
  }

  .conference-page--figma .conference-detail__photo--right {
    order: -1;
  }

  .conference-page--figma .conference-detail__photo img,
  .conference-page--figma .conference-detail__photo--left img,
  .conference-page--figma .conference-detail__photo--right img {
    position: static;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
    object-position: center;
  }

  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-page .restaurant-hero {
    min-height: 100svh;
    height: auto;
    padding: 0;
    align-items: stretch;
    overflow: hidden;
    background: #141414;
  }

  .restaurant-page--restaurant .restaurant-hero__media,
  .restaurant-page--restaurant .restaurant-hero__overlay,
  .spa-page .restaurant-hero__media,
  .spa-page .restaurant-hero__overlay,
  .dessange-page .restaurant-hero__media,
  .dessange-page .restaurant-hero__overlay {
    inset: 0;
  }

  .restaurant-page--restaurant .restaurant-hero__overlay--dining,
  .spa-page .restaurant-hero__overlay {
    mix-blend-mode: multiply;
  }

  .dessange-page .dessange-hero__overlay--nobil {
    background: linear-gradient(37.603deg, #000 1.665%, rgba(0, 0, 0, 0) 127.15%);
    mix-blend-mode: multiply;
  }

  .restaurant-page--restaurant .restaurant-shell--hero,
  .spa-page .restaurant-shell--hero,
  .dessange-page .restaurant-shell--hero {
    width: 100%;
    min-height: 100svh;
    margin: 0;
    display: flex;
    justify-content: center;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    width: 100%;
    max-width: none;
    min-height: 100svh;
    margin: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding-left: 16px;
    padding-right: 16px;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    padding-top: calc(var(--header-height, 60px) + 24px);
    padding-bottom: 24px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest,
  .spa-page .restaurant-hero__crest,
  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    flex: 0 0 auto;
    margin: auto 0 40px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest {
    width: 250px;
    height: 152px;
  }

  .spa-page .restaurant-hero__crest {
    width: 221.662px;
    height: 160.498px;
  }

  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    width: 204px;
    height: 167px;
  }

  .restaurant-page--restaurant .restaurant-hero__crest img,
  .spa-page .restaurant-hero__crest img,
  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }

  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .dessange-page .dessange-hero__title {
    width: 100%;
    max-width: 343px;
    margin: 0;
    display: block;
    text-align: center;
    text-transform: none;
  }

  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-page .dessange-hero__content--nobil .restaurant-lead {
    width: 100%;
    max-width: 343px;
    margin: 16px 0 0;
    text-align: center;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining,
  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining {
    margin-top: auto;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining {
    width: 100%;
    max-width: 343px;
    gap: 16px;
  }

  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining {
    width: 100%;
    max-width: 340px;
    gap: 16px;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining .button-circle,
  .spa-page .restaurant-hero__actions--dining .button-circle,
  .dessange-page .restaurant-hero__actions--dining .button-circle {
    flex: 0 0 45px;
    width: 45px;
    min-width: 45px;
    height: 45px;
    min-height: 45px;
  }

  .restaurant-page--restaurant .restaurant-button--tab,
  .spa-page .restaurant-button--tab,
  .dessange-page .restaurant-button--tab {
    min-height: 45px;
    height: 45px;
    padding: 0 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    border-color: #fff;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: normal;
    letter-spacing: 1.8px;
    white-space: nowrap;
  }

  .restaurant-page--restaurant .restaurant-button--tab,
  .spa-page .restaurant-button--tab,
  .dessange-page .restaurant-button--tab {
    flex: 1 1 0;
    width: auto;
    min-width: 0;
  }

}

@media (max-width: 1179px) {
  .home-services__grid {
    align-items: stretch;
  }

  .home-service-card,
  .home-service-card.is-mobile-service-only {
    height: auto;
  }

  .home-service-card__content {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
  }

  .home-service-card p {
    flex: 1 1 auto;
  }

  .home-service-card__button {
    flex: 0 0 auto;
    margin-top: auto;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .booking-flow .booking-flow__head > .booking-widget {
    width: min(523px, 100%);
    min-height: 65px;
    margin: 0 auto;
    padding: 0 16px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    column-gap: 0;
    justify-content: stretch;
    border: 1px solid var(--booking-line);
  }

  .booking-flow .booking-widget__field,
  .booking-flow .booking-widget__search {
    min-width: 0;
    min-height: 63px;
    border: 0;
  }

  .booking-flow .booking-widget__field + .booking-widget__field,
  .booking-flow .booking-widget__search {
    border: 0;
  }

  .booking-flow .booking-widget__search {
    display: none;
  }

  .booking-flow .booking-widget__toggle {
    height: 63px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
  }

  .booking-flow .booking-widget__field--guest .booking-widget__toggle {
    justify-content: center;
  }

  .booking-flow .booking-widget__field--currency .booking-widget__toggle {
    justify-content: flex-end;
  }

  .booking-flow .booking-widget__label,
  .booking-flow .booking-widget__field::after {
    display: none;
  }

  .booking-flow .booking-widget__field--special .booking-widget__label {
    display: block;
    margin: 0;
    font-size: 10px;
    line-height: 12px;
    letter-spacing: 1.8px;
    white-space: nowrap;
  }

  .booking-flow .booking-widget__value {
    font-size: 14px;
    line-height: 14px;
    white-space: nowrap;
  }

  .booking-flow .booking-widget__field--currency .booking-widget__value {
    font-size: 0;
    line-height: 0;
  }

  .booking-flow .booking-widget__field--currency .booking-widget__value::after {
    content: attr(data-mobile-label);
    font-size: 14px;
    line-height: 14px;
  }

  .booking-flow:has(.booking-services) .booking-transfer,
  .booking-flow:has(.booking-services) .booking-transfer.is-open {
    height: auto;
    min-height: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer__head {
    height: 75px;
    min-height: 75px;
  }

  .booking-flow:has(.booking-services) .booking-transfer__plus {
    margin-top: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer__body {
    height: auto;
    min-height: 1000px;
    grid-template-rows: minmax(700px, 1fr) auto 45px;
    align-content: stretch;
  }

  .booking-flow:has(.booking-services) .booking-transfer__workflow {
    max-width: 930px;
    min-height: 700px;
    grid-template-rows: minmax(0, 1fr) minmax(0, 1fr) 524px;
  }

  .booking-flow:has(.booking-services) .booking-transfer__choices {
    width: min(381px, 100%);
  }

  .booking-flow:has(.booking-services) .booking-transfer__choices--transport {
    width: min(382px, 100%);
  }

  .booking-flow:has(.booking-services) .booking-transfer__step--arrival {
    width: min(506px, 100%);
    min-height: 524px;
  }

  .booking-flow:has(.booking-services) .booking-transfer-field--time {
    padding-right: 70px;
  }

  .booking-flow:has(.booking-services) .booking-transfer__guests {
    grid-row: 2;
  }

  .booking-flow:has(.booking-services) .booking-transfer__price,
  .booking-flow:has(.booking-services) .booking-transfer__button {
    grid-row: 3;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__body {
    min-height: 421px;
    grid-template-rows: 220px auto 45px;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__workflow {
    min-height: 220px;
    grid-template-rows: repeat(3, minmax(0, 1fr));
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step {
    min-height: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival {
    width: auto;
    min-height: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step-head {
    margin-bottom: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__choices,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__fields {
    display: none;
  }

  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival::after {
    height: calc(100% - 8px);
  }
}

@media (min-width: 600px) and (max-width: 932px) and (max-height: 480px) and (orientation: landscape) {
  .home-hero {
    height: 100svh;
    min-height: 100svh;
  }

  .home-hero__media {
    background-position: center;
    background-size: cover;
  }

  .home-hero__inner {
    width: 100%;
    max-width: none;
    height: 100svh;
    min-height: 100svh;
    margin: 0;
    padding: var(--header-height) 32px 24px;
    box-sizing: border-box;
    align-items: center;
    justify-content: center;
  }

  .home-hero__content {
    width: min(520px, calc(100vw - 64px));
    max-width: 520px;
    margin: 0 auto;
    padding-left: 0;
    text-align: center;
  }

  .home-hero .home-display-title {
    margin-bottom: 12px;
    font-size: 52px;
    line-height: 48px;
  }

  .home-hero__text {
    max-width: none;
    font-size: 18px;
    line-height: 23px;
    hyphens: none;
  }

  .home-story {
    min-height: 100svh;
    padding: 0;
  }

  .home-story__inner {
    width: min(calc(100vw - 64px), 820px);
    min-height: 100svh;
    margin: 0 auto;
    padding: calc(var(--header-height) + 24px) 0 24px;
    box-sizing: border-box;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 32px;
  }

  .home-story__crest {
    width: 150px;
    height: auto;
    max-width: none;
    flex: 0 0 150px;
    margin: 0;
  }

  .home-story__content {
    width: auto;
    max-width: 520px;
    flex: 1 1 0;
  }

  .home-story__tags {
    width: 100%;
    margin: 0 0 16px;
    flex-wrap: nowrap;
    gap: 8px;
  }

  .home-story__tags span {
    min-height: 38px;
    height: 38px;
    flex: 1 1 0;
    padding: 0 14px;
    font-size: 16px;
    line-height: 1;
  }

  .home-story .home-display-subtitle {
    margin: 0 0 12px;
    font-size: 40px;
    line-height: 36px;
  }

  .home-story__text {
    max-width: none;
    margin: 0;
    font-size: 16px;
    line-height: 21px;
  }
}

@media (min-width: 600px) and (max-width: 932px) and (max-height: 480px) and (orientation: landscape) {
  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-page .restaurant-hero {
    height: 100svh;
    min-height: 100svh;
    padding: 0;
    align-items: stretch;
    overflow: hidden;
  }

  .restaurant-page--restaurant .restaurant-hero__media,
  .spa-page .restaurant-hero__media,
  .dessange-page .restaurant-hero__media {
    background-position: center;
    background-size: cover;
  }

  .restaurant-page--restaurant .restaurant-shell--hero,
  .spa-page .restaurant-shell--hero,
  .dessange-page .restaurant-shell--hero {
    width: 100%;
    min-height: 100svh;
    margin: 0;
    padding: var(--header-height) 32px 20px;
    box-sizing: border-box;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    width: min(760px, calc(100vw - 64px));
    max-width: none;
    min-height: 0;
    margin: 0 auto;
    padding: 0;
    display: grid;
    grid-template-columns: 128px minmax(0, 1fr);
    grid-template-areas:
      "crest title"
      "crest lead"
      "crest actions";
    align-items: center;
    column-gap: 24px;
    row-gap: 0;
    text-align: left;
  }

  .restaurant-page--restaurant .restaurant-hero__crest,
  .spa-page .restaurant-hero__crest,
  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    grid-area: crest;
    width: 128px;
    height: auto;
    margin: 0;
    align-self: center;
  }

  .spa-page .restaurant-hero__crest {
    width: 120px;
  }

  .dessange-page .dessange-hero__content--nobil .restaurant-hero__crest {
    width: 116px;
  }

  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .dessange-page .dessange-hero__title {
    grid-area: title;
    width: auto;
    max-width: none;
    margin: 0 0 10px;
    font-size: 44px;
    line-height: 40px;
    text-align: left;
  }

  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-page .dessange-hero__content--nobil .restaurant-lead {
    grid-area: lead;
    width: auto;
    max-width: 460px;
    margin: 0 0 14px;
    font-size: 15px;
    line-height: 20px;
    text-align: left;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining,
  .spa-page .restaurant-hero__actions--dining,
  .dessange-page .restaurant-hero__actions--dining {
    grid-area: actions;
    width: 100%;
    max-width: 360px;
    margin: 0;
    justify-self: start;
    gap: 12px;
  }

  .restaurant-page--restaurant .restaurant-hero__actions--dining .button-circle,
  .spa-page .restaurant-hero__actions--dining .button-circle,
  .dessange-page .restaurant-hero__actions--dining .button-circle {
    flex: 0 0 40px;
    width: 40px;
    min-width: 40px;
    height: 40px;
    min-height: 40px;
  }

  .restaurant-page--restaurant .restaurant-button--tab,
  .spa-page .restaurant-button--tab,
  .dessange-page .restaurant-button--tab {
    height: 40px;
    min-height: 40px;
    padding: 0 18px;
    font-size: 11px;
    letter-spacing: 1.6px;
  }
}

@media (min-width: 600px) and (max-width: 932px) and (max-height: 480px) and (orientation: landscape) {
  .header-booking-modal .header-booking-modal__panel:not([hidden]) {
    display: flex;
    flex-direction: column;
    overflow: hidden;
  }

  .header-booking-modal__panel-close {
    position: fixed;
  }

  .header-booking-modal__panel-content {
    height: auto;
    min-height: 0;
    flex: 1 1 auto;
    padding-bottom: 24px;
    overflow-y: auto;
    scrollbar-width: thin;
  }

  .header-booking-modal__panel-actions,
  .header-booking-modal .booking-guest-dropdown__actions {
    position: static;
    flex: 0 0 auto;
  }

  .header-booking-modal .booking-dropdown--calendar .booking-calendar {
    height: auto;
    max-height: none;
  }

  .header-booking-modal .booking-dropdown--calendar [data-booking-month] {
    height: auto;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .header-booking-modal .booking-widget__field--special {
    display: none;
  }
}

@media (max-width: 1179px) {
  .booking-flow .booking-transfer,
  .booking-flow .booking-transfer.is-open {
    height: auto;
    min-height: 0;
  }

  .booking-flow .booking-transfer__head {
    height: auto;
    min-height: 85px;
    padding: 23px 50px;
    align-items: center;
  }

  .booking-flow .booking-transfer__plus {
    margin-top: 0;
  }

  .booking-flow .booking-transfer__body {
    position: static;
    height: auto;
    min-height: 0;
    padding: 51px 28px 28px 50px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 155px;
    grid-template-rows: none;
    column-gap: 24px;
    row-gap: 28px;
    align-content: start;
  }

  .booking-flow .booking-transfer__body[hidden] {
    display: none;
  }

  .booking-flow .booking-transfer__workflow {
    grid-column: 1 / -1;
    max-width: 972px;
    min-height: 0;
    display: grid;
    grid-template-rows: none;
    gap: 14px;
  }

  .booking-flow .booking-transfer__step,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step {
    min-height: 170px;
    padding-left: 62px;
  }

  .booking-flow .booking-transfer__step--arrival,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival {
    width: auto;
    min-height: 443px;
    margin-top: 0;
  }

  .booking-flow .booking-transfer__step:not(:last-child)::after {
    display: block;
    left: 14px;
    top: 43px;
    height: 127px;
  }

  .booking-flow .booking-transfer__step--arrival::after,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival::after {
    display: block;
    left: 14px;
    top: 43px;
    height: calc(100% - 8px);
  }

  .booking-flow .booking-transfer__step-head,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step-head {
    min-height: auto;
    margin: 0 0 35px -62px;
    gap: 20px;
    align-items: flex-start;
  }

  .booking-flow .booking-transfer__step-head h3 {
    font-size: 28px;
    line-height: 33px;
  }

  .booking-flow .booking-transfer__step-number {
    width: 30px;
    height: 30px;
    font-size: 20px;
  }

  .booking-flow .booking-transfer__choices,
  .booking-flow .booking-transfer__choices--transport,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__choices {
    display: flex;
    flex-wrap: wrap;
    width: auto;
    max-width: 477px;
    gap: 22px 32px;
  }

  .booking-flow .booking-transfer__choice {
    gap: 20px;
    font-size: 18px;
    line-height: 1.44;
    white-space: normal;
  }

  .booking-flow .booking-transfer__choice-box {
    width: 21px;
    height: 21px;
    flex-basis: 21px;
  }

  .booking-flow .booking-transfer__choice-box::after {
    left: 4px;
    top: 1px;
    width: 10px;
    height: 15px;
  }

  .booking-flow .booking-transfer__fields,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px 20px;
  }

  .booking-flow .booking-transfer-field {
    gap: 8px;
    font-size: 16px;
    line-height: 1.45;
  }

  .booking-flow .booking-transfer-field input,
  .booking-flow .booking-transfer-field select {
    height: 51px;
    padding: 0 14px;
  }

  .booking-flow .booking-transfer-field textarea {
    height: 126px;
    padding: 12px 14px;
  }

  .booking-flow .booking-transfer-field__split {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
  }

  .booking-flow .booking-transfer-field--comments {
    grid-column: 1 / -1;
  }

  .booking-flow .booking-transfer-field--flight {
    width: auto;
    grid-template-columns: 1fr auto;
    align-items: end;
    padding-right: 0;
  }

  .booking-flow .booking-transfer-field--flight span {
    grid-column: 1;
  }

  .booking-flow .booking-transfer-field--flight em {
    position: static;
    grid-column: 2;
    font-size: 12px;
    line-height: 1.18;
  }

  .booking-flow .booking-transfer-field--flight input {
    grid-column: 1 / -1;
  }

  .booking-flow .booking-transfer__guests {
    position: static;
    grid-column: 1;
    grid-row: auto;
    align-self: end;
    padding: 0;
    border: 0;
    display: flex;
    align-items: center;
    gap: 20px;
    font-size: 16px;
    line-height: normal;
  }

  .booking-flow .booking-transfer__guests::before {
    width: 30px;
    height: 30px;
    flex-basis: 30px;
    background-size: 17px 17px;
  }

  .booking-flow .booking-transfer__price,
  .booking-flow .booking-transfer__button {
    position: static;
    grid-column: 2;
    grid-row: auto;
    justify-self: end;
  }

  .booking-flow .booking-transfer__price {
    align-self: end;
  }

  .booking-flow .booking-transfer__button {
    align-self: start;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .booking-flow .booking-transfer__head {
    min-height: 75px;
    padding: 0 16px;
  }

  .booking-flow .booking-transfer h2 {
    font-size: 28px;
    line-height: 28px;
  }

  .booking-flow .booking-transfer__plus {
    width: 40px;
    height: 40px;
  }

  .booking-flow .booking-transfer__plus::before,
  .booking-flow .booking-transfer__plus::after {
    width: 20px;
  }

  .booking-flow .booking-transfer__body {
    padding: 16px 16px 24px;
    grid-template-columns: minmax(0, 1fr) 155px;
    column-gap: 16px;
    row-gap: 24px;
  }

  .booking-flow .booking-transfer__workflow {
    gap: 8px;
  }

  .booking-flow .booking-transfer__step,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step {
    min-height: 0;
    padding-left: 33px;
  }

  .booking-flow .booking-transfer__step--arrival,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival {
    min-height: 0;
  }

  .booking-flow .booking-transfer__step:not(:last-child)::after {
    left: 12px;
    top: 33px;
    height: calc(100% - 25px);
  }

  .booking-flow .booking-transfer__step--arrival::after,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival::after {
    left: 12px;
    top: 33px;
    height: calc(100% - 8px);
  }

  .booking-flow .booking-transfer__step-head,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step-head {
    min-height: 25px;
    margin: 0 0 16px -33px;
    gap: 8px;
    align-items: center;
  }

  .booking-flow .booking-transfer__step-head h3 {
    font-size: 22px;
    line-height: 22px;
  }

  .booking-flow .booking-transfer__step-number {
    width: 25px;
    height: 25px;
    font-size: 14px;
  }

  .booking-flow .booking-transfer__choices,
  .booking-flow .booking-transfer__choices--transport {
    max-width: none;
    gap: 12px 24px;
  }

  .booking-flow .booking-transfer__choice {
    gap: 8px;
    font-size: 14px;
    line-height: normal;
  }

  .booking-flow .booking-transfer__choice-box {
    width: 18px;
    height: 18px;
    flex-basis: 18px;
  }

  .booking-flow .booking-transfer__choice-box::after {
    left: 4px;
    top: 0;
    width: 8px;
    height: 13px;
  }

  .booking-flow .booking-transfer__fields,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__fields {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .booking-flow .booking-transfer-field {
    gap: 6px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-flow .booking-transfer-field input,
  .booking-flow .booking-transfer-field select {
    height: 45px;
    padding: 0 12px;
  }

  .booking-flow .booking-transfer-field textarea {
    height: 90px;
    padding: 12px;
  }

  .booking-flow .booking-transfer-field__split {
    gap: 16px;
  }

  .booking-flow .booking-transfer-field--comments {
    grid-column: auto;
  }

  .booking-flow .booking-transfer-field--flight em {
    font-size: 12px;
    line-height: 12px;
  }

  .booking-flow .booking-transfer__guests {
    grid-column: 1 / -1;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--booking-line);
    gap: 8px;
    font-size: 14px;
    line-height: 14px;
  }

  .booking-flow .booking-transfer__guests::before {
    width: 25px;
    height: 25px;
    flex-basis: 25px;
    background-size: 16px 12px;
  }

  .booking-flow .booking-transfer__price {
    grid-column: 1;
    align-self: center;
    justify-self: start;
  }

  .booking-flow .booking-transfer__button {
    grid-column: 2;
    align-self: center;
  }
}

@media (max-width: 1179px) {
  .booking-flow:has(.booking-services) .booking-transfer__body {
    height: auto;
    min-height: 0;
    grid-template-columns: minmax(0, 1fr) 155px;
    grid-template-rows: none;
    align-content: start;
  }

  .booking-flow:has(.booking-services) .booking-transfer__workflow {
    max-width: 972px;
    min-height: 0;
    grid-template-rows: none;
  }

  .booking-flow:has(.booking-services) .booking-transfer__choices,
  .booking-flow:has(.booking-services) .booking-transfer__choices--transport {
    width: auto;
    max-width: 477px;
  }

  .booking-flow:has(.booking-services) .booking-transfer__step--arrival {
    width: auto;
    min-height: 443px;
  }

  .booking-flow:has(.booking-services) .booking-transfer-field--time {
    padding-right: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer__guests,
  .booking-flow:has(.booking-services) .booking-transfer__price,
  .booking-flow:has(.booking-services) .booking-transfer__button {
    grid-row: auto;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .booking-flow:has(.booking-services) .booking-transfer__body {
    grid-template-columns: minmax(0, 1fr) 155px;
  }

  .booking-flow:has(.booking-services) .booking-transfer__workflow {
    max-width: none;
  }

  .booking-flow:has(.booking-services) .booking-transfer__choices,
  .booking-flow:has(.booking-services) .booking-transfer__choices--transport {
    max-width: none;
  }

  .booking-flow:has(.booking-services) .booking-transfer__step--arrival {
    min-height: 0;
  }

  .booking-flow:has(.booking-services) .booking-transfer__price {
    grid-column: 1;
  }

  .booking-flow:has(.booking-services) .booking-transfer__button {
    grid-column: 2;
  }
}

@media (max-width: 1179px) {
  .booking-flow .booking-transfer,
  .booking-flow .booking-transfer.is-open {
    height: auto;
    min-height: 0;
  }

  .booking-flow .booking-transfer__body,
  .booking-flow:has(.booking-services) .booking-transfer__body {
    height: auto;
    min-height: 0;
    padding: 51px 50px 24px;
    display: block;
  }

  .booking-flow .booking-transfer__step:not(:last-child)::after {
    top: 38px;
    height: calc(100% - 38px);
  }

  .booking-flow .booking-transfer__step--arrival::after,
  .booking-flow:has(.booking-services) .booking-transfer:not(.is-open) .booking-transfer__step--arrival::after {
    top: 38px;
    height: calc(100% - 8px);
  }

  .booking-flow .booking-transfer__summary {
    padding: 0 50px 28px;
  }

  .booking-flow .booking-transfer:not(.is-open) .booking-transfer__summary {
    display: none;
  }

  .booking-flow .booking-transfer__guests,
  .booking-flow:has(.booking-services) .booking-transfer__guests {
    padding: 0;
    border: 0;
  }

  .booking-flow .booking-transfer__footer {
    padding: 24px 28px 28px 50px;
    border-top: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 155px;
    column-gap: 24px;
    row-gap: 18px;
  }

  .booking-flow .booking-transfer__footer::before {
    grid-column: 1 / -1;
    margin-left: 0;
  }

  .booking-flow .booking-transfer__price,
  .booking-flow:has(.booking-services) .booking-transfer__price {
    grid-column: 2;
    grid-row: 2;
    align-self: start;
    justify-self: end;
  }

  .booking-flow .booking-transfer__button,
  .booking-flow:has(.booking-services) .booking-transfer__button {
    grid-column: 2;
    grid-row: 3;
    align-self: start;
    justify-self: end;
  }
}

@media (min-width: 375px) and (max-width: 767px) {
  .booking-flow .booking-transfer__body,
  .booking-flow:has(.booking-services) .booking-transfer__body {
    padding: 16px 16px 24px;
  }

  .booking-flow .booking-transfer__summary {
    padding: 0 16px 24px;
  }

  .booking-flow .booking-transfer:not(.is-open) .booking-transfer__summary {
    display: none;
  }

  .booking-flow .booking-transfer__footer {
    padding: 24px 16px;
    grid-template-columns: minmax(0, 1fr) 155px;
    column-gap: 16px;
  }

  .booking-flow .booking-transfer__footer::before {
    margin-left: 0;
  }

  .booking-flow .booking-transfer__price,
  .booking-flow:has(.booking-services) .booking-transfer__price {
    grid-column: 1;
    grid-row: 2;
    align-self: center;
    justify-self: start;
  }

  .booking-flow .booking-transfer__button,
  .booking-flow:has(.booking-services) .booking-transfer__button {
    grid-column: 2;
    grid-row: 2;
    align-self: center;
  }
}

@media (min-width: 1025px) {
  .home-hero__inner {
    width: min(1530px, calc(100vw - 48px));
    max-width: none;
    margin: 0 auto;
    padding-top: calc(var(--header-height) + 278px);
  }

  .hero-booking-bar {
    --hero-booking-banner-width: clamp(300px, 39.22vw, 600px);
    --hero-booking-search-width: clamp(180px, 15.03vw, 291px);
    --hero-booking-right-start: clamp(14px, 1.31vw, 20px);
    --hero-booking-right-end: clamp(14px, 1.18vw, 18px);
    position: relative;
    display: grid;
    grid-template-columns: var(--hero-booking-banner-width) minmax(0, 1fr) minmax(0, 1fr) var(--hero-booking-search-width);
    width: min(1530px, 100%);
    height: 126px;
    min-height: 126px;
    margin: auto 0 0;
    padding: 0 var(--hero-booking-right-end) 0 0;
    background: transparent;
  }

  .hero-booking-bar::before {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: var(--hero-booking-banner-width);
    z-index: 0;
    background: #fffced;
  }

  .hero-booking-bar > .hero-booking-bar__field--special:not([data-booking-dropdown]) {
    position: relative;
    z-index: 1;
    align-self: stretch;
    height: 126px;
    min-height: 126px;
    padding: 25px 40px 20px;
    border: 0;
    display: flex;
    justify-content: flex-start;
    overflow: hidden;
    background:
      linear-gradient(47.65deg, rgba(0, 0, 0, 0.74) 12.01%, rgba(0, 0, 0, 0) 91.61%),
      var(--hero-booking-banner-image, url("../images/figma/home-wine-gift-figma.webp")) center / cover no-repeat;
    color: #fff;
  }

  .hero-booking-bar__field,
  .hero-booking-bar__search {
    z-index: 1;
    align-self: center;
    height: 86px;
    min-height: 86px;
  }

  .hero-booking-bar__field {
    padding: 13px 24px;
  }

  .hero-booking-bar__search {
    padding: 16px 18px;
  }

  .hero-booking-bar > .hero-booking-bar__field--special:not([data-booking-dropdown]) .hero-booking-bar__label {
    margin: 0;
    color: #fff;
    font-family: var(--font-heading);
    font-size: 40px;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-transform: none;
  }

  .hero-booking-bar > .hero-booking-bar__field--special:not([data-booking-dropdown]) .hero-booking-bar__value {
    margin-top: -4px;
    color: #fff;
    font-family: var(--font-body);
    font-size: 40px;
    font-weight: 500;
    line-height: 1;
  }

  .hero-booking-bar > .hero-booking-bar__field--date {
    margin-left: var(--hero-booking-right-start);
    border-left: 1px solid #c6c1a1;
  }

  .hero-booking-bar .hero-booking-bar__dropdown {
    top: auto;
    bottom: calc(100% + 1px);
    border-top: 1px solid var(--booking-line);
    border-bottom: 0;
  }
}

@media (min-width: 1180px) and (max-width: 1440px) {
  .home-hero__inner {
    width: var(--site-content-width);
    padding-top: clamp(307px, 23.96vw, 345px);
    padding-bottom: clamp(48px, 3.89vw, 56px);
  }

  .home-hero__content {
    max-width: 415px;
    margin: 0 0 auto;
  }

  .home-hero .home-display-title {
    width: 415px;
    max-width: 100%;
    margin: 0 0 16px;
    font-size: clamp(62px, 4.861vw, 70px);
    line-height: 1;
  }

  .home-hero__text {
    max-width: 409px;
    font-size: clamp(21px, 1.667vw, 24px);
    line-height: normal;
  }

  .hero-booking-bar {
    --hero-booking-banner-width: clamp(463px, 39.22vw, 565px);
    --hero-booking-search-width: clamp(192px, 15.03vw, 216px);
    --hero-booking-right-start: clamp(15px, 1.31vw, 19px);
    --hero-booking-right-end: clamp(14px, 1.18vw, 17px);
    width: 100%;
    height: 113px;
    min-height: 113px;
  }

  .hero-booking-bar > .hero-booking-bar__field--special:not([data-booking-dropdown]) {
    height: 113px;
    min-height: 113px;
    padding: 24px 36px 18px;
  }

  .hero-booking-bar__field,
  .hero-booking-bar__search {
    height: 79px;
    min-height: 79px;
  }

  .hero-booking-bar__field {
    padding: 13px 22px 13px 20px;
  }

  .hero-booking-bar__search {
    padding: 16px;
  }

  .hero-booking-bar__label {
    font-size: 14px;
    letter-spacing: 0.2em;
  }

  .hero-booking-bar__value {
    font-size: 18px;
  }

  .home-rooms__inner {
    width: var(--site-content-width);
    margin: 0 auto;
    padding: 151px 0 80px;
    padding-top: clamp(132px, 11.806vw, 170px);
    grid-template-columns: minmax(300px, 430px) minmax(0, 1fr);
    gap: 0 clamp(44px, 4.375vw, 63px);
  }

  .home-rooms__aside-inner {
    max-width: 430px;
  }

  .home-rooms__gallery {
    width: 100%;
    max-width: none;
  }

  .home-conference__content {
    left: calc((100vw - var(--site-content-width)) / 2);
  }

  .restaurant-page--restaurant .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 120px), 44.72svh, 483px);
    --service-hero-copy-width: 532px;
  }

  .spa-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 56px), 34.44svh, 372px);
    --service-hero-copy-width: 532px;
  }

  .dessange-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 88px), 40svh, 432px);
    --service-hero-copy-width: 532px;
  }

  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-page .restaurant-hero {
    align-items: flex-start;
    padding: var(--service-hero-copy-top) 0 80px;
  }

  .restaurant-page--restaurant .restaurant-shell--hero,
  .spa-page .restaurant-shell--hero,
  .dessange-page .restaurant-shell--hero,
  .conference-page--figma .conference-detail__shell {
    width: var(--site-content-width);
    margin-left: auto;
    margin-right: auto;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    width: min(var(--service-hero-copy-width), 100%);
    max-width: var(--service-hero-copy-width);
    margin-left: max(0px, calc(8.333vw + 35px - ((100vw - var(--site-content-width)) / 2)));
    padding-left: 0;
    box-sizing: border-box;
  }

  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .dessange-page .dessange-hero__title,
  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-page .dessange-hero__content--nobil .restaurant-lead {
    max-width: 100%;
  }
}

@media (min-width: 1180px) and (max-width: 1366px) {
  .home-rooms__inner {
    padding-top: 170px;
  }

  .home-rooms__aside-inner {
    top: clamp(240px, 21.875vw, 299px);
  }

  .restaurant-page--restaurant .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 120px), 38svh, 483px);
  }

  .spa-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 56px), 23svh, 372px);
  }

  .dessange-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 88px), 23svh, 432px);
  }
}

@media (min-width: 1441px) {
  .home-hero__inner,
  .home-rooms__inner,
  .restaurant-page--restaurant .restaurant-shell--hero,
  .spa-page .restaurant-shell--hero,
  .dessange-page .restaurant-shell--hero,
  .conference-page--figma .conference-detail__shell {
    width: var(--site-content-width);
    margin-left: auto;
    margin-right: auto;
  }

  .home-rooms__inner {
    padding-left: 0;
    padding-right: 0;
    grid-template-columns: minmax(360px, 597px) minmax(0, 1fr);
  }

  .home-rooms__gallery {
    width: 100%;
    max-width: none;
  }

  .hero-booking-bar {
    width: 100%;
  }

  .home-conference__content {
    left: calc((100vw - var(--site-content-width)) / 2);
  }

  .restaurant-page--restaurant .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 120px), 44.72svh, 483px);
    --service-hero-copy-width: 600px;
  }

  .spa-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 56px), 34.44svh, 372px);
    --service-hero-copy-width: 600px;
  }

  .dessange-page .restaurant-hero {
    --service-hero-copy-top: clamp(calc(var(--header-height) + 88px), 40svh, 432px);
    --service-hero-copy-width: 600px;
  }

  .restaurant-page--restaurant .restaurant-hero,
  .spa-page .restaurant-hero,
  .dessange-page .restaurant-hero {
    align-items: flex-start;
    padding: var(--service-hero-copy-top) 0 80px;
  }

  .restaurant-page--restaurant .restaurant-hero__content--dining,
  .spa-page .restaurant-hero__content,
  .dessange-page .dessange-hero__content--nobil {
    width: min(var(--service-hero-copy-width), 100%);
    max-width: var(--service-hero-copy-width);
    margin-left: max(0px, calc(8.333vw + 35px - ((100vw - var(--site-content-width)) / 2)));
    padding-left: 0;
    box-sizing: border-box;
  }

  .restaurant-page--restaurant .restaurant-title,
  .spa-page .restaurant-title,
  .dessange-page .dessange-hero__title,
  .restaurant-page--restaurant .restaurant-lead,
  .spa-page .restaurant-lead,
  .dessange-page .dessange-hero__content--nobil .restaurant-lead {
    max-width: 100%;
  }
}
