:root {
  --size-titulo: 2rem;
  --container-margin: 2rem;
  --hover-menu: #948a71;
}

* {
  margin: 0;
  padding: 0;
}

html {
  scroll-behavior: smooth;
}

body {
  font-family: 'Lato', sans-serif;
}

.container {
  margin: var(--container-margin) var(--container-margin) 0 var(--container-margin);
}

img {
  border-radius: 5px;
}

/* .container {
  max-width: 1200px;
  margin: 0 auto;
} */

header .hero {
  width: 100%;
  height: 100vh;
  background: url(../img/1.jpg);
  background-repeat: no-repeat;
  background-position: center;
  background-size: cover;
  position: relative;
}

header .hero .layer {
  position: absolute;
  width: 100%;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, .4);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
}

header .hero .layer h1 {
  width: 100%;
  font-size: 4em;
  color: #fff;
  text-align: center;
  text-transform: uppercase;
  font-weight: normal;
  line-height: 2em;
  opacity: 0;
  animation: entrada ease-out 2s forwards;
  animation-delay: 2s;
}

header .hero .layer h1 span {
  display: block;
  font-family: 'Pacifico';
  font-size: 2em;
  text-transform: capitalize;
}

header .hero .layer p a {
  text-decoration: none;
  color: #999;
  margin: 3rem 1rem;
  font-size: 2.5rem;
  font-weight: bold;
  opacity: 0;
  animation: entrada ease-out 2s forwards;
  animation-delay: 2s;
}

header .hero .layer p a:nth-last-child(1) {
  font-family: 'Lobster';
}

header .hero .layer p a:nth-last-child(2) {
  letter-spacing: -2px;
  font-weight: 900;
}

.brand {
  display: flex;
  justify-content: space-around;
  border-bottom: solid 15px#cfb071;
  position: sticky;
  top: 0;
  z-index: 10;
  margin-bottom: 5rem;
}

.brand .logo {
  flex: 1.1;
  text-align: center;
  background: #fff;
  position: relative;
  z-index: -2;
}

.brand .logo img {
  width: 100%;
  max-width: 200px;
}

.brand nav {
  --bg-after: #f6e57e;
  --bg-before: #f6e57e;

  background: #f6e57e;
  flex: 1.5;
  position: relative;
}

.brand nav:after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 50%;
  height: 100%;
  transform-origin: 0 100%;
  transform: skew(10deg);
  background: var(--bg-after);
  z-index: -1;
  transition-delay: .5s;
}

.brand nav:before {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 50%;
  height: 100%;
  transform-origin: 0 100%;
  transform: skew(-10deg);
  background: var(--bg-before);
  z-index: -1;
  /* transition-delay: .5s; */
}

.brand nav ul {
  list-style: none;
  display: flex;
  align-items: center;
  width: 100%;
  height: 100%;
  justify-content: space-evenly;
}

/* header .brand nav ul li {
} */
.brand nav ul li {
  width: 100%;
  height: 100%;
}

.brand nav ul li a {
  text-decoration: none;
  text-align: center;
  color: #222;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  text-transform: uppercase;
  transition: .5s;
  position: relative;
  z-index: 0;
}

.brand nav ul li a:hover {
  color: #fff;
}

.brand nav ul li ul {
  display: flex;
  flex-direction: column;
  /*height: 0;*/
  opacity: 0;
  background: #f6e57e;
}

.brand nav ul li.dropdown {
  position: relative;
}


.brand nav ul li.dropdown:before {
  transition: .5s ease all;
  content: '';
  position: absolute;
  top: 44%;
  right: 10px;
  height: 6px;
  width: 6px;
  border: solid 3px;
  border-color: transparent transparent #050505 red;
  transform: rotate(-45deg);
  z-index: 1;
}

.brand nav ul li.dropdown.clicked:before {
  top: 50%;
  border-color: #050505 #050505 transparent transparent;
}

.brand nav ul li.dropdown ul.active {
  opacity: 1;
}


