@font-face{font-family:"Cormorant";src:url(fuentes/cormorant-500.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"Cormorant";src:url(fuentes/cormorant-500i.woff2) format("woff2");font-weight:500;font-style:italic;font-display:swap}
@font-face{font-family:"Figtree";src:url(fuentes/figtree-400.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Figtree";src:url(fuentes/figtree-600.woff2) format("woff2");font-weight:600;font-display:swap}

:root{
  --papel:#f7f1e6; --papel2:#ece2d0; --tinta:#211714; --suave:#5d4f47; --vino:#8b1a34; --vino2:#6f1228; --vino3:#2a0a13;
  --ocre:#7a5a24; --carbon:#141010; --crema:#f4ecde; --crema2:#cfc3b1; --linea:#d9ccb6; --ocre-claro:#d9b97f;
  --serif:"Cormorant",Georgia,"Times New Roman",serif; --sans:"Figtree",system-ui,-apple-system,"Segoe UI",sans-serif;
  --curva:cubic-bezier(.16,1,.3,1); --margen:clamp(20px,4vw,64px);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--papel);color:var(--tinta);font:400 1.0625rem/1.65 var(--sans);padding-bottom:calc(56px + env(safe-area-inset-bottom));overflow-x:clip}
img,video{display:block;max-width:100%;height:auto}
figure{margin:0}
a{color:var(--vino);text-underline-offset:3px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.02;margin:0 0 .5em;letter-spacing:-.012em}
h1{font-size:clamp(2.75rem,min(7vw,13vh),7rem);line-height:.98}
h2{font-size:clamp(2.75rem,6.4vw,6rem)}
h3{font-size:1.75rem}
em{font-style:italic}
p{margin:0 0 1em}
ul{margin:0;padding:0;list-style:none}
:focus-visible{outline:3px solid var(--vino);outline-offset:3px}
.oscuro :focus-visible,.portada :focus-visible,.cabecera :focus-visible,.pie :focus-visible,.barra :focus-visible{outline-color:var(--ocre-claro)}
.ancho{width:min(1440px,100% - 2*var(--margen));margin-inline:auto}
.oculto{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:12px;top:-60px;background:var(--crema);color:var(--tinta);padding:10px 16px;z-index:60}
.saltar:focus{top:12px}
.ico{width:1.2em;height:1.2em;flex:none}

.antetitulo{font-weight:600;font-size:.8125rem;letter-spacing:.2em;text-transform:uppercase;color:var(--ocre);margin-bottom:1.1em}
.oscuro .antetitulo,.portada .antetitulo{color:var(--ocre-claro)}
.entrada{font-size:clamp(1.0625rem,1.5vw,1.25rem);max-width:34em}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;min-height:50px;padding:.65em 1.5em;font-weight:600;font-size:1rem;text-decoration:none;border:1.5px solid transparent;border-radius:2px;cursor:pointer;background:none;font-family:inherit;transition:background-color .25s,color .25s,border-color .25s,transform .4s var(--curva)}
.btn:hover{transform:translateY(-2px)}
.btn--vino{background:var(--vino);color:#fff}
.btn--vino:hover{background:var(--vino2)}
.btn--linea{border-color:var(--tinta);color:var(--tinta)}
.btn--linea:hover{background:var(--tinta);color:var(--papel)}
.btn--clara{border-color:rgba(244,236,222,.75);color:var(--crema)}
.btn--clara:hover{background:var(--crema);color:var(--carbon)}
.btn--crema{background:var(--crema);color:var(--carbon)}
.btn--crema:hover{background:#fff}
.acciones{display:flex;flex-wrap:wrap;gap:12px;margin-top:1.75rem}
.acciones--centro{justify-content:center;margin-top:2.5rem}

/* Cabecera */
.cabecera{position:sticky;top:0;z-index:40;background:var(--carbon);color:var(--crema);border-bottom:1px solid rgba(244,236,222,.14);transition:background-color .4s,border-color .4s}
.sobre .cabecera{position:fixed;inset:0 0 auto 0}
.js .sobre .cabecera:not(.solido){background:transparent;border-color:transparent}
.cabecera__fila{display:flex;align-items:center;gap:20px;min-height:68px}
.marca{flex:none;margin-right:auto;display:flex;align-items:center;min-height:44px}
.marca img,.pie__logo{filter:brightness(0) invert(1)}
.marca img{width:clamp(136px,17vw,210px)}
.cabecera nav{display:flex;gap:clamp(12px,2.4vw,32px)}
.cabecera nav a{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:var(--crema);text-decoration:none;font-weight:600;font-size:.9375rem;padding:0;background:linear-gradient(currentColor,currentColor) 0 calc(100% - 6px)/0 1.5px no-repeat;transition:background-size .4s var(--curva)}
.cabecera nav a:hover,.cabecera nav a[aria-current]{background-size:100% 1.5px}
.cabecera__cta{min-height:42px;padding:.4em 1.1em;font-size:.9375rem}

/* Portada */
.portada{position:relative;min-height:calc(100svh - 56px);display:flex;align-items:flex-end;background:var(--carbon);color:var(--crema);overflow:clip;isolation:isolate}
.portada__medio{position:absolute;inset:0;z-index:-2}
.portada__medio img,.portada__medio video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.portada__medio video{opacity:0;transition:opacity .9s}
.portada__medio video.activo{opacity:1}
.portada::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,16,16,.6) 0,rgba(20,16,16,.1) 16%,rgba(20,16,16,.66) 40%,rgba(20,16,16,.9) 72%,rgba(20,16,16,.98) 100%)}
.portada__txt{padding-block:110px 26px;width:min(1440px,100% - 2*var(--margen));margin-inline:auto}
.portada h1{margin-bottom:.28em;text-shadow:0 2px 34px rgba(0,0,0,.45)}
.portada h1 em{color:var(--ocre-claro)}
.linea{display:block;overflow:clip;padding-bottom:.12em;margin-bottom:-.12em}
.linea>span{display:block}
.portada .entrada{color:var(--crema)}
.portada__pie{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:center;justify-content:space-between;margin-top:1.5rem;padding-top:14px;border-top:1px solid rgba(244,236,222,.28);font-size:.9375rem;color:var(--crema2)}
.portada__pie p{margin:0}
.video-mandos{display:flex;gap:18px}
.video-mandos a,.video-mandos button{display:inline-flex;align-items:center;gap:.45em;min-height:44px;padding:0;background:none;border:0;color:var(--crema);font:600 .9375rem var(--sans);cursor:pointer;text-decoration:underline;text-underline-offset:4px;text-decoration-color:rgba(244,236,222,.5)}
.video-mandos a:hover,.video-mandos button:hover{text-decoration-color:currentColor}
.portada--foto{min-height:min(88svh,820px)}
/* Portada con video: el video va limpio y el texto en su propia banda. */
.portada--cine{display:grid;grid-template-rows:minmax(34svh,1fr) auto;height:calc(100svh - 56px);align-items:stretch}
.portada--cine::after{display:none}
.portada--cine .portada__medio{position:relative;inset:auto;z-index:0;min-height:0;overflow:clip}
.portada--cine .portada__medio::after{content:"";position:absolute;inset:0 0 auto 0;height:120px;background:linear-gradient(180deg,rgba(20,16,16,.72),transparent);pointer-events:none}
.portada--cine .portada__txt{padding-block:clamp(16px,3vh,30px) 10px;display:grid;gap:14px 48px}
.portada--cine h1{font-size:clamp(2.5rem,min(5.2vw,9.5vh),6rem);margin:0;text-shadow:none}
.portada--cine .antetitulo{margin-bottom:.7em}
.portada--cine .entrada{margin:0;font-size:1.0625rem;line-height:1.5;color:var(--crema2);max-width:29em}
.portada--cine .acciones{margin-top:14px}
.portada--cine .portada__pie{margin-top:0;padding-top:6px;grid-column:1/-1}
.portada--foto .portada__medio img{animation:acercar 18s ease-out both}

