/* ==========================================================================
   Ruka Moquehue
   Paleta "Piedra y ámbar". Un solo mundo visual claro, sin modo oscuro.

   ESCRITO DESDE EL CELULAR HACIA ARRIBA. Las reglas de arriba de todo son
   las del móvil; las pantallas grandes solo agregan columnas con min-width.
   No usar max-width para maquetar: rompe el orden de lectura del archivo.

   Puntos de corte:  600px tablet chica · 900px escritorio · 1200px tope

   Colores, letra, esquinas y foco compartidos con el panel: css/tokens.css
   (se carga antes que esta hoja). Guía de estilo: GUIA-ESTILO.md.
   ========================================================================== */

:root{
  /* Lo compartido con el panel (colores base, ámbar, estados, WhatsApp, escala de letra,
     pesos, espacios --e-*, esquinas, --tap y foco) vive en css/tokens.css, que se carga
     ANTES de esta hoja. Acá va solo lo de la web y lo que difiere del panel (esto pisa a
     tokens.css porque viene después). Guía: GUIA-ESTILO.md en la raíz. */
  /* color */
  --paper-vidrio:rgba(252,251,249,.93);
  --ink-soft:#5A656B;       /* difiere: el panel usa #4F5B61 */
  --on-slate-soft:#A9B3B8;
  --amber-sombra:rgba(169,110,12,.5);
  --wa:#0F7A40;             /* difiere: acá es el relleno del botón de WhatsApp, con --on-wa encima (5,41:1) */

  /* forma: un solo sistema de esquinas en todo el sitio */
  --r:16px;                 /* difiere: el panel usa 14px */
  --r-sm:12px;              /* difiere: el panel usa 10px */

  --sombra:0 22px 52px -34px rgba(20,24,26,.34);
  --sombra-alta:0 30px 64px -30px rgba(20,24,26,.4);

  --nav-h:64px;
  --tap:48px;               /* difiere: el panel usa 46px. Medida mínima de todo lo que se toca */

  /* UX-2 punto 6: la escala de letra es la de tokens.css; ningún font-size nuevo sin var(--t-*) */
  --t-xs:.8rem;             /* difiere: la web pide 12,8 px de piso; el panel .78rem (12,5 px) */
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
/* Al llegar por un ancla, la barra fija no puede tapar el titulo. */
[id]{scroll-margin-top:calc(var(--nav-h) + 1.2rem)}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"DM Sans","Segoe UI",system-ui,-apple-system,sans-serif;
  font-size:17px;
  line-height:1.64;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  /* deja lugar abajo para la barra fija de reserva (UX-2 punto 54: la barra
     mide hasta 76 px; con 80 el pie queda siempre por encima) */
  padding-bottom:calc(80px + env(safe-area-inset-bottom));
}

img,picture,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit}
button{font-family:inherit;font-size:inherit}

h1,h2,h3{
  margin:0;
  font-family:"Bricolage Grotesque","Segoe UI",sans-serif;
  font-weight:600;
  letter-spacing:-.024em;
  line-height:1.06;
  text-wrap:balance;
}

/* UX-2 punto 9: un solo foco para todo: 3 px ambar con 2 px de aire. */
:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-radius:4px}

/* enlace para saltar el menú, solo aparece con el teclado */
.saltar{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--ink);color:var(--paper);
  padding:.8rem 1.2rem;text-decoration:none;
}
.saltar:focus{left:0}

.wrap{
  width:100%;
  max-width:1200px;
  margin:0 auto;
  padding:0 1.15rem;
}
.eyebrow{
  margin:0 0 1.1rem;
  font-size:var(--t-xs);font-weight:600;letter-spacing:.16em;
  text-transform:uppercase;color:var(--amber-texto);
}
.muted{color:var(--ink-soft)}

/* ==========================================================================
   Botones. Todo lo que se toca mide al menos 48px de alto.
   ========================================================================== */
.pill{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:var(--tap);
  padding:.78rem 1.5rem;
  border:0;border-radius:999px;
  background:var(--amber-boton);color:var(--on-amber);   /* UX-2 punto 1: letra oscura, como el panel */
  font-size:var(--t-md);font-weight:600;
  text-decoration:none;white-space:nowrap;cursor:pointer;
  box-shadow:0 12px 26px -18px var(--amber-sombra);
  transition:background-color .2s ease,filter .2s ease,transform .12s ease,box-shadow .2s ease;
}
.pill:hover{background-color:var(--amber-boton-hover);box-shadow:0 16px 32px -16px var(--amber-sombra)}
.pill:active{transform:translateY(1px)}

.pill-quiet{
  background:transparent;color:var(--ink);
  border:1px solid var(--line);box-shadow:none;
}
.pill-quiet:hover{background:var(--stone);filter:none;box-shadow:none}

.link{
  display:inline-flex;align-items:center;min-height:var(--tap);
  font-size:var(--t-md);font-weight:600;color:var(--ink);
  text-decoration:none;
}
.link span{border-bottom:1.5px solid var(--amber);padding-bottom:2px}

/* ==========================================================================
   Banda de idioma: aviso breve para quien llega en ingles a una pagina
   en espanol. Se ubica antes que la barra superior; empieza oculta y
   js/sitio.js la muestra solo si corresponde.
   ========================================================================== */
.banda-idioma :focus-visible{outline-color:var(--amber-claro)} /* sobre pizarra el #A96E0C no se ve: el claro da 5,6:1 */
.banda-idioma{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:.4rem 1rem;
  padding:0 3.4rem 0 1rem;   /* UX-2 punto 10: el alto lo da el link de 44 px */
  background:var(--slate);color:var(--on-slate);   /* UX-2 punto 19: aviso secundario, sin el ámbar de "reservá" */
  font-size:var(--t-sm);text-align:center;position:relative;
}
.banda-idioma[hidden]{display:none}
.banda-idioma a{
  display:inline-flex;align-items:center;min-height:44px;   /* UX-2 punto 10 */
  color:var(--on-slate);font-weight:600;text-decoration:underline;
  text-underline-offset:2px;
}
.banda-idioma a:hover{text-decoration-thickness:2px}
#bandaIdiomaCerrar{
  position:absolute;right:.3rem;top:50%;transform:translateY(-50%);
  width:44px;height:44px;border:0;border-radius:50%;   /* UX-2 punto 10: antes 28 */
  background:transparent;color:var(--on-slate);
  font-size:var(--t-xl);line-height:1;cursor:pointer;
}
#bandaIdiomaCerrar:hover{background:rgba(242,240,235,.14)}

/* ==========================================================================
   Encabezado y menú. Base: hamburguesa a pantalla completa.
   ========================================================================== */
.topbar{
  position:sticky;top:0;z-index:50;
  background:var(--paper-vidrio);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;
  transition:border-color .3s ease,box-shadow .3s ease;
}
.topbar.pegado{
  border-bottom-color:var(--line);
  box-shadow:0 10px 30px -26px rgba(20,24,26,.5);
}
.topbar-in{display:flex;align-items:center;gap:1rem;height:var(--nav-h);transition:height .25s ease}
/* R-1: el encabezado se achica un poco al hacer scroll, para devolver
   pantalla. Solo en el celular; en escritorio la altura no cambia. */
@media (max-width:899px){
  .topbar.pegado .topbar-in{height:54px}
  .topbar.pegado .logo-marca{width:30px;height:14.8px}
}

.logo{display:inline-flex;align-items:center;gap:.45rem;min-height:var(--tap);text-decoration:none;margin-right:auto}   /* arreglos tanda 4 (punto 58): con el SVG el link medía 23-30 px de alto */
/* UX-2 punto 58: el logo es un SVG en línea (sol, cerro y techo). */
.logo-marca{flex:none;width:36px;height:17.8px;transition:width .25s ease,height .25s ease}
.logo-sol{fill:var(--amber-claro)}
.logo-cerro{fill:var(--amber-boton);stroke:var(--paper);stroke-width:1.4;stroke-linejoin:round}
.logo-casa{fill:var(--amber);stroke:var(--paper);stroke-width:1.8;stroke-linejoin:round}
.logo-ventana{fill:var(--paper)}
.logo b{
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;
  font-size:var(--t-md);letter-spacing:-.015em;white-space:nowrap;   /* UX-2 punto 58: antes 1.08rem */
}
/* UX-2 punto 58: a 360 la marca, Reservar y la hamburguesa no entraban (la
   marca pisaba el botón): en los celus angostos el logo y la letra bajan. */
@media (max-width:374px){
  .logo-marca,.topbar.pegado .logo-marca{width:30px;height:14.8px}
  .logo b{font-size:var(--t-sm)}
}

.menu{
  position:fixed;inset:var(--nav-h) 0 auto 0;
  display:flex;flex-direction:column;
  padding:.4rem 1.15rem 1.5rem;
  background:var(--paper);border-bottom:1px solid var(--line);
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .25s ease,transform .25s ease;
  max-height:calc(100dvh - var(--nav-h));overflow-y:auto;
}
.menu.abierto{transform:none;opacity:1;pointer-events:auto}
/* UX-2 punto 27: todos los renglones iguales (color, tamaño y letra, también
   English/Español). El texto queda alineado con el logo y la marca de la
   página actual cae en el borde izquierdo del renglón. */
.menu a{
  display:flex;align-items:center;min-height:56px;
  margin:0 -.85rem;padding:.4rem .85rem;border-bottom:1px solid var(--line);
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:var(--t-lg);
  color:var(--ink);text-decoration:none;
}
.menu a.activo{box-shadow:inset 3px 0 0 var(--amber)}   /* página actual */
/* Reservar cierra el menú como botón a lo ancho (en /reservar/ es la página
   actual y va como renglón marcado, sin .pill). */
