/* ==========================================================================
   BURGERS VS TACOS — hoja de estilos principal
   San Antonio, TX
   --------------------------------------------------------------------------
   1.  Tokens y reset
   2.  Utilidades y tipografía
   3.  Botones
   4.  Navbar
   5.  Hero (video)
   6.  Ticker
   7.  Sobre nosotros
   8.  Ruleta
   9.  Menú
   10. Galería / carrusel
   11. Promociones
   12. Opiniones
   13. Horarios y ubicación
   14. Redes sociales
   15. Footer
   16. Flotantes y lightbox
   17. Animaciones de scroll
   18. Responsive
   ========================================================================== */

/* ==========================================================================
   1. TOKENS Y RESET
   ========================================================================== */
:root{
  /* Marca */
  --ink:      #0A0C10;
  --ink-2:    #11151E;
  --ink-3:    #1A1F2B;
  --navy:     #14305C;
  --orange:   #FF6A13;
  --orange-d: #E1550A;
  --red:      #E0362B;
  --yellow:   #FFC229;
  --cream:    #F7F1E4;
  --white:    #FFFFFF;
  /* Azules del letrero oficial de la fachada */
  --blue:     #1B6FB0;
  --blue-l:   #4FA8E0;
  --wine:     #7C1F2B;

  /* Texto */
  --tx:       #F4F1EA;
  --tx-soft:  rgba(244,241,234,.66);
  --tx-mute:  rgba(244,241,234,.42);

  /* Superficies */
  --glass:    rgba(255,255,255,.055);
  --glass-2:  rgba(255,255,255,.09);
  --line:     rgba(255,255,255,.10);
  --line-2:   rgba(255,255,255,.18);

  /* Sombras */
  --sh-sm: 0 2px 10px rgba(0,0,0,.35);
  --sh-md: 0 14px 38px rgba(0,0,0,.42);
  --sh-lg: 0 30px 80px rgba(0,0,0,.55);
  --sh-glow: 0 12px 40px rgba(255,106,19,.32);

  /* Medidas */
  --nav-h: 76px;
  --r-sm: 10px;
  --r-md: 16px;
  --r-lg: 24px;
  --r-xl: 32px;
  --maxw: 1240px;
  --pad:  clamp(18px, 5vw, 40px);

  /* Curvas */
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-out:  cubic-bezier(.16,1,.3,1);
  --ease-bounce: cubic-bezier(.34,1.56,.64,1);
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
  scroll-padding-top: calc(var(--nav-h) + 12px);
  -webkit-text-size-adjust:100%;
}

