
/* La temporada se anima como color registrado. */
@property --season{syntax:'<color>';inherits:true;initial-value:#c4432b}
@property --season-ink{syntax:'<color>';inherits:true;initial-value:#a5351f}

/* ---------- Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--top) + 12px)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 1.0625rem/1.6 var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
a{color:inherit;text-underline-offset:.2em}
svg{display:block}
button,input,textarea{font:inherit;color:inherit}
.vh{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
::selection{background:var(--mostaza);color:var(--ink)}
:focus-visible{outline:2px solid var(--tomate-ink);outline-offset:3px;border-radius:2px}
.oscuro :focus-visible,.pie :focus-visible,.hoja :focus-visible{outline-color:var(--mostaza)}
.skip{position:fixed;left:16px;top:16px;z-index:100;padding:12px 18px;background:var(--ink);color:var(--card);font-weight:600;text-decoration:none;transform:translateY(-220%);transition:transform .25s var(--ease)}
.skip:focus{transform:none}
.wrap{max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.ast{display:inline-block;flex:none;width:.62em;height:.62em;color:var(--tomate)}
.grano{position:fixed;inset:0;z-index:80;width:100%;height:100%;pointer-events:none;opacity:.05}
.foto{position:relative;overflow:hidden;background:var(--paper-2)}
.foto>svg,.foto>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pie-foto{display:flex;gap:12px;margin-top:14px;font-size:.84rem;line-height:1.45;color:var(--muted)}
.pie-foto::before{content:"";flex:none;width:22px;height:1px;margin-top:.72em;background:currentColor}
.mini{margin-bottom:10px;font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}

/* ---------- Botones y enlaces ---------- */
.btn{--b:var(--tomate-ink);--c:var(--card);display:inline-flex;align-items:center;justify-content:center;gap:.8em;min-height:54px;padding:0 1.6em;border:0;border-radius:2px;background:var(--b);color:var(--c);font-size:.8rem;font-weight:700;letter-spacing:.16em;line-height:1;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:background-color .3s,color .3s}
.btn:hover{--b:var(--ink)}
.btn .ast{width:1.1em;height:1.1em;color:currentColor;transition:transform .8s var(--ease)}
.btn:hover .ast{transform:rotate(135deg)}
.btn-sm{min-height:42px;padding:0 1.15em;font-size:.72rem}
.btn-tinta{--b:var(--ink)}
.btn-tinta:hover{--b:var(--tomate-ink)}
.btn-mostaza{--b:var(--mostaza);--c:var(--ink)}
.btn-mostaza:hover{--b:var(--card);--c:var(--ink)}
.flecha{display:inline-flex;align-items:center;gap:.55em;padding-block:6px;border-bottom:1.5px solid currentColor;font-weight:600;text-decoration:none}
.flecha span{transition:transform .35s var(--ease)}
.flecha:hover span{transform:translateX(5px)}

/* ---------- Encabezado ---------- */
.top{position:sticky;top:0;z-index:50;background:rgba(243,235,221,.92);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid transparent;transition:border-color .3s,background-color .3s,color .3s}
.top.is-scrolled{border-bottom-color:var(--line)}
.top-in{display:flex;align-items:center;gap:clamp(16px,3vw,44px);height:var(--top);max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.marca{display:inline-flex;align-items:flex-start;font-family:var(--serif);font-size:1.72rem;font-weight:700;line-height:1;letter-spacing:-.03em;text-decoration:none;white-space:nowrap}
.marca .ast{width:.44em;height:.44em;margin:.02em 0 0 .07em}
.nav{margin-left:auto}
.nav ul{display:flex;gap:clamp(20px,2.6vw,40px)}
.nav a{position:relative;display:block;padding-block:8px;font-size:.95rem;font-weight:500;text-decoration:none}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:3px;height:1.5px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease)}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.menu-btn{display:none;align-items:center;gap:12px;min-height:44px;padding:0 16px;border:1px solid var(--line-2);border-radius:2px;background:none;font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.menu-ico{position:relative;width:18px;height:9px}
.menu-ico i{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .4s var(--ease),top .4s var(--ease)}
.menu-ico i:first-child{top:0}
.menu-ico i:last-child{top:7.5px}
.menu-open .menu-ico i{top:3.75px}
.menu-open .menu-ico i:first-child{transform:rotate(45deg)}
.menu-open .menu-ico i:last-child{transform:rotate(-45deg)}

/* Hoja de navegación en pantallas chicas */
.hoja{position:fixed;inset:0;z-index:45;display:flex;flex-direction:column;justify-content:space-between;gap:32px;padding:calc(var(--top) + 20px) var(--gutter) 28px;overflow-y:auto;background:var(--tomate-ink);color:var(--card);visibility:hidden;clip-path:circle(0% at calc(100% - 52px) 32px);transition:clip-path .6s var(--ease),visibility 0s .6s}
.menu-open{overflow:hidden}
.menu-open .hoja{visibility:visible;clip-path:circle(150% at calc(100% - 52px) 32px);transition:clip-path .75s var(--ease)}
.menu-open .top{background:transparent;color:var(--card);-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom-color:transparent}
.menu-open .top .ast{color:var(--mostaza)}
.menu-open .menu-btn{border-color:rgba(251,246,236,.5)}
.hoja-links a{display:flex;align-items:baseline;gap:18px;padding:14px 0;border-bottom:1px solid rgba(251,246,236,.24);font-family:var(--serif);font-size:clamp(2rem,9vw,3.2rem);line-height:1.05;text-decoration:none}
.hoja-links a span{width:2.2em;font-family:var(--mono);font-size:.78rem;letter-spacing:.08em}
.hoja-links a:hover em,.hoja-links em{font-style:italic}
.hoja-pie{display:grid;gap:4px;font-size:.92rem}
.hoja-pie strong{font-family:var(--serif);font-style:italic;font-weight:500;font-size:1.3rem}

/* ---------- Portada ---------- */
.portada{position:relative;overflow:clip;padding-block:clamp(20px,2.4vw,34px) clamp(8px,3vw,44px)}
.portada-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
.portada-texto{position:relative;z-index:2;grid-column:1/span 7}
.kicker{display:flex;align-items:center;gap:14px;font-size:.74rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.kicker .ast{width:16px;height:16px}
.kicker i{flex:0 0 48px;height:1px;background:currentColor;opacity:.35}
.kicker span+span{color:var(--muted)}
.h-hero{margin-top:.24em;font-family:var(--serif);font-size:clamp(3.3rem,8.4vw,7.6rem);font-weight:400;line-height:.9;letter-spacing:-.032em}
.h-hero .l{display:block}
.h-hero .l2{padding-left:.5em}
.h-hero .l3{padding-left:1.5em;color:var(--tomate)}
.h-hero em{font-weight:500}
.h-hero .l3 .ast{width:.28em;height:.28em;margin-left:.06em;vertical-align:.5em;color:var(--ink)}
.portada-lead{max-width:46ch;margin-top:clamp(22px,2.4vw,34px);font-size:clamp(1.02rem,1.2vw,1.16rem);color:var(--ink-2)}
.portada-lead strong{display:block;margin-bottom:.3em;font-family:var(--serif);font-size:1.35em;font-style:italic;font-weight:500;line-height:1.2;color:var(--ink)}
.portada-cta{display:flex;flex-wrap:wrap;align-items:center;gap:16px 30px;margin-top:clamp(24px,2.6vw,36px)}
.portada-foto{position:relative;grid-column:8/span 5;padding-block:clamp(10px,1.6vw,22px) clamp(14px,2vw,28px)}
.portada-foto::before{content:"";position:absolute;z-index:0;left:-6%;top:-12%;width:112%;aspect-ratio:1;border-radius:50%;background:var(--mostaza)}
.arco{position:relative;z-index:1;width:min(100%,468px);aspect-ratio:4/5;margin-left:auto;border-radius:999px 999px 3px 3px;overflow:hidden;box-shadow:0 50px 70px -48px rgba(42,27,18,.65)}
.arco .foto{position:absolute;inset:0}
.ficha{position:absolute;z-index:3;left:-12%;bottom:5%;width:min(272px,62%);padding:18px 20px 16px;background:var(--card);box-shadow:0 24px 40px -22px rgba(42,27,18,.55);font-size:.8rem;line-height:1.45;color:var(--ink-2);transform:rotate(-3deg)}
.ficha::before{content:"";position:absolute;inset:6px;border:1px solid var(--line);pointer-events:none}
.ficha-n{display:flex;justify-content:space-between;gap:10px;font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--tomate-ink)}
.ficha-t{margin-top:10px;font-family:var(--serif);font-size:1.1rem;font-style:italic;line-height:1.28;color:var(--ink)}
.ficha-p{margin-top:8px}
.sello{position:absolute;z-index:3;left:-2%;top:4%;display:grid;place-items:center;width:clamp(100px,10vw,146px);aspect-ratio:1;border-radius:50%;background:var(--ink);color:var(--card)}
.sello .anillo{position:absolute;inset:0;width:100%;height:100%;animation:girar 44s linear infinite;animation-play-state:paused}
.sello.run .anillo{animation-play-state:running}
.sello .ast{width:30%;height:30%;color:var(--mostaza)}
@keyframes girar{to{transform:rotate(360deg)}}
.portada-pie{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));max-width:var(--max);margin:clamp(20px,2.4vw,34px) auto 0;padding-inline:var(--gutter)}
.portada-pie li{position:relative;display:flex;flex-direction:column;gap:3px;padding:16px clamp(12px,2vw,28px) 24px;border-top:4px double var(--line-2);font-size:.86rem;line-height:1.45;color:var(--ink-2)}
.portada-pie li:first-child{padding-left:0}
.portada-pie li+li::before{content:"";position:absolute;left:0;top:16px;bottom:22px;width:1px;background:var(--line)}
.portada-pie strong{display:flex;align-items:center;gap:.45em;font-family:var(--serif);font-size:1.3rem;font-style:italic;font-weight:500;line-height:1.2;color:var(--ink)}
.portada-pie strong .ast{width:.5em;height:.5em}
.punto{flex:none;width:9px;height:9px;border-radius:50%;background:var(--muted)}
.abierto .punto{background:#4f7a2b;box-shadow:0 0 0 4px rgba(79,122,43,.18)}
.cerrado .punto{background:var(--tomate)}

/* ---------- Encabezados de sección ---------- */
.eyebrow{display:flex;align-items:baseline;gap:14px;margin-bottom:clamp(18px,2.2vw,30px);font-size:.74rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase}
.eyebrow .folio{font-family:var(--serif);font-size:1.5rem;font-style:italic;font-weight:500;letter-spacing:0;text-transform:none;color:var(--tomate-ink)}
.eyebrow::after{content:"";flex:1;align-self:center;height:1px;background:currentColor;opacity:.25}
.h-sec{font-family:var(--serif);font-size:clamp(2.8rem,6.8vw,6.4rem);font-weight:400;line-height:.94;letter-spacing:-.03em;text-wrap:balance}
.h-sec em{font-weight:500;color:var(--tomate)}
.lead{max-width:38ch;font-size:clamp(1.04rem,1.3vw,1.2rem);line-height:1.55;color:var(--ink-2)}

/* ---------- La carta ---------- */
.carta{--season:#c4432b;--season-ink:#a5351f;padding-block:var(--sec);background:var(--paper);background:color-mix(in oklab,var(--season) 8%,var(--paper));transition:--season .9s var(--ease),--season-ink .9s var(--ease)}
.carta[data-season="primavera"]{--season:#5d6b3a;--season-ink:#4f5c2f}
.carta[data-season="verano"]{--season:#a86d12;--season-ink:#875610}
.carta[data-season="invierno"]{--season:#7a2f45;--season-ink:#7a2f45}
.carta-cab{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end}
.carta-cab .eyebrow{grid-column:1/-1}
.carta-cab .h-sec{grid-column:1/span 7;font-size:clamp(3.4rem,10vw,9.4rem)}
.carta-cab .lead{grid-column:8/span 5;padding-bottom:.7em}
.estaciones{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(32px,4vw,56px);border-block:4px double var(--line-2)}
html:not(.js) .estaciones{display:none}
.est{position:relative;display:flex;flex-direction:column;align-items:center;gap:6px;padding:20px 8px 18px;border:0;background:none;color:var(--ink-2);cursor:pointer}
.est+.est{box-shadow:inset 1px 0 0 var(--line)}
.est-n{position:relative;font-family:var(--serif);font-size:clamp(1.12rem,2.6vw,2.4rem);font-style:italic;line-height:1.1}
.est-m{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.est:hover .est-n{color:var(--ink)}
.est:focus-visible{outline-offset:-6px}
.est[aria-selected="true"]{color:var(--ink)}
.trazo{position:absolute;left:-16%;top:-26%;width:132%;height:152%;overflow:visible;pointer-events:none;color:var(--season)}
.trazo path{fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;stroke-dasharray:1 2;stroke-dashoffset:1;opacity:0;transition:stroke-dashoffset .9s var(--ease),opacity .2s}
.est[aria-selected="true"] .trazo path{stroke-dashoffset:0;opacity:1}
.carta-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:start;margin-top:clamp(40px,5vw,72px)}
.temporada{grid-column:1/span 4}
@media (min-width:1100px) and (min-height:820px){.temporada{position:sticky;top:calc(var(--top) + 28px)}}
.ilus{width:clamp(120px,14vw,200px);height:auto;aspect-ratio:1;overflow:visible}
.ilu{opacity:0;transform:scale(.6) rotate(-18deg);transform-box:view-box;transform-origin:50% 55%;transition:opacity .45s var(--ease),transform .9s var(--ease)}
.ilu.on{opacity:1;transform:none}
.t-nombre{margin-top:4px;font-family:var(--serif);font-size:clamp(3.2rem,6vw,5.8rem);font-style:italic;line-height:.95;letter-spacing:-.03em;color:var(--season)}
.t-meses{margin-top:12px;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2)}
.t-texto{max-width:34ch;margin-top:16px;color:var(--ink-2)}
.llega{margin-top:28px}
.llega-t{padding-bottom:10px;border-bottom:1px solid var(--line-2);font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase}
.llega li{display:flex;align-items:baseline;justify-content:space-between;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font-size:.95rem}
.llega li span:last-child{font-family:var(--mono);font-size:.7rem;color:var(--muted);text-align:right;white-space:nowrap}
.menu-card{position:relative;grid-column:5/span 8;padding:clamp(30px,4.4vw,64px);background:var(--card);box-shadow:0 2px 0 rgba(42,27,18,.05),0 50px 80px -56px rgba(42,27,18,.6)}
.menu-card::before,.menu-card::after{content:"";position:absolute;pointer-events:none;border:1px solid var(--line-2)}
.menu-card::before{inset:clamp(8px,1vw,12px)}
.menu-card::after{inset:calc(clamp(8px,1vw,12px) + 4px);border-color:var(--line)}
.mc-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:16px;border-bottom:4px double var(--line-2);font-size:.68rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-2)}
.mc-cab .marca{font-size:1.3rem;letter-spacing:-.03em;text-transform:none;color:var(--ink)}
.mc-cuerpo{overflow:hidden;transition:height .6s var(--ease)}
.curso{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,2.15fr);column-gap:clamp(20px,3vw,44px);padding-block:clamp(26px,3vw,40px);border-bottom:1px solid var(--line)}
.curso:last-child{border-bottom:0}
.curso-et{font-family:var(--sans);font-size:.7rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--season-ink)}
.curso-t{margin-top:8px;font-family:var(--serif);font-size:clamp(1.3rem,1.9vw,1.6rem);font-style:italic;line-height:1.15}
.platos{display:grid;gap:clamp(18px,2vw,26px)}
.plato-l{display:flex;align-items:baseline;align-items:last baseline;gap:.5em;font-family:var(--serif);font-size:clamp(1.1rem,1.45vw,1.28rem);line-height:1.25}
.plato-n{min-width:0;font-weight:600}
.puntos{flex:1 1 1.4em;min-width:1.4em;height:3px;background:radial-gradient(circle closest-side,var(--muted) 92%,transparent) 0 0/7px 3px repeat-x;transform:translateY(-.14em) scaleX(1);transform-origin:left center}
.plato-p{font-weight:600;font-variant-numeric:lining-nums tabular-nums;white-space:nowrap}
.plato-d{max-width:48ch;margin-top:5px;font-size:.94rem;line-height:1.5;color:var(--ink-2)}
.marcas{display:flex;flex-wrap:wrap;gap:6px;margin-top:9px}
.m{display:inline-grid;place-items:center;min-width:26px;height:22px;padding:0 6px;border:1px solid var(--line-2);border-radius:999px;font-family:var(--mono);font-size:.6rem;font-weight:700;line-height:1;color:var(--ink-2)}
.m svg{width:13px;height:13px}
.m-pic{border-color:currentColor;color:var(--tomate-ink)}
.mc-pie{display:grid;gap:12px;padding-top:20px;border-top:4px double var(--line-2);font-size:.84rem;color:var(--ink-2)}
.leyenda{display:flex;flex-wrap:wrap;gap:8px 18px}
.leyenda li{display:flex;align-items:center;gap:8px}
.mc-cafe{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-size:1.12rem;line-height:1.3;color:var(--ink)}
.mc-cafe .ast{width:14px;height:14px;color:var(--season)}
/* Cambio de temporada: la carta se recompone. */
.carta .anim{transition:opacity .5s var(--ease),transform .7s var(--ease),filter .5s var(--ease);transition-delay:calc(var(--i,0) * 38ms)}
.carta .puntos{transition:transform .8s var(--ease);transition-delay:calc(var(--i,0) * 38ms + 200ms)}
.carta .anim-t{transition:opacity .45s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i,0) * 60ms)}
.carta.salida .anim,.carta.salida .anim-t{opacity:0;transform:translateY(-10px);filter:blur(4px);transition-duration:.28s;transition-delay:calc(var(--i,0) * 10ms)}
.carta.entrada .anim,.carta.entrada .anim-t{opacity:0;transform:translateY(16px);filter:blur(3px);transition:none}
.carta.entrada .puntos{transform:translateY(-.14em) scaleX(0);transition:none}