.brand nav ul li a:after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  transform: scaleX(0);
  transform-origin: right;
  transition: 0.5s;
  width: 100%;
  height: 100%;
  background: #948a71;
  z-index: -1;
}

.brand nav ul li a:hover:after {
  transform: scaleX(1);
}


.brand .info {
  flex: 1.1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: #fff;
  position: relative;
  z-index: -2;
}

.brand .info a {
  text-decoration: none;
  text-align: center;
  font-size: 1.5em;
  line-height: 1.5em;
  color: #000;
  padding: 0 2rem;
}

.brand .info a span {
  font-size: .7em;
}

#menu-hamburguesa {
  display: none;
  position: absolute;
  top: 0;
  right: 0;
  margin: 10px;
  font-size: 2em;
  cursor: pointer;
  color: white;
  z-index: 20;
}

.quienes {
  display: flex;
  padding: 1rem;
  margin: 1rem;
  margin-bottom: 5rem;
}

.quienes .texto {
  flex: 1;
}


.quienes .texto h2 {
  text-transform: uppercase;
  font-size: var(--size-titulo);
  border-bottom: solid #3a427c;
  margin-bottom: 2rem;
  width: 98%;
  padding-bottom: .6rem;
}

.quienes .texto p {
  width: 90%;
  font-size: 1rem;
  line-height: 1.5rem;
  padding-right: 3rem;
}

.quienes .texto a {
  text-decoration: none;
  display: inline-block;
  padding: 1rem 4rem;
  text-transform: uppercase;
  background: #3a427c;
  border-radius: 20px;
  margin-top: 5rem;
  font-size: 1.2rem;
  color: white;
}

.quienes .galeria {
  text-align: right;
  display: flex;
  flex-wrap: wrap;
  flex: 1.2;
}

.quienes .galeria div {
  cursor: zoom-in;
}


.quienes .galeria :nth-child(3) {
  position: relative;
}

.quienes .galeria :nth-child(3):after {
  content: 'VER MAS +';
  position: absolute;
  display: flex;
  justify-content: center;
  font-size: 2rem;
  align-items: center;
  border-radius: 5px;
  color: #fff;
  top: 5px;
  left: 4px;
  right: 4px;
  bottom: 7px;
  background: rgba(0, 0, 0, .4);
}

.quienes .galeria img {
  width: 300px;
  height: 200px;
  padding: .2rem;
  object-fit: cover;
  border-radius: 10px;
}

.habitaciones {
  display: grid;
  grid-template-columns: 1fr 1fr;
  padding: 1rem;
  margin: 1rem;
  justify-content: center;
}

.habitaciones .descripcion h2 {
  text-transform: uppercase;
  font-size: var(--size-titulo);
  letter-spacing: 5px;
  margin-bottom: 2rem;
}

.habitaciones .descripcion {
  padding-left: 2rem;
  box-sizing: border-box;
  flex: 1;
}

.habitaciones .descripcion p {
  width: 95%;
  font-size: 1rem;
  line-height: 1.5rem;
}

.habitaciones .fotos {
  background: #ffebc1;
  text-align: center;
  padding: .5rem;
  flex: 1.2;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
}

.habitaciones .fotos div {
  margin: .5rem;
  cursor: zoom-in;
}

.habitaciones .fotos img {
  width: 300px;

  height: 200px;
  object-fit: cover;
}

.habitaciones .descripcion a {
  text-decoration: none;
  display: inline-block;
  padding: 1rem 4rem;
  text-transform: uppercase;
  background: #948a71;
  border-radius: 20px;
  margin-top: 5rem;
  font-size: 1.2rem;
  font-weight: lighter;
  color: white;
}

.habitaciones .descripcion a.volver {
  background: #726241;
  margin-left: 2em;
}

.comodidades {
  margin: 1rem 4rem;
  padding: 2rem;
  display: flex;
  justify-content: space-around;
}

.comodidades h2 {
  text-transform: uppercase;
  font-size: var(--size-titulo);
}

