/* =================================================
   FUENTES
================================================= */

/*@font-face { font-family:Lemon; src:url('../fonts/LemonMilk.otf'); }*/
@font-face { font-family:Lemon; src:url('../fonts/LemonMilklight.otf'); }
@font-face { font-family:Pieta; src:url('../fonts/Pieta-Thin.ttf'); }

/* =================================================
   VARIABLES
================================================= */

:root{
 --crema:#C8B89D;
 --verde:#414F45;
 --negro:#1D1D1B;
 --blanco:#FFFFFF;

 --font-title: 36px;
 --font-subtitle: 20px;
 --font-text: 15px;

 --gap: 10px;
 --central-gap: 30px;
}

/* =================================================
   BASE
================================================= */

*{box-sizing:border-box;margin:0;padding:0}

body{
 font-family:Pieta;
 background:var(--blanco);
 color:var(--blanco);
 line-height:1.5;
}

body.no-scroll{
 overflow:hidden;
}

/* Animaciones suaves de entrada al hacer scroll */
.reveal-on-scroll{
 opacity:0;
 transform:translateY(18px);
 transition:opacity .5s ease-out, transform .5s ease-out;
 transition-delay:var(--reveal-delay, 0ms);
 will-change:opacity, transform;
}

.reveal-on-scroll.reveal-visible{
 opacity:1;
 transform:translateY(0);
}

@media (prefers-reduced-motion: reduce){
 .reveal-on-scroll,
 .reveal-on-scroll.reveal-visible{
  opacity:1;
  transform:none;
  transition:none;
 }
}

h1,h2,h3,h4{
 font-family:Lemon;
 color:var(--crema);
 letter-spacing:2px;
 font-weight: normal;
}

p{color:var(--blanco)}

button{
 font-family:Pieta;
 background:var(--crema);
 color:var(--verde);
 border:none;
 border-radius: 0;
 cursor:pointer;
 letter-spacing:3px;
 padding-left: 30px;
 padding-right: 30px;
 padding-bottom: 10px;
 padding-top: 10px;
 font-size:27px;
 font-weight: bold;
}

/* =================================================
   HEADER & MENU
================================================= */

header{
 position:fixed;
 top:0;
 width:100%;
 z-index:999;
 transition:.3s;
}

.nav-container{
 display:flex;
 justify-content:space-between;
 align-items:center;
 padding:20px 60px;
}

.logo img{height:60px}

.menu a{
 margin-left:30px;
 text-decoration:none;
 color:#fff;
 font-family:Lemon;
 font-size:14px;
 letter-spacing:1px;
}

.menu-toggle{
 display:none;
 width:46px;
 height:46px;
 background:transparent;
 border:none;
 padding:0;
 border-radius:0;
 align-items: self-end;
 justify-content:center;
 flex-direction:column;
 gap:6px;
 cursor:pointer;
 box-shadow:none;
 transition:background .2s ease;
}

.menu-toggle:focus-visible{
 outline:none;
}

.menu-toggle span{
 width:22px;
 height:2px;
 background:#fff;
 border-radius:0;
 transition:transform .25s ease, opacity .25s ease, background .25s ease;
}

.menu-toggle.is-active span:nth-child(1){
 transform:translateY(8px) rotate(43deg);
}

.menu-toggle.is-active span:nth-child(2){
 opacity:0;
}

.menu-toggle.is-active span:nth-child(3){
 transform:translateY(-8px) rotate(-43deg);
}

.header-white{
 background:#fff;
 box-shadow:0 2px 8px rgba(0,0,0,.08);
}

.header-white .menu a{color:#000}

@media(max-width:900px){
 .nav-container{
  padding:14px 20px;
 }

 .logo img{
  height:50px;
 }

 .menu-toggle{
  display:flex;
 }

 .menu{
  display:flex;
  position:absolute;
  top:100%;
  left:20px;
  right:20px;
  background:#fff;
  border-radius:0;
  border:1px solid rgba(0,0,0,.06);
  box-shadow:0 10px 30px rgba(0,0,0,.18);
  padding:12px;
  flex-direction:column;
  gap:0;
  opacity:0;
  visibility:hidden;
  transform:translateY(-8px);
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease, visibility .2s ease;
 }

 .menu a{
  margin-left:0;
  color:#000 !important;
  font-size:15px;
  padding:12px 8px;
  border-radius:0;
  transition:background .2s ease;
 }

 .menu a:hover{
  background:#f2efe8;
 }

 .menu a + a{
  margin-top:4px;
 }

 .menu.menu-open{
  opacity:1;
  visibility:visible;
  transform:translateY(0);
  pointer-events:auto;
 }

 header.menu-expanded{
  background:#fff !important;
 }

 header.menu-expanded .menu-toggle span{
  background:#000;
 }
}

/* =================================================
   HERO
================================================= */

.hero{
  position:relative;
  height:90vh;
  width:100%;
  overflow:hidden;      /* evita desbordes */
}

/* video como fondo */
.hero-video{
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  object-fit:cover;     /* cover real */
  object-position:center;
  pointer-events:none;  /* evita interferencias */
}

.hero{
  background:#000;
}

/* capa oscura opcional */
.hero-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.15);
}

