@charset "UTF-8";
:root {
  --desktop-price-ribbon-half:0;
}

html {
  scroll-padding-top: 9rem;
}

html,
body {
  overflow: initial !important;
}

body {
  position: relative;
}

#vimeo-padding {
  position: relative;
}
#vimeo-padding.desktop {
  padding: 56.25% 0 0 0;
}
#vimeo-padding.mobile {
  padding: 125% 0 0 0;
}

.resort-header {
  position: relative;
}

.dropdown-location {
  font-size: 12px;
}

.handoff-location {
  margin-bottom: 1rem;
  text-align: center;
  font-size: 12px;
}

.btn-primary {
  background-color: var(--resort-primary-color, #0d6b55);
  border-color: var(--resort-primary-color, #0d6b55);
}
.btn-primary:hover, .btn-primary:focus, .btn-primary:active {
  background-color: var(--resort-primary-color-dark, #0d6b55);
  border-color: var(--resort-primary-color-dark, #0d6b55);
}

.btn-white {
  color: var(--resort-primary-color, #0d6b55);
  border-width: 2px;
}
.btn-white:hover, .btn-white:focus, .btn-white:active {
  background-color: var(--resort-primary-color, #0d6b55);
  border-color: #fff;
  color: #fff;
}

.btn-primary-light {
  background-color: var(--resort-primary-color-alt, #0d6b55);
  border-color: var(--resort-primary-color-alt, #0d6b55);
}
.btn-primary-light:hover, .btn-primary-light:focus, .btn-primary-light:active {
  background-color: var(--resort-primary-color-alt-dark, #0d6b55);
  border-color: var(--resort-primary-color-alt-dark, #0d6b55);
}

.bg-resort-primary {
  background-color: var(--resort-primary-color, #0d6b55);
}

.bg-resort-primary-alt {
  background-color: var(--resort-primary-color-alt, #0d6b55);
}

.bg-resort-primary-dark {
  background-color: var(--resort-primary-color-dark, #0d6b55);
}

.btn-tan {
  background-color: #f7f3f0;
  color: #000 !important;
  border-color: #000;
  border-width: 2px;
}
.btn-tan:hover, .btn-tan:focus, .btn-tan:active {
  color: #f7f3f0 !important;
  background-color: #000;
}

html body.view-resort #main-header {
  background-color: var(--resort-primary-color, #0d6b55) !important;
}

.amenities-list,
.activities-list {
  list-style: none;
  padding: 0;
  margin: 1rem 0;
  display: flex;
  flex-wrap: wrap;
}
.amenities-list li,
.activities-list li {
  width: 100%;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .amenities-list li,
  .activities-list li {
    width: 50%;
    display: flex;
  }
}
.amenities-list li img,
.activities-list li img {
  margin-right: 1rem;
}
.amenities-list + .view-all,
.amenities-list + .view-less,
.activities-list + .view-all,
.activities-list + .view-less {
  color: #0d6b55;
  cursor: pointer;
  font-weight: bold;
}
.amenities-list + .view-all:hover, .amenities-list + .view-all:focus,
.amenities-list + .view-less:hover,
.amenities-list + .view-less:focus,
.activities-list + .view-all:hover,
.activities-list + .view-all:focus,
.activities-list + .view-less:hover,
.activities-list + .view-less:focus {
  text-decoration: underline;
}

.activities-list li:before {
  content: "•";
  margin-right: 0.5em;
}

main a {
  color: var(--resort-primary-color, #0d6b55);
}
main .nav-link {
  color: #000;
}
main .nav-link:active {
  color: var(--resort-primary-color, #0d6b55);
}
main .nav-link:hover, main .nav-link:focus {
  color: #000;
}
main .amenities-list + .view-all .amenities-list + .view-less,
main .activities-list + .view-all,
main .activities-list + .view-less,
main .events-list + .view-all,
main .events-list + .view-less,
main #cottage-toggle {
  color: #ff861b;
}

h2 {
  margin-bottom: 0.5em;
}

.onlinecheckin {
  font-weight: bold;
  color: var(--resort-primary-color, #0d6b55);
  font-size: 20px;
  font-size: clamp(19px, 3vw, 20px);
}
.onlinecheckin a {
  text-transform: uppercase;
  color: var(--resort-primary-color-alt, #2c9b81);
}

@media (min-width: 768px) {
  .mobile-header {
    display: none;
  }
}

.btn.rates-first {
  padding: 0.625em 0.75em !important;
  font-size: 20px !important;
  line-height: 1.3 !important;
}

.mobile-booknow {
  background-color: #f6f4f0;
  text-align: center;
  padding-bottom: 1px;
}
@media (min-width: 768px) {
  .mobile-booknow {
    display: none;
  }
}
.mobile-booknow #mobileBooknowButton {
  margin: -1.25rem auto 1.25rem;
  width: 100%;
  position: relative;
  font-size: 28px;
}
.mobile-booknow #mobileBooknowButton .price-banner.mobile {
  height: 44px;
  background-color: var(--resort-primary-color, #0d6b55);
  display: flex;
  font-size: 13px;
  justify-content: center;
  align-items: center;
  line-height: 1;
  padding: 0 0.5rem;
  margin-top: -1rem;
  transform: translateY(1.3rem);
  position: relative;
  z-index: 1;
  width: fit-content;
  margin-inline: auto;
}
.mobile-booknow #mobileBooknowButton .price-banner.mobile big {
  font-size: 26px;
}
.mobile-booknow #mobileBooknowButton .price-banner.mobile:before, .mobile-booknow #mobileBooknowButton .price-banner.mobile:after {
  position: absolute;
  content: "";
  display: block;
  border: 22px solid var(--resort-primary-color, #0d6b55);
  z-index: -1;
}
.mobile-booknow #mobileBooknowButton .price-banner.mobile:before {
  border-left: 22px solid transparent;
  left: -22px;
}
.mobile-booknow #mobileBooknowButton .price-banner.mobile:after {
  border-right: 22px solid transparent;
  right: -22px;
}

@media (min-width: 768px) {
  .desktop-header {
    display: block;
    position: relative;
    height: 570px;
    overflow: hidden;
  }
  .desktop-header:before {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0) 100%);
    height: 50%;
    content: "";
    z-index: 1;
    pointer-events: none;
  }
}
.desktop-header .desktop-hero {
  position: absolute;
  object-fit: cover;
  object-position: center;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}

@media (max-width: 767.98px) {
  .resort-header-text {
    background-color: var(--resort-primary-color);
    color: #fff;
  }
}
@media (max-width: 767.98px) {
  .resort-header:not(.has-video) .resort-photo-btn-container {
    display: none;
  }
}

@media (min-width: 768px) {
  .photos-nav-link {
    display: none;
  }
}

@media (min-width: 768px) {
  .resort-header .resort-header-text {
    position: absolute;
    top: 1rem;
    left: 0;
    right: 0;
    color: #fff;
    z-index: 5;
  }
}

.resort-header h1 {
  font-weight: bold;
  line-height: 1;
}
.resort-header span a {
  color: inherit;
  text-decoration: none;
  text-shadow: 1px 1px 5px #000;
}
.resort-header span a:hover, .resort-header span a:focus {
  text-decoration: underline;
}
.resort-header.has-video {
  height: auto !important;
}

@media (max-width: 767.98px) {
  .resort-header .resort-header-text {
    width: 100%;
    max-width: 100%;
    padding: 1rem 0;
  }
  .resort-header h1 {
    margin: 0 !important;
  }
}

.desktop-header.has-video {
  height: auto !important;
}

.resort-photo-btn-container {
  position: absolute;
  bottom: 2.5rem;
  left: 0;
  right: 0;
  z-index: 10;
}
@media (min-width: 768px) {
  .resort-photo-btn-container {
    bottom: 6rem;
  }
}
.resort-photo-btn-container .btn {
  padding-inline: 1em;
}

@media (min-width: 768px) {
  .mobile-booknow {
    display: none;
  }
}

@media (max-width: 767.98px) {
  .booking-widget-container {
    position: relative;
  }
}

.desktop-booking:not(.has-video) {
  display: none;
  z-index: 10 !important;
  background: #f6f4ef;
}
@media (min-width: 768px) {
  .desktop-booking:not(.has-video) {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: block !important;
    transition: all 100ms ease;
    bottom: 60%;
    top: auto;
    background: transparent;
  }
}
@media (max-width: 991.98px) {
  .desktop-booking:not(.has-video) > .container {
    max-width: 100%;
  }
}

.desktop-booking.has-video {
  display: none;
}
@media (min-width: 768px) {
  .desktop-booking.has-video {
    display: block !important;
  }
}

.sentinel {
  height: 0rem;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
}

.resort-subhead {
  background-color: #f6f4f0;
  position: sticky;
  top: 58px;
  z-index: 50;
}
.resort-subhead.is-sticky .desktop-booking {
  position: relative;
  background: #fff;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
}
@media (max-width: 767.98px) {
  .resort-subhead.is-sticky #mobileBooknowButton {
    margin-top: 10px;
    font-size: 20px;
  }
  .resort-subhead.is-sticky #mobileBooknowButton big {
    font-size: 20px !important;
  }
}
.resort-subhead.is-sticky .module-resort-search {
  border-radius: 0;
  box-shadow: none;
}
.resort-subhead.is-sticky .resort-nav-wrap {
  padding-top: 0;
}
.resort-subhead.is-sticky .resort-nav a {
  padding: 0.5em;
}
.resort-subhead.is-sticky .price-banner.desktop:after {
  border-bottom-width: 10px;
}
.resort-subhead:not(.is-sticky) .module-resort-search {
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  body.has-video .resort-subhead {
    top: 157px;
  }
}

#floating-booking-container-sticky-wrapper {
  position: absolute;
  left: 0;
  right: 0;
  top: calc(min(100%, 100vh) - 12rem);
  display: block;
  transition: all 200ms ease;
  background: transparent;
  z-index: 20;
}
#floating-booking-container-sticky-wrapper #floating-booking-container {
  transition: all 200ms ease;
}
#floating-booking-container-sticky-wrapper.is-sticky #floating-booking-container {
  background-color: #fff;
}
#floating-booking-container-sticky-wrapper.is-sticky .module-resort-search {
  box-shadow: none;
}

.module-resort-search .btn {
  padding: 1rem 1rem 0.5rem;
  line-height: 1.5;
}
.module-resort-search .borders {
  position: relative;
}
.module-resort-search .borders:before, .module-resort-search .borders:after {
  position: absolute;
  content: "";
  top: -1rem;
  bottom: -1rem;
  width: 1px;
  background-color: #dfdfdf;
}
.module-resort-search .borders:before {
  left: 0;
}
.module-resort-search .borders:after {
  right: 0;
}

.col-rez-button {
  display: flex;
  align-items: center;
}

.module-resort-search .SumoSelect > .CaptionCont {
  border-bottom: none;
  border-radius: 1rem !important;
}

.resort-nav-wrap {
  background-color: #f6f4f0;
  position: relative;
}
@media (min-width: 768px) {
  .resort-nav-wrap {
    padding-top: 3rem;
  }
}
.resort-nav-wrap > .container {
  display: flex;
  justify-content: space-between;
}
@media (max-width: 767.98px) {
  .resort-nav-wrap > .container {
    max-width: 100%;
  }
}

body.has-video .resort-nav-wrap {
  padding-top: 0;
}
@media (min-width: 768px) {
  body.has-video .resort-photo-btn-container {
    bottom: 2rem;
  }
}

.resort-nav {
  display: flex;
  justify-content: space-between;
  overflow: scroll;
  -webkit-overflow-scrolling: touch;
  overflow: -moz-scrollbars-none;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.resort-nav::-webkit-scrollbar {
  display: none;
  height: 0;
  width: 0;
}
@media (min-width: 768px) {
  .resort-nav {
    flex-grow: 1;
    margin-left: 1rem;
  }
}
.resort-nav a {
  display: block;
  text-decoration: none;
  padding: 1.15em 1em;
  position: relative;
  overflow: hidden;
  transition: all 250ms ease;
  width: max-content;
  min-width: max-content;
}
.resort-nav a:after {
  content: "";
  background-color: var(--resort-primary-color, #0d6b55);
  height: 4px;
  position: absolute;
  left: 0;
  right: 0;
  bottom: -6px;
  transition: bottom 150ms ease;
}
.resort-nav a.active {
  font-weight: bold;
}
.resort-nav a.active:after {
  bottom: 0;
}

.price-banner.desktop {
  display: none;
  background-color: var(--resort-primary-color-alt, #2c9b81);
  color: #fff;
  position: relative;
  margin-left: 1.5rem;
  text-align: center;
  padding: 0 10px;
  font-size: 13px;
  align-items: end;
  width: max-content;
}
.price-banner.desktop big {
  font-size: 27px;
  font-family: "rockwell", serif;
}
.price-banner.desktop:before {
  background-color: var(--resort-primary-color-alt, #2c9b81);
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: -1rem;
  bottom: -1rem;
  z-index: 0;
}
.price-banner.desktop:after {
  content: "";
  position: absolute;
  z-index: 0;
  z-index: 2;
  left: 0;
  width: var(--desktop-price-ribbon-width);
  top: calc(100% + 1rem);
  border-left: var(--desktop-price-ribbon-half) solid var(--resort-primary-color-alt, #2c9b81);
  border-right: var(--desktop-price-ribbon-half) solid var(--resort-primary-color-alt, #2c9b81);
  border-bottom: 25px solid transparent;
}
.price-banner.desktop span {
  position: relative;
  z-index: 5;
}
@media (min-width: 768px) {
  .price-banner.desktop {
    display: flex;
  }
}

.resort-overview {
  padding-top: 2rem;
}
@media (min-width: 768px) {
  .resort-overview {
    padding-top: 4rem;
  }
}

.resort-meta {
  display: block;
}
.resort-meta dt, .resort-meta dd {
  display: contents;
}
.resort-meta dd:after {
  content: " ";
  display: block;
}

.resort-carousel {
  overflow: hidden;
}
.resort-carousel .slick-slide > div {
  height: 100%;
}
.resort-carousel .slick-slide img {
  object-fit: cover;
  height: 100%;
}
.resort-carousel .slick-arrow {
  background-color: transparent;
  box-shadow: none;
  opacity: 0.75;
}
.resort-carousel .slick-arrow:before {
  filter: invert(1);
}
.resort-carousel .slick-arrow:hover, .resort-carousel .slick-arrow:focus, .resort-carousel .slick-arrow:active {
  opacity: 1;
}
.resort-carousel .slick-next {
  right: -20px;
}
.resort-carousel .slick-prev {
  left: -20px;
}

.resort-meta {
  display: grid;
  grid-template-columns: 50px auto;
}
.resort-meta .meta-item {
  margin: 0.5em 0;
}

.resort-tour.virtual-tour {
  border-radius: 1rem;
  overflow: hidden;
  display: flex;
  justify-content: center;
  align-items: center;
  height: 220px;
}
.resort-tour.virtual-tour .embed-responsive-item {
  height: 100%;
  width: 100%;
}
@media (max-width: 991.98px) {
  .resort-tour.virtual-tour {
    margin-top: 0.5rem;
    margin-bottom: 0.5rem;
  }
}
@media (min-width: 568px) {
  .resort-tour.virtual-tour {
    height: 350px;
  }
}
@media (min-width: 768px) {
  .resort-tour.virtual-tour {
    height: 400px;
  }
}
.resort-tour.virtual-tour .btn {
  position: absolute;
}

.virtual-tour-img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

#resort-map {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 100%;
}

#resort-map-container {
  position: relative;
}

@media (max-width: 991.98px) {
  .maps-row > div {
    margin-bottom: 3rem;
  }
}

.maps-height {
  height: 400px;
}
@media (min-width: 768px) {
  .maps-height:not(:has(.map-error-fallback)) {
    height: 600px;
  }
}

.mapboxgl-popup {
  max-width: 200px;
}

.mapbox-popup-content h3 {
  font-size: 18px;
  text-wrap: balance;
  margin: 0;
  color: var(--resort-primary-color, #0d6b55);
}
.mapbox-popup-content img {
  max-width: 100%;
  height: auto;
  margin: 10px 0 0 0;
}

canvas.mapboxgl-canvas {
  height: 100% !important;
}

.custom-marker-container {
  display: flex;
  align-items: center;
  pointer-events: none;
}

.custom-marker {
  display: flex;
  align-items: center;
}

.marker-icon {
  width: 40px;
  height: 40px;
}
.marker-icon img {
  display: block;
  width: 100%;
  height: auto;
}

.marker-label {
  font-weight: bold;
  font-size: 14px;
  white-space: nowrap;
  color: #f51923;
  text-shadow: -1px -1px 0px rgba(255, 255, 255, 0.4392156863), 1px -1px 0 rgba(255, 255, 255, 0.4392156863), -1px 1px 0 rgba(255, 255, 255, 0.4392156863), 1px 1px 0 rgba(255, 255, 255, 0.4392156863);
  font-family: "ReadexPro", sans-serif;
}

.resort-pdf-container,
#resort-map-container {
  border: 1px solid #e6e2db;
  border-radius: 1rem;
  overflow: hidden;
}

.resort-pdf-container {
  position: relative;
}
.resort-pdf-container .skeleton-box {
  position: absolute;
  inset: 0;
  height: 100%;
  transition: opacity 0.5s ease-out;
  opacity: 1;
}
.resort-pdf-container .skeleton-box.hide-skeleton {
  opacity: 0;
}

#mapbox-skeleton {
  width: 100%;
  height: 100%;
}

#pdf-canvas-wrapper {
  overflow: auto;
  width: 100%;
  height: 600px;
  position: relative;
  border: 1px solid #ddd;
  background: #f5f5f5;
  touch-action: pan-x pan-y;
}

#pdf-canvas {
  display: block;
}

.resort-pdf-header {
  background-color: #f6f4f0;
  padding: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
@media (min-width: 568px) {
  .resort-pdf-header > * {
    width: 33%;
  }
}
@media (max-width: 567.98px) {
  .resort-pdf-header {
    flex-wrap: wrap;
  }
}
@media (max-width: 567.98px) {
  .resort-pdf-header h3.pdf-header {
    width: 100%;
    margin-bottom: 0.35em;
    text-align: center;
    order: 1;
  }
}

.pdf-zoom-controls {
  display: flex;
  gap: 0.4rem;
  align-items: center;
}
@media (max-width: 567.98px) {
  .pdf-zoom-controls {
    order: 2;
    justify-content: center;
    margin-top: 0.5rem;
    width: 100%;
  }
}

.pdf-download {
  display: flex;
  gap: 0.5rem;
}
.pdf-download a {
  padding: 5px;
  border-radius: 5px;
  text-decoration: none;
}
.pdf-download a:hover {
  color: var(--resort-primary-color-dark);
}
.pdf-download a:hover svg {
  fill: var(--resort-primary-color-dark);
}
.pdf-download a:focus svg {
  fill: var(--resort-primary-color-dark);
}
.pdf-download a:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--resort-primary-color-rgb), 0.5);
}

h3.pdf-header {
  color: var(--resort-primary-color);
  font-size: 24px;
  margin: 0 !important;
}

.btn-zoom {
  background: none;
  position: relative;
  border-radius: 50%;
  width: 27px;
  height: 27px;
  padding: 0;
  border: none;
}
.btn-zoom .label {
  position: absolute;
  left: -500vw;
}
.btn-zoom:hover svg {
  fill: var(--resort-primary-color-dark);
}
.btn-zoom:focus svg {
  fill: var(--resort-primary-color-dark);
}
.btn-zoom:focus {
  box-shadow: 0 0 0 0.25rem rgba(var(--resort-primary-color-rgb), 0.5);
}

#canvas-wrapper {
  max-width: 700px;
  width: 100%;
  overflow: scroll;
  touch-action: pan-x pan-y;
  cursor: grab;
}

#zoom-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  font-weight: bold;
}
#zoom-controls .btn {
  display: flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
}

