@import url('https://fonts.googleapis.com/css2?family=Amaranth:ital,wght@0,400;0,700;1,400;1,700&family=Playfair+Display:ital,wght@0,400;0,700;0,900;1,400;1,700&family=Inter:wght@300;400;500;600;700&display=swap');

*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box
}

html {
  scroll-behavior: smooth;
  font-size: 16px
}

body {
  font-family: 'Inter', sans-serif;
  background: #FFF8F0;
  color: #1A0D05;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased
}

img {
  max-width: 100%;
  height: auto;
  display: block
}

a {
  text-decoration: none;
  color: inherit
}

ul {
  list-style: none
}

button {
  font-family: inherit;
  cursor: pointer;
  border: none;
  background: none
}

:focus-visible {
  outline: 2px solid #F5A623;
  outline-offset: 3px
}

::selection {
  background: #F5A623;
  color: #1A0D05
}

:root {
  --sol: #F5A623;
  --sol2: #FFD07A;
  --terra: #C8472A;
  --terra2: #E06040;
  --ocre: #E8925A;
  --noche: #1A0D05;
  --noche2: #2D1008;
  --crema: #FFF8F0;
  --arena: #F5E6C8;
  --mar: #1B6CA8;
  --blanco: #FFFFFF;
  --gris: #6B5E54;
  --gris2: #9A9088;
  --shadow-premium: 0 10px 30px rgba(0, 0, 0, 0.05);
}

/* ── FLOATING WHATSAPP ── */
.wa-float {
  position: fixed;
  bottom: 28px;
  right: 28px;
  z-index: 999;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background: #25D366;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 24px rgba(37, 211, 102, .5);
  animation: waPulse 2.5s ease-in-out infinite;
  transition: transform .2s
}

.wa-float:hover {
  transform: scale(1.12)
}

.wa-float svg {
  width: 32px;
  height: 32px;
  fill: white
}

@keyframes waPulse {

  0%,
  100% {
    box-shadow: 0 4px 24px rgba(37, 211, 102, .5)
  }

  50% {
    box-shadow: 0 4px 40px rgba(37, 211, 102, .8)
  }
}

/* ── NAVBAR ── */
.nav2 {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  padding: 20px 0;
  transition: all .4s
}

.nav2.scrolled {
  background: rgba(26, 13, 5, .92);
  backdrop-filter: blur(16px);
  padding: 12px 0;
  box-shadow: 0 2px 20px rgba(200, 71, 42, .3)
}

.nav2__inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem);
  display: flex;
  align-items: center;
  justify-content: space-between
}

.nav2__logo img {
  height: 110px;
  width: auto;
  filter: drop-shadow(0 2px 8px rgba(0, 0, 0, .4));
  transition: height .3s ease;
}

@media (max-width: 768px) {
  .nav2__logo img {
    height: 70px;
  }
}

.nav2__links {
  display: none;
  gap: 2rem
}

@media(min-width:1024px) {
  .nav2__links {
    display: flex;
    align-items: center
  }
}

.nav2__link {
  font-size: .875rem;
  font-weight: 500;
  color: rgba(255, 255, 255, .85);
  letter-spacing: .04em;
  transition: color .2s;
  position: relative
}

.nav2__link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--sol);
  transition: width .3s
}

.nav2__link:hover {
  color: var(--sol)
}

.nav2__link:hover::after {
  width: 100%
}

.nav2__cta {
  background: var(--terra);
  color: white;
  padding: .6rem 1.5rem;
  border-radius: 100px;
  font-size: .875rem;
  font-weight: 600;
  transition: all .2s
}

.nav2__cta:hover {
  background: var(--sol);
  color: var(--noche);
  transform: translateY(-2px)
}

.nav2__burger {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 6px;
  cursor: pointer
}

@media(min-width:1024px) {
  .nav2__burger {
    display: none
  }
}

.nav2__burger span {
  width: 24px;
  height: 2px;
  background: white;
  border-radius: 2px;
  transition: all .3s
}

.nav2__burger.open span:nth-child(1) {
  transform: rotate(45deg) translate(5px, 5px)
}

