:root{
  --coal:#120c09; --soot:#1b130e; --char:#261a13; --ash:#f3e8dc; --ash-2:#cdb8a4; --ash-3:#9e8573;
  --ember:#ff6a2b; --ember-hot:#ff9a5c; --ember-deep:#c2410c; --rule:rgba(255,140,80,.22);
  --display:"Big Shoulders Display", "Arial Narrow", sans-serif;
  --body:"Figtree", system-ui, sans-serif;
  --ease-out:cubic-bezier(.23,1,.32,1); --ease-io:cubic-bezier(.77,0,.175,1);
  --gutter:clamp(16px,4vw,56px); --max:1240px;
  color-scheme: dark;
}
*{box-sizing:border-box;margin:0;padding:0}
html{background:var(--coal);-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{background:var(--coal);color:var(--ash);font:400 1.0625rem/1.6 var(--body);overflow-x:hidden;caret-color:var(--ember)}
::selection{background:var(--ember);color:var(--coal)}
::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--coal)}::-webkit-scrollbar-thumb{background:#3a271c;border-radius:10px;border:2px solid var(--coal)}
html{scrollbar-color:#3a271c var(--coal)}
a{color:inherit;text-underline-offset:.2em;text-decoration-thickness:1px}
:focus-visible{outline:2px solid var(--ember-hot);outline-offset:3px;border-radius:4px}
img,svg{display:block}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:fixed;left:12px;top:-60px;z-index:100;background:var(--ember);color:var(--coal);padding:10px 14px;border-radius:8px;font-weight:700;transition:top .2s var(--ease-out)}
.skip:focus{top:12px}
.muted{color:var(--ash-3)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6em;min-height:52px;padding:0 1.4em;border-radius:999px;font:700 1rem/1 var(--body);letter-spacing:.01em;text-decoration:none;border:1px solid transparent;transition:transform 160ms var(--ease-out),background-color .2s ease,border-color .2s ease,box-shadow .2s ease;-webkit-tap-highlight-color:transparent;white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn:active{transform:scale(.97)}
.btn-ember{background:var(--ember);color:#1a0c05;box-shadow:0 10px 24px -12px rgba(0,0,0,.7)}
.btn-ghost{border-color:rgba(243,232,220,.28);color:var(--ash);background:rgba(18,12,9,.35)}
.btn-sm{min-height:42px;padding:0 1.05em;font-size:.95rem}
@media (hover:hover) and (pointer:fine){
  .btn-ember:hover{background:var(--ember-hot);box-shadow:0 14px 28px -12px rgba(0,0,0,.75)}
  .btn-ghost:hover{border-color:var(--ember-hot);background:rgba(255,106,43,.08)}
  .nav a:hover{color:var(--ash)}
}

/* Header */
.top{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;gap:24px;padding:14px var(--gutter);transition:background-color .3s ease,backdrop-filter .3s ease,border-color .3s ease;border-bottom:1px solid transparent}
.top.is-solid{background:rgba(18,12,9,.82);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-color:rgba(255,140,80,.12)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font:900 1.7rem/1 var(--display);letter-spacing:.04em;text-transform:uppercase}
.brand-mark{width:24px;height:24px;color:var(--ember)}
.nav{display:flex;gap:26px;margin-left:auto}
.nav a{text-decoration:none;color:var(--ash-2);font-weight:500;font-size:.98rem;transition:color .2s ease}
.top-actions{display:flex;align-items:center;gap:14px}
.lang{display:flex;border:1px solid rgba(243,232,220,.18);border-radius:999px;padding:3px}
.lang button{font:600 .78rem/1 var(--body);letter-spacing:.06em;color:var(--ash-2);background:none;border:0;border-radius:999px;padding:8px 9px;min-width:34px;cursor:pointer;transition:background-color .2s ease,color .2s ease}
.lang button[aria-pressed="true"]{background:var(--ash);color:var(--coal)}
@media (max-width:960px){.nav{display:none}.top-actions{margin-left:auto}}
@media (max-width:620px){.top .btn-sm{display:none}.lang button{padding:8px 6px;min-width:30px}.brand{font-size:1.45rem}}

/* Hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:120px var(--gutter) clamp(48px,9vh,96px);overflow:hidden;isolation:isolate;
  background:radial-gradient(120% 70% at 50% 115%,#4a1a08 0%,#2a120a 30%,var(--coal) 62%)}
.embers{position:absolute;inset:0;width:100%;height:100%;z-index:-1}
.hero-glow{position:absolute;left:50%;bottom:-30vh;width:140vw;height:60vh;transform:translateX(-50%);z-index:-2;
  background:radial-gradient(closest-side,rgba(255,106,43,.55),rgba(194,65,12,.25) 45%,transparent 75%);filter:blur(20px);animation:breathe 5.5s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.75;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.06)}}
.hero-inner{max-width:var(--max);width:100%;margin:0 auto}
.hero-title{font:900 clamp(4rem,15vw,12.5rem)/.82 var(--display);text-transform:uppercase;letter-spacing:-.01em;margin-bottom:28px}
.hero-title .line{display:block;overflow:hidden;padding-bottom:.04em}
.hero-title .line>span{display:inline-block}
.hero-title .line-2{color:var(--ember)}
.hero-sub{max-width:38ch;font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--ash-2);margin-bottom:30px}
.hero-cta{display:flex;flex-wrap:wrap;gap:12px}
.hero-facts{list-style:none;display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:28px;color:var(--ash-2);font-size:.98rem}
.hero-facts li{display:flex;align-items:center;gap:8px}
.hero-facts svg{width:16px;height:16px;color:var(--ember)}
.status .dot{width:9px;height:9px;border-radius:50%;background:var(--ash-3)}
.status.is-open .dot{background:#7ee08a;box-shadow:0 0 0 4px rgba(126,224,138,.16)}
.status.is-open{color:var(--ash)}
.scroll-cue{position:absolute;right:var(--gutter);bottom:clamp(48px,9vh,96px);display:flex;flex-direction:column;align-items:center;gap:10px;font:600 .75rem/1 var(--body);letter-spacing:.2em;text-transform:uppercase;color:var(--ash-3);writing-mode:vertical-rl}
.scroll-cue i{width:1px;height:56px;background:linear-gradient(var(--ember),transparent);animation:drip 2.2s var(--ease-io) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-width:760px){.scroll-cue{display:none}}

/* Shared */
.h2{font:800 clamp(3rem,8vw,6rem)/.9 var(--display);text-transform:uppercase;letter-spacing:-.005em;text-wrap:balance}
.lead{font-size:clamp(1.1rem,1.5vw,1.25rem);color:var(--ash-2);max-width:46ch}
section{position:relative}

/* Placeholders */
.ph{position:relative;overflow:hidden;border-radius:18px;background:
  radial-gradient(90% 70% at 30% 100%,rgba(255,106,43,.28),transparent 60%),
  repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 2px,transparent 2px 14px),var(--char);
  border:1px solid rgba(255,140,80,.14)}
.ph-glow{position:absolute;inset:auto -20% -40% -20%;height:70%;background:radial-gradient(closest-side,rgba(255,106,43,.35),transparent);filter:blur(10px);transition:opacity .6s ease}
.ph-label{position:absolute;left:16px;bottom:14px;right:16px;font-size:.85rem;color:var(--ash-2);letter-spacing:.02em}
.ph-label b{color:var(--ash);font-weight:600}

/* Del fuego */
.fire{padding:clamp(96px,14vw,180px) var(--gutter) clamp(72px,10vw,140px);max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto}
.fire-head{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;align-items:end;margin-bottom:clamp(48px,7vw,96px)}
.fire-body{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(32px,5vw,80px)}
.fire-visual{position:relative}
.ph-dish{position:sticky;top:110px;aspect-ratio:4/5;width:100%}
.dishes{list-style:none;counter-reset:d}
.dish{position:relative;padding:28px 0 30px 64px;border-top:1px solid var(--rule);counter-increment:d;transition:opacity .5s var(--ease-out)}
.dish:last-child{border-bottom:1px solid var(--rule)}
.dish::before{content:counter(d);position:absolute;left:0;top:30px;font:800 2.2rem/1 var(--display);color:var(--ash-3);transition:color .5s ease,text-shadow .5s ease}
.dish h3{font:800 clamp(2.1rem,4.6vw,3.6rem)/.95 var(--display);text-transform:uppercase;color:var(--ash-3);transition:color .5s ease,text-shadow .5s ease}
.dish p{margin-top:10px;max-width:42ch;color:var(--ash-3);transition:color .5s ease}
.dish.is-lit h3{color:var(--ash);text-shadow:0 0 30px rgba(255,106,43,.35)}
.dish.is-lit::before{color:var(--ember);text-shadow:0 0 18px rgba(255,106,43,.6)}
.dish.is-lit p{color:var(--ash-2)}
.no-js .dish h3,.no-js .dish p{color:var(--ash)}
@media (max-width:860px){
  .fire-head{grid-template-columns:1fr}
  .fire-body{grid-template-columns:1fr}
  .fire-visual{position:sticky;top:76px;z-index:2;margin:0 calc(var(--gutter)*-1);padding:0 var(--gutter) 12px;background:linear-gradient(var(--coal) 80%,transparent)}
  .ph-dish{position:relative;top:0;aspect-ratio:16/9;max-height:34vh}
  .dish{padding-left:48px}.dish::before{font-size:1.7rem}
}

/* Olla y mar */
.pot{background:linear-gradient(180deg,var(--coal),var(--soot) 18%,var(--soot) 82%,var(--coal));padding:clamp(88px,12vw,160px) var(--gutter)}
.pot-inner{max-width:var(--max);margin:0 auto}
.pot .lead{margin-top:20px}
.pot-list{margin-top:clamp(40px,6vw,72px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:0 56px}
.pot-list>div{padding:22px 0;border-top:1px solid var(--rule)}
.pot-list dt{font:800 1.9rem/1 var(--display);text-transform:uppercase;letter-spacing:.01em}
.pot-list dd{color:var(--ash-2);margin-top:8px;max-width:40ch}
.note{display:flex;gap:10px;align-items:flex-start;margin-top:36px;color:var(--ash-2);font-size:.98rem;max-width:70ch}
.note svg{width:20px;height:20px;flex:none;color:var(--ember);margin-top:2px}

/* Para terminar */
.sweet{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center;max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:clamp(88px,12vw,160px) var(--gutter)}
.ph-sweet{aspect-ratio:1/1;border-radius:50%;max-width:480px;width:100%;justify-self:center}
.ph-sweet .ph-label{text-align:center;bottom:22%}
.sweet .lead{margin-top:20px}
@media (max-width:760px){.sweet{grid-template-columns:1fr}.ph-sweet{max-width:300px}}

/* La casa */
.place{max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:clamp(48px,8vw,120px) var(--gutter) clamp(88px,12vw,160px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(32px,6vw,96px);align-items:center}
.place-photos{display:grid;grid-template-columns:3fr 2fr;gap:16px;align-items:end}
.ph-wide{aspect-ratio:4/5}
.ph-tall{aspect-ratio:3/5;margin-bottom:-48px}
.place-copy p{margin-top:18px;color:var(--ash-2);max-width:44ch}
.place-copy .h2{margin-bottom:10px}
.proof{display:flex;flex-wrap:wrap;align-items:center;gap:12px;color:var(--ash)!important;font-weight:600}
.stars{display:flex;gap:2px;color:var(--ember)}
.stars svg{width:18px;height:18px}
.stars .half{clip-path:inset(0 50% 0 0)}
@media (max-width:860px){.place{grid-template-columns:1fr}.ph-tall{margin-bottom:0}}

/* Visita */
.visit{max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:clamp(72px,10vw,140px) var(--gutter)}
.visit-grid{display:grid;grid-template-columns:1fr 1fr 1.2fr;gap:clamp(28px,4vw,56px);margin-top:clamp(40px,6vw,72px)}
.visit h3{font:800 1.6rem/1 var(--display);text-transform:uppercase;letter-spacing:.03em;color:var(--ember);margin-bottom:18px}
.hours-table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.hours-table td{padding:10px 0;border-bottom:1px solid rgba(243,232,220,.09)}
.hours-table td:last-child{text-align:right;color:var(--ash-2)}
.hours-table tr.is-closed td{color:var(--ash-3)}
.hours-table tr.is-today td{color:var(--ash);font-weight:700}
.hours-table tr.is-today td:first-child::after{content:attr(data-today);margin-left:8px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;background:var(--ember);color:var(--coal);padding:3px 7px;border-radius:999px;vertical-align:2px}
address{font-style:normal;color:var(--ash-2);line-height:1.7}
.tel-big{display:inline-block;margin:16px 0 8px;font:800 2.4rem/1 var(--display);letter-spacing:.02em;text-decoration:none;color:var(--ash)}
.where .muted{font-size:.95rem}
.where-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.map{position:relative;min-height:340px;border-radius:18px;overflow:hidden;border:1px solid rgba(255,140,80,.14);
  background:
   repeating-radial-gradient(circle at 62% 46%,transparent 0 22px,rgba(255,140,80,.07) 22px 23px),
   linear-gradient(160deg,#21170f,#140d09);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:24px}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.4) contrast(1.05)}
.map-load{display:inline-flex;align-items:center;gap:8px;min-height:48px;padding:0 1.2em;border-radius:999px;background:var(--ash);color:var(--coal);border:0;font:700 1rem/1 var(--body);cursor:pointer;transition:transform 160ms var(--ease-out)}
.map-load:active{transform:scale(.97)}
.map-load svg{width:18px;height:18px}
.map-note{font-size:.85rem;color:var(--ash-3);max-width:30ch}
@media (max-width:980px){.visit-grid{grid-template-columns:1fr 1fr}.map{grid-column:1/-1}}
@media (max-width:640px){.visit-grid{grid-template-columns:1fr}}

/* Final */
.final{min-height:80svh;display:flex;align-items:center;justify-content:center;text-align:center;padding:clamp(88px,12vw,160px) var(--gutter);overflow:hidden;isolation:isolate;
  background:radial-gradient(90% 60% at 50% 110%,#5a1f08,#2a120a 40%,var(--coal) 75%)}
.final-inner{max-width:900px}
.final-title{font:900 clamp(3.6rem,12vw,9rem)/.85 var(--display);text-transform:uppercase;margin-bottom:24px;text-wrap:balance}
.final .lead{margin:0 auto 34px}
.final .hero-cta{justify-content:center}

/* Footer */
.foot{padding:56px var(--gutter) 120px;border-top:1px solid rgba(255,140,80,.12);text-align:center;color:var(--ash-2);font-size:.95rem}
.foot-brand{font:900 2.4rem/1 var(--display);text-transform:uppercase;letter-spacing:.06em;color:var(--ash);margin-bottom:12px}
.foot p+p{margin-top:6px}
@media (min-width:761px){.foot{padding-bottom:56px}}

/* Dock móvil */
.dock{position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;display:none;gap:10px;padding:8px;border-radius:999px;background:rgba(27,19,14,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid rgba(255,140,80,.18);box-shadow:0 14px 40px -12px rgba(0,0,0,.7);transform:translateY(140%);transition:transform .45s var(--ease-out)}
.dock .btn{min-height:48px}
.dock .btn-ember{flex:1}
.dock .btn-ghost{width:48px;padding:0}
.dock.is-shown{transform:translateY(0)}
@media (max-width:760px){.dock{display:flex}}

/* Motion setup (only when JS animations are active) */
.js-anim .hero-title .line>span{transform:translateY(105%)}
.js-anim .hero-sub,.js-anim .hero-cta,.js-anim .hero-facts{opacity:0;transform:translateY(14px)}

@media (prefers-reduced-motion:reduce){
  .hero-glow,.scroll-cue i{animation:none}
  .dock{transition:none}
  .js-anim .hero-title .line>span,.js-anim .hero-sub,.js-anim .hero-cta,.js-anim .hero-facts{transform:none;opacity:1}
}
