/* ================================================================
   J.BURGERS — Retro/Vintage diner landing page
   Mobile-first.
   ================================================================ */
:root{
  --ink:#0e0d0b;
  --ink-2:#1a1714;
  --cream:#f4ead5;
  --cream-2:#ebdfc2;
  --paper:#efe3c4;
  --red:#c8321f;
  --red-deep:#8e2214;
  --mustard:#e8a93a;
  --gold:#b58a3c;
  --gold-light:#d8b25a;
  --rule:#3b332b;
  --sh:0 8px 0 rgba(0,0,0,.18);
}
*{
  box-sizing:border-box;
  margin:0;
  padding:0;
}
html,body{
  background:var(--ink);
  color:var(--cream);
  font-family:'Inter',system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{
  display:block;
  max-width:100%;
}
a{
  color:inherit;
  text-decoration:none;
}
button{
  font:inherit;
  color:inherit;
  background:none;
  border:0;
  cursor:pointer;
}

/* Paper / grain textures */
.grain::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.18;
  mix-blend-mode:overlay;
  background-image:radial-gradient(rgba(255,255,255,.5) 1px,transparent 1px), radial-gradient(rgba(0,0,0,.5) 1px,transparent 1px);
  background-size:3px 3px,5px 5px;
  background-position:0 0,1px 2px;
}

/* ===== NAV ===== */
.nav{
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:50;
  background:rgba(14,13,11,.78);
  backdrop-filter:blur(10px);
  border-bottom:1px solid #2a241d;
  transform:translateY(0);
  transition:transform .35s ease;
}
.nav.hidden{
  transform:translateY(-110%);
}
.nav-inner{
  max-width:1200px;
  margin:0 auto;
  padding:14px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Alfa Slab One',serif;
  letter-spacing:.02em;
  font-size:18px;
}
.brand .dot{
  width:8px;
  height:8px;
  background:var(--red);
  border-radius:50%;
}
.nav ul{
  display:none;
  list-style:none;
  gap:28px;
  font-family:'Oswald',sans-serif;
  font-weight:500;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:13px;
}
.nav ul a{
  opacity:.85;
  transition:opacity .2s;
}
.nav ul a:hover{
  opacity:1;
  color:var(--mustard);
}
.nav .cta{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-size:12px;
  background:var(--red);
  color:var(--cream);
  padding:10px 14px;
  border-radius:2px;
  border:1px solid var(--red-deep);
  box-shadow:0 3px 0 var(--red-deep);
}
.nav .cta:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 0 var(--red-deep);
}
@media(min-width:880px){
  .nav ul{
    display:flex;
  }
}

/* ===== HERO ===== */
.hero{
  position:relative;
  min-height:100svh;
  padding:96px 20px 48px;
  background:radial-gradient(1100px 600px at 80% 10%, rgba(232,169,58,.18), transparent 60%), radial-gradient(900px 500px at 10% 90%, rgba(200,50,31,.18), transparent 60%), linear-gradient(180deg,#0b0a08 0%,#16110c 100%);
  display:grid;
  grid-template-columns:1fr;
  gap:32px;
  align-items:center;
  overflow:hidden;
}
.hero::after{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='0.9' numOctaves='2' seed='3'/><feColorMatrix values='0 0 0 0 0.96 0 0 0 0 0.92 0 0 0 0 0.83 0 0 0 0.18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  pointer-events:none;
  mix-blend-mode:overlay;
  opacity:.35;
}
.hero-inner{
  position:relative;
  max-width:1200px;
  margin:0 auto;
  width:100%;
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  align-items:center;
}
@media(min-width:980px){
  .hero{
    padding-top:120px;
  }
  .hero-inner{
    grid-template-columns:1.1fr .9fr;
    gap:48px;
  }
}

.hero .ribbon{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Special Elite',monospace;
  font-size:13px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold-light);
  border:1px dashed rgba(216,178,90,.5);
  padding:8px 14px;
  border-radius:999px;
}
.hero h1{
  font-family:'Alfa Slab One',serif;
  font-size:clamp(56px,11vw,150px);
  line-height:.86;
  letter-spacing:-.01em;
  color:var(--cream);
  margin:18px 0 8px;
  text-shadow:6px 6px 0 var(--red),12px 12px 0 var(--ink);
}
.hero h1 .amp{
  color:var(--mustard);
  display:block;
  font-size:.55em;
  letter-spacing:.04em;
}
.hero h1 .small{
  display:block;
  font-size:.34em;
  font-family:'Oswald',sans-serif;
  letter-spacing:.32em;
  color:var(--gold-light);
  margin-top:14px;
  font-weight:500;
  text-shadow:2px 2px 0 var(--red),4px 4px 0 var(--ink);
}
.hero p.lead{
  max-width:42ch;
  color:#d9cba8;
  font-size:clamp(15px,1.6vw,17px);
  line-height:1.55;
  margin:14px 0 28px;
}
.hero .ctas{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  align-items:center;
}
.btn{
  display:inline-flex;
  align-items:center;
  gap:10px;
  font-family:'Oswald',sans-serif;
  font-weight:600;
  letter-spacing:.18em;
  text-transform:uppercase;
  padding:16px 22px;
  border-radius:2px;
  font-size:14px;
  transition:transform .15s ease, box-shadow .15s ease;
}
.btn-red{
  background:var(--red);
  color:var(--cream);
  border:1px solid var(--red-deep);
  box-shadow:0 7px 0 var(--red-deep);
}
.btn-red:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 0 var(--red-deep);
}
.btn-ghost{
  color:var(--cream);
  border:1px solid #4a3f33;
  background:rgba(255,255,255,.02);
}
.btn-ghost:hover{
  border-color:var(--mustard);
  color:var(--mustard);
}
.btn-mustard{
  background:var(--mustard);
  color:var(--ink);
  border:1px solid #a87b22;
  box-shadow:0 6px 0 #a87b22;
}
.btn-mustard:hover{
  transform:translateY(-2px);
  box-shadow:0 8px 0 #a87b22;
}

