/* Frontpage - Single Image Used */
.element-04 {
  position: relative;
}

#post-body-content .element-04,
#post-body-content .element-04 * {
  pointer-events: none;
}

.element-04.version-1:first-of-type {
  margin-top: calc(var(--headerBottomHeight) * -1) !important;
  transition: margin 0.5s ease;
}

.element-04.version-1 > section:first-of-type {
  min-height: 100vh;
}

.element-04 .intro-text {
  filter: drop-shadow(0px 2px 1px rgba(0, 0, 0, 0.2));
}

@media (max-width: 990px) {
  .element-04.version-1 > section:first-of-type {
    min-height: 50vh;
  }

  .element-04.version-1 .frontpage_single_slide_center {
    transform: unset !important;
    position: static !important;
    display: flex;
    height: 100%;
    align-items: center;
  }

  .element-04.version-1 .frontpage_single_slide_center :is(h3, h2, h1) {
    margin-bottom: 0;
  }

  .element-04.version-1 [id^="check-availability_"] {
    position: static !important;
    background: var(--wpt-page-component-bg-colour) !important;
    transform: unset !important;
  }
}

.element-04 .video-background-controls {
  display: none;
}

.element-04 [id^="frontpage-single-image_"] {
  background-size: cover;
  background-repeat: no-repeat;
  position: relative;
  background-position: 50% 50%;
}

.element-04.version-2 [id^="frontpage-single-image_"] {
  display: flex;
  pointer-events: none;
}

.element-04.version-2 .frontpage_single_slide_center {
  display: flex;
  flex-grow: 1;
  pointer-events: none;
}

.element-04.version-2 .frontpage_single_slide_center .wpt-container {
  display: flex;
  align-content: center;
}

.element-04.version-2 .frontpage_single_slide_center .wpt-container .col-12 {
  display: flex;
  align-content: center;
  z-index: 1;
  flex-grow: 1;
  width: 100%;
  justify-content: center;
}

.element-04.version-2 .frontpage_single_slide_center .wpt-container .wpt-row {
  align-content: center;
  justify-content: center;
}

.element-04.version-2
  .frontpage_single_slide_center
  .wpt-container
  .col-12
  .intro-text {
  display: flex;
  align-content: center;
  flex-direction: column;
  justify-content: center;
}

.element-04.version-2.content-align-right
  .frontpage_single_slide_center
  > .wpt-container
  > .wpt-row {
  flex-direction: row-reverse !important;
}

.element-04.version-2 .frontpage_single_slide_center .wpt-buttons-row {
  justify-content: center;
  margin: 2em -5px 0;
}

#poststuff [class*="element-"] [id^="frontpage-single-image_"],
#poststuff [class*="element-"].element-04.version-2 {
  margin: 0 !important;
  height: unset !important;
  max-height: unset !important;
}

@media (max-width: 991px) {
  .element-04 [id^="frontpage-single-image_"] {
    height: unset;
    max-height: unset;
    display: flex;
    align-items: center;
  }

  .element-04.version-2
    .frontpage_single_slide_center
    section[id^="check-availability_"] {
    display: none;
  }
}

@media (max-width: 500px) {
  .element-04 [id^="frontpage-single-image_"] {
    height: unset;
    max-height: unset;
  }
}

.element-04.version-1 [id^="frontpage-single-image_"]::after {
  width: 100%;
  height: 100%;
  content: " ";
  position: absolute;
  top: 0px;
  left: 0px;
  display: block;
  z-index: 0;
}

.element-04.version-2 [id^="frontpage-single-image_"]::before {
  width: 100%;
  height: 100%;
  content: " ";
  position: absolute;
  top: 0px;
  left: 0px;
  display: block;
  z-index: 1;
  pointer-events: none;
}

.element-04.version-1 [id^="frontpage-single-image_"]::after,
.element-04.version-2 [id^="frontpage-single-image_"]::before {
  background: var(--e04-tint);
}

.element-04 [id^="youtubeholder_"] {
  z-index: 0 !important;
}

.element-04.version-2 .element-04__bg > div:before {
  content: "";
  position: absolute;
  inset: -20px;
  background-image: var(--poster-url);
  background-size: cover;
  background-position: center;
  filter: blur(8px);
  z-index: 0;
}

.element-04.less-opacity [id^="frontpage-single-image_"]::before {
  opacity: 0.2 !important;
}

.element-04.version-1 .frontpage_single_slide_center {
  position: absolute;
  top: calc(50% + 64px);
  transform: translateY(-50%);
  left: 0px;
  text-align: center;
  width: 100%;
  z-index: 1;
}

