:root{
  --noche:#0c0608;
  --vino:#1a0a0e;
  --uva:#2a0b1d;
  --borde:#7d1530;
  --papel:#f2ede4;
  --tinta:#1b1013;
  --leche:#efe6db;
  --gris:#a89c94;
  --display:"Bodoni Moda",Didot,"Times New Roman",serif;
  --texto:"Spectral",Georgia,serif;
  --pad:clamp(20px,5vw,72px);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
body{background:var(--noche);color:var(--leche);font:400 clamp(17px,1.2vw,20px)/1.6 var(--texto);-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.02;letter-spacing:-.01em}
.grande{font-family:var(--display);font-size:clamp(26px,2.6vw,42px);line-height:1.18;font-weight:400;margin-bottom:.9em;font-variation-settings:"opsz" 40}
.num{font-style:italic;opacity:.55;margin-right:.15em}
.link{border-bottom:1px solid currentColor;padding:2px 0;font-family:var(--display);font-style:italic;font-size:clamp(18px,1.3vw,21px);transition:opacity .3s}
.link:hover{opacity:.6}
.link.claro{color:var(--leche)}
.link.oscuro{color:var(--tinta)}

/* barra */
.top{position:fixed;inset:0 0 auto;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:22px var(--pad);mix-blend-mode:difference;color:#fff;pointer-events:none}
.top>*{pointer-events:auto}
.mark{font-family:var(--display);font-size:22px;letter-spacing:.32em;text-transform:uppercase;text-decoration:none;color:inherit;font-variation-settings:"opsz" 96}
.top-cta{font-family:var(--display);font-style:italic;font-size:18px;border-bottom:1px solid currentColor}

/* el grano que cambia de color */
.rail{position:fixed;left:calc(var(--pad)*.42);top:50%;transform:translateY(-50%);z-index:15;display:flex;flex-direction:column;align-items:center;gap:10px;font:italic 12px var(--display);color:#fff;mix-blend-mode:difference;opacity:.75}
.rail-line{position:relative;width:1px;height:22vh;background:rgba(255,255,255,.35)}
.rail-grano{position:absolute;left:50%;top:0;width:11px;height:11px;margin-left:-5.5px;border-radius:50%;background:#a9b06a;box-shadow:0 0 0 1px rgba(255,255,255,.4)}
@media (max-width:760px){.rail{display:none}}

/* hero */
.hero{position:relative;min-height:100svh;display:grid;grid-template-columns:1fr 1fr;align-items:end;background:#000;overflow:hidden}
.hero-foto{grid-column:2;grid-row:1;height:100svh;position:relative}
.hero-foto img{width:100%;height:100%;object-fit:cover;object-position:30% 40%;opacity:0;transform:scale(1.04);transition:opacity 2.6s ease,transform 6s cubic-bezier(.2,.6,.2,1)}
.hero.ver .hero-foto img{opacity:1;transform:none}
.hero-txt{grid-column:1;grid-row:1;padding:0 var(--pad) 16vh calc(var(--pad)*1.6);max-width:640px;opacity:0;transform:translateY(14px);transition:opacity 1.6s 1s,transform 1.6s 1s}
.hero.ver .hero-txt{opacity:1;transform:none}
.hero h1{font-size:clamp(46px,5.6vw,96px);font-style:italic;margin-bottom:.45em;font-variation-settings:"opsz" 96}
.hero-txt p{max-width:30em;color:#d9cdc2}
.hero-pie{margin-top:2.2em;font-size:14px;letter-spacing:.04em;color:var(--gris)!important}
.bajar{position:absolute;left:50%;bottom:28px;transform:translateX(-50%);font:italic 15px var(--display);color:var(--gris);animation:latido 3.2s ease-in-out infinite}
@keyframes latido{50%{opacity:.35}}
@media (max-width:760px){
  .hero{grid-template-columns:1fr}
  .hero-foto{grid-column:1;position:absolute;inset:0;height:100%}
  .hero-foto::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 35%,rgba(0,0,0,.85) 75%)}
  .hero-txt{grid-column:1;position:relative;padding:0 var(--pad) 14vh}
}

/* mirar */
.mirar{background:var(--papel);color:var(--tinta);padding:18vh var(--pad) 16vh calc(var(--pad)*1.6);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:6vw;align-items:center}
.mirar h2,.oler h2,.probar h2{font-size:clamp(40px,4.4vw,72px);margin-bottom:.6em}
.mirar-txt p:not(.grande){max-width:28em;margin-bottom:1.6em}
.mirar-foto{aspect-ratio:1;overflow:hidden}
.mirar-foto img{width:100%;height:100%;object-fit:cover}
.edades{grid-column:1/-1;list-style:none;display:flex;margin-top:12vh;border-top:1px solid rgba(27,16,19,.25)}
.edades li{flex:1;padding:18px 14px 0 0}
.edades li::before{content:"";display:block;height:clamp(60px,9vw,120px);background:var(--c);margin-bottom:14px;border-radius:0 0 50% 50%/0 0 22% 22%}
.edades b{display:block;font:italic 400 clamp(20px,1.7vw,28px) var(--display)}
.edades span{font-size:15px;color:#6d5f58}
.edades-pie{grid-column:1/-1;font:italic clamp(20px,1.6vw,26px)/1.3 var(--display);margin-top:5vh}
.gota{grid-column:1/-1;justify-self:end;width:min(560px,80%);margin-top:10vh}
.gota figcaption{font-size:15px;color:#6d5f58;margin-top:10px}
@media (max-width:760px){
  .mirar{grid-template-columns:1fr;padding-left:var(--pad)}
  .edades{flex-wrap:wrap}.edades li{flex:0 0 50%}
}

/* pantalla blanca */
.blanco{position:fixed;inset:0;z-index:60;background:#fff;color:var(--tinta);display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding:6vh;text-align:center;gap:16px;font:italic 18px/1.4 var(--display)}
.blanco[hidden]{display:none}

/* oler */
.oler{background:var(--noche)}
.oler-intro{padding:20vh var(--pad) 10vh calc(var(--pad)*1.6);max-width:980px}
.oler-intro p:not(.grande){max-width:32em;color:#cfc2b7}
.aromas{height:calc(var(--n) * 110vh)}
.aromas-escena{position:sticky;top:0;height:100svh;overflow:hidden;user-select:none;-webkit-user-select:none;touch-action:pan-y}
.aroma{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease}
.aroma img{width:100%;height:100%;object-fit:cover;transform:scale(calc(1 + var(--z,0)));will-change:transform}
.aroma.on{opacity:1}
.aromas-escena::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 30%,rgba(8,3,5,calc(.55 + var(--h,0)*.35)) 100%),linear-gradient(90deg,rgba(8,3,5,.75),transparent 55%);transition:background .2s}
.aroma-txt{position:absolute;z-index:2;left:calc(var(--pad)*1.6);bottom:14vh;max-width:min(560px,80vw)}
.aroma-n{font:italic 15px var(--display);color:var(--gris);margin-bottom:8px}
.aroma-txt h3{font-size:clamp(64px,9vw,160px);font-style:italic;font-variation-settings:"opsz" 96;margin-bottom:.15em;transition:opacity .5s}
.aroma-txt p:last-child{font-size:clamp(18px,1.4vw,22px);color:#e3d7cc;transition:opacity .5s}
.aroma-txt.cambia h3,.aroma-txt.cambia p:last-child{opacity:0}
.respirar{position:absolute;z-index:2;right:var(--pad);bottom:6vh;font:italic 17px var(--display);color:var(--leche);text-shadow:0 1px 12px rgba(0,0,0,.9);transition:opacity .4s}
.aromas-escena.inhala .respirar{opacity:0}

/* probar */
.probar{background:var(--vino)}
.probar-intro{padding:20vh var(--pad) 8vh calc(var(--pad)*1.6);max-width:980px}
.sorbo{height:420vh}
.sorbo-escena{position:sticky;top:0;height:100svh;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;align-items:center;padding:0 var(--pad) 0 calc(var(--pad)*1.6)}
.sorbo-fondo{position:absolute;right:0;top:0;height:100%;width:50%;object-fit:cover;opacity:.55}
.sorbo-escena::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--vino) 45%,rgba(26,10,14,.2));z-index:1}
.seg{position:relative;z-index:2;font:italic 400 clamp(120px,19vw,320px)/.8 var(--display);font-variation-settings:"opsz" 96;color:var(--leche);letter-spacing:-.04em}
.seg small{font-size:.4em;vertical-align:top;margin-left:.04em}
.fases{position:relative;z-index:2;list-style:none;grid-column:2;max-width:26em}
.fases li{position:absolute;top:50%;transform:translateY(-40%);opacity:0;transition:opacity .7s,transform .7s;font:400 clamp(22px,2vw,32px)/1.3 var(--display)}
.fases li.on{opacity:1;transform:translateY(-50%)}
.regla{position:absolute;z-index:2;left:calc(var(--pad)*1.6);right:var(--pad);bottom:15vh;height:1px;background:rgba(239,230,219,.2)}
.regla i{position:absolute;left:0;top:0;height:1px;width:0;background:var(--leche)}
#trago{position:absolute;z-index:2;left:calc(var(--pad)*1.6);bottom:7vh;text-align:left}
@media (max-width:760px){
  .sorbo-escena{grid-template-columns:1fr;align-content:center;gap:6vh}
  .sorbo-fondo{width:100%;opacity:.3}
  .fases{grid-column:1;height:9em}
}

/* nombre */
.nombre{background:#0f0a07;padding-bottom:16vh}
.nombre-foto{height:92svh;overflow:hidden}
.nombre-foto img,.nombre-cerca img{width:100%;height:100%;object-fit:cover}
.nombre-cuerpo{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,5fr);gap:7vw;padding:14vh var(--pad) 0 calc(var(--pad)*1.6);align-items:center}
.nombre h2{font-size:clamp(36px,3.6vw,60px);font-style:italic;margin-bottom:.8em}
.nombre-txt p:not(.grande){color:#d4c8bc;max-width:28em;margin-bottom:1em}
.nombre-txt .remate{font:italic 400 clamp(22px,1.9vw,30px)/1.3 var(--display);color:var(--leche)!important;margin-top:1.4em}
.nombre-cerca{aspect-ratio:4/5;overflow:hidden}
@media (max-width:760px){.nombre-cuerpo{grid-template-columns:1fr;padding-left:var(--pad)}.nombre-foto{height:70svh}}

/* finca */
.finca{background:#15110f;padding:0 0 18vh}
.finca-ancha{height:88svh;overflow:hidden}
.finca-ancha img{width:100%;height:100%;object-fit:cover}
.finca-cuerpo{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:6vw;padding:12vh var(--pad) 0 calc(var(--pad)*1.6);align-items:start}
.finca h2{font-size:clamp(40px,4.4vw,72px);font-style:italic;margin-bottom:5vh}
.datos{list-style:none}
.datos li{font:400 clamp(26px,3vw,50px)/1.12 var(--display);padding:.4em 0;border-top:1px solid rgba(239,230,219,.16)}
.finca-pie{margin-top:6vh;max-width:30em;color:#d4c8bc;font-size:clamp(18px,1.4vw,22px)}
.finca-alta{position:sticky;top:12vh;aspect-ratio:2/3;overflow:hidden;margin-top:18vh}
.finca-alta img{width:100%;height:100%;object-fit:cover}
@media (max-width:760px){.finca-cuerpo{grid-template-columns:1fr;padding-left:var(--pad)}.finca-alta{position:static;margin-top:4vh;width:70%}}

/* manos */
.manos{background:var(--papel);color:var(--tinta);display:grid;grid-template-columns:repeat(12,1fr);gap:0 2vw;padding:16vh var(--pad) 18vh calc(var(--pad)*1.6);align-items:start}
.manos-a{grid-column:1/8;aspect-ratio:3/2;overflow:hidden}
.manos-a img,.manos-b img{width:100%;height:100%;object-fit:cover}
.manos-txt{grid-column:8/13;padding-top:8vh;padding-left:2vw}
.manos-txt p:not(.grande){color:#53443e}
.manos-b{grid-column:4/9;margin-top:10vh}
.manos-b img{aspect-ratio:3/2}
.manos-b figcaption{font-size:15px;color:#6d5f58;margin-top:10px}
@media (max-width:760px){.manos{display:block;padding-left:var(--pad)}.manos-txt{padding:6vh 0}}

/* cava */
.cava{position:relative;min-height:110svh;display:flex;align-items:flex-end;background:#000;overflow:hidden}
.cava-foto{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.8}
.cava::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 30%,rgba(0,0,0,.85))}
.cava-txt{position:relative;z-index:2;padding:0 var(--pad) 14vh calc(var(--pad)*1.6);max-width:900px}
.cava-txt p:not(.grande){color:#d4c8bc;max-width:30em}

/* vinos */
.vinos{background:var(--noche);padding:18vh var(--pad) 16vh calc(var(--pad)*1.6)}
.vinos h2{font-size:clamp(36px,3.6vw,60px);font-style:italic;margin-bottom:6vh}
.lista-vinos{list-style:none;counter-reset:v}
.lista-vinos li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.3em 2.4vw;padding:22px 0;border-top:1px solid rgba(239,230,219,.16)}
.lista-vinos b{font:400 clamp(28px,3vw,50px)/1.1 var(--display);min-width:min(11em,100%)}
.lista-vinos span{color:#cfc2b7}
.vinos-pie{margin-top:5vh;max-width:34em;color:var(--gris)}

/* visitas */
.visitas{background:var(--papel);color:var(--tinta);padding:18vh var(--pad) 18vh calc(var(--pad)*1.6)}
.visitas h2{font-size:clamp(46px,5.6vw,96px);font-style:italic;margin-bottom:.35em;font-variation-settings:"opsz" 96}
.visitas>.grande{max-width:22em}
.catas{list-style:none;margin-top:8vh}
.catas li{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,2fr) auto;gap:4vw;align-items:start;padding:32px 0;border-top:1px solid rgba(27,16,19,.22)}
.catas h3{font-size:clamp(28px,2.6vw,44px);margin-bottom:.35em}
.catas li p{color:#53443e;max-width:32em}
.ficha{font-size:16px;line-height:1.5}
@media (max-width:760px){.catas li{grid-template-columns:1fr;gap:12px}.catas .link{justify-self:start}}

/* vacía */
.vacia{position:relative;height:120svh;background:#000;display:flex;align-items:center;justify-content:flex-end;overflow:hidden}
.vacia img{position:absolute;left:0;top:0;height:100%;width:60%;object-fit:cover;object-position:50% 40%}
.vacia-txt{position:relative;z-index:2;width:min(560px,90%);padding-right:var(--pad)}
@media (max-width:760px){.vacia{align-items:flex-end}.vacia img{width:100%;opacity:.55}.vacia-txt{padding:0 var(--pad) 14vh}}

/* pie */
.pie{background:#000;color:var(--gris);padding:12vh var(--pad) 8vh calc(var(--pad)*1.6);font-size:15px;border-top:1px solid rgba(239,230,219,.08)}
.pie-mark{font-family:var(--display);font-size:clamp(64px,13vw,220px);letter-spacing:.12em;text-transform:uppercase;color:var(--leche);line-height:1;margin-bottom:5vh;font-variation-settings:"opsz" 96}
.pie p{margin-bottom:.4em}
.pie a{color:var(--leche)}

/* aparecer */
.sube{opacity:0;transform:translateY(22px);transition:opacity 1.2s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.sube.ver{opacity:1;transform:none}

/* reserva */
.reserva{position:fixed;inset:0;z-index:50;display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:var(--papel);color:var(--tinta);animation:entra .6s ease}
.reserva[hidden]{display:none}
@keyframes entra{from{opacity:0}}
.reserva-foto{overflow:hidden;background:#000}
.reserva-foto img{width:100%;height:100%;object-fit:cover}
.reserva-panel{position:relative;overflow:auto;padding:12vh clamp(24px,6vw,96px) 8vh}
.cerrar{position:absolute;top:24px;right:clamp(24px,4vw,56px);font:italic 17px var(--display);border-bottom:1px solid currentColor}
.paso-n{font:italic 15px var(--display);color:#6d5f58;margin-bottom:10px}
.paso h2{font-size:clamp(34px,3.2vw,52px);font-style:italic;margin-bottom:5vh}
.sub{font:italic 400 22px var(--display);margin:5vh 0 16px}
.opciones button{display:flex;justify-content:space-between;align-items:baseline;width:100%;text-align:left;padding:16px 0;border-top:1px solid rgba(27,16,19,.2);font:400 clamp(20px,1.7vw,26px) var(--display);transition:color .3s}
.opciones button span{font:300 15px var(--texto);color:#6d5f58}
.opciones button[aria-pressed=true]{color:var(--borde);font-style:italic}
.opciones button{position:relative}
.opciones button[aria-pressed=true]::before{content:"—";position:absolute;left:-1.3em}
.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;max-width:480px}
.cal .dow{font:italic 13px var(--display);color:#6d5f58;text-align:center;padding-bottom:4px}
.cal button{aspect-ratio:1;font:400 18px var(--display);border-radius:50%;transition:background .25s,color .25s}
.cal button:disabled{color:#b9aea6;cursor:default;text-decoration:line-through}
.cal button:not(:disabled):hover{background:#e3dacd}
.cal button[aria-pressed=true]{background:var(--tinta);color:var(--papel)}
.cal .mes{grid-column:1/-1;font:italic 18px var(--display);margin:10px 0 6px}
.seguir{margin-top:5vh;background:var(--tinta);color:var(--papel);padding:16px 30px;font:italic 19px var(--display);transition:opacity .3s}
.seguir:disabled{opacity:.25;cursor:default}
.horas button{display:flex;justify-content:space-between;width:100%;padding:18px 0;border-top:1px solid rgba(27,16,19,.2);font:400 28px var(--display)}
.horas button span{font:300 15px var(--texto);color:#6d5f58;align-self:center}
.horas button:disabled{color:#b9aea6;cursor:default}
.horas button[aria-pressed=true]{color:var(--borde);font-style:italic}
.gente{display:flex;align-items:center;gap:18px;margin-top:4vh;font-size:17px}
.gente span{margin-right:auto}
.gente button{width:44px;height:44px;border:1px solid rgba(27,16,19,.3);border-radius:50%;font-size:20px}
.gente b{font:400 28px var(--display);min-width:1.2em;text-align:center}
.total{margin-top:3vh;font:italic 22px var(--display)}
.pasos-nav{display:flex;align-items:center;justify-content:space-between;gap:20px}
.pasos-nav .seguir{margin-top:5vh}
.pasos-nav .link{margin-top:5vh}
label{display:block;font:italic 16px var(--display);color:#6d5f58;margin-bottom:22px}
label input{display:block;width:100%;margin-top:6px;border:0;border-bottom:1px solid rgba(27,16,19,.35);background:none;padding:10px 0;font:400 24px var(--display);color:var(--tinta);outline:none}
label input:focus{border-color:var(--tinta)}
.resumen{margin-top:3vh;color:#53443e}
.aviso{margin-top:4vh;font-size:15px;color:#6d5f58;max-width:30em}
#listo-txt{font:400 clamp(22px,2vw,30px)/1.35 var(--display);max-width:22em}
@media (max-width:760px){.reserva{grid-template-columns:1fr}.reserva-foto{display:none}.reserva-panel{padding-top:10vh}}

@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