/* ---------- Cinta ---------- */
.cinta{overflow:hidden;padding-block:clamp(14px,1.8vw,22px);background:var(--ink);color:var(--card)}
.cinta-pista{display:flex;width:max-content;animation:cinta 48s linear infinite;animation-play-state:paused}
.cinta-pista.run{animation-play-state:running}
.cinta-pista span{display:flex;align-items:center;gap:.45em;padding-right:.45em;font-family:var(--serif);font-size:clamp(1.8rem,4.4vw,4rem);font-style:italic;line-height:1.1;white-space:nowrap}
.cinta-pista .ast{width:.42em;height:.42em;color:var(--mostaza)}
@keyframes cinta{to{transform:translateX(-50%)}}

/* ---------- La casa ---------- */
.casa{padding-block:var(--sec)}
.casa-a,.casa-b{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px}
.casa-a{align-items:end}
.casa-intro{grid-column:1/span 5}
.casa-intro .h-sec{margin-bottom:clamp(24px,2.6vw,36px)}
.casa-intro p:not(.eyebrow){max-width:44ch;color:var(--ink-2)}
.casa-intro p+p{margin-top:1em}
.casa-sala{grid-column:7/span 6}
.casa-sala .foto{aspect-ratio:3/2;border-radius:3px}
.dicc{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:24px;align-items:center;margin-block:clamp(64px,8vw,120px);padding:clamp(34px,5vw,72px) clamp(22px,5vw,72px);background:var(--mostaza);color:var(--ink)}
.dicc-cab{grid-column:1/span 7}
.dicc-palabra{font-family:var(--serif);font-size:clamp(2.7rem,8vw,7.2rem);font-style:italic;line-height:.92;letter-spacing:-.03em}
.dicc-fon{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:16px;font-family:var(--mono);font-size:.8rem}
.dicc-fon em{font-family:var(--serif);font-size:1.15rem}
.dicc-acep{grid-column:8/span 5;counter-reset:a}
.dicc-acep li{display:grid;grid-template-columns:2em 1fr;padding:14px 0;border-top:1px solid rgba(42,27,18,.32);font-size:1.02rem;line-height:1.45;counter-increment:a}
.dicc-acep li::before{content:counter(a) ".";font-family:var(--serif);font-size:1.3em;font-style:italic;line-height:1.1}
.dicc-acep li:last-child{border-bottom:1px solid rgba(42,27,18,.32)}
.casa-b{align-items:center}
.casa-cocina{grid-column:1/span 5}
.casa-cocina .foto{aspect-ratio:4/5;border-radius:3px}
.casa-chef{grid-column:7/span 6}
.cita p{font-family:var(--serif);font-size:clamp(1.9rem,3.4vw,3.1rem);line-height:1.08;letter-spacing:-.015em;text-indent:-.42em}
.cita footer{display:flex;align-items:center;gap:18px;margin-top:26px}
.firma{width:150px;height:auto;color:var(--tomate-ink)}
.cita cite{font-size:.9rem;font-style:normal;line-height:1.4;color:var(--ink-2)}
.cita cite strong{display:block;font-size:1rem;color:var(--ink)}
.datos{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);margin-top:clamp(40px,5vw,64px);padding-top:24px;border-top:4px double var(--line-2)}
.datos dt{font-family:var(--serif);font-size:clamp(2.6rem,4.2vw,4rem);line-height:1;color:var(--tomate)}
.datos dd{margin-top:8px;font-size:.9rem;line-height:1.45;color:var(--ink-2)}