.menu a.pill{
  margin:1.1rem 0 0;min-height:var(--tap);padding:.78rem 1.5rem;border-bottom:0;
  justify-content:center;
  font-family:"DM Sans","Segoe UI",system-ui,sans-serif;font-size:var(--t-md);
  color:var(--on-amber);
}

.burger{
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;
  width:var(--tap);height:var(--tap);padding:0;
  background:transparent;border:1px solid var(--line);border-radius:999px;
  cursor:pointer;
}
.burger i{
  display:block;width:18px;height:1.6px;border-radius:2px;background:var(--ink);
  transition:transform .3s ease,opacity .2s ease;
}
.burger[aria-expanded="true"] i:nth-child(1){transform:translateY(6.6px) rotate(45deg)}
.burger[aria-expanded="true"] i:nth-child(2){opacity:0}
.burger[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.6px) rotate(-45deg)}

/* U-2: el botón Reservar visible en el header del celular, sin abrir el menú.
   Compacto para que entre al lado del logo y la hamburguesa. */
.topbar-in>.pill{padding:.5rem .95rem;font-size:var(--t-sm);min-height:44px}   /* UX-2 punto 10: antes 40 */
/* UX-2 punto 19: en /reservar/, /en/booking/ y la confirmación la persona ya
   está reservando: el Reservar del encabezado sobra. */
.pag-reservar .topbar-in>.pill{display:none}
/* Con el menú abierto, el Reservar del encabezado se esconde: el del final del
   menú es el mismo botón (adorno: sin :has() se ven los dos). */
.topbar:has(.menu.abierto) .topbar-in>.pill{visibility:hidden}
/* UX-2 punto 46: sin JavaScript (o si sitio.js no llega) la hamburguesa no
   abre nada, así que en el celu el menú se muestra como lista de links
   debajo de la marca. */
@media (max-width:899px){
  html:not(.js) .topbar{position:relative}
  html:not(.js) .topbar-in{flex-wrap:wrap;height:auto;min-height:var(--nav-h);row-gap:0}
  html:not(.js) .burger{display:none}
  html:not(.js) .menu{
    position:static;order:5;flex:0 0 100%;flex-direction:row;flex-wrap:wrap;gap:0 1.2rem;
    max-height:none;overflow:visible;padding:0 0 .5rem;background:none;border:0;
    transform:none;opacity:1;pointer-events:auto;
  }
  html:not(.js) .menu a{min-height:44px;margin:0;padding:0;border:0;font-size:var(--t-md)}
  html:not(.js) .menu a.activo{box-shadow:none;text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:4px}
  html:not(.js) .menu a.pill{display:none}   /* el Reservar ya está en el encabezado */
  html:not(.js) .topbar-in>.logo{min-height:var(--nav-h)}   /* en Reservar (sin el botón) la marca quedaba pegada arriba */
}


/* ==========================================================================
   Aparecer al hacer scroll
   ========================================================================== */
/* UX-2 punto 46: solo con <html class="js"> (la pone cabecera.php antes del
   CSS). Sin JavaScript, todo se ve desde el principio. */
.js [data-aparece]{
  opacity:0;transform:translateY(20px);
  transition:opacity .75s cubic-bezier(.16,1,.3,1),transform .75s cubic-bezier(.16,1,.3,1);
}
.js [data-aparece].visible{opacity:1;transform:none}

/* ==========================================================================
   Encabezado de portada
   ========================================================================== */
.hero{display:grid;gap:2.1rem;padding:2.2rem 0 0}
.hero h1{font-size:clamp(2.15rem,8.5vw,2.9rem);margin-bottom:1.15rem}
.hero .bajada{margin:0 0 .7rem;font-size:var(--t-lg);color:var(--ink-soft);max-width:40ch}
/* UX-2 punto 55: precio desde y nota de Google, en un renglón chico. */
.hero-datos{margin:0 0 2rem;font-size:var(--t-sm);font-weight:600;line-height:1.45;color:var(--ink);font-variant-numeric:tabular-nums}
.hero-datos span{white-space:nowrap}
.hero-acciones{display:flex;flex-wrap:wrap;gap:.7rem 1.8rem;align-items:center}   /* UX-2 punto 19: dos links, sin botón ámbar */
.hero-media{border-radius:var(--r);overflow:hidden}
.hero-media img{width:100%;aspect-ratio:4/3;object-fit:cover}

/* ==========================================================================
   Buscador de fechas
   ========================================================================== */
.buscador{
  display:grid;gap:.9rem;
  margin-top:1.8rem;padding:1.2rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sombra);
}
.campo{display:flex;flex-direction:column;gap:.4rem;min-width:0}
/* UX-2 punto 5: rotulos en minuscula a 13,4 px, como el modal del panel (antes mayusculas de 11,8 px). */
.campo label{
  font-size:var(--t-sm);font-weight:600;
  color:var(--ink-soft);
}
.campo input,.campo select,.campo textarea{
  width:100%;min-height:var(--tap);
  padding:.78rem .9rem;
  font-family:inherit;font-size:var(--t-md);font-weight:400;color:var(--ink);
  background:var(--paper);border:1px solid var(--linea-campo);border-radius:var(--r-sm);
  transition:border-color .2s ease,box-shadow .2s ease;
}
.campo textarea{min-height:112px;resize:vertical;font-weight:400}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-color:var(--amber);
}
.campo .ayuda{font-size:var(--t-sm);color:var(--ink-faint)}
.buscador .pill{width:100%}

/* ==========================================================================
   Franja de datos
   ========================================================================== */
.datos{
  display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1rem;
  padding:2.6rem 0 0;
}
.dato b{
  display:block;line-height:1;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:var(--t-num);
  font-variant-numeric:tabular-nums;
}
.dato span{font-size:var(--t-sm);color:var(--ink-soft)}

/* ==========================================================================
   Secciones
   ========================================================================== */
.sec{padding:3.4rem 0}
.sec-cabeza{display:grid;gap:.8rem;margin-bottom:1.8rem}
.sec-cabeza h2{font-size:clamp(1.75rem,6vw,2.2rem);max-width:22ch}

/* ---- tarjetas de unidad ---- */
.grilla-unid{display:grid;gap:1.1rem}
.unid{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s ease;
}
.unid-media{overflow:hidden}
.unid-media img{width:100%;aspect-ratio:16/11;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
/* V-11: mini galería deslizable dentro de la tarjeta. Sin JavaScript: se
   desliza con el dedo (scroll-snap) y asoma un pedacito de la siguiente foto
   para que se note que hay más. */
.unid-galeria{
  display:flex;gap:.4rem;
  overflow-x:auto;scroll-snap-type:x mandatory;
  background:var(--stone);
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.unid-galeria::-webkit-scrollbar{display:none}
.unid-galeria>picture{flex:0 0 90%;scroll-snap-align:start;display:block}
.unid-galeria img{width:100%;aspect-ratio:16/11;object-fit:cover}
/* En compu y tablet no se desliza con el dedo, así que "asomar" la foto
   siguiente queda como una tira cortada y confunde. Ahí se muestra una sola
   foto de portada, prolija; la galería deslizable queda solo en el celular. */
@media (min-width:600px){
  .unid-galeria{overflow:hidden}
  .unid-galeria>picture{flex-basis:100%}
}
.unid-cuerpo{display:flex;flex-direction:column;flex:1;gap:.75rem;padding:1.4rem}
.unid h3{font-size:var(--t-xl)}
.etiqueta{
  align-self:flex-start;
  padding:.34rem .8rem;border-radius:999px;
  background:var(--stone);color:var(--ink-soft);
  font-size:var(--t-xs);font-weight:600;letter-spacing:.04em;
}
.unid p{margin:0;font-size:var(--t-md);color:var(--ink-soft)}
.fichas{display:flex;flex-wrap:wrap;gap:.42rem;margin:.2rem 0 0;padding:0;list-style:none}
.fichas li{
  padding:.32rem .72rem;border-radius:999px;
  background:var(--stone);color:var(--ink-soft);font-size:var(--t-sm);
}
/* Renglon chico de "persona extra" + "se admiten mascotas": es un dato de
   venta, va tenue para no competir con el precio. */
.unid-extra{margin:.1rem 0 0;font-size:var(--t-sm);color:var(--ink-faint)}

/* ---- lo que incluye: una tarjeta chica por categoria ----
   Termina en la misma linea que la tabla de "lo que no viene incluido" que
   va abajo, para que las dos secciones se lean como un sistema. */
.incluye{display:grid;grid-template-columns:1fr 1fr;gap:.7rem;max-width:820px}
.incluye-caja{
  padding:1rem 1.05rem;
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);
}
.incluye-caja h2{
  margin:0 0 .6rem;
  font-family:"DM Sans",sans-serif;font-size:var(--t-sm);font-weight:600;
  color:var(--ink-soft);
}
.incluye-caja ul{display:grid;gap:.26rem;margin:0;padding:0;list-style:none}
.incluye-caja li{font-size:var(--t-sm);color:var(--ink)}
.unid-pie{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem;
  margin-top:auto;padding-top:1.2rem;border-top:1px solid var(--line);
}
.unid-pie .precio{
  font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-xl);font-weight:600;
  font-variant-numeric:tabular-nums;
}
.unid-pie .precio small{
  font-family:"DM Sans",sans-serif;font-size:var(--t-sm);font-weight:400;color:var(--ink-soft);
}
.unid-pie .sin-com{
  display:block;margin-top:.15rem;
  font-size:var(--t-xs);color:var(--ink-soft);
}