.section-pad:has(.container:empty) {
  display: none;
}

.section-pad h3 {
  margin-top: 1em;
}
.section-pad.resort-news {
  padding-block: 2rem;
}
.section-pad.resort-news h3 {
  margin-top: 0;
}

.resort-news-item {
  margin-bottom: 1.5rem;
  display: inline-block;
}
.resort-news-item h4 {
  font-family: "ReadexPro", sans-serif;
  color: var(--resort-primary-color, #0d6b55);
  font-size: 20px;
  font-weight: bold;
}
.resort-news-item .resort-news-image {
  width: 100%;
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  .resort-news-item .resort-news-image {
    float: left;
    margin: 0 1.5rem 1rem 0;
    max-width: 300px;
  }
}

.resort-policies {
  overflow: hidden;
}
.resort-policies .policy-area {
  height: 500px;
  min-height: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.15);
  background-color: #fff;
  padding: 1.5rem;
  border-radius: 1rem;
}
.resort-policies .policy-area h4 {
  font-size: 28px;
  font-size: clamp(20px, 3.5vw, 28px);
}
.resort-policies .policy-area p {
  word-break: break-word;
}

.policy-carousel {
  margin-bottom: 1.5rem;
}
@media (min-width: 768px) {
  .policy-carousel {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr 1fr;
    gap: 1.5rem;
    width: 100%;
    height: 100%;
  }
}
.policy-carousel .policy-item {
  border-radius: 1rem;
  background-color: #fff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: start;
  padding: 1.5rem;
  box-shadow: 0 0 24px rgba(0, 0, 0, 0.15);
  text-align: center;
  height: 100%;
}
.policy-carousel .policy-item p {
  margin-bottom: 0.5em;
  line-height: 1.3;
}
.policy-carousel .slick-slide > div {
  padding: 1rem;
  height: 100%;
  display: block;
}
.policy-carousel .slick-slide img {
  display: inline-block;
}