/* Oscurecer 30% */
.hero::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.15);
    z-index:1;
}

.hero-content {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%); /* Centrado perfecto horizontal y vertical */
  text-align: center;               /* Centra el texto dentro del contenedor */
  z-index: 2;                       /* Importante: debe ser mayor a 1 para estar sobre el overlay */
  color: #ffffff;                   /* Texto blanco para contrastar con la capa oscura */
  width: 90%;                       /* Evita que el texto toque los bordes en móviles */
}

.hero-content h1 {
  font-size: 3.5rem;
  margin-bottom: 0rem;
  font-weight: bold;
  color: white;
  letter-spacing: 10px
}


/* =================================================
   SECCIÓN VERDE INTRO
================================================= */

.verde{
 background:var(--verde);
 padding:70px 8%;
 text-align:center;
}

.intro h1{
 font-size:42px;
 margin-bottom:20px;
}

/* =================================================
   TARJETAS SUPERIORES (4 CUADROS)
================================================= */

.cards{
 margin-top:40px;
 display:grid;
 grid-template-columns:repeat(4,1fr);
 gap:25px;
}

.card{
 background:#fff;
 color:#000;
 text-align:center;
 position:relative;
}

.card img{
 width:100%;
 height:220px;
 object-fit:cover;
}

.card span{font-family:LeelaBold}

.card a{
 display:inline-block;
 margin:10px 0;
 padding:8px 18px;
 background:var(--crema);
 color:#000;
 text-decoration:none;
}

/* flechas */
.prev,.next{
 position:absolute;
 top:40%;
 background:#fff;
 border-radius:50%;
 color:var(--verde);
 border:none;
 padding:8px 12px;
 cursor:pointer;
}

.prev{left:8px}
.next{right:8px}

/* =================================================
   DESCANSO
================================================= */

.descanso{
 text-align:center;
 padding:80px 10%;
}

/* =================================================
   RAZONES (VIDEO)
================================================= */

.razones{
  background: #fff8ed;
  padding:80px 20px;
}

.razones .container{
  max-width:1200px;
  margin:auto;
}

.razones-titulo{
  font-family:Lemon;
  font-size:var(--font-title);
  color:var(--verde);
  text-align:center;
  line-height:1.1;
}

.razones-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:center;
  width:100%;
}

/* TEXTO */
.razones-texto p{
  font-family:Pieta;
  font-size:var(--font-subtitle);
  color:var(--negro);
  margin-bottom:30px;
  text-align: justify;
}

/* BOTON */
.btn-maps{
  display:inline-block;
  background:#414F45;
  color:#fff;
  font-family:Pieta;
  font-size:16px;
  padding-bottom: 10px;
  padding-left: 25px;
  padding-right: 25px;
  padding-top: 5px;
  text-decoration:none;
  letter-spacing:1px;
  transition:.3s;
  border-radius: 0;
}

.btn-maps:hover{
  background:var(--verde);
}

/* VIDEO VERTICAL */
.razones-video {
  display: flex;
  justify-content: end;
}

.razones-video video{
  width:60%;
  height:auto;
  aspect-ratio:9/16;
  object-fit:cover;
  border-radius:0;
  align-items: center;
}

/* RESPONSIVE */
@media(max-width:900px){
  .razones-grid{
    grid-template-columns:1fr;
  }

  .razones-video {
  display: flex;
  justify-content: center;
  }

  .razones-grid{
    gap: 60px;
  }

  .razones-video{
    max-width:350px;
    margin:auto;
  }

  .razones-titulo{
    font-size:22px;
  }
}


/* =========================
   SLIDER HORIZONTAL GRANDE
========================= */

.slider-full{
  position: relative;
  width: 100%;
  height: 80vh;
  overflow: hidden;
}

/* CONTENEDOR DESLIZANTE */
.slider-track{
  display: flex;
  width: 100%;
  height: 100%;
  transition: transform .6s ease-in-out;
  will-change: transform; /* mejora rendimiento */
}

/* IMÁGENES */
.slider-track img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  flex-shrink: 0;
}

.slider-item {
  min-width: 33.333%; /* Muestra 3 imágenes a la vez. Ajusta esto a tu gusto. */
  box-sizing: border-box;
  padding: 5px; /* Espaciado entre imágenes */
}

/* TEXTO ENCIMA */
.overlay-text{
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  color: #fff;
  font-family: Lemon;
  font-size: 40px;
  letter-spacing: 2px;
  text-align: center;
  z-index: 5;
}

.overlay-text p{
  text-transform: none; /* párrafo normal */
  font-size:15px;
  line-height:1.6;
}

/* FLECHAS */
.full-prev,
.full-next{
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.35);
  color: #fff;
  border: none;
  border-radius:50%;
  font-size: 30px;
  padding: 10px 16px;
  cursor: pointer;
  z-index: 10;
  transition: .3s;
}

.full-prev:hover,
.full-next:hover{
  background: rgba(0,0,0,0.6);
}

.full-prev{ left: 20px; }
.full-next{ right: 20px; }

/* =========================
   RESPONSIVE
========================= */