/* ---- por que la comision es cero (pagina de reserva) ---- */
.com-nota{
  margin-top:1.2rem;padding:1.4rem;
  background:var(--stone);border-radius:var(--r);
}
.com-nota .eyebrow{margin-bottom:.45rem}
.com-nota p{margin:0 0 1rem;font-size:var(--t-md);color:var(--ink-soft);max-width:44ch}
.com-fila{
  display:grid;grid-template-columns:1fr auto;gap:1rem;align-items:center;
  margin-top:.5rem;padding:.7rem .9rem;
  border-radius:var(--r-sm);background:var(--surface);
}
.com-fila span{font-size:var(--t-sm);color:var(--ink-soft)}
.com-fila b{font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-lg);font-variant-numeric:tabular-nums}
.com-fila.gana{background:var(--verde-fondo);color:var(--verde-texto);box-shadow:inset 0 0 0 1px var(--verde-linea)}   /* UX-2 punto 19: verde suave, no parece botón */
.com-fila.gana span{color:var(--verde-texto);font-weight:600}

/* ---- galería ---- */
.bento{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:140px;gap:.7rem}
.bento>*{border-radius:var(--r);overflow:hidden;position:relative}
/* El <picture> necesita alto propio: sin esto el height:100% del <img>
   no tiene contra que resolverse y la foto no llega al borde de la
   celda, dejando una franja recta abajo del redondeo. */
.bento picture{display:block;width:100%;height:100%}
.bento img{width:100%;height:100%;object-fit:cover;transition:transform .9s cubic-bezier(.16,1,.3,1)}
.b1{grid-column:span 2;grid-row:span 2}
.b2{grid-column:span 2}
.b3,.b4{grid-column:span 1}

/* ---- galeria completa, con visor ----
   Cada foto es un enlace a la imagen grande. Sin JavaScript se abre sola;
   con JavaScript se abre en el <dialog> de abajo. */
.galeria{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.galeria .foto{
  display:block;border-radius:var(--r);overflow:hidden;
  background:var(--stone);cursor:zoom-in;
}
.galeria picture{display:block}
.galeria img{
  display:block;width:100%;aspect-ratio:4/3;object-fit:cover;
  transition:transform .9s cubic-bezier(.16,1,.3,1);
}
.galeria .foto:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}

.visor{
  width:min(96vw,1180px);max-width:none;max-height:94vh;
  padding:0;border:0;border-radius:var(--r);
  background:var(--slate);color:var(--on-slate);overflow:hidden;
}
.visor::backdrop{background:rgba(20,24,26,.88)}
.visor-in{position:relative}
.visor-img{
  display:block;width:100%;height:auto;max-height:80vh;
  aspect-ratio:4/3;object-fit:contain;background:#0B0E0F;
}
.visor button{
  position:absolute;min-width:var(--tap);min-height:var(--tap);
  display:grid;place-items:center;padding:0;
  border:0;border-radius:999px;cursor:pointer;
  background:rgba(11,14,15,.6);color:#fff;
  font-size:var(--t-xl);line-height:1;
}
.visor button:hover{background:rgba(11,14,15,.85)}
.visor button:focus-visible{outline:var(--foco-ancho) solid var(--amber-claro);outline-offset:var(--foco-aire)}   /* sobre el fondo oscuro del visor, el ambar claro */
.visor-cerrar{top:.6rem;right:.6rem}
.visor-prev{left:.6rem;top:40%}
.visor-sig{right:.6rem;top:40%}

/* ---- galeria y la cita, en un solo renglon ---- */
.fila-galeria{display:grid;gap:2.2rem}
.galeria-col{display:grid;gap:1.3rem}
.galeria-col .pill{justify-self:start}
.cita-lado{text-align:center}
.cita{
  margin:0 auto;max-width:20ch;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;
  font-size:clamp(1.7rem,6.5vw,2.8rem);line-height:1.14;letter-spacing:-.022em;
  color:var(--ink);text-wrap:balance;
}
.cita-lado .pill{margin-top:1.7rem}

/* ---- carrusel de opiniones ----
   La pista se desliza con el dedo sola: el CSS es la base y el JavaScript
   solo agrega el paso automatico y los puntos. */
.op-pista{
  display:flex;gap:1rem;
  overflow-x:auto;scroll-snap-type:x mandatory;
  padding-bottom:.3rem;scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.op-pista::-webkit-scrollbar{display:none}
.op-pista:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-radius:var(--r)}
/* R-7: en el celular la tarjeta ocupa el 84% y asoma un pedazo de la
   siguiente, para que se note que el carrusel sigue (además de los puntos). */
.op-pista>.opinion{flex:0 0 84%;scroll-snap-align:start}
.op-puntos{display:flex;justify-content:center;margin-top:.6rem}
.op-punto{
  width:var(--tap);height:var(--tap);
  display:grid;place-items:center;
  padding:0;border:0;background:none;cursor:pointer;
}
.op-punto::before{
  content:"";width:8px;height:8px;border-radius:50%;
  background:var(--line);transition:background .2s,transform .2s;
}
.op-punto[aria-current="true"]::before{background:var(--amber);transform:scale(1.4)}
@media (prefers-reduced-motion:reduce){
  .op-punto::before{transition:none}
}

/* ---- mapa embebido de Google (solo el inicio) ---- */
.mapa-vivo{
  border-radius:var(--r);overflow:hidden;
  border:1px solid var(--line);background:var(--stone);
}
/* Cuadrado en el celular: Google dibuja adentro una ficha con el nombre
   y el 4,8, y en un mapa mas bajo no le queda lugar. */
.mapa-vivo iframe{display:block;width:100%;aspect-ratio:1/1;border:0}
.mapa-vivo-pie{display:flex;justify-content:center;margin:1.2rem 0 0}

/* ---- mapa y ubicación ---- */
.ubic{display:grid;gap:1.6rem;align-items:center}
.mapa{
  margin:0;overflow:hidden;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
}
.mapa img{width:100%;aspect-ratio:5/3;object-fit:cover}
.mapa figcaption{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.9rem;
  padding:1rem 1.15rem;font-size:var(--t-md);color:var(--ink-soft);
}
.credito{margin:.7rem 0 0;font-size:var(--t-sm);color:var(--ink-faint)}
.credito a{color:inherit}
/* UX-2 punto 10: el link a Condiciones del resumen se toca con el dedo (antes 17 px de alto). */
.resumen .credito a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;padding:.6rem 0}

.distancias{margin:0;padding:0;list-style:none}
.distancias li{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.72rem 0;border-bottom:1px solid var(--line);font-size:.96rem;
}
.distancias li span{color:var(--ink-soft)}
.distancias li b{font-weight:600;font-variant-numeric:tabular-nums}
/* UX-2 punto 54: antes el valor iba en nowrap y "Servicio aparte,
   consultanos" corría Condiciones de costado. Ahora el valor ocupa hasta el
   72 % del renglón y, si no entra, se corta alineado a la derecha; un monto
   ("$ 140.000") nunca llega a ese ancho, así que no se parte. */
.distancias li span{min-width:0}
.distancias li b{flex:none;max-width:72%;white-space:normal;text-align:right}

/* ---- opiniones ---- */
.op-cabeza{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin-bottom:1.5rem}
.op-cabeza b{
  font-family:"Bricolage Grotesque",sans-serif;font-size:2.4rem;line-height:1;
  font-variant-numeric:tabular-nums;
}
.estrellas{color:var(--amber-claro);letter-spacing:.22em;font-size:var(--t-md)}
.op-grilla{display:grid;gap:1rem}

/* opiniones reales de huéspedes */
.opinion{
  display:flex;flex-direction:column;gap:1rem;
  margin:0;padding:1.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
}
.opinion blockquote{
  margin:0;font-size:var(--t-md);line-height:1.55;color:var(--ink);
}
.opinion blockquote::before{content:"“"}
.opinion blockquote::after{content:"”"}
.opinion figcaption{margin-top:auto;font-size:var(--t-sm);color:var(--ink-faint)}
.opinion figcaption b{display:block;color:var(--ink);font-weight:600;font-size:var(--t-md)}

/* ---- acordeón (nativo: <details> y <summary>) ----
   Sin JavaScript. Se abre con el teclado y los lectores de pantalla lo
   anuncian solos. El primer bloque arranca abierto para que se entienda
   de un vistazo que los demás también se despliegan. */
.acordeon{border-top:1px solid var(--line)}
.acordeon details{border-bottom:1px solid var(--line)}
.acordeon summary{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:var(--tap);padding:1.05rem 0;
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:var(--t-lg);
  cursor:pointer;list-style:none;
}
.acordeon summary::-webkit-details-marker{display:none}
.acordeon summary::after{
  content:"";flex:none;
  width:10px;height:10px;margin-right:5px;
  border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);
  transform:translateY(-3px) rotate(45deg);
  transition:transform .25s ease;
}
.acordeon details[open] summary::after{transform:translateY(2px) rotate(-135deg)}
.acordeon summary:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}
.acordeon .cuerpo{padding:0 0 1.3rem}
.acordeon .cuerpo ul{margin:0;padding-left:1.15rem;color:var(--ink-soft)}
.acordeon .cuerpo li{margin:.38rem 0}
.acordeon .cuerpo p{margin:0;max-width:62ch;color:var(--ink-soft)}

/* ---- la canasta de bienvenida ---- */
.canasta{
  display:grid;gap:1.4rem;
  padding:1.5rem;border-radius:var(--r);
  background:var(--stone);
}
.canasta-media{border-radius:var(--r-sm);overflow:hidden}
.canasta-media img{width:100%;aspect-ratio:4/3;object-fit:cover}
.canasta h2{font-size:clamp(1.6rem,5.5vw,2.1rem);margin-bottom:.7rem}
.canasta p{margin:0 0 1rem;color:var(--ink-soft);max-width:46ch}
.canasta .pill-quiet{background:var(--surface)}   /* UX-2 punto 19: tranquilo sobre piedra */
.canasta .pill-quiet:hover{background:var(--line)}
/* la frase que se destaca: se lee como una invitacion, no como un dato */
.canasta .destacado{
  margin:0 0 1.1rem;padding-left:.9rem;
  border-left:3px solid var(--amber);
  font-size:clamp(1.08rem,3.4vw,1.2rem);font-weight:600;
  color:var(--ink);max-width:46ch;
}