.nav2__burger.open span:nth-child(2) {
  opacity: 0
}

.nav2__burger.open span:nth-child(3) {
  transform: rotate(-45deg) translate(5px, -5px)
}

.nav2__mobile {
  position: fixed;
  inset: 0;
  background: var(--noche);
  z-index: 99;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  opacity: 0;
  visibility: hidden;
  transition: all .4s
}

.nav2__mobile.open {
  opacity: 1;
  visibility: visible
}

.nav2__mobile a {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(2rem, 6vw, 3rem);
  color: white;
  transition: color .2s
}

.nav2__mobile a:hover {
  color: var(--sol)
}

/* ── HERO ── */
.hero2 {
  position: relative;
  height: 100svh;
  min-height: 600px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  overflow: hidden
}

.hero2__bg {
  position: absolute;
  inset: 0;
  z-index: 0
}

.hero2__bg img {
  width: 100%;
  height: 110%;
  object-fit: cover;
  object-position: center;
  animation: kenBurns 20s ease-in-out infinite alternate;
  will-change: transform;
  transform-origin: center center;
}

@keyframes kenBurns {
  0% {
    transform: scale(1) translateX(0%) translateY(0%);
  }

  33% {
    transform: scale(1.06) translateX(-1.5%) translateY(-1%);
  }

  66% {
    transform: scale(1.04) translateX(1%) translateY(-2%);
  }

  100% {
    transform: scale(1.08) translateX(-0.5%) translateY(-1.5%);
  }
}

.hero2__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(26, 13, 5, .55) 0%, rgba(26, 13, 5, .3) 40%, rgba(26, 13, 5, .75) 100%)
    /* background: linear-gradient(180deg, rgb(195 195 186 / 15%) 0%, rgba(26, 13, 5, .3) 40%, rgb(99 69 50 / 25%) 100%); */
}

.hero2__content {
  position: relative;
  z-index: 1;
  text-align: center;
  padding: 0 clamp(1rem, 5vw, 4rem);
  max-width: 1000px
}

.hero2__badge {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  background: rgba(245, 166, 35, .2);
  backdrop-filter: blur(8px);
  border: 1px solid rgba(245, 166, 35, .4);
  color: var(--sol2);
  padding: .4rem 1.2rem;
  border-radius: 100px;
  font-size: .75rem;
  font-weight: 600;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin-bottom: 1.5rem;
}

@media (max-width: 768px) {
  .hero2__content {
    padding-top: 40px;
  }
  .hero2__badge {
    margin-bottom: 1rem;
    font-size: 0.65rem;
  }
}

.hero2__badge-dot {
  width: 6px;
  height: 6px;
  background: var(--sol);
  border-radius: 50%;
  animation: blink 2s ease-in-out infinite
}

@keyframes blink {

  0%,
  100% {
    opacity: 1;
    transform: scale(1)
  }

  50% {
    opacity: .4;
    transform: scale(1.6)
  }
}

.hero2__title {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 900;
  color: white;
  line-height: 1;
  margin-bottom: 1.5rem;
  text-shadow: 0 4px 24px rgba(0, 0, 0, .4)
}

.hero2__title em {
  font-style: italic;
  color: var(--sol)
}

.hero2__sub {
  font-size: clamp(1rem, 2.5vw, 1.25rem);
  color: rgba(255, 255, 255, .82);
  font-weight: 300;
  max-width: 600px;
  margin: 0 auto 2.5rem;
  line-height: 1.6
}

/* Booking widget */
.hero2__book {
  background: rgba(255, 255, 255, .08);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 16px;
  padding: 1rem 1.25rem;
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  align-items: center;
  justify-content: center;
  max-width: 620px;
  margin: 0 auto;
}

@media (max-width: 1024px) {
  .hero2__book {
    padding: 1rem;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .75rem;
    width: 100%;
    max-width: 400px;
  }
}

.hero2__field {
  display: flex;
  align-items: center;
  gap: .5rem;
  flex: 0 1 auto;
  min-width: 130px;
}

@media (max-width: 1024px) {
  .hero2__field {
    width: calc(50% - .4rem);
    min-width: unset;
    flex: 1 1 auto;
  }
}

