/* ===========================================================
   Cabañas Alma del Bosque — hoja de estilos
   Paleta: noche del bosque de Huitepec + textil chiapaneco
   =========================================================== */

:root{
  /* Color */
  --noche:#111814;
  --noche-2:#1B241E;
  --musgo:#2E4034;
  --musgo-claro:#4A6252;
  --jade:#7FA79B;
  --jade-hondo:#5E8578;
  --jade-palido:#B9D0C7;
  --madera:#6B4A32;
  --barro:#A6613F;
  --lino:#E9E1D3;
  --cal:#F8F5EE;
  --tinta:#202621;
  --tinta-suave:#5A625A;

  /* Tipografía */
  --display:"Fraunces",Georgia,serif;
  --texto:"Karla",system-ui,-apple-system,sans-serif;

  /* Medidas */
  --ancho:1200px;
  --ancho-angosto:760px;
  --radio:2px;
  --transicion:.5s cubic-bezier(.22,.61,.36,1);
}

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

html{scroll-behavior:smooth;}

body{
  margin:0;
  background:var(--cal);
  color:var(--tinta);
  font-family:var(--texto);
  font-size:17px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{max-width:100%;display:block;}
a{color:inherit;}

h1,h2,h3,h4{
  font-family:var(--display);
  font-weight:400;
  font-variation-settings:"SOFT" 40,"WONK" 1;
  line-height:1.1;
  margin:0;
  letter-spacing:-.015em;
}

.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 28px;}
.contenedor-angosto{width:100%;max-width:var(--ancho-angosto);margin:0 auto;padding:0 28px;}

.seccion{padding:110px 0;}
.seccion--oscura{background:var(--noche);color:var(--lino);}
.seccion--musgo{background:var(--musgo);color:var(--lino);}

/* --- Etiqueta / eyebrow --- */
.etiqueta{
  font-size:.72rem;
  letter-spacing:.28em;
  text-transform:uppercase;
  font-weight:600;
  color:var(--jade-hondo);
  display:flex;
  align-items:center;
  gap:14px;
  margin:0 0 22px;
}
.etiqueta::after{
  content:"";flex:1;height:1px;
  background:currentColor;opacity:.3;max-width:120px;
}
.seccion--oscura .etiqueta,.seccion--musgo .etiqueta{color:var(--jade);}

.titulo-seccion{font-size:clamp(2.1rem,4.6vw,3.4rem);max-width:16ch;}
.entrada{font-size:1.08rem;color:var(--tinta-suave);max-width:56ch;margin:22px 0 0;}
.seccion--oscura .entrada,.seccion--musgo .entrada{color:var(--jade-palido);}

/* --- Botones --- */
.boton{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  font-family:var(--texto);font-size:.82rem;font-weight:700;
  letter-spacing:.16em;text-transform:uppercase;
  padding:17px 34px;border:1px solid transparent;border-radius:var(--radio);
  text-decoration:none;cursor:pointer;
  transition:background .35s ease,color .35s ease,border-color .35s ease,transform .35s ease;
}
.boton--jade{background:var(--jade-hondo);color:var(--cal);}
.boton--jade:hover{background:var(--musgo);transform:translateY(-2px);}
.boton--linea{background:transparent;border-color:currentColor;color:inherit;}
.boton--linea:hover{background:currentColor;transform:translateY(-2px);}
.boton--linea:hover span{color:var(--noche);}
.boton--wa{background:transparent;border-color:var(--jade);color:var(--jade-palido);}
.boton--wa:hover{background:var(--jade);color:var(--noche);}