/* ---- cierre ---- */
.cierre{
  position:relative;overflow:hidden;
  padding:1.7rem 1.3rem;border-radius:var(--r);
  background:var(--slate);color:var(--on-slate);
}
/* La foto de fondo, con su velo. El color de arriba queda debajo de la
   foto, asi que aunque la imagen no cargue el bloque se ve igual. */
.cierre-fondo{position:absolute;inset:0}
.cierre-fondo picture{display:block;width:100%;height:100%}
.cierre-fondo img{width:100%;height:100%;object-fit:cover}
.cierre-fondo::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(105deg,rgba(20,24,26,.92),rgba(20,24,26,.84));
}
.cierre-in{position:relative}
.cierre h2{font-size:clamp(1.7rem,5.5vw,2.2rem);max-width:18ch;margin-bottom:1.1rem}
.cierre-acciones{display:flex;flex-wrap:wrap;gap:.7rem}
.cierre .pill-quiet{color:var(--on-slate);border-color:rgba(255,255,255,.3)}
.cierre .pill-quiet:hover{background:rgba(255,255,255,.1)}

/* ==========================================================================
   Páginas interiores
   ========================================================================== */
.cabeza-pag{padding:2.4rem 0 1.6rem}
.cabeza-pag h1{font-size:clamp(2.1rem,8vw,2.9rem);margin-bottom:.8rem}
.cabeza-pag p{margin:0;max-width:52ch;font-size:var(--t-md);color:var(--ink-soft)}
.cabeza-pag .op-idioma{margin-top:.6rem;font-size:var(--t-sm)}   /* Opiniones en inglés: las reseñas van en castellano */

.dos-col{display:grid;gap:1.6rem}
/* Cuando las dos tarjetas tienen largos muy distintos, estirar la corta
   deja media caja vacia. Con esto cada una mide lo suyo. */
.dos-col.alto-propio{align-items:start}
.tarjeta{
  padding:1.6rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
}
.tarjeta h2,
.tarjeta h3{font-size:var(--t-xl);margin-bottom:.5rem}
.tarjeta p{margin:0 0 1rem;color:var(--ink-soft)}
.tarjeta p:last-of-type{margin-bottom:0}
.tarjeta .fichas{margin-top:.2rem}

/* Como llegar: tres parrafos sin caja, uno abajo del otro. */
.camino{display:grid;gap:.9rem;max-width:58ch}
.camino p{margin:0;color:var(--ink-soft)}

/* ---- formularios y resumen ---- */
.form-grilla{display:grid;gap:1.1rem}
.form-grilla .ancho{grid-column:1/-1}
.resumen{
  padding:1.6rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sombra);
}
.resumen h3{font-size:var(--t-xl);margin-bottom:1rem}
.res-fila{
  display:flex;justify-content:space-between;gap:1rem;
  padding:.62rem 0;border-bottom:1px solid var(--line);font-size:var(--t-md);
}
.res-fila span{color:var(--ink-soft)}
.res-fila b{font-weight:600;font-variant-numeric:tabular-nums}
.res-total{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-top:1rem}
.res-total span{font-size:var(--t-md);color:var(--ink-soft)}
.res-total b{
  font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-num);
  font-variant-numeric:tabular-nums;
}
.resumen .pill{width:100%;margin-top:1.1rem}
/* UX-2 punto 3: la sena es un dato, no una nota al pie: 14,7 px, gris legible y la cifra en negro. */
.res-pago{margin:.9rem 0 0;text-align:center;font-size:var(--t-md);color:var(--ink-soft)}
.res-pago strong{color:var(--ink)}

.datos-contacto{display:grid;gap:1.4rem;margin:0;padding:0;list-style:none}

/* ---- formas de contacto, tocables enteras ----
   El enlace ocupa toda la fila para que en el telefono no haya que
   apuntarle al texto. El icono es decorativo: al lado dice lo mismo. */
/* U-4: botones grandes de "Llamar" y WhatsApp arriba de la página de
   contacto, con la promesa de respuesta al lado. */
.con-cta{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem}
.con-cta-btn{gap:.5rem}
.con-cta-btn .ico{width:20px;height:20px;fill:currentColor}
.con-cta-wa{background:var(--wa);color:var(--on-wa)}
.con-cta-wa:hover{background:var(--wa);filter:brightness(1.08)}   /* no toma el ambar del :hover de .pill */
.con-promesa{margin:0;font-size:var(--t-md);color:var(--ink-soft)}
@media (min-width:600px){ .con-promesa{margin-left:.4rem} }
.con-form-tit{font-size:var(--t-lg);margin-bottom:1rem}