.pelicula{padding:0;border:0;background:transparent;max-width:none;max-height:none;overflow:visible}
.pelicula::backdrop{background:rgba(10,7,7,.92)}
.pelicula video{height:min(86svh,1280px);width:auto;aspect-ratio:9/16;background:#000}
.pelicula__cerrar{position:absolute;top:0;right:-4px;transform:translateX(100%);min-height:44px;padding:0 14px;background:var(--crema);color:var(--carbon);border:0;font:600 .9375rem var(--sans);cursor:pointer}

/* Cinta */
.cinta{background:var(--vino);color:#fff;overflow:clip;padding-block:15px}
.cinta__pista{display:flex;width:max-content;animation:deslizar 70s linear infinite}
.cinta__pista span{font:italic 500 clamp(1.25rem,2vw,1.625rem)/1.2 var(--serif);white-space:nowrap;padding-inline:26px;position:relative}
.cinta__pista span::after{content:"";position:absolute;right:-2px;top:50%;width:5px;height:5px;background:var(--ocre-claro);transform:rotate(45deg)}

.seccion{padding-block:clamp(72px,10vw,160px)}
.oscuro{background:var(--carbon);color:var(--crema)}
.seccion--papel2{background:var(--papel2)}
.dos{display:grid;gap:44px;align-items:center}
.foto-alta{overflow:clip}
.foto-alta img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* Casa */
.manifiesto{font:500 clamp(2.25rem,5.2vw,5rem)/1.08 var(--serif);letter-spacing:-.012em;margin:0 0 .6em}
.manifiesto .p{transition:opacity .35s}
.chef-txt{color:var(--suave);font-size:1.1875rem;max-width:30em}
.casa__foto{position:relative}
.cifras{display:grid;grid-template-columns:repeat(2,1fr);margin:clamp(48px,7vw,96px) 0 0;border-top:1px solid var(--linea)}
.cifras div{padding:22px 16px 22px 0;display:flex;flex-direction:column-reverse;gap:4px;border-bottom:1px solid var(--linea)}
.cifras dt{font-size:.9375rem;color:var(--suave)}
.cifras dd{margin:0;font:500 clamp(3.25rem,6vw,5.5rem)/.95 var(--serif);color:var(--vino);font-variant-numeric:lining-nums tabular-nums}

/* Mesa: galería horizontal */
.mesa{background:var(--carbon);color:var(--crema);padding-block:72px}
.mesa__cab{display:flex;flex-wrap:wrap;gap:6px 40px;align-items:baseline;justify-content:space-between;margin-bottom:28px}
.mesa__cab h2{margin:0}
.mesa__cab p{margin:0;color:var(--crema2)}
.mesa__pista{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:max(var(--margen),calc((100vw - 1440px)/2));scrollbar-width:none}
.mesa__pista::-webkit-scrollbar{display:none}
.mesa__pista li{flex:none;scroll-snap-align:center;overflow:clip}
.mesa__pista img{height:min(62svh,560px);width:auto;max-width:none;transition:transform 1.2s var(--curva)}
.mesa__pista li:hover img{transform:scale(1.04)}
.mesa__barra{display:none}
.mesa.pin{padding:0}
.mesa.pin .mesa__fija{position:sticky;top:0;height:100svh;overflow:clip;display:flex;flex-direction:column;justify-content:center;padding-top:68px}
.mesa.pin .mesa__pista{overflow:visible;width:max-content;scroll-snap-type:none;will-change:transform}
.mesa.pin .mesa__barra{display:block;width:min(1440px,100% - 2*var(--margen));margin:26px auto 0;height:2px;background:rgba(244,236,222,.18)}
.mesa.pin .mesa__barra i{display:block;height:100%;background:var(--ocre-claro);transform-origin:0 50%;transform:scaleX(var(--avance,0))}

/* Carta */
.carta-casa{background:var(--vino3);color:var(--crema)}
.carta-casa .dos{align-items:start}
.carta-casa .plato{font-size:1.125rem}
.platos{display:grid}
.plato{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid rgba(244,236,222,.2);transition:padding-left .45s var(--curva)}
.carta-casa .plato:hover{padding-left:10px}
.plato__txt{display:flex;flex-direction:column;gap:2px;min-width:0}
.plato__precio{font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.carta-casa .plato__precio{color:var(--ocre-claro)}
.plato__precio--consultar{font-weight:400;font-style:italic}
.plato__en{font-size:.9375rem;color:var(--ocre)}
.platos--carta .plato{border-bottom-color:var(--linea);padding:16px 0}

/* Eventos */
.evento__fotos{position:relative;padding-bottom:12%}
.evento__fotos .foto-alta:first-child{width:82%}
.evento__sobre{position:absolute;right:0;bottom:0;width:44%;border:8px solid var(--papel)}
.evento__sobre img{aspect-ratio:3/4}

.tabla{width:100%;border-collapse:collapse;margin-top:1.25rem}
.tabla th,.tabla td{padding:12px 0;border-bottom:1px solid var(--linea);text-align:left;font-weight:400}
.tabla thead th{font-weight:600;font-size:.8125rem;letter-spacing:.1em;text-transform:uppercase;color:var(--suave)}
.tabla td{text-align:right;font-weight:600;white-space:nowrap;padding-left:16px}
.tabla thead th:last-child{text-align:right}
.oscuro .tabla th,.oscuro .tabla td{border-color:rgba(244,236,222,.3)}

/* Mosaico */
.mosaico{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:2.25rem;overflow:clip}
.mosaico__col{display:flex;flex-direction:column;gap:10px}
.mosaico__col:nth-child(3){grid-column:1/-1;flex-direction:row}
.mosaico__col:nth-child(3) li{flex:1}
.mosaico li{overflow:clip}
.mosaico img{width:100%;object-fit:cover;transition:transform 1.2s var(--curva)}
.mosaico li:hover img{transform:scale(1.05)}
.galeria{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:1.5rem}
.galeria li{overflow:clip}
.galeria img{width:100%;aspect-ratio:3/4;object-fit:cover}

/* Cierre */
.cierre{position:relative;overflow:clip;isolation:isolate;background:var(--carbon);color:var(--crema);padding-block:clamp(96px,14vw,220px) clamp(72px,8vw,120px);scroll-margin-top:60px}
.cierre__foto{position:absolute;inset:-12% 0;z-index:-2}
.cierre__foto img{width:100%;height:100%;object-fit:cover}
.cierre::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,16,16,.78),rgba(20,16,16,.68) 45%,rgba(20,16,16,.9))}
.cierre h2{max-width:11em}
.cierre .direccion{font-size:clamp(1.1875rem,2vw,1.5rem);margin-bottom:.5em}
.cierre .tabla{max-width:480px}