/* ===========================================================
   Navegación
   =========================================================== */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;justify-content:space-between;
  gap:24px;padding:22px 40px;
  transition:background .45s ease,padding .45s ease,box-shadow .45s ease;
}
.nav.fijo{
  background:rgba(17,24,20,.94);
  backdrop-filter:blur(12px);
  padding:14px 40px;
  box-shadow:0 1px 0 rgba(233,225,211,.12);
}
.nav__marca{
  display:flex;align-items:center;gap:12px;
  color:var(--cal);text-decoration:none;
}
.nav__marca img{width:auto;height:54px;flex:none;display:block;transition:height .45s ease;}
.nav.fijo .nav__marca img{height:42px;}
.nav__marca b{
  font-family:var(--display);font-weight:400;font-size:1.05rem;
  letter-spacing:.02em;line-height:1.1;display:block;
}
.nav__marca small{
  display:block;font-size:.6rem;letter-spacing:.3em;
  text-transform:uppercase;opacity:.65;
}
.nav__enlaces{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0;}
.nav__enlaces a{
  color:var(--lino);text-decoration:none;font-size:.78rem;
  letter-spacing:.14em;text-transform:uppercase;font-weight:600;
  padding:6px 0;position:relative;
}
.nav__enlaces a::after{
  content:"";position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--jade);transition:width .35s ease;
}
.nav__enlaces a:hover::after{width:100%;}
.nav__cta{
  background:var(--jade-hondo);color:var(--cal)!important;
  padding:12px 24px!important;border-radius:var(--radio);
}
.nav__cta::after{display:none;}
.nav__cta:hover{background:var(--jade);color:var(--noche)!important;}

.nav__burger{
  display:none;background:none;border:0;cursor:pointer;
  width:42px;height:42px;padding:9px;
}
.nav__burger span{display:block;height:1.5px;background:var(--cal);margin:7px 0;transition:.35s;}
.nav__burger.abierto span:nth-child(1){transform:translateY(8.5px) rotate(45deg);}
.nav__burger.abierto span:nth-child(2){opacity:0;}
.nav__burger.abierto span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg);}

/* ===========================================================
   Portada
   =========================================================== */
.portada{
  position:relative;min-height:100svh;
  display:flex;flex-direction:column;justify-content:flex-end;
  color:var(--cal);overflow:hidden;
}
.portada__fondo{position:absolute;inset:0;}
.portada__fondo img{width:100%;height:100%;object-fit:cover;}
.portada__fondo::after{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(120% 80% at 50% 10%,rgba(17,24,20,.15) 0%,rgba(17,24,20,.75) 70%),
    linear-gradient(to top,rgba(17,24,20,.96) 0%,rgba(17,24,20,.35) 45%,rgba(17,24,20,.55) 100%);
}
.portada__contenido{position:relative;z-index:2;padding:0 0 70px;}
.portada__eyebrow{
  font-size:.72rem;letter-spacing:.34em;text-transform:uppercase;
  color:var(--jade-palido);margin:0 0 26px;font-weight:600;
}
.portada h1{
  font-size:clamp(2.5rem,6.6vw,5.1rem);
  font-variation-settings:"SOFT" 60,"WONK" 1;
  max-width:15ch;margin:0;
}
.portada h1 em{font-style:italic;color:var(--jade-palido);}
.portada__pie{
  display:flex;flex-wrap:wrap;align-items:flex-end;
  justify-content:space-between;gap:34px;margin-top:44px;
}
.portada__texto{max-width:44ch;color:var(--jade-palido);font-size:1.05rem;margin:0;}
.portada__acciones{display:flex;flex-wrap:wrap;gap:14px;}

.portada__scroll{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  z-index:3;font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;
  color:var(--jade-palido);opacity:.7;display:flex;flex-direction:column;
  align-items:center;gap:10px;
}
.portada__scroll::after{
  content:"";width:1px;height:38px;background:currentColor;
  animation:latido 2.6s ease-in-out infinite;
}
@keyframes latido{0%,100%{opacity:.2;transform:scaleY(.4);}50%{opacity:1;transform:scaleY(1);}}

/* ===========================================================
   Buscador de disponibilidad
   =========================================================== */