body{
  margin:0;
  background:var(--ink);
  color:var(--tx);
  font-family:'Poppins',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-size:clamp(15px,.42vw + 14px,17px);
  line-height:1.68;
  font-weight:400;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img,video,iframe{ max-width:100%; display:block; }
img{ height:auto; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }
ul,ol{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4,p,figure,blockquote{ margin:0; }
address{ font-style:normal; }

svg{ width:1em; height:1em; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
/* Los iconos de marca (Instagram, Facebook…) son de relleno, no de trazo.
   Hay que reponer el fill porque el CSS gana al atributo del SVG. */
svg[fill="currentColor"]{ fill:currentColor; stroke:none; }

::selection{ background:var(--orange); color:#111; }

:focus-visible{
  outline:3px solid var(--yellow);
  outline-offset:3px;
  border-radius:4px;
}

/* Scrollbar */
::-webkit-scrollbar{ width:11px; height:11px; }
::-webkit-scrollbar-track{ background:var(--ink); }
::-webkit-scrollbar-thumb{ background:#2A3140; border-radius:8px; border:3px solid var(--ink); }
::-webkit-scrollbar-thumb:hover{ background:var(--orange); }


/* ==========================================================================
   2. UTILIDADES Y TIPOGRAFÍA
   ========================================================================== */
.container{
  width:100%;
  max-width:var(--maxw);
  margin-inline:auto;
  padding-inline:var(--pad);
}

.sr-only{
  position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0;
}

.skip-link{
  position:fixed; top:-100px; left:16px; z-index:2000;
  background:var(--orange); color:#111; font-weight:700;
  padding:12px 20px; border-radius:0 0 var(--r-sm) var(--r-sm);
  transition:top .25s var(--ease);
}
.skip-link:focus{ top:0; }

.section{
  position:relative;
  padding:clamp(72px,9vw,132px) 0;
}
.section:nth-of-type(even){ background:var(--ink-2); }

.section__head{
  max-width:720px;
  margin:0 auto clamp(40px,5vw,64px);
  text-align:center;
}

.eyebrow{
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:.72rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:var(--orange);
  margin-bottom:14px;
}
.eyebrow::before{ content:"— "; color:var(--tx-mute); }

.h2{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:clamp(2.6rem,6.4vw,5rem);
  line-height:.92;
  letter-spacing:.012em;
  text-transform:uppercase;
}
.h2--sm{ font-size:clamp(2rem,3.6vw,2.9rem); }

.hl{
  position:relative;
  color:var(--orange);
  white-space:nowrap;
}
.hl::after{
  content:"";
  position:absolute; left:0; right:0; bottom:.06em; height:.1em;
  background:var(--yellow);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .7s var(--ease-out) .25s;
}
[data-reveal].is-in .hl::after,
.is-in .hl::after{ transform:scaleX(1); }

.section__lead{
  margin-top:18px;
  color:var(--tx-soft);
  font-size:1.02rem;
}
.section__lead a{ color:var(--orange); font-weight:600; }
.section__lead a:hover{ color:var(--yellow); }
.section__lead--warn{
  display:inline-block;
  background:rgba(255,194,41,.09);
  border:1px dashed rgba(255,194,41,.4);
  border-radius:var(--r-md);
  padding:12px 20px;
  font-size:.92rem;
  color:rgba(255,214,120,.9);
}

.chip{
  display:inline-block;
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:100px;
  padding:7px 16px;
  font-size:.84rem;
  font-weight:500;
  backdrop-filter:blur(8px);
}


/* ==========================================================================
   3. BOTONES
   ========================================================================== */
.btn{
  --btn-bg:var(--orange);
  position:relative;
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding:14px 28px;
  border-radius:100px;
  font-family:'Montserrat',sans-serif;
  font-weight:900;
  font-size:.86rem;
  letter-spacing:.07em;
  text-transform:uppercase;
  white-space:nowrap;
  cursor:pointer;
  overflow:hidden;
  transition:transform .3s var(--ease-bounce), box-shadow .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.btn svg{ width:1.15em; height:1.15em; }

.btn--primary{
  background:var(--btn-bg);
  color:#12100C;
  box-shadow:var(--sh-glow);
}
.btn--primary::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(100deg,transparent 20%,rgba(255,255,255,.55) 50%,transparent 80%);
  transform:translateX(-120%);
  transition:transform .7s var(--ease);
}
.btn--primary:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 46px rgba(255,106,19,.48);
  background:var(--yellow);
}
.btn--primary:hover::before{ transform:translateX(120%); }

.btn--ghost{
  background:var(--glass);
  color:var(--tx);
  border:1.5px solid var(--line-2);
  backdrop-filter:blur(12px);
}
.btn--ghost:hover{
  transform:translateY(-3px);
  background:var(--glass-2);
  border-color:var(--orange);
  color:var(--orange);
}

.btn:active{ transform:translateY(-1px) scale(.98); }

.btn--lg{ padding:17px 36px; font-size:.94rem; }
.btn--sm{ padding:10px 20px; font-size:.76rem; }


/* ==========================================================================
   4. NAVBAR
   ========================================================================== */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:900;
  height:var(--nav-h);
  display:flex; align-items:center;
  transition:background .4s var(--ease), backdrop-filter .4s var(--ease),
             box-shadow .4s var(--ease), height .4s var(--ease), border-color .4s var(--ease);
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  height:64px;
  background:rgba(10,12,16,.82);
  backdrop-filter:blur(18px) saturate(140%);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  border-bottom-color:var(--line);
  box-shadow:0 10px 40px rgba(0,0,0,.4);
}

.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:24px; }

.nav__brand{
  display:flex; align-items:center; gap:9px;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.42rem;
  line-height:1;
  letter-spacing:.045em;
  white-space:nowrap;
  flex-shrink:0;
}
.nav__brand-vs{
  background:var(--orange); color:#12100C;
  font-size:.74em; padding:3px 8px 1px; border-radius:5px;
  transform:rotate(-6deg);
  transition:transform .35s var(--ease-bounce), background .3s var(--ease);
}
.nav__brand:hover .nav__brand-vs{ transform:rotate(6deg) scale(1.12); background:var(--yellow); }

.nav__links{ display:flex; align-items:center; gap:6px; }
.nav__links > a:not(.btn){
  position:relative;
  padding:8px 13px;
  font-size:.9rem;
  font-weight:500;
  color:var(--tx-soft);
  border-radius:8px;
  transition:color .25s var(--ease);
}
.nav__links > a:not(.btn)::after{
  content:"";
  position:absolute; left:13px; right:13px; bottom:2px; height:2px;
  background:var(--orange);
  transform:scaleX(0); transform-origin:right;
  transition:transform .32s var(--ease-out);
}
.nav__links > a:not(.btn):hover{ color:var(--white); }
.nav__links > a:not(.btn):hover::after{ transform:scaleX(1); transform-origin:left; }
.nav__links > a.is-current{ color:var(--white); }
.nav__links > a.is-current::after{ transform:scaleX(1); }
.nav__cta{ margin-left:10px; }

.nav__toggle{
  display:none;
  width:44px; height:44px;
  border-radius:12px;
  border:1px solid var(--line);
  background:var(--glass);
  backdrop-filter:blur(10px);
  padding:12px 11px;
  flex-direction:column; justify-content:space-between;
}
.nav__toggle span{
  display:block; height:2px; width:100%;
  background:var(--tx); border-radius:2px;
  transition:transform .35s var(--ease), opacity .2s var(--ease);
}
.nav__toggle[aria-expanded="true"] span:nth-child(1){ transform:translateY(9px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.nav__toggle[aria-expanded="true"] span:nth-child(3){ transform:translateY(-9px) rotate(-45deg); }

.lang-toggle{
  display:flex; align-items:center; gap:2px;
  margin-left:14px;
  padding:3px;
  border-radius:100px;
  background:var(--glass);
  border:1px solid var(--line);
  backdrop-filter:blur(10px);
  flex-shrink:0;
}
.lang-toggle button{
  padding:6px 13px;
  border-radius:100px;
  font-family:'Montserrat',sans-serif;
  font-weight:700;
  font-size:.72rem;
  letter-spacing:.05em;
  color:var(--tx-soft);
  transition:background .25s var(--ease), color .25s var(--ease);
}
.lang-toggle button:hover{ color:var(--white); }
.lang-toggle button.is-active{
  background:var(--orange);
  color:#12100C;
}


/* ==========================================================================
   5. HERO
   ========================================================================== */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding:calc(var(--nav-h) + 40px) 0 90px;
  overflow:hidden;
}

.hero__media{ position:absolute; inset:-8% 0 -8%; z-index:0; will-change:transform; }

.hero__video{
  width:100%; height:100%;
  object-fit:cover;
  object-position:center 42%;
  filter:saturate(1.12) contrast(1.06);
}

.hero__scrim{
  position:absolute; inset:0;
  background:
    linear-gradient(to right, rgba(10,12,16,.94) 0%, rgba(10,12,16,.78) 42%, rgba(10,12,16,.34) 72%, rgba(10,12,16,.6) 100%),
    linear-gradient(to top, var(--ink) 2%, rgba(10,12,16,.15) 45%, rgba(10,12,16,.55) 100%);
}
.hero__grain{
  position:absolute; inset:0;
  background-image:radial-gradient(rgba(255,255,255,.05) 1px, transparent 1px);
  background-size:3px 3px;
  opacity:.5; mix-blend-mode:overlay;
}

.hero__content{ position:relative; z-index:2; max-width:820px; }

.hero__kicker{
  display:inline-flex; align-items:center; gap:10px;
  background:var(--glass);
  border:1px solid var(--line-2);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-radius:100px;
  padding:8px 18px;
  font-family:'Montserrat',sans-serif;
  font-weight:700; font-size:.74rem;
  letter-spacing:.15em; text-transform:uppercase;
  color:var(--cream);
  margin-bottom:22px;
}
.dot{
  width:8px; height:8px; border-radius:50%;
  background:#3BD16F;
  box-shadow:0 0 0 0 rgba(59,209,111,.7);
  animation:pulse 2.2s infinite;
}
@keyframes pulse{
  70%{ box-shadow:0 0 0 12px rgba(59,209,111,0); }
  100%{ box-shadow:0 0 0 0 rgba(59,209,111,0); }
}

.hero__title{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:clamp(3.6rem,13vw,9.5rem);
  line-height:.82;
  letter-spacing:.01em;
  text-transform:uppercase;
  display:flex; flex-direction:column;
  margin-bottom:6px;
}
.hero__word{
  display:block;
  background:linear-gradient(180deg,#fff 30%,#CFC9BC 100%);
  -webkit-background-clip:text; background-clip:text;
  color:transparent;
  text-shadow:0 18px 60px rgba(0,0,0,.5);
}
.hero__word--tacos{
  background:linear-gradient(180deg,var(--yellow) 10%,var(--orange) 65%,var(--red) 105%);
  -webkit-background-clip:text; background-clip:text;
  margin-left:clamp(30px,9vw,120px);
}
.hero__vs{
  align-self:flex-start;
  margin:.06em 0 .06em clamp(4px,2vw,26px);
  background:var(--red);
  color:var(--white);
  font-size:.26em;
  line-height:1;
  padding:.16em .42em .1em;
  border-radius:8px;
  transform:rotate(-4deg);
  box-shadow:0 10px 28px rgba(224,54,43,.45);
  animation:vsWobble 4.5s var(--ease) infinite;
}
@keyframes vsWobble{
  0%,100%{ transform:rotate(-4deg) scale(1); }
  50%    { transform:rotate(3deg) scale(1.05); }
}

.hero__sub{
  max-width:520px;
  margin:26px 0 34px;
  font-size:clamp(1rem,1.1vw + .7rem,1.18rem);
  color:rgba(255,255,255,.82);
  text-shadow:0 2px 18px rgba(0,0,0,.6);
}
.hero__sub strong{ color:var(--yellow); font-weight:600; }

.hero__actions{ display:flex; flex-wrap:wrap; gap:14px; }

.hero__facts{
  display:flex; flex-wrap:wrap; gap:clamp(18px,4vw,44px);
  margin-top:44px;
  padding-top:26px;
  border-top:1px solid var(--line);
}
.hero__facts li{
  font-family:'Montserrat',sans-serif;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase;
  color:var(--tx-mute); font-weight:700;
}
.hero__facts strong{
  display:block;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.9rem; letter-spacing:.02em;
  color:var(--white);
  font-weight:400;
}

.hero__scroll{
  position:absolute; left:50%; bottom:26px; z-index:3;
  transform:translateX(-50%);
  width:26px; height:46px;
  border:2px solid var(--line-2);
  border-radius:100px;
  display:grid; place-items:start center;
  padding-top:8px;
}
.hero__scroll-line{
  width:3px; height:9px; border-radius:3px;
  background:var(--orange);
  animation:scrollCue 1.9s var(--ease) infinite;
}
@keyframes scrollCue{
  0%  { transform:translateY(0);    opacity:0; }
  35% { opacity:1; }
  100%{ transform:translateY(18px); opacity:0; }
}


/* ==========================================================================
   6. TICKER
   ========================================================================== */
.ticker{
  background:var(--orange);
  color:#12100C;
  padding:13px 0;
  overflow:hidden;
  border-block:2px solid rgba(0,0,0,.16);
}
.ticker__track{
  display:flex; align-items:center; gap:28px;
  width:max-content;
  animation:tick 34s linear infinite;
}
.ticker__track span{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.25rem; letter-spacing:.09em; white-space:nowrap;
}
.ticker__track i{ font-style:normal; font-size:.72rem; opacity:.55; }
@keyframes tick{ to{ transform:translateX(-50%); } }


/* ==========================================================================
   7. SOBRE NOSOTROS
   ========================================================================== */
.about__grid{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  gap:clamp(36px,6vw,84px);
  align-items:center;
}
.about__copy p{ color:var(--tx-soft); margin-top:18px; }
.about__copy p strong{ color:var(--tx); font-weight:600; }
.about__copy .h2{ margin-bottom:8px; }
.about__badges{ display:flex; flex-wrap:wrap; gap:10px; margin-top:30px; }

.about__media{
  position:relative;
  display:grid;
  grid-template-columns:1fr 1fr;
  grid-template-rows:auto auto;
  gap:16px;
}
.about__shot{
  overflow:hidden;
  border-radius:var(--r-lg);
  border:1px solid var(--line);
  box-shadow:var(--sh-md);
}
.about__shot img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .9s var(--ease-out);
}
.about__shot:hover img{ transform:scale(1.06); }
.about__shot--a{ grid-column:1 / -1; aspect-ratio:16/10; }
.about__shot--b{ aspect-ratio:4/5; }
.about__shot--c{ aspect-ratio:4/5; }

.about__stamp{
  position:absolute; right:-14px; top:-24px;
  width:96px; height:96px;
  display:grid; place-content:center; text-align:center;
  border-radius:50%;
  background:var(--red);
  color:var(--white);
  box-shadow:0 14px 34px rgba(224,54,43,.42);
  transform:rotate(-12deg);
  font-family:'Bebas Neue',Impact,sans-serif;
  line-height:1;
}
.about__stamp span{ font-size:.7rem; letter-spacing:.2em; opacity:.85; }
.about__stamp strong{ display:block; font-size:1.6rem; font-weight:400; letter-spacing:.04em; }


/* ==========================================================================
   8. RULETA
   ========================================================================== */
.roulette{
  background:
    radial-gradient(900px 520px at 12% 0%, rgba(255,106,19,.13), transparent 62%),
    radial-gradient(760px 480px at 90% 100%, rgba(224,54,43,.12), transparent 60%),
    var(--ink-2);
}

.roulette__stage{
  display:grid;
  grid-template-columns:minmax(300px,470px) 1fr;
  gap:clamp(34px,5vw,72px);
  align-items:center;
}

.roulette__wheel-wrap{
  position:relative;
  aspect-ratio:1;
  display:grid; place-items:center;
  filter:drop-shadow(0 30px 60px rgba(0,0,0,.55));
}

.roulette__wheel{
  width:100%; height:100%;
  border-radius:50%;
  transition:transform 5.2s cubic-bezier(.13,.86,.14,1);
  will-change:transform;
}
.roulette__wheel svg{ width:100%; height:100%; display:block; stroke:none; }

.roulette__pointer{
  position:absolute; top:-14px; left:50%; z-index:6;
  transform:translateX(-50%);
  transform-origin:50% 12px;
  width:36px; height:52px;
  filter:drop-shadow(0 6px 10px rgba(0,0,0,.65));
}
/* Cabeza redonda + punta que entra en la rueda */
.roulette__pointer::before{
  content:"";
  position:absolute; top:0; left:0;
  width:36px; height:36px; border-radius:50%;
  background:var(--yellow);
  border:4px solid var(--ink);
}
.roulette__pointer::after{
  content:"";
  position:absolute; top:26px; left:50%;
  transform:translateX(-50%);
  width:0; height:0;
  border-left:11px solid transparent;
  border-right:11px solid transparent;
  border-top:24px solid var(--yellow);
}
.roulette__wheel-wrap.is-spinning .roulette__pointer{ animation:tickTick .1s linear infinite; }
@keyframes tickTick{
  0%,100%{ transform:translateX(-50%) rotate(0deg); }
  50%    { transform:translateX(-50%) rotate(-9deg); }
}

.roulette__hub{
  position:absolute; z-index:5;
  width:27%; aspect-ratio:1;
  border-radius:50%;
  background:radial-gradient(circle at 35% 30%, #FF8A3D, var(--orange) 45%, var(--orange-d));
  color:#12100C;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:clamp(1rem,2.2vw,1.5rem);
  letter-spacing:.09em;
  display:grid; place-items:center;
  border:5px solid var(--ink);
  box-shadow:0 0 0 4px rgba(255,194,41,.55), 0 12px 30px rgba(0,0,0,.5);
  transition:transform .3s var(--ease-bounce), box-shadow .3s var(--ease);
}
.roulette__hub:hover:not(:disabled){
  transform:scale(1.08);
  box-shadow:0 0 0 8px rgba(255,194,41,.35), 0 16px 40px rgba(0,0,0,.55);
}
.roulette__hub:active:not(:disabled){ transform:scale(.95); }
.roulette__hub:disabled{ cursor:progress; opacity:.85; }
.roulette__hub-label{ pointer-events:none; }

/* Tarjeta de resultado */
.rcard{
  display:grid;
  grid-template-columns:190px 1fr;
  gap:0;
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  overflow:hidden;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  box-shadow:var(--sh-md);
  transition:border-color .4s var(--ease), box-shadow .4s var(--ease);
}
.rcard.is-win{
  border-color:rgba(255,194,41,.55);
  box-shadow:0 24px 60px rgba(255,106,19,.24);
  animation:winPop .55s var(--ease-bounce);
}
@keyframes winPop{
  0%{ transform:scale(.96); } 60%{ transform:scale(1.02); } 100%{ transform:scale(1); }
}

.rcard__media{ position:relative; background:var(--ink-3); }
.rcard__media img{ width:100%; height:100%; object-fit:cover; min-height:230px; }
.rcard.is-idle .rcard__media img{ filter:grayscale(1) brightness(.5); transition:filter .6s var(--ease); }
.rcard__price{
  position:absolute; left:14px; bottom:14px;
  background:var(--yellow); color:#12100C;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.4rem; letter-spacing:.03em;
  padding:3px 13px 1px; border-radius:100px;
  box-shadow:var(--sh-sm);
}

.rcard__body{ padding:clamp(22px,3vw,34px); }
.rcard__tag{
  font-family:'Montserrat',sans-serif; font-weight:900;
  font-size:.68rem; letter-spacing:.22em; text-transform:uppercase;
  color:var(--orange); margin-bottom:8px;
}
.rcard__name{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:clamp(1.9rem,3.4vw,2.9rem);
  line-height:1; text-transform:uppercase;
  margin-bottom:12px;
}
.rcard__desc{ color:var(--tx-soft); font-size:.96rem; }
.rcard__actions{ display:flex; flex-wrap:wrap; gap:10px; margin-top:22px; }


/* ==========================================================================
   9. MENÚ
   ========================================================================== */
.menu__tabs{
  display:flex; flex-wrap:wrap; justify-content:center; gap:10px;
  margin-bottom:clamp(34px,4vw,52px);
}
.tab{
  padding:11px 22px;
  border-radius:100px;
  border:1px solid var(--line);
  background:var(--glass);
  backdrop-filter:blur(10px);
  font-family:'Montserrat',sans-serif;
  font-weight:700; font-size:.82rem;
  letter-spacing:.04em;
  color:var(--tx-soft);
  transition:all .3s var(--ease);
}
.tab:hover{ color:var(--white); border-color:var(--line-2); transform:translateY(-2px); }
.tab.is-active{
  background:var(--orange); color:#12100C;
  border-color:var(--orange);
  box-shadow:var(--sh-glow);
}

.menu__panel[hidden]{ display:none; }
.menu__panel{ animation:panelIn .5s var(--ease-out); }
@keyframes panelIn{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }

.menu__subhead{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:clamp(1.6rem,3vw,2.3rem);
  letter-spacing:.04em;
  text-transform:uppercase;
  margin:44px 0 22px;
  padding-bottom:12px;
  border-bottom:2px solid var(--line);
  display:flex; align-items:center; gap:14px;
}
.menu__subhead::after{
  content:""; flex:1; height:2px;
  background:linear-gradient(90deg,var(--orange),transparent);
}
.menu__panel > .menu__subhead:first-child{ margin-top:0; }

.dishes{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(272px,1fr));
  gap:clamp(16px,2vw,24px);
}

.dish{
  position:relative;
  display:flex; flex-direction:column;
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  overflow:hidden;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .45s var(--ease-out), border-color .35s var(--ease), box-shadow .45s var(--ease);
}
.dish::after{
  content:"";
  position:absolute; inset:0;
  border-radius:inherit;
  background:linear-gradient(160deg,rgba(255,106,19,.16),transparent 45%);
  opacity:0; transition:opacity .45s var(--ease);
  pointer-events:none;
}
.dish:hover{
  transform:translateY(-8px);
  border-color:rgba(255,106,19,.5);
  box-shadow:0 26px 56px rgba(0,0,0,.5);
}
.dish:hover::after{ opacity:1; }

.dish__media{
  position:relative;
  aspect-ratio:4/3;
  overflow:hidden;
  background:var(--ink-3);
  display:grid; place-items:center;
}
.dish__media img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .8s var(--ease-out);
}
.dish:hover .dish__media img{ transform:scale(1.08); }

/* Arte generado para los platillos sin foto todavía.
   📸 Para usar una foto real: sustituye el <div class="dish__media" data-art="N">…</div>
   por  <div class="dish__media"><img src="images/menu/archivo.webp" …></div>          */
.dish__media[data-art]{
  --a1:var(--orange);
  --a2:#B32C10;
  background:
    radial-gradient(120% 96% at 24% 12%, rgba(255,194,41,.62), transparent 58%),
    radial-gradient(110% 90% at 84% 88%, rgba(224,54,43,.62), transparent 56%),
    linear-gradient(135deg, var(--a1), var(--a2));
}
/* Trama de puntos + franjas diagonales: guiño al cartel impreso */
.dish__media[data-art]::before{
  content:"";
  position:absolute; inset:-10%;
  background:
    repeating-linear-gradient(45deg, rgba(0,0,0,.14) 0 10px, transparent 10px 26px),
    radial-gradient(rgba(0,0,0,.22) 1.4px, transparent 1.6px);
  background-size:auto, 9px 9px;
  transition:transform .9s var(--ease-out);
}
.dish:hover .dish__media[data-art]::before{ transform:scale(1.12) rotate(3deg); }

/* Variantes de color por platillo */
.dish__media[data-art="2"] { --a1:#F0483A; --a2:#8E1C14; }
.dish__media[data-art="3"] { --a1:#FFA61E; --a2:#C4520A; }
.dish__media[data-art="4"] { --a1:#E0362B; --a2:#6E1710; }
.dish__media[data-art="5"] { --a1:#FFC229; --a2:#C97A06; }
.dish__media[data-art="6"] { --a1:#FF7A2E; --a2:#9E2C0C; }
.dish__media[data-art="7"] { --a1:#F2601C; --a2:#7C1F2B; }
.dish__media[data-art="8"] { --a1:#FFB01C; --a2:#B33C08; }
.dish__media[data-art="9"] { --a1:#E84B22; --a2:#5E1C33; }
.dish__media[data-art="10"]{ --a1:#FFD34D; --a2:#D0430C; }

.dish__emblem{
  position:relative; z-index:2;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:3.6rem; line-height:1;
  color:#FFF6E6;
  -webkit-text-stroke:2px rgba(18,16,12,.72);
  paint-order:stroke fill;
  text-shadow:0 8px 18px rgba(0,0,0,.42);
  transition:transform .5s var(--ease-bounce);
}
.dish:hover .dish__emblem{ transform:scale(1.14) rotate(-5deg); }

.dish__ribbon{
  position:absolute; top:12px; left:12px; z-index:3;
  background:rgba(10,12,16,.72);
  backdrop-filter:blur(8px);
  border:1px solid var(--line-2);
  border-radius:100px;
  padding:4px 12px;
  font-family:'Montserrat',sans-serif;
  font-size:.62rem; font-weight:900;
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--yellow);
}

.dish__body{ padding:20px 22px 24px; flex:1; position:relative; z-index:2; }
.dish__flag{
  display:inline-block;
  background:var(--red); color:#fff;
  font-family:'Montserrat',sans-serif;
  font-size:.6rem; font-weight:900;
  letter-spacing:.16em; text-transform:uppercase;
  padding:4px 10px; border-radius:5px;
  margin-bottom:10px;
}
.dish__name{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:1.55rem;
  line-height:1.06;
  letter-spacing:.02em;
  text-transform:uppercase;
  display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  margin-bottom:9px;
}
.dish__price{
  flex-shrink:0;
  color:var(--yellow);
  font-size:1.3rem;
}
.dish__desc{ color:var(--tx-soft); font-size:.885rem; line-height:1.6; }

.dish--featured{ border-color:rgba(255,194,41,.4); }
.dish--king{
  border-color:rgba(224,54,43,.45);
  background:linear-gradient(150deg, rgba(224,54,43,.12), var(--glass));
}
.dish--king .dish__price{ color:var(--red); }

.allergen{
  display:flex; align-items:center; gap:16px;
  margin-top:34px;
  padding:18px 24px;
  background:rgba(255,194,41,.08);
  border:1px dashed rgba(255,194,41,.42);
  border-radius:var(--r-md);
}
.allergen__icon{ font-size:1.5rem; }
.allergen p{ font-size:.9rem; color:rgba(255,214,120,.92); }
.allergen strong{ color:var(--yellow); }

/* Listas de precios */
.pricelist{
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:clamp(22px,3vw,32px);
  backdrop-filter:blur(10px);
  max-width:560px;
  margin-inline:auto;
}
.pricelist__title{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400; font-size:1.5rem; letter-spacing:.04em;
  text-transform:uppercase; margin-bottom:14px;
}
.pricelist__list li{
  display:flex; align-items:baseline; gap:12px;
  padding:13px 0;
  border-bottom:1px dashed var(--line);
  transition:padding-left .3s var(--ease), color .3s var(--ease);
}
.pricelist__list li:last-child{ border-bottom:0; }
.pricelist__list li:hover{ padding-left:8px; color:var(--white); }
.pricelist__list span{ flex:1; }
.pricelist__list li::after{
  content:""; flex:0 1 auto; min-width:20px;
  border-bottom:1px dotted var(--line-2);
  transform:translateY(-4px);
  order:1;
}
.pricelist__list b{
  order:2;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400; font-size:1.3rem;
  color:var(--yellow);
}

/* Combos */
.combos{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:20px;
  align-items:start;
}
.combos .pricelist{ max-width:none; margin:0; }
.combo{
  position:relative;
  padding:clamp(26px,3vw,36px);
  border-radius:var(--r-lg);
  overflow:hidden;
  background:linear-gradient(150deg,var(--orange),var(--orange-d));
  color:#12100C;
  box-shadow:var(--sh-glow);
  transition:transform .4s var(--ease-out);
}
.combo--alt{ background:linear-gradient(150deg,var(--red),#A4231A); color:#fff; }
.combo:hover{ transform:translateY(-6px) rotate(-.6deg); }
.combo::after{
  content:"";
  position:absolute; right:-30px; bottom:-40px;
  width:150px; height:150px; border-radius:50%;
  background:rgba(255,255,255,.14);
}
.combo__eyebrow{
  font-family:'Montserrat',sans-serif; font-weight:900;
  font-size:.66rem; letter-spacing:.2em; text-transform:uppercase;
  opacity:.75; margin-bottom:8px;
}
.combo__title{
  font-family:'Bebas Neue',Impact,sans-serif; font-weight:400;
  font-size:2.1rem; line-height:1; text-transform:uppercase;
}
.combo__price{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:3.2rem; line-height:1; margin:6px 0 10px;
}
.combo__note{ font-size:.88rem; opacity:.86; position:relative; z-index:2; }


/* ==========================================================================
   10. GALERÍA / CARRUSEL
   ========================================================================== */
.carousel{ position:relative; }

.carousel__viewport{
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  scrollbar-width:none;
  -ms-overflow-style:none;
  padding-block:6px 22px;
  scroll-padding-inline:var(--pad);
}
.carousel__viewport::-webkit-scrollbar{ display:none; }

.carousel__track{
  display:flex;
  gap:clamp(12px,1.6vw,20px);
  padding-inline:var(--pad);
  width:max-content;
}

.slide{ scroll-snap-align:center; }
.slide__btn{
  position:relative;
  display:block;
  width:clamp(230px,30vw,340px);
  aspect-ratio:3/4;
  border-radius:var(--r-lg);
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--ink-3);
  box-shadow:var(--sh-md);
  transition:transform .5s var(--ease-out), box-shadow .5s var(--ease), border-color .35s var(--ease);
}
.slide__btn img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .9s var(--ease-out), filter .5s var(--ease);
  filter:saturate(.94) brightness(.92);
}
.slide__btn::after{
  content:"";
  position:absolute; inset:auto 0 0 0; height:55%;
  background:linear-gradient(to top,rgba(10,12,16,.92),transparent);
  transition:opacity .4s var(--ease);
}
.slide__btn:hover{
  transform:translateY(-10px);
  border-color:rgba(255,106,19,.55);
  box-shadow:0 30px 64px rgba(0,0,0,.6);
}
.slide__btn:hover img{ transform:scale(1.08); filter:saturate(1.12) brightness(1); }

.slide__cap{
  position:absolute; z-index:2; left:18px; right:18px; bottom:16px;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.28rem; letter-spacing:.05em;
  text-transform:uppercase;
  text-align:left;
  color:var(--white);
  transform:translateY(4px);
  transition:transform .4s var(--ease-out), color .3s var(--ease);
}
.slide__btn:hover .slide__cap{ transform:translateY(0); color:var(--yellow); }

.carousel__nav{
  position:absolute; top:50%; z-index:6;
  transform:translateY(-50%);
  width:52px; height:52px;
  display:grid; place-items:center;
  border-radius:50%;
  background:rgba(10,12,16,.68);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--line-2);
  color:var(--white);
  transition:all .3s var(--ease);
}
.carousel__nav svg{ width:22px; height:22px; }
.carousel__nav:hover{ background:var(--orange); color:#12100C; border-color:var(--orange); transform:translateY(-50%) scale(1.1); }
.carousel__nav--prev{ left:clamp(8px,2vw,26px); }
.carousel__nav--next{ right:clamp(8px,2vw,26px); }
.carousel__nav[disabled]{ opacity:.28; pointer-events:none; }

.carousel__dots{
  display:flex; justify-content:center; gap:8px;
  margin-top:22px;
}
.carousel__dots button{
  width:9px; height:9px; border-radius:50%;
  background:var(--line-2);
  transition:all .3s var(--ease);
}
.carousel__dots button.is-on{ background:var(--orange); width:28px; border-radius:100px; }


/* ==========================================================================
   10B. CARRUSEL CINEMÁTICO DE LA FACHADA
   Segundo carrusel, distinto al de la galería: una foto a la vez,
   fundido con efecto Ken Burns, miniaturas y autoplay con barra de progreso.
   ========================================================================== */
.facade{
  background:
    radial-gradient(900px 500px at 80% 0%, rgba(27,111,176,.16), transparent 62%),
    var(--ink);
}
.facade .hl{ color:var(--blue-l); }
.facade .hl::after{ background:var(--blue); }

.cine{
  max-width:1180px;
  margin-inline:auto;
  padding-inline:var(--pad);
}

.cine__frame{
  position:relative;
  aspect-ratio:16/9;
  border-radius:var(--r-xl);
  overflow:hidden;
  background:var(--ink-3);
  border:1px solid var(--line);
  box-shadow:var(--sh-lg);
}

.cine__stage{ position:absolute; inset:0; }

.cshot{
  position:absolute; inset:0;
  opacity:0;
  transition:opacity 1s var(--ease);
  pointer-events:none;
}
.cshot.is-on{ opacity:1; pointer-events:auto; }
.cshot img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:var(--focus,center 50%);
  transform:scale(1.04);
}
/* Ken Burns solo en la foto visible */
.cshot.is-on img{ animation:kenburns 9s var(--ease) forwards; }
@keyframes kenburns{
  from{ transform:scale(1.02); }
  to  { transform:scale(1.12); }
}

.cine__scrim{
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(8,10,14,.9) 0%, rgba(8,10,14,.24) 38%, transparent 62%);
  pointer-events:none;
}

.cine__hud{
  position:absolute; inset:auto 0 0 0;
  padding:clamp(18px,3vw,32px);
  display:grid;
  grid-template-columns:1fr auto;
  align-items:end;
  gap:16px 20px;
}
.cine__cap{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:clamp(1.2rem,2.6vw,2rem);
  line-height:1.05;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--white);
  text-shadow:0 4px 24px rgba(0,0,0,.7);
  animation:capIn .6s var(--ease-out);
}
@keyframes capIn{ from{ opacity:0; transform:translateY(10px); } }

.cine__ctrl{ display:flex; align-items:center; gap:8px; }
.cine__btn{
  width:44px; height:44px;
  display:grid; place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.1);
  border:1px solid var(--line-2);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--white);
  transition:all .3s var(--ease);
}
.cine__btn svg{ width:19px; height:19px; }
.cine__btn:hover{ background:var(--blue); border-color:var(--blue-l); transform:scale(1.1); }
.cine__count{
  font-family:'Montserrat',sans-serif;
  font-size:.76rem; font-weight:700; letter-spacing:.12em;
  color:rgba(255,255,255,.6);
  padding-inline:6px;
  min-width:58px; text-align:center;
}
.cine__count b{ color:var(--white); font-weight:900; }

.cine__btn--play .ico-play{ display:none; }
.cine__btn--play[aria-pressed="false"] .ico-pause{ display:none; }
.cine__btn--play[aria-pressed="false"] .ico-play{ display:block; }

.cine__bar{
  grid-column:1 / -1;
  height:3px; border-radius:3px;
  background:rgba(255,255,255,.16);
  overflow:hidden;
}
.cine__bar i{
  display:block; height:100%; width:0;
  background:linear-gradient(90deg,var(--blue-l),var(--orange));
  border-radius:3px;
}
.cine__bar i.is-running{ animation:cineBar var(--cine-dur,6s) linear forwards; }
@keyframes cineBar{ from{ width:0; } to{ width:100%; } }

.cine__thumbs{
  display:flex; gap:10px;
  margin-top:16px;
  overflow-x:auto;
  padding-bottom:8px;
  scrollbar-width:none;
}
.cine__thumbs::-webkit-scrollbar{ display:none; }
.cthumb{
  position:relative;
  flex:0 0 auto;
  width:clamp(84px,11vw,118px);
  aspect-ratio:4/3;
  border-radius:12px;
  overflow:hidden;
  border:2px solid transparent;
  opacity:.5;
  transition:all .35s var(--ease);
}
.cthumb img{ width:100%; height:100%; object-fit:cover; }
.cthumb:hover{ opacity:.85; transform:translateY(-3px); }
.cthumb.is-on{
  opacity:1;
  border-color:var(--orange);
  box-shadow:0 8px 24px rgba(255,106,19,.35);
}


/* ==========================================================================
   11. PROMOCIONES
   ========================================================================== */
.promo-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:clamp(18px,2.4vw,26px);
}
.promo{
  position:relative;
  padding:clamp(28px,3.4vw,40px);
  border-radius:var(--r-xl);
  overflow:hidden;
  background:var(--glass);
  border:1px solid var(--line);
  backdrop-filter:blur(10px);
  transition:transform .45s var(--ease-out), border-color .35s var(--ease), box-shadow .45s var(--ease);
}
.promo::before{
  content:"";
  position:absolute; inset:0;
  opacity:.16;
  background:
    repeating-linear-gradient(-45deg, currentColor 0 8px, transparent 8px 26px);
  mask-image:linear-gradient(to bottom left,#000,transparent 62%);
  -webkit-mask-image:linear-gradient(to bottom left,#000,transparent 62%);
  pointer-events:none;
}
.promo--a{ color:var(--orange); }
.promo--b{ color:var(--yellow); }
.promo--c{ color:var(--red); }
.promo:hover{
  transform:translateY(-8px);
  border-color:currentColor;
  box-shadow:0 26px 58px rgba(0,0,0,.5);
}
.promo.is-off{ display:none; }

.promo__tag{
  display:inline-block;
  background:rgba(255,255,255,.09);
  border:1px dashed var(--line-2);
  border-radius:100px;
  padding:4px 12px;
  font-family:'Montserrat',sans-serif;
  font-size:.62rem; font-weight:900;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--tx-mute);
  margin-bottom:16px;
}
.promo__title{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400;
  font-size:clamp(1.9rem,3vw,2.5rem);
  line-height:1; text-transform:uppercase;
  color:var(--tx);
  margin-bottom:12px;
}
.promo__desc{ color:var(--tx-soft); font-size:.93rem; }
.promo__meta{
  margin-top:18px;
  font-size:.76rem; letter-spacing:.06em; text-transform:uppercase;
  color:var(--tx-mute);
}
.promo__link{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:16px;
  font-family:'Montserrat',sans-serif;
  font-weight:900; font-size:.76rem;
  letter-spacing:.1em; text-transform:uppercase;
  color:currentColor;
  position:relative; z-index:2;
}
.promo__link::after{ content:"→"; transition:transform .3s var(--ease); }
.promo__link:hover::after{ transform:translateX(6px); }


/* ==========================================================================
   12. OPINIONES
   ========================================================================== */
.reviews__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(285px,1fr));
  gap:clamp(18px,2.4vw,26px);
}
.review{
  position:relative;
  padding:clamp(26px,3vw,36px);
  border-radius:var(--r-xl);
  background:var(--glass);
  border:1px solid var(--line);
  backdrop-filter:blur(10px);
  transition:transform .45s var(--ease-out), border-color .35s var(--ease);
}
.review::before{
  content:"”";
  position:absolute; top:6px; right:22px;
  font-family:'Bebas Neue',Impact,serif;
  font-size:6rem; line-height:1;
  color:var(--orange); opacity:.16;
}
.review:hover{ transform:translateY(-6px); border-color:rgba(255,106,19,.42); }
.review__stars{ color:var(--yellow); letter-spacing:.14em; font-size:1.02rem; margin-bottom:14px; }
.review blockquote{ color:var(--tx-soft); font-size:.98rem; font-style:italic; }
.review figcaption{
  display:flex; align-items:center; gap:14px;
  margin-top:24px; padding-top:18px;
  border-top:1px solid var(--line);
}
.review__avatar{
  width:42px; height:42px; flex-shrink:0;
  display:grid; place-items:center;
  border-radius:50%;
  background:linear-gradient(140deg,var(--orange),var(--red));
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.25rem; color:#12100C;
}
.review figcaption b{ display:block; font-size:.9rem; font-weight:600; }
.review figcaption small{ color:var(--tx-mute); font-size:.76rem; }


/* ==========================================================================
   13. HORARIOS Y UBICACIÓN
   ========================================================================== */
.visit__grid{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:clamp(32px,5vw,68px);
  align-items:start;
}

.hours .h2{ margin-bottom:16px; }
.hours__note{
  display:inline-flex; align-items:center; gap:9px;
  background:var(--glass);
  border:1px solid var(--line);
  border-radius:100px;
  padding:8px 18px;
  font-size:.84rem; font-weight:600;
  margin-bottom:22px;
}
.hours__note::before{
  content:""; width:9px; height:9px; border-radius:50%;
  background:var(--tx-mute);
}
.hours__note.is-open{ color:#7BE8A4; border-color:rgba(123,232,164,.35); }
.hours__note.is-open::before{ background:#3BD16F; box-shadow:0 0 0 0 rgba(59,209,111,.7); animation:pulse 2.2s infinite; }
.hours__note.is-closed{ color:#FF9C93; border-color:rgba(255,156,147,.32); }
.hours__note.is-closed::before{ background:var(--red); }

.hours__list li{
  display:flex; align-items:baseline; justify-content:space-between; gap:16px;
  padding:14px 16px;
  border-radius:12px;
  border-bottom:1px solid var(--line);
  transition:background .3s var(--ease), transform .3s var(--ease);
}
.hours__list li:last-child{ border-bottom:0; }
.hours__list li:hover{ background:var(--glass); transform:translateX(4px); }
.hours__list li.is-today{
  background:linear-gradient(90deg,rgba(255,106,19,.16),transparent);
  border-bottom-color:rgba(255,106,19,.3);
}
.hours__list li.is-today span::after{
  content:"HOY";
  margin-left:10px;
  background:var(--orange); color:#12100C;
  font-family:'Montserrat',sans-serif;
  font-size:.56rem; font-weight:900; letter-spacing:.14em;
  padding:3px 7px; border-radius:4px;
  vertical-align:middle;
}
.hours__list span{ font-weight:500; }
.hours__list b{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-weight:400; font-size:1.16rem; letter-spacing:.03em;
  color:var(--yellow);
}
.hours__small{ margin-top:18px; font-size:.78rem; color:var(--tx-mute); }

.place .h2{ margin-bottom:16px; }
.place__address{
  font-size:1.06rem; color:var(--tx-soft);
  padding-left:18px;
  border-left:3px solid var(--orange);
  margin-bottom:22px;
}
.place__actions{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:26px; }
.place__map{
  border-radius:var(--r-lg);
  overflow:hidden;
  border:1px solid var(--line);
  box-shadow:var(--sh-md);
  filter:grayscale(.35) contrast(1.06);
  transition:filter .5s var(--ease);
}
.place__map:hover{ filter:none; }
.place__map iframe{ display:block; }


/* ==========================================================================
   14. REDES SOCIALES
   ========================================================================== */
.social__grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:clamp(14px,2vw,20px);
}
.sbtn{
  position:relative;
  display:flex; flex-direction:column; align-items:flex-start; gap:2px;
  padding:clamp(24px,3vw,32px);
  border-radius:var(--r-xl);
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--glass);
  backdrop-filter:blur(10px);
  transition:transform .45s var(--ease-out), box-shadow .45s var(--ease), border-color .35s var(--ease);
}
.sbtn svg{ width:34px; height:34px; margin-bottom:16px; transition:transform .45s var(--ease-bounce); }
.sbtn__t{
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.7rem; letter-spacing:.04em; text-transform:uppercase;
}
.sbtn__s{ font-size:.82rem; color:var(--tx-mute); }
.sbtn::after{
  content:"";
  position:absolute; inset:0;
  background:var(--sbtn-grad,linear-gradient(140deg,var(--orange),var(--red)));
  opacity:0; transition:opacity .4s var(--ease);
  z-index:-1;
}
.sbtn:hover{ transform:translateY(-8px); border-color:transparent; box-shadow:0 26px 58px rgba(0,0,0,.5); }
.sbtn:hover::after{ opacity:1; }
.sbtn:hover svg{ transform:scale(1.16) rotate(-7deg); }
.sbtn:hover .sbtn__s{ color:rgba(255,255,255,.86); }

.sbtn--ig{ --sbtn-grad:linear-gradient(140deg,#833AB4,#E1306C 55%,#F77737); }
.sbtn--fb{ --sbtn-grad:linear-gradient(140deg,#1877F2,#0B5FCC); }
.sbtn--wa{ --sbtn-grad:linear-gradient(140deg,#25D366,#128C7E); }
.sbtn--tt{ --sbtn-grad:linear-gradient(140deg,#25F4EE,#FE2C55 70%); }

.sbtn.is-soon .sbtn__s::after{
  content:" · próximamente";
  opacity:.7;
}


/* ==========================================================================
   15. FOOTER
   ========================================================================== */
.footer{
  background:var(--ink);
  border-top:1px solid var(--line);
  padding-top:clamp(56px,7vw,84px);
}
.footer__grid{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr;
  gap:clamp(28px,4vw,52px);
  padding-bottom:clamp(40px,5vw,60px);
}
.footer__logo{
  display:inline-flex; align-items:center; gap:9px;
  font-family:'Bebas Neue',Impact,sans-serif;
  font-size:1.65rem; letter-spacing:.04em;
  margin-bottom:14px;
}
.footer__logo em{
  font-style:normal;
  background:var(--orange); color:#12100C;
  font-size:.78rem; padding:3px 8px; border-radius:5px;
  transform:rotate(-6deg);
}
.footer__tag{ color:var(--tx-mute); font-size:.9rem; max-width:300px; }
.footer__social{ display:flex; gap:10px; margin-top:20px; }
.footer__social a{
  width:42px; height:42px;
  display:grid; place-items:center;
  border-radius:50%;
  border:1px solid var(--line);
  background:var(--glass);
  font-family:'Montserrat',sans-serif;
  font-weight:900; font-size:.72rem; letter-spacing:.06em;
  color:var(--tx-soft);
  transition:all .3s var(--ease);
}
.footer__social a:hover{
  background:var(--orange); color:#12100C;
  border-color:var(--orange);
  transform:translateY(-3px);
}

.footer__col h3{
  font-family:'Montserrat',sans-serif;
  font-weight:900; font-size:.72rem;
  letter-spacing:.2em; text-transform:uppercase;
  color:var(--orange);
  margin-bottom:18px;
}
.footer__col a,
.footer__col p{
  display:block;
  color:var(--tx-mute);
  font-size:.9rem;
  margin-bottom:11px;
  transition:color .25s var(--ease), transform .25s var(--ease);
}
.footer__col a:hover{ color:var(--white); transform:translateX(4px); }

.footer__bar{ border-top:1px solid var(--line); padding:22px 0; }
.footer__bar-inner{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px;
}
.footer__bar p{ font-size:.8rem; color:var(--tx-mute); }


/* ==========================================================================
   16. FLOTANTES Y LIGHTBOX
   ========================================================================== */
.fab{
  position:fixed; z-index:800;
  width:56px; height:56px;
  display:grid; place-items:center;
  border-radius:50%;
  box-shadow:var(--sh-md);
  transition:transform .35s var(--ease-bounce), opacity .35s var(--ease),
             visibility .35s, box-shadow .35s var(--ease);
}
.fab svg{ width:27px; height:27px; }

.fab--wa{
  right:20px; bottom:20px;
  background:#25D366; color:#08361B;
  animation:waPop .6s var(--ease-bounce) 1.2s backwards;
}
@keyframes waPop{ from{ transform:scale(0) rotate(-90deg); } }
.fab--wa::after{
  content:"";
  position:absolute; inset:0; border-radius:50%;
  border:2px solid #25D366;
  animation:waRing 2.6s var(--ease) infinite;
}
@keyframes waRing{
  0%  { transform:scale(1);   opacity:.7; }
  70% { transform:scale(1.6); opacity:0; }
  100%{ opacity:0; }
}
.fab--wa:hover{ transform:scale(1.12); box-shadow:0 16px 40px rgba(37,211,102,.45); }

.fab__tip{
  position:absolute; right:calc(100% + 12px);
  white-space:nowrap;
  background:var(--ink-3); color:var(--tx);
  border:1px solid var(--line);
  border-radius:100px;
  padding:7px 15px;
  font-size:.78rem; font-weight:600;
  opacity:0; transform:translateX(8px);
  pointer-events:none;
  transition:all .3s var(--ease);
}
.fab--wa:hover .fab__tip{ opacity:1; transform:translateX(0); }

.fab--top{
  right:20px; bottom:88px;
  background:var(--glass-2);
  border:1px solid var(--line-2);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  color:var(--tx);
  opacity:0; visibility:hidden; transform:translateY(12px);
}
.fab--top.is-on{ opacity:1; visibility:visible; transform:none; }
.fab--top:hover{ background:var(--orange); color:#12100C; border-color:var(--orange); transform:translateY(-4px); }

/* Lightbox */
.lightbox{
  position:fixed; inset:0; z-index:1500;
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:clamp(6px,2vw,20px);
  padding:clamp(16px,4vw,48px);
  background:rgba(6,7,10,.94);
  backdrop-filter:blur(22px);
  -webkit-backdrop-filter:blur(22px);
  animation:lbIn .3s var(--ease-out);
}
.lightbox[hidden]{ display:none; }
@keyframes lbIn{ from{ opacity:0; } }

.lightbox__fig{
  display:flex; flex-direction:column; align-items:center; gap:16px;
  max-height:100%;
  min-width:0;
}
.lightbox__fig img{
  max-width:100%;
  max-height:calc(100svh - 160px);
  object-fit:contain;
  border-radius:var(--r-md);
  box-shadow:var(--sh-lg);
  animation:lbImg .4s var(--ease-out);
}
@keyframes lbImg{ from{ opacity:0; transform:scale(.94); } }
.lightbox__fig figcaption{
  font-family:'Montserrat',sans-serif;
  font-size:.82rem; letter-spacing:.06em;
  color:var(--tx-soft);
  text-align:center;
  max-width:60ch;
}

.lightbox__close{
  position:absolute; top:clamp(12px,3vw,26px); right:clamp(12px,3vw,26px);
  width:46px; height:46px;
  display:grid; place-items:center;
  border-radius:50%;
  background:var(--glass-2);
  border:1px solid var(--line-2);
  font-size:1.1rem;
  transition:all .3s var(--ease);
}
.lightbox__close:hover{ background:var(--red); border-color:var(--red); transform:rotate(90deg); }

.lightbox__nav{
  width:52px; height:52px;
  display:grid; place-items:center;
  border-radius:50%;
  background:var(--glass-2);
  border:1px solid var(--line-2);
  color:var(--tx);
  transition:all .3s var(--ease);
}
.lightbox__nav svg{ width:22px; height:22px; }
.lightbox__nav:hover{ background:var(--orange); color:#12100C; border-color:var(--orange); }


/* ==========================================================================
   17. ANIMACIONES DE SCROLL (estilo AOS, sin dependencias)
   ========================================================================== */
[data-reveal]{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s var(--ease-out), transform .8s var(--ease-out);
  transition-delay:var(--rd,0ms);
}
[data-reveal].is-in{ opacity:1; transform:none; }

.no-js [data-reveal]{ opacity:1; transform:none; }


/* ==========================================================================
   18. RESPONSIVE
   ========================================================================== */
@media (max-width:1080px){
  .about__grid{ grid-template-columns:1fr; }
  .about__media{ order:-1; max-width:620px; }
  .about__stamp{ width:80px; height:80px; right:-6px; top:-16px; }
  .roulette__stage{ grid-template-columns:1fr; justify-items:center; }
  .roulette__wheel-wrap{ width:min(430px,86vw); }
  .roulette__result{ width:100%; max-width:620px; }
  .visit__grid{ grid-template-columns:1fr; }
  .footer__grid{ grid-template-columns:1fr 1fr; }
}

@media (max-width:860px){
  .nav__toggle{ display:flex; }

  .nav__links{
    position:fixed; inset:0 0 auto 0;
    top:var(--nav-h);
    flex-direction:column;
    align-items:stretch;
    gap:2px;
    padding:20px var(--pad) 30px;
    background:rgba(10,12,16,.96);
    backdrop-filter:blur(22px);
    -webkit-backdrop-filter:blur(22px);
    border-bottom:1px solid var(--line);
    box-shadow:0 24px 48px rgba(0,0,0,.5);
    transform:translateY(-14px);
    opacity:0; visibility:hidden;
    transition:all .35s var(--ease);
  }
  .nav__links.is-open{ transform:none; opacity:1; visibility:visible; }
  .nav__links > a:not(.btn){ padding:14px 4px; font-size:1.02rem; border-bottom:1px solid var(--line); }
  .nav__links > a:not(.btn)::after{ display:none; }
  .nav__cta{ margin:16px 0 0; justify-content:center; }
  .lang-toggle{ margin:14px 0 0; align-self:center; }

  .hero{ min-height:92svh; }
  .hero__scrim{
    background:
      linear-gradient(to top, var(--ink) 4%, rgba(10,12,16,.5) 45%, rgba(10,12,16,.72) 100%);
  }
  .hero__word--tacos{ margin-left:clamp(16px,6vw,48px); }
  .hero__facts{ gap:22px; }
  .hero__actions .btn{ flex:1 1 auto; }

  .rcard{ grid-template-columns:1fr; }
  .rcard__media{ aspect-ratio:16/10; }
  .rcard__media img{ min-height:0; }

  .carousel__nav{ display:none; }

  .cine__frame{ aspect-ratio:4/3; }
  .cine__hud{ grid-template-columns:1fr; align-items:start; }
  .cine__ctrl{ justify-content:flex-start; }

  .reviews__grid,
  .promo-grid{ grid-template-columns:1fr; }
}

@media (max-width:560px){
  :root{ --nav-h:66px; }
  .dishes{ grid-template-columns:1fr; }
  .dish{ flex-direction:row; align-items:stretch; }
  .dish__media{ width:112px; flex-shrink:0; aspect-ratio:auto; }
  .dish__body{ padding:16px 18px; }
  .dish__name{ font-size:1.3rem; flex-direction:column; gap:2px; }
  .dish__price{ font-size:1.15rem; }
  .dish__emblem{ font-size:2.1rem; }
  .dish--featured .dish__ribbon{ display:none; }

  .footer__grid{ grid-template-columns:1fr; }
  .footer__bar-inner{ justify-content:center; text-align:center; }
  .about__media{ grid-template-columns:1fr; }
  .about__shot--b,
  .about__shot--c{ aspect-ratio:16/10; }
  .fab{ width:52px; height:52px; }
  .fab--top{ bottom:82px; }
  .lightbox{ grid-template-columns:1fr; grid-template-rows:1fr auto; }
  .lightbox__nav{ position:absolute; bottom:22px; }
  .lightbox__nav--prev{ left:22%; }
  .lightbox__nav--next{ right:22%; }
  .lightbox__fig img{ max-height:calc(100svh - 210px); }
}

/* Preferencias del sistema */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
    scroll-behavior:auto !important;
  }
  [data-reveal]{ opacity:1; transform:none; }
  .roulette__wheel{ transition:transform 1.4s ease-out !important; }
}

@media print{
  .nav,.fab,.hero__media,.carousel__nav,.lightbox,.ticker{ display:none !important; }
  body{ background:#fff; color:#111; }
}
