@font-face{font-family:SagreraDisplay;src:url("fonts/bebas.woff2") format("woff2");font-display:swap}
@font-face{font-family:SagreraText;src:url("fonts/karla.woff2") format("woff2");font-display:swap}
@font-face{font-family:SagreraMono;src:url("fonts/space-mono.woff2") format("woff2");font-display:swap}
:root{--night:#151210;--coal:#221a16;--fire:#b0894f;--mustard:#e3b768;--chalk:#f6eee2;--line:#4a3c28;--ember:#6b4f2c;--ease:cubic-bezier(.16,1,.3,1);--dry:cubic-bezier(.2,.8,.2,1);--pad:clamp(4rem,8vw,9rem) clamp(1.25rem,5vw,5rem)}
*{box-sizing:border-box}
html{background:var(--night);scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--night);color:var(--chalk);font-family:SagreraText,Arial,sans-serif;overflow-x:clip}
a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
img,video,picture{display:block;max-width:100%}
section{position:relative;scroll-margin-top:5rem}
.skip-link{position:absolute;top:-100px;left:1rem;z-index:200;padding:1rem;background:var(--mustard);color:var(--night)}
.skip-link:focus{top:1rem}
:focus-visible{outline:2px solid var(--mustard);outline-offset:3px}

/* Cabecera */
.sagrera-nav{position:fixed;z-index:50;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;gap:1rem;min-height:4.9rem;padding:.55rem clamp(1rem,4vw,4rem);background:rgba(18,15,13,.55);border-bottom:1px solid transparent;transition:background .35s var(--dry),border-color .35s,box-shadow .35s}
.sagrera-nav.scrolled{background:rgba(18,15,13,.94);border-bottom-color:var(--line);box-shadow:0 6px 0 rgba(0,0,0,.35);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.sagrera-brand{display:flex;align-items:center;gap:.7rem}
.brand-ls{display:grid;place-items:center;width:2.5rem;height:2.5rem;border:1px solid var(--fire);color:var(--fire);font:1.25rem SagreraDisplay,Impact,sans-serif;transition:transform .35s var(--ease),background .25s,color .25s}
.sagrera-brand:hover .brand-ls{transform:rotate(-8deg);background:var(--fire);color:var(--night)}
.sagrera-brand strong{display:block;font:1.6rem/.85 SagreraDisplay,Impact,sans-serif;letter-spacing:.04em;text-transform:uppercase}
.sagrera-brand small{display:block;margin-top:.2rem;color:var(--fire);font:.48rem SagreraMono,monospace;letter-spacing:.12em;text-transform:uppercase}
.nav-links{display:flex;align-items:center;gap:clamp(.7rem,1.6vw,1.6rem)}
.nav-links a{position:relative;font:.6rem SagreraMono,monospace;text-transform:uppercase;transition:color .2s}
.nav-links a:not(.nav-call):after{content:"";position:absolute;left:0;right:0;bottom:-.35rem;height:2px;background:var(--fire);transform:scaleX(0);transform-origin:left;transition:transform .35s var(--ease)}
.nav-links a:hover{color:var(--fire)}
.nav-links a:not(.nav-call):hover:after{transform:scaleX(1)}
.nav-links .nav-call{padding:.8rem 1rem;background:var(--fire);color:var(--night);transform:translate(var(--mx,0),var(--my,0));transition:background .2s,color .2s,box-shadow .25s var(--ease),transform .15s}
.nav-links .nav-call:hover{background:var(--chalk);color:var(--night);box-shadow:4px 4px 0 var(--fire)}
.menu-toggle{display:none;min-width:2.9rem;min-height:2.9rem;border:1px solid var(--fire);background:transparent;color:var(--fire);transition:background .2s,color .2s}
.menu-toggle:hover,.menu-toggle[aria-expanded="true"]{background:var(--fire);color:var(--night)}
.menu-toggle svg{width:1.4rem;stroke:currentColor;fill:none;stroke-width:1.6}

/* Tipografía */
h1,h2,h3{font-family:SagreraDisplay,Impact,sans-serif;letter-spacing:.015em;text-transform:uppercase;text-wrap:balance}
h2{max-width:16ch;margin:0 0 1rem;font-size:clamp(3rem,5.8vw,6.5rem);line-height:.88}
.section-head>p,.menu-head>p,.quiz-section>div>p,.local-top>div>p:not(.signature){max-width:34rem;font-size:clamp(.95rem,1.3vw,1.15rem);line-height:1.65}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.2rem;padding:.8rem 1.25rem;border:0;background:none;font:.65rem SagreraMono,monospace;font-weight:900;text-transform:uppercase;transform:translate(var(--mx,0),var(--my,0));transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .2s,color .2s}
.button:hover{transform:translate(calc(var(--mx,0px) - 3px),calc(var(--my,0px) - 3px));box-shadow:5px 5px 0 var(--chalk)}
.button.fire{background:var(--fire);color:var(--night)}
.button.outline{border:1px solid var(--chalk);color:var(--chalk)}
.button.outline:hover{background:var(--chalk);color:var(--night);box-shadow:5px 5px 0 var(--fire)}
.line-link{display:inline-block;position:relative;margin-top:2rem;padding-bottom:.35rem;font-weight:900;text-transform:uppercase;font-family:SagreraMono,monospace;font-size:.68rem;letter-spacing:.08em;transition:color .25s}
.line-link:after{content:"";position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--fire);transform-origin:left;transition:transform .45s var(--ease)}
.line-link:hover{color:var(--ember)}
.line-link:hover:after{transform:scaleX(0);transform-origin:right}
section[data-dark-text] .line-link:hover,.reviews .line-link:hover{color:var(--mustard)}