/* Hero stats strip */
.stats{
  margin-top:40px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:12px;
  max-width:520px;
}
.stats .s{
  padding:14px 12px;
  border:1px solid #2c2620;
  border-radius:3px;
  background:rgba(255,255,255,.02);
}
.stats .s b{
  display:block;
  font-family:'Alfa Slab One',serif;
  font-size:22px;
  color:var(--mustard);
  line-height:1;
}
.stats .s span{
  display:block;
  font-family:'Special Elite',monospace;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:#b8a982;
  margin-top:6px;
}

/* Hero image stack */
.hero-art{
  position:relative;
  min-height:420px;
  margin-top:8px;
}
.hero-art .photo{
  position:relative;
  border-radius:6px;
  overflow:hidden;
  border:6px solid var(--cream);
  box-shadow:0 18px 40px rgba(0,0,0,.6),0 0 0 1px rgba(0,0,0,.3);
  transform:rotate(-2deg);
}
.hero-art .photo img{
  width:100%;
  height:100%;
  object-fit:cover;
  aspect-ratio:3/4;
}
.hero-art .photo.big{
  width:78%;
  margin-left:auto;
}
.hero-art .photo.small{
  position:absolute;
  left:0;
  bottom:-30px;
  width:46%;
  transform:rotate(4deg);
  border-color:var(--mustard);
}
.hero-art .stamp{
  position:absolute;
  top:-14px;
  left:-10px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:var(--red);
  color:var(--cream);
  display:grid;
  place-items:center;
  font-family:'Alfa Slab One',serif;
  line-height:1;
  text-align:center;
  border:3px dashed var(--cream);
  transform:rotate(-12deg);
  box-shadow:0 10px 24px rgba(0,0,0,.5);
}
.hero-art .stamp b{
  display:block;
  font-size:30px;
}
.hero-art .stamp span{
  font-family:'Special Elite',monospace;
  font-size:10px;
  letter-spacing:.18em;
  margin-top:4px;
  display:block;
}
@media(max-width:400px){
  .hero-art{
    min-height:380px;
  }
  .hero-art .stamp{
    width:92px;
    height:92px;
    top:-10px;
    left:-6px;
  }
  .hero-art .stamp b{
    font-size:22px;
  }
  .hero-art .stamp b[style]{
    font-size:28px !important;
  }
  .starburst{
    width:150px;
    height:120px;
  }
  .starburst .txt{
    font-size:16px;
  }
}
@media(max-width:360px){
  .stats{
    grid-template-columns:1fr 1fr;
    max-width:340px;
  }
  .stats .s:last-child{
    grid-column:span 2;
  }
}

