/* ═══════════════════════════════════════════════════════════
   Vitrina Viva — Landing
   Las variables de color y fuentes se inyectan por cliente (:root)
   ═══════════════════════════════════════════════════════════ */

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:auto}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:clamp(1rem,.95rem + .2vw,1.125rem);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:clip}
img,svg,iframe{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:var(--accent);color:var(--accent-ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}

.container{width:100%;max-width:1400px;margin-inline:auto;padding-inline:clamp(20px,5vw,72px)}
.section{padding-block:clamp(80px,10vw,150px)}

/* ── Tipografía ─────────────────────────────────────────── */
.display,.h2,.hero__title{font-family:var(--f-display);font-weight:400;letter-spacing:-.035em;line-height:.95;font-variation-settings:"opsz" 144}
.display{font-size:clamp(3.2rem,9vw,9.5rem)}
.h2{font-size:clamp(2.5rem,6.2vw,6rem)}
.display em,.h2 em,.hero__title em,.story__para em{font-style:italic;color:var(--accent)}
.eyebrow{display:inline-flex;align-items:center;gap:.7rem;font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-2);margin-bottom:1.6rem}
.eyebrow::before{content:"";width:28px;height:1px;background:var(--accent)}
.lead{font-size:clamp(1.05rem,1rem + .4vw,1.3rem);color:var(--ink-2);max-width:34ch;margin-block:1.6rem 2.4rem}

/* ── Botones ────────────────────────────────────────────── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;padding:1rem 1.7rem;border-radius:999px;font-weight:600;font-size:.98rem;letter-spacing:.01em;overflow:hidden;isolation:isolate;transition:color .45s cubic-bezier(.2,.8,.2,1),border-color .45s;white-space:nowrap;will-change:transform}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .55s cubic-bezier(.2,.8,.2,1)}
.btn:hover::before{transform:translateY(0)}
.btn svg{transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.btn:hover svg{transform:translateX(3px)}
.btn--accent{background:var(--accent);color:var(--accent-ink)}
.btn--accent::before{background:var(--ink)}
.btn--accent:hover{color:var(--bg)}
.btn--ghost{border:1px solid var(--line);color:var(--ink);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:rgba(127,127,127,.06)}
.btn--ghost::before{background:var(--ink)}
.btn--ghost:hover{color:var(--bg);border-color:var(--ink)}
.btn--sm{padding:.7rem 1.25rem;font-size:.88rem}
.btn--lg{padding:1.2rem 2.2rem;font-size:1.05rem}

/* ── Loader ─────────────────────────────────────────────── */
.loader{display:none}
.js .loader{display:flex;position:fixed;inset:0;z-index:1000;background:var(--bg-2);align-items:center;justify-content:center;animation:vv-safety 0s 5s forwards}
.loader__name{font-family:var(--f-display);font-size:clamp(2.4rem,7vw,6rem);letter-spacing:-.03em;overflow:hidden;line-height:1.1}
.loader__count{position:absolute;right:clamp(20px,5vw,72px);bottom:clamp(20px,4vw,48px);font-family:var(--f-display);font-size:clamp(3rem,8vw,7rem);line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
@keyframes vv-safety{to{visibility:hidden;opacity:0}}
.no-anim .loader{display:none!important}

/* ── Capas decorativas ──────────────────────────────────── */
.grain{position:fixed;inset:-100%;z-index:900;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:vv-grain 1.2s steps(6) infinite}
@keyframes vv-grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-5%)}60%{transform:translate(-6%,-2%)}80%{transform:translate(5%,4%)}100%{transform:translate(0,0)}}
.theme-claro .grain{opacity:.035}
.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:950;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}

.cursor{position:fixed;top:0;left:0;z-index:999;opacity:0;width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;background:var(--accent);pointer-events:none;display:none;align-items:center;justify-content:center;transition:width .35s cubic-bezier(.2,.8,.2,1),height .35s cubic-bezier(.2,.8,.2,1),margin .35s cubic-bezier(.2,.8,.2,1),opacity .3s;mix-blend-mode:normal}
.cursor__label{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);opacity:0;transition:opacity .25s}
.cursor.is-on{opacity:1}
.cursor.is-on.is-link{width:44px;height:44px;margin:-22px 0 0 -22px;opacity:.35}
.cursor.is-on.is-label{width:92px;height:92px;margin:-46px 0 0 -46px;opacity:1}
.cursor.is-label .cursor__label{opacity:1}
@media (hover:hover) and (pointer:fine){.js .cursor{display:flex}}

