/* Resort one-page structure */
.resort-page {
   background: #f7f4ed;
   color: #25332f;
}

.resort-page .button {
   background: #b7794b;
   border-color: #b7794b;
   color: #ffffff;
}

.resort-page .button:hover,
.resort-page .button:focus {
   background: #2f6f73;
   border-color: #2f6f73;
   color: #ffffff;
}

.resort-header .menu-list-items {
   background: rgba(20, 34, 32, 0.35);
}

.resort-header .mega-menu .menu-links > li.active > a,
.resort-header .mega-menu .menu-links > li:hover > a {
   background: #b7794b;
   color: #ffffff !important;
}

.resort-header .mega-menu .menu-logo > li > a.resort-logo {
   align-items: center;
   display: flex;
   float: left;
   line-height: 1;
   padding: 8px 0;
   width: auto;
}

.resort-header .mega-menu .menu-logo > li > a.resort-logo:hover,
.resort-header .mega-menu .menu-logo > li > a.resort-logo:focus {
   background: transparent;
}

.resort-header .mega-menu .menu-logo > li > a.resort-logo img {
   bottom: auto;
   display: block;
   float: none;
   height: 72px;
   left: auto;
   margin: 0;
   max-width: none !important;
   object-fit: contain;
   position: static;
   top: auto;
   width: auto;
}

.resort-logo {
   display: flex;
   padding: 8px 0;
}

.resort-logo:hover,
.resort-logo:focus {
   background: transparent;
}

.resort-logo img {
   display: block;
   height: 72px;
   object-fit: contain;
   width: auto;
}

.resort-hero {
   background-position: center top;
   background-size: cover;
   min-height: 78vh;
   overflow: hidden;
   padding: 160px 0 85px;
   position: relative;
}

.resort-hero-overlay {
   background: linear-gradient(90deg, rgba(12, 27, 28, 0.82) 0%, rgba(12, 27, 28, 0.48) 45%, rgba(12, 27, 28, 0.18) 100%);
   bottom: 0;
   left: 0;
   position: absolute;
   right: 0;
   top: 0;
}

.resort-hero .container {
   position: relative;
   z-index: 1;
}

.resort-hero-copy {
   color: #ffffff;
   max-width: 840px;
}

.resort-kicker {
   color: #d8b083;
   display: block;
   font-size: 13px;
   font-weight: 700;
   letter-spacing: 2px;
   margin-bottom: 18px;
   text-transform: uppercase;
}

.resort-hero h1 {
   color: #ffffff;
   font-size: 82px;
   font-weight: 700;
   line-height: 1.04;
   margin-bottom: 24px;
}

.resort-hero p {
   color: rgba(255, 255, 255, 0.9);
   font-size: 22px;
   line-height: 1.6;
   margin-bottom: 34px;
   max-width: 820px;
}

.resort-actions {
   align-items: center;
   display: flex;
   flex-wrap: wrap;
   gap: 22px;
}

.resort-actions .button {
   font-size: 16px;
   padding: 15px 32px;
}

.resort-text-link {
   color: #ffffff;
   font-weight: 700;
   font-size: 16px;
}

.resort-text-link:hover,
.resort-text-link:focus {
   color: #d8b083;
}

.resort-intro {
   background: #f7f4ed;
}

.resort-intro .heading-title {
   margin-bottom: 0;
}

.resort-gallery-preview {
   background: #ffffff;
}

.resort-gallery-preview .heading-title {
   margin-bottom: 26px;
}

.resort-gallery-preview .title {
   font-size: 34px;
   line-height: 1.25;
}

.resort-gallery-frame {
   aspect-ratio: 2 / 3;
   background: #f7f4ed;
   border: 1px solid rgba(47, 111, 115, 0.18);
   min-height: 220px;
   overflow: hidden;
   position: relative;
   width: 100%;
}

.resort-gallery-frame span {
   background: rgba(19, 36, 38, 0.78);
   color: #ffffff;
   display: block;
   font-family: Raleway, sans-serif;
   font-size: 26px;
   font-weight: 700;
   left: 0;
   line-height: 1.25;
   padding: 18px 16px;
   position: absolute;
   right: 0;
   text-align: center;
   top: 0;
   z-index: 1;
}

.resort-gallery-frame img {
   display: block;
   height: 100%;
   object-fit: cover;
   width: 100%;
}

.resort-gallery-book {
   bottom: 18px;
   font-size: 24px;
   left: 50%;
   line-height: 1.1;
   min-width: 220px;
   padding: 8px 42px;
   position: absolute;
   transform: translateX(-50%);
   white-space: nowrap;
   z-index: 1;
}

.resort-reviews {
   background: #edf3ef;
}

.resort-reviews .heading-title {
   margin-bottom: 26px;
}