/* Checker strip — signature diner/food-truck motif used as a rhythm device between sections */
.checker{
  height:16px;
  background-image:conic-gradient(var(--ink) 90deg, var(--cream) 90deg 180deg, var(--ink) 180deg 270deg, var(--cream) 270deg 360deg);
  background-size:16px 16px;
}
.checker.small{
  height:10px;
  background-size:10px 10px;
}
.checker.red{
  background-image:conic-gradient(var(--red-deep) 90deg, var(--cream) 90deg 180deg, var(--red-deep) 180deg 270deg, var(--cream) 270deg 360deg);
}

/* Marquee */
.marquee{
  position:relative;
  overflow:hidden;
  background:var(--mustard);
  color:var(--ink);
}
.marquee-track{
  display:flex;
  gap:48px;
  padding:14px 0;
  white-space:nowrap;
  animation:scroll 20s linear infinite;
  font-family:'Alfa Slab One',serif;
  font-size:22px;
  letter-spacing:.04em;
}
.marquee-track span{
  display:inline-flex;
  align-items:center;
  gap:48px;
}
.marquee-track .star{
  color:var(--red);
  font-size:24px;
}
@media(max-width:640px){
  .marquee-track{
    animation-duration:7s;
  }
}
@keyframes scroll{
  from{
    transform:translateX(0);
  }
  to{
    transform:translateX(-50%);
  }
}

/* ===== SECTION GENERAL ===== */
section{
  position:relative;
}
.wrap{
  max-width:1200px;
  margin:0 auto;
  padding:80px 20px;
}
.eyebrow{
  font-family:'Special Elite',monospace;
  letter-spacing:.32em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--gold-light);
  display:inline-flex;
  align-items:center;
  gap:12px;
}
.eyebrow::before,.eyebrow::after{
  content:"";
  width:28px;
  height:1px;
  background:var(--gold);
}
.h-display{
  font-family:'Alfa Slab One',serif;
  font-size:clamp(40px,6.5vw,80px);
  line-height:.95;
  letter-spacing:-.005em;
  color:var(--cream);
  margin:14px 0 12px;
}
.h-display em{
  font-style:normal;
  color:var(--mustard);
}
.sub{
  max-width:60ch;
  color:#c5b88f;
  font-size:16px;
  line-height:1.6;
}

/* Reveal-on-scroll */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .9s ease, transform .9s ease;
}
.reveal.in{
  opacity:1;
  transform:none;
}

