
/* Maritoni fix: keep text above decorative/background layers */
.qodef-page-title { overflow: hidden; }
.qodef-page-title .qodef-m-content, .qodef-page-title .qodef-m-title { position: relative; z-index: 6; }
.qodef-m-content, .elementor-widget-heading, .qodef-e-content { position: relative; z-index: 3; }
.qodef-m-background, .qodef-e-media-image ~ .qodef-m-background, span.qodef-m-background { z-index: 0 !important; }
.elementor-widget-image img.qodef-e-parallax-item, .qodef-e-parallax { z-index: 1; }

/* Amenities section above the room-section mint background */
section.elementor-section:has(.qodef-amenity-item) { position: relative; z-index: 5; }
.qodef-e.qodef-amenity-item { position: relative; z-index: 5; }
/* Social icons: white glyph on primary-color circle, no hover effect */
.wp-block-social-links .wp-social-link,
.wp-block-social-links .wp-social-link a { background-color: var(--primary-color) !important; }
.wp-block-social-links .wp-social-link svg,
.wp-block-social-links .wp-social-link svg path { fill: #fff !important; color: #fff !important; }
.wp-block-social-links .wp-social-link:hover,
.wp-block-social-links .wp-social-link a:hover { background-color: var(--primary-color) !important; }
.wp-block-social-links .wp-social-link a:hover { transform: none !important; opacity: 1 !important; box-shadow: none !important; }
.wp-block-social-links .wp-social-link:hover { transform: none !important; }
@media (max-width: 1024px) {
  /* modest gap between room section and the next section */
  section.elementor-section:has(.qodef-m-accordion) { margin-bottom: 40px; }
  /* hide the right-side (second) room image on mobile */
  .qodef-e-additional-image { display: none !important; }
  /* one image only: the ACTIVE room's left image — static, centered, full width, below the content */
  .qodef-m-other { display: block !important; position: static !important; transform: none !important; width: 100% !important; height: auto !important; }
  .qodef-e-image-price { display: none !important; }
  .qodef-e-image-price.qodef--show { display: block !important; position: static !important; transform: none !important; float: none !important; width: 100% !important; margin: 24px auto 0 !important; text-align: center; }
  .qodef-e-image-price.qodef--show .qodef-e-media-image { display: block !important; transform: none !important; width: 100% !important; }
  .qodef-e-image-price.qodef--show .qodef-e-media-image a { display: block !important; width: 100% !important; }
  .qodef-e-image-price.qodef--show img { width: 100% !important; height: auto !important; }
  /* hide footer Links column on mobile */
  footer [data-area="footer_top_area_column_2"] { display: none !important; }
  /* bigger social icons on mobile */
  .wp-block-social-links .wp-social-link svg { width: 30px; height: 30px; }
  .wp-block-social-links .wp-social-link a { padding: 8px; }
}

/* Amenities heading section above the welcome section's decorative imagery */
.elementor-element-6bd30ab { position: relative; z-index: 6; }
/* Wide screens: contain the welcome section so its side images/backgrounds don't drift into Amenities */
@media (min-width: 1700px) {
  .elementor-element-5db488d, .elementor-element-3afa020 { padding-left: 10% !important; padding-right: 10% !important; }
  .elementor-element-6bd30ab { margin-top: 100px !important; }
}

/* Consistent breathing room between inner-page content, header, and footer. */
body.page:not(.home) .qodef-page-title {
  height: 500px !important;
}
body.page:not(.home) #qodef-page-inner {
  padding-top: 100px !important;
  padding-bottom: 100px !important;
}
body.page:not(.home) #qodef-page-inner .elementor > .elementor-section:first-child {
  margin-top: 0 !important;
  padding-top: 0 !important;
}
body.page:not(.home) main.qodef-page-content:not(#qodef-page-content) {
  padding-top: 100px;
  padding-bottom: 100px;
}
body.single-room #qodef-page-inner {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}
body.single-room .qodef-room.qodef-item-layout--standard .qodef-m-top-section {
  height: 500px;
  margin-bottom: 100px;
}
body.single-room #qodef-room-related-items {
  margin-bottom: 100px;
}

/* Hero titles stay legible over every banner image. */
.qodef-page-title .qodef-m-title,
.qodef-room .qodef-m-top-section .qodef-e-title {
  color: #fff !important;
  text-shadow: 0 2px 8px rgba(0, 0, 0, .38);
}

/* Keep prominent body headings tied to the editable site primary color. */
#qodef-page-inner h1,
#qodef-page-inner h2,
#qodef-page-inner h3,
#qodef-page-inner h4 {
  color: var(--primary-color, #0b6354) !important;
}