.element-04 .container {
  width: 100%;
  padding-right: 15px;
  padding-left: 15px;
  margin-right: auto;
  margin-left: auto;
}

.element-04 .frontpage_single_slide_center p,
.element-04 .frontpage_single_slide_center p :is(h3, h2, h1) {
  font-weight: 800;
  color: #fff !important;
  text-align: center;
  text-transform: uppercase;
  line-height: 1;
}

.element-04 .frontpage_single_slide_center p span {
  font-weight: 400;
  font-size: 2em;
  line-height: 1;
}

@media (max-width: 500px) {
  .element-04 .frontpage_single_slide_center p span {
    font-size: 1.2em;
  }

  .element-04 .frontpage_single_slide_center :is(h1, h2, h3, h4) {
    font-size: 3em;
  }
}

.element-04 .frontpage_single_slide_center :is(h1, h2, h3, h4) {
  font-size: 4em;
  color: #fff;
  text-transform: none;
  margin-top: 0;
  text-align: center;
  line-height: 1;
}

@media (max-width: 600px) {
  .element-04 .frontpage_single_slide_center :is(h1, h2, h3, h4) {
    font-size: 3em;
  }
}

.element-04 p {
  font-family: var(--wpt-primary-font);
  margin-top: 0;
  margin-bottom: 1rem;
}

.element-04 h3 {
  font-family: var(--wpt-headings-secondary-font);
  line-height: 1.2;
}

.element-04 .header_panel_section .container {
  max-width: 1140px;
  margin: auto;
}

.element-04 {
  padding: 0 !important;
}

.element-04 iframe,
.element-04 .element-04__bg video {
  transition: opacity 2s ease;
  opacity: 0;
  z-index: 1;
}

.element-04 .wpt-row > * {
  flex-grow: 1;
}

.element-04.version-2 {
  overflow: unset;
}

.element-04.version-2 [id^="check-availability_"] {
  padding: 15px 0;
  position: relative;
}

@media (max-width: 600px) {
  .element-04.version-2 [id^="check-availability_"] {
    padding: 5px 0;
  }
}

[class*="element-"].element-04.version-2 {
  margin-bottom: 0 !important;
}

@media (max-width: 991px) {
  .element-04.version-1 [id^="check-availability_"] {
    background: #eee;
    padding: 15px 0;
  }

  [class*="element-"].element-04.version-2 {
    margin-top: 0 !important;
  }
}

/* Availability form title. Real markup rather than generated content so it is
   exposed to assistive tech, translatable and searchable. The banner design only
   shows it from 992px up; below that it is visually hidden but still in the
   accessibility tree for floating-search banners (where the section stays
   `display: unset`). For non-floating banners the whole check-availability
   section is `display: none` below 992px, which removes the title along with
   it — this visually-hidden styling only has an effect while its ancestor
   section is actually displayed. */