/* ===== STORY (about) ===== */
.story{
  background:#13100c;
  border-top:1px solid #221c16;
  border-bottom:1px solid #221c16;
}
.story-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
  align-items:center;
}
@media(min-width:880px){
  .story-grid{
    grid-template-columns:1fr 1fr;
    gap:60px;
  }
}
.frame{
  position:relative;
  border:1px solid #3a3024;
  padding:14px;
  background:repeating-linear-gradient(45deg,#1a1611 0 8px,#171410 8px 16px);
  border-radius:4px;
}
.frame .photo{
  aspect-ratio:4/5;
  background-size:cover;
  background-position:center;
  border:4px solid var(--cream);
  border-radius:2px;
}
.frame .tag{
  position:absolute;
  bottom:-18px;
  left:50%;
  transform:translateX(-50%) rotate(-3deg);
  background:var(--red);
  color:var(--cream);
  padding:8px 18px;
  border:2px solid var(--cream);
  font-family:'Alfa Slab One',serif;
  font-size:14px;
  letter-spacing:.08em;
  white-space:nowrap;
  box-shadow:0 6px 0 rgba(0,0,0,.4);
}

/* ===== MENU ===== */
.menu{
  background:radial-gradient(1200px 500px at 50% 0%, rgba(232,169,58,.08), transparent 60%), #0e0c09;
}
.menu-toolbar{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  align-items:center;
  justify-content:space-between;
  margin:28px 0 36px;
}
.menu-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.tab{
  font-family:'Oswald',sans-serif;
  letter-spacing:.18em;
  text-transform:uppercase;
  font-size:13px;
  font-weight:600;
  padding:12px 18px;
  border:1px solid #3a3024;
  color:#c5b88f;
  border-radius:2px;
  transition:all .2s;
}
.tab:hover{
  color:var(--mustard);
  border-color:var(--mustard);
}

/* Carta — libro abierto con todos los productos visibles */
.menu-book{
  position:relative;
  display:grid;
  grid-template-columns:1fr;
  background:var(--ink);
  border-radius:8px;
  box-shadow:0 30px 70px rgba(0,0,0,.55);
  overflow:hidden;
}
@media(min-width:900px){
  .menu-book{grid-template-columns:1fr 1fr}
  .menu-book::after{
    content:"";
    position:absolute;top:0;bottom:0;left:50%;width:28px;margin-left:-14px;
    background:linear-gradient(90deg, rgba(0,0,0,.3), rgba(0,0,0,.05) 45%, rgba(0,0,0,.05) 55%, rgba(0,0,0,.3));
    pointer-events:none;
  }
}
.menu-page{
  position:relative;
  background:var(--paper);
  color:var(--ink);
  padding:clamp(20px,6vw,32px) clamp(16px,5vw,28px) clamp(28px,7vw,40px);
}
.menu-page + .menu-page{
  border-top:2px dashed #c4a96b;
}
@media(min-width:900px){
  .menu-page + .menu-page{border-top:none}
}
.menu-cat{
  scroll-margin-top:100px;
}
.menu-cat + .menu-cat{
  margin-top:36px;
}
.menu-cat-title{
  font-family:'Alfa Slab One',serif;
  font-size:20px;
  color:var(--red-deep);
  padding-bottom:10px;
  margin-bottom:18px;
  border-bottom:2px dashed #b08a4c;
}
.menu-item{
  display:flex;
  gap:clamp(8px,3vw,14px);
  align-items:flex-start;
}
.menu-item + .menu-item{
  margin-top:20px;
  padding-top:20px;
  border-top:1px dotted #cdb787;
}
.menu-item-photo{
  flex:0 0 clamp(56px,20vw,100px);
  width:clamp(56px,20vw,100px);
  height:clamp(46px,16vw,80px);
  border-radius:4px;
  background-size:cover;
  background-position:center;
  border:1px solid #c4a96b;
}
.menu-item-info{
  flex:1;
  min-width:0;
}
.menu-item-top{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:4px 8px;
}
.menu-item-top h4{
  font-family:'Alfa Slab One',serif;
  font-size:16px;
  line-height:1.2;
  letter-spacing:-.005em;
}
.menu-item-badge{
  display:inline-block;
  font-family:'Oswald',sans-serif;
  font-size:9px;
  font-weight:700;
  letter-spacing:.1em;
  background:var(--red);
  color:var(--cream);
  padding:2px 6px;
  border-radius:2px;
  vertical-align:middle;
}
.menu-item-top .leader{
  flex:1 1 20px;
  min-width:0;
  overflow:hidden;
  border-bottom:2px dotted #b09a68;
  margin-bottom:5px;
}
.menu-item-price{
  margin-left:auto;
  font-family:'Alfa Slab One',serif;
  font-size:15px;
  color:var(--red);
  white-space:nowrap;
}
.menu-item-desc{
  margin-top:6px;
  font-family:'Special Elite',monospace;
  font-size:13px;
  line-height:1.55;
  font-style:italic;
  color:#5c4a30;
}
/* ===== WHATSAPP / ORDER STRIP ===== */
.order-strip{
  background:linear-gradient(180deg,#1a4a2c,#0f3a22);
  position:relative;
  overflow:hidden;
}
.order-strip::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(255,255,255,.06) 1.5px,transparent 1.5px);
  background-size:14px 14px;
  opacity:.5;
}
.order-strip .wrap{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  align-items:center;
  position:relative;
}
@media(min-width:880px){
  .order-strip .wrap{
    grid-template-columns:1.4fr 1fr;
    gap:48px;
  }
}
.order-strip .h-display{
  color:var(--cream);
}
.order-strip .sub{
  color:#c8e0c9;
}
.order-strip .wa-btn{
  display:inline-flex;
  align-items:center;
  gap:14px;
  padding:20px 26px;
  background:#25d366;
  color:#fff;
  font-family:'Alfa Slab One',serif;
  font-size:18px;
  letter-spacing:.02em;
  border-radius:4px;
  border:2px solid #fff;
  box-shadow:0 8px 0 #0c5a2c, 0 14px 30px rgba(0,0,0,.45);
  transition:transform .15s, box-shadow .15s;
}
.order-strip .wa-btn:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 0 #0c5a2c, 0 18px 36px rgba(0,0,0,.55);
}
.order-strip .wa-btn .ic{
  width:28px;
  height:28px;
  flex:0 0 28px;
}
.order-strip .ph{
  font-family:'Special Elite',monospace;
  color:#c8e0c9;
  letter-spacing:.16em;
  font-size:13px;
  margin-top:14px;
}