.comodidades .cosas {
  background: #dab9ff;
  padding: .5rem;
  align-self: flex-start;
}

.comodidades .cosas img {
  width: 500px;
  cursor: zoom-in;
}

.comodidades a {
  text-decoration: none;
  display: inline-block;
  padding: 1rem 2rem;
  text-transform: uppercase;
  background: #ac80dc;
  border-radius: 20px;
  margin-top: 5rem;
  font-size: 1.2rem;
  color: white;
}

.comodidades .lista ul {
  list-style: none;
}

.comodidades .lista ul li {
  position: relative;
  padding: 1rem 3rem;
}

.comodidades .lista ul li:before {
  content: url(../img/flechita.png);
  position: absolute;
  top: .8rem;
  left: 0;
}

.carrusel {
  padding: 1rem;
  background: #ffe3bf;
}

.carrusel .galery {
  margin: 0 auto;
  width: 100%;
  text-align: center;
  max-width: 1250px;
  display: flex;
  flex-wrap: wrap;
  cursor: zoom-in
}

.carrusel img {
  margin: 5px;
  width: 300px;
  height: 200px;
  object-fit: cover;
}

.contenedor-comentarios {
  background: #eedeff;
  padding-bottom: 1rem;
}

.contenedor-comentarios h2 {
  text-align: center;
  font-size: 2rem;
  padding-top: 2rem;
  text-transform: uppercase;
  margin: 2rem 0;
}

.comentarios {
  margin: 0 auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
  width: 80%;
  /* grid-template-rows: 200px; */
  justify-items: center;

}


.comentarios .card-comentarios {
  background: white;
  /* width: 30%; */
  /* margin: 1rem; */
  padding: 1rem;
}

/* .comentarios .card-comentarios:last-child {
    
    background-color: red;
  } */

.comentarios .card-comentarios .body-card {
  padding: 1rem;
  border: solid 1px #e1e1e1;
  display: flex;
  align-items: flex-start;
  position: relative;
}

.comentarios .card-comentarios .body-card::after {
  content: '\\/';
  position: absolute;
  color: #e1e1e1;
  font-size: 1.5rem;
  bottom: -1.5rem;
}

.comentarios .card-comentarios .footer-card {
  padding: 1rem;
}

.comentarios .card-comentarios .body-card img {
  flex: 1;
  max-width: 80px;
  padding: 0 1rem;
}

.comentarios .card-comentarios .body-card div {
  flex: 1;
}

.comentarios .card-comentarios .body-card p {
  font-size: .8rem;
  line-height: 1.2rem;
  color: #333;
  font-weight: 300;
  font-family: sans-serif;
  text-align: justify;
}

footer {
  background: #101019;
  padding: 3rem;
}

footer .titulo {
  /* margin-top: 2rem; */
  display: flex;
  justify-content: center;
  color: white;
  align-items: center;
  text-align: center;
  padding: 1rem;
}

footer .titulo h3 {
  color: #666;
  text-transform: uppercase;
}

footer .titulo p {
  margin: .5rem;
}

footer .titulo h3 span {
  color: #654388;
}

footer ul {
  display: flex;
  justify-content: center;
}

footer ul li a {
  color: white;
  text-transform: uppercase;
  text-decoration: none;
  font-size: 1rem;
  padding: 2rem;
}

footer ul li::before {
  content: '|';
  color: white;
  font-size: 2rem;
}

/* .mapa {
  display: flex;
  justify-content: center;
  margin-top: 2rem;
  border-top: solid 2px #3a427c;
  border-bottom: solid 2px #3a427c;
  height: auto;
} */
.mapa {
  padding: 2rem;
  background-color: #f9f9f9;
}

.mapa-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

.mapa-iframe {
  width: 100%;
  height: 300px;
}

/* .mapa-contacto {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.mapa-contacto h2 {
  margin-bottom: 1rem;
}

.mapa-contacto ul {
  list-style: none;
  padding: 0;
}

.mapa-contacto ul li {
  margin-bottom: 0.5rem;
}

.mapa-contacto a {
  color: #007BFF;
  text-decoration: none;
}

.mapa-contacto a:hover {
  text-decoration: underline;
} */