.element-04.version-2 .element-04__availability-title {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (min-width: 992px) {
  .element-04.version-2.content-align-left
    .frontpage_single_slide_center
    > .wpt-container
    .col-12
    .intro-text {
    align-items: flex-start;
  }

  .element-04.version-2.content-align-right
    .frontpage_single_slide_center
    > .wpt-container
    .col-12
    .intro-text {
    align-items: flex-end;
  }

  .element-04.content-align-left
    .frontpage_single_slide_center
    :is(h3, h2, h1) {
    text-align: left;
  }

  .element-04.content-align-right
    .frontpage_single_slide_center
    :is(h3, h2, h1) {
    text-align: right;
  }

  .element-04.version-1 .frontpage_single_slide_center :is(h3, h2, h1) {
    text-align: center;
  }

  [class*="element-"].element-04.version-2:first-child {
    margin-top: calc(var(--headerHeight) * -1) !important;
  }

  .element-04.version-2 .frontpage_single_slide_center > .wpt-container {
    padding-top: 150px;
  }

  .element-04.version-2.content-align-left
    .frontpage_single_slide_center
    .wpt-container
    .wpt-row
    > div {
    justify-content: flex-start;
  }

  .element-04.version-2.content-align-left
    [id^="check_availability_category_icons_"] {
    min-width: 100%;
  }

  .element-04.version-2:not(.content-align-middle)
    .frontpage_single_slide_center
    > .wpt-container
    > .wpt-row {
    justify-content: space-between;
    flex-wrap: nowrap;
    align-items: center;
  }

  .element-04.version-2:not(.content-align-middle)
    section[id^="check-availability_"] {
    z-index: 1;
    flex-grow: 1;
    width: 100%;
    max-width: 420px;
  }

  .element-04.version-2.content-align-left section[id^="check-availability_"] {
    margin-left: 20px !important;
  }

  .element-04.version-2.content-align-right section[id^="check-availability_"] {
    margin-right: 20px !important;
  }

  .element-04.version-2.rounded-corners-true:not(.content-align-middle)
    section[id^="check-availability_"] {
    border-radius: 30px;
  }

  .element-04.version-2.rounded-corners-standard:not(.content-align-middle)
    section[id^="check-availability_"] {
    border-radius: 6px;
  }

  .element-04.version-2:not(.content-align-middle)
    section[id^="check-availability_"]
    .element-04__availability-title {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    overflow: visible;
    clip: auto;
    white-space: normal;
    border-radius: 6px;
    text-transform: uppercase;
    color: white;
    font-weight: bold;
    padding: 10px 30px 0;
    display: block;
    font-size: 23px;
    /* match what the old :before inherited from the section */
    font-family: inherit;
    line-height: inherit;
    text-align: inherit;
  }

  .element-04.version-2:not(.content-align-middle)
    :is(
      [id^="check_availability_guests_"],
      [id^="check_availability_category_types"]
    ) {
    width: 100%;
  }

  .element-04.version-2:not(.content-align-middle)
    > section[id^="check-availability_"].outside-availability {
    display: none;
  }
}

.element-04.version-2 :is([id^="check_availability_category_types"]) .dropdown,
.element-04.version-2 :is([id^="check_availability_location"]) .dropdown,
.element-04.version-2 .daterangepicker-field {
  background: white;
  position: relative;
}

.element-04.version-2
  :is([id^="check_availability_category_types"])
  .dropdown
  i,
.element-04.version-2 :is([id^="check_availability_location"]) .dropdown i,
.element-04.version-2 .daterangepicker-field > i {
  position: absolute;
  right: 20px;
  pointer-events: none;
}

.element-04.version-2
  :is([id^="check_availability_category_types"])
  .dropdown
  i,
.element-04.version-2 :is([id^="check_availability_location"]) .dropdown i {
  font-size: 17.5px;
}

.element-04.version-2:not(.content-align-middle).rounded-corners-true
  :is([id^="check_availability_category_types"])
  .dropdown {
  border-radius: 104px;
}

.element-04.version-2:not(.content-align-middle).rounded-corners-standard
  :is([id^="check_availability_category_types"])
  .dropdown {
  border-radius: 6px;
}

.element-04.version-1 [id^="check-availability_"] {
  padding: 0;
  position: absolute;
  left: 80px;
  right: 80px;
  top: 60%;
  top: calc(50% + 174px);
  transform: translateY(-50%);
  z-index: 1;
  background: transparent;
}

/* ---------- Slider Styling ---------- */

.element-04 .slider-nav {
  transition: all 0.4s;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 100%;
  justify-content: space-between;
  padding: 0 20px;
  opacity: 0;
  z-index: 1;
  display: flex;
}

.element-04:hover .slider-nav {
  opacity: 1;
}

.element-04 .slider-nav i {
  font-size: 2.5rem;
  color: white;
  text-shadow: 2px 2px 8px rgba(0, 0, 0, 0.2);
  font-family: "Font Awesome 6 Pro";
}

.element-04.version-1 > .frontpage_slider {
  background: #000000;
}

.element-04 [id^="frontpage-single-image_"].youtube-header {
  min-height: 100% !important;
}

.element-04.version-2:is(.transparent-menu-false),
.acfe-flexible-placeholder .element-04.version-2 {
  margin-top: 0 !important;
}

.element-04.version-2
  .frontpage_single_slide_center
  > .wpt-container
  > .wpt-row {
  padding: 40px 0;
  pointer-events: all;
}

.element-04.version-2.banner-height-short.transparent-menu-true
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(40px + var(--headerHeight)) 0 40px 0;
}

.element-04.version-2.banner-height-standard.transparent-menu-true
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(100px + var(--headerHeight)) 0 100px 0;
}

.element-04.version-2.banner-height-tall.transparent-menu-true
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(200px + var(--headerHeight)) 0 200px;
}

.element-04.version-2.banner-height-short:is(.transparent-menu-false)
  .frontpage_single_slide_center
  > .wpt-container,
.acfe-flexible-placeholder
  .element-04.version-2.banner-height-short
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(40px + var(--headerHeight)) 0 40px 0;
}

.element-04.version-2.banner-height-standard:is(.transparent-menu-false)
  .frontpage_single_slide_center
  > .wpt-container,