@media (max-width: 1024px){
  .slider-full{
    height: 55vh;
  }

  .overlay-text{
    font-size: 24px;
    bottom: 30px;
  }
}

@media (max-width: 768px){
  .slider-full{
    height: 45vh;
  }

  .overlay-text{
    font-size: 20px;
    width: 90%;
  }

  .full-prev,
  .full-next{
    font-size: 24px;
    padding: 8px 12px;
  }
}

@media (max-width: 480px){
  .slider-full{
    height: 38vh;
  }

  .overlay-text{
    font-size: 16px;
    bottom: 20px;
  }

  .logo img{
  height:30px;
 }
}
/* CAPA OSCURA PARA MEJORAR LEGIBILIDAD */
.slider-full::after{
  content:"";
  position:absolute;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.50); /* ajusta intensidad */
  z-index:2;
}

/* =================================================
   SERVICIOS
================================================= */

/* ===== SERVICIOS ===== */

.servicio-subtitle-abajo h3{
  color: var(--verde);
}

.servicios{
  background:#414F45;
  text-align:center;
  padding:90px 20px;
}

.servicios h1{
  color:#000;
  font-size: var(--font-title);
  margin-bottom:10px;
  font-family: Lemon;
}

.servicios-slider{
  position:relative;
  max-width:1280px;
  margin:40px auto 0;
  overflow:hidden;
}

.servicios-track{
  display:flex;
  gap:30px;
  align-items:flex-start;
  transition:transform .4s ease;
  background-color: #414F45;
}

/* TARJETA */
.servicio {
  /* MAGIA: Toma el 100% del contenedor, le resta los dos huecos (60px total) y lo divide entre 3 */
  flex: 0 0 calc((100% - 60px) / 3); 
  width: calc((100% - 60px) / 3);
  text-align: center;
  background-color: #ffffff;
  border-radius: 0;
  box-sizing: border-box;
}

.servicios-track .servicio-link{
  display:block;
  text-decoration:none;
  color:inherit;
}

.servicio img {
  width: 100%; /* La imagen se adapta al ancho de su nueva tarjeta */
  height: 400px; /* Bajé un poco a 400px para que mantenga buena proporción, puedes subirlo a 500px si gustas */
  object-fit: cover;
  display: block;
}

.servicio h3{
  font-size:var(--font-text);
  margin:18px 0 10px 0;
  color:var(--verde);
}

.servicio p{
  color:#333;
  font-size: var(--font-text);
  max-height: 150px;
  margin:0px 20px 20px 20px;
  padding-bottom: 30px;
  padding-top: 20px;
  padding-left: 10px;
  padding-right: 10px;
  border-radius: 0;
}

.servicio-p p{
  text-align: justify;
  font-family: Pieta;
  max-height: 100%;
  font-size:var(--font-text);
  margin:0px;
  padding: 0px;
}

/* BOTÓN NEGRO */
.btn-negro{
  display:inline-block;
  background:#C8B89D;
  color:#414F45;
  padding:10px 22px;
  text-decoration:none;
  font-size:16px;
  letter-spacing:1px;
  border-radius: 0;
}

/* FLECHAS */
.serv-prev,
.serv-next{
  position:absolute;
  top:45%;
  transform:translateY(-50%);
  background:#fff;
  border:none;
  width:44px;
  height:auto;
  aspect-ratio: 1 / 1;
  border-radius:50%;
  cursor:pointer;
  font-size:var(--font-subtitle);
  box-shadow:0 3px 8px rgba(0,0,0,0.15);
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.serv-prev{ left: 5px; }
.serv-next{ right: 5px; }

/* RESPONSIVE */

@media(max-width:900px){
  .servicio{ min-width:260px; }
}

@media(max-width:1024px){
  .servicios .servicio{
    flex:0 0 calc((100% - 30px) / 2);
    width:calc((100% - 30px) / 2);
  }
}

@media(max-width:600px){
  .servicios-track{ gap:20px; }

  .servicios .servicio{
    flex:0 0 100%;
    width:100%;
  }

  .servicio img{
    height:320px;
  }
}


/* =================================================
   GALERIA
================================================= */

/* Contenedor principal */
.galeria-casitas {
  padding: 30px 0px 0px 0px;
}

.galeria-slider {
  position: relative;
  width: 100%;
  max-width: 100%; /* Evita que salga de la pantalla */
  margin: 0 auto;
  overflow: hidden; /* Recorta lo que sobra del track */
}

.galeria-header{
  width:75%;
  max-width:1200px;
  margin:0 auto 60px auto;
  text-align:center;
}

.galeria-header h1{
  font-size:var(--font-title);
  font-family:Lemon;
  color:var(--verde);
  letter-spacing:2px;
  margin-bottom:25px;
  line-height:1.2;
}

.galeria-header-content {
  margin-top: 30px;
  margin-bottom: 50px;
}

.galeria-header p{
  max-width:650px;
  margin:0 auto;
  font-size:var(--font-subtitle);
  color:var(--negro);
  line-height:1.7;
}

.slider-ventana {
  width: 100%;
  overflow: hidden;
}

.adornito{
  margin: 25px 0;
}

.slider-track {
  display: flex;
  width: 100%; /* Importante para que los hijos sepan cuánto es el 100% */
}

/* BLOQUE DE MOSAICO RESPONSIVO */
.slider-item {
  flex: 0 0 100%; /* Cada bloque ocupa exactamente el ancho de la ventana */
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr); 
  /* Usamos minmax para que la altura sea flexible según el ancho */
  grid-template-rows: repeat(2, minmax(150px, 280px)); 
  gap: 12px;
  padding: 10px;
  box-sizing: border-box;
}