.hero2__field label {
  font-size: .6rem;
  font-weight: 600;
  color: rgba(255, 255, 255, .6);
  text-transform: uppercase;
  letter-spacing: .08em;
  white-space: nowrap;
}

.hero2__field input {
  background: rgba(255, 255, 255, .1);
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 8px;
  padding: 8px 10px;
  color: white;
  font-size: .78rem;
  font-family: 'Inter', sans-serif;
  transition: all .2s;
  min-height: 34px;
  line-height: 1;
  -webkit-appearance: none;
  width: auto;
  flex: 1;
  max-width: 130px;
}

@media (max-width: 1024px) {
  .hero2__field input {
    width: 100%;
    max-width: none;
    display: block;
  }
}

.hero2__field input::placeholder {
  color: rgba(255, 255, 255, .35);
  font-size: .75rem;
}

.hero2__field input:focus {
  outline: none;
  border-color: var(--sol);
  background: rgba(255, 255, 255, .18)
}

.hero2__field input::-webkit-calendar-picker-indicator {
  filter: invert(1);
  opacity: .5;
  padding: 0;
  width: 14px;
  height: 14px;
}

.hero2__book-btn {
  background: linear-gradient(135deg, var(--terra), var(--sol));
  color: white;
  padding: .55rem 1.25rem;
  border-radius: 8px;
  font-weight: 600;
  font-size: .8rem;
  white-space: nowrap;
  transition: all .2s;
  box-shadow: 0 3px 12px rgba(200, 71, 42, .4);
  letter-spacing: .02em;
}

@media (max-width: 1024px) {
  .hero2__book-btn {
    width: 100%;
    text-align: center;
    padding: .65rem;
  }
}

.hero2__book-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 6px 20px rgba(200, 71, 42, .5)
}

.hero2__scroll {
  position: absolute;
  bottom: 32px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .5rem;
  color: rgba(255, 255, 255, .6);
  font-size: .7rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  animation: bounce2 2s ease-in-out infinite
}

@keyframes bounce2 {

  0%,
  100% {
    transform: translateX(-50%) translateY(0)
  }

  50% {
    transform: translateX(-50%) translateY(8px)
  }
}

.hero2__scroll svg {
  width: 24px;
  height: 24px
}

/* ── TRUST BAR ── */
.trust2 {
  background: var(--noche);
  padding: 1.25rem 0
}

.trust2__inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem);
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem
}

.trust2__item {
  display: flex;
  align-items: center;
  gap: .6rem;
  color: rgba(255, 255, 255, .75);
  font-size: .85rem;
  font-weight: 500
}

.trust2__item svg {
  width: 18px;
  height: 18px;
  color: var(--sol);
  flex-shrink: 0
}

/* ── SECTION COMMONS ── */
.s2 {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 clamp(1rem, 4vw, 3rem)
}

.sec-label {
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: .75rem
}

.sec-title {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin-bottom: 1.25rem
}

.sec-sub {
  color: var(--gris);
  font-size: 1.05rem;
  line-height: 1.7;
  max-width: 560px
}

/* ── ABOUT ── */
.about2 {
  padding: 6rem 0;
  background: var(--crema)
}

.about2__grid {
  display: grid;
  gap: 4rem;
  align-items: stretch
}

@media(min-width:900px) {
  .about2__grid {
    grid-template-columns: 1fr 1fr
  }
}

.about2__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 2.5rem
}

.about2__stat {
  background: white;
  border-radius: 16px;
  padding: 1.5rem;
  border-left: 4px solid var(--sol);
  box-shadow: 0 4px 16px rgba(0, 0, 0, .06)
}

.about2__stat-num {
  font-family: 'Inter', sans-serif;
  font-size: 2.75rem;
  font-weight: 800;
  color: var(--terra);
  line-height: 1;
  letter-spacing: -0.02em;
}

.about2__stat-label {
  font-size: .8rem;
  color: var(--gris);
  margin-top: .25rem
}

.about2__imgs {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: repeat(2, 1fr);
  gap: 12px;
  height: 100%;
}

.about2__img {
  border-radius: 16px;
  overflow: hidden
}

.about2__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s
}

