/* Resort - Grid Module */
.cms-resorts-grid-wrap { margin: 3.125rem 0; }
.cms-resorts-grid-wrap [class^=col] { display: flex; margin-bottom: 1.875rem; }
.cms-resorts-grid-wrap .card { overflow: hidden; width: 100%; position: relative; border: none; border-radius: var(--borderRadius); box-shadow: var(--dropShadow); transition: all ease-in-out 0.4s; }
.cms-resorts-grid-wrap .card:hover { box-shadow: var(--dropShadow), var(--dropShadow); background-color: hsl(var(--black)); }
.cms-resorts-grid-wrap .card-link { overflow: hidden; display: block; background: hsl(var(--black)); }
.cms-resorts-grid-wrap .card-img-top { opacity: 0.85; width: 100%; height: 15.625rem; object-fit: cover; transform: scale(1); transition: all ease-in-out 0.4s; }
.cms-resorts-grid-wrap .card:hover .card-img-top { opacity: 1; transform: scale(1.2); }
.cms-resorts-grid-wrap .card-body { display: flex; flex-direction: inherit; justify-content: space-between; padding: 1rem 1.25rem; background-color: hsl(var(--white)); }
.cms-resorts-grid-wrap .card-text { margin: 0; }
.cms-resorts-grid-wrap .card-description { margin: 0; }
.cms-resorts-grid-wrap .btn { display: block; margin-top: 0.9375rem; background-color: hsl(var(--siteColor1)); border-radius: var(--borderRadiusPill); color: hsl(var(--white)); font-weight: var(--wRegular); transition: all ease-in-out 0.4s; }
.cms-resorts-grid-wrap .btn:hover { background-color: hsl(var(--siteColor2)); }

/* Resort - Grid Module */
.cms-resorts-list-wrap { margin: 3.125rem 0; }
.cms-resorts-list-wrap .cms-resorts-row { margin-bottom: 3.125rem; }
.cms-resorts-list-wrap [class^=col] { display: flex; margin-bottom: 1.875rem; }
.cms-resorts-list-wrap .card-img-wrap { overflow: hidden; width: 100%; max-width: 18.75rem; margin: 0 auto 0.9375rem; position: relative; border-radius: 50vw; box-shadow: var(--dropShadow); }
.cms-resorts-list-wrap .card-img-link { display: block; position: relative; padding-bottom: 100%; border-radius: 50vw; transition: all ease-in-out 0.4s; }
.cms-resorts-list-wrap .card-img-left { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; z-index: 1; border-radius: 50vw; }
.cms-resorts-list-wrap .card-img-link:hover .card-img-left { transform: scale(1.2); }
.cms-resorts-list-wrap .card { width: 100%; justify-content: center; border: none; }
.cms-resorts-list-wrap .card-body { width: 100%; flex-grow: 0; border: 0.0625rem solid hsla(0,0%,0%,0.125); border-radius: var(--borderRadius); }
.cms-resorts-list-wrap .card-title, .cms-resorts-list-wrap .card-sub-title { font-weight: var(--wMedium); }
.cms-resorts-list-wrap .card-description { margin: 0; }
.cms-resorts-list-wrap .btn { display: block; margin-top: 0.9375rem; background-color: hsl(var(--siteColor1)); border-radius: var(--borderRadiusPill); color: hsl(var(--white)); font-weight: var(--wRegular); transition: all ease-in-out 0.4s; }
.cms-resorts-list-wrap .btn:hover { background-color: hsl(var(--siteColor2)); }
@media(min-width:578px){
  .cms-resorts-list-wrap .cms-resorts-row { margin-bottom: 0; }
  .cms-resorts-list-wrap .card-img-wrap { max-width: 100%; }
}

/* Resort - Detail page */
.cms-resorts-detail-wrap { margin: 3.125rem 0; }
.cms-resorts-detail-wrap .card-img-wrap { overflow: hidden; width: 100%; max-width: 18.75rem; min-height: 18.75rem; margin: 0 auto 0.9375rem; padding-bottom: 65%; position: relative; border-radius: var(--borderRadius); box-shadow: var(--dropShadow); }
.cms-resorts-detail-wrap .card-img-left { width: 100%; height: 100%; object-fit: cover; position: absolute; top: 0; left: 0; }
.cms-resorts-detail-wrap .card { width: 100%; justify-content: center; border: none; }
.cms-resorts-detail-wrap .card-body { width: 100%; flex-grow: 0; }
.cms-resorts-detail-wrap .card-title, .cms-resorts-detail-wrap .card-sub-title { font-weight: var(--wMedium); }
.cms-resorts-detail-wrap .card-list { list-style: circle; padding-left: 1.25rem; }
@media(min-width:578px){
  .cms-resorts-detail-wrap .card-img-wrap { max-width: 100%; min-height: 0; padding-bottom: 100%; }
}

/* Resort Swiper on HP */
.cms-resorts-slider-wrap { padding: 1.5rem 0; position: relative; z-index: 1; }
.cms-resorts-slider-wrap .title { margin-bottom: 1.5rem; }
@media(min-width: 1025px) {
  .cms-resorts-slider-wrap { padding: 3.5rem 0; }
}