/* Reveal */
html.reveal-ready .reveal{opacity:0;transform:translateY(30px);transition:opacity .55s var(--dry),transform .55s var(--dry)}
html.reveal-ready .reveal.is-visible{opacity:1;transform:none}
.reveal.r2{transition-delay:.12s}
.reveal.r3{transition-delay:.24s}

/* Hero */
.sagrera-hero{display:flex;align-items:end;min-height:100svh;overflow:hidden;background:var(--night)}
.hero-film,.hero-film img,.hero-film video,.hero-dim{position:absolute;inset:0;width:100%;height:100%}
.hero-film img,.hero-film video{object-fit:cover}
.hero-film{z-index:0}
.hero-film video{z-index:1;opacity:.28;animation:sagrera-flicker 6s steps(1,end) infinite}
.hero-dim{z-index:2;background:linear-gradient(90deg,rgba(21,18,16,.92),rgba(21,18,16,.25) 75%),linear-gradient(0deg,rgba(21,18,16,.85),transparent 65%)}
.hero-copy{position:relative;z-index:3;width:min(100%,90rem);padding:clamp(7rem,15vh,11rem) clamp(1.25rem,5vw,5rem) clamp(6rem,12vh,9rem)}
.hero-eyebrow{margin:0;color:var(--mustard);font:.62rem SagreraMono,monospace;letter-spacing:.14em;text-transform:uppercase;animation:hero-rise .8s var(--ease) both}
.hero-copy h1{max-width:14ch;margin:1rem 0;font-size:clamp(4.4rem,9.2vw,10.5rem);line-height:.83;animation:hero-cut 1s var(--ease) .12s both}
.hero-copy h1 em{color:var(--fire);font-style:normal}
.hero-lead{max-width:38rem;margin:0;font-size:clamp(1rem,1.5vw,1.3rem);line-height:1.6;animation:hero-rise .8s var(--ease) .3s both}
.hero-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.8rem;animation:hero-rise .8s var(--ease) .45s both}
.hero-address{position:absolute;z-index:4;right:clamp(1rem,4vw,4rem);bottom:2rem;max-width:22rem;font:.62rem/1.6 SagreraMono,monospace;text-align:right;animation:hero-rise .8s var(--ease) .6s both}
@keyframes hero-rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes hero-cut{from{clip-path:inset(0 0 100% 0);transform:translateY(28px)}to{clip-path:inset(0 0 -20% 0);transform:none}}
@keyframes sagrera-flicker{0%,100%{opacity:.32}7%{opacity:.29}9%{opacity:.34}31%{opacity:.31}33%{opacity:.35}58%{opacity:.32}61%{opacity:.28}63%{opacity:.34}}

/* Ticker */
.ticker-band{padding:0;background:var(--fire);color:var(--night);border-top:2px solid var(--night);border-bottom:2px solid var(--night)}
.ticker{overflow:hidden;white-space:nowrap;padding:.55rem 0}
.ticker-track{display:inline-flex;will-change:transform;animation:ticker var(--ticker-duration,26s) linear infinite}
.ticker-sequence{display:inline-block;font:clamp(1.6rem,3vw,2.6rem)/1 SagreraDisplay,Impact,sans-serif;letter-spacing:.03em;text-transform:uppercase;white-space:pre}
.ticker-sequence i{font:.9rem SagreraMono,monospace;font-style:normal;vertical-align:middle;margin:0 .35rem}
@keyframes ticker{to{transform:translate3d(var(--ticker-loop-offset,-50%),0,0)}}
.ticker:hover .ticker-track{animation-play-state:running!important}