.about2__img:hover img {
  transform: scale(1.06)
}

.about2__img--main {
  grid-column: 1 / 9;
  grid-row: 1 / 3
}

.about2__img--a {
  grid-column: 9 / 13;
  grid-row: 1 / 2
}

.about2__img--b {
  grid-column: 9 / 11;
  grid-row: 2 / 3
}

.about2__img--c {
  grid-column: 11 / 13;
  grid-row: 2 / 3
}

/* ── ROOMS ── */
.rooms2 {
  padding: 6rem 0;
  background: linear-gradient(to bottom, var(--crema), var(--arena));
  position: relative;
}

.rooms2 .sec-label {
  color: var(--terra)
}

.rooms2 .sec-title {
  color: var(--noche)
}

.rooms2__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 3rem;
}

@media(min-width: 900px) {
  .rooms2__grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .room2--featured {
    border-color: var(--terra);
    border-width: 2px;
    position: relative;
  }
  .room2--featured .room2__body {
    background: linear-gradient(180deg, var(--blanco) 60%, rgba(200,71,42,.04));
  }
  .room2--featured .room2__img {
    height: 320px;
  }
  .room2--featured .room2__badge {
    background: var(--terra);
    font-size: .75rem;
    padding: .5rem 1.2rem;
    box-shadow: 0 4px 12px rgba(200,71,42,.3);
  }
}

.room2 {
  background: var(--blanco);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: all .4s cubic-bezier(0.165, 0.84, 0.44, 1);
  box-shadow: 0 10px 30px rgba(0, 0, 0, .03);
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.room2:hover {
  transform: translateY(-10px);
  box-shadow: 0 30px 60px rgba(0, 0, 0, .1);
}

.room2__img {
  position: relative;
  height: 280px;
  overflow: hidden;
}

.room2__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .8s;
}

.room2:hover .room2__img img {
  transform: scale(1.1);
}

.room2__badge {
  position: absolute;
  top: 20px;
  left: 20px;
  background: var(--terra);
  color: white;
  font-size: .65rem;
  font-weight: 800;
  padding: .5rem 1rem;
  border-radius: 50px;
  letter-spacing: .1em;
  z-index: 2;
}

.room2__body {
  padding: 2rem;
  flex: 1;
  display: flex;
  flex-direction: column;
}

.room2__name {
  font-family: 'Amaranth', sans-serif;
  font-size: 1.8rem;
  color: var(--noche);
  margin-bottom: 1rem;
  font-weight: 600;
}

.room2__desc {
  font-size: .95rem;
  color: var(--gris);
  line-height: 1.7;
  margin-bottom: 1.5rem;
}

.room2__features {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 0.75rem;
  margin-bottom: 1.5rem;
  padding: 1rem;
  background: var(--crema);
  border-radius: 12px;
  border: 1px solid rgba(200, 71, 42, 0.1);
}

.room2__feature {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
  color: var(--noche);
  font-weight: 600;
}

.room2__feature svg {
  width: 16px;
  height: 16px;
  color: var(--terra);
  flex-shrink: 0;
}

.room2__tags {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-bottom: 2rem;
}

.room2__tag {
  font-size: .7rem;
  color: #555;
  background: #f0f4f8;
  padding: .3rem .8rem;
  border-radius: 50px;
  font-weight: 500;
}

.room2__footer {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-top: auto;
}

@media(min-width: 480px) {
  .room2__footer {
    flex-direction: row;
    align-items: flex-end;
    justify-content: space-between;
  }
}

.room2__price {
  color: var(--noche);
  display: flex;
  flex-direction: column;
}

.room2__price span {
  font-size: .8rem;
  color: var(--gris2);
  margin-bottom: .2rem;
}

.room2__price-val {
  font-family: 'Outfit', sans-serif;
  font-size: 1.6rem;
  font-weight: 600;
  color: var(--noche);
}

.room2__price-unit {
  font-size: .7rem;
  color: var(--gris2);
  margin-left: .3rem;
}

.room2__actions {
  display: flex;
  align-items: center;
  gap: 1.25rem;
}