/* Resorts Swiper */
.resorts-swiper .swiper-slide { --marginRight: 1.25rem; --columns: 1; margin-right: var(--marginRight); width: calc(calc(100% / var(--columns)) - var(--marginRight) + calc(var(--marginRight) / var(--columns))); }
/* .resorts-swiper .swiper-slide.swiper-slide-prev,
.resorts-swiper .swiper-slide.swiper-slide-next { transform: scale(0.97) translateZ(0); } */
@media (min-width: 0px) {
  .resorts-swiper .swiper-slide { --columns: 1; }
}
@media (min-width: 667px) {
  .resorts-swiper .swiper-slide { --columns: 2; transform: scale(0.95); transition: all ease-in-out 0.4s; }
  .resorts-swiper .swiper-slide.swiper-slide-active { transform: scale(1); }
}
@media (min-width: 992px) {
  .resorts-swiper .swiper-slide { --columns: 3; }
}
@media (min-width: 1025px) {
  .resorts-swiper .swiper-slide { --columns: 4; }
}
@media (min-width: 1400px) {
  .resorts-swiper .swiper-slide { --columns: 5; }
}

/* Resorts Swiper Controls */
.resorts-controls { margin: 1.5rem auto 0; width: 100%; max-width: 11.25rem; display: flex; flex-wrap: wrap; justify-content: space-between; position: relative; }
.resorts-controls:has(.swiper-button-lock) { margin: 0; }
.resorts-controls .resort-btn-next,
.resorts-controls .resort-btn-prev { width: 3rem; height: 3rem; margin: 0; position: relative; top: auto; right: auto; left: auto; background-color: transparent; border-radius: var(--borderRadiusCircle); box-shadow: none; color: hsl(var(--white)); transition: all 0.4s ease-in-out; }
.resorts-controls .resort-btn-next:hover,
.resorts-controls .resort-btn-prev:hover { background-color: hsl(var(--white)); box-shadow: var(--dropShadowLight); color: hsl(var(--bodyFontColor)); }
.resorts-controls .resort-btn-next:focus,
.resorts-controls .resort-btn-prev:focus { outline: none; box-shadow: var(--focusShadowLight); }
.resorts-controls .resort-btn-next:after,
.resorts-controls .resort-btn-prev:after { display: none; }
.resorts-controls .resort-btn-next .icon,
.resorts-controls .resort-btn-prev .icon { width: 1.75rem; height: 1.75rem; }

.cms-resorts-slider-wrap .resort-wrap { width: 100%; overflow: hidden; position: relative; background: hsl(var(--siteColor1)); border-radius: var(--borderRadius); text-align: center; }
.cms-resorts-slider-wrap .resort-img-wrap { aspect-ratio: 1 / 1; width: 100%; height: 100%; position: relative; background: hsl(var(--siteColor1)); text-align: center; transition: all ease-in-out 0.4s; }
.cms-resorts-slider-wrap .resort-img { width: 100%; height: 100%; position: absolute; top: 0; left: 0; object-fit: cover; mask-image: linear-gradient(to bottom, hsl(var(--white), 1) 65%, hsla(var(--white), 0.5) 75%, hsla(var(--white), 0) 100%); transition: all ease-in-out 0.4s; }
.cms-resorts-slider-wrap .resort-info-wrap { width: 100%; position: absolute; top: 100%; transform: translateY(0); color: hsl(var(--white)); transition: all ease-in-out 0.4s; z-index: 2; }
.cms-resorts-slider-wrap .resort-title { margin: 0; padding: 1rem; position: relative; font-size: 1.75rem; font-weight: var(--wRegular); color: hsl(var(--white)); transform: translateY(-100%); transition: all 0.4s ease-in-out; }
.cms-resorts-slider-wrap .resort-info { padding: 0.25rem 1rem 1.25rem; transition: all 0.4s ease-in-out;  }
.cms-resorts-slider-wrap .resort-text { margin: 0 0 1.5rem; }
.cms-resorts-slider-wrap .resort-btn { width: 12.5rem; max-width: 100%; margin: 0; padding: 0.75rem 1rem; border-radius: var(--borderRadiusPill); box-shadow: 0 0 0 0.0625rem hsl(var(--white)); color: hsl(var(--white)); }
.cms-resorts-slider-wrap .resort-btn:hover { background: hsl(var(--siteColor2)); box-shadow: 0 0 0 0.0625rem hsl(var(--siteColor2)); color: hsl(var(--bodyFontColor)); }
.cms-resorts-slider-wrap .resort-wrap:hover .resort-img { opacity: 0.25; transform: translateY(-10%); }
.cms-resorts-slider-wrap .resort-wrap:hover .resort-info-wrap { top: 50%; transform: translateY(-50%); }
.cms-resorts-slider-wrap .resort-wrap:hover .resort-title { transform: translateY(0); }
@media (min-width: 992px) {
  .cms-resorts-slider-wrap .resort-img-wrap { aspect-ratio: 5 / 8; }
}
@media (min-width: 1400px) {
  .cms-resorts-slider-wrap .resort-img-wrap { aspect-ratio: 5 / 9; }
}