/* ---------- Productores ---------- */
.prod{padding-block:var(--sec);background:var(--olivo-hondo);color:var(--paper)}
.prod .eyebrow .folio,.prod .h-sec em{color:var(--mostaza)}
.prod .lead{color:rgba(243,235,221,.84)}
.prod-a,.prod-b{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:40px}
.prod-a{align-items:center}
.prod-intro{grid-column:1/span 6}
.prod-intro .lead{margin-top:clamp(22px,2.4vw,32px)}
.prod-foto{grid-column:7/span 6}
.prod-foto .foto{aspect-ratio:4/3;border-radius:3px}
.prod .pie-foto{color:rgba(243,235,221,.78)}
.prod-b{align-items:start;margin-top:clamp(56px,7vw,104px)}
.radar{grid-column:1/span 5;color:var(--paper)}
@media (min-width:1100px) and (min-height:760px){.radar{position:sticky;top:calc(var(--top) + 32px)}}
.radar svg{width:100%;height:auto}
.radar .pie-foto{margin-top:6px}
.radar [data-p] line{stroke:currentColor;stroke-opacity:.24;stroke-dasharray:2 5;transition:stroke-opacity .3s,stroke .3s}
.radar [data-p] .pt{fill:var(--mostaza);transition:fill .3s}
.radar [data-p] .halo{fill:none;stroke:var(--mostaza);stroke-width:1.5;opacity:0;transform:scale(.6);transform-box:fill-box;transform-origin:center;transition:opacity .3s,transform .5s var(--ease)}
.radar [data-p] text{fill:var(--ink)}
.radar .lugar{fill:currentColor;fill-opacity:.82}
.radar [data-p].activo line{stroke:var(--mostaza);stroke-opacity:1;stroke-dasharray:none}
.radar [data-p].activo .pt{fill:var(--paper)}
.radar [data-p].activo .halo{opacity:1;transform:scale(1)}
.prod-lista{grid-column:7/span 6;border-top:4px double rgba(243,235,221,.4)}
.prod-lista li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:18px;align-items:start;padding:20px 12px 20px 0;border-bottom:1px solid rgba(243,235,221,.18);transition:background-color .3s,padding .4s var(--ease)}
.prod-lista li.activo{padding-left:12px;background:rgba(243,235,221,.07)}
.pn{display:grid;place-items:center;width:30px;height:30px;margin-top:2px;border-radius:50%;background:var(--mostaza);color:var(--ink);font-family:var(--mono);font-size:.78rem;font-weight:700;transition:background-color .3s}
.activo .pn{background:var(--paper)}
.pd h3{font-family:var(--serif);font-size:clamp(1.22rem,1.7vw,1.5rem);font-weight:500;line-height:1.2}
.pl{margin-top:2px;font-size:.82rem;color:rgba(243,235,221,.8)}
.pq{margin-top:6px;font-size:.95rem}
.pk{font-family:var(--serif);font-size:clamp(1.7rem,2.6vw,2.4rem);line-height:1;text-align:right;white-space:nowrap}
.pk small{margin-left:4px;font-family:var(--mono);font-size:.68rem;letter-spacing:.06em}
.lejos{display:flex;gap:14px;align-items:flex-start;max-width:62ch;margin-top:clamp(40px,5vw,64px);font-size:.95rem;color:rgba(243,235,221,.86)}
.lejos .ast{width:18px;height:18px;margin-top:3px;color:var(--mostaza)}

