/* ============================================================
   HERO SWIPER NAVIGATION
============================================================ */

.swiperHeroHome .swiper-button-next,
.swiperHeroHome .swiper-button-prev {
  width: 35px;
  height: 35px;
  background: rgba(0, 0, 0, 0.3);
  border-radius: 50%;
}

.swiperHeroHome .swiper-button-next:after,
.swiperHeroHome .swiper-button-prev:after {
  font-size: 16px;
  color: #fff;
}

/* ============================================================
   HERO BACKGROUND POSITIONING
============================================================ */

.hero-container-top {
  background-position: top;
}

.hero-container-center {
  background-position: center;
}

.hero-container-bottom {
  background-position: bottom;
}

/* ============================================================
   HERO BASE CONTAINER
============================================================ */

.hero-container-top,
.hero-container-center,
.hero-container-bottom {
  background-size: cover;
  display: flex;
  flex-direction: row;
  background-repeat: no-repeat;
  position: relative;
  height: 68vh !important;
  width: 100vw;
}

/* ============================================================
   HERO LOCKUP BASE
============================================================ */

.lockup-placeholder {
  position: absolute;
  z-index: 10;
  max-width: 500px;
  text-align: center;
  background: rgba(12, 43, 57, 0.8);
  padding: 24px;
  margin: 50px 40px 40px;
  max-width: 480px;
}

/* Transparent variations */

.ff .lockup-placeholder {
  background: transparent;
}

.hero-container-center.bf .lockup-placeholder {
  background: transparent;
  margin-top: 80px;
  max-width: 450px;
  max-height: 280px;
}

html[lang="es"] .hero-container-center.bf .lockup-placeholder {
  max-width: 550px;
}

/* ============================================================
   HERO TEXT STYLES
============================================================ */

.lockup-placeholder span.title-hero-offer {
  font-family: var(--fontPrimary);
  font-weight: 600;
  font-size: 28px;
  font-style: normal;
  line-height: 1.1em;
  color: var(--colorPrimary);
}

.lockup-placeholder span.subtitle-hero-offer {
  font-family: var(--fontTitles);
  font-weight: 400;
  font-size: 34px;
  line-height: 1em;
  color: var(--colorPrimary);
}

/* ============================================================
   HERO MEDIA & BUTTONS
============================================================ */

.lockup-placeholder img {
  width: 100%;
  max-width: 40vw;
  padding: 20px;
  height: auto;
}

.lockup-placeholder a.btn-corpo.btn-gold {
  margin-left: 15px;
  color: #0c2b39;
  min-width: 200px;
  font-size: 20px;
  text-align: center;
}

.lockup-placeholder a.btn-corpo.btn-gold:hover {
  color: #fff;
}

/* ============================================================
   LOCKUP ALIGNMENT MODIFIERS
============================================================ */

.lockup-left {
  justify-content: flex-start;
  align-items: center;
}

.lockup-center {
  justify-content: center;
  align-items: center;
}

.lockup-right {
  justify-content: flex-end;
  align-items: center;
}

/* ============================================================
   FLEX TITLE HERO STRUCTURE
============================================================ */

.flex-title-hero > div:first-child {
  border-right: 1px solid #fff;
}

.flex-title-hero > div {
  padding: 0 50px;
  max-width: 450px;
}

.flex-title-hero .title-hero {
  font-size: 44px;
  line-height: 50px;
  text-transform: uppercase;
}

/* ============================================================
   HERO M5 / PRE-OPEN VARIANTS
============================================================ */

.hero-m5 p.title-hero span {
  font-size: 22px;
  font-weight: 600;
  display: block;
  line-height: 140%;
  margin-top: 20px;
}

.stage .hero-m5 p.title-hero {
  text-shadow: none;
}

.title-hero .btn-corpo,
.flex-title-hero .btn-corpo {
  font-size: 20px;
}

/* ============================================================
   PRE-OPEN LAYOUT
============================================================ */

.preop .flex-title-hero {
  max-width: 80%;
}

.preop img {
  max-width: 280px;
  height: auto;
}

.preop p {
  font-size: 28px;
  font-weight: 600;
  color: var(--colorPrimary);
  text-shadow: none;
  line-height: 120%;
}

.preop p.light {
  font-weight: 400;
  font-size: 21px;
}

.stage .preop p.title-hero {
  font-size: 56px;
  text-shadow: none;
}

/* ============================================================
   MEDIA QUERIES — DESKTOP
============================================================ */

@media (max-width: 1440px) {
  .stage .preop p.title-hero {
    font-size: 48px;
  }

  .preop p {
    font-size: 24px;
  }
}

/* ============================================================
   MEDIA QUERIES — TABLET +
============================================================ */

@media (min-width: 768px) {
  .lockup-placeholder {
    right: 3vw;
  }

  .lockup-left .lockup-placeholder {
    right: auto;
    left: 3vw;
  }

  .flex-title-hero {
    margin-top: 60px;
  }
}

/* ============================================================
   MEDIA QUERIES — LARGE SCREENS
============================================================ */