.ticket{
  background:var(--cream);
  color:var(--ink);
  padding:22px;
  border-radius:4px;
  box-shadow:0 18px 40px rgba(0,0,0,.55);
  position:relative;
}
.ticket::before,.ticket::after{
  content:"";
  position:absolute;
  left:0;
  right:0;
  height:14px;
  background:radial-gradient(circle at 7px 7px, transparent 6px, var(--cream) 6px) 0 0/14px 14px;
}
.ticket::before{
  top:-7px;
}
.ticket::after{
  bottom:-7px;
  transform:rotate(180deg);
}
.ticket h4{
  font-family:'Alfa Slab One',serif;
  font-size:18px;
  letter-spacing:.04em;
  margin-bottom:4px;
}
.ticket .sub2{
  font-family:'Special Elite',monospace;
  font-size:12px;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#7c6a47;
  border-bottom:1px dashed #c4a96b;
  padding-bottom:10px;
  margin-bottom:12px;
}
.ticket .row{
  display:flex;
  justify-content:space-between;
  font-family:'Special Elite',monospace;
  font-size:14px;
  padding:6px 0;
  border-bottom:1px dashed #d8c89c;
}
.ticket .row b{
  font-family:'Oswald',sans-serif;
  font-weight:600;
}
.ticket .total{
  display:flex;
  justify-content:space-between;
  margin-top:10px;
  font-family:'Alfa Slab One',serif;
  font-size:20px;
  color:var(--red);
}

/* ===== GALLERY ===== */
.gallery{
  background:#0c0a07;
}
.gal-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:8px;
  margin-top:36px;
}
@media(min-width:680px){
  .gal-grid{
    grid-template-columns:repeat(4,1fr);
    gap:10px;
  }
}
@media(min-width:1040px){
  .gal-grid{
    grid-template-columns:repeat(6,1fr);
  }
}
.tile{
  position:relative;
  aspect-ratio:1/1;
  overflow:hidden;
  border-radius:3px;
  cursor:pointer;
  background:#1a1611;
}
.tile img{
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .6s ease, filter .4s ease;
  filter:saturate(.95) contrast(1.05);
}
.tile:hover img{
  transform:scale(1.08);
  filter:saturate(1.15) contrast(1.1);
}
.tile.tall{
  grid-row:span 2;
  aspect-ratio:1/2;
}
.tile.wide{
  grid-column:span 2;
  aspect-ratio:2/1;
}
.tile::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(0,0,0,.5) 100%);
  pointer-events:none;
}
.tile-more{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  background:rgba(10,9,7,.72);
  color:var(--cream);
  text-align:center;
}
.tile-more span{
  font-family:'Alfa Slab One',serif;
  font-size:26px;
  color:var(--mustard);
}
.tile-more small{
  font-family:'Oswald',sans-serif;
  font-size:11px;
  letter-spacing:.16em;
  text-transform:uppercase;
}

/* Lightbox */
.lb{
  position:fixed;
  inset:0;
  background:rgba(8,7,5,.95);
  display:none;
  z-index:200;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.lb.open{
  display:flex;
}
.lb img{
  max-height:90vh;
  max-width:90vw;
  border:6px solid var(--cream);
  box-shadow:0 30px 60px rgba(0,0,0,.7);
  touch-action:none;
  user-select:none;
  -webkit-user-drag:none;
  cursor:grab;
}
.lb.dragging img{
  cursor:grabbing;
}
.lb-close{
  position:absolute;
  top:20px;
  right:24px;
  font-size:34px;
  line-height:1;
  color:var(--cream);
  font-family:'Alfa Slab One',serif;
  cursor:pointer;
  z-index:2;
}
.lb-nav{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:52px;
  height:52px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.25);
  color:var(--cream);
  font-size:28px;
  line-height:1;
  cursor:pointer;
  z-index:2;
  transition:background .2s;
}
.lb-nav:hover{
  background:rgba(255,255,255,.18);
}
.lb-prev{
  left:12px;
}
.lb-next{
  right:12px;
}
.lb-counter{
  position:absolute;
  bottom:20px;
  left:50%;
  transform:translateX(-50%);
  font-family:'Special Elite',monospace;
  font-size:13px;
  letter-spacing:.12em;
  color:var(--cream);
  background:rgba(0,0,0,.45);
  padding:6px 14px;
  border-radius:999px;
  z-index:2;
}
@media(max-width:600px){
  .lb-nav{
    width:42px;
    height:42px;
    font-size:22px;
  }
  .lb-prev{left:6px}
  .lb-next{right:6px}
}