.contactos{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}
.contactos a,
.contactos div{
  display:flex;align-items:flex-start;gap:.9rem;
  min-height:var(--tap);padding:.85rem 1rem;
  border:1px solid var(--line);border-radius:var(--r);
  background:var(--surface);color:var(--ink);
  text-decoration:none;
  transition:border-color .2s ease,background .2s ease;
}
.contactos a:hover{border-color:var(--amber);background:var(--stone)}
.contactos a:focus-visible{
  outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-color:var(--amber);
}
.contactos .ico{flex:none;width:22px;height:22px;margin-top:.1rem;fill:var(--amber)}
.contactos div .ico{fill:var(--ink-faint)}
.contactos span{display:block;font-size:var(--t-md);line-height:1.45}
.contactos b{
  display:block;margin-bottom:.1rem;
  font-family:"DM Sans",sans-serif;font-size:var(--t-sm);font-weight:600;   /* UX-2 punto 5: antes mayusculas de 11,2 px */
  color:var(--ink-soft);
}
.datos-contacto b{
  display:block;margin-bottom:.25rem;
  font-size:var(--t-sm);font-weight:600;
  color:var(--amber-texto);
}
/* avisos de formulario: verde si salió bien, ladrillo si falló */
.aviso{
  margin:0 0 1.4rem;padding:1rem 1.2rem;border-radius:var(--r-sm);
  font-size:var(--t-md);border:1px solid;
}
.aviso.ok{background:var(--verde-fondo);border-color:var(--verde-linea);color:var(--verde-texto)}
.aviso.mal{background:#FCF1ED;border-color:#EBD3CA;color:#8A3620}

/* campo trampa para robots: invisible pero no display:none, porque
   algunos robots ignoran lo que está oculto de esa forma */
.trampa{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.datos-contacto a,.datos-contacto span{
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;
  font-size:var(--t-lg);letter-spacing:-.015em;text-decoration:none;
}

/* ==========================================================================
   Elementos fijos: barra de reserva y WhatsApp
   ========================================================================== */
.barra{
  position:fixed;left:0;right:0;bottom:0;z-index:55;
  display:flex;align-items:center;gap:1rem;
  padding:.7rem 1.15rem calc(.7rem + env(safe-area-inset-bottom));
  background:var(--paper-vidrio);
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-top:1px solid var(--line);
  transform:translateY(115%);
  transition:transform .35s cubic-bezier(.16,1,.3,1);
}
.barra.arriba{transform:none}
.barra-precio{display:flex;flex-direction:column;line-height:1.2}
.barra-precio small{font-size:var(--t-xs);color:var(--ink-soft)}
.barra-precio b{
  font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-xl);
  font-variant-numeric:tabular-nums;
}
.barra .pill{margin-left:auto}

/* R-1: el WhatsApp adentro de la barra (no flotando). Círculo verde chico. */
.barra-wa{
  flex:none;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;border-radius:50%;
  background:var(--wa);color:#fff;text-decoration:none;
}
.barra-wa svg{width:24px;height:24px;fill:currentColor}
.barra-wa:hover{filter:brightness(1.08)}

.wa{
  position:fixed;right:16px;z-index:60;
  bottom:calc(86px + env(safe-area-inset-bottom));
  display:flex;align-items:center;justify-content:center;
  width:56px;height:56px;border-radius:50%;
  background:var(--wa);color:#fff;text-decoration:none;
  box-shadow:0 12px 30px -10px rgba(15,122,64,.6);
  transition:transform .2s ease,bottom .3s ease,opacity .25s ease;
}
/* Arranca escondido y aparece al scrollear: en la primera pantalla el
   boton tapaba el de buscar noches. Si el JS no corre, no se agrega la
   clase y el boton queda visible como siempre. */
.wa.oculto{opacity:0;transform:translateY(10px) scale(.92);pointer-events:none}
.wa:hover{transform:scale(1.06)}
.wa svg{width:29px;height:29px;fill:currentColor}
body.sin-barra .wa{bottom:calc(16px + env(safe-area-inset-bottom))}
/* R-1: en el celular, cuando hay barra fija, el WhatsApp vive DENTRO de la
   barra, así que el botón flotante se esconde para no duplicarlo ni pisar el
   contenido. En reservar (sin barra) y en escritorio, sigue flotando. */
@media (max-width:899px){
  body:not(.sin-barra) .wa{display:none}
}

/* ==========================================================================
   Pie
   ========================================================================== */
footer{
  margin-top:2.4rem;padding:2.4rem 0 2.6rem;
  border-top:1px solid var(--line);
  font-size:var(--t-sm);color:var(--ink-soft);
}
.pie-grilla{display:grid;gap:1.6rem}
footer b{display:block;margin-bottom:.35rem;color:var(--ink);font-weight:600}
/* U-6: los enlaces del pie (teléfono, WhatsApp, Opiniones/Condiciones/
   Privacidad) tenían 18px de alto y en el celular se erraba el toque. Ahora
   cada uno es una zona tocable de al menos 44px, sin agrandar la letra. */
footer a{color:inherit;display:inline-flex;align-items:center;min-height:44px}

/* ==========================================================================
   600px y más: tablet chica
   ========================================================================== */
@media (min-width:600px){
  .wrap{padding:0 2rem}
  .buscador{grid-template-columns:1fr 1fr}
  .buscador .pill{grid-column:1/-1}
  .datos{grid-template-columns:repeat(4,1fr)}
  .grilla-unid{grid-template-columns:1fr 1fr}
  .form-grilla{grid-template-columns:1fr 1fr}
  .op-grilla{grid-template-columns:repeat(3,1fr)}
  .incluye{grid-template-columns:repeat(3,1fr);gap:1rem}
  .op-pista>.opinion{flex-basis:calc((100% - 2rem) / 3)}
  .bento{grid-auto-rows:160px}
  .galeria{grid-template-columns:repeat(3,1fr)}
  .pie-grilla{grid-template-columns:repeat(3,1fr)}
  .sec-cabeza{
    grid-template-columns:1fr auto;align-items:baseline;
    gap:1.5rem;
  }
}

/* ==========================================================================
   900px y más: escritorio. Acá aparece el menú horizontal y desaparece
   la barra fija de abajo, que es un recurso de celular.
   ========================================================================== */
@media (min-width:900px){
  :root{--nav-h:74px}
  body{padding-bottom:0}

  .topbar-in{gap:1.2rem}
  .logo-marca{width:46px;height:22.8px}
  .logo b{font-size:1.14rem}
  .burger{display:none}
  .topbar-in>.pill{display:inline-flex}
  /* Seis ítems más el idioma tienen que entrar en UNA línea.
     Acá el espacio va justo; a partir de 1100px se afloja. */
  .menu{
    position:static;inset:auto;
    flex-direction:row;gap:1.2rem;
    max-height:none;overflow:visible;
    padding:0;background:none;border:0;
    transform:none;opacity:1;pointer-events:auto;
  }
  .menu a{
    min-height:0;margin:0;padding:0;border:0;
    font-family:"DM Sans",sans-serif;font-weight:600;font-size:.92rem;
    color:var(--ink-soft);transition:color .2s ease;
  }
  .menu a:hover{color:var(--ink)}
  .menu a.activo{color:var(--ink);box-shadow:none}
  .menu a.pill{display:none}   /* en la compu el Reservar lo pone el encabezado */
  .menu .idioma{margin-left:.4rem}

  .barra{display:none}
  .wa{bottom:calc(20px + env(safe-area-inset-bottom))}

  /* El buscador ocupa el hueco que quedaba abajo de los botones, y la foto
     pasa a cubrir las dos filas de la derecha. */
  .hero{
    grid-template-columns:1fr 1fr;
    grid-template-areas:"texto media" "buscador media";
    align-items:start;
    gap:1.8rem 3rem;
    padding:2.4rem 0 0;
  }
  .hero>div:first-child{grid-area:texto}
  .hero-media{grid-area:media;height:100%}
  .hero .buscador{
    grid-area:buscador;margin-top:0;
    grid-template-columns:1fr 1fr;padding:1.1rem;
  }
  .hero .buscador .campo:nth-of-type(3){grid-column:auto}
  .hero .buscador .pill{grid-column:auto;width:100%}
  .hero h1{font-size:clamp(2.9rem,4.6vw,4.1rem);margin-bottom:1.2rem}
  .hero .bajada{font-size:var(--t-lg)}
  .hero-media img{aspect-ratio:4/5;height:100%;object-fit:cover}

  .buscador{grid-template-columns:1fr 1fr 1fr auto;align-items:end;padding:1.35rem}
  .buscador .pill{grid-column:auto;width:auto}

  .sec{padding:5rem 0}
  .fila-galeria{grid-template-columns:1fr 1fr;gap:2.6rem;align-items:center}
  .bento{grid-template-columns:repeat(4,1fr);grid-auto-rows:176px;gap:1rem}
  /* Solo en la home la grilla vive en media columna y necesita achicarse.
     A ancho completo (/donde-dormir/) sigue con las filas grandes. */
  .fila-galeria .bento{grid-auto-rows:132px;gap:.7rem}
  .galeria{grid-template-columns:repeat(4,1fr);gap:1rem}
  .cita{font-size:clamp(1.5rem,2.5vw,2.05rem);max-width:17ch}
  .b1{grid-column:span 2;grid-row:span 2}
  .b2{grid-column:span 2}
  .b3,.b4{grid-column:span 1}
  .ubic{grid-template-columns:1fr 1fr;gap:3rem}
  .mapa-vivo iframe{aspect-ratio:21/9}
  .dos-col{grid-template-columns:1fr 1fr;gap:2.4rem}
  .cierre{padding:2.4rem 3rem}
  .cabeza-pag{padding:3.6rem 0 2rem}
  .cabeza-pag h1{font-size:clamp(2.6rem,4.4vw,3.6rem)}

  /* el resumen de la reserva acompaña el scroll del formulario */
  .resumen{position:sticky;top:calc(var(--nav-h) + 1.2rem)}
  .col-reserva{grid-template-columns:1.45fr 1fr}

  /* la foto se agranda apenas al pasar el mouse. En celular no pasa nada,
     porque no existe el hover: nada importante depende de esto. */
  .unid:hover{transform:translateY(-5px);box-shadow:var(--sombra-alta)}
  .unid:hover .unid-media img{transform:scale(1.05)}
  .bento a:hover img{transform:scale(1.06)}
  .galeria .foto:hover img{transform:scale(1.06)}
}

@media (min-width:1100px){
  .menu{gap:1.7rem}
  .canasta{grid-template-columns:1fr 1fr;align-items:center;padding:2.4rem}
}

@media (min-width:1200px){
  .wrap{padding:0 3rem}
}

/* ==========================================================================
   Quien pidió menos movimiento, no ve movimiento.
   ========================================================================== */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
  .js [data-aparece]{opacity:1;transform:none}
}


/* --------------------------------------------------------------------------
   Inicio en el celular

   Orden distinto al del escritorio: primero la foto, enseguida el buscador de
   fechas, y recien despues el titulo. En un telefono la primera pantalla se
   llenaba de texto y formulario, sin una sola imagen.

   El buscador va compacto, con la etiqueta adentro del recuadro: ocupa poco
   mas de la mitad de alto que apilando etiqueta y campo.

   Todo colgado de .pag-inicio para no tocar el resto del sitio.
   -------------------------------------------------------------------------- */
@media (max-width:899px){
  .pag-inicio #contenido>.wrap{display:flex;flex-direction:column}
  .pag-inicio #contenido .hero{display:contents}

  /* U-1 + R-3: la foto primero (grande), después el título y recién ahí el
     buscador; enseguida vienen las dos tarjetas (que están en el flujo normal,
     order 0). */
  .pag-inicio #contenido .hero-media{order:-4;margin-top:0}
  /* 26-sep-2026 (auditoría UX punto 78): 3/2 en vez de 4/3, para que el buscador suba. */
  .pag-inicio #contenido .hero-media img{aspect-ratio:16/9}   /* UX-2 punto 55: antes 3/2 */
  .pag-inicio #contenido .hero>div:first-child{order:-3;padding-top:1.6rem}
  .pag-inicio #contenido .buscador{order:-2;margin-top:1.1rem}

  .buscador{grid-template-columns:1fr 1fr;gap:.65rem;padding:.75rem}
  .buscador .campo{
    gap:.1rem;padding:.5rem .75rem;min-width:0;
    background:var(--paper);
    border:1px solid var(--linea-campo);border-radius:var(--r-sm);
    transition:border-color .2s ease,box-shadow .2s ease;
  }
  .buscador .campo:focus-within{
    border-color:var(--amber);outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);
  }
  .buscador .campo label{font-size:var(--t-sm)}
  .buscador .campo input,
  .buscador .campo select{
    min-height:0;padding:0;font-size:var(--t-md);
    background:transparent;border:0;border-radius:0;
  }
  .buscador .campo input:focus,
  .buscador .campo select:focus{box-shadow:none;outline:0}   /* el anillo lo lleva la caja */
  .buscador .campo:nth-of-type(3){grid-column:1/-1}
  .buscador .pill{grid-column:1/-1}
}

/* R-3: en el teléfono la portada va a TODO el ancho (rompe el margen del
   .wrap) y sin esquinas redondeadas, para que se lea como la foto principal y
   no como una miniatura. Solo hasta 599px: en tablet la foto ya respira bien. */
@media (max-width:599px){
  .pag-inicio #contenido .hero-media{
    margin-left:-1.15rem;margin-right:-1.15rem;border-radius:0;
  }
}

/* Telefonos angostos (360px y menos): la fecha completa no entra al lado de
   su icono, asi que se achican el texto y los margenes internos. */
@media (max-width:374px){
  .buscador{gap:.5rem;padding:.6rem}
  .buscador .campo{padding:.45rem .5rem}
  .buscador .campo input,
  .buscador .campo select{font-size:var(--t-sm)}
}


/* ==========================================================================
   Buscador con calendario propio

   Los campos nativos no se borran: quedan escondidos y el boton los
   representa. Si el JavaScript no corre, .buscador-js nunca se agrega y
   todo esto no aplica: se ven los campos de siempre.
   ========================================================================== */
.buscador{position:relative}
.buscador-js{position:relative}