.acfe-flexible-placeholder
  .element-04.version-2.banner-height-standard
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(100px + var(--headerHeight)) 0 100px 0;
}

.element-04.version-2.banner-height-tall:is(.transparent-menu-false)
  .frontpage_single_slide_center
  > .wpt-container,
.acfe-flexible-placeholder
  .element-04.version-2.banner-height-tall
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(200px + var(--headerHeight)) 0 200px;
}

.element-04.version-2.video-header iframe[id^="youtubeholder_"],
.element-04.version-2.video-header video {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  width: 100% !important;
  width: var(--videoWidth) !important;
  height: 100% !important;
  height: var(--videoHeight) !important;
  transform: translate(-50%, -50%) scale(1.03) !important;
}

.element-04.version-2 .element-04__bg > div {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
}

.element-04.version-2 .element-04__bg {
  height: 100%;
  left: 0;
  overflow: hidden;
  position: absolute;
  top: 0;
  width: 100%;
}

.element-04.version-2 .element-04__bg iframe[id^="youtubeholder_"],
.element-04.version-2 .element-04__bg > [id^="slider_"],
.element-04.version-2 .element-04__bg > img,
.element-04.version-2 .element-04__bg > div > video {
  filter: blur(0);
  height: 100%;
  left: 0px;
  max-width: unset;
  object-fit: cover;
  position: absolute;
  top: 0px;
  width: 100%;
  z-index: 0;
}

[id^="frontpage_single_slide_"].element-04.version-2.transparent-menu-false
  > section {
  max-height: calc(100vh - var(--headerHeight)) !important;
}

#page
  [id^="frontpage_single_slide_"].element-04.version-2.transparent-menu-true {
  margin-top: calc(var(--headerBottomHeight) * -1) !important;
}

.element-04 .header-slider-nav a {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  left: 30px;
  transition: 0.5s ease;
}

.element-04.version-2.transparent-menu-true .header-slider-nav a {
  transform: translateY(calc(-50% + var(--headerHeight) / 2));
}

.element-04 .header-slider-nav .right {
  right: 30px;
  left: unset;
}

.element-04 .header-slider-nav a {
  opacity: 0;
}

.element-04:hover .header-slider-nav a {
  opacity: 1;
}

.element-04 [id*="slider_"] {
  opacity: 0;
  position: absolute;
  height: 100%;
  width: 100%;
  transition: 0.5s ease;
}

.element-04 [id*="slider_"].slick-initialized {
  opacity: 1;
}

.element-04 [id*="slider_"] :is(.slick-list, .slick-track) {
  height: 100%;
}

.element-04 [id*="slider_"] .slick-list .slick-track .slick-slide * {
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.element-04 [id*="slider_"] .slick-arrow {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(50%);
  z-index: 2;
  color: white;
  font-size: 30px;
}

.element-04 [id*="slider_"] .slick-arrow.left {
  right: unset;
  left: 20px;
}

@media (max-width: 1405px) {
  .element-04 [id*="slider_"] .slick-arrow {
    display: none !important;
  }
}

@media (max-width: 991px) {
  .element-04.version-2.banner-height-tall.transparent-menu-true
    .frontpage_single_slide_center
    > .wpt-container {
    padding: 50px 0;
  }
}

.element-04.availability-search-only {
  z-index: 5;
}

.element-04.availability-search-only [id^="check-availability_"] {
  left: auto;
  min-height: auto !important;
  position: relative;
  right: auto;
  transform: none;
}

.element-04.availability-search-only.version-1:first-of-type,
.element-04.availability-search-only.version-2:first-child {
  margin-top: 0 !important;
}

.element-04.availability-search-only.version-2 [id^="check-availability_"] {
  background: unset;
}

.element-04.availability-search-only
  [id^="check-availability_"]
  input[type="submit"] {
  border: 2px solid white;
}

.blur-position-none {
  filter: blur(0px) !important;
  left: 0px !important;
  top: 0px !important;
  width: calc(100% + 0) !important;
  height: calc(100% + 0) !important;
}

.blur-position-low {
  filter: blur(2px) !important;
  left: -2px !important;
  top: -2px !important;
  width: calc(100% + 4px) !important;
  height: calc(100% + 4px) !important;
}

.blur-position-medium {
  filter: blur(5px) !important;
  left: -5px !important;
  top: -5px !important;
  width: calc(100% + 10px) !important;
  height: calc(100% + 10px) !important;
}

.blur-position-high {
  filter: blur(10px) !important;
  left: -10px !important;
  top: -10px !important;
  width: calc(100% + 20px) !important;
  height: calc(100% + 20px) !important;
}

.blur-position-very-high {
  filter: blur(20px) !important;
  left: -20px !important;
  top: -20px !important;
  width: calc(100% + 40px) !important;
  height: calc(100% + 40px) !important;
}

.acf-block-preview .element-04.version-2 .frontpage_slider,
.acf-block-preview .element-04.version-2 [id*="frontpage-single-image_"] {
  height: 50vh;
}

.element-04.version-2.floating-search-true.banner-height-standard
  .frontpage_single_slide_center
  > .wpt-container,
.acfe-flexible-placeholder
  .element-04.version-2.floating-search-true.banner-height-standard
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(100px + var(--headerHeight)) 0 180px 0;
}