/* Menú */
.titular{background:var(--carbon);color:var(--crema);padding-block:clamp(56px,8vw,112px) 40px}
.titular .antetitulo{color:var(--ocre-claro)}
.titular a{color:var(--ocre-claro)}
.chips{position:sticky;top:69px;z-index:10;background:var(--papel);border-bottom:1px solid var(--linea)}
.chips__fila{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;padding-block:8px}
.chips__fila::-webkit-scrollbar{display:none}
.chips a{flex:none;padding:8px 14px;color:var(--tinta);text-decoration:none;font-size:.9375rem;font-weight:600;border-radius:2px;transition:background-color .2s,color .2s}
.chips a:hover{background:var(--papel2);color:var(--vino)}
.carta{max-width:880px;padding-block:24px 72px}
.carta__sec{padding-top:48px;scroll-margin-top:124px}
.carta__sec h2{font-size:clamp(2.25rem,4.4vw,3.25rem);color:var(--vino);margin-bottom:.25em}
.carta__sec h2 span{display:block;font:600 .8125rem/1.6 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ocre)}
.carta__nota{margin-top:2rem;color:var(--suave);font-size:.9375rem}

.tipos{display:grid;gap:28px;margin-top:1.5rem}
.tipos li{border-top:1px solid rgba(244,236,222,.3);padding-top:18px}
.tipos p{margin:0;color:var(--crema2)}