.room2__link-detail {
  font-size: .85rem;
  font-weight: 600;
  color: var(--gris);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color .3s;
}

.room2__link-detail:hover {
  color: var(--terra);
}

.room2__btn {
  background: var(--terra);
  color: white;
  padding: 0.75rem 1.5rem;
  border-radius: 8px;
  font-size: .85rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .05em;
  display: flex;
  align-items: center;
  gap: .5rem;
  transition: all .3s;
}

.room2__btn:hover {
  background: var(--noche);
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(26, 13, 5, 0.2);
}

/* ── AMENITIES ── */
.amen2 {
  padding: 6rem 0;
  background: var(--arena)
}

.amen2__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 1.25rem;
  margin-top: 3rem
}

.amen2__card {
  background: white;
  border-radius: 18px;
  padding: 2rem;
  transition: all .35s;
  position: relative;
  overflow: hidden
}

.amen2__card::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--terra), var(--sol));
  transform: scaleX(0);
  transition: transform .35s
}

.amen2__card:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, .1)
}

.amen2__card:hover::after {
  transform: scaleX(1)
}

.amen2__icon {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: linear-gradient(135deg, var(--terra), var(--ocre));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  margin-bottom: 1.25rem
}

.amen2__icon svg {
  width: 24px;
  height: 24px
}

.amen2__title {
  font-family: 'Amaranth', sans-serif;
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: .5rem;
  color: var(--noche)
}

.amen2__text {
  font-size: .875rem;
  color: var(--gris);
  line-height: 1.65
}

/* ── LOCATION ── */
.loc2 {
  padding: 6rem 0;
  background: white
}

.loc2__grid {
  display: grid;
  gap: 3rem;
  align-items: start
}

@media(min-width:900px) {
  .loc2__grid {
    grid-template-columns: 1fr 1fr
  }
}

.loc2__list {
  display: flex;
  flex-direction: column;
  gap: .875rem;
  margin-top: 2rem
}

.loc2__item {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1rem 1.25rem;
  background: var(--crema);
  border-radius: 12px;
  transition: all .25s
}

.loc2__item:hover {
  background: var(--arena);
  transform: translateX(6px)
}

.loc2__icon {
  width: 40px;
  height: 40px;
  min-width: 40px;
  background: linear-gradient(135deg, var(--terra), var(--ocre));
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white
}

.loc2__icon svg {
  width: 18px;
  height: 18px
}

.loc2__text strong {
  display: block;
  font-weight: 600;
  font-size: .9rem;
  color: var(--noche)
}

.loc2__text span {
  font-size: .8rem;
  color: var(--gris2)
}

.loc2__visual-col {
  display: flex;
  flex-direction: column;
  position: relative
}

.loc2__map {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .12);
  height: 420px;
  position: relative;
  z-index: 2
}

.loc2__extra-card {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 12px 40px rgba(0, 0, 0, .12);
  height: 300px;
  margin-top: -80px;
  margin-left: 2rem;
  z-index: 1;
  position: relative;
  transition: transform .4s ease
}

.loc2__extra-card:hover {
  transform: translateY(10px) translateX(-5px)
}

.loc2__extra-card img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

.loc2__gallery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 2rem;
  margin-left: 2rem;
}

.loc2__gallery-item {
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 10px 30px rgba(0, 0, 0, .1);
  height: 200px;
  transition: transform .4s ease;
}

.loc2__gallery-item:hover {
  transform: translateY(-5px);
}

.loc2__gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media(max-width:900px) {
  .loc2__gallery {
    margin-left: 0;
    gap: 1rem;
  }
}

@media(max-width:600px) {
  .loc2__gallery {
    grid-template-columns: 1fr;
  }
}

@media(max-width:900px) {
  .loc2__extra-card {
    margin-top: 1.5rem;
    margin-left: 0;
    height: 250px
  }
}

.loc2__map iframe {
  width: 100%;
  height: 100%;
  border: 0
}

.loc2__gmaps {
  display: inline-flex;
  align-items: center;
  gap: .5rem;
  margin-top: 1rem;
  background: var(--terra);
  color: white;
  padding: .6rem 1.25rem;
  border-radius: 100px;
  font-size: .8rem;
  font-weight: 600;
  transition: all .2s
}