.resort-review-card {
   background: #ffffff;
   border: 1px solid rgba(47, 111, 115, 0.16);
   height: 100%;
   min-height: 230px;
   padding: 30px;
   position: relative;
   width: 100%;
}

.resort-review-card strong {
   color: #25332f;
   display: block;
   font-family: Raleway, sans-serif;
   font-size: 22px;
   margin-bottom: 16px;
}

.resort-review-author {
   align-items: center;
   display: flex;
   gap: 12px;
   margin-bottom: 16px;
}

.resort-review-author img {
   border-radius: 50%;
   display: block;
   height: 42px;
   object-fit: cover;
   width: 42px;
}

.resort-review-author strong {
   margin-bottom: 0;
}

.resort-review-card p {
   color: #5d6864;
   font-size: 15px;
   line-height: 1.7;
   margin-bottom: 14px;
}

.resort-review-card p:last-child {
   margin-bottom: 0;
}

.resort-review-toggle {
   display: none;
}

.resort-review-read-more {
   color: #b7794b;
   display: inline-block;
   cursor: pointer;
   font-size: 13px;
   font-weight: 700;
   margin-top: 10px;
}

.resort-review-read-more:hover,
.resort-review-read-more:focus {
   color: #2f6f73;
}

.resort-review-popup {
   background: #ffffff;
   border: 1px solid rgba(47, 111, 115, 0.2);
   box-shadow: 0 20px 45px rgba(32, 43, 39, 0.18);
   display: none;
   left: 50%;
   max-height: 430px;
   overflow-y: auto;
   padding: 28px;
   position: absolute;
   top: 50%;
   transform: translate(-50%, -50%);
   width: min(520px, 92vw);
   z-index: 5;
}

.resort-review-toggle:checked ~ .resort-review-popup {
   display: block;
}

.resort-review-close {
   color: #b7794b;
   cursor: pointer;
   display: inline-block;
   font-size: 13px;
   font-weight: 700;
   margin-top: 18px;
}

.resort-review-close:hover,
.resort-review-close:focus {
   color: #2f6f73;
}

.resort-reviews-more {
   margin-top: 22px;
}

.resort-section-heading {
   background: #ffffff;
   padding-bottom: 55px;
   padding-top: 70px;
}

.resort-section-heading .heading-title {
   margin-bottom: 0;
}

.resort-stats {
   background: #ffffff;
   border-left: 4px solid #2f6f73;
   box-shadow: 0 20px 45px rgba(32, 43, 39, 0.08);
   padding: 30px 18px;
}

.resort-stats strong {
   color: #2f6f73;
   display: block;
   font-family: Raleway, sans-serif;
   font-size: 48px;
   line-height: 1;
   margin-bottom: 10px;
}

.resort-stats span {
   color: #5d6864;
   display: block;
   font-weight: 700;
}

.resort-split .container-fluid {
   padding-left: 0;
   padding-right: 0;
}

.resort-image-panel {
   background-position: center center;
   background-size: cover;
   min-height: 620px;
}

.resort-copy-panel {
   background: #ffffff;
   display: flex;
   flex-direction: column;
   justify-content: center;
   padding: 90px 9%;
}

.resort-copy-panel h3 {
   color: #25332f;
   font-size: 42px;
   font-weight: 700;
   line-height: 1.18;
   margin-bottom: 22px;
}

.resort-copy-panel p {
   color: #5d6864;
   font-size: 17px;
   line-height: 1.8;
}

.resort-copy-button {
   margin: 0;
}

.resort-visits {
   background: #edf3ef;
}

.resort-visits .heading-title {
   margin-bottom: 30px;
}

.resort-visit-card {
   background: #ffffff;
   border: 1px solid rgba(47, 111, 115, 0.12);
   box-shadow: 0 20px 45px rgba(32, 43, 39, 0.08);
   display: block;
   min-height: 170px;
   overflow: hidden;
}

.resort-visit-card-text {
   align-items: center;
   display: flex;
   min-height: 250px;
}

.resort-visit-image {
   background-position: center;
   background-size: cover;
   display: block;
   min-height: 150px;
}

.resort-visit-body {
   display: block;
   padding: 20px;
}

.resort-visit-body strong {
   color: #25332f;
   display: block;
   font-family: Raleway, sans-serif;
   font-size: 22px;
   line-height: 1.25;
   margin-bottom: 8px;
}

.resort-visit-body span {
   color: #5d6864;
   display: block;
   font-size: 15px;
   line-height: 1.5;
}

.resort-visit-map-link {
   color: #2f6f73;
   display: inline-block;
   font-size: 14px;
   font-weight: 700;
   margin-top: 14px;
}

.resort-visit-map-link:hover,
.resort-visit-map-link:focus {
   color: #b7794b;
}

.resort-visit-body small {
   color: #7c8783;
   display: block;
   font-size: 12px;
   line-height: 1.4;
   margin-top: 12px;
}

