@import url("https://fonts.googleapis.com/css2?family=Noto+Sans:ital,wght@0,100..900;1,100..900&family=Noto+Serif+Display:ital,wght@0,100..900;1,100..900&display=swap");

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

html, body {
  max-width: 100vw !important;
  overflow-x: hidden;
}

:root {
  --main-font: "Noto Sans";
  --secondary-font: "Noto Serif Display";
  --container-width: 1210px;

  --main-border: 1px solid var(--main-border-color);
  --main-border-color: #0000004d;
  --white: #fff;

  /* COLORS */
  --primary-color: #5e554f;
  --primary-link-color: var(--primary-color);
  --text-color: #20272e;
}

.container {
  max-width: var(--container-width);
  padding: 0 17px;
  margin: auto;
}

body {
  font-family: var(--main-font);
  background: var(--main-bg);
  padding-top: 100px;
}

button {
  font-family: var(--main-font) !important;
}

p, p span {
  font-size: 18px;
  font-family: var(--main-font);
  line-height: 32px;
  color: #00000099;
}

p span {
  font-size: 18px !important;
  font-family: var(--main-font) !important;
}

.uppercase {
  text-transform: uppercase;
}

.btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 10px;

  &.btn-bordered {
    color: var(--primary-link-color);
    text-transform: uppercase;
    font-weight: 600;
    font-size: 18px;
    text-decoration: none;
    height: 50px;
    border: 1px solid #7f746e;
    transition: background 0.3s, color 0.3s, border-color 0.3s;

    &:hover {
      background: var(--primary-color);
      border-color: var(--primary-color);
      color: var(--white);
    }
  }
}

.navbar {
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 999;
  background: #fff;
  transition: .3s;

  &.with_admin {
    top: 32px;
  }

  .navbar_content {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 13px;
    padding: 5px 20px;
    height: max-content;
    /*border-bottom: var(--main-border);*/
  }

  .line {
    width: calc(100% + 100vw - 100%);
    min-width: 100%;
    max-width: 1600px;
    height: 1px;
    background: var(--main-border-color);
    position: absolute;
    left: 50%;
    bottom: 0;
    transform: translateX(-50%);
  }

  &.with_admin.hide {
    transform: translateY(calc(-100% - 32px));
  }

  &.hide {
    top: -100%;
  }

  .navbar_left {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 35px;

    .navbar_left_item_wrap {
      display: flex;
      gap: 10px;
      flex-direction: column;
    }

    .navbar_left_item {
      display: inline-flex;
      gap: 12px;
      align-items: center;
      text-decoration: none;
      transition: opacity .3s;

      p {
        font-size: 14px;
        color: #000000CC;
      }

      img {
        width: 26px;
      }
    }

    a.navbar_left_item:hover {
      cursor: pointer;
      opacity: .7;
    }
  }

  .navbar_logo {
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    max-width: 135px;
  }

  .navbar_right {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 30px;

    .navbar_links {
      display: flex;
      align-items: center;
      gap: 3px;
    }

    .navbar_link {
      text-align: center;
      width: 85px;
      font-weight: 600;
      color: var(--primary-link-color);
      font-size: 14px;
      text-decoration: none;
      text-transform: uppercase;
      transition: opacity 0.3s;

      &:hover {
        opacity: 0.7;
      }
    }

    .navbar_btn {
      color: var(--primary-link-color);
      text-transform: uppercase;
      font-weight: 600;
      font-size: 14px;
      text-decoration: none;
      height: 40px;
      border: var(--main-border);
      transition: background 0.3s, color 0.3s, border-color 0.3s;

      &:hover {
        background: var(--primary-link-color);
        border-color: var(--primary-link-color);
        color: var(--white);
      }
    }
  }
}

.hamburger {
  width: 30px;
  height: 30px;
  display: none;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  gap: 6px;
  background: none;
  border: none;
}

.hamburger .hamburger-line {
  width: 22px;
  height: 1px;
  background: #7F746E;
  border-radius: 10px;
  transition: .3s;
}

.hamburger.active .hamburger-line:first-child {
  transform: rotate(-45deg) translate(-5px, 5px);
}

.hamburger.active .hamburger-line:nth-child(2) {
  transform: rotate(45deg);
  visibility: hidden;
  opacity: 0;
}

.hamburger.active .hamburger-line:last-child {
  transform: rotate(45deg) translate(-5px, -5px);
}

.main {
  margin-top: 45px;
}

.main_title {
  text-transform: uppercase;
  font-family: var(--secondary-font);
}

h1.main_title,
h2.main_title {
  font-size: 32px;
  font-weight: 500;
  color: var(--primary-link-color);
}