/* ---------- Visítanos ---------- */
.visita{padding-block:var(--sec)}
.visita-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:48px;align-items:start}
.visita-texto{grid-column:1/span 5;grid-row:1/span 2}
.estado{display:inline-flex;align-items:center;gap:10px;margin-top:28px;padding:8px 16px 8px 12px;border:1px solid var(--line-2);border-radius:999px;font-size:.9rem;font-weight:500}
.horas{margin-top:28px;border-top:4px double var(--line-2)}
.horas li{display:flex;align-items:baseline;gap:.6em;padding:13px 0;border-bottom:1px solid var(--line)}
.horas li>span:first-child{font-family:var(--serif);font-size:1.2rem}
.horas li>span:last-child{font-family:var(--mono);font-size:.84rem;white-space:nowrap}
.horas li.hoy>span:first-child::after{content:"hoy";margin-left:10px;padding:2px 7px;border-radius:2px;background:var(--ink);color:var(--card);font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;vertical-align:.25em}
.visita-datos{display:grid;grid-template-columns:1fr 1fr 2fr;gap:28px var(--gap);grid-column:6/span 7;padding-top:24px;border-top:4px double var(--line-2);font-size:.98rem}
.visita-datos li{padding-left:18px;text-indent:-18px}
.visita-datos li::before{content:"→ ";color:var(--tomate-ink)}
.visita-fachada{grid-column:6/span 3;margin-top:clamp(40px,6vw,96px)}
.visita-fachada .foto{aspect-ratio:3/4;border-radius:999px 999px 3px 3px}
.visita-mapa{grid-column:9/span 4}
.visita-mapa .foto{aspect-ratio:3/4;border-radius:3px}