.buscador{
  position:relative;z-index:5;margin:-46px auto 0;
  max-width:1080px;background:var(--cal);
  box-shadow:0 24px 60px rgba(17,24,20,.22);
  border-radius:var(--radio);
  padding:26px 28px;
  display:grid;grid-template-columns:repeat(4,1fr) auto;gap:20px;align-items:end;
}
.campo{display:flex;flex-direction:column;gap:7px;min-width:0;}
.campo label{
  font-size:.63rem;letter-spacing:.22em;text-transform:uppercase;
  font-weight:700;color:var(--tinta-suave);
}
.campo input,.campo select{
  font-family:var(--texto);font-size:.95rem;color:var(--tinta);
  border:0;border-bottom:1px solid rgba(32,38,33,.22);
  background:transparent;padding:9px 0;width:100%;
  appearance:none;border-radius:0;
}
.campo select{
  background:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%235A625A' stroke-width='1.4'/></svg>") no-repeat right center;
  padding-right:20px;
}
.campo input:focus,.campo select:focus{outline:none;border-bottom-color:var(--jade-hondo);}
.buscador .boton{width:100%;padding:15px 26px;}

/* ===========================================================
   Bienvenida
   =========================================================== */
.bienvenida{display:grid;grid-template-columns:1.05fr .95fr;gap:80px;align-items:center;}
.bienvenida__texto p{color:var(--tinta-suave);}
.bienvenida__figura{position:relative;}
.bienvenida__figura img{border-radius:var(--radio);}
.bienvenida__sello{
  position:absolute;bottom:-34px;left:-34px;
  background:var(--musgo);color:var(--lino);
  padding:26px 30px;border-radius:var(--radio);max-width:220px;
}
.bienvenida__sello strong{
  font-family:var(--display);font-size:2.4rem;display:block;line-height:1;
  font-weight:400;color:var(--jade-palido);
}
.bienvenida__sello span{
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  display:block;margin-top:8px;opacity:.8;
}

/* --- Cifras --- */
.cifras{
  display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:rgba(233,225,211,.18);
  margin-top:70px;
}
.cifra{background:var(--musgo);padding:34px 26px;}
.cifra strong{
  display:block;font-family:var(--display);font-size:2.1rem;
  font-weight:400;color:var(--jade-palido);line-height:1;
}
.cifra span{
  display:block;margin-top:10px;font-size:.72rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--lino);opacity:.75;
}

/* ===========================================================
   Cabañas
   =========================================================== */
.cabanas{display:grid;grid-template-columns:repeat(2,1fr);gap:34px;margin-top:60px;}
.cabana{
  background:var(--cal);border:1px solid rgba(32,38,33,.1);
  border-radius:var(--radio);overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform var(--transicion),box-shadow var(--transicion);
}
.cabana:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(17,24,20,.14);}
.cabana__foto{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--musgo);}
.cabana__foto img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.61,.36,1);}
.cabana:hover .cabana__foto img{transform:scale(1.05);}
.cabana__glifo{
  position:absolute;top:18px;left:18px;width:52px;height:52px;
  background:rgba(17,24,20,.55);backdrop-filter:blur(6px);
  border-radius:50%;display:grid;place-items:center;
}
.cabana__glifo svg{width:26px;height:26px;stroke:var(--jade-palido);fill:none;stroke-width:1.2;}
.cabana__cuerpo{padding:30px 30px 34px;display:flex;flex-direction:column;flex:1;}
.cabana__numero{
  font-size:.65rem;letter-spacing:.26em;text-transform:uppercase;
  color:var(--jade-hondo);font-weight:700;
}
.cabana h3{font-size:2rem;margin:8px 0 0;}
.cabana__lema{color:var(--tinta-suave);font-size:.98rem;margin:12px 0 0;}
.cabana__datos{
  list-style:none;margin:22px 0 0;padding:20px 0 0;
  border-top:1px solid rgba(32,38,33,.1);
  display:flex;flex-direction:column;gap:9px;font-size:.9rem;color:var(--tinta-suave);
}
.cabana__datos li{display:flex;gap:12px;}
.cabana__datos b{
  color:var(--tinta);font-weight:700;min-width:82px;font-size:.68rem;
  letter-spacing:.14em;text-transform:uppercase;padding-top:3px;
}
.cabana__pie{
  margin-top:auto;padding-top:26px;display:flex;
  align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;
}
.cabana__precio strong{
  font-family:var(--display);font-size:1.9rem;font-weight:400;display:block;line-height:1;
}
.cabana__precio span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--tinta-suave);}
.cabana__pie .boton{padding:14px 26px;}