/* Adultos y menores, cuando el JavaScript no corre: dos numeros chicos
   abajo de una sola etiqueta. Con JavaScript los tapa el boton. */
.pax-par{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.pax-par span{display:flex;flex-direction:column;gap:.25rem}
.pax-par label{
  font-size:var(--t-sm);font-weight:600;
  color:var(--ink-soft);
}

.buscador-js .campo-js>label,
.buscador-js .campo-js>input,
.buscador-js .campo-js>select,
.buscador-js .campo-js>.pax-par{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.buscador-js .campo-js{
  position:relative;padding:0;border:0;background:none;box-shadow:none;
}
.campo-btn{
  display:flex;flex-direction:column;gap:.1rem;
  scroll-margin-top:calc(var(--nav-h) + .75rem);   /* arreglos tanda 4 (punto 51): Pedir sin fechas sube hasta acá */
  width:100%;min-height:var(--tap);
  padding:.5rem .75rem;text-align:left;
  background:var(--paper);color:var(--ink);
  border:1px solid var(--linea-campo);border-radius:var(--r-sm);
  font-family:inherit;cursor:pointer;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.campo-btn:hover{border-color:var(--amber)}
.campo-btn:focus-visible{
  outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-color:var(--amber);
}
.campo-btn[aria-expanded="true"]{border-color:var(--amber)}
.campo-btn-et{
  font-size:var(--t-xs);font-weight:600;
  color:var(--ink-soft);
}
.campo-btn-val{font-size:var(--t-md);font-weight:600}

/* --------------------------- los paneles --------------------------- */
/* El calendario recibe su top del JavaScript, a la altura del boton que
   lo abrio. Los demas paneles cuelgan de su propio campo. */
.panel{
  position:absolute;z-index:70;top:calc(100% + .5rem);left:0;right:0;
  padding:.8rem;
  background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);
  box-shadow:0 18px 44px -20px rgba(0,0,0,.35);
}

/* --------------------------- calendario ---------------------------- */
.cal-nav{display:grid;gap:.5rem}
.cal-flecha{
  width:44px;height:44px;border-radius:50%;   /* 26-sep-2026 (auditoría UX punto 82): 44 px, antes 38 */
  border:1px solid var(--line);background:var(--paper);color:var(--ink);
  font-size:var(--t-lg);line-height:1;cursor:pointer;
}
.cal-flecha:disabled{opacity:.3;cursor:default}
.cal-meses{display:grid;gap:1.3rem}
.cal-titulo{
  margin:0 0 .55rem;text-align:center;
  font-weight:600;font-size:var(--t-md);
}
.cal-titulo::first-letter{text-transform:uppercase}
.cal-grilla{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.cal-dow{
  font-size:var(--t-xs);text-align:center;padding-bottom:.35rem;
  color:var(--ink-soft);text-transform:capitalize;
}
.cal-dia{
  min-height:44px;
  border:0;border-radius:var(--r-sm);background:transparent;
  font-family:inherit;font-size:var(--t-md);color:var(--ink);cursor:pointer;
  font-variant-numeric:tabular-nums;
}
.cal-dia:hover:not(:disabled){background:var(--amber-halo)}
.cal-dia:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}
.cal-dia:disabled{color:var(--ink-faint);opacity:.45;cursor:default}
/* Noche sin lugar (V-1): gris y tachada, para que se lea "completo" de un
   vistazo y no se pueda elegir. */
.cal-dia.cal-lleno{color:var(--ink-faint);opacity:.5;text-decoration:line-through;cursor:not-allowed}
.cal-dia.cal-lleno:hover{background:transparent}
/* 25-sep-2026 (punto 39): la noche está tomada pero ese día sirve para salir: medio sombreado, sin tachar */
.cal-dia.cal-solo-salida:not(.punta){background:linear-gradient(135deg,transparent 55%,rgba(31,41,51,.22) 55%);color:var(--ink-soft)}   /* punto 82 UX: .22, antes .12 */
.cal-dia.entre{background:var(--amber-halo)}
.cal-dia.entre-prov{background:var(--amber-halo)}   /* rango tentativo al pasar el mouse (U-7) */
.cal-dia.punta{background:var(--amber-boton);color:var(--on-amber);font-weight:600}   /* UX-2 punto 1 */
/* U-7: aviso vivo del calendario ("Ahora elegí la salida" / "3 noches"). */
.cal-info{
  margin:.55rem 0 0;text-align:center;min-height:1.15em;
  font-size:var(--t-sm);font-weight:600;color:var(--amber-texto);
}

/* En el celular las flechas van arriba, no a los costados: flanqueando el
   calendario dejaban casillas de 31px y no se pueden tocar. */
@media (max-width:899px){
  .cal-nav{
    grid-template-columns:auto auto;
    grid-template-areas:"prev next" "meses meses";
    justify-content:space-between;
  }
  .cal-flecha[data-mover="-1"]{grid-area:prev}
  .cal-flecha[data-mover="1"]{grid-area:next}
  .cal-meses{grid-area:meses;margin-top:.2rem}
  .panel{padding:.65rem}
}
@media (min-width:900px){
  .cal-nav{grid-template-columns:auto 1fr auto;align-items:start}
  .cal-meses{grid-template-columns:1fr 1fr;gap:1.6rem}
  .panel-cal{left:0;right:auto;width:max-content;max-width:min(38rem,90vw)}
}

/* --------------------------- huespedes ----------------------------- */
.fila-pax{
  display:flex;align-items:center;justify-content:space-between;
  gap:1rem;padding:.6rem .15rem;
}
.fila-pax+.fila-pax{border-top:1px solid var(--line)}
.fila-pax span{font-size:var(--t-md);font-weight:600}
.stepper{display:flex;align-items:center;gap:.8rem}
.stepper button{
  width:44px;height:44px;border-radius:50%;   /* 26-sep-2026 (auditoría UX punto 82): 44 px, antes 38 */
  border:1px solid var(--line);background:var(--paper);color:var(--ink);
  font-size:var(--t-lg);line-height:1;cursor:pointer;
}
.stepper button:hover:not(:disabled){border-color:var(--amber)}
.stepper button:disabled{opacity:.3;cursor:default}
.stepper b{min-width:1.5rem;text-align:center;font-variant-numeric:tabular-nums}
/* Panel de opciones: una por renglon, del alto de un toque.
   El :not([hidden]) no es adorno: un display de autor le gana al
   display:none que trae el atributo, y el panel nacia abierto. */
.panel-lista:not([hidden]){display:grid;gap:.15rem}
.panel-lista{padding:.4rem}
.opcion-lista{
  display:block;width:100%;min-height:var(--tap);
  padding:.5rem .7rem;text-align:left;
  border:0;border-radius:var(--r-sm);background:none;color:var(--ink);
  font-family:inherit;font-size:var(--t-md);cursor:pointer;
}
.opcion-lista:hover{background:var(--stone)}
.opcion-lista[aria-current="true"]{background:var(--stone);font-weight:600}
.opcion-lista:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}

.panel-listo{
  margin-top:.6rem;width:100%;min-height:var(--tap);
  border:0;border-radius:var(--r-sm);
  background:var(--ink);color:var(--paper);
  font-family:inherit;font-size:var(--t-md);font-weight:600;cursor:pointer;
}


/* --------------------------------------------------------------------------
   Las dos formas de acomodar al grupo

   Se muestran las dos con su diferencia de precio y lo que se resigna, en
   vez de elegir por el huesped y esconderle la otra.
   -------------------------------------------------------------------------- */
.opciones{
  margin:0 0 1.2rem;padding:1.1rem;
  background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r);
}
.opciones h2{margin:0 0 .85rem;font-size:var(--t-md)}
/* 27-sep-2026 (UX-2 punto 52): cada forma es una tarjeta tocable entera
   (<label> con radio) con la foto chica del tipo; con dos tipos, la segunda
   foto va montada en la esquina. El radio marca la elegida. */
.opcion{
  display:grid;grid-template-columns:auto 56px minmax(0,1fr);align-items:center;
  column-gap:.7rem;min-height:var(--tap);padding:.6rem .75rem;
  background:var(--paper);
  border:1px solid var(--line);border-radius:var(--r-sm);
  cursor:pointer;transition:border-color .2s ease,background .2s ease;
}
.opcion+.opcion{margin-top:.6rem}
.opcion:hover{border-color:var(--amber)}
.opcion.elegida{border-color:var(--amber);background:var(--amber-halo)}
.opcion-radio{flex:none;width:22px;height:22px;margin:0;accent-color:var(--amber);cursor:pointer}
.opcion-radio:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}
.opcion-fotos{position:relative;width:56px;height:44px}
.opcion-fotos picture{display:block}
.opcion-fotos img{width:56px;height:44px;object-fit:cover;border-radius:8px}
.opcion-fotos picture+picture{position:absolute;right:-6px;bottom:-8px}
.opcion-fotos picture+picture img{width:32px;height:26px;border:2px solid var(--paper);border-radius:7px}
.opcion-texto{display:flex;flex-direction:column;min-width:0}
.opcion-et{
  margin:0;font-size:var(--t-sm);font-weight:600;
  color:var(--ink-soft);
}
.opcion-combo{margin:.1rem 0 0;font-weight:600;line-height:1.35}
.opcion-precio{margin:.1rem 0 0;font-size:var(--t-md);line-height:1.4;text-wrap:balance}   /* UX-2 punto 48: sin el "$" o el "ARS" solos al final del renglón */
/* punto 50: sin lugar esas noches, no se puede elegir */
.opcion.opcion-sin-lugar{cursor:not-allowed;background:var(--stone)}
.opcion.opcion-sin-lugar.elegida{border-color:var(--line)}   /* arreglos tanda 4: la sugerida sin lugar no se ve elegida */
.opcion-sin-lugar:not(.elegida):hover{border-color:var(--line)}
.opcion-sin-lugar .opcion-radio{cursor:not-allowed}
.opcion-sin-lugar .opcion-fotos{opacity:.5;filter:grayscale(1)}
.opcion-sin-lugar .opcion-precio{color:var(--ink-faint);text-decoration:line-through}
.opcion-sin{margin:.2rem 0 0;font-size:var(--t-sm);font-weight:600;color:var(--ink)}
.opcion>noscript{grid-column:3}
/* Arreglos de la tanda 4 (punto 52): sin JavaScript el radio no cambia nada
   (lo que se manda son las cantidades): la tarjeta se elige con "Elegir esta". */