/* ---------- Reservaciones ---------- */
.reserva{padding-block:var(--sec);background:var(--ink);color:var(--paper)}
.reserva .eyebrow .folio,.reserva .h-sec em{color:var(--mostaza)}
.reserva .lead{margin-top:clamp(20px,2.2vw,30px);color:rgba(243,235,221,.8)}
.reserva-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:56px;align-items:start}
.reserva-izq{grid-column:1/span 7}
.reserva-der{grid-column:9/span 4}
@media (min-width:1100px) and (min-height:760px){.reserva-der{position:sticky;top:calc(var(--top) + 40px)}}
.form-res{display:grid;gap:30px;margin-top:clamp(32px,3.6vw,52px)}
.fila-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px var(--gap)}
.campo{min-width:0;margin:0;padding:0;border:0}
.campo>label,.campo>legend,.campo>.label{display:block;margin-bottom:10px;padding:0;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--mostaza)}
.opc{margin-left:6px;font-weight:500;letter-spacing:.06em;text-transform:none;color:rgba(243,235,221,.72)}
.in{width:100%;min-height:52px;padding:12px 14px;border:1px solid rgba(243,235,221,.3);border-radius:2px;background:rgba(243,235,221,.05);color:var(--paper);font-size:1.05rem;color-scheme:dark;transition:border-color .2s,background-color .2s}
.in:hover{border-color:rgba(243,235,221,.55)}
.in:focus-visible{border-color:var(--mostaza);outline:2px solid var(--mostaza);outline-offset:2px}
.in::placeholder{color:rgba(243,235,221,.6)}
textarea.in{min-height:84px;resize:vertical}
.ayuda{margin-top:8px;font-size:.82rem;color:rgba(243,235,221,.72)}
.turnos{display:grid;gap:14px}
.turno{display:grid;grid-template-columns:5.2rem 1fr;align-items:center;gap:12px}
.turno-t{font-family:var(--serif);font-size:1.2rem;font-style:italic}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{position:relative}
.chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.chip span{display:inline-flex;align-items:center;min-height:44px;padding:0 15px;border:1px solid rgba(243,235,221,.32);border-radius:2px;font-family:var(--mono);font-size:.86rem;font-variant-numeric:tabular-nums;transition:background-color .2s,color .2s,border-color .2s}
.chip input:hover+span{border-color:var(--paper)}
.chip input:checked+span{border-color:var(--mostaza);background:var(--mostaza);color:var(--ink)}
.chip input:focus-visible+span{outline:2px solid var(--mostaza);outline-offset:3px}
.chip input:disabled{cursor:not-allowed}
.chip input:disabled+span{opacity:.42;text-decoration:line-through}
.chip.lleno input:disabled+span{text-decoration:none}
.chip.lleno span::after{content:"lleno";display:inline-block;margin-left:8px;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase}
.stepper{display:inline-flex;align-items:center;gap:4px;padding:3px;border:1px solid rgba(243,235,221,.3);border-radius:2px}
.stepper button{width:46px;height:46px;border:0;border-radius:2px;background:none;font-size:1.4rem;line-height:1;cursor:pointer;transition:background-color .2s}
.stepper button:hover{background:rgba(243,235,221,.1)}
.stepper input{width:2.6ch;border:0;background:none;font-family:var(--serif);font-size:1.7rem;text-align:center;-moz-appearance:textfield;appearance:textfield}
.stepper input::-webkit-inner-spin-button,.stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
.stepper-u{margin:0 12px 0 4px;font-size:.9rem;color:rgba(243,235,221,.8)}
.enviar{display:flex;flex-wrap:wrap;align-items:center;gap:18px 26px}
.form-nota{flex:1 1 260px;font-family:var(--serif);font-size:1.1rem;font-style:italic;line-height:1.35;color:var(--paper)}
.form-nota:empty{display:none}
.ticket{position:relative;overflow:hidden;padding:40px clamp(22px,2.4vw,34px) 36px;background:var(--card);color:var(--ink);box-shadow:0 40px 60px -30px rgba(0,0,0,.7);transform:rotate(1.6deg)}
.ticket::before,.ticket::after{content:"";position:absolute;left:0;right:0;height:10px;background:radial-gradient(circle at 7px 0,var(--ink) 5.5px,transparent 6px) 0 0/14px 10px repeat-x}
.ticket::before{top:0}
.ticket::after{bottom:0;transform:scaleY(-1)}
.t-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:14px;border-bottom:1px dashed var(--line-2);font-family:var(--mono);font-size:.64rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2)}
.t-cab .marca{font-size:1.25rem;text-transform:none;letter-spacing:-.03em;color:var(--ink)}
.t-tit{margin-top:22px;font-family:var(--serif);font-size:clamp(2rem,2.8vw,2.6rem);font-style:italic;line-height:1}
.t-lineas{margin-top:16px}
.t-lineas div{display:flex;align-items:baseline;gap:.6em;padding:12px 0;border-bottom:1px solid var(--line)}
.t-lineas dt{display:flex;flex:1;align-items:baseline;gap:.6em;font-size:.68rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);white-space:nowrap}
.t-lineas dt::after{content:"";flex:1;min-width:1em;height:3px;background:radial-gradient(circle closest-side,var(--muted) 92%,transparent) 0 0/7px 3px repeat-x}
.t-lineas dd{max-width:62%;font-family:var(--serif);font-size:1.12rem;line-height:1.25;text-align:right;overflow-wrap:anywhere}
.t-pie{margin-top:18px;font-size:.82rem;line-height:1.5;color:var(--ink-2)}
.t-sello{position:absolute;right:16px;bottom:58px;padding:8px 14px;border:2.5px solid var(--tomate);border-radius:3px;color:var(--tomate);font-family:var(--mono);font-size:.92rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;opacity:0;transform:rotate(-12deg) scale(1.7);transition:opacity .2s,transform .5s cubic-bezier(.3,1.5,.5,1)}
.ticket.apartada .t-sello{opacity:.9;transform:rotate(-12deg) scale(1)}
.t-nota{display:flex;align-items:center;gap:10px;margin-top:22px;font-size:.84rem;color:rgba(243,235,221,.72)}
.t-nota .ast{width:13px;height:13px;color:var(--mostaza)}