/* ── Navegación ─────────────────────────────────────────── */
.nav{position:fixed;inset:0 0 auto;z-index:800;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.1rem clamp(20px,5vw,72px);transition:transform .6s cubic-bezier(.2,.8,.2,1),background-color .4s,border-color .4s,padding .4s;border-bottom:1px solid transparent}
.nav{--n-ink:#f6efe5;--n-ink-2:rgba(246,239,229,.78);--n-line:rgba(246,239,229,.3);color:var(--n-ink)}
.nav.is-scrolled,.menu-open .nav{--n-ink:var(--ink);--n-ink-2:var(--ink-2);--n-line:var(--line)}
.nav.is-scrolled{background:color-mix(in srgb,var(--bg) 72%,transparent);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-color:var(--line);padding-block:.75rem}
.nav.is-hidden{transform:translateY(-110%)}
.nav__brand{color:var(--n-ink);transition:color .4s;font-family:var(--f-display);font-size:1.45rem;letter-spacing:-.02em;line-height:1;white-space:nowrap}
.brand-logo{height:38px;width:auto}
.nav__links{display:flex;gap:2.2rem;font-size:.92rem;font-weight:500}
.nav__links a{position:relative;padding-block:.3rem;color:var(--n-ink-2);transition:color .3s}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--accent);transform:scaleX(0);transform-origin:right;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.nav__links a:hover{color:var(--n-ink)}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
.nav__right{display:flex;align-items:center;gap:.8rem}
.nav__toggle{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--n-line);position:relative}
.nav__toggle span{position:absolute;left:13px;right:13px;height:1.5px;background:var(--n-ink);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.nav__toggle span:first-child{top:18px}
.nav__toggle span:last-child{top:25px}
.menu-open .nav__toggle span:first-child{transform:translateY(3.5px) rotate(45deg)}
.menu-open .nav__toggle span:last-child{transform:translateY(-3.5px) rotate(-45deg)}

.mnav{position:fixed;inset:0;z-index:790;background:var(--bg-2);display:flex;flex-direction:column;justify-content:space-between;padding:110px clamp(20px,5vw,72px) 40px;clip-path:circle(0% at calc(100% - 44px) 40px);transition:clip-path .8s cubic-bezier(.7,0,.2,1);visibility:hidden}
.menu-open .mnav{clip-path:circle(150% at calc(100% - 44px) 40px);visibility:visible}
.mnav__links{display:flex;flex-direction:column;gap:.2rem}
.mnav__links a{font-family:var(--f-display);font-size:clamp(2.4rem,10vw,4rem);letter-spacing:-.03em;line-height:1.15;opacity:0;transform:translateY(30px);transition:opacity .5s,transform .6s cubic-bezier(.2,.8,.2,1)}
.menu-open .mnav__links a{opacity:1;transform:none}
.menu-open .mnav__links a:nth-child(1){transition-delay:.25s}.menu-open .mnav__links a:nth-child(2){transition-delay:.3s}.menu-open .mnav__links a:nth-child(3){transition-delay:.35s}.menu-open .mnav__links a:nth-child(4){transition-delay:.4s}.menu-open .mnav__links a:nth-child(5){transition-delay:.45s}.menu-open .mnav__links a:nth-child(6){transition-delay:.5s}
.mnav__foot{display:flex;justify-content:space-between;align-items:center;color:var(--ink-2)}

/* ── Hero ───────────────────────────────────────────────── */
.hero{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:-28px;z-index:-2;overflow:hidden}
.hero__media img{width:100%;height:100%;object-fit:cover;transform-origin:50% 60%;will-change:transform}
.hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(10,8,6,.62) 0%,rgba(10,8,6,.18) 55%,transparent 80%),linear-gradient(180deg,rgba(10,8,6,.55) 0%,rgba(10,8,6,.05) 30%,rgba(10,8,6,.25) 55%,rgba(10,8,6,.92) 100%),radial-gradient(120% 80% at 50% 40%,transparent 50%,rgba(10,8,6,.5) 100%)}
.hero__content{padding-bottom:clamp(48px,8vh,96px);color:#f6efe5;will-change:transform}
.hero .eyebrow{color:rgba(246,239,229,.78)}
.hero__eyebrow::before{display:none}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 rgba(var(--accent-rgb),.7);animation:vv-pulse 2s infinite}
@keyframes vv-pulse{70%{box-shadow:0 0 0 12px rgba(var(--accent-rgb),0)}100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),0)}}
.hero__title{font-size:clamp(3.6rem,12.5vw,13rem);line-height:.88;text-shadow:0 4px 60px rgba(0,0,0,.35);margin-bottom:clamp(28px,5vh,56px)}
.hero__title em{color:var(--accent)}
.theme-claro .hero__title em{color:color-mix(in srgb,var(--accent) 60%,#fff)}
.hero__bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:2rem 4rem;border-top:1px solid rgba(246,239,229,.2);padding-top:clamp(20px,3vh,32px)}
.hero__sub{max-width:44ch;color:rgba(246,239,229,.78);font-size:clamp(1rem,.95rem + .3vw,1.2rem)}
.hero__ctas{display:flex;gap:.8rem;flex-wrap:wrap}
.hero .btn--ghost{color:#f6efe5;border-color:rgba(246,239,229,.3)}
.hero .btn--ghost::before{background:#f6efe5}
.hero .btn--ghost:hover{color:#14110e}
.hero__status{position:absolute;top:96px;right:clamp(20px,5vw,72px);color:#f6efe5;background:rgba(10,8,6,.35)!important;border-color:rgba(246,239,229,.2)!important}
.hero__scroll{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);display:none;flex-direction:column;align-items:center;gap:8px;font-size:.7rem;letter-spacing:.25em;text-transform:uppercase;color:rgba(246,239,229,.7)}
.hero__scroll i{width:1px;height:42px;background:rgba(246,239,229,.25);position:relative;overflow:hidden}
.hero__scroll i::after{content:"";position:absolute;inset:0;background:#f6efe5;animation:vv-scroll 2s cubic-bezier(.7,0,.3,1) infinite}
@keyframes vv-scroll{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* ── Estado abierto/cerrado ─────────────────────────────── */
.status{display:inline-flex;align-items:center;gap:.6rem;padding:.55rem 1rem;border-radius:999px;border:1px solid var(--line);background:rgba(127,127,127,.07);font-size:.85rem;font-weight:500;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.status[hidden]{display:none}
.status__dot{width:8px;height:8px;border-radius:50%;background:#e5484d;flex:none}
.status.is-open .status__dot{background:#3fcf8e;box-shadow:0 0 0 0 rgba(63,207,142,.6);animation:vv-pulse-g 2s infinite}
.status.is-soon .status__dot{background:#f5a524}
@keyframes vv-pulse-g{70%{box-shadow:0 0 0 10px rgba(63,207,142,0)}100%{box-shadow:0 0 0 0 rgba(63,207,142,0)}}

/* ── Cinta ──────────────────────────────────────────────── */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:clamp(18px,2.6vw,34px);background:var(--bg)}
.marquee__track{display:flex;align-items:center;width:max-content;will-change:transform}
.marquee__item{font-family:var(--f-display);font-style:italic;font-size:clamp(2rem,5.2vw,5rem);line-height:1;letter-spacing:-.02em;padding-inline:clamp(16px,2.4vw,40px);white-space:nowrap}
.marquee__item:nth-child(4n+1){font-style:normal;color:transparent;-webkit-text-stroke:1px var(--ink)}
.marquee__sep{color:var(--accent);font-size:clamp(1rem,2vw,1.8rem)}

/* ── Historia ───────────────────────────────────────────── */
.story__grid{display:grid;grid-template-columns:1.15fr 1fr;gap:clamp(48px,8vw,140px);align-items:center}
.story__para{font-family:var(--f-display);font-size:clamp(1.7rem,3.1vw,3rem);line-height:1.18;letter-spacing:-.02em}
.story__para .w{display:inline-block}
.story__sign{margin-top:2.4rem;color:var(--ink-2);font-size:.95rem}
.story__sign::before{content:"— ";color:var(--accent)}
.story__media{position:relative;padding-bottom:18%}
.clip{position:relative;overflow:hidden;border-radius:6px;background:var(--bg-3)}
.clip img{width:100%;height:100%;object-fit:cover;will-change:transform}
.story__img--a{width:78%;margin-left:auto;aspect-ratio:4/5}
.story__img--b{position:absolute;left:0;bottom:0;width:48%;aspect-ratio:3/4;box-shadow:0 30px 80px -20px rgba(0,0,0,.6);border:6px solid var(--bg)}
.badge{position:absolute;top:2%;left:0;width:clamp(96px,9vw,136px);z-index:2;fill:var(--ink);font-size:13.5px;letter-spacing:.3em;font-weight:600;font-family:var(--f-body)}
.badge::after{content:""}

/* ── Favoritos (horizontal) ─────────────────────────────── */
.dishes{position:relative;background:var(--bg-2)}
.dishes__pin{min-height:100vh;display:flex;flex-direction:column;justify-content:center;gap:clamp(24px,4vh,48px);padding-block:clamp(84px,11vh,120px) clamp(32px,5vh,64px);overflow:hidden}
.dishes__head .h2{font-size:clamp(2.2rem,min(5vw,8vh),5rem)}
.dishes__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem}
.dishes__head .h2{max-width:13ch}
.dishes__progress{width:clamp(120px,16vw,240px);height:2px;background:var(--line);flex:none;margin-bottom:1rem;overflow:hidden}
.dishes__progress span{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:0 50%}
.dishes__track{display:flex;gap:clamp(16px,2vw,32px);padding-inline:clamp(20px,5vw,72px);width:max-content;will-change:transform}
.dish{width:clamp(250px,min(26vw,46vh),420px);flex:none}
.dish__link{display:block}
.dish__img{aspect-ratio:1/1;overflow:hidden;border-radius:6px;background:var(--bg-3)}
.dish__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.dish:hover .dish__img img{transform:scale(1.12)}
.dish__meta{display:grid;grid-template-columns:auto 1fr auto;column-gap:1rem;align-items:baseline;padding-top:1.2rem}
.dish__num{font-size:.78rem;font-weight:700;color:var(--accent);letter-spacing:.1em}
.dish__name{font-family:var(--f-display);font-weight:400;font-size:clamp(1.35rem,1.8vw,1.75rem);letter-spacing:-.02em;line-height:1.15}
.dish__price{font-weight:600;font-variant-numeric:tabular-nums}
.dish__desc{grid-column:2/4;color:var(--ink-2);font-size:.92rem;margin-top:.4rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.dish--more{display:flex;flex-direction:column;justify-content:space-between;aspect-ratio:1/1;padding:clamp(24px,3vw,40px);border:1px solid var(--line);border-radius:6px;transition:background .5s,color .5s}
.dish--more:hover{background:var(--accent);color:var(--accent-ink)}
.dish--more__label{font-family:var(--f-display);font-size:clamp(2.2rem,3.4vw,3.4rem);line-height:1;letter-spacing:-.03em}
.dish--more__label em{font-style:italic}
.dish--more__icon{align-self:flex-end;width:72px;height:72px;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.dish--more__icon svg{width:28px;height:28px}
.dish--more:hover .dish--more__icon{transform:rotate(45deg)}

/* ── Cifras ─────────────────────────────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(20px,3vw,48px)}
.stat{border-top:1px solid var(--line);padding-top:1.4rem}
.stat__value{font-family:var(--f-display);font-size:clamp(3rem,6.5vw,6.5rem);line-height:1;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.stat__suf{color:var(--accent);margin-left:.05em}
.stat__txt{color:var(--ink-2);margin-top:.8rem;max-width:20ch}

/* ── Ambiente ───────────────────────────────────────────── */
.ambience{overflow:hidden}
.ambience__head{text-align:center;margin-bottom:clamp(48px,8vw,110px)}
.ambience__head .eyebrow{justify-content:center}
.ambience__head .h2{max-width:14ch;margin-inline:auto}
.ambience__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(10px,2vw,28px);padding-inline:clamp(10px,3vw,40px)}
.ambience__col{display:flex;flex-direction:column;gap:clamp(10px,2vw,28px);will-change:transform}
.ambience__col:nth-child(2){margin-top:clamp(60px,14vh,180px)}
.ambience__col:nth-child(3){margin-top:clamp(20px,5vh,60px)}
.ambience__col .clip{aspect-ratio:3/4}
.ambience__col:nth-child(2) .clip:first-child{aspect-ratio:4/5}

/* ── Reseñas ────────────────────────────────────────────── */
.reviews{overflow:hidden;background:var(--bg-2)}
.reviews__head{margin-bottom:clamp(40px,6vw,80px)}
.reviews__head .h2{max-width:14ch}
.reviews__rows{display:flex;flex-direction:column;gap:20px}
.reviews__row{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.reviews__track{display:flex;gap:20px;width:max-content;animation:vv-marquee 70s linear infinite}
.reviews__row--rev .reviews__track{animation-direction:reverse;animation-duration:80s}
.reviews__row:hover .reviews__track{animation-play-state:paused}
@keyframes vv-marquee{to{transform:translateX(-33.333%)}}
.review{width:clamp(280px,30vw,420px);flex:none;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:clamp(22px,2.4vw,32px);display:flex;flex-direction:column;gap:1rem}
.review__stars{display:flex;gap:2px;color:var(--accent)}
.review__stars svg{width:16px;height:16px}
.review blockquote{font-family:var(--f-display);font-size:clamp(1.1rem,1.3vw,1.3rem);line-height:1.35;letter-spacing:-.01em;flex:1}
.review figcaption{display:flex;flex-direction:column;font-size:.88rem}
.review figcaption span{color:var(--ink-2)}

/* ── Carta CTA ──────────────────────────────────────────── */
.menu-cta__grid{display:grid;grid-template-columns:1.4fr .6fr;gap:clamp(40px,6vw,100px);align-items:center}
.menu-cta__qr{justify-self:center;display:flex;flex-direction:column;align-items:center;gap:14px;background:#fff;color:#14110e;padding:24px 24px 18px;border-radius:26px;rotate:-5deg;transition:rotate .7s cubic-bezier(.2,.8,.2,1),scale .7s cubic-bezier(.2,.8,.2,1);box-shadow:0 40px 90px -30px rgba(var(--accent-rgb),.55)}
.menu-cta__qr:hover{rotate:0deg;scale:1.03}
.menu-cta__qr img{width:clamp(160px,16vw,220px);height:auto}
.menu-cta__qr span{font-size:.82rem;font-weight:600;letter-spacing:.04em}

/* ── Visítanos ──────────────────────────────────────────── */
.visit__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(40px,6vw,110px);align-items:stretch}
.visit__info .h2{font-size:clamp(2.2rem,4.6vw,4.4rem);max-width:14ch}
.visit__city{color:var(--ink-2);margin:1rem 0 1.6rem}
.hours{list-style:none;margin-block:2rem;border-top:1px solid var(--line)}
.hours li{display:flex;justify-content:space-between;gap:1rem;padding-block:.95rem;border-bottom:1px solid var(--line);color:var(--ink-2);font-variant-numeric:tabular-nums;transition:color .3s}
.hours li.is-today{color:var(--ink);font-weight:600}
.hours li.is-today span:first-child::after{content:"Hoy";margin-left:.6rem;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:.2rem .5rem;border-radius:99px;background:var(--accent);color:var(--accent-ink);vertical-align:2px}
.visit__actions{display:flex;gap:.8rem;flex-wrap:wrap}
.visit__map{min-height:480px;border-radius:14px}
.visit__map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.theme-oscuro .visit__map iframe{filter:grayscale(1) invert(.92) contrast(.9) hue-rotate(180deg)}

/* ── Llamado final ──────────────────────────────────────── */
.final{position:relative;text-align:center;overflow:hidden;isolation:isolate;padding-block:clamp(100px,13vw,190px)}
.final__glow{position:absolute;left:50%;top:50%;width:60vmax;height:60vmax;margin:-30vmax 0 0 -30vmax;z-index:-1;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.32),transparent 60%);filter:blur(30px);will-change:transform;pointer-events:none}
.final__title{font-size:clamp(3.6rem,12vw,12rem)}
.final .lead{margin-inline:auto;max-width:40ch}
.final__ctas{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* ── Footer ─────────────────────────────────────────────── */
.footer{background:var(--bg-2);padding-top:clamp(70px,9vw,120px);overflow:hidden}
.footer__grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.4rem}
.footer__brand{font-family:var(--f-display);font-size:1.9rem;letter-spacing:-.02em;line-height:1.1}
.footer__muted{color:var(--ink-2);margin-top:.4rem}
.footer__col{display:flex;flex-direction:column;gap:.5rem;font-size:.95rem}
.footer__col>a{color:var(--ink-2);transition:color .3s;width:fit-content}
.footer__col>a:hover{color:var(--accent)}
.footer__col span{color:var(--ink-2)}
.footer__label{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:.6rem}
.socials{display:flex;gap:.6rem}
.social{width:42px;height:42px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;transition:background .35s,color .35s,border-color .35s}
.social:hover{background:var(--accent);color:var(--accent-ink)!important;border-color:var(--accent)}
.footer__giant{font-family:var(--f-display);font-size:clamp(4rem,15.5vw,17rem);line-height:.82;letter-spacing:-.05em;white-space:nowrap;text-align:center;margin-top:clamp(50px,7vw,100px);overflow:hidden;padding-bottom:.06em}
.footer__giant span{display:inline-block}
.footer__bottom{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding-block:1.6rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--ink-2)}
.madeby strong{color:var(--ink);font-weight:600;transition:color .3s}
.madeby:hover strong{color:var(--accent)}

/* ── WhatsApp flotante ──────────────────────────────────── */
.wa-float{position:fixed;right:clamp(16px,2.5vw,32px);bottom:clamp(16px,2.5vw,32px);z-index:700;width:60px;height:60px;border-radius:50%;background:#25d366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 40px -10px rgba(37,211,102,.6);transition:scale .4s cubic-bezier(.2,.8,.2,1),rotate .4s cubic-bezier(.2,.8,.2,1)}
.wa-float svg{width:28px;height:28px}
.wa-float:hover{scale:1.08;rotate:-6deg}
.wa-float::before{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid #25d366;animation:vv-ring 2.4s cubic-bezier(.2,.8,.2,1) infinite}
@keyframes vv-ring{from{transform:scale(1);opacity:.8}to{transform:scale(1.6);opacity:0}}

/* ── Utilidades de animación (estado inicial con JS) ────── */
.split-line{overflow:hidden;padding-bottom:.08em;margin-bottom:-.08em}

/* ── Responsive ─────────────────────────────────────────── */
@media (min-width:900px){.hero__scroll{display:flex}}
@media (max-width:1024px){
  .nav__links{display:none}
  .nav__toggle{display:block}
  .stats{grid-template-columns:repeat(2,1fr)}
  .footer__grid{grid-template-columns:1fr 1fr}
}
@media (max-width:899px){
  .hero__bottom{grid-template-columns:1fr}
  .hero__status{top:84px;font-size:.78rem}
  .story__grid,.menu-cta__grid,.visit__grid{grid-template-columns:1fr}
  .story__media{max-width:560px;width:100%;margin-inline:auto}
  .dishes__pin{min-height:auto}
  .dishes__track{width:auto;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:8px}
  .dishes__track::-webkit-scrollbar{display:none}
  .dish{width:76vw;scroll-snap-align:center}
  .dishes__progress{display:none}
  .menu-cta__qr{display:none}
  .visit__map{min-height:360px}
}
@media (max-width:560px){
  .nav .btn--sm{display:none}
  .ambience__cols{grid-template-columns:repeat(2,1fr)}
  .ambience__col:nth-child(3){display:none}
  .footer__grid{grid-template-columns:1fr}
  .hero__ctas .btn{flex:1}
  .hero__title{font-size:clamp(3.4rem,16vw,6rem)}
  .footer__bottom{padding-bottom:96px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .js .loader,.grain{display:none}
}