.main_header {
  display: flex;
  gap: 60px;

  .main_header_left,
  .main_header_right {
    display: flex;
    flex-direction: column;
    gap: 40px;
  }

  .main_header_left {
    max-width: 431px;
    width: max-content;
    /*max-width: max-content;*/

    .main_title {
      margin-top: 45px;
    }
  }
  .main_header_right {
    width: 100%;
  }

  img {
    width: 100%;
  }

  .main_header_info {
    display: flex;
    flex-direction: column;
    gap: 23px;

    text-align: right;
  }
}

.rooms {
  background: #eae3de99;
  margin-top: 49px;
  padding: 42px 0 36px 0;

  .main_title {
    text-align: center;
  }

  .rooms_tabs {
    margin-top: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 30px;
    width: 100%;

    .rooms_tabs_btn {
      font-weight: 600;
      width: 195px;
      text-align: center;
      text-transform: uppercase;
      align-items: center;
      justify-content: center;
      height: 45px;
      border: none;
      background: none;
      font-size: 18px;
      color: var(--primary-color);
      cursor: pointer;
      transition: all 0.2s linear;

      &.active {
        color: var(--white);
        background: #7f746e;
        box-shadow: unset;

        &:hover {
          box-shadow: unset;
        }
      }

      &:hover {
        box-shadow: 0px 0px 0px 1px #7f746e;
      }

      &.bordered {
        border: 1px solid #7f746e;

        &.active,
        &:hover {
          color: var(--white);
          background: #7f746e;
          opacity: 1;
        }
      }
    }
  }

  .room_info {
    margin-top: 31px;
    display: none;

    &.active {
      display: block;
    }

    .rooms_info_main,
    .rooms_info_additional {
      width: 100%;
      display: flex;
      align-items: center;
      gap: 60px;
    }

    .rooms_info_main_content {
      width: 35%;
      position: relative;
    }

    .rooms_info_main_content .desc {
      max-height: 440px;
      overflow: hidden;
      overflow-y: auto;
    }

    .rooms_info_additional {
      margin-top: 35px;
      align-items: center;
      justify-content: space-between;

      .btn {
        width: 240px;
        height: 45px;
        text-align: center;
        justify-content: center;
        font-size: 18px;
      }
    }

    .rooms_info_main_content .scroll-btn,
    .rooms_info_main_content .scroll-btn {
      position: absolute;
      left: 50%;
      transform: translateX(-50%);
      background: none;
      border: none;
      cursor: pointer;
      transition: .2s opacity;
      opacity: 0;

      &.active {
        opacity: 1;
      }
    }

    .rooms_info_main_content .scroll-up {
      top: -40px;
    }

    .rooms_info_main_content .scroll-down {
      bottom: -50px;
    }

    .rooms_info_main_content .desc::-webkit-scrollbar { width: 0; }

    .rooms_info_main_content .desc { -ms-overflow-style: none; }

    .rooms_info_main_content .desc { overflow: -moz-scrollbars-none; }

    .rooms_info_additional_left {
      width: 25%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 20px;

      p {
        width: max-content;
        font-size: 16px;
        line-height: 27px;
      }
    }

    .rooms_info_additional_right {
      display: flex;
      flex-direction: column;
      width: 65%;
      text-align: center;
      justify-content: center;
      align-items: center;
    }
  }

  .rooms_info_photogallery {
    margin-top: 70px;

    .swiper {
      overflow: unset;
    }

    .swiper-wrapper {
      height: 345px;
      display: flex;
      align-items: center;
    }

    .swiper-slide {
      width: auto;
      height: 253px;
      opacity: 0.5;
      transition: .3s;
    }
    .swiper-slide-active {
      opacity: 1;
      height: 345px;
    }

    .swiper-slide img {
      height: 100%;
      display: block;
    }
  }
}

.additional_list {
  width: 100%;
  margin-top: 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  align-items: flex-start;
  gap: 20px;
  column-gap: 20px;
  max-width: 600px;

  .additional_list_item {
    width: max-content;
    display: flex;
    align-items: center;
    gap: 13px;

    p {
      text-align: left;
      font-size: 14px;
      line-height: 20px;
      color: #00000099;
    }

    img {
      max-width: 24px;
    }
  }
}