/* ---------- Pie ---------- */
.pie{overflow:clip;padding-top:clamp(64px,8vw,120px);background:var(--tomate-ink);color:var(--card)}
.pie a{text-decoration:none}
.pie a:hover{text-decoration:underline}
.pie-top{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:32px;align-items:end;padding-bottom:clamp(40px,5vw,72px);border-bottom:1px solid rgba(251,246,236,.32)}
.pie-frase{display:flex;align-items:flex-end;gap:clamp(16px,2vw,28px);grid-column:1/span 7}
.pie-frase p{font-family:var(--serif);font-size:clamp(2.1rem,4.4vw,4.2rem);line-height:1;letter-spacing:-.02em}
.pie-frase em{color:var(--mostaza)}
.taza{flex:none;width:clamp(64px,7vw,104px);height:auto;color:var(--card)}
.taza .vapor{fill:none;stroke:currentColor;stroke-width:3;stroke-linecap:round;opacity:.75}
.taza.run .vapor{animation:vapor 3.4s ease-in-out infinite}
.taza.run .vapor:nth-of-type(2){animation-delay:-1.1s}
.taza.run .vapor:nth-of-type(3){animation-delay:-2.2s}
@keyframes vapor{0%{opacity:0;transform:translateY(8px)}40%{opacity:.85}100%{opacity:0;transform:translateY(-10px)}}
.boletin{grid-column:9/span 4}
.boletin label{display:block;margin-bottom:12px;font-family:var(--serif);font-size:1.2rem;font-style:italic}
.boletin-fila{display:flex;border-bottom:1.5px solid var(--card)}
.boletin input{flex:1;min-width:0;min-height:50px;padding:0;border:0;background:none;color:var(--card);font-size:1rem}
.boletin input::placeholder{color:rgba(251,246,236,.72)}
.boletin input:focus-visible{outline:2px solid var(--mostaza);outline-offset:4px}
.boletin button{padding:0 2px 0 16px;border:0;background:none;color:var(--card);font-size:.74rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;cursor:pointer}
.boletin .form-nota{margin-top:12px;font-size:.98rem;color:var(--card)}
.pie-cols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px var(--gap);padding-block:clamp(36px,4vw,56px);font-size:.95rem;line-height:1.6}
.pie-marca{display:flex;align-items:flex-start;justify-content:center;margin-top:clamp(0px,1vw,16px);font-family:var(--serif);font-size:min(17.2vw,250px);font-weight:700;line-height:.82;letter-spacing:-.045em;white-space:nowrap}
.pie-marca .ast{width:.34em;height:.34em;margin:.04em 0 0 .05em;color:var(--mostaza)}
.pie-legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px 24px;margin-top:clamp(24px,3vw,40px);padding-block:22px 30px;border-top:1px solid rgba(251,246,236,.32);font-family:var(--mono);font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}

