:where(*, *::before, *::after) {
  box-sizing: border-box;
}

:where(*) {
  margin: 0;
}

:root {
  --old-root-em: 10px;
  --new-root-em: 16px;
  --rem-scale: calc(var(--old-root-em) / var(--new-root-em));
}

html {
  font-size: var(--new-root-em);
  font-family: "ivyepic", sans-serif;
}

html,
body {
  block-size: 100%;
}

html:focus-within {
  scroll-behavior: smooth;

  
}

body {
  line-height: 1.5;
  -webkit-text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
  font-synthesis-weight: none;
  font-synthesis-style: none;
}

:where(h1, h2, h3, h4, h5, h6) {
  font-family: "ivymode", sans-serif;
}

:where(p, li, figcaption) {
  text-wrap: pretty;
}

:where(img, picture, video, canvas, svg) {
  block-size: auto;
  display: block;
  max-inline-size: 100%;
}

a {
  color: inherit;
  text-decoration: underline;
  text-decoration-skip-ink: auto;
}

button {
  background: none;
  border: 0;
}

fieldset {
  border: 0;
  padding: 0;
}

:focus-visible {
  outline: calc(.2rem * var(--rem-scale)) solid Highlight;
  outline-offset: calc(.2rem * var(--rem-scale));
}

@supports not selector(:focus-visible) {
  :focus {
    outline: calc(.2rem * var(--rem-scale)) solid Highlight;
    outline-offset: calc(.2rem * var(--rem-scale));
  }
}

:where(input, button, textarea, select) {
  color: inherit;
  font: inherit;
}

:where(button, input[type="button"], input[type="submit"], input[type="reset"]) {
  cursor: pointer;
}

:where(textarea) {
  resize: vertical;
}

:where(ul[role="list"], ol[role="list"]) {
  list-style: none;
}

table {
  border-collapse: collapse;
}

caption {
  text-align: left;
}

[hidden] {
  display: none !important;
}

:where(iframe, embed, object, img) {
  block-size: auto;
  display: block;
  max-inline-size: 100%;
}