/* ===== LOCATION ===== */
.location{
  background:var(--paper);
  color:var(--ink);
  position:relative;
  overflow:hidden;
}
.location::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='1.2' numOctaves='2'/><feColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.42 0 0 0 0 0.22 0 0 0 0.25 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
  mix-blend-mode:multiply;
  opacity:.45;
  pointer-events:none;
}
.location .wrap{
  position:relative;
}
.location .eyebrow{
  color:#7c5a1c;
}
.location .eyebrow::before,.location .eyebrow::after{
  background:#a87b22;
}
.location .h-display{
  color:var(--ink);
}
.location .h-display em{
  color:var(--red);
}
.location .sub{
  color:#3a2f24;
}

.loc-grid{
  display:grid;
  grid-template-columns:1fr;
  gap:28px;
  margin-top:32px;
}
@media(min-width:880px){
  .loc-grid{
    grid-template-columns:1fr 1fr;
  }
}
.loc-card{
  background:var(--ink);
  color:var(--cream);
  padding:28px;
  border-radius:4px;
  border:1px solid #2a241d;
  box-shadow:0 14px 30px rgba(0,0,0,.4);
}
.loc-card h4{
  font-family:'Alfa Slab One',serif;
  font-size:24px;
  margin-bottom:6px;
}
.loc-card .where{
  font-family:'Special Elite',monospace;
  letter-spacing:.14em;
  color:var(--mustard);
  font-size:13px;
  text-transform:uppercase;
  margin-bottom:18px;
}
.loc-card .hours{
  display:grid;
  grid-template-columns:auto 1fr;
  gap:6px 18px;
  font-family:'Special Elite',monospace;
  font-size:14px;
  padding-top:14px;
  border-top:1px dashed #3a3024;
}
.loc-card .hours b{
  font-family:'Oswald',sans-serif;
  font-weight:500;
  color:var(--gold-light);
  letter-spacing:.12em;
  text-transform:uppercase;
  font-size:12px;
  align-self:center;
}
.loc-card .loc-directions{
  margin-top:20px;
}