.rooms_slider_wrap {
  width: 65%;
  position: relative;
  height: 515px;

  .rooms_slider,
  .rooms_slider_content {
    height: 100%;

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

  .swiper-controls {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    max-width: 1420px;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    z-index: 2;
    pointer-events: none;

    button {
      pointer-events: all;
      width: 80px;
      height: 80px;
      display: flex;
      justify-content: center;
      align-items: center;
      border-radius: 50%;
      border: none;
      background: var(--white);
      transition: var(--main-transition);

      &:hover {
        cursor: pointer;
        opacity: 0.7;
      }
    }

    .swiper-prev {
      transform: translateX(-50%);
    }

    .swiper-next {
      transform: translateX(50%);
    }

    .swiper-button-disabled {
      opacity: 0;

      &:hover {
        opacity: 0;
      }
    }
  }
}

.rooms_advantages {
  margin: 65px auto 55px auto;
  display: flex;
  flex-direction: column;
  gap: 65px;

  .main_title {
    text-align: center;
  }

  .rooms_advantages_list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 55px;
  }

  .advantages_item {
    display: flex;
    flex-direction: column;
    gap: 25px;

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

      img {
        width: 46px;
      }

      h4 {
        font-size: 20px;
        font-weight: 600;
        color: #000000cc;
        line-height: 27px;
      }
    }

    .advantages_item_info,
    .advantages_item_info p {
      font-size: 14px;
      color: #00000099;
      line-height: 28px;

      strong,
      b {
        font-weight: 700;
      }
    }
  }
}