html:not(.js) .opcion{grid-template-columns:56px minmax(0,1fr)}
html:not(.js) .opcion-radio{display:none}
html:not(.js) .opcion>noscript{grid-column:2}


/* --------------------------------------------------------------------------
   Reservar: los tres pasos, el resumen mini del celular, la disponibilidad
   y las tarjetas para elegir dónde dormir (Ronda 22).
   -------------------------------------------------------------------------- */

/* V-5: los tres pasos, arriba del formulario. */
.pasos{
  display:grid;gap:.6rem;
  margin:1.4rem 0 0;padding:0;list-style:none;counter-reset:paso;
}
.pasos li{
  display:flex;align-items:center;gap:.7rem;
  font-size:var(--t-md);color:var(--ink-soft);
}
.paso-n{
  flex:none;display:grid;place-items:center;
  width:26px;height:26px;border-radius:50%;
  background:var(--stone);color:var(--amber-texto);
  font-family:"Bricolage Grotesque",sans-serif;font-weight:600;font-size:var(--t-sm);
  border:1px solid var(--line);
}
@media (min-width:700px){
  .pasos{grid-template-columns:repeat(3,1fr);gap:1rem}
  .pasos li{align-items:flex-start}
}

/* V-2: resumen compacto pegado a las fechas. Solo en celular/tablet: en
   escritorio el resumen completo ya viaja al costado. */
.res-mini{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.35rem .8rem;
  padding:.85rem 1rem;
  background:var(--stone);border:1px solid var(--line);border-radius:var(--r-sm);
}
.res-mini-noches{font-weight:600}
.res-mini-total{
  font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-xl);font-weight:600;
  font-variant-numeric:tabular-nums;margin-left:auto;
}
.res-mini-sena{width:100%;font-size:var(--t-sm);color:var(--ink-soft)}
.res-mini .muted{font-size:var(--t-md)}
.res-mini-aviso{font-size:var(--t-md);font-weight:600;color:var(--ink)}   /* UX-2 puntos 49 y 50: el motivo real, no "Elegí las fechas" */
.res-moneda{margin:0;font-size:var(--t-sm);color:var(--ink-soft)}
.res-moneda-cel{margin-top:-.6rem}
.res-moneda-pc{margin-top:.7rem}
@media (min-width:900px){ .res-moneda-cel{display:none} }
@media (max-width:899px){ .res-moneda-pc{display:none} }
@media (min-width:900px){ .res-mini{display:none} }

