/**
	This file does note generate code.  It is imported by other sass files to include
	variables, mixins, and functions.
	*/
/* Settings
   -------------------------------------------------------------------------- */
/**
	Global variables
*/
/* Site Max Width. Used in 03-base/_template.scss
   -------------------------------------------------------------------------- */
/* Location of compiled icons in theme.
   Used in project/build/common/sass/04-components/_icons.scss
   -------------------------------------------------------------------------- */
/* Breakpoints
	px is excluded so we can do math on the breakpoints
   -------------------------------------------------------------------------- */
/* Colors
   Suffix color variables with a 3 digit number.  Generally try to progress from
   lightest/dullest to darkest/most vibrant.
   -------------------------------------------------------------------------- */
/* Filter Colors
   -------------------------------------------------------------------------- */
/* Default transition.  Used in transition() mixin.
   ------------------------------------------------------------------------ */
/* Tools
   -------------------------------------------------------------------------- */
/**
	This file does note generate code.  It is imported by other sass files to include
	variables, mixins, and functions.
	*/
/* Settings
   -------------------------------------------------------------------------- */
/**
	This file does note generate code.  It is imported by other sass files to include
	variables, mixins, and functions.
	*/
/* Settings
   -------------------------------------------------------------------------- */
/**
	General mixins
*/
/* Variable Size
   Function can be used to make any property value variable
   -------------------------------------------------------------------------- */
/* Basic Transition
   -------------------------------------------------------------------------- */
/* Default Unordered List
   This mixin is used in place of defining base ul styles and then having to
   override them everywhere.  Ex: in a menu.
   This should be included when you output an acf wysiwyg field.
   -------------------------------------------------------------------------- */
/* Default Link Style
   This mixin is used in place of defining base a styles and then having to
   override them everywhere. Ex: text links vs buttons.
   This should be included when you output an acf wysiwyg field.
   -------------------------------------------------------------------------- */
/* Default Table
   -------------------------------------------------------------------------- */
/* Default Gradient
   -------------------------------------------------------------------------- */
/* Button Reset
   -------------------------------------------------------------------------- */
/* List Reset
   -------------------------------------------------------------------------- */
/* 100vh Mixin
   -------------------------------------------------------------------------- */
/* Accessibility Mixins to allow or prevent animations and transitions
   -------------------------------------------------------------------------- */
/* Tools
   -------------------------------------------------------------------------- */
/**
	Typography specific mixins
	These mixins are used in classes in build/common/sass/03-base/_typography.scss.
	They can also be used in a component/layout stylesheet, but that should be avoided.
*/
/* Fonts
   -------------------------------------------------------------------------- */
/* Typography
   -------------------------------------------------------------------------- */
/**
	This file does note generate code.  It is imported by other sass files to include
	variables, mixins, and functions.
	*/
/* Settings
   -------------------------------------------------------------------------- */
/* Tools
   -------------------------------------------------------------------------- */