.pie{background:var(--carbon);color:var(--crema2);padding-block:64px 24px;font-size:.9375rem}
.pie__grid{display:grid;gap:30px}
.pie__logo{width:190px;margin-bottom:14px}
.pie h2{font:600 .8125rem/1.5 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ocre-claro);margin-bottom:.6em}
.pie a{color:var(--crema)}
.pie p{margin:0}
.pie .pie__legal{margin:40px auto 0;padding-top:18px;border-top:1px solid rgba(244,236,222,.18);font-size:.875rem}

.barra{position:fixed;inset:auto 0 0 0;z-index:30;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;background:var(--carbon);border-top:1px solid rgba(244,236,222,.18);padding-bottom:env(safe-area-inset-bottom)}
.barra a{display:flex;align-items:center;justify-content:center;gap:.4em;min-height:56px;font-weight:600;font-size:.9375rem;color:var(--crema);text-decoration:none;border-left:1px solid rgba(244,236,222,.18)}
.barra__principal{background:var(--vino);color:#fff!important;border-left:0!important}

@media (max-width:620px){
  .cabecera__cta{display:none}
  .cabecera nav a{font-size:.875rem}
  .portada__txt{padding-bottom:16px}
  .portada--cine{height:auto;min-height:calc(100svh - 56px)}
  .portada--cine .acciones .btn{flex:1 1 auto}
  .portada--cine .acciones .btn--clara{display:none}
  .pelicula video{height:auto;width:min(86vw,calc(78svh*9/16))}
  .pelicula__cerrar{top:auto;bottom:100%;right:0;transform:none}
}
@media (max-width:370px){
  .cabecera__fila{gap:10px}
  .marca img{width:112px}
  .cabecera nav{gap:10px}
  .cabecera nav a{font-size:.8125rem}
}
@media (min-width:1000px){
  .portada--cine .portada__txt{grid-template-columns:1fr minmax(0,30em);align-items:end}
}
@media (min-width:800px){
  .galeria{grid-template-columns:repeat(3,1fr)}
  .tipos{grid-template-columns:repeat(3,1fr)}
  .pie__grid{grid-template-columns:1.5fr 1.2fr 1.3fr .7fr}
  .cifras{grid-template-columns:repeat(4,1fr)}
  .mosaico{grid-template-columns:repeat(3,1fr)}
  .mosaico__col:nth-child(3){grid-column:auto;flex-direction:column}
  .mosaico{height:clamp(560px,54vw,860px)}
  /* Las columnas sobresalen para que el paralaje no descubra huecos. */
  .mosaico__col{height:calc(100% + 110px);margin-top:-55px}
  .mosaico__col li{flex:2 1 0;min-height:0}
  .mosaico__col li:last-child{flex-grow:3}
  .mosaico__col:nth-child(2) li:first-child{flex-grow:3}
  .mosaico__col:nth-child(2) li:last-child{flex-grow:2}
  .mosaico li{position:relative}
  .mosaico__col:nth-child(3) li:first-child{flex-grow:3}
  .mosaico__col:nth-child(3) li:last-child{flex-grow:3}
  .mosaico img{position:absolute;inset:0;height:100%;object-position:50% 60%}
  .mosaico__col:nth-child(3) li:first-child img{object-position:50% 8%}
}
@media (min-width:900px){
  body{padding-bottom:0}
  .barra{display:none}
  .portada--cine{height:100svh;min-height:540px}
  .dos{grid-template-columns:7fr 5fr;gap:clamp(56px,7vw,120px)}
  .dos--invertido{grid-template-columns:6fr 6fr}
  .carta-casa .dos{grid-template-columns:5fr 7fr}
  .carta-casa .dos>div:first-child{position:sticky;top:110px}
}

@media (prefers-reduced-motion:no-preference){
  .portada h1 .linea>span{animation:subir 1.25s var(--curva) both}
  .portada h1 .linea:nth-child(2)>span{animation-delay:.12s}
  .portada h1 .linea:nth-child(3)>span{animation-delay:.24s}
  .portada [data-entra]{animation:aparecer 1s .5s ease-out both}
  .js [data-r]{transition:opacity 1.1s var(--curva),transform 1.1s var(--curva),clip-path 1.5s var(--curva)}
  .js [data-r]:not(.vis){opacity:0;transform:translateY(34px)}
  .js [data-r="foto"]{transform:none!important}
  .js [data-r="foto"]:not(.vis){opacity:1;clip-path:inset(16% 8% 16% 8%)}
  .js [data-r="foto"] img{transition:transform 1.8s var(--curva)}
  .js [data-r="foto"]:not(.vis) img{transform:scale(1.16)}
}
@keyframes subir{from{transform:translateY(105%)}to{transform:none}}
@keyframes aparecer{from{opacity:0}to{opacity:1}}
@keyframes deslizar{to{transform:translateX(-50%)}}
@keyframes acercar{from{transform:scale(1.08)}to{transform:none}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
  .cinta__pista{flex-wrap:wrap;width:auto;justify-content:center}
  .cinta__pista [aria-hidden]{display:none}
}