/* ---------- Aparición ---------- */
.js [data-reveal]{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal] .foto>svg{transform:scale(1.08);transition:transform 1.8s var(--ease)}
.js [data-reveal].is-in .foto>svg{transform:none}
/* Entrada de la portada: una sola vez. */
.js .portada .kicker,.js .h-hero .l,.js .portada-lead,.js .portada-cta,.js .portada-pie li{opacity:0;transform:translateY(.4em);transition:opacity .9s var(--ease),transform 1.1s var(--ease)}
.js .h-hero .l{transform:translateY(.3em)}
.js .h-hero .l2{transition-delay:.1s}
.js .h-hero .l3{transition-delay:.2s}
.js .portada-lead{transition-delay:.38s}
.js .portada-cta{transition-delay:.48s}
.js .portada-pie li{transition-delay:.6s}
.js .portada-pie li+li{transition-delay:.68s}
.js .portada-pie li+li+li{transition-delay:.76s}
.js .portada-pie li+li+li+li{transition-delay:.84s}
.js .portada-foto::before{opacity:0;transform:scale(.7);transition:opacity 1s var(--ease),transform 1.4s var(--ease)}
.js .arco{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease) .15s,transform 1.3s var(--ease) .15s}
.js .arco .foto>svg{transform:scale(1.14);transition:transform 2s var(--ease) .15s}
.js .sello{opacity:0;transform:rotate(-100deg) scale(.5);transition:opacity .6s var(--ease) .6s,transform 1.2s var(--ease) .6s}
.js .ficha{opacity:0;transform:translateY(26px) rotate(3deg);transition:opacity .8s var(--ease) .75s,transform 1.1s var(--ease) .75s}
.listo .portada .kicker,.listo .h-hero .l,.listo .portada-lead,.listo .portada-cta,.listo .portada-pie li,.listo .portada-foto::before,.listo .arco,.listo .sello{opacity:1;transform:none}
.listo .arco .foto>svg{transform:none}
.listo .ficha{opacity:1;transform:rotate(-3deg)}