/* V-1 / V-4: cartel de disponibilidad. */
.disp{padding:1rem 1.15rem;border-radius:var(--r-sm);border:1px solid}
.disp-tit{margin:0;font-weight:600}
.disp-ok{background:var(--verde-fondo);border-color:var(--verde-linea);color:var(--verde-texto)}
.disp-ok .disp-tit::before{content:"✓ "}
.disp-det{margin:.3rem 0 0;font-size:var(--t-md)}
.disp-no{background:var(--amber-fondo);border-color:var(--ladrillo-linea);color:var(--ink)}
.disp-no .disp-tit{color:#8A3620}
.disp-alt{margin:.55rem 0 0;font-size:var(--t-md)}
.disp-alt .link{min-height:0;margin-left:.2rem}
.disp-cerca-tit{margin:.7rem 0 .3rem;font-size:var(--t-xs);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.disp-cercanas{display:flex;flex-wrap:wrap;gap:.5rem}
.disp-wa{margin-top:.8rem;background:var(--wa);color:var(--on-wa)}
.disp-wa:hover{background:var(--wa);filter:brightness(1.08)}

/* V-3: tarjetas para elegir dónde dormir. La foto arriba, y debajo nombre,
   capacidad, precio y el selector de cantidad. */
.unid-pick-grilla{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
/* 27-sep-2026 (UX-2 punto 52): "Armar otra combinación" (las tarjetas con
   − n +) y, en el celu, "Ver el detalle del precio": plegables del mismo
   estilo, con la flecha como la de las preguntas frecuentes. */
.armar,.res-detalle{background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
.armar>summary,.res-detalle>summary{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:var(--tap);padding:.55rem 1rem;
  font-size:var(--t-md);font-weight:600;cursor:pointer;list-style:none;
}
.armar>summary::-webkit-details-marker,.res-detalle>summary::-webkit-details-marker{display:none}
.armar>summary::after,.res-detalle>summary::after{
  content:"";flex:none;width:9px;height:9px;margin-right:4px;
  border-right:2px solid var(--amber);border-bottom:2px solid var(--amber);
  transform:translateY(-3px) rotate(45deg);transition:transform .25s ease;
}
.armar[open]>summary::after,.res-detalle[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.armar>summary:focus-visible,.res-detalle>summary:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire);border-radius:var(--r)}
.armar .unid-pick-grilla{padding:0 .75rem .75rem}
.res-detalle-cuerpo{padding:0 1rem 1rem}
.res-detalle-cuerpo>h2{display:none}
.res-detalle-cuerpo .res-fila b{white-space:nowrap}
@media (min-width:900px){ .res-detalle{display:none} }
@media (max-width:899px){ .res-resumen-pc{display:none} }
.unid-pick{
  display:flex;flex-direction:column;overflow:hidden;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
}
.unid-pick-foto{overflow:hidden}
.unid-pick-foto img{width:100%;aspect-ratio:16/10;object-fit:cover}
.unid-pick-cuerpo{display:flex;flex-direction:column;gap:.15rem;padding:.75rem .85rem .85rem}
.unid-pick-cuerpo b{font-size:var(--t-md)}
.unid-pick-cap{font-size:var(--t-sm);color:var(--ink-soft)}
.unid-pick-precio{
  font-family:"Bricolage Grotesque",sans-serif;font-size:var(--t-lg);font-weight:600;
  font-variant-numeric:tabular-nums;white-space:nowrap;   /* UX-2 punto 48: "ARS" arriba y "140,000" abajo, nunca más */
}
.unid-pick-precio small{font-family:"DM Sans",sans-serif;font-size:var(--t-xs);font-weight:400;color:var(--ink-soft)}
.unid-pick-cant{margin-top:.55rem;gap:.3rem}
/* 26-sep-2026 (auditoría UX punto 81): en el celu, una tarjeta por renglón
   con la foto chica al costado. Antes (una arriba de la otra con la foto
   entera) cada tarjeta medía unos 385 px y entre las dos ocupaban más de
   una pantalla. El <picture> necesita alto propio para que la foto llene
   la celda (ver la trampa de las esquinas en la memoria del sitio). */
@media (max-width:599px){
  .unid-pick-grilla{grid-template-columns:1fr}
  .unid-pick{flex-direction:row}
  .unid-pick-foto{flex:0 0 96px}
  .unid-pick-foto picture{display:block;height:100%}
  .unid-pick-foto img{height:100%;aspect-ratio:auto}
}

/* ---- UX-1 web ---- */
/* 25-sep-2026 (auditoría UX puntos 76 y 77): la confirmación de la reserva.
   El título más chico que el de "Reservar" (entra en dos renglones en el
   celu), la seña grande arriba, alias y CBU con "Copiar", y lo reservado al
   final. El WhatsApp va en verde (.con-cta-wa), no en ámbar como "Pedir". */
.cabeza-pag.conf-cabeza{padding:1.8rem 0 1.2rem}
.cabeza-pag.conf-cabeza h1{font-size:clamp(1.75rem,6.6vw,2.3rem);margin-bottom:.55rem}
@media (min-width:900px){
  .cabeza-pag.conf-cabeza{padding:2.8rem 0 1.6rem}
  .cabeza-pag.conf-cabeza h1{font-size:clamp(2.2rem,3.4vw,2.9rem)}
}
.conf{
  max-width:36rem;margin:0 0 1.2rem;padding:1.3rem 1.2rem 1.4rem;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sombra);
}
.conf-et{display:block;font-size:var(--t-sm);color:var(--ink-soft)}
.conf-valor{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem .9rem}
.conf-valor b{
  font-family:"Bricolage Grotesque",sans-serif;font-size:clamp(2.1rem,9vw,2.6rem);
  font-weight:600;line-height:1.1;letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.conf-plazo{margin:.55rem 0 1.1rem;font-size:var(--t-md);line-height:1.45;color:var(--ink)}
.conf-plazo b{font-weight:600}
.conf-plazo span{color:var(--ink-soft);font-size:var(--t-md)}
.conf-dato{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;
  gap:.1rem .8rem;padding:.7rem 0;border-top:1px solid var(--line);
}
.conf-dato span{grid-column:1;font-size:var(--t-sm);color:var(--ink-soft)}
.conf-dato b{
  grid-column:1;font-size:var(--t-md);font-weight:600;letter-spacing:.01em;
  font-variant-numeric:tabular-nums;overflow-wrap:anywhere;
}
.conf-dato .copiar{grid-column:2;grid-row:1 / span 2}
.conf .copiar{
  min-width:6.6rem;padding:.5rem .95rem;font-size:var(--t-sm);
  transition:background .2s ease,border-color .2s ease,color .2s ease;
}
.conf .copiar.copiado{background:var(--verde-fondo);border-color:var(--verde-linea);color:var(--verde-texto)}
.conf .copiar:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}
.conf-titular{
  margin:0;padding-top:.7rem;border-top:1px solid var(--line);
  font-size:var(--t-sm);line-height:1.45;color:var(--ink-soft);
}
.conf-nw{white-space:nowrap}
.conf-cbu1{margin-right:.4em}
.conf-pasos{margin:1.1rem 0 .9rem;font-size:var(--t-md);line-height:1.5}
.conf-pasos b{font-weight:700;letter-spacing:.04em}
.conf .conf-wa{width:100%;white-space:normal;text-align:center;line-height:1.3}
.conf-resumen{margin-top:1.5rem}
.conf-sub{
  margin:0 0 .2rem;font-size:var(--t-xs);font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);
}
.conf-resto{margin:.8rem 0 0;font-size:var(--t-md);font-weight:600;font-variant-numeric:tabular-nums}
.conf-senada{max-width:36rem}
.conf-senada .con-cta-btn,.aviso .con-cta-btn{white-space:normal;text-align:center}
.conf-otra{margin:0 0 2.4rem}
.conf-otra .link{text-decoration:underline;text-underline-offset:3px}

/* ---- UX-1 revisión: el CBU partido en 8 + 14 se ve entero, no como rótulo ---- */
.conf-dato b span{font-size:inherit;color:inherit}

/* ---- UX-5 web ---- */
/* 26-sep-2026 (auditoría UX punto 78): en la portada del celu el buscador
   sube: sin los dos botones del título (competían en ámbar con "Buscar
   noches libres"; el menú ya lleva a Dónde dormir y a Moquehue) y con la
   bajada más cerca. */
@media (max-width:899px){
  .pag-inicio .hero-acciones{display:none}
  .pag-inicio .hero .bajada{margin-bottom:.35rem;font-size:var(--t-md);line-height:1.5}
  .pag-inicio .hero-datos{margin-bottom:.9rem}
  .pag-inicio #contenido .hero>div:first-child{padding-top:1.2rem}
  .pag-inicio .hero h1{margin-bottom:.8rem}
}

/* 26-sep-2026 (auditoría UX puntos 79 a 81 y 88, idea grande 5): reservar
   en una sola columna que responde. Las opciones viven adentro del
   formulario, las cantidades se eligen con − n + y la mascota es una
   casilla. */
@media (max-width:599px){
  .pag-reservar .form-grilla{grid-template-columns:1fr 1fr;gap:1rem .65rem}
  .pag-reservar .form-grilla>*:not(.campo-fecha){grid-column:1/-1}
}
.form-grilla .opciones{margin:0;padding:1rem}
.opcion .opcion-elegir{min-height:44px}
@media (max-width:599px){ .form-grilla .opciones{padding:.85rem .6rem .6rem} .form-grilla .opciones h2{margin-left:.25rem} }
.unid-pick-elegida{border-color:var(--amber)}
.unid-pick-fila{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:.35rem .8rem;margin-top:.3rem;
}
.unid-pick-fila .unid-pick-cant{margin-top:0}
.unid-pick-cant.stepper-js{flex-direction:row;align-items:center}
.unid-pick-cant.stepper-js>label,
.unid-pick-cant.stepper-js>select{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}
.unid-pick-cant .stepper{gap:.6rem}
.unid-pick-cant .stepper b{font-size:var(--t-lg)}
@media (max-width:599px){
  .unid-pick-cuerpo{padding:.6rem .75rem .65rem;gap:.05rem}
}

.res-mascota .casilla{
  display:flex;align-items:center;gap:.75rem;
  min-height:var(--tap);padding:.6rem .9rem;
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:var(--t-md);font-weight:600;line-height:1.35;cursor:pointer;
  transition:border-color .2s ease,background .2s ease;
}
.res-mascota input{flex:none;width:22px;height:22px;margin:0;accent-color:var(--amber);cursor:pointer}
.res-mascota input:focus-visible{outline:var(--foco-ancho) solid var(--foco);outline-offset:var(--foco-aire)}
.res-mascota .casilla:has(input:checked){border-color:var(--amber);background:var(--amber-halo)}

/* Punto 80: los pasos, en una columna justo arriba del botón, y la
   cancelación debajo. */
.form-grilla .pasos{grid-template-columns:1fr;gap:.45rem;margin:.2rem 0 0}
.form-grilla .pasos li{align-items:center;font-size:var(--t-sm)}
.res-cancel{margin:.75rem 0 0;font-size:var(--t-sm);line-height:1.5}
#resTotalFijo{
  margin:0 0 .6rem;padding:.65rem 1rem;
  background:var(--stone);border:1px solid var(--line);border-radius:var(--r-sm);
  font-size:var(--t-md);font-weight:600;line-height:1.4;text-align:center;
  font-variant-numeric:tabular-nums;
}
@media (min-width:900px){ #resTotalFijo{display:none} }
.res-menores-ayuda{order:1;margin:.1rem 0 0;font-size:var(--t-sm);line-height:1.45;color:var(--ink-soft)}
/* Con JavaScript, sitio.js la pasa al panel de huéspedes, debajo de Menores. */
.panel-pax .res-menores-ayuda{margin:0 .15rem .6rem}
/* Arreglos de la tanda 4 (punto 54): en la portada sitio.js la pasa al panel de
   huéspedes; sin JavaScript ahí hay un solo desplegable y no se muestra. */
.buscador .campo>.res-menores-ayuda{display:none}
.res-cancel a{
  display:inline;padding:.75rem 0;   /* UX-2 punto 10: en línea, el relleno vertical agranda la zona de toque sin estirar el renglón */
  color:inherit;text-decoration:underline;text-underline-offset:3px;
}

/* Punto 82: el calendario explica los días que no se pueden elegir. */
.cal-dia[aria-disabled="true"]{cursor:not-allowed}
.cal-info.cal-info-mal{color:#8A3620}
.cal-leyenda{margin:.3rem 0 0;text-align:center;font-size:var(--t-xs);color:var(--ink-soft)}
/* En el celu la flecha de "mes siguiente" va contra el borde derecho (con
   los meses ocupando las dos columnas quedaba a mitad de camino). */
@media (max-width:899px){ .cal-flecha[data-mover="1"]{justify-self:end} }

/* Punto 86: sin lugar, el link a las otras opciones antes del WhatsApp. */
.disp-otras{margin:.35rem 0 0}
.disp-otras .link{min-height:44px}

/* Punto 84: quien no tiene banco argentino, arriba del WhatsApp. */
.conf-exterior{margin:-.5rem 0 1rem;font-size:var(--t-sm);line-height:1.45;color:var(--ink-soft)}   /* UX-2 punto 48: justo debajo del plazo */
/* UX-2 punto 53: la fecha límite para cancelar, los horarios y "Cómo llegar". */
.conf-cancelar{margin:.45rem 0 0;font-size:var(--t-sm);line-height:1.45;color:var(--ink-soft)}
.conf-horarios{display:flex;align-items:flex-start;gap:.5rem;margin:.6rem 0 0;font-size:var(--t-md);line-height:1.45}
.conf-horarios .ico{flex:none;width:18px;height:18px;margin-top:.15rem;fill:var(--ink-soft)}
.conf-senada .conf-resumen{margin-top:0}
.conf-acciones{display:grid;gap:.6rem;margin-top:1.2rem}
.conf-acciones .pill{width:100%;gap:.5rem}
.conf-llegar .ico{width:18px;height:18px;fill:currentColor}

/* ---- UX-5 revisión ---- */
/* (81) en el celu, precio a la izquierda y el − n + a la derecha en el mismo renglón: la tarjeta baja de 155 a unos 115 px */
@media (max-width:599px){
  .unid-pick-cuerpo{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:.5rem;align-items:center}
  .unid-pick-cuerpo>b,.unid-pick-cap{grid-column:1/-1}
  .unid-pick-fila{display:contents}
  .unid-pick-precio small{display:block}
  .unid-pick-cant .stepper{gap:.35rem}
}
/* (78) en pantallas bajas (celu de 667 px o menos de alto) la foto va a 16/9 y el título en dos renglones,
   así el botón "Buscar noches libres" entra en la primera pantalla; en los celus altos la foto queda como está */
@media (max-width:899px) and (max-height:700px){
  .pag-inicio #contenido .hero-media img{aspect-ratio:2/1}   /* UX-2 punto 55 */
  .pag-inicio #contenido .hero>div:first-child{padding-top:.75rem}
  .pag-inicio .hero .bajada{line-height:1.4}
  .pag-inicio .hero-datos{margin-bottom:.7rem}
  .pag-inicio #contenido .hero .buscador{margin-top:.6rem;padding:.6rem;gap:.5rem}
  .pag-inicio .hero h1{font-size:clamp(1.9rem,8.2vw,2.3rem);margin-bottom:.5rem}
  /* Arreglos de la tanda 4 (punto 55): con la banda "Prefer English?" arriba
     (44 px; html.con-banda la pone js/sitio.js) la foto se afina más: con
     21/9 el botón seguía 12 px abajo del borde a 375×667 y 32 px a 360×640. */
  .con-banda .pag-inicio #contenido .hero-media img{aspect-ratio:3/1}
  /* UX-2 punto 55: en los más bajos todavía (360×640) la foto baja a 21/9. */
  @media (max-height:660px){
    .pag-inicio #contenido .hero-media img{aspect-ratio:21/9}
    .con-banda .pag-inicio #contenido .hero-media img{aspect-ratio:10/3}
  }
}