/* ===========================================================
   Amenidades
   =========================================================== */
.amenidades{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:0;margin-top:56px;
  border-top:1px solid rgba(233,225,211,.16);
}
.amenidad{
  padding:24px 20px;border-bottom:1px solid rgba(233,225,211,.16);
  display:flex;align-items:center;gap:14px;font-size:.95rem;
}
.amenidad::before{
  content:"";width:5px;height:5px;border-radius:50%;
  background:var(--jade);flex:none;
}

/* ===========================================================
   Galería
   =========================================================== */
.galeria{
  display:grid;grid-template-columns:repeat(4,1fr);
  grid-auto-rows:200px;gap:14px;margin-top:56px;
}
.galeria figure{margin:0;overflow:hidden;border-radius:var(--radio);background:var(--musgo);cursor:pointer;}
.galeria img{width:100%;height:100%;object-fit:cover;transition:transform 1.1s cubic-bezier(.22,.61,.36,1),filter .5s ease;}
.galeria figure:hover img{transform:scale(1.06);}
.galeria .alto{grid-row:span 2;}
.galeria .ancho{grid-column:span 2;}

/* Visor */
.visor{
  position:fixed;inset:0;z-index:200;background:rgba(17,24,20,.96);
  display:none;place-items:center;padding:40px;
}
.visor.activo{display:grid;}
.visor img{max-width:92vw;max-height:88vh;object-fit:contain;border-radius:var(--radio);}
.visor__cerrar{
  position:absolute;top:24px;right:28px;background:none;border:0;
  color:var(--lino);font-size:2rem;cursor:pointer;line-height:1;
}
.visor__nav{
  position:absolute;top:50%;transform:translateY(-50%);
  background:none;border:1px solid rgba(233,225,211,.35);color:var(--lino);
  width:46px;height:46px;border-radius:50%;cursor:pointer;font-size:1.2rem;
  transition:background .3s ease;
}
.visor__nav:hover{background:rgba(233,225,211,.15);}
.visor__nav.ant{left:24px;}
.visor__nav.sig{right:24px;}

/* ===========================================================
   Tarifas
   =========================================================== */
.tarifas{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:56px;}
.tarifa{
  border:1px solid rgba(32,38,33,.12);border-radius:var(--radio);
  padding:38px 32px;display:flex;flex-direction:column;background:var(--cal);
}
.tarifa--destacada{background:var(--musgo);color:var(--lino);border-color:var(--musgo);}
.tarifa h3{font-size:1.5rem;}
.tarifa__monto{
  font-family:var(--display);font-size:2.9rem;font-weight:400;
  line-height:1;margin:18px 0 4px;
}
.tarifa__monto small{font-family:var(--texto);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;display:block;margin-top:10px;font-weight:600;opacity:.7;}
.tarifa ul{list-style:none;margin:24px 0 0;flex:1;padding:24px 0 0;border-top:1px solid rgba(32,38,33,.12);display:flex;flex-direction:column;gap:11px;font-size:.93rem;}
.tarifa--destacada ul{border-top-color:rgba(233,225,211,.2);}
.tarifa ul li{display:flex;gap:11px;align-items:flex-start;}
.tarifa ul li::before{content:"—";color:var(--jade-hondo);flex:none;}
.tarifa--destacada ul li::before{color:var(--jade);}
.tarifa ul{flex:1;}
.tarifa .boton{width:100%;margin-top:30px;}

.nota-tarifas{
  margin-top:34px;padding:26px 30px;background:var(--lino);
  border-radius:var(--radio);font-size:.92rem;color:var(--tinta-suave);
  display:grid;grid-template-columns:repeat(2,1fr);gap:12px 34px;
}
.nota-tarifas strong{color:var(--tinta);}

/* ===========================================================
   Paquetes
   =========================================================== */
.paquetes{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin-top:56px;background:rgba(233,225,211,.16);}
.paquete{background:var(--noche);padding:36px 30px;}
.paquete h3{font-size:1.3rem;color:var(--lino);}
.paquete p{font-size:.93rem;color:var(--jade-palido);margin:12px 0 0;}
.paquete__num{
  font-size:.65rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--jade);font-weight:700;display:block;margin-bottom:14px;
}