.mapa-contacto {
  text-align: left;
  padding: 1rem;

  h2 {
    font-size: 1.6rem;
    margin-bottom: 1rem;
  }

  p {
    font-size: 1rem;
    margin-bottom: 0.5rem;

    a {
      color: #007BFF;
      text-decoration: none;

      &:hover {
        text-decoration: underline;
      }
    }
  }

  ul {
    list-style: none;
    padding: 0;
    margin-top: 1rem;

    li {
      margin-bottom: 0.5rem;

      a {
        font-size: 1rem;
        color: #007BFF;
        text-decoration: none;

        &:hover {
          text-decoration: underline;
          color: #0056b3;
        }
      }
    }
  }

  /* Media query para dispositivos móviles */
  @media (max-width: 640px) {
    text-align: center;

    h2 {
      font-size: 1rem;
    }

    p {
      font-size: 0.9rem;
    }

    ul li a {
      font-size: 0.9rem;
    }
  }
}

/* Estilo para pantallas grandes */
@media (min-width: 768px) {
  .mapa-grid {
    grid-template-columns: 1fr 1fr;
  }

  .mapa-iframe {
    height: 100%;
  }
}

.whatsapp {
  position: fixed;
  width: 10em;
  height: 10em;
  bottom: -4em;
  left: -2em;
  z-index: 50;
}

.whatsapp img {
  width: 100%;
}

.lightbox {
  position: fixed;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  /* transition: .5s ease all; */
  background: rgba(0, 0, 0, .7);
  z-index: 11;
  display: none;
}

.lightbox.visible {
  display: flex;
}

.lightbox .lightbox-img {
  /* width: 100%; */
  height: auto;
  max-width: 100%;
  max-height: 80vh;
  border: solid .6rem #ccc;
  border-radius: 8px;
}

.lightbox .lightbox-img.anima {
  animation: lightbox .5s ease;
}

.lightbox .lightbox-content {
  position: relative;
  padding: 2rem;
}

.lightbox .lightbox-close {
  font-size: 2rem;
  position: absolute;
  background: #ccc;
  padding: .1rem;
  top: 0;
  right: 0;
  cursor: pointer;
  width: 40px;
  height: 40px;
  text-align: center;
  border-radius: 50%;
}

.lightbox .lightbox-caption {
  width: 100%;
  text-align: center;
  color: #fff;
}

.lightbox .lightbox-controls div {
  background: #ccc;
  position: absolute;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 2rem;
  text-align: center;
  font-weight: bold;
  top: 50%;
  cursor: pointer;
}

.lightbox .lightbox-controls div:hover,
.lightbox .lightbox-close:hover {
  background-color: #fff;
}


.lightbox .lightbox-controls div.prev {
  left: 30px;
}

.lightbox .lightbox-controls div.next {
  right: 30px;
}

.animada {
  animation: bloques 2s ease-in-out forwards;
}