.map-frame{
  position:relative;
  aspect-ratio:4/3;
  border-radius:4px;
  overflow:hidden;
  background:repeating-linear-gradient(0deg,#cdb787 0 1px,transparent 1px 22px), repeating-linear-gradient(90deg,#cdb787 0 1px,transparent 1px 22px), #ddc798;
  border:6px solid var(--ink);
}
.map-frame .map-embed{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
}
.map-frame .label{
  position:absolute;
  left:14px;
  top:14px;
  z-index:2;
  pointer-events:none;
  font-family:'Alfa Slab One',serif;
  font-size:14px;
  color:#5d4422;
  background:var(--cream);
  padding:4px 10px;
  border:1px solid #5d4422;
  border-radius:2px;
}

/* ===== FOOTER ===== */
footer{
  background:#08070500;
  background:linear-gradient(180deg,#0a0907 0%,#000 100%);
  color:var(--cream);
  padding:60px 20px 30px;
}
.f-grid{
  max-width:1200px;
  margin:0 auto;
  display:grid;
  grid-template-columns:1fr;
  gap:36px;
}
@media(min-width:760px){
  .f-grid{
    grid-template-columns:1.4fr 1fr 1fr;
  }
}
.f-brand{
  font-family:'Alfa Slab One',serif;
  font-size:36px;
  letter-spacing:-.01em;
}
.f-brand .em{
  color:var(--mustard);
}
.f-brand + p{
  color:#a99c75;
  margin-top:10px;
  font-family:'Special Elite',monospace;
  font-size:13px;
  letter-spacing:.12em;
}
.f-col h5{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  font-size:12px;
  color:var(--gold-light);
  margin-bottom:14px;
}
.f-col a,.f-col p{
  display:block;
  color:#c5b88f;
  font-family:'Special Elite',monospace;
  font-size:14px;
  line-height:1.8;
}
.f-col a:hover{
  color:var(--mustard);
}
.socials{
  display:flex;
  gap:10px;
  margin-top:14px;
}
.socials a{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border:1px solid #3a3024;
  border-radius:50%;
  color:var(--cream);
}
.socials a:hover{
  background:var(--red);
  border-color:var(--red);
}
.f-bottom{
  max-width:1200px;
  margin:46px auto 0;
  padding-top:22px;
  border-top:1px solid #2a241d;
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:12px;
  font-family:'Special Elite',monospace;
  font-size:12px;
  color:#7d7253;
  letter-spacing:.14em;
  text-transform:uppercase;
}

/* ===== FLOATING WHATSAPP ===== */
.fab{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:80;
  width:62px;
  height:62px;
  border-radius:50%;
  background:#25d366;
  color:#fff;
  display:grid;
  place-items:center;
  box-shadow:0 10px 30px rgba(37,211,102,.45),0 4px 0 #0c5a2c;
  border:3px solid #fff;
  transition:transform .2s ease;
}
.fab:hover{
  transform:scale(1.06);
}
.fab svg{
  width:30px;
  height:30px;
}
.fab::before{
  content:"";
  position:absolute;
  inset:-6px;
  border-radius:50%;
  border:2px solid rgba(37,211,102,.5);
  animation:pulse 2s ease-out infinite;
}
@keyframes pulse{
  0%{
    transform:scale(.95);
    opacity:.7;
  }
  100%{
    transform:scale(1.4);
    opacity:0;
  }
}
.fab .tip{
  position:absolute;
  right:74px;
  top:50%;
  transform:translateY(-50%);
  background:var(--ink);
  color:var(--cream);
  font-family:'Oswald',sans-serif;
  font-size:12px;
  letter-spacing:.16em;
  text-transform:uppercase;
  font-weight:600;
  padding:8px 12px;
  border-radius:2px;
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transition:opacity .25s, transform .25s;
}
.fab:hover .tip{
  opacity:1;
  transform:translateY(-50%) translateX(-6px);
}

/* ===== SVG PLACEHOLDER (sun-burst hero callout) ===== */
.starburst{
  position:absolute;
  width:160px;
  height:100px;
  display:grid;
  place-items:center;
  font-family:'Alfa Slab One',serif;
  color:var(--ink);
  text-align:center;
  line-height:1;
  filter:drop-shadow(0 8px 0 rgba(0,0,0,.35));
}
.starburst svg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.starburst .txt{
  position:relative;
  z-index:2;
  font-size:22px;
  white-space:nowrap;
}
.starburst .txt small{
  display:block;
  font-family:'Special Elite',monospace;
  font-size:10px;
  letter-spacing:.18em;
  margin-top:4px;
  white-space:normal;
}

/* ===== PRINT — descarga de la carta en PDF vía diálogo del navegador ===== */
@media print{
  @page{
    margin:12mm;
  }
  .reveal{
    opacity:1 !important;
    transform:none !important;
  }
  nav, header.hero, .checker, .marquee, .story, .order-strip, .gallery, .location, footer, .fab, .lb, .no-print{
    display:none !important;
  }
  body{
    background:#fff;
  }
  .menu{
    background:none;
    padding:0;
  }
  .menu > .wrap{
    padding:0;
    max-width:none;
  }
  .menu > .wrap > *:not(.menu-book){
    display:none !important;
  }
  .menu-book{
    box-shadow:none;
    border-radius:0;
  }
  .menu-page{
    background:#fff;
    color:#000;
    page-break-after:always;
  }
  .menu-page:last-child{
    page-break-after:auto;
  }
  .menu-page + .menu-page{
    border-top:none;
  }
  .menu-item{
    break-inside:avoid;
    page-break-inside:avoid;
  }
  .menu-cat-title{
    break-after:avoid;
    page-break-after:avoid;
  }
  .menu-cat-title{
    color:#000;
    border-bottom-color:#000;
  }
  .menu-item-price{
    color:#000;
  }
  .menu-item-desc{
    color:#333;
  }
  .menu-item-badge{
    background:#000;
    color:#fff;
  }
  .menu-item-photo{
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }
  .grain::before{
    display:none;
  }
}

/* ===== ADMIN — acceso del dueño y edición de la carta ===== */
[hidden]{
  display:none !important;
}
.admin-access{
  color:#7d6e4a;
  text-decoration:underline;
}
.admin-access:hover{
  color:var(--mustard);
}
.admin-bar{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  z-index:90;
  display:flex;
  align-items:center;
  gap:16px;
  flex-wrap:wrap;
  justify-content:center;
  max-width:calc(100% - 110px);
  background:var(--mustard);
  color:var(--ink);
  border:2px solid var(--ink);
  box-shadow:0 6px 0 var(--ink);
  padding:10px 18px;
  font-family:'Oswald',sans-serif;
  font-size:14px;
  letter-spacing:.06em;
}
.admin-bar-hint{
  font-family:'Special Elite',monospace;
  font-size:12px;
}
.admin-bar button{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  letter-spacing:.14em;
  text-transform:uppercase;
  text-decoration:underline;
}
.edit-btn,
.add-btn{
  font-family:'Oswald',sans-serif;
  font-weight:600;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--red-deep);
}
.edit-btn{
  margin-top:8px;
  border:1px solid var(--red-deep);
  padding:5px 10px;
  border-radius:2px;
}
.edit-btn:hover{
  background:var(--red);
  border-color:var(--red);
  color:var(--cream);
}
.add-btn{
  display:block;
  width:100%;
  margin-top:18px;
  padding:12px;
  border:2px dashed #b08a4c;
  border-radius:4px;
}
.add-btn:hover{
  background:rgba(232,169,58,.15);
}
.menu-item.is-hidden-item{
  opacity:.5;
}
.menu-item-badge.badge-hidden{
  background:var(--ink);
}
.menu-item-photo.is-empty{
  display:flex;
  align-items:center;
  justify-content:center;
  background:var(--cream-2);
  color:#b08a4c;
  font-size:22px;
}
.admin-modal{
  width:min(440px, calc(100% - 32px));
  margin:auto;
  border:2px solid var(--mustard);
  border-radius:4px;
  background:var(--ink-2);
  color:var(--cream);
  padding:32px 26px 26px;
  box-shadow:0 10px 0 #000;
}
.admin-modal-wide{
  width:min(620px, calc(100% - 32px));
}
.admin-modal::backdrop{
  background:rgba(8,7,5,.85);
}
.admin-modal-close{
  position:absolute;
  top:8px;
  right:14px;
  font-size:28px;
  line-height:1;
  color:var(--cream);
}
.admin-modal form{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.admin-modal h3{
  font-family:'Alfa Slab One',serif;
  font-size:24px;
  color:var(--mustard);
}
.admin-modal label{
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:150px;
}
.admin-modal label > span{
  font-family:'Oswald',sans-serif;
  font-size:12px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold-light);
}
.admin-modal input,
.admin-modal textarea,
.admin-modal select{
  font-family:'Inter',sans-serif;
  font-size:15px;
  padding:10px 12px;
  border:1px solid var(--rule);
  border-radius:2px;
  background:var(--ink);
  color:var(--cream);
  width:100%;
}
.admin-modal input:focus,
.admin-modal textarea:focus,
.admin-modal select:focus{
  outline:2px solid var(--mustard);
  outline-offset:1px;
}
.admin-modal .btn{
  justify-content:center;
}
.admin-hint{
  font-family:'Special Elite',monospace;
  font-size:13px;
  color:#c5b88f;
}
.admin-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
}
.admin-check{
  flex-direction:row !important;
  align-items:center;
  font-family:'Oswald',sans-serif;
  letter-spacing:.06em;
}
.admin-check input{
  width:18px;
  height:18px;
}
.admin-photo-row{
  display:flex;
  gap:16px;
  align-items:center;
  flex-wrap:wrap;
}
.admin-photo-preview{
  width:140px;
  height:105px;
  border-radius:4px;
  border:1px solid var(--rule);
  background-size:cover;
  background-position:center;
  flex:0 0 auto;
}
.admin-photo-preview.is-empty{
  background:repeating-linear-gradient(45deg,#1f1b17,#1f1b17 8px,#25201b 8px,#25201b 16px);
}
.admin-photo-pick small{
  font-size:12px;
  color:#a89a76;
}
.form-error{
  background:rgba(200,50,31,.15);
  border:1px solid var(--red);
  color:#ffb4a8;
  padding:10px 12px;
  font-size:14px;
}
@media print{
  .menu-item.is-hidden-item{
    display:none !important;
  }
}
