:root{
  --crema:#fbf6f2;--rosa:#f4e5df;--nude:#dcb5a8;--malva:#8a5c55;--cacao:#3e2a24;--tinta:#2d201b;--suave:#6e5650;
  --naranja:#de9c2c;--ola:#3fa79b;--estrella:#8a7650;--logo-texto:#55524f;
  --linea:rgba(62,42,36,.14);--g:20px;--barra-h:92px;
  --serif:"Cormorant",Georgia,serif;--sans:"Jost",system-ui,sans-serif;
  --curva:cubic-bezier(.22,.7,.2,1);
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:var(--barra-h)}
body{background:var(--crema);color:var(--tinta);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.02;letter-spacing:-.01em}
h1 em,h2 em,.tit em{font-style:italic;font-weight:500;color:var(--nude)}
h2{font-size:clamp(38px,6.4vw,64px)}
h2 em{color:var(--malva)}
.ancho{max-width:1180px;margin:0 auto;padding:0 var(--g)}
.ojo{font-size:13px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--malva);margin-bottom:12px}

/* botones */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:0 26px;border-radius:999px;background:var(--cacao);color:#fff;font:500 16px/1 var(--sans);text-decoration:none;border:0;cursor:pointer;transition:transform .25s var(--curva),background .25s}
.btn:hover{background:#5a3d34;transform:translateY(-1px)}
.btn:active{transform:scale(.97)}
.btn-sm{min-height:44px;padding:0 20px;font-size:15px}
.btn-linea{background:transparent;color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.85)}
.btn-linea:hover{background:rgba(255,255,255,.12)}
.btn-linea-osc{background:transparent;color:var(--cacao);box-shadow:inset 0 0 0 1.5px var(--cacao)}
.btn-linea-osc:hover{background:var(--cacao);color:#fff}
.btn-bloque{width:100%}

/* barra */
.barra{position:fixed;inset:0 0 auto;z-index:50;height:var(--barra-h);display:flex;align-items:center;gap:24px;padding:0 max(var(--g),calc((100vw - 1180px)/2 + var(--g)));background:rgba(251,246,242,.96);border-bottom:1px solid var(--linea);transition:transform .35s var(--curva)}
.marca{display:flex;flex:0 0 auto}
.logo{width:90px;height:82px}
.menu{display:flex;gap:30px;margin-left:auto;margin-right:8px}
.menu a{text-decoration:none;font-size:16px;color:var(--suave);padding:8px 0;position:relative}
.menu a::after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--malva);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--curva)}
.menu a:hover{color:var(--tinta)}
.menu a:hover::after{transform:scaleX(1)}
.hamb{display:none}