.loc2__gmaps:hover {
  background: var(--ocre);
  transform: translateY(-2px)
}

/* ── TESTIMONIALS ── */
.testi2 {
  padding: 6rem 0;
  background: linear-gradient(160deg, var(--noche2) 0%, var(--noche) 100%)
}

.testi2 .sec-label {
  color: var(--sol)
}

.testi2 .sec-title {
  color: white
}

.testi2__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 1.5rem;
  margin-top: 3rem
}

.testi2__card {
  background: rgba(255, 255, 255, .07);
  border: 1px solid rgba(255, 255, 255, .1);
  border-radius: 20px;
  padding: 2rem;
  transition: all .35s
}

.testi2__card:hover {
  background: rgba(255, 255, 255, .11);
  transform: translateY(-4px)
}

.testi2__stars {
  display: flex;
  gap: 3px;
  margin-bottom: 1rem
}

.testi2__star {
  color: var(--sol);
  width: 16px;
  height: 16px
}

.testi2__quote {
  font-family: 'Amaranth', sans-serif;
  font-size: 1.05rem;
  font-style: italic;
  color: rgba(255, 255, 255, .88);
  line-height: 1.7;
  margin-bottom: 1.5rem
}

.testi2__author {
  display: flex;
  align-items: center;
  gap: .875rem
}

.testi2__avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--terra), var(--sol));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: .85rem;
  flex-shrink: 0
}

.testi2__name {
  font-weight: 600;
  color: white;
  font-size: .9rem
}

.testi2__city {
  font-size: .78rem;
  color: rgba(255, 255, 255, .5)
}

/* ── CTA ── */
.cta2 {
  padding: 6rem 0;
  background: linear-gradient(135deg, var(--terra) 0%, var(--sol) 100%);
  text-align: center;
  position: relative;
  overflow: hidden
}

.cta2::before {
  content: '';
  position: absolute;
  top: -100px;
  left: -100px;
  width: 400px;
  height: 400px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .08)
}

.cta2::after {
  content: '';
  position: absolute;
  bottom: -80px;
  right: -60px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .06)
}

.cta2__inner {
  position: relative;
  z-index: 1;
  max-width: 700px;
  margin: 0 auto
}

.cta2__title {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(2.2rem, 5vw, 3.5rem);
  font-weight: 900;
  color: white;
  margin-bottom: 1rem;
  text-shadow: 0 2px 12px rgba(0, 0, 0, .2)
}

.cta2__sub {
  color: rgba(255, 255, 255, .88);
  font-size: 1.1rem;
  margin-bottom: 2.5rem;
  line-height: 1.6
}

.cta2__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: center
}

.cta2__btn {
  display: inline-flex;
  align-items: center;
  gap: .6rem;
  padding: .9rem 2rem;
  border-radius: 100px;
  font-weight: 700;
  font-size: 1rem;
  transition: all .25s
}