/* Every hero image uses a centered, edge-to-edge crop. The custom property is
   updated on scroll to create the subtle parallax movement. */
.qodef-page-title,
.qodef-room .qodef-m-top-section .qodef-m-image-background {
  background-position: center calc(50% + var(--mar-hero-shift, 0px)) !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  will-change: background-position;
}

/* The room title is inside #qodef-page-inner, so retain the white hero treatment. */
#qodef-page-inner .qodef-room .qodef-m-top-section .qodef-e-title {
  color: #fff !important;
}

/* Slider Revolution creates rs-sbg-px at runtime. This pseudo-layer darkens
   only the homepage hero photography, leaving all text and controls untouched. */
body.home #rev_slider_12_1_wrapper rs-sbg-px::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: rgba(0, 0, 0, .30);
  content: "";
  pointer-events: none;
}

/* Match the homepage treatment on every standard page and room hero. */
body:not(.home) .qodef-page-title {
  position: relative;
}
body:not(.home) .qodef-page-title::before,
.qodef-room .qodef-m-top-section .qodef-m-image::after {
  position: absolute;
  z-index: 2;
  inset: 0;
  background: rgba(0, 0, 0, .30);
  content: "";
  pointer-events: none;
}
body.home #rev_slider_12_1_wrapper rs-sbg-wrap {
  transform: translate3d(0, var(--mar-home-hero-shift, 0px), 0) scale(1.12) !important;
  transform-origin: center center;
  will-change: transform;
}
body.home #rev_slider_12_1_wrapper rs-sbg,
body.home #rev_slider_12_1_wrapper rs-sbg canvas,
body.home #rev_slider_12_1_wrapper rs-sbg img {
  object-position: center center !important;
}

@media (prefers-reduced-motion: reduce) {
  .qodef-page-title,
  .qodef-room .qodef-m-top-section .qodef-m-image-background {
    background-position: center center !important;
    will-change: auto;
  }
  body.home #rev_slider_12_1_wrapper rs-sbg-wrap {
    transform: scale(1.12) !important;
    will-change: auto;
  }
}

/* Contact heading belongs to the information column and centers with its content. */
.elementor-3477 .mar-contact-info-column > .elementor-widget-wrap {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-content: center;
}
.elementor-3477 .mar-contact-heading {
  margin-bottom: 36px;
}

/* Accommodations cards: fixed landscape crop at every responsive size. */
.elementor-11592 .qodef-room-list-item .qodef-e-media-image,
.elementor-11592 .qodef-room-list-item .qodef-e-media-image > a {
  display: block;
  width: 100%;
  height: 500px;
  overflow: hidden;
}
.elementor-11592 .qodef-room-list-item .qodef-e-media-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

/* Single-room gallery controls and spacing. */
#qodef-room-gallery-slider {
  margin-bottom: 50px;
}
.mar-room-slider {
  position: relative;
  overflow: hidden;
}
.mar-room-slider .swiper-slide,
.mar-room-slider .mar-room-pop {
  display: block;
  height: 568px;
}
.mar-room-slider img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.mar-room-slider .swiper-button-prev,
.mar-room-slider .swiper-button-next {
  color: #fff;
  filter: drop-shadow(0 1px 3px rgba(0, 0, 0, .65));
}
.mar-room-slider .swiper-pagination {
  bottom: 15px;
}
.mar-room-slider .swiper-pagination-bullet {
  width: 10px;
  height: 10px;
  background: #fff;
  opacity: .55;
}
.mar-room-slider .swiper-pagination-bullet-active {
  opacity: 1;
}

/* Related-room images use one consistent crop on desktop and mobile. */
#qodef-room-related-items .qodef-e-media-image,
#qodef-room-related-items .qodef-e-media-image > a {
  display: block;
  width: 100%;
  height: 300px;
  overflow: hidden;
}
#qodef-room-related-items .qodef-e-media-image img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

@media (max-width: 767px) {
  .elementor-11592 .qodef-room-list-item .qodef-e-media-image,
  .elementor-11592 .qodef-room-list-item .qodef-e-media-image > a {
    height: 300px;
  }
}

/* Footer alignment: logo, links, and social columns. */
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(1),
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(2),
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(4) {
  text-align: center;
}
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(1) img {
  margin-right: auto !important;
  margin-left: auto !important;
}
#qodef-page-footer-top-area .qodef-grid-inner > .qodef-grid-item:nth-child(4) .wp-block-social-links {
  justify-content: center;
}