@keyframes sagrera-sweep{to{left:112%}}
.scene-track{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2rem}
.scene-track article{position:relative;min-height:18rem;padding:1.25rem;border:1px solid var(--line);transition:transform .45s var(--ease),background .3s,color .3s,box-shadow .45s var(--ease)}
.scene-track article:hover{transform:translate(-4px,-8px);background:var(--fire);color:var(--night);box-shadow:8px 8px 0 var(--chalk)}
.scene-track span{display:block;color:var(--fire);font:3.4rem/.85 SagreraDisplay,Impact,sans-serif;text-transform:uppercase;transition:color .3s}
.scene-track article:hover span{color:var(--night)}
.scene-track h4{max-width:14ch;margin:2.8rem 0 .5rem;font-size:clamp(1.9rem,2.8vw,3rem);line-height:.9;font-family:SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.scene-track p{max-width:19rem;font-size:.9rem;line-height:1.55}

/* 4 · La Carta (sección única: destacados con foto + listado completo) */
.menu-archive{position:relative;padding:var(--pad);background:var(--chalk);color:var(--night);overflow:hidden}
.watermark{position:absolute;left:-.05em;bottom:-.18em;color:transparent;opacity:1;-webkit-text-stroke:1px rgba(21,18,16,.18);font:clamp(14rem,30vw,32rem)/1 SagreraDisplay,Impact,sans-serif;text-transform:uppercase;pointer-events:none;animation:sagrera-drift 24s ease-in-out infinite alternate}
@keyframes sagrera-drift{from{transform:translateX(0)}to{transform:translateX(6vw)}}
.menu-head{position:relative;z-index:1;margin-bottom:2.5rem}
.menu-head h2{max-width:18ch}
.filter-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.75rem}
.menu-filter{min-height:2.7rem;padding:.65rem .9rem;border:1px solid var(--ember);background:transparent;color:var(--ember);font:.58rem SagreraMono,monospace;text-transform:uppercase;transform:translate(var(--mx,0),var(--my,0));transition:background .25s,color .25s,transform .2s var(--ease),box-shadow .25s var(--ease)}
.menu-filter:hover{background:var(--ember);color:var(--chalk);box-shadow:3px 3px 0 var(--fire)}
.menu-filter.is-active{background:var(--ember);color:var(--chalk)}
.filter-row-diet{margin-top:.75rem}
.menu-filter-diet{border-style:dashed}
.menu-filter-diet.is-active{background:var(--fire);border-color:var(--fire);border-style:solid;color:var(--night)}
.filter-note{max-width:44rem;margin:1rem 0 0;font-size:.72rem;line-height:1.5;color:#7a6c5d}
.filter-empty{max-width:44rem;margin:2rem 0 0;padding:1rem 1.25rem;border:1px dashed var(--ember);color:var(--ember);font-size:.85rem}
.filter-empty[hidden]{display:none}

.dish-wall{position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:.9rem;margin-bottom:3rem}
.dish-card{position:relative;display:flex;flex:1 1 18rem;flex-direction:column;align-items:start;width:auto;max-width:24rem;min-width:0;margin:0;padding:.85rem;border:1px solid #3a2f22;background:#120f0d;color:var(--chalk);text-align:left;transition:transform .45s var(--ease),border-color .25s,box-shadow .45s var(--ease)}
.dish-card:hover{transform:translate(-3px,-7px);border-color:var(--fire);box-shadow:7px 7px 0 var(--fire)}
.dish-card[hidden]{display:none}
.dish-shot{display:block;width:100%;overflow:hidden;background:#0d0b0a}
.dish-card img{width:100%;height:auto;transition:transform 1.1s var(--ease),filter .5s}
.dish-card:hover img{transform:scale(1.04);filter:saturate(1.12)}
.dish-tag{margin-top:.8rem;color:var(--fire);font:.55rem SagreraMono,monospace;text-transform:uppercase}
.dish-card strong{margin-top:.35rem;font:clamp(1.8rem,2.5vw,3rem)/.85 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.dish-price{display:block;margin-top:.4rem;color:var(--mustard);font:.85rem SagreraMono,monospace}
.dish-badge{position:absolute;top:1.4rem;right:1.4rem;padding:.45rem .6rem;border:1px solid var(--fire);background:var(--night);color:var(--fire);font:.5rem SagreraMono,monospace;font-style:normal;letter-spacing:.12em;text-transform:uppercase;opacity:0;transform:translateY(10px) rotate(-8deg);transition:opacity .3s,transform .45s var(--ease)}
.dish-card:hover .dish-badge,.dish-card:focus-visible .dish-badge{opacity:1;transform:none}

.archive-list{position:relative;z-index:1}
.archive-list details{border-top:1px solid #a99585}
.archive-list details:last-child{border-bottom:1px solid #a99585}
.archive-list summary{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.25rem 0;list-style:none;font:clamp(1.6rem,2.2vw,2.5rem)/.9 SagreraDisplay,Impact,sans-serif;text-transform:uppercase;transition:color .2s,padding-left .35s var(--ease);cursor:pointer}
.archive-list summary::-webkit-details-marker{display:none}
.archive-list summary small{flex:none;font:.55rem SagreraMono,monospace;letter-spacing:.1em;color:var(--ember);transition:transform .35s var(--ease)}
.archive-list summary:hover,.archive-list details[open] summary{color:var(--ember)}
.archive-list summary:hover{padding-left:.5rem}
.archive-list details[open] summary small{transform:rotate(-8deg)}
.menu-lines{padding:.3rem 0 1rem}
.archive-list details[open] .menu-lines{animation:lines-in .5s var(--ease) both}
@keyframes lines-in{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
.menu-lines p{display:grid;grid-template-columns:1fr auto;gap:.25rem 1rem;margin:0;padding:.65rem 0;border-bottom:1px dashed #c9b8a8;font-size:.82rem;transition:transform .35s var(--ease),border-color .25s}
.menu-lines p[hidden]{display:none}
.menu-lines p:hover{transform:translateX(8px);border-bottom-color:var(--fire)}
.menu-lines p strong{font-weight:800}
.menu-lines p span{grid-column:1;color:#554a43;line-height:1.35}
.menu-lines p b{grid-column:2;grid-row:1/3;white-space:nowrap;transition:color .25s}
.menu-lines p:hover b{color:var(--ember)}
.menu-lines p.is-unavailable{opacity:.62}
.stock-note{grid-column:1;color:#9b321c;font:700 .65rem/1.2 "Space Mono",monospace;text-transform:uppercase;letter-spacing:.08em}
.dish-card:disabled{cursor:not-allowed;opacity:.62}
.dish-card:disabled:hover{transform:none;border-color:#3a2f22;box-shadow:none}
.dish-card:disabled .dish-badge{opacity:1;transform:none}
.carta-note{position:relative;z-index:1;margin-top:2.5rem;max-width:44rem;font-size:.8rem;color:#554a43}

/* Constructor de pasta (vive dentro de La Carta, nunca como sección propia) */
.pasta-builder{position:relative;z-index:1;margin-bottom:2.5rem;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--night);background:var(--night);color:var(--chalk)}
.pasta-builder-head{margin-bottom:1.5rem}
.pasta-builder-head h3{margin:0 0 .4rem;font:2.2rem/.9 SagreraDisplay,Impact,sans-serif;color:var(--mustard);text-transform:uppercase}
.pasta-builder-head p{margin:0;font-size:.9rem;color:#c9b8a8}
.pb-row{margin-bottom:1.25rem}
.pb-label{display:block;margin-bottom:.55rem;color:var(--mustard);font:.6rem SagreraMono,monospace;letter-spacing:.1em;text-transform:uppercase}
.pb-label em{color:var(--fire);font-style:normal}
.pb-options{display:flex;flex-wrap:wrap;gap:.5rem}
.pb-chip{padding:.55rem .9rem;border:1px solid var(--line);background:transparent;color:var(--chalk);font:.62rem SagreraMono,monospace;letter-spacing:.04em;transition:background .2s,color .2s,border-color .2s,transform .2s var(--ease),box-shadow .2s var(--ease)}
.pb-chip:hover{border-color:var(--fire);transform:translate(-2px,-2px);box-shadow:3px 3px 0 var(--fire)}
.pb-chip.is-active{background:var(--fire);border-color:var(--fire);color:var(--night);font-weight:700}
.pb-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:1.1rem;margin-top:.4rem;border-top:1px solid var(--line)}
.pb-total span{font:.6rem SagreraMono,monospace;letter-spacing:.1em;text-transform:uppercase;color:#c9b8a8}
.pb-total strong{font:2.2rem/1 SagreraDisplay,Impact,sans-serif;color:var(--mustard)}
.pb-summary{margin:.5rem 0 1.25rem;font-size:.85rem;color:#c9b8a8}

/* Ficha modal (reutilizada por La Carta: carrusel foto+vídeo, título, precio) */
.dish-modal[hidden]{display:none}
.dish-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:1rem;background:rgba(0,0,0,.92);animation:fade-in .3s both}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
.dish-dialog{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:2rem;width:min(70rem,100%);max-height:calc(100svh - 2rem);overflow:auto;padding:clamp(1rem,3vw,3rem);background:var(--coal);box-shadow:1rem 1rem 0 var(--fire);animation:dialog-in .45s var(--ease) both}
@keyframes dialog-in{from{opacity:0;transform:translate(10px,18px)}to{opacity:1;transform:none}}
.dish-dialog>button{position:absolute;z-index:1;top:1rem;right:1rem;display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .8rem;border:1px solid var(--fire);background:var(--coal);color:var(--fire);font:.6rem SagreraMono,monospace;text-transform:uppercase;transition:background .2s,color .2s}
.dish-dialog>button svg{width:1rem;stroke:currentColor;fill:none;stroke-width:2;transition:transform .45s var(--ease)}
.dish-dialog>button:hover{background:var(--fire);color:var(--night)}
.dish-dialog>button:hover svg{transform:rotate(90deg)}
.dish-modal-slide{display:none;margin:0}
.dish-modal-slide.is-active{display:block;animation:fade-in .35s both}
.dish-modal-slide img,.dish-modal-slide video{width:100%;max-height:65vh;object-fit:contain;background:#0d0b0a}
.dish-copy{align-self:center}
.dish-dialog h2{font-size:clamp(2.7rem,5vw,5rem);margin-bottom:.5rem}
.dish-dialog p{line-height:1.6}
.dish-dialog [data-modal-price]{display:block;margin-top:.5rem;color:var(--mustard);font:1.2rem SagreraMono,monospace}
.dish-dialog [data-modal-prev],.dish-dialog [data-modal-next]{margin:1.5rem .5rem 0 0;padding:.8rem 1rem;border:0;background:var(--fire);color:var(--night);font:.62rem SagreraMono,monospace;font-weight:900;text-transform:uppercase;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .2s}
.dish-dialog [data-modal-prev]:hover,.dish-dialog [data-modal-next]:hover{background:var(--chalk);transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--fire)}
.dish-dialog [data-modal-prev][hidden],.dish-dialog [data-modal-next][hidden]{display:none}
.modal-open{overflow:hidden}

/* 5 · Quiénes somos */
.local-story{position:relative;padding:var(--pad);background:var(--coal);overflow:hidden}
.local-top{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,7rem);align-items:center}
.local-images{position:relative;min-height:36rem}
.local-front{width:74%;height:auto;box-shadow:1rem 1rem 0 var(--fire);transform:rotate(-1.2deg);transition:transform .6s var(--ease),box-shadow .6s var(--ease)}
.local-images:hover .local-front{transform:rotate(0) translateY(-8px);box-shadow:1.4rem 1.4rem 0 var(--fire)}
.local-plate.video-frame{position:absolute;right:0;bottom:0;width:44%;height:16rem;box-shadow:.6rem .6rem 0 var(--night);transform:rotate(5deg);transition:transform .6s var(--ease)}
.local-images:hover .local-plate.video-frame{transform:rotate(0)}
.seal{position:absolute;left:58%;top:-1.5rem;width:7.5rem;height:7.5rem;display:grid;place-items:center;overflow:hidden;background:var(--night);color:var(--mustard);transform:rotate(-8deg);z-index:1}
.seal i{display:block;width:100%;padding:.4rem;font:.5rem/1.3 SagreraMono,monospace;font-style:normal;letter-spacing:.14em;text-transform:uppercase;text-align:center;animation:sagrera-spin 18s linear infinite}
@keyframes sagrera-spin{to{transform:rotate(360deg)}}
.local-story h2{max-width:15ch}
.local-scenes,.local-extras{position:relative;z-index:1;margin-top:5rem;padding-top:3rem;border-top:1px solid var(--line)}
.local-scenes h3,.local-extras h3{max-width:22ch;margin:0;font-size:clamp(1.8rem,3.2vw,2.8rem);color:var(--mustard)}
.signature{margin:2rem 0 0;padding-left:1rem;border-left:4px solid var(--fire)}
.signature span{display:block;font:1.9rem/.9 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.signature small{display:block;margin-top:.4rem;font:.55rem SagreraMono,monospace;letter-spacing:.12em;text-transform:uppercase;color:var(--mustard)}

/* Marco de vídeo reutilizable (Quiénes somos + fichas) */
.video-frame{position:relative;overflow:hidden;background:#392719}
.video-frame img,.video-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.video-frame video{opacity:.92}

/* 6 · Reseñas */
.reviews{padding:var(--pad);background:var(--fire);color:var(--night)}
.reviews h2{display:flex;align-items:center;gap:.8rem}
.pulse{display:inline-block;width:.7rem;height:.7rem;background:var(--night);transform:rotate(-8deg);animation:sagrera-pulse 2.6s ease-in-out infinite}
@keyframes sagrera-pulse{0%,100%{box-shadow:0 0 0 0 rgba(21,18,16,.6)}60%{box-shadow:0 0 0 9px rgba(21,18,16,0)}}
.review-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}
.review-grid blockquote{display:flex;flex-direction:column;justify-content:space-between;gap:2rem;margin:0;padding:1.4rem;border:1px solid rgba(21,18,16,.55);transition:transform .45s var(--ease),background .3s,color .3s,box-shadow .45s var(--ease)}
.review-grid blockquote:hover{transform:translate(-4px,-6px);background:var(--night);color:var(--chalk);box-shadow:8px 8px 0 var(--chalk)}
.review-grid blockquote p{margin:0;font:clamp(1.5rem,2.2vw,2.3rem)/1 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.review-grid footer{display:flex;flex-direction:column;gap:.3rem;font:.58rem SagreraMono,monospace;letter-spacing:.08em;text-transform:uppercase}
.review-grid footer b{font-weight:700}
.review-grid blockquote:hover footer span{color:var(--mustard)}
.reviews-source{margin-top:2.5rem;color:var(--night)}
.feedback-grid{display:flex;flex-wrap:wrap;justify-content:center;align-items:stretch;gap:1rem}
.review-action{display:flex;flex:1 1 280px;flex-direction:column;justify-content:space-between;gap:1rem;max-width:480px;min-width:0;margin:0;padding:clamp(1.25rem,3vw,2rem);border:1px solid rgba(21,18,16,.55);transition:transform .45s var(--ease),background .3s,color .3s,box-shadow .45s var(--ease)}
.review-action[hidden]{display:none}
.review-action:hover{transform:translate(-4px,-6px);background:var(--night);color:var(--chalk);box-shadow:8px 8px 0 var(--chalk)}
.review-action>span{font:.62rem SagreraMono,monospace;letter-spacing:.12em}
.review-action h3{margin:0;font:clamp(1.8rem,3vw,2.6rem)/.95 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.review-action p{margin:0;color:inherit;line-height:1.5}
.review-action .line-link{align-self:flex-start;color:inherit;font:.65rem SagreraMono,monospace;letter-spacing:.06em;text-transform:uppercase;text-underline-offset:.3em}
.review-action:hover .line-link{color:var(--mustard)}

/* 7 · Experiencia/Extras */
.experience{padding:var(--pad);background:var(--mustard);color:var(--night);overflow:hidden}
.exp-grid article:before{content:"";position:absolute;top:0;left:0;width:18%;height:2px;background:var(--fire);animation:sagrera-rail 5s linear infinite;pointer-events:none}
.exp-grid article:nth-child(2):before,.exp-grid article:nth-child(5):before{animation-delay:-1.7s}
.exp-grid article:nth-child(3):before,.exp-grid article:nth-child(6):before{animation-delay:-3.4s}
@keyframes sagrera-rail{from{transform:translateX(-100%)}to{transform:translateX(560%)}}
.experience h2{max-width:16ch}
.exp-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}
.exp-grid article{position:relative;overflow:hidden;min-height:10rem;padding:1rem;border-top:2px solid var(--night);transition:transform .4s var(--ease),background .3s,color .3s}
.exp-grid article:hover{transform:translateY(-5px);background:var(--night);color:var(--chalk)}
.exp-grid article:hover:before{background:var(--mustard)}
.exp-grid b{display:block;font:clamp(1.6rem,2.4vw,2.4rem)/.9 SagreraDisplay,Impact,sans-serif;text-transform:uppercase;transition:color .3s}
.exp-grid article:hover b{color:var(--mustard)}
.exp-grid span{display:block;margin-top:.7rem;font-size:.85rem;line-height:1.5}

/* 8 · Por qué elegirnos (Comparativa + Reframe fusionados) */
.compare{padding:var(--pad);background:var(--coal)}
.compare .section-head{position:relative;display:flex;align-items:flex-end;gap:2rem}
.compare .vs-badge{flex:none;display:grid;place-items:center;width:4.2rem;height:4.2rem;background:var(--fire);color:var(--night);font:.9rem SagreraMono,monospace;font-weight:900;letter-spacing:.06em;transform:rotate(-8deg);box-shadow:.5rem .5rem 0 var(--chalk);margin-bottom:.5rem}
.strike-list{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 3rem;max-width:64rem;margin-top:3rem}
.strike-row{padding-bottom:1.4rem;border-bottom:1px dashed var(--line)}
.strike-text{margin:0 0 .5rem;color:#9b8b7d;font-size:1rem;line-height:1.5;text-decoration:line-through;text-decoration-color:var(--fire);text-decoration-thickness:2px}
.strike-response{margin:0;color:var(--chalk);font-weight:800;font-size:.92rem;line-height:1.5}

/* 9 · Recomendador (quiz ampliado, 5 pasos) */
.quiz-section{padding:var(--pad);background:var(--night)}
.quiz-section>div:first-child{max-width:40rem;margin-bottom:3rem}
.quiz-section h2{max-width:16ch}
.demo-quiz{position:relative;max-width:44rem;padding:clamp(1.25rem,3vw,3rem);border:1px solid var(--line);background:var(--coal)}
.quiz-progress{position:absolute;top:0;left:0;right:0;height:4px;background:var(--line)}
.quiz-progress i{display:block;width:20%;height:100%;background:var(--mustard);transition:width .6s var(--ease)}
.demo-quiz:has(.form-step[data-step="2"]:not([hidden])) .quiz-progress i{width:40%}
.demo-quiz:has(.form-step[data-step="3"]:not([hidden])) .quiz-progress i{width:60%}
.demo-quiz:has(.form-step[data-step="4"]:not([hidden])) .quiz-progress i{width:80%}
.demo-quiz:has(.form-step[data-step="5"]:not([hidden])) .quiz-progress i{width:100%}
.demo-quiz:has(.quiz-result:not([hidden])) .quiz-progress i{width:100%;background:var(--fire)}
.form-step{margin:0;padding:0;border:0;animation:step-in .45s var(--dry) both}
@keyframes step-in{from{opacity:0;transform:translateX(18px)}to{opacity:1;transform:none}}
.form-step[hidden],.quiz-result[hidden]{display:none}
.form-step legend{margin-bottom:1rem;font:2.3rem/.9 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.form-step label{display:block;margin-bottom:.6rem;padding:1rem;border:1px solid #866150;transition:transform .3s var(--ease),border-color .25s,box-shadow .3s var(--ease),background .25s,color .25s}
.form-step label:hover{border-color:var(--fire);transform:translate(-2px,-2px);box-shadow:4px 4px 0 var(--fire)}
.form-step label:has(input:checked){border-color:var(--fire);background:var(--fire);color:var(--night)}
.form-step input{margin-right:.8rem;accent-color:var(--night)}
.form-step button{display:inline-block;margin-top:1rem;padding:.9rem 1.1rem;border:0;background:var(--fire);color:var(--night);font:.65rem SagreraMono,monospace;font-weight:900;text-transform:uppercase;transition:transform .3s var(--ease),box-shadow .3s var(--ease),background .2s}
.form-step button:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--chalk)}
.quiz-controls{display:flex;flex-wrap:wrap;gap:.5rem}
.form-step .quiz-controls .quiz-prev{background:transparent;color:var(--chalk);border:1px solid var(--chalk)}
.quiz-result{animation:step-in .45s var(--dry) both}
.quiz-result-label{margin:0 0 1rem;color:var(--mustard);font:.62rem SagreraMono,monospace;letter-spacing:.1em;text-transform:uppercase}
.quiz-result-card{display:flex;gap:1.25rem;align-items:center}
.quiz-result-card img{width:8rem;height:8rem;object-fit:cover;flex:none;box-shadow:.5rem .5rem 0 var(--fire)}
.quiz-result-card h3{margin:0 0 .4rem;font-size:2.4rem;line-height:.9}
.quiz-result-card p{margin:0 0 .4rem;font-size:.85rem;line-height:1.5;color:#c9b8a8}
.quiz-result-card b{color:var(--mustard);font:1rem SagreraMono,monospace}
.quiz-result-alt{margin:1.25rem 0 0;font-size:.8rem;color:#c9b8a8}
.quiz-result-alt a{color:var(--mustard);text-decoration:underline}
.quiz-result-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}
.quiz-result-actions a,.quiz-result-actions button{display:inline-block;padding:.9rem 1.1rem;border:0;background:var(--fire);color:var(--night);font:.65rem SagreraMono,monospace;font-weight:900;text-transform:uppercase;transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.quiz-result-actions a:hover,.quiz-result-actions button:hover{transform:translate(-3px,-3px);box-shadow:5px 5px 0 var(--chalk)}
.quiz-result-actions button{background:transparent;color:var(--chalk);border:1px solid var(--chalk)}

/* 10 · Fidelización */
.loyalty{padding:var(--pad);background:var(--coal)}
.loyalty-card{max-width:30rem;margin:3rem auto 0;padding:clamp(1.5rem,4vw,2.5rem);border:1px solid var(--line);background:var(--night);text-align:center}
.tarjeta-stamps{display:flex;justify-content:center;gap:.7rem;margin-bottom:1.25rem}
.tarjeta-dot{width:2.4rem;height:2.4rem;border:1px solid var(--fire);background:transparent;color:var(--fire);font:.75rem SagreraMono,monospace;transition:background .25s,color .25s,transform .25s var(--ease)}
.tarjeta-dot:hover,.tarjeta-dot[aria-expanded="true"]{background:var(--fire);color:var(--night);transform:rotate(-8deg)}
.tarjeta-progress{margin:0;min-height:2.4rem;color:var(--mustard);font:.75rem SagreraMono,monospace;letter-spacing:.04em;line-height:1.5}

/* 11 · FAQ */
.faq{padding:var(--pad);background:var(--mustard);color:var(--night)}
.faq h2{max-width:14ch}
.faq-list{display:grid;grid-template-columns:1fr 1fr;gap:0 3rem;margin-top:2.5rem}
.faq-list details{border-top:1px solid rgba(21,18,16,.5);align-self:start}
.faq-list summary{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 0;list-style:none;font:1.6rem/1 SagreraDisplay,Impact,sans-serif;text-transform:uppercase;transition:color .25s,padding-left .35s var(--ease);cursor:pointer}
.faq-list summary::-webkit-details-marker{display:none}
.faq-list summary:after{content:"+";flex:none;width:2rem;height:2rem;display:grid;place-items:center;border:1px solid var(--night);font:1.4rem SagreraMono,monospace;transition:transform .45s var(--ease),background .25s,color .25s}
.faq-list summary:hover{color:var(--night);padding-left:.4rem}
.faq-list summary:hover:after{background:var(--night);color:var(--mustard)}
.faq-list details[open] summary:after{transform:rotate(45deg);background:var(--night);color:var(--mustard)}
.faq-list details p{margin:0 0 1.2rem;max-width:34rem;line-height:1.6;animation:lines-in .45s var(--ease) both}

/* 12 · Reserva y visita (sección única) */
.reserva{padding:var(--pad);background:var(--night)}
.reserva-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,5vw,4rem);margin-top:3rem}
.info-card{align-self:start;padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);background:rgba(176,137,79,.06)}
.info-row{display:flex;gap:1rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.info-row .icon{flex:none;width:1.4rem;margin-top:.15rem;stroke:var(--fire)}
.info-row b{display:block;margin-bottom:.3rem;color:var(--fire);font:.6rem SagreraMono,monospace;letter-spacing:.1em;text-transform:uppercase}
.info-row span{color:#d9cfc2;font-size:.88rem;line-height:1.5}
.info-row .hours{display:grid;gap:0;margin:0}
.info-row .hours div{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;font:.7rem SagreraMono,monospace;letter-spacing:.04em;color:#d9cfc2}
.info-row .hours dd{margin:0;font-weight:700;color:var(--chalk)}
.info-row .hours dt{margin:0}
.map-frame{position:relative;margin-top:1.25rem;height:14rem;overflow:hidden;background:#d9cfc2}
.map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.2) contrast(1.05)}
.map-consent{position:absolute;z-index:1;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.65rem;padding:1.25rem;text-align:center;background:linear-gradient(135deg,rgba(22,18,15,.94),rgba(22,18,15,.78));color:var(--chalk)}
.map-consent[hidden]{display:none}
.map-consent p{max-width:34rem;margin:0;color:var(--chalk);font:.68rem/1.55 SagreraMono,monospace;letter-spacing:.03em}
.map-load{min-height:auto;padding:.6rem .9rem;font-size:.6rem}
.map-cta{position:absolute;z-index:2;left:.75rem;bottom:.75rem;min-height:auto;padding:.55rem .8rem;font-size:.55rem}
.resv-form-wrap{padding:clamp(1.5rem,3vw,2.5rem);border:1px solid var(--line);background:var(--coal)}
.resv-field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem;color:var(--mustard);font:.6rem SagreraMono,monospace;letter-spacing:.08em;text-transform:uppercase}
.resv-field input,.resv-field select,.resv-field textarea{min-height:3rem;padding:0 1rem;border:1px solid var(--line);background:var(--night);color:var(--chalk);font:.95rem SagreraText,Arial,sans-serif;letter-spacing:normal;text-transform:none}
.resv-field textarea{min-height:4.5rem;padding:.75rem 1rem;resize:vertical}
.resv-field input:focus-visible,.resv-field select:focus-visible,.resv-field textarea:focus-visible{outline:2px solid var(--mustard);outline-offset:2px}
.resv-row2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.stepper{display:flex;align-items:center;gap:.75rem;min-height:3rem;padding:0 .5rem;border:1px solid var(--line);background:var(--night)}
.stepper button{width:2.2rem;height:2.2rem;border:1px solid var(--fire);background:transparent;color:var(--fire);font-size:1.1rem;line-height:1;transition:background .2s,color .2s}
.stepper button:hover{background:var(--fire);color:var(--night)}
.stepper output{flex:1;color:var(--chalk);font:1.1rem SagreraMono,monospace;text-align:center}
.closed-banner{margin-bottom:1rem;padding:.85rem 1rem;border:1px solid var(--fire);background:rgba(176,137,79,.12);color:var(--mustard);font-size:.85rem}
.big-group-note{margin:-.3rem 0 1rem;color:var(--mustard);font-size:.8rem}
.resv-submit{width:100%;margin-top:.5rem}
.hp-campo{display:none}
.consentimiento{display:flex;gap:.6rem;align-items:flex-start;margin:1.1rem 0;font-size:.78rem;color:#c9b8a8}
.consentimiento input{margin-top:.2rem}
.consentimiento a{color:var(--mustard);text-decoration:underline}
.turnstile-wrap{margin:0 0 1.1rem}
.estado{margin-top:1rem;padding:.85rem 1rem;font-size:.85rem;border:1px solid var(--line)}
.estado[hidden]{display:none}
.estado.ok{border-color:var(--fire);background:rgba(176,137,79,.12);color:var(--mustard)}
.estado.error{border-color:#a1462a;background:rgba(161,70,42,.15);color:#f0b39e}
.sin-js{margin-top:1rem;padding:.85rem 1rem;border:1px solid #a1462a;background:rgba(161,70,42,.15);color:#f0b39e;font-size:.85rem}

/* 13 · Cierre */
.closing{display:grid;place-items:center;min-height:34rem;padding:var(--pad);overflow:hidden;background:var(--night);text-align:center}
.closing-mark{position:absolute;left:50%;top:50%;color:#8b6f45;opacity:1;mix-blend-mode:screen;font:clamp(18rem,40vw,42rem)/1 SagreraDisplay,Impact,sans-serif;pointer-events:none;animation:sagrera-orbit 18s linear infinite}
@keyframes sagrera-orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
.closing>div{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}
.closing h2{max-width:14ch;margin-left:auto;margin-right:auto}
.closing .hero-actions{justify-content:center}
.pulse-btn{animation:sagrera-shadow 2.6s ease-in-out infinite}
@keyframes sagrera-shadow{0%,100%{box-shadow:0 0 0 var(--chalk)}50%{box-shadow:6px 6px 0 var(--chalk)}}
.pulse-btn:hover{animation:none}

/* 14 · Footer */
.site-footer{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem;padding:3.5rem clamp(1.25rem,5vw,5rem) 2rem;border-top:1px solid var(--line);background:var(--night);font-size:.8rem;line-height:1.6}
.foot-brand .brand-ls{margin-bottom:.8rem}
.foot-brand strong{display:block;font:2rem/.9 SagreraDisplay,Impact,sans-serif;text-transform:uppercase}
.foot-brand p{max-width:22rem;margin:.6rem 0 0;color:#c9b8a8}
.foot-col h3{margin:0 0 .6rem;color:var(--fire);font:.58rem SagreraMono,monospace;letter-spacing:.14em;text-transform:uppercase}
.foot-col p{margin:0 0 .5rem;color:#c9b8a8}
.foot-col a{display:block;width:fit-content;position:relative;padding:.15rem 0;transition:color .25s,transform .3s var(--ease)}
.foot-col a:hover,.foot-legal a:hover{color:var(--fire);transform:translateX(4px)}
.foot-legal{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin-top:1.5rem;padding-top:1.2rem;border-top:1px solid var(--line);font:.58rem SagreraMono,monospace;letter-spacing:.08em;text-transform:uppercase;color:#c9b8a8}
.foot-legal a{display:inline-block;transition:color .25s,transform .3s var(--ease)}

/* Cursor de marca */
.brand-cursor{position:fixed;top:0;left:0;z-index:150;pointer-events:none;opacity:0;transition:opacity .3s}
.brand-cursor.is-on{opacity:1}
.brand-cursor i{position:absolute;transform:translate(-50%,-50%) rotate(-8deg)}
.brand-cursor i:first-child{width:10px;height:10px;background:var(--fire)}
.brand-cursor i:last-child{width:34px;height:34px;border:1.5px solid var(--mustard);transition:width .3s,height .3s,background .3s,border-color .3s,transform .3s}
.brand-cursor.is-hover i:last-child{width:58px;height:58px;background:rgba(176,137,79,.38);border-color:var(--fire);transform:translate(-50%,-50%) rotate(8deg)}
@media(hover:hover) and (pointer:fine){body.cursor-listo,body.cursor-listo a,body.cursor-listo button,body.cursor-listo summary,body.cursor-listo label,body.cursor-listo [data-menu-card],body.cursor-listo .dish-card,body.cursor-listo .menu-filter,body.cursor-listo .menu-toggle,body.cursor-listo [data-modal-close],body.cursor-listo [data-modal-next],body.cursor-listo input{cursor:none}}
@media(hover:none),(pointer:coarse),(prefers-reduced-motion:reduce){.brand-cursor{display:none}}

/* Responsive */
@media(max-width:1100px){.review-grid{grid-template-columns:1fr 1fr}.review-grid blockquote:last-child{grid-column:1/-1}.strike-list{grid-template-columns:1fr}}
@media(max-width:1000px){.nav-links{position:absolute;top:4.9rem;left:0;right:0;display:none;flex-direction:column;align-items:stretch;gap:0;padding:1rem;background:var(--night);border-bottom:1px solid var(--line)}.nav-links.is-open{display:flex}.nav-links a{padding:1rem}.nav-links a:not(.nav-call):after{display:none}.menu-toggle{display:grid;place-items:center}.sagrera-nav{background:rgba(18,15,13,.94)}.local-top,.quiz-section,.faq,.reserva-grid{grid-template-columns:1fr}.exp-grid{grid-template-columns:repeat(2,1fr)}.local-images{min-height:30rem}.faq-list{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}
@media(max-width:650px){
.sagrera-hero{min-height:46rem}
.hero-copy{padding:8rem 1.25rem 7rem}
.hero-copy h1{max-width:none;font-size:clamp(3.3rem,13.5vw,5rem)}
.hero-dim{background:linear-gradient(0deg,rgba(21,18,16,.94),rgba(21,18,16,.42) 78%)}
.hero-address{left:1.25rem;right:auto;bottom:1.6rem;max-width:none;text-align:left}
h2{font-size:clamp(2.6rem,10.5vw,4rem);max-width:100%}
.scene-track,.exp-grid,.review-grid{grid-template-columns:1fr}
.feedback-grid{display:flex}
.review-action{flex-basis:100%}
.review-grid blockquote:last-child{grid-column:auto}
.scene-track{margin-top:2rem}
.scene-track article{min-height:0}
.scene-track h4{margin-top:1rem}
.local-scenes,.local-extras{margin-top:3rem;padding-top:2rem}
.local-images{min-height:0;padding-bottom:5rem}
.local-front{width:88%}
.local-plate.video-frame{width:46%;bottom:0}
.seal{left:auto;right:0;top:-1rem;width:6rem;height:6rem}
.menu-lines p{font-size:.78rem}
.exp-grid article{min-height:0}
.compare .section-head{flex-direction:column;align-items:flex-start}
.form-step legend{font-size:2rem}
.quiz-result-card{flex-direction:column;align-items:flex-start}
.faq-list summary{font-size:1.35rem}
.closing{min-height:28rem}
.dish-dialog{grid-template-columns:1fr;padding-top:3.4rem}
.dish-modal-slide img,.dish-modal-slide video{max-height:44vh}
.site-footer{grid-template-columns:1fr}
}

/* Movimiento reducido */
@media(prefers-reduced-motion:reduce){
html{scroll-behavior:auto}
*,*:before,*:after{animation:none!important;transition:none!important}
.hero-film video,.video-frame video{display:none}
.ticker-track{animation:none}.ticker{white-space:normal;text-align:center;padding-inline:clamp(1rem,4vw,3rem)}.ticker-track{display:block}.ticker-sequence{display:inline;white-space:normal;padding:0}
.exp-grid article:before,.closing-mark,.watermark{animation:none}
.hero-eyebrow,.hero-copy h1,.hero-lead,.hero-actions,.hero-address{opacity:1;transform:none;clip-path:none}
.reveal{opacity:1;transform:none}
.dish-badge{opacity:1;transform:none}
}

/* Ajustes de desbordamiento y lectura en pantallas estrechas */
.reserva-grid>*,.info-row>div,.resv-form-wrap{min-width:0}
.info-row span{overflow-wrap:anywhere}
@media(max-width:650px){
.watermark{left:0;width:100%;max-width:100%;overflow:hidden;white-space:nowrap;animation:none;transform:none}
.closing-mark{left:0;width:100%;text-align:center;animation:none;transform:none}
}
@media(max-width:420px){
.resv-row2{grid-template-columns:1fr}
.archive-list summary{align-items:flex-start;flex-wrap:wrap}
.archive-list summary small{flex:1 1 100%;margin-top:.35rem;white-space:normal;overflow-wrap:anywhere}
}
@media(max-width:350px){
.turnstile-wrap{min-width:0;overflow:hidden}
}