/* ===========================================================
   Ubicación
   =========================================================== */
.ubicacion{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:start;}
.mapa{border-radius:var(--radio);overflow:hidden;border:1px solid rgba(32,38,33,.12);aspect-ratio:4/3;}
.mapa iframe{width:100%;height:100%;border:0;filter:saturate(.75);}
.distancias{list-style:none;margin:34px 0 0;padding:0;}
.distancias li{
  display:flex;justify-content:space-between;gap:20px;
  padding:13px 0;border-bottom:1px solid rgba(32,38,33,.1);font-size:.95rem;
}
.distancias li span:last-child{color:var(--jade-hondo);font-weight:700;font-size:.85rem;white-space:nowrap;}
.como-llegar{margin-top:34px;}
.como-llegar ol{padding-left:20px;color:var(--tinta-suave);font-size:.95rem;}
.como-llegar li{margin-bottom:9px;}

/* ===========================================================
   Preguntas
   =========================================================== */
.preguntas{margin-top:50px;border-top:1px solid rgba(32,38,33,.12);}
.pregunta{border-bottom:1px solid rgba(32,38,33,.12);}
.pregunta button{
  width:100%;background:none;border:0;cursor:pointer;text-align:left;
  font-family:var(--display);font-size:1.18rem;color:var(--tinta);
  padding:24px 44px 24px 0;position:relative;
}
.pregunta button::after{
  content:"+";position:absolute;right:8px;top:50%;transform:translateY(-50%);
  font-family:var(--texto);font-size:1.4rem;color:var(--jade-hondo);
  transition:transform .35s ease;
}
.pregunta.abierta button::after{transform:translateY(-50%) rotate(45deg);}
.pregunta__cuerpo{max-height:0;overflow:hidden;transition:max-height .45s ease;}
.pregunta__cuerpo p{margin:0 0 24px;color:var(--tinta-suave);font-size:.98rem;max-width:62ch;}

/* ===========================================================
   Cierre + pie
   =========================================================== */
.cierre{
  position:relative;padding:130px 0;text-align:center;
  color:var(--cal);overflow:hidden;
}
.cierre__fondo{position:absolute;inset:0;}
.cierre__fondo img{width:100%;height:100%;object-fit:cover;}
.cierre__fondo::after{content:"";position:absolute;inset:0;background:rgba(17,24,20,.78);}
.cierre__contenido{position:relative;z-index:2;}
.cierre h2{font-size:clamp(2rem,4.6vw,3.4rem);margin:0 auto;max-width:18ch;}
.cierre p{color:var(--jade-palido);max-width:52ch;margin:22px auto 0;}
.cierre__acciones{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-top:38px;}

.pie{background:var(--noche-2);color:var(--lino);padding:80px 0 34px;}
.pie__rejilla{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:44px;}
.pie h4{font-size:.7rem;letter-spacing:.24em;text-transform:uppercase;color:var(--jade);margin-bottom:20px;font-family:var(--texto);font-weight:700;}
.pie ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:11px;}
.pie a{color:var(--lino);text-decoration:none;opacity:.8;font-size:.93rem;transition:opacity .3s ease,color .3s ease;}
.pie a:hover{opacity:1;color:var(--jade-palido);}
.pie__logo{width:190px;height:auto;margin-bottom:22px;}
.pie__marca p{font-size:.93rem;opacity:.7;max-width:34ch;margin:0;}
.pie__abajo{
  margin-top:60px;padding-top:26px;border-top:1px solid rgba(233,225,211,.14);
  display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  font-size:.78rem;opacity:.6;
}

/* Botón flotante de WhatsApp */
.wa-flotante{
  position:fixed;right:22px;bottom:22px;z-index:90;
  width:56px;height:56px;border-radius:50%;
  background:#25D366;display:grid;place-items:center;
  box-shadow:0 10px 28px rgba(17,24,20,.3);
  transition:transform .35s ease;
}
.wa-flotante:hover{transform:scale(1.08);}
.wa-flotante svg{width:29px;height:29px;fill:#fff;}

/* Animación de entrada */
.revelar{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.22,.61,.36,1);}
.revelar.visible{opacity:1;transform:none;}

