/* 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); }
.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-title, .cms-resorts-grid-wrap .card-sub-title { font-weight: var(--wMedium); }
.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%; }
}

/* Resorts Homepage */
.cms-resorts-home-wrap { position: relative; }
.cms-resorts-home-wrap .resorts-home-heading { max-width: 55rem; }
.cms-resorts-home-wrap .resorts-home-heading .h1 { font-size: 3.5rem; text-transform: capitalize; }
.cms-resorts-home-wrap .resorts-home-heading .subtitle { font-family: var(--wBold); }
.cms-resorts-home-wrap .card-link { position: relative; opacity: 0.85; width: 100%; aspect-ratio: 0.9; overflow: hidden; transition: all ease-in-out 0.4s; }
.cms-resorts-home-wrap .card-img-top { width: 100%; height: 100%; object-fit: cover; }
.cms-resorts-home-wrap .resort-title { width: 100%; padding: 0.5rem 1rem; position: absolute; bottom: 1.5rem; left: 50%; transform: translateX(-50%); background: hsla(var(--black), .4); font-family: var(--siteFont1); font-size: 2.25rem; color: hsl(var(--white)); text-align: center; line-height: 1.1; text-transform: capitalize; }
.cms-resorts-home-wrap .resorts-home-swiper { padding: 2rem 0; position: relative; }
.cms-resorts-home-wrap .resorts-home-controls { width: 95%; position: absolute; top: 50%; left: 50%; transform: translate(-50%, 150%); z-index: 2; }
.cms-resorts-home-wrap .resort-home-btn-prev, 
.cms-resorts-home-wrap .resort-home-btn-next { margin-top: 0; background: hsl(var(--white)); padding: .5rem; border-radius: 50vw; width: 3rem; height: 3rem; display: flex; align-items: center; justify-content: center; }
.cms-resorts-home-wrap .resort-home-btn-prev:after, 
.cms-resorts-home-wrap .resort-home-btn-next:after { font-size: 1.5rem; }
.cms-resorts-home-wrap .resort-icon { opacity: 0; visibility: hidden; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50%; height: 50%; object-fit: contain; z-index: 1; transition: .4s all ease; }
.cms-resorts-home-wrap .swiper-slide-active .resort-icon { opacity: 1; visibility: visible; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50%; height: 50%; object-fit: contain; z-index: 1; transition: .4s all ease; }
.cms-resorts-home-wrap .swiper-slide-next .resort-icon { opacity: 1; visibility: visible; }
@media(min-width:667px) {
  .cms-resorts-home-wrap .swiper-slide-active .resort-icon { opacity: 0; visibility: hidden; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 50%; height: 50%; object-fit: contain; z-index: 1; transition: .4s all ease; }
  .cms-resorts-home-wrap .swiper-slide-next .resort-icon { opacity: 1; visibility: visible; }
}
@media(min-width:1025px) {
  .cms-resorts-home-wrap .resorts-home-heading .h1 { font-size: 5rem; text-transform: capitalize; }
  .cms-resorts-home-wrap .resort-title { font-size: 3rem; background: hsla(var(--black), .4); }
}