.resort-book-section {
   background: #edf3ef;
   padding: 34px 0;
}

.resort-check-list {
   list-style: none;
   margin: 26px 0 0;
   padding: 0;
}

.resort-check-list li {
   color: #25332f;
   font-weight: 700;
   margin-bottom: 13px;
}

.resort-check-list i {
   color: #2f6f73;
   margin-right: 10px;
}

.resort-experiences {
   background: #edf3ef;
}

.resort-feature {
   background: #ffffff;
   border: 1px solid rgba(47, 111, 115, 0.16);
   height: 100%;
   padding: 38px 32px;
}

.resort-feature i {
   color: #b7794b;
   display: block;
   font-size: 44px;
   margin-bottom: 20px;
}

.resort-feature h5 {
   color: #25332f;
   font-weight: 700;
   margin-bottom: 12px;
}

.resort-feature p {
   color: #65716d;
   margin-bottom: 0;
}

.resort-dark-panel {
   background: #152b2d;
}

.resort-dark-panel h3,
.resort-dark-panel p {
   color: #ffffff;
}

.resort-dark-panel p {
   color: rgba(255, 255, 255, 0.78);
}

.resort-reserve {
   background: #f7f4ed;
}

.resort-map-section {
   background: #f7f4ed;
   position: relative;
}

.resort-map-section iframe {
   border: 0;
   display: block;
   height: 560px;
   width: 100%;
}

.resort-map-link {
   background: #b7794b;
   bottom: 24px;
   color: #ffffff;
   font-weight: 700;
   left: 50%;
   padding: 12px 26px;
   position: absolute;
   transform: translateX(-50%);
   white-space: nowrap;
}

.resort-map-link:hover,
.resort-map-link:focus {
   background: #2f6f73;
   color: #ffffff;
}

.resort-contact-list {
   display: grid;
   gap: 12px;
   margin-top: 24px;
}

.resort-contact-list span {
   color: #25332f;
   font-weight: 700;
}

.resort-contact-list i {
   color: #2f6f73;
   font-size: 22px;
   margin-right: 10px;
   vertical-align: middle;
}

.resort-form {
   background: #ffffff;
   box-shadow: 0 20px 45px rgba(32, 43, 39, 0.08);
   padding: 34px;
}

.resort-form input,
.resort-form textarea {
   background: #f7f4ed;
   border: 1px solid rgba(37, 51, 47, 0.12);
   color: #25332f;
   margin-bottom: 18px;
   padding: 14px 16px;
   width: 100%;
}

.resort-form textarea {
   resize: vertical;
}

.resort-footer {
   background: #132426;
   color: #ffffff;
   padding: 28px 0;
}

.resort-footer strong,
.resort-footer span {
   display: block;
}

.resort-footer span,
.resort-footer a {
   color: rgba(255, 255, 255, 0.72);
}

.resort-footer-actions,
.resort-social-links {
   align-items: center;
   display: flex;
   gap: 16px;
   justify-content: flex-end;
}

.resort-footer-actions {
   gap: 22px;
}

.resort-social-links a {
   align-items: center;
   display: inline-flex;
   font-size: 22px;
   height: 32px;
   justify-content: center;
   line-height: 1;
   width: 32px;
}

.resort-social-links svg {
   fill: currentColor;
   height: 22px;
   width: 22px;
}

.resort-footer a:hover,
.resort-footer a:focus {
   color: #d8b083;
}

@media (max-width: 991px) {
   .resort-hero {
      min-height: 650px;
      padding: 145px 0 70px;
   }

   .resort-hero h1 {
      font-size: 60px;
   }

   .resort-image-panel {
      min-height: 460px;
   }

   .resort-copy-panel {
      padding: 70px 40px;
   }

   .resort-split-reverse .row {
      flex-direction: column-reverse;
   }
}

@media (max-width: 767px) {
   .resort-logo {
      padding: 10px 0;
   }

   .resort-header .mega-menu .menu-logo > li > a.resort-logo img,
   .resort-logo img {
      height: 56px;
   }

   .resort-hero {
      min-height: 560px;
      padding: 125px 0 55px;
   }

   .resort-hero h1 {
      font-size: 44px;
   }

   .resort-hero p {
      font-size: 19px;
   }

   .resort-stats {
      margin-top: 20px;
   }

   .resort-stats .col-sm-4 {
      margin-bottom: 24px;
   }

   .resort-stats .col-sm-4:last-child {
      margin-bottom: 0;
   }

   .resort-copy-panel {
      padding: 56px 24px;
   }

   .resort-copy-panel h3 {
      font-size: 32px;
   }

   .resort-form {
      margin-top: 30px;
      padding: 24px;
   }

   .resort-footer-actions,
   .resort-social-links {
      justify-content: flex-start;
   }

   .resort-footer-actions {
      margin-top: 18px;
   }
}
