:root{
  --gap:min(30px,5vw);
  --gap2:min(60px,10vw);
  --cp:#65594f;
  --cp2: #b19e8f;
  --cs:#fe4d25;
  --grad:linear-gradient(to bottom, rgba(0, 0, 0, .7), rgba(0, 0, 0, 0));
  --caja:min(1280px, 95%);
  --tipo1:'Jost',cursive;
  --tipo2:'Source Serif 4',cursive;
  --tipo3: "Oooh Baby", cursive;
  --sombra: drop-shadow( 0 8px 8px -4px #000);
  --textura: #857d74 url("../img/textura.png");
}
body {
  font-family: var(--tipo1);
  font-weight: 400;
  font-style: normal;
  background: #121212 url(../img/wood-3.png);
  min-height: 100svh;
  font-optical-sizing: auto;
  font-style: normal;
}
p {font-family:'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif;}
.caja {width: var(--caja); margin: 0 auto;}
/* Video Hero */
.hero {
  position: relative;
  width: 100%;
  height: calc(100vw / (1920/720));
  overflow: hidden;
  z-index: 0;
}
.hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  text-align: center;
  width: 90vw;
  line-height: 1;
  text-align: center;
}
.hero-content h2 {
  font-size: clamp(2.5rem, 4vw, 5rem);
  color: #fff;
  filter: drop-shadow(8px 8px 8px rgba(0 0 0 / .8));
}

.suites .hero-content h2,
.cabanas .hero-content h2 {
  font-size: clamp(4rem, 8vw, 5rem);
}

.hero-content > div > div {
  display: flex;
  justify-content: space-between;
  width: calc(var(--caja) *.7);
  margin: var(--gap) auto;
}
footer {
  margin: 60px auto;
  text-align: center;
  color: #fff;
  padding-bottom: 100px;
}
footer > div {
  padding:3vw 0;
  margin: 0 auto;
  display: flex;
  flex-flow: column-reverse;
  align-items: center;
  gap: 30px;
}
footer h2 {
  font-size: 14px;  
  padding: 8px 8px 16px 4px;
  font-family: var(--tipo2);
  color: #fff;
}
.hero picture img {
  width: 100%;
}
/* Media Queries */
@media (max-width: 768px) {
  .hero {
    height: 80svh;
  }
  .hero picture img {
    object-fit: cover;
    height: 80svh;
  }
  .hero picture img {
    object-fit: cover;
    height: 80svh;
  }
}
@media (min-width: 1024px) {
  footer > div {
    display: flex;
    flex-flow: row;
    justify-content: space-between;
    width: calc(var(--caja)*.5);
  }
  footer h2 {
    text-align: left;
  }
}
/* Main */
main section > div {
  width: var(--caja);
  padding: min(60px, 10vw);
  margin: 0 auto;
}

.woody main section > div:first-child {
  padding-bottom: min(90px, 30vw);
}

.damero {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
  gap: min(60px, 10vw);
  place-content: center;
  width: 100%;
  text-align: center;
  color:#fff;
  font-size: clamp(2rem, 4vw, 3rem);
}
.damero a { 
  position: relative;
  transition: all 400ms ease-out;
  border: 20px solid #fff;
}
.damero a h3,
.grid h3 {
  font-family: var(--tipo2);
  letter-spacing: -1px;
  font-weight: 400;
}
.damero a span { 
  font-size: 16px;
  padding:0 30px 8px;
  font-weight: 400;
  border-bottom: solid 1px rgba(255 255 255 / .3);
  font-family: var(--tipo1);
}
.damero a div {
  padding: var(--gap) var(--gap) 60px;
  background-color: rgba(0 0 0 / .7);
  position: absolute;
  top:50%;
  left:50%;
  transform: translate(-50%,-50%);
  width: 50%;
  transition: all 400ms ease-out;
}
.damero a:hover {
  transform: scale(.99);
  border: 30px solid #fff;
}
.damero a:hover div {
  padding-bottom: calc(var(--gap) * 3);
  border-bottom: solid 10px var(--cs);
  background-color: rgba(0 0 0 / .9);
}
.damero a:hover p {color:var(--cs);}
.damero a:hover img {filter: grayscale(1);}
.damero a p {font-size: 14px;}
h1{
  font-size: clamp(12px,2vw,14px);
  font-family:var(--tipo2);
  padding: 8px 15px;
  width: fit-content;
  background: #fff url(../img/wood.png);
    color: #222;
  margin: 0 auto 8px;
}

h2 {
  font-size: clamp(1.5rem, 2.4vw, 3rem);
  line-height: 1;
  text-align: center;
  color: var(--cp);
  filter: var(--sombra);
}
h3.sep { 
  font-size: clamp(1.5rem, 2.4vw, 3rem);
  line-height: 1;
  text-align: center;
  color: var(--cp);
  color: #fff;
  padding: 0 0 45px;
  margin:60px auto 30px;
  width: fit-content;
}
h4 {
  font-size: clamp(1.8rem, 2vw, 2rem);
  line-height: 1.2;
}

.copete {
  margin-top: -5vh;
  background-color: #fff;
  box-shadow: 0px -15px 10px rgba(0 0 0 / .1);
  text-align: center;
  border-radius: 8px 8px 0 0 ;
}
.copete h2 {
  font-size: clamp(3rem, 5vw, 4rem);
  color: var(--cp);
  margin: 0 60px 30px;
}
.copete p {
  font-size: clamp(1.5rem,18px,3rem);
  margin: var(--gap) auto;
  width: min(640px, 90%);
  color: var(--cp);
  font-family: var(--tipo2);
}
.copete p + p {
  font-size: clamp(1rem, 14px, 2rem);
  font-family: var(--tipo1);
}
.copete p span {
  font-family: var(--tipo3);
  color: #433c35;
  font-size: 105%;
  line-height: .95;
  font-weight: 700;
}
section {
  position: relative;
  z-index: 2;
}
section > div {
  background-color: #fff;
  position: relative;
  z-index: 2;
}
section:last-of-type > div {
  border-radius: 0 0 8px 8px;
}
section:last-of-type::after {
  content: "";
  display: block;
  height: 10px;
  width: var(--caja);
  margin: 0 auto;
  background-color: rgba(0 0 0 / .7);
  filter: blur(3px);
  transform: scaleX(.98);
  border-radius: 3px;
}
#cabanas {
  z-index: 1;
}
#cabanas > div {
  background:#857d74;
  background-image: url("../img/textura.png");
}
.png {
  position: absolute;
  left: 0;
  top: 80%;
  z-index: 9999;
  cursor: pointer;
}
.png img + img {
  position: absolute;
  top:0;
  left:0;
  opacity: 0;
}
.png:hover img + img {
  opacity: 1;
}
.png:hover > img {
  opacity: 0;
}
footer > div.legal {
  font-size: 16px;
  color: rgba(255 255 255 / .5);
  width: 100%;
  text-align: center;
  display: block;
  width: var(--caja);
  font-family: var(--tipo2);
}
.masonry {
  display: grid;
  grid-template-columns: 1fr;
  grid-auto-rows: 80vw;
  gap: 15px;
  width: var(--caja);
  margin: var(--gap) auto;
}
.masonry > * {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
div.detalle {
  margin: var(--gap) auto 0;
  width: 100%;
}
div.detalle h3 {
  padding: 15px 30px;
  cursor: pointer;
}
div.detalle:not(.visible) h3 {
  box-shadow: 0 8px 8px -4px var(--cp);
}
div.detalle.visible h3 {
  background-color: var(--cp);  
  color: #fff;
}
div.detalle h3:hover {
  background-color: var(--cs) !important;
  color: #fff !important;
}
div.detalle h3 + * {
  font-size: 16px;
  list-style: none;
  text-align: left;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height 600ms ease-out, opacity 600ms ease-out;
}
.detalle.visible h3 + * {
  max-height: 2000px;
  opacity: 1;
}
div.detalle h3 + * strong {
  font-weight: 700;
  display: block;
  border-bottom: solid 1px #ccc;
  margin-bottom: 8px;
  margin-top: 30px;
}
div.detalle:not(.visible) h3 {
  cursor: pointer;
  width: fit-content;
  background-color: var(--cp);
  color: #fff;
  margin: var(--gap) auto 0;
}
div.detalle.visible {
  background-color:#f7f7f7;
  box-shadow: 0 8px 8px -4px var(--cp);
  margin: 100px auto;
  border: 20px solid var(--cp2);
  padding: 15px 20px 60px;
}
div.detalle h3 + * {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3vw;
  margin-top: 15px;
}
.detalle.visible svg {
  margin: 0 auto;
  display: block;
  height: auto;
  width: 100%;
  margin-top: 5vw;
}
.masonry video {
  display: none;
}



@media (min-width: 1024px) {
  .masonry video {
    display: inherit;
  }
  .masonry {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(7, 150px);
    grid-template-areas:
      "f1 f1 f1 f2"
      "f1 f1 f1 f2"
      "f3 f3 f4 f4"
      "f3 f3 f4 f4"
      "f3 f3 f6 f6"
      "f5 f5 f6 f6"
      "f5 f5 f6 f6";
  }
  .masonry > * {object-fit: cover; background-color: #b19e8f;}
  .masonry > *:nth-child(1) {grid-area: f1;}
  .masonry > *:nth-child(2) {grid-area: f2;}
  .masonry > *:nth-child(3) {grid-area: f3;}
  .masonry > *:nth-child(4) {grid-area: f4;}
  .masonry > *:nth-child(5) {grid-area: f5;}
  .masonry > *:nth-child(6) {grid-area: f6;}
  
  div.detalle {width: calc(var(--caja)*.8);}
  div.detalle h3 + * > :last-child {grid-column: span 2;}
    div.detalle h3 + * {grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));}
  .detalle.visible svg { width: 90%;margin-top: 60px;}
}
@media (min-width: 1440px) {
  div.detalle {
    width: calc(var(--caja)*.7);
  }
  .detalle.visible svg {
    width: 80%;
  }
}
.suites .hero h2 {
  font-weight: 500;
}
.textura {
  background: var(--textura);
}
.grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: var(--gap, 30px);
}

.grid h3 {
  font-size: clamp(1.8rem, 2vw, 2rem);
  color: var(--cp);
}
.grid p {
  font-size: clamp(1rem, 1.2vw, 1.2rem);

  margin-bottom: min(15px, 2vw);
}
.grid p a {
  color: var(--cs);
  text-decoration: none;
  font-weight: 500;
  transition: color 300ms ease-in-out;
  border-bottom: solid 1px var(--cs);
  display: inline-block;
}
.grid p a:hover {
  color: var(--cp);
  border-color: var(--cp);
}

.grid img {
  margin-bottom: min(15px, 2vw);
}

.grid strong {
  font-weight: 700;
}

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

.grid img[src*="ico-"] {
  border-radius: 50%;
  display: block;
  width: min(200px, 40vw);
  margin: var(--gap) auto;
}

.suites section:last-of-type > div,
.cabanas section:last-of-type > div{
      background: #857d74;
      background-image: url("../img/textura.png"); 
}

.legales {
  color: #fff;
  text-align: center;
  padding: var(--gap2) 0;
}

.legales .grid {
  gap: var(--gap);
}