/* Mobile header refinements without changing its 90px height. */
@media (max-width: 1024px) {
  #qodef-page-mobile-header .qodef-mobile-header-logo-link {
    height: 35px !important;
    max-width: calc(100% - 70px);
  }
  #qodef-page-mobile-header .qodef-mobile-header-logo-link img {
    width: auto;
    max-width: 100%;
    height: 35px;
    object-fit: contain;
  }
  .qodef-mobile-header-opener {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    font-size: 0;
  }
  .mar-mobile-menu-icon,
  .mar-mobile-close-icon {
    position: relative;
    display: block;
    width: 34px;
    height: 26px;
  }
  .mar-mobile-menu-icon span {
    position: absolute;
    left: 0;
    display: block;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background-color: #0b6354;
  }
  .mar-mobile-menu-icon span:nth-child(1) { top: 1px; }
  .mar-mobile-menu-icon span:nth-child(2) { top: 11px; }
  .mar-mobile-menu-icon span:nth-child(3) { top: 21px; }
  .mar-mobile-close-icon {
    height: 34px;
  }
  .mar-mobile-close-icon span {
    position: absolute;
    top: 15px;
    left: 0;
    display: block;
    width: 34px;
    height: 3px;
    border-radius: 2px;
    background-color: #0b6354;
  }
  .mar-mobile-close-icon span:first-child { transform: rotate(45deg); }
  .mar-mobile-close-icon span:last-child { transform: rotate(-45deg); }
  .qodef-mobile-header-opener .qodef--close {
    top: 5px;
    right: 5px;
  }
  .qodef-mobile-header-navigation > ul {
    padding-top: 30px;
    padding-bottom: 12px;
  }
  .qodef-mobile-header-navigation > ul > li {
    margin-top: 14px;
    margin-bottom: 14px;
  }
  .mar-mobile-book-wrap {
    padding-top: 8px;
    padding-bottom: 34px;
  }
  .mar-mobile-book-button {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-width: 170px;
    padding: 15px 30px !important;
    border: 1px solid #0b6354 !important;
    color: #0b6354 !important;
    background: transparent !important;
    font-size: 13px !important;
    font-weight: 500;
    letter-spacing: .15em;
    text-transform: uppercase;
  }
  .mar-mobile-book-button:hover {
    color: #fff !important;
    background: #0b6354 !important;
  }
}

/* Mobile inner-page heroes and headings. */
@media (max-width: 767px) {
  /* Keep the homepage Slider Revolution title within narrow screens. */
  body.home #rev_slider_12_1 rs-layer[id$="-layer-1"] {
    width: calc(100vw - 60px) !important;
    max-width: calc(100vw - 60px) !important;
    font-size: 50px !important;
    line-height: 50px !important;
    white-space: normal !important;
    overflow-wrap: break-word;
  }

  /* Constrain the homepage hero description to the same mobile text gutter. */
  body.home #rev_slider_12_1 rs-layer[id$="-layer-2"] {
    box-sizing: border-box !important;
    width: calc(100vw - 128px) !important;
    max-width: calc(100vw - 128px) !important;
    white-space: normal !important;
    overflow-wrap: break-word;
  }

  body.page:not(.home) .qodef-page-title,
  body:not(.home):not(.page) .qodef-page-title,
  body.single-room .qodef-room.qodef-item-layout--standard .qodef-m-top-section {
    height: 200px !important;
  }
  body:not(.home) .qodef-page-title .qodef-m-content {
    align-items: center;
    text-align: center;
  }
  body.page:not(.home) .qodef-page-title .qodef-m-title {
    max-width: 100%;
    font-size: 44px !important;
    line-height: 1.05 !important;
    white-space: normal !important;
    overflow-wrap: break-word;
  }
  body.single-room .qodef-room .qodef-m-top-section .qodef-e-title {
    box-sizing: border-box;
    width: 100%;
    padding-right: 30px;
    padding-left: 30px;
    text-align: center;
  }
  body.page:not(.home) .qodef-section-title h1.qodef-m-title,
  body.page:not(.home) .elementor h1.qodef-m-title {
    max-width: 100%;
    font-size: 42px !important;
    line-height: 1.1 !important;
    white-space: normal !important;
    overflow-wrap: break-word;
  }

  /* Contact content and map retain a consistent gutter on small screens. */
  .elementor-3477 {
    box-sizing: border-box;
    padding-right: 30px;
    padding-left: 30px;
  }

  /* The CTA stacks on mobile, so center its button explicitly. */
  body.home .elementor-element-24d9500 .qodef-m-inner,
  body.home .elementor-element-24d9500 .qodef-m-button {
    width: 100%;
    text-align: center;
  }
  body.home .elementor-element-24d9500 .qodef-m-content {
    padding-right: 0;
  }

  /* Center every part of the footer contact-information column on mobile. */
  #qodef-page-footer [data-area="footer_top_area_column_3"] {
    text-align: center !important;
  }
}