.cta2__btn--wa { background: #25d366; color: white; border: none; }
.cta2__btn--wa:hover { background: #128c7e; transform: translateY(-3px); box-shadow: 0 10px 20px rgba(37, 211, 102, 0.3); }

.cta2__btn--web { background: var(--sol); color: var(--noche); border: none; }
.cta2__btn--web:hover { background: var(--blanco); transform: translateY(-3px); box-shadow: 0 10px 20px rgba(255, 183, 77, 0.3); }

.cta2__btn--outline {
  background: rgba(255, 255, 255, .15);
  backdrop-filter: blur(10px);
  color: white;
  border: 2px solid rgba(255, 255, 255, .6)
}

.cta2__btn--outline:hover {
  background: white;
  color: var(--terra);
  transform: translateY(-3px)
}

.cta2__note {
  margin-top: 1.5rem;
  font-size: .82rem;
  color: rgba(255, 255, 255, .7)
}

/* ── FOOTER ── */
.foot2 {
  background: var(--noche);
  padding: 4rem 0 1.5rem
}

.foot2__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 3rem;
  margin-bottom: 3rem
}

.foot2__brand img {
  height: 58px;
  width: auto;
  margin-bottom: 1rem
}

.foot2__brand p {
  font-size: .85rem;
  color: rgba(255, 255, 255, .55);
  line-height: 1.7
}

.foot2__title {
  font-family: 'Amaranth', sans-serif;
  font-size: 1.1rem;
  color: white;
  margin-bottom: 1.25rem
}

.foot2__links {
  display: flex;
  flex-direction: column;
  gap: .75rem
}

.foot2__link {
  font-size: .875rem;
  color: rgba(255, 255, 255, .55);
  transition: color .2s
}

.foot2__link:hover {
  color: var(--sol)
}

.foot2__contact-item {
  display: flex;
  gap: .75rem;
  margin-bottom: .875rem;
  align-items: flex-start
}

.foot2__contact-item svg {
  width: 18px;
  height: 18px;
  color: var(--terra);
  flex-shrink: 0;
  margin-top: 2px
}

.foot2__contact-item p {
  font-size: .85rem;
  color: rgba(255, 255, 255, .55);
  line-height: 1.55
}

.foot2__social {
  display: flex;
  gap: .75rem;
  margin-top: 1rem
}

.foot2__soc {
  width: 38px;
  height: 38px;
  border: 1px solid rgba(255, 255, 255, .15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255, 255, 255, .5);
  transition: all .2s
}

.foot2__soc:hover {
  background: var(--terra);
  border-color: var(--terra);
  color: white
}

.foot2__bottom {
  border-top: 1px solid rgba(255, 255, 255, .08);
  padding-top: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: 1rem
}

.foot2__copy {
  font-size: .8rem;
  color: rgba(255, 255, 255, .35)
}

.foot2__legal {
  display: flex;
  gap: 1.5rem
}

.foot2__legal a {
  font-size: .8rem;
  color: rgba(255, 255, 255, .35);
  transition: color .2s
}

.foot2__legal a:hover {
  color: white
}

/* ── SENTAURY CREDIT (dark footer) ── */
.foot2__sentaury {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .75rem;
  padding-top: 2rem;
  margin-top: 1.5rem;
  border-top: 1px dashed rgba(255, 255, 255, .1);
}

.foot2__sentaury-label {
  font-size: .65rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .25);
}

/* Override powerBy.pug link colors for dark footer */
.foot2__sentaury .sentaury-divider {
  display: none;
}

.foot2__sentaury .sentaury-credit {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none !important;
  color: rgba(255, 255, 255, .35) !important;
  transition: color .25s;
}

.foot2__sentaury .sentaury-credit:hover {
  color: var(--sol) !important;
}

.foot2__sentaury .sentaury-credit__icon {
  width: 22px;
  height: 22px;
  color: inherit;
}

.foot2__sentaury .sentaury-credit__label {
  font-size: .78rem;
  font-weight: 400;
  color: inherit;
}

.foot2__sentaury .sentaury-credit__dot {
  width: 3px;
  height: 3px;
  background: rgba(255, 255, 255, .3);
  border-radius: 50%;
}

.foot2__sentaury .sentaury-credit__brand {
  font-weight: 800;
  font-size: .78rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: inherit;
}

/* ── REVEAL ── */
.r {
  opacity: 0;
  transform: translateY(36px);
  transition: opacity .7s ease, transform .7s ease
}

.r.vis {
  opacity: 1;
  transform: translateY(0)
}

.r1 {
  transition-delay: .1s
}

.r2 {
  transition-delay: .2s
}

.r3 {
  transition-delay: .3s
}

.r4 {
  transition-delay: .4s
}

/* ── SUNSET STRIP ── */
.sunset-strip {
  position: relative;
  height: 480px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center
}

.sunset-strip__bg {
  position: absolute;
  inset: 0;
  z-index: 0
}

.sunset-strip__bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 30%
}

.sunset-strip__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(26, 13, 5, .82) 0%, rgba(200, 71, 42, .7) 50%, rgba(245, 166, 35, .5) 100%)
}

.sunset-strip__content {
  position: relative;
  z-index: 1;
  padding: 0 clamp(1rem, 6vw, 6rem);
  max-width: 860px
}