.element-04.version-2.floating-search-true.banner-height-short
  .frontpage_single_slide_center
  > .wpt-container,
.acfe-flexible-placeholder
  .element-04.version-2.floating-search-true.banner-height-short
  .frontpage_single_slide_center
  > .wpt-container {
  padding: calc(40px + var(--headerHeight)) 0 120px 0;
}

@media only screen and (min-width: 497px) {
  .element-04.version-2.floating-search-true.banner-height-short
    .frontpage_single_slide_center
    > .wpt-container,
  .acfe-flexible-placeholder
    .element-04.version-2.floating-search-true.banner-height-short
    .frontpage_single_slide_center
    > .wpt-container {
    padding: calc(40px + var(--headerHeight)) 0 80px 0;
  }
}

.element-04.version-2.floating-search-true
  .frontpage_single_slide_center
  section[id^="check-availability_"] {
  background: unset !important;
  display: unset;
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
}

@media only screen and (max-width: 450px) {
  .element-04.version-2.floating-search-true
    .frontpage_single_slide_center
    section[id^="check-availability_"] {
    position: relative;
  }
  .element-04.version-2.floating-search-true
    [id^="check-availability_"]
    .wpt-row
    > div {
    width: 100% !important;
  }
}

.element-04.version-2.floating-search-true
  .frontpage_slider
  [id^="check-availability_"]
  .wpt-row
  > div {
  width: unset;
}

.element-04.version-2 .hero {
  color: #fff;
  line-height: 1;
  margin-bottom: 0;
  margin-top: 0;
  text-transform: none;
}

.element-04.version-2 .sub-hero {
  color: #fff;
  font-weight: 400;
  line-height: 1;
  margin-bottom: 15px;
}

.element-04.version-2 .hero {
  font-size: 3em;
}
.element-04.version-2 .sub-hero {
  font-size: 1.2em;
}

.element-04.version-2.content-align-middle :is(.hero, .sub-hero) {
  text-align: center;
}

@media only screen and (min-width: 501px) {
  .element-04.version-2 .hero {
    font-size: 4em;
  }

  .element-04.version-2 .sub-hero {
    font-size: 2em;
  }
}

@media only screen and (min-width: 992px) {
  /* align right */
  .element-04.version-2.content-align-right {
    align-items: flex-end;
  }

  .element-04.version-2.content-align-right
    :is(.hero, .sub-hero, .h1, .h2, .h3, .h4) {
    text-align: right;
  }

  .element-04.version-2.content-align-left {
    align-items: flex-start;
  }

  .element-04.version-2.content-align-left
    :is(.hero, .sub-hero, .h1, .h2, .h3, .h4) {
    text-align: left;
  }
}

.element-04.version-2.uppercase-heading .intro-text--hero,
.element-04.version-2.uppercase-sub-heading .intro-text--sub-hero {
  text-transform: uppercase;
}

.element-04.version-2.swap-heading-position .intro-text--hero {
  margin-bottom: 15px;
}

.element-04.version-2.swap-heading-position .intro-text--sub-hero {
  margin-bottom: 0;
}

/* Scroll hint */
.element-04.version-2 [id^="frontpage-single-image_"] {
  position: relative;
}

.element-04 .scroll-hint {
  position: absolute;
  bottom: 2rem;
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.5rem;
  animation: bounceDown 2s infinite;
  pointer-events: none;
}

.element-04 .scroll-hint span {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: rgba(255, 255, 255, 0.5);
  font-weight: 500;
}

.element-04 .scroll-hint svg {
  width: 20px;
  height: 20px;
  stroke: rgba(255, 255, 255, 0.5);
}

@keyframes bounceDown {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(8px);
  }
}

@media (prefers-reduced-motion: reduce) {
  .element-04 .scroll-hint {
    animation: none;
  }
}