:where(code, kbd, samp, pre) {
  font: 1em ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

@media (prefers-reduced-motion: reduce) {
  html:focus-within {
    scroll-behavior: auto;
  }

  :where(*, *::before, *::after) {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
  }
}

.bf-header {
  inline-size: 100%;
  inset-block-start: 0;
  inset-inline-start: 0;
  position: absolute;
  z-index: 1000;
}

.cta {
  align-items: center;
  block-size: calc(5rem * var(--rem-scale));
  border: calc(.1rem * var(--rem-scale)) solid transparent;
  color: #000;
  display: inline-flex;
  font-size: calc(1.4rem * var(--rem-scale));
  font-weight: 300;
  justify-content: center;
  inline-size: 100%;
  max-inline-size: calc(19rem * var(--rem-scale));
  letter-spacing: calc(.14rem * var(--rem-scale));
  line-height: normal;
  padding-inline: calc(2rem * var(--rem-scale));
  transition: all 0.3s ease;
  text-decoration: none;
  text-transform: uppercase;
}

.brown {
  background-color: #455139;
  color: #fff;

  &:hover {
    background-color: #4A81CE;
  }
}

.blue {
  background-color: #4A81CE;
  color: #fff;
}

.green {
  background-color: #3F4F4F;
  color: #fff;
}

.dusty {
  background-color: #C3C7A2;

  &:hover {
    background-color: rgba(74, 129, 206, .40);
  }
}

.outline-blue {
  border-color: #4A81CE;

  &:hover {
    border: calc(.1rem * var(--rem-scale)) solid #4A81CE;
    background-color: rgba(74, 129, 206, .20);
  }
}

.outline-green {
  border-color: #C3C7A2;

  &:hover {
    border: calc(.1rem * var(--rem-scale)) solid #C3C7A2;
    background-color: rgba(195, 199, 162, .20);
  }
}

.outline-white {
  border-color: #FFF;
}

.bf-footer {
  background-color: #2C3834;
  text-align: center;
  padding-block: calc(5rem * var(--rem-scale));
  padding-inline: calc(3rem * var(--rem-scale));
}

.bf-footer__container {
  max-inline-size: calc(118.3rem * var(--rem-scale));
  margin-inline: auto;
}

.bf-footer__logo {
  display: flex;
  justify-content: center;
}

.bf-footer__logo-img {
  width: calc(5.9rem * var(--rem-scale));
  height: calc(5.9rem * var(--rem-scale));
}

.bf-footer__address {
  color: #FFF;
  text-align: center;
  font-size: calc(1.5rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.4rem * var(--rem-scale));
  padding-block-start: calc(1.5rem * var(--rem-scale));
}

.bf-footer__address-title {
  color: #FFF;
  text-align: center;
  font-size: calc(1.5rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.4rem * var(--rem-scale));
}

.bf-footer__address-text {
  color: #FFF;
  text-align: center;
  font-size: calc(1.5rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.4rem * var(--rem-scale));
  padding-block-start: calc(3rem * var(--rem-scale));
}

.bf-footer__address-cta {
  color: #fff;
  padding-block-start: calc(2rem * var(--rem-scale));

  a {
    color: #fff;
  }
}

.bf-footer__contacts {
  color: #FFF;
  text-align: center;
  font-size: calc(1.5rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.5rem * var(--rem-scale));
  padding-block-start: calc(3.5rem * var(--rem-scale));
}

.bf-footer__contacts-title {
  color: #FFF;
  text-align: center;
  font-size: calc(1.5rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.5rem * var(--rem-scale));
  text-transform: uppercase;
}

.bf-footer__menu {
  padding-block-start: calc(4rem * var(--rem-scale));
}

.bf-footer__menu-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.bf-footer__menu-link {
  color: #FFF;
  text-align: center;
  font-family: "Gill Sans";
  font-size: calc(1.7rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: calc(2.3rem * var(--rem-scale));
  letter-spacing: calc(0.17rem * var(--rem-scale));
  text-decoration: none;
  text-transform: uppercase;
}

.bf-footer__row--copyright {
  padding-block-start: calc(1.5rem * var(--rem-scale));
}

.bf-footer__copyright {
  color: #FFF;
  text-align: center;
  font-size: calc(1.4rem * var(--rem-scale));
  font-style: normal;
  font-weight: 300;
  line-height: normal;
}

.bf-footer__phone-link,
.bf-footer__email-link {
  text-decoration: none;
}

.bf-footer__socials {
  display: flex;
  gap: calc(1.5rem * var(--rem-scale));
  justify-content: center;
  padding-block-start: calc(3.5rem * var(--rem-scale));
}

@media (min-width: 768px) {
  .bf-footer__logo-img {
    width: calc(12rem * var(--rem-scale));
    height: calc(12rem * var(--rem-scale));
  }

  .bf-footer__address {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__address-title {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__address-text {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__contacts {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__contacts-title {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__menu-link {
    font-size: calc(1.8rem * var(--rem-scale));
    line-height: calc(3rem * var(--rem-scale));
  }

  .bf-footer__copyright {
    font-size: calc(1.5rem * var(--rem-scale));
    font-weight: 400;
  }

  .cta {
    max-inline-size: calc(28.5rem * var(--rem-scale));
  }
}

@media (min-width: 1024px) {
  .bf-footer {
    padding-block: calc(10rem * var(--rem-scale)) calc(5rem * var(--rem-scale));
  }

  .bf-footer__row--main {
    display: grid;
    grid-template-columns: auto repeat(3, 1fr);
    grid-column-gap: calc(4rem * var(--rem-scale));
  }

  .bf-footer__address {
    text-align: start;
    padding-block-start: 0;
  }

  .bf-footer__logo {
    justify-content: start;
  }

  .bf-footer__address-title {
    text-align: start;
  }

  .bf-footer__address-text {
    text-align: start;
    padding-block-start: calc(2rem * var(--rem-scale));
  }

  .bf-footer__contacts {
    text-align: start;
    padding-block-start: 0;
  }

  .bf-footer__contacts-title {
    text-align: start;
  }

  .bf-footer__menu {
    text-align: start;
    padding-block-start: 0;
  }

  .bf-footer__menu-link {
    text-align: start;
  }

  .bf-footer__row--copyright {
    text-align: start;
    padding-block-start: calc(12.5rem * var(--rem-scale));
  }

  .bf-footer__copyright {
    text-align: start;
  }

  .bf-footer__socials {
    justify-content: start;
    padding-block-start: calc(4rem * var(--rem-scale));
  }
}

@media(min-width: 1200px) {
  .bf-site-overlay {
    background: rgba(0, 0, 0, 0.5);
    display: none;
    inset: 0;
    position: fixed;
    z-index: 998;
  }

  .bf-header:has(.bf-primary-menu-item.has-children:hover) + .bf-site-overlay,
  .bf-header:has(.bf-mega-menu:hover) + .bf-site-overlay,
  .bf-mega-menu.show ~ .bf-site-overlay {
    display: block;
  }

  .bf-header {
    padding: calc(2.5rem * var(--rem-scale));
  }

  .bf-navigation {
    block-size: 100%;
  }

  .bf-header__grid {
    align-items: center;
    block-size: 100%;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: calc(3.5rem * var(--rem-scale));
    inline-size: 100%;
    /* max-inline-size: 120rem; */
    margin-inline: auto;
  }

  .bf-navigation--left {
    justify-self: end;
  }

  .bf-navigation--right {
    justify-self: start;
  }

  .bf-header__logo {
    justify-self: center;
  }

  .bf-navigation-mobile,
  .bf-navigation--mobile {
    display: none;
  }
  
  .bf-mobile-menu {
    display: none;
  }

  .bf-navigation-mobile__logo {
    display: none;
  }

  .bf-primary-menu {
    align-items: center;
    block-size: 100%;
    display: flex;
    list-style: none;
    margin: 0;
    padding: 0;

    > li {
      block-size: 100%;
    }

    > li > a {
      block-size: 100%;
      display: flex;
      align-items: center;
      justify-content: center;
      padding-inline: calc(3.5rem * var(--rem-scale));
    }
  }
  
  .bf-primary-menu-link {
    color: #FFF;
    font-size: calc(1.7rem * var(--rem-scale));
    font-weight: 300;
    line-height: calc(2rem * var(--rem-scale));
    letter-spacing: calc(.17rem * var(--rem-scale));
    overflow: hidden;
    position: relative;
    text-decoration: none;
    text-transform: uppercase;
  }
  
  .bf-primary-menu-item.has-children:hover .bf-primary-menu-link::after {
    background-color: #F5F3EF;
    block-size: 100%;
    color: #455139;
    content: '';
    inline-size: 100%;
    inset-block-start: 20%;
    inset-inline-start: 0;
    position: absolute;
    z-index: 1;
  }

  .bf-primary-menu-item.has-children:hover .bf-primary-menu-link span {
    color: #455139;
    position: relative;
    z-index: 2;
  }

  .bf-mega-menu:hover ~ .bf-primary-menu-item.has-children .bf-primary-menu-link::after,
  .bf-header:has(.bf-mega-menu:hover) .bf-primary-menu-item.has-children .bf-primary-menu-link::after {
    background-color: #FFF;
    block-size: 100%;
    color: #455139;
    content: '';
    inline-size: 100%;
    inset-block-start: 20%;
    inset-inline-start: 0;
    position: absolute;
    z-index: 1;
  }

  .bf-mega-menu:hover ~ .bf-primary-menu-item.has-children .bf-primary-menu-link span,
  .bf-header:has(.bf-mega-menu:hover) .bf-primary-menu-item.has-children .bf-primary-menu-link span {
    color: #455139;
    position: relative;
    z-index: 2;
  }

  .bf-mega-menu {
    background: #fff;
    display: none;
    left: 0;
    padding-block: calc(5rem * var(--rem-scale)) calc(3rem * var(--rem-scale));
    position: absolute;
    top: 100%;
    inline-size: 100%;
    z-index: 999;
  }

  .bf-mega-menu__container {
    inline-size: 100%;
    margin-inline: auto;
    max-inline-size: calc(120rem * var(--rem-scale));
  }

  .bf-mega-menu__grid {
    display: grid;
    gap: calc(3rem * var(--rem-scale));
    grid-template-columns: repeat(7, 1fr);
    margin-block-end: calc(3rem * var(--rem-scale));
  }

  .bf-mega-menu__item {
    text-align: center;
  }

  .bf-mega-menu__link {
    color: inherit;
    display: block;
    text-decoration: none;
  }

  .bf-mega-menu__image {
    margin-block-end: calc(1.5rem * var(--rem-scale));
    overflow: hidden;
  }

  .bf-mega-menu__image img {
    block-size: calc(11.2rem * var(--rem-scale));
    inline-size: calc(16rem * var(--rem-scale));
    object-fit: cover;
    transition: transform 0.3s ease, opacity 0.3s ease;
  }

  .bf-mega-menu__link:hover .bf-mega-menu__image img,
  .bf-mega-menu__item:hover .bf-mega-menu__image img,
  .bf-mega-menu__image:hover img,
  .bf-mega-menu__image img:hover {
    opacity: 0.5;
  }

  .bf-mega-menu__title {
    color: #000;
    font-size: calc(1.5rem * var(--rem-scale));
    font-weight: 300;
    letter-spacing: calc(0.18rem * var(--rem-scale));
    line-height: normal;
    margin: 0;
    padding-block-start: calc(1.5rem * var(--rem-scale));
    text-align: center;
    text-transform: uppercase;
  }

  .bf-mega-menu__cta {
    padding-block-start: calc(3rem * var(--rem-scale));
    text-align: center;
  }

  .bf-mega-menu.show {
    display: block;
  }
  
  .sub-menu {
    display: none;
  }
  
  .bf-primary-menu-item.has-children:hover .sub-menu {
    display: block;
  }
  
  .sub-menu {
    background: #F5F3EF;
    display: none;
    left: 0;
    padding-block: calc(5rem * var(--rem-scale)) calc(3rem * var(--rem-scale));
    position: absolute;
    top: 100%;
    inline-size: 100%;
    z-index: 999;
  }
  
  .sub-menu__container {
    inline-size: 100%;
    margin-inline: auto;
    max-inline-size: calc(120rem * var(--rem-scale));
    padding-inline: 0;
  }
  
  .sub-menu__grid {
    display: grid;
    gap: calc(1.5rem * var(--rem-scale));
    grid-template-columns: repeat(7, minmax(calc(16rem * var(--rem-scale)), 1fr));
    margin-block-end: calc(3rem * var(--rem-scale));
  }
  
  .sub-menu__item {
    text-align: center;
  }
  
  .sub-menu__link {
    color: inherit;
    display: block;
    text-decoration: none;
  }
  
  .sub-menu__image {
    display: flex;
    justify-content: center;
    margin-block-end: calc(1.5rem * var(--rem-scale));
    overflow: hidden;
  }
  
  .sub-menu__image img {
    block-size: calc(11.2rem * var(--rem-scale));
    inline-size: calc(16rem * var(--rem-scale));
    object-fit: cover;
    transition: all 0.3s ease;

    &:hover {
      opacity: 0.5;
    }
  }
  
  .sub-menu__title {
    color: #000;
    font-size: calc(1.5rem * var(--rem-scale));
    font-weight: 300;
    letter-spacing: calc(0.18rem * var(--rem-scale));
    line-height: normal;
    margin: 0;
    text-align: center;
    text-transform: uppercase;
  }
  
  .sub-menu__cta {
    padding-block-start: calc(1rem * var(--rem-scale));
    text-align: center;
  }

  .bf-header {
    block-size: calc(10rem * var(--rem-scale));
    padding-block: 0;
  }
}

@media(max-width: 1199px) {
  .bf-header {
    padding: calc(2rem * var(--rem-scale)) calc(3rem * var(--rem-scale));
  }

  .bf-navigation {
    display: none;
  }

  .bf-header__logo {
    display: none;
  }

  .bf-mega-menu {
    display: none !important;
  }

  .bf-navigation-mobile {
    align-items: center;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    justify-items: center;
  }

  .bf-navigation-mobile__button {
    cursor: pointer;
    margin-inline-end: auto;
  }

  .bf-header.is-mobile-menu-open {
    background-color: #b7aba3;
  }

  .bf-header .bf-navigation-mobile__button svg {
    display: block;
  }

  .bf-header.is-mobile-menu-open .bf-navigation-mobile__button svg {
    display: none;
  }
  
  .bf-header.is-mobile-menu-open .bf-navigation-mobile__button::before {
    content: '';
    display: inline-block;
    inline-size: 39px;
    block-size: 37px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='39' height='37' viewBox='0 0 39 37' fill='none'%3E%3Cline x1='2.70711' y1='1.29289' x2='37.7071' y2='36.2929' stroke='white' stroke-width='2'/%3E%3Cline y1='-1' x2='49.4975' y2='-1' transform='matrix(-0.707107 0.707107 0.707107 0.707107 37 2)' stroke='white' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain;
  }

  .bf-navigation-mobile__cta {
    border: calc(.1rem * var(--rem-scale)) solid #FFF;
    display: inline-flex;
    inline-size: calc(9rem * var(--rem-scale));
    justify-content: center;
    margin-inline-start: auto;
    padding-block: calc(1.1rem * var(--rem-scale)) calc(.8rem * var(--rem-scale));

    a {
      color: #FFF;
      font-size: calc(1.4rem * var(--rem-scale));
      font-weight: 300;
      letter-spacing: calc(.14rem * var(--rem-scale));
      line-height: normal;
      text-decoration: none;
      text-transform: uppercase;
    }
  }

  .bf-mobile-menu {
    background: #F8F7F2;
    block-size: 100vh;
    display: block;
    inline-size: 100%;
    inset-block-start: 0;
    inset-inline-start: 0;
    overflow-y: auto;
    position: fixed;
    transform: translateX(-100%);
    transition: transform 0.3s ease-in-out;
    z-index: 9999;
  }

  .bf-mobile-menu.is-open {
    transform: translateX(0);
  }

  .bf-mobile-menu__close-btn {
    background: none;
    border: none;
    cursor: pointer;
    margin-inline-end: auto;
    padding: 0;
  }

  .bf-mobile-menu__logo {
    display: block;
  }

  .bf-mobile-menu__cta {
    border: calc(0.1rem * var(--rem-scale)) solid #FFF;
    display: inline-flex;
    inline-size: calc(9rem * var(--rem-scale));
    justify-content: center;
    margin-inline-start: auto;
    padding-block: calc(1.1rem * var(--rem-scale)) calc(0.8rem * var(--rem-scale));

    a {
      color: #FFF;
      font-size: calc(1.4rem * var(--rem-scale));
      font-weight: 300;
      letter-spacing: calc(0.14rem * var(--rem-scale));
      line-height: normal;
      text-decoration: none;
      text-transform: uppercase;
    }
  }

  .bf-mobile-menu__back-button {
    border-block: calc(0.1rem * var(--rem-scale)) solid rgba(0, 0, 0, 0.20);
    padding: calc(2.2rem * var(--rem-scale)) calc(3rem * var(--rem-scale));
  }

  .bf-mobile-menu__back-inner {
    align-items: center;
    display: flex;
    inset-inline-start: calc(-3.5rem * var(--rem-scale));
    gap: calc(1.5rem * var(--rem-scale));
    position: relative;
  }

  .bf-mobile-menu__back-btn {
    background: none;
    border: none;
    cursor: pointer;
    inline-size: 100%;
    padding: 0;
  }

  .bf-mobile-menu__back-inner svg {
    inline-size: calc(1.3rem * var(--rem-scale));
    block-size: calc(2.3rem * var(--rem-scale));
    transform: rotate(180deg);
  }

  .bf-mobile-menu__back-title {
    color: #2C3834;
    font-size: calc(1.5rem * var(--rem-scale));
    font-style: normal;
    font-weight: 300;
    inset-inline-start: calc(1rem * var(--rem-scale));
    letter-spacing: calc(0.18rem * var(--rem-scale));
    line-height: normal;
    position: relative;
    text-transform: uppercase;
  }

  .bf-mobile-menu__nav {
    background-color: #F4F5F0;
    padding: calc(5rem * var(--rem-scale)) calc(3rem * var(--rem-scale));
  }

  .bf-mobile-menu__list {
    list-style: none;
    margin: 0;
    padding: 0;

    &.has-open-submenu {
      > li:not(.bf-mobile-menu__item--has-children) {
        display: none;
      }

      > li.bf-mobile-menu__all-accommodation-item {
        border-block-start: 0;
        display: block !important;
        padding-inline-start: 3.1rem;
      } 
    }
  }

  .bf-mobile-menu__item {
    border-block-end: calc(0.1rem * var(--rem-scale)) solid rgba(0, 0, 0, 0.20);
  }

  .bf-mobile-menu__item:first-child {
    border-block-start: calc(0.1rem * var(--rem-scale)) solid rgba(0, 0, 0, 0.20);
  }

  .bf-mobile-menu__link {
    align-items: center;
    color: #2C3834;
    display: flex;
    font-size: calc(1.5rem * var(--rem-scale));
    font-style: normal;
    font-weight: 300;
    justify-content: space-between;
    letter-spacing: calc(0.18rem * var(--rem-scale));
    line-height: normal;
    padding: calc(1.5rem * var(--rem-scale)) 0;
    text-decoration: none;
    text-transform: uppercase;
    transition: color 0.2s ease;
  }

  .bf-mobile-menu__link:hover {
    color: #2C3834;
  }

  .bf-mobile-menu__chevron {
    align-items: center;
    display: flex;
    margin-inline-start: calc(1rem * var(--rem-scale));
  }

  .bf-mobile-menu__submenu {
    background: #F8F7F2;
    border-block-end: calc(.1rem * var(--rem-scale)) solid rgba(0, 0, 0, 0.20);
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
  }

  .bf-mobile-menu__submenu.is-open {
    display: block;

    > li:last-child {
      border-block-end: 0;
    }
  }

  .bf-mobile-menu__submenu .bf-mobile-menu__item {
    border-block-end: calc(0.1rem * var(--rem-scale)) solid rgba(0, 0, 0, 0.20);
  }

  .bf-mobile-menu__submenu .bf-mobile-menu__link {
    padding-inline-start: calc(3.1rem * var(--rem-scale));
  }

  .bf-mobile-menu__submenu .bf-mobile-menu__chevron {
    display: none;
  }

  .bf-mobile-menu__list.has-open-submenu > .bf-mobile-menu__item--has-children {
    border-block: 0;

    .bf-mobile-menu__submenu.is-open > li:first-child {
      border-block-start: 0;
    }
  }
  

  .bf-mobile-menu__list.has-open-submenu > .bf-mobile-menu__item--has-children > .bf-mobile-menu__link {
    display: none;
  }
}