.sunset-strip__eyebrow {
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--sol);
  margin-bottom: 1.5rem
}

.sunset-strip__quote {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(1.8rem, 4.5vw, 3.2rem);
  font-style: italic;
  font-weight: 700;
  color: white;
  line-height: 1.25;
  margin-bottom: 1.5rem;
  text-shadow: 0 2px 16px rgba(0, 0, 0, .4)
}

.sunset-strip__place {
  font-size: .95rem;
  color: rgba(255, 255, 255, .7);
  font-weight: 300;
  letter-spacing: .06em
}

/* ── STATS COUNTER ANIMATION ── */
.about2__stat-num {
  transition: all .3s
}

.about2__stats {
  grid-template-columns: 1fr 1fr
}

/* ── ROOM DETAIL VIEW ── */
.room-detail {
  padding-top: 120px;
  background: var(--crema);
  min-height: 100vh;
}

.room-detail__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  margin-top: 2rem;
}

@media(min-width: 1024px) {
  .room-detail__grid {
    grid-template-columns: 1.2fr 0.8fr;
  }
}

.room-gallery {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: var(--shadow-premium);
  background: white;
}

.room-gallery__main {
  width: 100%;
  height: 500px;
  object-fit: cover;
}

.room-gallery__thumbs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  padding: 10px;
}

.room-gallery__thumb {
  width: 100%;
  height: 80px;
  object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
  transition: opacity .3s;
}

.room-gallery__thumb:hover {
  opacity: 0.8;
}

.room-info {
  background: white;
  padding: 2.5rem;
  border-radius: 24px;
  box-shadow: var(--shadow-premium);
  height: fit-content;
  position: sticky;
  top: 120px;
}

.room-info__title {
  font-family: 'Amaranth', sans-serif;
  font-size: 2.5rem;
  color: var(--noche);
  margin-bottom: 1rem;
}

.room-info__price {
  margin: 1.5rem 0;
  padding: 1.5rem 0;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.room-info__price-val {
  font-size: 2rem;
  font-weight: 700;
  color: var(--terra);
}

.room-info__price-unit {
  font-size: 0.9rem;
  color: var(--gris2);
  margin-left: 0.5rem;
}

/* ── ROOM AMENITIES PREMIUM ── */
.room-amenities-section {
  margin-top: 3.5rem;
}

.room-amenities-header {
  margin-bottom: 2rem;
}

.room-amenities-eyebrow {
  display: block;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--terra);
  margin-bottom: .75rem;
}

.room-amenities-title {
  font-family: 'Amaranth', sans-serif;
  font-size: clamp(1.5rem, 3vw, 2rem);
  color: var(--noche);
  margin-bottom: .75rem;
  line-height: 1.2;
}

.room-amenities-line {
  width: 52px;
  height: 3px;
  border-radius: 99px;
  background: linear-gradient(90deg, var(--terra), var(--sol));
}

.room-amenities-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
  gap: 1rem;
  padding-bottom: 1.5rem;
}

.room-amenity-card {
  display: flex;
  align-items: center;
  gap: .85rem;
  padding: .9rem 1.1rem;
  background: white;
  border: 1px solid rgba(0, 0, 0, .06);
  border-radius: 14px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .05);
  transition: transform .25s ease, box-shadow .25s ease;
  cursor: default;
}

.room-amenity-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, .1);
}

.room-amenity-card__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, var(--terra), var(--sol));
  display: flex;
  align-items: center;
  justify-content: center;
}

.room-amenity-card__icon svg {
  width: 18px;
  height: 18px;
  stroke: white;
}

.room-amenity-card__label {
  font-size: .88rem;
  font-weight: 500;
  color: var(--noche);
  line-height: 1.3;
}

@media(max-width: 600px) {
  .room-amenities-grid {
    grid-template-columns: 1fr 1fr;
  }
}

.btn-book {
  display: block;
  width: 100%;
  background: var(--terra);
  color: white;
  text-align: center;
  padding: 1.2rem;
  border-radius: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  transition: all .3s;
}

.btn-book:hover {
  background: var(--noche);
  transform: translateY(-3px);
}

.other-rooms {
  padding: 6rem 0;
  background: white;
}