/* ---------- Tableta ---------- */
@media (max-width:1099px){
  .portada-texto{grid-column:1/-1}
  .h-hero{font-size:clamp(3.3rem,13.2vw,8.2rem)}
  .portada-foto{grid-column:1/-1;margin-top:clamp(28px,5vw,48px)}
  .portada-foto::before{left:auto;right:-10%;top:-8%;width:min(76%,580px)}
  .arco{width:min(60%,470px)}
  .ficha{left:0;bottom:14%;width:min(300px,37%)}
  .sello{left:31%;right:auto;top:6%}
  .carta-cab .h-sec,.carta-cab .lead{grid-column:1/-1}
  .carta-cab .lead{margin-top:20px;padding-bottom:0}
  .temporada{display:grid;grid-template-columns:auto 1fr;column-gap:clamp(20px,4vw,40px);grid-column:1/-1;align-items:center}
  .temporada .ilus{grid-row:1/span 3}
  .temporada .llega{grid-column:1/-1}
  .menu-card{grid-column:1/-1;margin-top:clamp(36px,5vw,56px)}
  .casa-intro,.casa-sala{grid-column:1/-1}
  .dicc-cab,.dicc-acep{grid-column:1/-1}
  .casa-cocina{grid-column:1/span 5}
  .casa-chef{grid-column:6/span 7}
  .prod-intro,.prod-foto,.prod-lista{grid-column:1/-1}
  .radar{grid-column:1/-1;width:100%;max-width:560px;margin-inline:auto}
  .visita-texto{grid-column:1/-1;grid-row:auto}
  .visita-datos{grid-column:1/-1}
  .visita-fachada{grid-column:1/span 6;margin-top:0}
  .visita-mapa{grid-column:7/span 6}
  .reserva-izq{grid-column:1/-1}
  .reserva-der{grid-column:1/-1;width:100%;max-width:460px;margin-inline:auto}
  .pie-frase,.boletin{grid-column:1/-1}
  .pie-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* Navegación compacta */
@media (max-width:899px){
  .nav{display:none}
  .menu-btn{display:inline-flex}
  .top .btn-sm{margin-left:auto}
  html:not(.js) .menu-btn{display:none}
  html:not(.js) .top-in{flex-wrap:wrap;height:auto;padding-block:12px}
  html:not(.js) .nav{display:block;width:100%;margin:0}
  html:not(.js) .nav ul{flex-wrap:wrap;gap:4px 20px}
}
@media (min-width:900px){.hoja{display:none}}
/* ---------- Teléfono ---------- */
@media (max-width:699px){
  :root{--top:64px}
  .marca{font-size:1.5rem}
  .top .btn-sm{display:none}
  .menu-btn{margin-left:auto}
  .kicker i,.kicker span~span{display:none}
  .h-hero{font-size:clamp(3rem,17vw,5.6rem)}
  .h-hero .l2{padding-left:.28em}
  .h-hero .l3{padding-left:.9em}
  .portada-foto{margin-top:36px;padding-bottom:28px}
  .portada-foto::before{right:-22%;top:-6%;width:88%}
  .arco{width:84%}
  .ficha{left:0;bottom:2%;width:66%;padding:14px 16px 12px}
  .ficha-t{font-size:1rem}
  .sello{left:0;top:2%;width:92px}
  .portada-pie{grid-template-columns:repeat(2,minmax(0,1fr))}
  .portada-pie li:nth-child(odd){padding-left:0}
  .portada-pie li:nth-child(odd)::before{display:none}
  .portada-pie strong{font-size:1.12rem}
  .est{padding:16px 2px 14px}
  .est-m{font-size:.56rem;letter-spacing:.02em}
  .carta-cab .h-sec{font-size:clamp(3.4rem,21vw,6rem)}
  .temporada{column-gap:18px}
  .temporada .ilus{grid-row:1/span 2;width:96px}
  .t-nombre{font-size:clamp(2.8rem,15vw,4rem)}
  .t-texto{grid-column:1/-1}
  .curso{grid-template-columns:1fr;row-gap:18px}
  .menu-card{padding:34px 24px 28px}
  .mc-cab{flex-direction:column;align-items:flex-start;gap:6px}
  .casa-cocina,.casa-chef{grid-column:1/-1}
  .cita p{text-indent:0}
  .radar{overflow:hidden}
  .radar svg{width:136%;max-width:none;margin-left:-26%}
  .datos{grid-template-columns:1fr;gap:0}
  .datos div{display:grid;grid-template-columns:6.2rem 1fr;align-items:baseline;gap:14px;padding-block:12px;border-bottom:1px solid var(--line)}
  .datos dd{margin-top:0}
  .dicc-acep li{font-size:.96rem}
  .dicc-palabra{font-size:clamp(2.7rem,14.5vw,4rem)}
  .prod-lista li{grid-template-columns:30px minmax(0,1fr);gap:14px}
  .pk{grid-column:2;text-align:left;font-size:1.5rem}
  .visita-fachada,.visita-mapa{grid-column:1/-1}
  .visita-fachada{width:82%;margin-inline:auto}
  .visita-datos{grid-template-columns:1fr 1fr}
  .visita-datos>div:last-child{grid-column:1/-1}
  .fila-2{grid-template-columns:1fr}
  .turno{grid-template-columns:1fr;gap:8px}
  .pie-cols{grid-template-columns:1fr 1fr}
  .pie-legal{flex-direction:column}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  .js [data-reveal],.js .portada .kicker,.js .h-hero .l,.js .portada-lead,.js .portada-cta,.js .portada-pie li,.js .portada-foto::before,.js .arco,.js .sello{opacity:1;transform:none}
  .js .ficha{opacity:1;transform:rotate(-3deg)}
  .js .foto>svg{transform:none!important}
}