.slider-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  display: block;
  cursor: zoom-in;
}

/* Clases de Mosaico (Asignar a 1 'alto' y 1 'ancho' por cada 6 fotos) */
.slider-item img.alto { grid-row: span 2; }
.slider-item img.ancho { grid-column: span 2; }
.slider-item img.cuadro { grid-row: span 2; grid-column: span 2;}

/* BOTONES AJUSTADOS */
.gal-prev, .gal-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: var(--blanco);
  color: var(--verde);
  border: none;
  width: 60px;
  height: 60px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 3px 10px rgba(0,0,0,0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--font-subtitle);

  /* --- LO NUEVO PARA HACERLO CIRCULAR PERFECTO --- */
  padding: 0;             /* Elimina el relleno por defecto del botón que lo deforma a los lados */
  box-sizing: border-box; /* Asegura que la medida sea de 40x40 exactos */
  flex-shrink: 0;         /* Evita que un contenedor padre lo aplaste horizontalmente */
  aspect-ratio: 1 / 1;    /* Fuerza la proporción cuadrada para el border-radius */
}

.gal-prev { left: 15px; }
.gal-next { right: 15px; }

/* Galeria de inicio: controlar cantidad de imagenes visibles por slide */
.galeria-home .slider-item{
  grid-template-columns:repeat(4, 1fr);
  grid-template-rows:repeat(2, minmax(150px, 280px));
  gap:6px;
}

.galeria-home .slider-item img{
  height:100%;
}

.galeria-home .slider-item img.alto { grid-row: span 2; }
.galeria-home .slider-item img.cuadro { grid-row: span 2; grid-column: span 2; }

/* Ajuste para que en tablets/móviles no se vea tan apretado */
@media (max-width: 768px) {
  .slider-item {
    grid-template-columns: repeat(2, 1fr); /* 2 columnas en lugar de 4 */
    grid-template-rows: repeat(3, 200px); /* 3 filas para acomodar las 6 fotos */
  }

  .galeria-home .slider-item{
    grid-template-columns:repeat(3, 1fr);
    grid-template-rows:1fr;
  }

  .galeria-home .slider-item img{
    grid-row:span 1 !important;
    grid-column:span 1 !important;
    aspect-ratio:1 / 1;
    height:auto;
  }
}

@media (max-width: 500px) {
  .galeria-home .slider-item{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:auto;
  }
}

/*.gal-prev:hover,
.gal-next:hover{
  opacity:.8;
}*/


/* --- ESTILO PARA GALERÍA ESTÁTICA (Mosaico Completo) --- */

/* Contenedor específico para la versión sin slider */
.slider-ventana-02 {
  width: 100%;
  max-width: 1200px; /* Ajusta al ancho de tu diseño */
  margin: 0 auto;
  box-sizing: border-box;
}

/* Forzamos a que el track en esta sección no use flex-row */
.slider-ventana-02 #sliderTrack {
  display: flex;
  flex-direction: column; /* Apila los bloques verticalmente */
  gap: 15px; /* Espacio entre cada bloque de 6 fotos */
  width: 100% !important;
  transform: none !important; /* Anula cualquier intento de movimiento del JS */
}

/* Ajuste de los ítems para que no intenten ser parte de un slider */
.slider-ventana-02 .slider-item {
  flex: 0 0 auto; /* Permite que el bloque mida lo necesario verticalmente */
  width: 100%;
  min-width: 100%;
  /* Mantenemos el grid de 4 columnas que ya definimos */
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: repeat(2, minmax(150px, 300px));
  gap: 15px;
  padding: 0px; /* Espaciado vertical entre bloques */
}

/* Aseguramos que las clases .alto y .ancho sigan funcionando igual */
.slider-ventana-02 .slider-item img.alto { grid-row: span 2; }
.slider-ventana-02 .slider-item img.ancho { grid-column: span 2; }



/* =========================
   POPUP GALERIA CORRECTO
========================= */
/* Estilo del Lightbox */
.lightbox {
  display: none; /* Oculto por defecto */
  position: fixed;
  z-index: 9999; /* Por encima de botones y header */
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9); /* Fondo negro traslúcido */
  align-items: center;
  justify-content: center;
}

.lightbox-contenido {
  max-width: 90%;
  max-height: 85%;
  border-radius: 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: zoomIn 0.3s ease; /* Efecto de apertura */
}

.lightbox-cerrar {
  position: absolute;
  top: 20px;
  right: 35px;
  color: #f1f1f1;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
}

@keyframes zoomIn {
  from {transform: scale(0.7); opacity: 0;}
  to {transform: scale(1); opacity: 1;}
}

/* =========================
   RESPONSIVE
========================= */