.policy-icon {
  fill: var(--resort-primary-color, #000);
  margin-bottom: 0.5rem;
}

.fill-primary {
  fill: var(--resort-primary-color, #000);
}

.stroke-primary {
  stroke: var(--resort-primary-color, #000);
}

.fill-ttgreen {
  fill: #0d6b55;
}

.amenities-list li span {
  line-height: 1.1;
}

@media (min-width: 992px) {
  .amenities-list .toggle.hide {
    display: flex !important;
  }
  .amenities-list + .list-toggle {
    display: none;
  }
}
.datepicker,
#guestsDropdownContainer .dropdown-button,
.sumo_filter_type .sumo {
  border: none;
}

.resort-logo {
  display: block;
  margin: 0 auto 1.5rem;
  max-width: 15rem;
  height: auto;
}
@media (min-width: 992px) {
  .resort-logo {
    float: left;
    margin: 0 1rem 1rem 0;
  }
}
.resort-logo.white {
  filter: brightness(0) invert(1);
}
.resort-logo.black {
  filter: brightness(0);
}

.resort-policies details {
  border-bottom: 1px solid #dcd9d3;
}
.resort-policies details p {
  margin-bottom: 0.75em;
  line-height: 1.3;
}
.resort-policies details[open] summary:after {
  transform: rotate(180deg);
}
.resort-policies .slick-next.slick-arrow {
  right: -10px;
}
.resort-policies .slick-prev.slick-arrow {
  left: -10px;
}
.resort-policies summary {
  font-size: 18px;
  font-family: "rockwell", serif;
  line-height: 1.25;
  padding: 0.75em 30px 0.75em 0;
  list-style: none;
  position: relative;
}
.resort-policies summary:after {
  content: "";
  width: 22px;
  height: 100%;
  background: url(../images/caret-down.svg) no-repeat 100% 50% transparent;
  background-size: 22px 13px;
  position: absolute;
  top: 0;
  right: 0;
  transition: transform 100ms ease;
}

.gm-style .gm-style-iw-c {
  padding: 0;
  max-height: 999px !important;
}

.gm-style-iw-d {
  max-height: 999px !important;
}

button.gm-ui-hover-effect {
  display: none !important;
}

div#map-canvas div[role=dialog] > div {
  overflow: hidden !important;
}

.infowindow {
  width: 250px;
  padding-bottom: 0.75rem;
  position: relative;
}
.infowindow .card-title {
  font-size: 22px;
  font-family: "rockwell", serif;
  font-weight: bold;
  margin-bottom: 0.25em;
  margin-top: 0.75rem;
}
.infowindow .card-text {
  font-size: 18px;
  font-weight: normal;
}

.close-icon {
  cursor: pointer;
  position: absolute;
  right: 0;
  top: 0;
  color: #fff;
  font-size: 1rem;
  padding: 0.5rem;
}

.module-resort-search .flex-inline {
  width: 100%;
}
.module-resort-search .flex-inline svg {
  margin-right: 0.25rem;
}
.module-resort-search .SumoSelect {
  margin: 0 !important;
}

.SumoSelect.open > .CaptionCont, .SumoSelect:focus > .CaptionCont, .SumoSelect:hover > .CaptionCont {
  border-color: var(--resort-primary-color, #0d6b55);
  box-shadow: 0 0 2px var(--resort-primary-color, #0d6b55);
}

.nearby-resort,
.resort-weather {
  border-radius: 1rem;
  position: relative;
  overflow: hidden;
  height: 265px;
}
@media (min-width: 568px) {
  .nearby-resort,
  .resort-weather {
    height: 320px;
  }
}

.resort-weather.mobile {
  margin-bottom: 1rem;
}
@media (min-width: 568px) {
  .resort-weather.mobile {
    display: none;
  }
}

.resort-boxes {
  overflow: hidden;
}

.resort-box-carousel .slick-slide {
  margin: 0 0.5rem;
}

.nearby-resort {
  text-decoration: none;
}
.nearby-resort .nearby-resort-content {
  display: flex;
  height: 100%;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.5) 25%, rgba(0, 0, 0, 0) 65%);
  flex-direction: column;
  align-items: center;
  justify-content: end;
  padding: 1rem;
  color: #fff;
  min-height: inherit;
}
.nearby-resort .nearby-resort-content .heading {
  text-transform: uppercase;
  text-align: center;
}
.nearby-resort .nearby-title {
  display: flex;
  font-family: "rockwell", serif;
}
.nearby-resort .nearby-title img {
  margin-right: 0.5rem;
  width: 26px;
  height: 25px;
}

.nearby-bg {
  object-fit: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  inset: 0;
  z-index: -1;
}

.weather-container {
  padding: 1rem;
  display: flex;
  flex-direction: column;
  justify-content: space-evenly;
  align-items: center;
  height: 100%;
  color: #fff;
}
.weather-container .title {
  font-size: 20px;
  font-family: "rockwell", serif;
}
.weather-container .weather-info {
  margin: 1.25rem 0;
  font-size: 62px;
  font-size: clamp(48px, 3vw, 62px);
  display: flex;
  align-items: center;
}
.weather-container .weather-info img {
  margin-right: 0.75rem;
}

.weather-bg {
  position: absolute;
  inset: 0;
  z-index: -1;
}
.weather-bg:after {
  position: absolute;
  inset: 0;
  background-color: var(--resort-primary-color, #0d6b55);
  content: "";
  width: 100%;
  height: 100%;
  opacity: 0.8;
}
.weather-bg img {
  object-fit: cover;
  width: 100%;
  height: 100%;
}

.weather-forecast {
  display: flex;
  width: 100%;
  justify-content: space-evenly;
  align-items: center;
}
.weather-forecast .item {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.weather-forecast .item img {
  margin: 5px 0;
}
.weather-forecast .item .day {
  font-size: 18px;
  font-size: clamp(14px, 3vw, 18px);
}
.weather-forecast .item .temp {
  font-size: 28px;
  font-size: clamp(22px, 3vw, 28px);
}

.resort-description:after {
  content: "";
  display: table;
  clear: both;
  visibility: hidden;
}

.resort-type-description {
  background-color: var(--resort-primary-color, #0d6b55);
  color: #fff;
}
.resort-type-description .container {
  display: flex;
  align-items: flex-start;
}
.resort-type-description .logo-encore {
  margin: 0 1rem 0 0;
}

.litepicker .container__days .day-item.is-in-range {
  background-color: var(--resort-primary-color-alt, #0d6b55);
  color: #fff;
}

.litepicker .container__days .day-item.is-start-date,
.litepicker .container__days .day-item.is-end-date {
  background-color: var(--resort-primary-color, #0d6b55);
}

.calendar-container {
  position: relative;
}
.calendar-container .litepicker {
  top: 0 !important;
  left: 0 !important;
}
@media (min-width: 768px) {
  .calendar-container .litepicker {
    top: auto !important;
    bottom: 2.5rem;
  }
}

.bookinghandoff a {
  color: #0d6b55;
}
.bookinghandoff .modal-body .btn {
  width: 100%;
  height: min-content;
  align-self: center;
}
.bookinghandoff .modal-body .btn-ttgreen {
  border: 2px solid #0d6b55;
}
.bookinghandoff .modal-body .btn-ttgreen:hover, .bookinghandoff .modal-body .btn-ttgreen:focus, .bookinghandoff .modal-body .btn-ttgreen:active {
  border: 2px solid #073e31;
}
.bookinghandoff .modal-body .above-button {
  min-height: 225px;
}
.bookinghandoff .modal-header {
  background-color: #0d6b55;
  justify-content: center;
}
.bookinghandoff .modal-header .close-x {
  top: 10px;
  right: 10px;
  border: none;
  background: none;
  box-shadow: none;
  font-size: 22px;
}
.bookinghandoff .modal-content {
  border-radius: 1rem;
  overflow: hidden;
}
.bookinghandoff label {
  font-weight: bold;
}
.bookinghandoff .flex-justify-between {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.bookinghandoff .bh-heading {
  text-decoration: none;
  text-align: center;
  color: #2c9b81;
  font-size: 26px;
  font-size: clamp(24px, 3vw, 26px);
  font-family: "rockwell", serif;
  font-weight: bold;
  margin-bottom: 0.75em;
  display: block;
}
.bookinghandoff .bh-label {
  font-weight: bold;
}
.bookinghandoff h3 {
  color: #0d6b55;
  font-weight: 400;
  font-size: 24px;
  font-size: clamp(20px, 3vw, 24px);
}
.bookinghandoff h3 .bigger {
  font-weight: 600;
  font-size: 120%;
  display: block;
}
.bookinghandoff .subtext {
  color: #0d6b55;
  font-family: "rockwell", serif;
  font-size: 17px;
}
.bookinghandoff .flex-inline {
  display: flex;
  justify-content: space-between;
}
.bookinghandoff .col {
  padding: 0.5rem 2.5rem;
  font-size: 15px;
}
.bookinghandoff .modal-footer {
  background-color: #f6f4f0;
  justify-content: center;
  padding: 1rem 2rem;
  flex-direction: column;
}
.bookinghandoff .label-pin {
  display: flex;
  justify-content: space-between;
}
.bookinghandoff.new .modal-body {
  padding: 0;
}
.bookinghandoff.new div[class*=col] {
  padding: 0.5rem 1.5rem;
}
.bookinghandoff.new .modal-footer .bh-heading {
  margin-bottom: 0;
}
.bookinghandoff.new .modal-footer .btn {
  width: 100%;
}
@media (min-width: 992px) {
  .bookinghandoff.new .modal-footer .btn {
    padding-top: 0.25em;
    padding-bottom: 0.15em;
  }
}
.bookinghandoff.new .tt-login {
  width: 100%;
  display: flex;
  gap: 2rem;
}
@media (max-width: 991.98px) {
  .bookinghandoff.new .tt-login {
    flex-direction: column;
    gap: 0.75rem;
  }
}
.bookinghandoff.new .label-passwordin {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
}
.bookinghandoff.new .forgot-pin {
  font-size: 80%;
}
@media (min-width: 992px) {
  .bookinghandoff.new .form-item {
    width: 33%;
  }
}
.bookinghandoff.new .checkbox-container {
  margin-top: 0.5rem;
}
.select-item {
  margin-bottom: 0.5rem;
}

.number-select-group.guests-select .btn-circle {
  border: none;
  border-radius: 50%;
  background-color: var(--resort-primary-color-alt, #0d6b55);
  color: #fff;
  width: 35px;
  height: 35px;
  padding: 0;
  text-align: center;
  font-size: 30px;
  line-height: 1;
  aspect-ratio: 1/1;
  display: flex;
  align-items: center;
  justify-content: center;
}
.number-select-group.guests-select .btn-circle span {
  transform: translate(0, -3px);
  font-family: sans-serif;
}

.guests-dropdown .dropdown-menu {
  min-width: 15rem;
}

.col-buttons {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
}

.dropdown-box {
  border: 1px solid #d9d3cc;
  border-radius: 6px;
  box-shadow: 6px 6px 10px rgba(0, 0, 0, 0.27);
  padding: 1rem;
  display: none;
  background-color: #fff;
  position: absolute;
  top: 0;
  z-index: 10;
  min-width: 12rem;
}
.dropdown-box.show {
  display: block;
}
.dropdown-box input.number {
  width: 1rem;
  text-align: center;
  margin: 0 0.25em;
}

#guestsDropdownContainer {
  width: 100%;
}

.dropdown-button {
  text-align: left;
  width: 100%;
  border-radius: 1rem;
  background: transparent;
  border: 1px solid transparent;
}
.dropdown-button:hover, .dropdown-button:focus {
  border-color: var(--resort-primary-color, #0d6b55);
  box-shadow: 0 0 2px var(--resort-primary-color, #0d6b55);
}

.resort-header-simple {
  padding: 2rem 0;
  color: #fff;
  background: var(--resort-primary-color-alt, #2c9b81);
}
.resort-header-simple h1 {
  margin: 0;
}
.resort-header-simple a {
  color: inherit;
}
.resort-header-simple address {
  margin: 0;
}

.cottage-carousel {
  margin: 0 -10px 2em;
}
.cottage-carousel .item {
  margin: 0 10px;
}
.cottage-carousel .item img {
  width: 100%;
  height: 350px;
  object-fit: cover;
}
@media (min-width: 992px) {
  .cottage-carousel .item img {
    width: 100%;
    height: 213px;
  }
}
@media (min-width: 992px) {
  .cottage-carousel .slick-next {
    right: 0;
    left: auto;
  }
}

.cottage-meta {
  display: grid;
  grid-template-columns: 50% 50%;
  margin-bottom: 0.5rem;
}
.cottage-meta .meta-item {
  margin-bottom: 0.5rem;
}

.cottage-list-title {
  font-family: "rockwell", serif;
  color: var(--resort-primary-color, #0d6b55);
  font-weight: bold;
}

.cottage-list-image {
  width: 100%;
  height: auto;
}

#cottage-toggle {
  font-weight: bold;
  display: inline-block;
  margin: 1em 0 0;
  cursor: pointer;
}

.events-list {
  padding: 0;
  margin: 0;
}
.events-list li {
  display: block;
}
.events-list li .event-heading {
  font-size: 1.15em;
  color: var(--resort-primary-color, #0d6b55);
  margin: 0;
}
.events-list li + li {
  margin-top: 1.5rem;
  padding-top: 1.5rem;
  border-top: 1px solid #ddd;
}
.events-list + .view-all,
.events-list + .view-less {
  color: #0d6b55;
  cursor: pointer;
  font-weight: bold;
}
.events-list + .view-all:hover, .events-list + .view-all:focus,
.events-list + .view-less:hover,
.events-list + .view-less:focus {
  text-decoration: underline;
}

@media (max-width: 991.98px) {
  .activity-description-col {
    margin-bottom: 1.5rem;
  }
}

.accommodation-box {
  border-radius: 1rem;
  overflow: hidden;
  position: relative;
  display: block;
  transition: all 250ms ease;
  z-index: 1;
  background-color: #fff;
  height: 100%;
}
.accommodation-box:hover {
  transform: scale(1.05);
  box-shadow: 0 5px 20px rgba(0, 0, 0, 0.3);
  z-index: 5;
}
.accommodation-box:hover .accommodation-image {
  opacity: 0.9;
}
@media (max-width: 767.98px) {
  .accommodation-box {
    margin-bottom: 1.5rem;
  }
}

.accommodation-image {
  aspect-ratio: 41/33;
  inset: 0;
  object-fit: cover;
  width: 100%;
  height: 100%;
  z-index: 0;
  transition: opacity 250ms ease;
}

.accommodation-title {
  color: #fff;
  font-family: "rockwell", serif;
  font-weight: bold;
  display: block;
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  font-size: 20px;
  line-height: 1.25;
  padding: 12% 1em 1em;
  width: 100%;
  background: linear-gradient(0deg, rgba(0, 0, 0, 0.4) 40%, rgba(0, 0, 0, 0.3) 65%, rgba(0, 0, 0, 0) 90%);
  z-index: 5;
  text-align: center;
}
.accommodation-title.small {
  font-size: 18px;
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .accommodation-title.small {
    font-size: 15px;
  }
}
@media (min-width: 768px) and (max-width: 991.98px) {
  .accommodation-title {
    height: 50%;
    font-size: 20px;
  }
}

.resort-location .phone {
  white-space: nowrap;
  color: inherit;
  text-decoration: none;
}

.inline-link-heading h3, .inline-link-heading .link-stn {
  display: inline-block;
  vertical-align: middle;
}
.inline-link-heading .link-stn {
  margin-left: 1em;
  margin-top: 1em;
  font-weight: bold;
}

.resort-awards {
  display: flex;
  max-width: 100%;
  flex-flow: wrap;
  justify-content: center;
  gap: 1rem;
}
@media (max-width: 767.98px) {
  .resort-awards {
    margin-bottom: 2rem;
  }
}
.resort-awards img {
  max-width: 150px;
  height: auto;
  display: block;
}

.sumo.accommodation-icons + .optWrapper li.opt {
  padding-left: 45px;
  background-repeat: no-repeat;
  background-position: 5px 50%;
  background-size: auto 24px;
}
.sumo.accommodation-icons + .optWrapper li.val-rv {
  background-image: url('data:image/svg+xml;charset=utf-8,<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="rv" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" class="svg-inline--fa fa-rv fa-w-20 fa-2x"><path fill="%235a5a62" d="M304 128H112c-8.8 0-16 7.2-16 16v96c0 8.8 7.2 16 16 16h192c8.8 0 16-7.2 16-16v-96c0-8.8-7.2-16-16-16zm-16 96H128v-64h160v64zm288.1-32H600c22.1 0 40-17.9 40-40 0-66.3-53.7-120-120-120H384V16c0-8.8-7.2-16-16-16H240c-8.8 0-16 7.2-16 16v16H64C28.7 32 0 60.7 0 96v197.5c0 17 6.7 33.2 18.7 45.2l69.7 69.7c2.8 2.8 6.1 4.6 9.7 5.9C96.8 420 96 425.9 96 432c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16h163.2c-1.1 5.2-1.6 10.5-1.6 16 0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16H608c17.6 0 32-14.4 32-32V282.4c0-17-6.7-33.2-18.7-45.2L576.1 192zm18.7 64H416v-64h101.5c8.6 0 16.7 3.4 22.8 9.4l54.5 54.6zM176 480c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm208-96H239.6C225 364.7 202 352 176 352s-49 12.7-63.6 32h-3.1l-67.9-67.9c-6-6-9.4-14.1-9.4-22.6V96c0-17.7 14.3-32 32-32h456c48.5 0 88 39.5 88 88 0 4.4-3.6 8-8 8H384v224zm112 96c-26.5 0-48-21.5-48-48s21.5-48 48-48 48 21.5 48 48-21.5 48-48 48zm112-96h-48.4C545 364.7 522 352 496 352s-49 12.7-63.6 32H416v-96h192v96z" class=""></path></svg>');
}
.sumo.accommodation-icons + .optWrapper li.val-cabins {
  background-image: url('data:image/svg+xml;charset=utf-8,<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="home-lg-alt" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512" class="svg-inline--fa fa-home-lg-alt fa-w-18 fa-2x"><path fill="%235a5a62" d="M573.48 219.91L310.6 8a35.85 35.85 0 0 0-45.19 0L2.53 219.91a6.71 6.71 0 0 0-1 9.5l14.2 17.5a6.82 6.82 0 0 0 9.6 1L64 216.72V496a16 16 0 0 0 16 16h416a16 16 0 0 0 16-16V216.82l38.8 31.29a6.83 6.83 0 0 0 9.6-1l14.19-17.5a7.14 7.14 0 0 0-1.11-9.7zM240 480V320h96v160zm240 0H368V304a16 16 0 0 0-16-16H224a16 16 0 0 0-16 16v176H96V190.92l187.71-151.4a6.63 6.63 0 0 1 8.4 0L480 191z" class=""></path></svg>');
}
.sumo.accommodation-icons + .optWrapper li.val-tent {
  background-image: url('data:image/svg+xml;charset=utf-8,<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="campground" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" class="svg-inline--fa fa-campground fa-w-20 fa-2x"><path fill="%235a5a62" d="M632 480h-24L339.74 109.19l63-87.09c2.6-3.57 1.8-8.57-1.77-11.17l-12.93-9.4c-3.57-2.6-8.58-1.81-11.18 1.77L320 81.9 263.14 3.3a7.999 7.999 0 0 0-11.18-1.77l-12.93 9.4c-3.57 2.6-4.37 7.6-1.77 11.17l63 87.09L32 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-409.81 0L320 343.06 417.81 480H222.19zm234.96 0L333.02 306.23c-6.38-8.93-19.66-8.93-26.04 0L182.85 480H71.49L320 136.48 568.51 480H457.15z" class=""></path></svg>');
}
.sumo.accommodation-icons + .optWrapper li.val-tents {
  background-image: url('data:image/svg+xml;charset=utf-8,<svg aria-hidden="true" focusable="false" data-prefix="fal" data-icon="campground" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 640 512" class="svg-inline--fa fa-campground fa-w-20 fa-2x"><path fill="%235a5a62" d="M632 480h-24L339.74 109.19l63-87.09c2.6-3.57 1.8-8.57-1.77-11.17l-12.93-9.4c-3.57-2.6-8.58-1.81-11.18 1.77L320 81.9 263.14 3.3a7.999 7.999 0 0 0-11.18-1.77l-12.93 9.4c-3.57 2.6-4.37 7.6-1.77 11.17l63 87.09L32 480H8c-4.42 0-8 3.58-8 8v16c0 4.42 3.58 8 8 8h624c4.42 0 8-3.58 8-8v-16c0-4.42-3.58-8-8-8zm-409.81 0L320 343.06 417.81 480H222.19zm234.96 0L333.02 306.23c-6.38-8.93-19.66-8.93-26.04 0L182.85 480H71.49L320 136.48 568.51 480H457.15z" class=""></path></svg>');
}
.sumo.accommodation-icons + .optWrapper li.val-tiny-houses {
  background-image: url("/media/com_resorts/images/petite-retreats/tinyhouse.svg");
}
.sumo.accommodation-icons + .optWrapper li.val-yurts {
  margin-top: 0;
  background-image: url("/media/com_resorts/images/petite-retreats/yurt.svg");
}
.sumo.accommodation-icons + .optWrapper li.val-cabins {
  background-image: url("/media/com_resorts/images/petite-retreats/cabin.svg");
}
.sumo.accommodation-icons + .optWrapper li.val-cottages {
  background-image: url("/media/com_resorts/images/petite-retreats/cottage1.svg");
}
.sumo.accommodation-icons + .optWrapper li.val-colorful-cottages {
  background-image: url("/media/com_resorts/images/petite-retreats/cottage2.svg");
  background-size: auto 21px;
}
.sumo.accommodation-icons + .optWrapper li.val-unique {
  background-image: url("/media/com_resorts/images/petite-retreats/tent.svg");
}

.sumo_filter_type li.opt.val- {
  padding-left: 10px !important;
}

#resort-cottages .list-toggle {
  margin-top: 1em;
}
#resort-cottages .list-toggle .text {
  cursor: pointer;
  font-weight: bold;
  color: #ff861b;
}

#guestsModal .modal-content {
  background: url(../images/bg-topo.jpg) repeat 0 0 #fbf9f6;
  border-radius: 1rem;
}
#guestsModal .modal-header {
  border: none;
}
#guestsModal .modal-body {
  padding: 0 2rem 3rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2rem;
}
#guestsModal h3 {
  text-align: center;
  font-size: 28px;
  font-size: clamp(22px, 3vw, 28px);
}
#guestsModal .btn-close-modal {
  text-decoration: underline;
  font-family: "ReadexPro", sans-serif;
  color: var(--resort-primary-color, #0d6b55);
  font-size: 17px;
}
#guestsModal .btn-close-modal:hover, #guestsModal .btn-close-modal:focus {
  text-decoration: none;
}

.ways-to-stay-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 1.5rem;
}
.ways-to-stay-grid > div {
  width: calc(50% - 0.75rem);
}
@media (min-width: 992px) {
  .ways-to-stay-grid > div {
    width: 100%;
  }
}
@media (min-width: 992px) {
  .ways-to-stay-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
  }
  .ways-to-stay-grid > :first-child:nth-last-child(5) {
    grid-column: span 2;
    grid-row: span 2;
  }
  .ways-to-stay-grid:has(> :nth-child(6):last-child) {
    grid-template-columns: repeat(3, 1fr);
  }
}

.button-wrapper {
  display: flex;
  gap: 2rem;
  max-width: 550px;
}
.button-wrapper > * {
  width: 50%;
}
.button-wrapper form .btn {
  width: 100%;
}