/* ===========================================================
   Responsive
   =========================================================== */
@media (max-width:1024px){
  .nav{padding:14px 20px;}
  .nav__marca img{height:44px;}
  .nav.fijo .nav__marca img{height:38px;}
  .nav__enlaces{
    position:fixed;inset:0 0 0 auto;width:min(340px,82vw);
    background:var(--noche);flex-direction:column;align-items:flex-start;
    justify-content:center;gap:26px;padding:40px;
    transform:translateX(100%);transition:transform .45s cubic-bezier(.22,.61,.36,1);
  }
  .nav__enlaces.abierto{transform:none;}
  .nav__burger{display:block;z-index:110;}
  .buscador{grid-template-columns:repeat(2,1fr);}
  .buscador .boton{grid-column:1/-1;}
  .bienvenida,.ubicacion{grid-template-columns:1fr;gap:50px;}
  .bienvenida__sello{left:20px;bottom:20px;}
  .cifras{grid-template-columns:repeat(2,1fr);}
  .amenidades{grid-template-columns:repeat(2,1fr);}
  .tarifas,.paquetes{grid-template-columns:1fr;}
  .paquetes{gap:1px;}
  .galeria{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px;}
  .pie__rejilla{grid-template-columns:repeat(2,1fr);gap:36px;}
}

@media (max-width:640px){
  body{font-size:16px;}
  .seccion{padding:76px 0;}
  .contenedor,.contenedor-angosto{padding:0 20px;}
  .portada__contenido{padding-bottom:56px;}
  .buscador{grid-template-columns:1fr;margin-top:-30px;padding:24px 22px;}
  .cabanas{grid-template-columns:1fr;}
  .cifras,.amenidades{grid-template-columns:1fr;}
  .nota-tarifas{grid-template-columns:1fr;}
  .galeria{grid-template-columns:1fr;grid-auto-rows:230px;}
  .galeria .ancho,.galeria .alto{grid-column:auto;grid-row:auto;}
  .pie__rejilla{grid-template-columns:1fr;}
  .portada__acciones{width:100%;}
  .portada__acciones .boton,.cierre__acciones .boton{width:100%;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important;}
  .revelar{opacity:1;transform:none;}
  html{scroll-behavior:auto;}
}

:focus-visible{outline:2px solid var(--jade);outline-offset:3px;}

/* ===========================================================
   Carrusel de fotos por cabaña
   =========================================================== */
.carrusel{position:relative;}
.carrusel__pista{position:relative;width:100%;height:100%;}
.carrusel__pista img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  opacity:0;transition:opacity .6s ease;
}
.carrusel__pista img.activa{opacity:1;}
.cabana:hover .carrusel__pista img.activa{transform:none;}

.carrusel__flecha{
  position:absolute;top:50%;transform:translateY(-50%);z-index:3;
  width:38px;height:38px;border-radius:50%;cursor:pointer;
  background:rgba(17,24,20,.5);backdrop-filter:blur(4px);
  border:1px solid rgba(233,225,211,.35);color:var(--cal);
  font-size:1.15rem;line-height:1;display:grid;place-items:center;
  opacity:0;transition:opacity .35s ease,background .3s ease;
}
.carrusel:hover .carrusel__flecha{opacity:1;}
.carrusel__flecha:hover{background:var(--jade-hondo);}
.carrusel__flecha.ant{left:12px;}
.carrusel__flecha.sig{right:12px;}

.carrusel__puntos{
  position:absolute;bottom:14px;left:0;right:0;z-index:3;
  display:flex;justify-content:center;gap:7px;
}
.carrusel__punto{
  width:7px;height:7px;border-radius:50%;cursor:pointer;padding:0;
  background:rgba(248,245,238,.5);border:0;transition:.3s;
}
.carrusel__punto.activo{background:var(--cal);width:22px;border-radius:4px;}

/* En pantallas táctiles las flechas se quedan visibles */
@media (hover:none){
  .carrusel__flecha{opacity:1;background:rgba(17,24,20,.4);}
}