@media (max-width:768px){

  .fila img{
    height:160px;
  }

  .gal-prev,
  .gal-next{
    width:36px;
    height:36px;
    font-size:20px;
  }

  .lightbox .nav{
    font-size:34px;
  }

}

iframe {
    width: 100%;
    height: 1100px;
}


/* =================================================
   CASITAS DEL NORTE (4 CUADROS SLIDER)
================================================= */

.casitas{
 background:var(--blanco);
 padding:90px 0px 0px 0px;
 text-align:center;
}

.casitas .titulo-seccion{
  color: var(--verde);
  font-size: var(--font-title);
  font-family: Lemon;
}

.casitas .descripcion{
 max-width:720px;
 margin:15px auto 20px;
 color: var(--negro);
 font-size: var(--font-subtitle);
 font-family: Pieta;
}

.casitas-grid{
 display:grid;
 grid-template-columns:repeat(2,1fr);
 gap:40px;
 max-width:1000px;
 margin:auto;
}

.casita-card{text-align:left}

/* slider */
.slider{
 position:relative;
 overflow:hidden;
}

.slider img{
 width:100%;
 display:none;
}

.slider img.active{display:block}

/* flechas */
.slider button{
 position:absolute;
 top:50%;
 transform:translateY(-50%);
 background:#fff;
 width:36px;
 height:36px;
 border-radius:50%;
 color:var(--verde);
 font-size:18px;
}

.slider .prev{left:10px}
.slider .next{right:10px}

.info{margin-top:15px}

.titulo{
 display:flex;
 justify-content:space-between;
 align-items:center;
}

.titulo h3{
 font-size:18px;
}

.stars{
 color:var(--crema);
 font-size:25px;
}

.datos{
 font-size:20px;
 color:#ddd;
 display:flex;
 gap:92px;
 margin:8px 0 18px;
}

/* =========================
   FOOTER
========================= */

.footer{
  background:#414F45;
  color:#fff;
  font-family:Pieta;

  display:flex;
  align-items:center;
  justify-content:space-between
}

.footer .precio{
    display:flex;
    flex-direction:column;
}

.btn-reservar{
    background:#C8B89D;
    color:#414F45;
    font-weight: bold;
    padding:12px 28px;
    border:none;
    cursor:pointer;
}

.footer2{
  background:#414F45;
  color:#fff;
  font-family:Pieta;
  padding:60px 40px;
  display: flex;
  justify-content: center;
}

.footer-central{
  width:60%;
  max-width:1200px;
  margin:0 auto;
}

/* filas */
.footer-row{
  width:100%;
}

/* fila 1 */
.footer-top{
  display:flex;
  align-items: center;
  grid-template-columns:1fr 1fr 1fr;
  gap:40px;
  margin-bottom:40px;
  justify-content: space-between;
}

.footer-col{
  flex:1;
  min-width:0;
}

.logo-col{
  display:flex;
  justify-content:center;
}

/* columnas */
.footer-col img{
  max-width:180px;
}

.footer-col h4{
  font-weight:700;
  font-size: 15px;
  padding-bottom:6px;
  border-bottom:2px solid #fff;
  display:inline-block;
}

.p-del-footer{
  font-size:11px;
  padding: 0 0 0 0;
  text-align: center;
  max-width: 180px;
  justify-content: center;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* enlaces */
.footer-links{
  display:flex;
  flex-direction:column;
  gap:4px;
  color:#fff;
}

.links-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.links-col .footer-links{
  align-items:center;
}

.links-col h4,
.contact-col h4{
  border-bottom:none;
}

.contact-col{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
}

.contact-col p{
  justify-content:center;
  text-align:center;
}

.footer-links a{
  color:#fff;
  text-decoration:none;
  font-size:20px;
}

.footer-links a:hover{
  opacity:.8;
}

/* contactos */
.contact-col p{
  display:flex;
  align-items:flex-start;
  gap:10px;
      font-size: 14px;
  line-height:1.5;
  margin-bottom:10px;
}

.contact-col img{
  width:18px;
  margin-top:0px;
}

/* fila 3 */
.footer-copy{
  text-align:center;
  font-size:13px;
  opacity:.85;
}


/* =========================
   RESPONSIVE
========================= */

@media(max-width:900px){
    
    iframe {
    width: 100%;
    height: 1156px
}

    
    
        .casitas {
        padding: 40px 40px 0px;
    }

  .footer2 .links-col{
    display:none;
  }

  .footer2 .contact-col h4{
    display:none;
  }

  .footer-top{
    flex-direction:column;
    text-align:center;
    gap:24px;
    margin-bottom:12px;
  }

  .footer-col{
    display:flex;
    flex-direction:column;
    align-items:center;
    width:100%;
  }

  .footer-links{
    align-items:center;
  }

  .links-col h4,
  .contact-col h4{
    margin-bottom:12px;
  }

  .contact-col p{
    justify-content:center;
    text-align:center;
    max-width:360px;
    width:100%;
    margin-left:auto;
    margin-right:auto;
  }

  .footer-copy{
    font-size:13px;
    line-height:1.4;
  }
}

.footer2 a{
  font-size: 14px;
  color:#fff !important;
  text-decoration:none;
}

.footer2 a:visited{
  color:#fff !important;
}

.footer2 a:hover{
  opacity:.8;
}

.pie{
 width: 100%;
 display:flex;
 font-size: 20px;
 background-color: #414F45;
 justify-content: center; /* Centrado horizontal */
 align-items: center;     /* Centrado vertical */
 height: 5vh;           /* Altura opcional para ver el centrado */
}

/* =========================
   INSTAGRAM SECTION
========================= */

.instagram-section{
  background:#C8B89D;
  padding:60px 40px 40px 40px;
  text-align:center;
}

.instagram-grid{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:25px;
  max-width:1200px;
  margin:0 auto;
}

/* cada recuadro */
.insta-box{
  position:relative;
  display:block;
  border-radius:15px;
  overflow:hidden;
}

/* imagen */
.insta-box img{
  width:100%;
  height:220px;
  object-fit:cover;
  display:block;
  transition:filter .4s ease;
}

/* overlay oscuro */
.overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,0.55);
  display:flex;
  justify-content:center;
  align-items:center;
  opacity:0;
  transition:opacity .4s ease;
}