@media only screen and (max-width: 1440px) {
  .lockup-placeholder {
    padding: 20px;
    width: 450px;
  }

  .flex-title-hero > div {
    padding: 0 40px;
  }

  .ff .lockup-placeholder {
    width: auto;
  }

  .lockup-placeholder span.title-hero-offer {
    font-size: 24px;
  }

  .lockup-placeholder span.subtitle-hero-offer {
    font-size: 36px;
  }

  .hero-container-top,
  .hero-container-center,
  .hero-container-bottom {
    height: 72vh !important;
  }

  .text-hero br:last-child {
    display: none;
  }

  .hero-m5 p.title-hero span {
    margin-top: 12px;
  }
}

/* ============================================================
   MEDIA QUERIES — TABLET
============================================================ */

@media (min-width: 768px) and (max-width: 1024px) {
  .hero-container-top,
  .hero-container-center,
  .hero-container-bottom {
    height: 65vh !important;
    align-items: center;
  }

  .preop .flex-title-hero {
    max-width: 100%;
  }
}

/* ============================================================
   MEDIA QUERIES — SMALL TABLET
============================================================ */

@media only screen and (max-width: 1024px) {
  .lockup-placeholder span.title-hero-offer {
    font-size: 21px;
  }

  .lockup-placeholder span.subtitle-hero-offer {
    font-size: 32px;
  }

  .lockup-placeholder img {
    max-width: 75vw;
  }

  html[lang="es"] .lockup-placeholder img {
    max-width: 85vw;
  }

  .hero-container-center.bf .lockup-placeholder {
    margin-top: 0;
  }
}

/* ============================================================
   MEDIA QUERIES — MOBILE
============================================================ */

@media only screen and (max-width: 767px) {
  .lockup-placeholder {
    padding: 12px;
    margin: 2px;
    width: calc(100% - 5px);
  }

  .hero-container-center.bf .lockup-placeholder {
    padding: 0;
  }

  .hero-container-top,
  .hero-container-center,
  .hero-container-bottom {
    height: 85vh !important;
    padding: 0;
    justify-content: center;
    align-items: flex-start;
  }

  .lockup-placeholder span.title-hero-offer {
    font-size: 18px;
  }

  .lockup-placeholder span.subtitle-hero-offer {
    font-size: 26px;
  }

  .lockup-placeholder a.btn-corpo.btn-gold {
    margin-top: 0;
  }

  .hero-m5 p.title-hero span {
    font-size: 20px;
    line-height: 120%;
  }

  .flex-title-hero {
    transform: scale(0.95);
  }

  .flex-title-hero .title-hero {
    font-size: 36px !important;
    line-height: 40px;
  }

  .flex-title-hero .btn-corpo {
    max-width: max-content;
    margin: 0 auto;
  }

  .flex-title-hero .title-hero ~ p {
    line-height: 120%;
  }

  .flex-title-hero > div:first-child {
    border-right: 0;
  }

  .flex-title-hero > div {
    padding: 0;
  }

  .preop p {
    font-size: 24px;
  }

  .preop .flex-title-hero {
    max-width: none;
  }

  .flex-title-hero > div:first-child img {
    max-height: 130px;
    width: auto;
  }
}

/* ============================================================
   MOBILE EXTRAS
============================================================ */

@media only screen and (max-width: 768px) {
  .lockup-placeholder {
    z-index: 2;
  }

  .hero-m5.softop {
    display: none;
  }
}

/* ============================================================
   FEBRUARY / CAMPAIGN STYLES
============================================================ */

.hero-container-center.february {
  background-image: url("/dam/multiHotel-majesticresorts/offers/february-offer/hero-desktop-february-offer-majestic-resorts.webp") !important;
  background-position: 0 0;
}

.hero-container-center.now-open {
  background-image: url("/dam/multiHotel-majesticresorts/offers/opening-mmcm/hero-desktop-opening-majestic-mirage-costa-mujeres-all-suite-resort.webp") !important;
  justify-content: flex-end;
  padding-right: 5%;
}

.february .lockup-placeholder {
  background-color: rgba(250, 248, 244, 0.8);
  border: 1px solid var(--colorSand);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  margin-top: 100px;
}

.february .lockup-placeholder span.title-hero-offer {
  font-size: 40px;
  color: #6a0437;
}

.february .lockup-placeholder span {
  display: block;
  line-height: 140%;
}

.february .lockup-placeholder span.subtitle-hero-offer {
  font-size: 24px;
  color: var(--color-body);
}

.hero-container-center.feb_offer_mobile {
  background-image: url("/dam/multiHotel-majesticresorts/offers/opening-mmcm/mobile-hero-desktop-february-offer-majestic-resorts.webp") !important;
}
.hero-container-center.feb_offer_mobile .flex-title-hero {
  background-color: rgba(250, 248, 244, 0.8);
  border: 1px solid var(--colorSand);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.hero-container-center.feb_offer_mobile .flex-title-hero .title-hero {
  color: #6a0437;
}