@keyframes lightbox {
  0% {
    transform: scale(0);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes bloques {
  from {
    transform: translateY(1000px);
    opacity: .7;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes entrada {
  from {
    transform: scale(.2);
    opacity: 0;
  }

  to {
    transform: scale(1);
    opacity: 1;
  }
}

@media screen and (min-width: 1400px) {
  .container {
    margin: 0 3rem;
  }

  .quienes .galeria {
    margin: 0 2em;
  }

}

@media screen and (max-width: 640px) {

  .container {
    margin: 0;
  }

  header .hero .layer h1 {
    font-size: 2em;
    line-height: 2em;
  }

  header .hero .layer h1 span {
    font-size: 1.5em;
  }

  header .hero .layer p a {
    display: inline-block;
    margin: 4rem .5rem;
    font-size: 2rem;
  }

  .brand {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    border: none;
  }

  .brand .logo,
  .brand .info {
    display: none;
  }

  .brand nav {
    position: fixed;
    top: 0;
    left: 100%;
    background: rgba(172, 128, 220, .9);
    height: auto;
    transition: .5s ease all;
    visibility: hidden;
    width: 0;
    overflow: hidden;
  }

  .brand nav:after,
  .brand nav:before {
    display: none;
  }

  .brand nav.active {
    left: 0;
    visibility: visible;
    width: 100%;
  }

  .brand nav ul {
    flex-direction: column;
  }

  .brand nav ul li {
    width: 100%;
    /* display: flex;
    align-items: center; */
  }

  .brand nav ul li a {
    padding: 1.8em 0;
  }

  .brand nav ul li.dropdown ul li a {
    padding: 1em 0;
    font-size: .8em;
    background: gray;
  }

  .brand nav ul li.dropdown ul {
    transition: 1s ease all;
    height: 0;
    background: var(--hover-menu);
  }


  .brand nav ul li.dropdown ul.active {
    height: auto;
  }

  .brand nav ul li.dropdown.clicked:before {
    top: 15%;
  }

  .brand nav ul li a {
    /* display: inline-block; */
    /* padding: 2rem 0; */
    border-bottom: solid 1px;
    width: 100%;
    color: white;
    /* padding: 0; */
  }

  #menu-hamburguesa {
    display: block;
    position: fixed;
  }

  .quienes {
    flex-direction: column;
  }

  .quienes .texto h2 {
    font-size: 1.7em;
  }

  .quienes .texto a {
    margin-bottom: 3rem;
  }

  .quienes .galeria {
    position: relative;
  }

  .quienes .galeria div:nth-of-type(1),
  .quienes .galeria div:nth-of-type(2),
  .quienes .galeria div:nth-of-type(4) {
    /* display: none; */
    position: absolute;
    right: 150%;
  }

  .habitaciones {
    grid-template-columns: 1fr;
    grid-template-rows: 2fr minmax(200px, min-content);
  }

  .habitaciones .fotos {
    margin-top: 2rem;
    padding: .2em;
    flex-direction: column;
    justify-content: center;
    grid-row: 2 / 3;
  }

  .habitaciones .fotos img {
    width: 100%;
  }

  .habitaciones .descripcion {
    padding-left: 1rem;
  }

  .habitaciones .descripcion h2 {
    font-size: 1.5em;
  }

  .habitaciones .descripcion a {
    display: block;
    text-align: center;
    width: 50%;
  }

  .habitaciones .descripcion a.volver {
    margin-left: 0;
    margin-right: 0;
    margin-top: 1rem;
  }


  .comodidades {
    margin: 1rem 2rem;
  }

  .comodidades h2 {
    font-size: 2rem;
  }

  .comodidades .lista ul li {
    padding: 1rem 2rem;
  }

  .comodidades .cosas {
    display: none;
  }

  .carrusel {
    display: none;
  }

  .contenedor-comentarios h2 {
    font-size: 1.5rem;
  }

  .comentarios {
    grid-template-columns: 1fr;
    justify-content: center;
    width: 100%;
  }

  .comentarios .card-comentarios {
    width: calc(100% - 2rem);
    padding: 0;
  }

  footer {
    background: #101019;
    padding: 1rem;
    font-size: 1rem;
  }

  footer .titulo {
    padding: .2rem;
  }

  footer .titulo h3 {
    font-size: .7rem;
  }

  footer .titulo p {
    font-size: .6rem;
  }

  footer ul li a {
    font-size: .8rem;
    padding: .3rem;
  }

  footer ul li::before {
    font-size: .8rem;
  }

  .whatsapp {
    bottom: -2em;
    left: -1em;
    width: 8em;
    height: 8em;
  }

}

@media (max-width: 768px) {
  #menu-hamburguesa {
    animation: colorChange linear both;
    animation-timeline: scroll();
    animation-range: 50vh 150vh;
  }

  @keyframes colorChange {
    0% {
      color: #fff;
    }

    100% {
      color: #000;
    }
  }
}