/* icono instagram */
.insta-icon img{
  width:100px;
  height:100px;
}

/* hover */
.insta-box:hover img{
  filter:brightness(50%);
}

.insta-box:hover .overlay{
  opacity:1;
}

/* texto debajo */
.instagram-text{
  margin-top:35px;
  font-size:20px;
  color: #ffffff;
  font-family: Pieta;
}

/* responsive */
@media(max-width:1250px){
  .instagram-grid{
    grid-template-columns:repeat(4, 1fr);
  }

  .instagram-grid .insta-box:nth-child(n+5){
    display:none;
  }
}

@media(max-width:768px){
    
        iframe {
    width: 100%;
    height: 2096px
}

    
  .instagram-grid{
    grid-template-columns:repeat(2, 1fr);
  }

.instagram-grid{
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:15px;
  max-width:1200px;
  margin:0 auto;
}


  .instagram-grid .insta-box{
    display:block;
  }

  .instagram-grid .insta-box:nth-child(n+3){
    display:none;
  }

  .instagram-text{
    margin-top:34px;
  }
}

@media(max-width:480px){
  .instagram-grid{
    grid-template-columns:repeat(2, 1fr);
  }



iframe {
    width: 100%;
    height: 2096px
}

.h-auto {
    height: 1996px;
}

  .instagram-grid .insta-box{
    display:block;
  }

  .instagram-grid .insta-box:nth-child(n+3){
    display:none;
  }
}

/* =========================
   BOTÓN WHATSAPP FLOTANTE
========================= */

.whatsapp-float{
  position:fixed;
  right:25px;
  bottom:25px;
  z-index:9999;
  width:65px;
  height:65px;
  display:flex;
  justify-content:center;
  align-items:center;
  background:#25D366; /* verde oficial */
  border-radius:0;
  box-shadow:0 4px 12px rgba(0,0,0,0.25);
  transition:transform .3s ease, box-shadow .3s ease;
}

.whatsapp-float img{
  width:35px;
  height:35px;
  object-fit:contain;
}

.whatsapp-float:hover{
  transform:scale(1.1);
  box-shadow:0 6px 18px rgba(0,0,0,0.35);
}

/* Responsive */
@media(max-width:768px){
  .whatsapp-float{
    width:55px;
    height:55px;
    right:15px;
    bottom:15px;
  }

  .whatsapp-float img{
    width:30px;
    height:30px;
  }
}

/* ===================================
   SECCIÓN SERVICIOS (ÁREA BLANCA)
=================================== */

.servicios-section{
    background:#ffffff;
    padding:120px 0;
}

/* -------- TÍTULO SUPERIOR -------- */

.servicios-header{
    width:75%;
    max-width:1200px;
    margin:0 auto 80px auto;
    text-align:center;
}

.servicios-header h1{
    font-size:var(--font-title);
    font-family: Lemon;
    color: var(--verde);
    letter-spacing:2px;
    margin-bottom:25px;
    line-height:1.2;
}

.servicios-header p{
    max-width:600px;
  margin:0 auto;
    font-size:var(--font-subtitle);
    color: var(--negro);
}


/* -------- BLOQUES DE SERVICIO -------- */

.servicios-section .servicio {
    width: 100%;
    max-width: 1200px;
    margin: 0 auto 120px auto;
    display: flex;
    justify-content: space-between; /* Esto es la clave: tira la imagen a un lado y el texto al otro */
    align-items: center; 
  scroll-margin-top: 130px;
    /* ¡Asegúrate de NO tener ningún gap aquí! */
}

/* Alternar */
.servicios-section .servicio.reverse {
    flex-direction: row-reverse;
}


/* -------- LAS COLUMNAS -------- */

/* La imagen ocupa EXACTAMENTE su mitad y no se mueve */
.servicio-img {
    flex: 0 0 50%; 
    width: 50%;
    aspect-ratio: 1 / 1; 
    overflow: hidden;
    display: flex;
}

.servicio-img img {
    width: 100%;
    height: 100%;
    object-fit: cover; 
    display: block;
    max-width: unset;
}