/* portada */
.hero{position:relative;height:100svh;min-height:600px;max-height:980px;overflow:hidden;background:var(--cacao);color:#fff}
.slides,.slide{position:absolute;inset:0}
.slide{opacity:0;transition:opacity 1.4s ease}
.slide.activa{opacity:1;z-index:1}
.slide img{width:100%;height:100%;object-fit:cover;transform:scale(1.08);transition:transform 7s linear}
.slide.activa img{transform:scale(1)}
.hero-velo{position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(45,28,23,.78) 0%,rgba(45,28,23,.45) 42%,rgba(45,28,23,0) 70%),linear-gradient(0deg,rgba(45,28,23,.55),rgba(45,28,23,0) 35%)}
.hero-texto{position:absolute;z-index:3;left:0;right:0;bottom:0;top:var(--barra-h);max-width:1180px;margin:0 auto;padding:0 var(--g) 96px;display:flex;flex-direction:column;justify-content:flex-end}
.titulares{display:grid}
.tit{grid-area:1/1;font:600 clamp(46px,8vw,96px)/.98 var(--serif);letter-spacing:-.015em;opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform .8s var(--curva);text-shadow:0 1px 3px rgba(30,15,10,.35),0 2px 26px rgba(30,15,10,.55)}
.tit.activa{opacity:1;transform:none}
.tit em{color:#ffe9e0}
.hero-abajo{margin-top:22px}
.bajadas{display:grid;margin-bottom:24px;max-width:36ch}
.baj{grid-area:1/1;color:#f6e9e3;font-size:18px;line-height:1.6;opacity:0;transition:opacity .6s ease;text-shadow:0 1px 12px rgba(30,15,10,.45)}
.baj.activa{opacity:1}
.acciones{display:flex;flex-wrap:wrap;gap:12px}
.hero .btn:not(.btn-linea){background:#f3d6cb;color:var(--cacao)}
.hero .btn:not(.btn-linea):hover{background:#fff}
.puntos{position:absolute;z-index:4;bottom:34px;right:var(--g);display:flex;gap:8px}
.puntos button{width:44px;height:44px;background:none;border:0;padding:0;cursor:pointer;display:flex;align-items:center}
.puntos i{display:block;width:100%;height:2px;background:rgba(255,255,255,.35);position:relative;overflow:hidden}
.puntos i::after{content:"";position:absolute;inset:0;background:#fff;transform:scaleX(0);transform-origin:left}
.puntos button[aria-selected=true] i::after{animation:llenar 6s linear forwards}
@keyframes llenar{to{transform:scaleX(1)}}

/* cinta */
.cinta{background:var(--cacao);color:#f3e2db;overflow:hidden;padding:16px 0;white-space:nowrap}
.cinta-pista{display:inline-flex;gap:26px;align-items:center;animation:cinta 38s linear infinite;font:500 italic 22px/1 var(--serif)}
.cinta b{color:var(--naranja);font-size:14px;font-style:normal}
@keyframes cinta{to{transform:translateX(-50%)}}

/* secciones */
.sec{padding:96px 0}
.sec-rosa{background:var(--rosa)}
.sec-oscura{background:var(--cacao);color:#fbf1ec}
.sec-oscura h2 em{color:var(--nude)}
.sec-oscura .ojo{color:var(--nude)}
.cabeza{margin-bottom:44px;max-width:640px}
.cabeza-fila{max-width:none;display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap}
.intro{color:var(--suave);margin-top:14px;font-size:18px}

/* servicios */
.servicios{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}
.serv{grid-column:span 2;background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--linea)}
.serv.grande{grid-column:span 4;flex-direction:row}
.serv.grande img{width:58%;height:100%;aspect-ratio:auto}
.serv img{width:100%;aspect-ratio:16/10;object-fit:cover;transition:transform 1.2s var(--curva)}
.serv:hover img{transform:scale(1.04)}
.serv{isolation:isolate}
.serv-txt{padding:24px 24px 26px;display:flex;flex-direction:column;gap:10px;flex:1}
.serv h3{font-size:34px}
.serv ul{list-style:none;padding:0;color:var(--suave);font-size:16px;display:grid;gap:6px}
.serv li{padding-left:18px;position:relative}
.serv li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:7px;border-radius:50%;background:var(--nude)}
.serv a{margin-top:auto;padding-top:10px;color:var(--malva);font-weight:500;text-decoration:none;min-height:44px;display:flex;align-items:flex-end}
.serv a:hover{color:var(--cacao)}

/* paquetes */
.paquetes{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.paq{background:var(--crema);border-radius:18px;padding:30px 26px;display:flex;flex-direction:column;gap:14px;border:1px solid var(--linea)}
.paq-destacado{background:var(--cacao);color:#fbf1ec;transform:translateY(-14px)}
.paq-tag{font:italic 500 20px/1.2 var(--serif);color:var(--malva)}
.paq-destacado .paq-tag{color:var(--nude)}
.paq h3{font-size:40px}
.paq ul{list-style:none;padding:0;display:grid;gap:8px;border-top:1px solid var(--linea);padding-top:16px}
.paq-destacado ul{border-color:rgba(255,255,255,.18)}
.paq li::before{content:"✓";color:var(--ola);margin-right:10px;font-weight:600}
.paq-precio{margin-top:auto;padding-top:8px;color:var(--suave)}
.paq-destacado .paq-precio{color:#e8d3cb}
.paq-precio span{font:600 54px/1 var(--serif);color:var(--cacao);margin-right:6px}
.paq-destacado .btn{background:var(--nude);color:var(--cacao)}
.paq-destacado .btn:hover{background:#ecc9bd}

/* promo */
.promo{display:grid;grid-template-columns:5fr 6fr;gap:56px;align-items:center}
.promo-img img{border-radius:18px;width:100%;box-shadow:0 30px 60px -30px rgba(62,42,36,.45)}
.promo-txt p{color:var(--suave);margin:18px 0;font-size:18px;max-width:46ch}
.promo-txt .lema{font:italic 500 30px/1.2 var(--serif);color:var(--malva)}

/* reservar */
.reserva{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.reserva-txt p{color:#e8d6cf;margin-top:16px;font-size:18px}
.datos{list-style:none;padding:0;margin-top:30px;display:grid;gap:12px}
.datos li{display:flex;justify-content:space-between;gap:16px;border-top:1px solid rgba(255,255,255,.16);padding-top:12px;max-width:380px}
.datos b{font-weight:400;color:var(--nude)}
.datos a{text-decoration:none;min-height:44px;display:inline-flex;align-items:center;margin:-10px 0}
.form{background:var(--crema);color:var(--tinta);border-radius:20px;padding:30px;display:grid;gap:16px}
.form label{display:grid;gap:6px;font-size:14px;font-weight:500;color:var(--suave)}
.form input,.form select{font:400 16px var(--sans);color:var(--tinta);min-height:50px;padding:0 14px;border:1px solid rgba(62,42,36,.22);border-radius:12px;background:#fff;width:100%}
.form input:focus,.form select:focus{outline:2px solid var(--nude);outline-offset:1px}
.fila{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.aviso{color:#a3362b;font-size:14px;min-height:0}
.aviso:empty{display:none}

/* feed */
.feed{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}
.feed a{overflow:hidden;border-radius:12px;display:block}
.feed img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .8s var(--curva)}
.feed a:hover img{transform:scale(1.05)}

/* visita */
.visita{display:grid;grid-template-columns:1fr 1.2fr;gap:56px;align-items:center}
.dir{font-size:20px;margin:18px 0 26px;color:var(--suave)}
.mapa{border-radius:18px;overflow:hidden;border:1px solid var(--linea);background:#eadcd5}
.mapa iframe{display:block;width:100%;height:380px;border:0}

/* pie */
.pie{background:var(--crema);border-top:1px solid var(--linea);padding:56px 0 110px;color:var(--suave);font-size:15px}
.pie-in{display:grid;gap:14px;justify-items:start}
.logo-pie{width:132px;height:120px}
.pie-red{display:flex;flex-wrap:wrap;gap:0 22px}
.pie-red a{color:var(--malva);display:inline-block;padding:11px 0}
.rif{font-size:13px}

/* flotantes */
.wa-flot{position:fixed;right:18px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:60;width:58px;height:58px;border-radius:50%;background:#1f9e57;color:#fff;display:grid;place-items:center;box-shadow:0 10px 24px -8px rgba(0,0,0,.4);transition:transform .25s var(--curva)}
.wa-flot:hover{transform:scale(1.06)}
.wa-flot svg{width:30px;height:30px}
.barra-movil{display:none}

/* aparición: el contenido es visible SIN JS; solo se esconde si el JS marca la página */
.js .aparece{opacity:0;transform:translateY(24px);transition:opacity .55s ease,transform .55s var(--curva)}
.js .aparece.vista{opacity:1;transform:none}

@media (max-width:900px){
  :root{--barra-h:88px;--g:18px}
  .menu{position:fixed;inset:var(--barra-h) 0 auto;background:var(--crema);flex-direction:column;gap:0;padding:8px var(--g) 22px;border-bottom:1px solid var(--linea);transform:translateY(-140%);visibility:hidden;transition:transform .35s var(--curva),visibility 0s .35s;z-index:-1}
  .menu.abierto{transform:none;visibility:visible;transition:transform .35s var(--curva)}
  .menu a{font:600 28px/1 var(--serif);color:var(--tinta);padding:16px 0;border-bottom:1px solid var(--linea)}
  .barra .btn-sm{margin-left:auto}
  .hamb{display:grid;gap:6px;width:44px;height:44px;place-content:center;background:none;border:0;cursor:pointer}
  .hamb span{display:block;width:24px;height:1.5px;background:var(--tinta);transition:transform .3s var(--curva)}
  .hamb[aria-expanded=true] span:first-child{transform:translateY(3.75px) rotate(45deg)}
  .hamb[aria-expanded=true] span:last-child{transform:translateY(-3.75px) rotate(-45deg)}
  .logo{width:84px;height:77px}
  .barra{gap:12px}
  .barra .btn-sm{display:none}
  .barra{padding:0 var(--g);justify-content:flex-end}
  .marca{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}
  .hero{height:calc(100svh - 64px);min-height:540px;max-height:none}
  .hero-velo{background:linear-gradient(180deg,rgba(45,28,23,.4) 0%,rgba(45,28,23,.22) 30%,rgba(45,28,23,0) 44%,rgba(45,28,23,.22) 56%,rgba(45,28,23,.72) 78%,rgba(45,28,23,.78) 100%)}
  .hero-texto{justify-content:space-between;padding-top:30px;padding-bottom:72px}
  .tit{font-size:clamp(40px,12.4vw,58px);line-height:1.3}
  .hero-abajo{margin-top:0}
  .baj{font-size:16px;line-height:1.9}
  .bajadas{margin-bottom:16px}
  .hero .acciones{flex-direction:column;gap:12px}
  .hero .acciones .btn{width:100%}
  .puntos{left:var(--g);right:auto;bottom:22px}
  .puntos button{width:34px}
  .sec{padding:72px 0}
  .servicios{grid-template-columns:1fr}
  .serv,.serv.grande{grid-column:auto;flex-direction:column}
  .serv.grande img{width:100%;aspect-ratio:16/10}
  .paquetes{grid-template-columns:1fr}
  .paq-destacado{transform:none}
  .promo,.reserva,.visita{grid-template-columns:1fr;gap:34px}
  .promo-img{max-width:360px}
  .feed{grid-template-columns:repeat(3,1fr);gap:6px}
  .form{padding:22px}
  .mapa iframe{height:300px}
  .wa-flot{display:none}
  .barra-movil{display:grid;grid-template-columns:1fr 1.2fr 1fr;position:fixed;left:0;right:0;bottom:0;z-index:60;background:rgba(251,246,242,.98);border-top:1px solid var(--linea);padding:8px 10px calc(8px + env(safe-area-inset-bottom));gap:8px}
  .barra-movil a{min-height:48px;display:grid;place-items:center;text-decoration:none;font-size:15px;font-weight:500;color:var(--suave);border-radius:999px}
  .barra-movil .central{background:var(--cacao);color:#fff}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .slide img{transform:none}
}