/**
	Form specific mixins
	A set of default styles that can be applied to Gravity Forms and other forms
*/
.main-menu {
  z-index: 2;
}
.main-menu__button {
  color: var(--main-menu-label-color, white);
  gap: 24px;
  position: relative;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: center;
      -ms-flex-pack: center;
          justify-content: center;
  z-index: 2;
}
@media (max-width: 1279.98px) {
  .main-menu__button .label {
    display: none;
  }
}
.main-menu__button .icon {
  background-color: var(--main-menu-icon-background, white);
  display: grid;
  place-items: center;
  border-radius: 20px;
  height: 40px;
  width: 40px;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
}
.main-menu__button .icon span {
  height: 8px;
  position: relative;
  width: 16px;
}
.main-menu__button .icon span::before, .main-menu__button .icon span::after {
  background-color: var(--main-menu-icon-color, #1f2221);
  border-radius: 2px;
  height: 2px;
  -webkit-transform-origin: left;
          transform-origin: left;
  content: "";
  display: block;
  position: absolute;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
}
.main-menu__button .icon span::before {
  inset: 0 0 auto 0;
}
.main-menu__button .icon span::after {
  inset: auto 0 0 0;
}
.main-menu__button[aria-expanded=true] .icon span::before {
  rotate: 45deg;
  translate: 2px -3px;
}
.main-menu__button[aria-expanded=true] .icon span::after {
  rotate: -45deg;
  translate: 2px 2px;
}
@media (hover: hover) {
  .main-menu__button:hover, .main-menu__button:focus-visible {
    --main-menu-icon-background: #c41e3a;
    --main-menu-icon-color: white;
  }
}

.mega-menu {
  background-color: #c41e3a;
  display: grid;
  inset: 0 0 auto 0;
  max-height: 100svh;
  overflow-y: auto;
  position: fixed;
  translate: -100vw 0;
  visibility: hidden;
  -webkit-transition: all 0.75s ease-in-out;
  transition: all 0.75s ease-in-out;
}
@media (min-width: 1024px) {
  .mega-menu {
    grid-template-columns: auto minmax(0, 1fr);
  }
}
.mega-menu[data-expanded=true] {
  translate: 0;
  visibility: visible;
}
.mega-menu__nav {
  margin-inline: auto;
  padding-block: calc(var(--header-height, 104px) + 48px) 40px;
  padding-inline: var(--spacer-four);
  -webkit-box-align: stretch;
      -ms-flex-align: stretch;
          align-items: stretch;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
      -ms-flex-direction: column;
          flex-direction: column;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
@media (max-width: 1023.98px) {
  .mega-menu__nav {
    width: min(540px, 100%);
  }
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .mega-menu__nav {
    padding-block: calc(var(--header-height, 104px) + 40px) 40px;
  }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .mega-menu__nav {
    padding-inline: calc(72px + (100vw - 1024px) / ((1280 - 1024) / (128 - 72)));
    -webkit-padding-before: calc(var(--header-height, 93px) + 18px);
            padding-block-start: calc(var(--header-height, 93px) + 18px);
    -webkit-padding-after: calc(40px + (100vw - 1024px) / ((1280 - 1024) / (56 - 40)));
            padding-block-end: calc(40px + (100vw - 1024px) / ((1280 - 1024) / (56 - 40)));
  }
}
@media (min-width: 1280px) and (max-width: 1439.98px) {
  .mega-menu__nav {
    padding-inline: calc(128px + (100vw - 1280px) / ((1440 - 1280) / (160 - 128)));
    -webkit-padding-after: 56px;
            padding-block-end: 56px;
    -webkit-padding-before: var(--header-height, 136px);
            padding-block-start: var(--header-height, 136px);
  }
}
@media (min-width: 1440px) and (max-width: 1919.98px) {
  .mega-menu__nav {
    padding-inline: calc(160px + (100vw - 1440px) / ((1920 - 1440) / (216 - 160)));
    -webkit-padding-after: calc(56px + (100vw - 1440px) / ((1920 - 1440) / (80 - 56)));
            padding-block-end: calc(56px + (100vw - 1440px) / ((1920 - 1440) / (80 - 56)));
  }
}
@media (min-width: 1920px) {
  .mega-menu__nav {
    padding-inline: 216px;
    -webkit-padding-after: 80px;
            padding-block-end: 80px;
  }
}
.mega-menu__booking {
  -ms-flex-item-align: start;
      align-self: flex-start;
  -webkit-margin-after: 40px;
          margin-block-end: 40px;
}
@media (min-width: 768px) and (max-width: 1023.98px) {
  .mega-menu__booking {
    -webkit-margin-after: calc(64px + (100vw - 768px) / ((1024 - 768) / (94 - 64)));
            margin-block-end: calc(64px + (100vw - 768px) / ((1024 - 768) / (94 - 64)));
  }
}
@media (max-width: 1023.98px) {
  .mega-menu__image {
    display: none;
  }
}
@media (min-width: 1024px) {
  .mega-menu__image {
    min-height: 100%;
  }
}
@media (min-width: 1024px) and (max-width: 1279.98px) {
  .mega-menu__image {
    height: calc(776px + (100vw - 1024px) / ((1280 - 1024) / (820 - 776)));
  }
}
@media (min-width: 1280px) and (max-width: 1439.98px) {
  .mega-menu__image {
    height: 820px;
  }
}
@media (min-width: 1440px) and (max-width: 1919.98px) {
  .mega-menu__image {
    height: calc(820px + (100vw - 1440px) / ((1920 - 1440) / (900 - 820)));
  }
}
@media (min-width: 1920px) {
  .mega-menu__image {
    height: 900px;
  }
}

#header-primary-nav {
  -webkit-margin-after: 40px;
          margin-block-end: 40px;
}
#header-primary-nav .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 1024px) {
  #header-primary-nav .menu {
    width: 350px;
  }
}
#header-primary-nav .menu > .menu-item {
  -webkit-border-after: 1px solid color-mix(in srgb, white, transparent 50%);
          border-block-end: 1px solid color-mix(in srgb, white, transparent 50%);
  padding-block: var(--spacer-four);
}
#header-primary-nav .menu > .menu-item .menu-item__link {
  color: white;
  text-decoration: none;
}
#header-primary-nav .menu > .menu-item-has-children {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto 0fr;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
}
#header-primary-nav .menu > .menu-item-has-children[data-expanded=true] {
  grid-template-rows: auto 1fr;
}
#header-primary-nav .menu > .menu-item-has-children[data-expanded=true] .submenu {
  -webkit-margin-before: 8px;
          margin-block-start: 8px;
}
#header-primary-nav .menu-item__link--toggle {
  place-self: start stretch;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: justify;
      -ms-flex-pack: justify;
          justify-content: space-between;
}
#header-primary-nav .menu-item__link--toggle .v-icon__svg {
  --icon-size: 18px;
}
#header-primary-nav .menu-item__link--toggle[aria-expanded=true] .v-icon__svg {
  scale: 1 -1;
}
#header-primary-nav .sub-menu {
  --menu-gap: 48px;
  gap: var(--menu-gap);
  overflow: hidden;
  -webkit-transition: all 0.25s ease-in-out;
  transition: all 0.25s ease-in-out;
  list-style: none;
  margin: 0;
  padding: 0;
  -webkit-box-align: center;
      -ms-flex-align: center;
          align-items: center;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
      -ms-flex-direction: row;
          flex-direction: row;
  -ms-flex-wrap: nowrap;
      flex-wrap: nowrap;
  -webkit-box-pack: start;
      -ms-flex-pack: start;
          justify-content: flex-start;
}
#header-primary-nav .sub-menu .menu-item + .menu-item {
  position: relative;
}
#header-primary-nav .sub-menu .menu-item + .menu-item::before {
  color: white;
  inset: calc(50% - 0.5lh) auto auto calc(var(--menu-gap) / -2);
  content: "/";
  display: block;
  position: absolute;
}

@media (min-width: 1024px) {
  #header-secondary-nav {
    -webkit-margin-before: auto;
            margin-block-start: auto;
  }
}
#header-secondary-nav .menu {
  display: grid;
  gap: var(--spacer-two);
  list-style: none;
  margin: 0;
  padding: 0;
}
@media (min-width: 768px) {
  #header-secondary-nav .menu {
    gap: var(--spacer-four) var(--spacer-nine);
    grid-template-columns: -webkit-max-content max-content;
    grid-template-columns: max-content max-content;
  }
}
@media (min-width: 1024px) {
  #header-secondary-nav .menu {
    width: 350px;
  }
}
#header-secondary-nav .menu-item__link {
  color: white;
  text-decoration: none;
}