/* El texto ocupa menos espacio, dejando un hueco en el medio */
.servicio-info {
    flex: 0 0 45%; /* Cambia este 40% a 45% si quieres que estén más juntos, o 35% para más separados */
    width: 45%;
    display: flex;
    flex-direction: column;
    justify-content: center; 
    align-items: flex-start;
    text-align: left !important;
    padding: 0; /* Limpiamos cualquier padding viejo */
    margin: 0;  /* Limpiamos cualquier margin viejo */
}

.servicio-info .btn-servicio {
    display: inline-block;
    margin: 0; 
}

/* textos (Mantenemos tus estilos originales) */
.servicio-info h1 {
    font-size: var(--font-title);
    color: var(--verde);
}

.servicio-info h2 {
    font-size: 28px;
    margin-bottom: 20px;
}

.servicio-info p {
    line-height: 1.7;
    margin: 20px 0 25px 0;
}

.precio {
    font-weight: bold;
    margin-bottom: 10px;
    text-align: left;
    color: var(--verde);
    font-family: pieta;
    font-size: 40px;
}

/* botón (Mantenemos tus estilos originales) */
.btn-servicio {
    background: var(--crema);
    color: var(--blanco);
    padding: 14px 28px;
    text-decoration: none;
    display: inline-block;
    transition: .3s;

    letter-spacing: 2px;
    font-size: var(--font-subtitle);
    border-radius: 0;
}

  .servicios-section .btn-servicio{
    font-size:16px;
  }

.btn-servicio:hover {
    opacity: .85;
}


/* ===================================
   SECCIÓN EVENTOS
=================================== */

.eventos-section{
    position:relative;
    background:url('../img/servicios/evento-01.webp') center/cover no-repeat;
    padding:160px 0;
    color:#ffffff;
}

.eventos-section-02{
    position:relative;
    background:url('../img/servicios/evento-02.webp') center/cover no-repeat;
    padding:160px 0;
    color:#ffffff;
}

/* OSCURECER */
.eventos-section::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.50);
}

.eventos-section-02::before{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,0.50);
}