.contacts {
  background: #EAE3DE99;
  padding: 75px 0;

  .contacts_content {
    display: flex;
    align-items: center;
    background: var(--white);
    padding: 0;
    height: 490px;
  }

  .contacts_left, .contacts_map {
    width: 50%;
    height: 100%;

    iframe {
      height: 100%;
    }
  }

  .contacts_left {
    padding: 50px 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .contacts_left_info {
    display: flex;
    width: max-content;
    flex-direction: column;
    justify-content: center;
    height: 100%;
  }

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

  .contacts_item {
    display: inline-flex;
    align-items: center;
    gap: 20px;

    img {
      width: 26px;
    }

    p, a {
      font-weight: 400;
      font-size: 18px;
      line-height: 30px;
      color: #000000CC;
      text-decoration: none;
    }

    a {
      cursor: pointer;
      transition: opacity .3s;
    }

    a:hover {
      opacity: .7;
    }
  }

  .btn {
    margin-top: 60px;
    font-weight: 400;
    width: 240px;
    height: 45px;
    font-size: 18px;
    align-items: center;
    justify-content: center;
  }

}

.footer {
  .footer_content {
    display: flex;
    justify-content: space-between;

    .footer_content_left {
      margin-top: 5px;
      img {
        max-width: 270px;
      }
      p {
        line-height: normal;
        font-weight: 300;
        font-size: 12px;
        color: #20272E;
      }
      span {
        font-weight: 300;
        font-size: 10px;
        color: #20272E99;
      }
    }

    .footer_content_right {
      padding: 15px 0;
      display: flex;
      gap: 80px;
      .footer_content_col {
        display: flex;
        flex-direction: column;
        gap: 10px;

        h4 {
          font-weight: 500;
          font-size: 12px;
          line-height: 30px;
          color: #20272E;
        }
      }

      .footer_content_col_items_wrap {
        display: flex;
        gap: 60px;
      }

      .footer_content_col_items {
        display: flex;
        flex-direction: column;
        gap: 10px;
      }

      .footer_content_col_item {
        max-width: 162px;
        display: flex;
        flex-direction: column;
        gap: 0;

        span {
          font-size: 10px;
          color: #20272E99;
          font-weight: 300;
        }

        p,a {
          text-decoration: none;
          color: #20272E;
          font-size: 11px;
          font-weight: 300;
          line-height: 15px;
        }
        a {
          transition: .3s;
        }
        a:hover {
          opacity: .7
        }
      }
    }
  }
}



@media screen and (max-width: 1700px) {
  .navbar .line {
    max-width: 85vw;
  }
}

@media screen and (max-width: 1500px) {
  .navbar {
    .navbar_logo {
      position: unset;
      transform: unset;
    }
  }
}

@media screen and (max-width: 1366px) {
  .navbar {
    height: max-content;
    .navbar_left {
      display: flex;
      align-items: flex-start;
      flex-direction: column;
      gap: 15px;
    }
  }
}

@media screen and (max-width: 992px) {
  .navbar {

    .header_logo {
      order: 1;
    }

    .navbar_content {
      z-index: unset;
      background: #fff;
    }

    .navbar_left {
      width: max-content;
      order: 2;
      flex-direction: row;
      gap: 24px;

      .navbar_left_item_wrap {
        flex-direction: row;
      }

      .navbar_left_item.metro {
        display: none;
      }

      .navbar_left_item p {
        display: none;
      }
    }

    .navbar_right {
      width: 100%;
      top: 100%;
      left: 0;
      padding-top: 20px;
      background: #fff;
      position: absolute;
      display: flex;
      flex-direction: column;
      z-index: -1;
      padding: 20px 0;
      transition: .3s;
      visibility: hidden;
      transform: translateY(-100%);
      opacity: 0;

      &.active {
        transform: translateY(0);
        visibility: visible;
        opacity: 1;
      }
    }
  }

  .hamburger {
    display: flex;
  }

  .main_header {
    padding: 0 !important;
    .main_header_left {
      display: none;
    }

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

    .main_header_info {
      text-align: center;
      padding: 0 16px;
    }
  }

  .rooms_info_main {
    justify-content: center;
  }

  .rooms_info_main_content {
    display: none !important;
  }

  .rooms_slider_wrap {
    width: 100%;

    .rooms_slider {
      width: 80%;
    }

    .swiper-controls {
      width: calc(100% + 34px);
      padding: 0 5px;
      .swiper-next, .swiper-prev {
        width: 45px;
        height: 45px;
        transform: unset !important;

        img {
          max-width: 14px;
        }
      }
    }
  }

  .rooms_info_additional {
    flex-direction: column-reverse;

    .rooms_info_additional_right, .rooms_info_additional_left {
      width: 100% !important;
    }

  }
  .rooms_advantages_list {
    grid-template-columns: repeat(2, 1fr) !important;
  }


}

@media screen and (max-width: 768px) {
  .navbar.with_admin {
    top: 0 !important;
  }

  body {
    padding-top: 30px;
  }

  .navbar.with_admin.hide {
    transform: translateY(-100%) !important;
  }

  .navbar_logo {
    height: 40px;
    max-width: 132px !important;
  }

  h1.main_title, h2.main_title {
    font-size: 18px;
    line-height: 135%;
  }

  p, p span {
    font-size: 12px;
    line-height: 20px;
  }

  .main_header_info p {
    max-width: 350px;
    margin: auto;
  }

  .rooms {
    padding: 35px 0;

    .room_info {
      margin-top: 20px;
    }
  }

  .rooms_tabs_btn {
    min-width: 30%;
    max-height: 35px;
    font-weight: 400 !important;
    font-size: 12px !important;
    padding: 12px 13px !important;
    width: unset !important;
  }

  .rooms_tabs {
    flex-wrap: wrap;
    gap: 10px !important;
  }

  .rooms_info_additional_right p.uppercase {
    font-size: 16px;
  }
  .rooms_info_additional_left p {
    font-size: 14px !important;
  }

  .rooms_info_additional .btn {
    font-weight: 500;
    font-size: 14px !important;
  }

  .rooms_advantages {
    margin: 44px auto 50px auto;
    gap: 40px;

    .main_title {
      max-width: 344px;
      margin: auto;
    }

    .rooms_advantages_list {
      gap: 28px;
      grid-template-columns: repeat(1, 1fr) !important;
    }

    .advantages_item {
      gap: 18px;

      .advantages_item_info, .advantages_item_info p {
        font-size: 12px;
        line-height: 18px;
      }

      .advantages_item_title {

        h4 {
          line-height: 20px;
          font-size: 14px;
        }

        img {
          max-width: 30px;
        }

      }
    }

  }




  .additional_list {
    grid-template-columns: repeat(2, 1fr) !important;

    .additional_list_item p {
      font-size: 12px !important;
    }
    .additional_list_item img {
      max-width: 20px;
    }
  }


  .contacts {
    height: auto;
    padding: 32px 0 36px 0;

    .contacts_item {
      img {
        max-width: 24px;
      }
      a {
        font-size: 14px;
      }вали
    }

    .contacts_items_wrap {
      margin-top: 40px;
    }


    .btn {
      height: 37px;
      width: 195px;
      margin-top: 35px;
      font-size: 14px;
    }

    .contacts_content {
      height: max-content;
      flex-direction: column-reverse;
      gap: 18px;
      background: none;

      .contacts_left {
        width: 100%;
        background: var(--white);

        .contacts_left_info {
          align-items: center;

          .main_title {
            font-size: 24px;
          }
        }
      }

      .contacts_map {
        width: 100%;
        height: 150px;
      }
    }
  }

  .footer_content {
    flex-direction: column;
  }

  .footer_content_left {
    position: absolute;
    right: 15px;
  }

  .footer_content_right {
    gap: 15px !important;
    flex-direction: column-reverse;
  }

  .footer_content_left img {
    max-width: 132px !important;
    transform: translateX(-5px) !important;
  }

  /*.footer_content_col_items_wrap {*/
  /*  flex-direction: column;*/
  /*  gap: 15px !important;*/
  /*}*/

  .footer_content_col_item {
    max-width: 100% !important;
  }

  .footer_content_col.last {
    display: none !important;
  }
}