/* CONTENIDO CENTRADO */
.eventos-section .eventos-content{
    position:relative;
    width:90%;
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.eventos-section-02 .eventos-content{
    position:relative;
    width:30%;
    max-width:900px;
    margin:0 auto;
    text-align:center;
}

.eventos-content .btn-servicio{
  font-size:16px !important;
}


/* ===================================
   RESPONSIVE
=================================== */

@media(max-width:900px){

    .eventos-section-02 .eventos-content{
        width:83%;
    }
    .servicios-header h1{
        font-size:22px;
    }

    .galeria-header h1{
        font-size:22px;
    }

    .servicios-section .servicio{
    flex-direction:column-reverse;
        text-align:center;
    }

    .servicios-section .servicio.reverse{
    flex-direction:column-reverse;
    }

    .servicios-section .servicio-img,
    .servicios-section .servicio-info{
        width:100%;
    }

    .servicios-section .servicio-img{
      flex:0 0 auto;
      max-width:520px;
      aspect-ratio:4 / 3;
      margin:0 auto 18px;
    }

    .servicios-section .servicio-info{
        flex:0 0 100%;
      width:100%;
      max-width:520px;
      margin:0 auto;
      padding:0 14px;
      box-sizing:border-box;
      align-items:flex-start;
      text-align:left !important;
    }

    .servicios-section .servicio{
        margin-bottom:50px;
    }

    .servicios-section .servicio-info h1{
        font-size:28px;
        line-height:1.2;
    }

    .servicios{ 
      padding: 60px 12px;
    }

    .servicios-section .servicio-info p,
    .servicios-section .servicio-p p{
      max-width:100%;
        margin-left:0;
        margin-right:0;
        line-height:1.65;
        text-align:left;
    }

    .servicios-section .precio{
        text-align:left;
    }

    .servicios-section .btn-servicio{
      align-self:flex-start;
      text-align:left;
    }

    .precio{
        font-size:32px;
    }

}

.img-espejo{
    transform: scaleX(-1);
}

@media(max-width:1200px){
  .footer-central{
    width:80%;
  }
}

@media(max-width:900px){
  :root{
    --font-title:30px;
    --font-subtitle:18px;
    --font-text:14px;
  }

  .hero-content h1{
    font-size:2.2rem;
    letter-spacing:5px;
  }

  .hero{
    height:auto;
    aspect-ratio:16 / 9;
    max-height:72vh;
    min-height:260px;
  }

  .hero-video{
    object-fit:cover;
    object-position:center;
  }

  .casitas{
    padding: 30px 15px 0px;
  }

  .casitas .descripcion{
    margin:15px auto 40px;
  }

  .galeria-header{
    width:90%;
    margin:0 auto 46px auto;
  }

  .btn-maps{
    font-size:15px;
  }

  .btn-negro{
    font-size:15px;
  }

  .eventos-content .btn-servicio,
  .servicios-section .btn-servicio{
    font-size:15px !important;
  }

  .slider-ventana-02 .slider-item{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:none;
    grid-auto-rows:minmax(150px, 230px);
    gap:10px;
  }

  .slider-ventana-02 .slider-item img.alto,
  .slider-ventana-02 .slider-item img.ancho,
  .slider-ventana-02 .slider-item img.cuadro{
    grid-row:span 1;
    grid-column:span 1;
  }

  .servicios-section{
    padding: 30px 0 0 0;
  }


  .servicios-header{
      width:90%;
    margin:0 auto 30px auto;
  }

  .eventos-section,
  .eventos-section-02{
    padding:50px 0;
  }

  .eventos-content h1{
    font-size:30px !important;
    line-height:1.2;
  }

  .eventos-content p{
    font-size:16px !important;
  }

  .footer2{
    padding:40px 20px;
  }

  .servicio-info h1{
    margin-top: 0px;
  }
}

@media(max-width:768px){
  :root{
    --font-title:26px;
    --font-subtitle:17px;
    --font-text:13px;
  }

  

  .hero{
    min-height:220px;
    max-height:58vh;
  }

  .hero-content h1{
    font-size:1.8rem;
    letter-spacing:3px;
  }

  .razones{
    padding:60px 20px;
  }

  .razones-text p{
    line-height: 22px;
  }

  .razones-video video{
    width:105%;
  }

  .servicios-slider{
    margin:30px auto 0;
  }

  .serv-prev,
  .serv-next {
    width:42px;
  }

  .gal-prev,
  .gal-next{
    width:42px;
    height:42px;
  }

  .slider-ventana-02 .slider-item{
    gap:10px;
  }

  .servicios-section .servicio-info h1{
    font-size:26px;
  }

  .servicios-section .servicio-img{
    max-width:460px;
    aspect-ratio:4 / 3;
  }

  .servicios-section .servicio-info{
    width:100%;
    max-width:460px;
    padding:0 12px;
  }

  .servicios-section .servicio-info p,
  .servicios-section .servicio-p p{
    max-width:100%;
  }

  .btn-servicio{
    font-size:16px;
    padding:12px 20px;
  }

  .btn-maps,
  .btn-negro,
  .eventos-content .btn-servicio,
  .servicios-section .btn-servicio{
    font-size:14px !important;
  }

  .precio{
    font-size:28px;
  }

  .instagram-section{
    padding:34px 16px;
  }

  .footer-links a,
  .footer-copy{
    font-size:9px;
  }
}

@media(max-width:520px){
  :root{
    --font-title:22px;
    --font-subtitle:16px;
    --font-text:13px;
  }

  .hero-content h1{
    font-size:1.125rem;
    letter-spacing:2px;
  }

  .hero{
    min-height:300px;
    max-height:48vh;
  }

  .slider-ventana-02 .slider-item{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:none;
    grid-auto-rows:auto;
  }

  .slider-ventana-02 .slider-item img{
    aspect-ratio:1 / 1;
    height:auto;
  }

  .slider-ventana-02{
    padding:0 10px;
  }

  .galeria-header p{
    font-size:14px;
    line-height:1.6;
  }

  .slider-ventana-02 .slider-item img.alto,
  .slider-ventana-02 .slider-item img.ancho,
  .slider-ventana-02 .slider-item img.cuadro{
    grid-row:span 1;
    grid-column:span 1;
  }

  .servicios-section .servicio-img{
    width:92vw;
    max-width:460px;
    aspect-ratio:4 / 3;
    height:auto;
    margin:0 auto 16px;
  }

  .servicios-section .servicio-info{
    width:92vw;
    max-width:420px;
    padding:0;
  }

  .servicios-section .servicio-info h1{
    font-size:21px;
    line-height:1.18;
  }

  .servicios-section .servicio-info p,
  .servicios-section .servicio-p p{
    max-width:100%;
    font-size:13px;
    line-height:1.55;
  }

  .servicios-section .servicio-img img{
    height:100%;
  }

  .servicio h3{
    margin: 10px 0 0 0;
  }

  .servicio-info p{
    margin: 10px 0 10px 0;
  }


  .btn-maps,
  .btn-negro,
  .eventos-content .btn-servicio,
  .servicios-section .btn-servicio{
    font-size:13px !important;
  }

  .eventos-content h1{
    font-size:16px !important;
  }

  .eventos-content p{
    font-size:13px !important;
  }

  .footer-central{
    width:100%;
  }

  .footer2{
    padding:34px 14px;
  }

  .p-del-footer{
    max-width:160px;
    gap:12px;
  }

  .footer-links a{
    font-size:15px;
  }

  .contact-col p{
    max-width:310px;
    font-size:13px;
  }
}

@media (max-width: 900px) {
  .galeria-home .slider-item{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:1fr;
  }

  .galeria-home .slider-item img:nth-child(n+3){
    display:none;
  }

  .galeria-home .slider-item img{
    aspect-ratio:1 / 1;
    height:auto;
    grid-row:span 1 !important;
    grid-column:span 1 !important;
  }

  .slider-item img{
    border-radius: 0px;
  }

  .logo img {
    margin: 0 0 0 0px;
  }
}

@media (max-width: 500px) {
  .galeria-home .slider-item{
    grid-template-columns:repeat(2, 1fr);
    grid-template-rows:1fr;
    padding:6px;
  }

  .galeria-home .slider-item img{
    aspect-ratio:1 / 1;
    height:auto;
  }
}

