*{margin:0;padding:0;box-sizing:border-box}
:root{
  --primary:#C8322A;
  --secondary:#1C1C1C;
  --bg:#FFF8EF;
  --text:#1C1C1C;
  --accent:#E8A33D;
  --card:#ffffff;
  --linha:#EAD9C4;
  --mono:'Space Mono',monospace;
  --serif:'Source Serif 4',serif;
  --sans:'Archivo',sans-serif;
}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--text);line-height:1.5;}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:underline}
img{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

/* ---------- NAV ---------- */
header.site-nav{
  background:var(--secondary);position:sticky;top:0;z-index:50;
  border-bottom:3px solid var(--primary);
}
.nav-inner{max-width:1120px;margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:10px;color:#fff;text-decoration:none;}
.brand:hover{text-decoration:none}
.brand-logo{height:40px;width:auto;flex-shrink:0;display:none;}
.brand strong{font-family:var(--serif);font-size:1.4rem;font-weight:700;letter-spacing:.02em;}
.brand small{display:block;font-family:var(--mono);font-size:0.62rem;letter-spacing:0.1em;color:rgba(255,255,255,0.6);text-transform:uppercase;}
.nav-links{display:flex;gap:4px;flex-wrap:wrap;list-style:none;}
.nav-links a{color:rgba(255,255,255,0.85);font-size:0.82rem;font-weight:600;padding:8px 12px;border-radius:999px;transition:.15s;}
.nav-links a:hover,.nav-links a.active{background:var(--primary);color:#fff;text-decoration:none;}
.nav-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.nav-logo-link{display:flex;align-items:center;flex-shrink:0;}
.nav-logo-img{height:30px;width:auto;}
.btn-order{
  background:var(--accent);color:#1C1C1C;font-weight:700;font-size:0.8rem;
  padding:9px 16px;border-radius:999px;white-space:nowrap;
}
.btn-order:hover{filter:brightness(1.08);text-decoration:none;}
.lang-select,.nav-admin{
  font-family:var(--mono);font-size:0.68rem;color:#fff;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.3);
  padding:6px 10px;border-radius:999px;cursor:pointer;
}
.lang-select option{color:#10262C;}
.nav-admin:hover{color:var(--accent);border-color:var(--accent);text-decoration:none;}
.nav-toggle{
  display:none;flex-direction:column;justify-content:center;align-items:center;gap:4px;
  width:36px;height:36px;flex-shrink:0;
  background:rgba(255,255,255,0.08);border:1px solid rgba(255,255,255,0.3);border-radius:8px;cursor:pointer;
}
.nav-toggle span{display:block;width:18px;height:2px;background:#fff;border-radius:2px;}

/* ---------- HERO ---------- */
.hero{
  position:relative;padding:90px 0 70px;background:var(--secondary);color:#fff;
  background-size:cover;background-position:center;
  text-align:center;
  min-height:100vh;display:flex;align-items:center;justify-content:center;
}
.hero::before{content:"";position:absolute;inset:0;background:rgba(0,0,0,0.45);}
.hero .wrap{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;}
.hero .eyebrow{font-family:var(--mono);font-size:0.78rem;letter-spacing:0.25em;text-transform:uppercase;color:var(--accent);display:block;margin-bottom:14px;order:1;}
.hero h1{font-family:var(--serif);font-size:clamp(2.2rem,6vw,3.8rem);font-weight:700;margin-bottom:16px;order:2;}
.hero p{max-width:60ch;margin:0 auto 28px;font-size:1.05rem;color:rgba(255,255,255,0.9);order:3;}
.hero-ctas{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;order:4;}
.btn-lg{
  font-weight:700;font-size:0.95rem;padding:14px 28px;border-radius:999px;
}
.btn-lg.primary{background:var(--primary);color:#fff;}
.btn-lg.primary:hover{filter:brightness(1.1);text-decoration:none;}
.btn-lg.ghost{background:transparent;color:#fff;border:2px solid rgba(255,255,255,0.6);}
.btn-lg.ghost:hover{border-color:#fff;text-decoration:none;}

/* ---------- MARQUEE ---------- */
.marquee{background:var(--primary);color:#fff;overflow:hidden;white-space:nowrap;padding:10px 0;}
.marquee-track{display:inline-block;font-family:var(--mono);font-weight:700;font-size:0.9rem;letter-spacing:0.08em;animation:marquee 22s linear infinite;}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- LAYOUT / SECTIONS ---------- */
main{padding-bottom:0;}
.section{padding:56px 0;}
.section.alt{background:var(--card);}
.section h2{font-family:var(--serif);font-size:clamp(1.6rem,3.5vw,2.2rem);margin-bottom:10px;}
.section .lede{color:var(--text);opacity:.75;max-width:70ch;margin-bottom:28px;}
.eyebrow-sm{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.15em;text-transform:uppercase;color:var(--primary);display:block;margin-bottom:8px;}

/* ---------- MENU ---------- */
.menu-cat{margin-bottom:40px;}
.menu-cat h3{font-family:var(--serif);font-size:1.3rem;margin-bottom:16px;padding-bottom:8px;border-bottom:2px solid var(--primary);}
.menu-item{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px dashed var(--linha);}
.menu-item:last-child{border-bottom:none;}
.menu-item-main{flex:1;}
.menu-item-name{font-weight:700;font-size:1rem;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.menu-item-desc{font-size:0.85rem;opacity:.75;margin-top:3px;}
.menu-item-price{font-family:var(--mono);font-weight:700;color:var(--primary);white-space:nowrap;align-self:start;}
.tag{
  font-family:var(--mono);font-size:0.62rem;text-transform:uppercase;letter-spacing:.04em;
  padding:2px 8px;border-radius:999px;background:var(--bg);border:1px solid var(--linha);color:var(--text);opacity:.85;
}
.tag.vegano{border-color:#4A7856;color:#4A7856;}
.tag.vegetariano{border-color:#7A9B57;color:#7A9B57;}
.tag.sem_glúten{border-color:var(--accent);color:#8a5e13;}

/* ---------- CARDS / GRID ---------- */
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;}
.card{background:var(--card);border:1px solid var(--linha);border-radius:12px;padding:22px;}
.card h3{font-family:var(--serif);font-size:1.1rem;margin-bottom:8px;}

/* ---------- REVIEWS ---------- */
.review-card{background:var(--card);border:1px solid var(--linha);border-radius:12px;padding:20px;}
.review-stars{color:var(--accent);font-size:1rem;letter-spacing:2px;margin-bottom:8px;}
.review-quote{font-style:italic;margin-bottom:10px;}
.review-author{font-family:var(--mono);font-size:0.75rem;opacity:.7;}

/* ---------- PHOTOS ---------- */
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;}
.photo-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:10px;}

/* ---------- PHOTO STRIP (horizontal scroll, above footer) ---------- */
.photo-strip-section{background:var(--secondary);padding:24px 0;}
.photo-strip{
  display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;
  scroll-snap-type:x proximity;
}
.photo-strip img{
  width:220px;height:150px;object-fit:cover;border-radius:10px;flex-shrink:0;
  scroll-snap-align:start;
}

/* ---------- INFO / HOURS / LOCAL ---------- */
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;}
.info-block h3{font-family:var(--mono);font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--primary);margin-bottom:8px;}
.info-block p{margin-bottom:4px;}
.map-embed{border:0;width:100%;height:280px;border-radius:12px;}

/* ---------- RESERVATION FORM ---------- */
.res-form{max-width:560px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:0.82rem;font-weight:700;margin-bottom:6px;}
.field input,.field textarea,.field select{
  width:100%;padding:11px 12px;border:1px solid var(--linha);border-radius:8px;
  font-family:var(--sans);font-size:0.92rem;background:var(--card);color:var(--text);
}
.field textarea{min-height:90px;resize:vertical;}
.bi-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-status{margin-top:14px;font-size:0.88rem;padding:10px 14px;border-radius:8px;}
.form-status.ok{background:#E8F3EA;color:#2E5F3B;}
.form-status.err{background:#FBE7E5;color:#8A2B22;}
button[type="submit"],.btn-submit{
  background:var(--primary);color:#fff;font-weight:700;font-size:0.92rem;
  padding:13px 24px;border:none;border-radius:999px;cursor:pointer;
}
button[type="submit"]:hover{filter:brightness(1.1);}

/* ---------- FOOTER ---------- */
footer{background:var(--secondary);color:rgba(255,255,255,0.85);padding:40px 0;margin-top:40px;}
footer .wrap{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;}
footer a{color:rgba(255,255,255,0.85);}
footer h4{font-family:var(--mono);font-size:0.72rem;letter-spacing:0.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px;}
footer p{margin-bottom:4px;font-size:0.88rem;}

/* ---------- PERSISTENT BOTTOM BAR (marquee + TeamInova credit, always visible) ---------- */
.site-bottom-bar{position:fixed;left:0;right:0;bottom:0;z-index:70;}
.site-bottom-bar .marquee{margin:0;}
.site-credit-bar{
  display:flex;align-items:center;justify-content:center;gap:9px;
  background:rgba(20,20,20,0.92);backdrop-filter:blur(2px);
  padding:7px 16px;border-top:1px solid rgba(255,255,255,0.15);
}
.site-credit-bar img{height:18px;width:auto;flex-shrink:0;}
.site-credit-bar p{margin:0;font-size:0.74rem;color:rgba(255,255,255,0.8);}
.site-credit-bar a{color:#fff;text-decoration:underline;}

/* Hidden until common.js finishes applying fetched content, avoids FOUC */
body:not(.content-ready) [data-loading-hide]{visibility:hidden;}

@media(max-width:700px){
  .nav-inner{padding:12px 16px;gap:8px;}
  .brand-logo{height:30px;}
  .brand strong{font-size:1.05rem;}
  .brand small{display:none;}
  .nav-right{order:2;gap:6px;}
  .nav-logo-link{display:none;}
  .btn-order{padding:7px 12px;font-size:0.72rem;}
  .nav-admin{padding:5px 8px;font-size:0.66rem;}
  .lang-select{padding:5px 7px;font-size:0.66rem;}
  .nav-toggle{display:flex;order:3;}
  .nav-links-wrap{order:4;flex-basis:100%;max-height:0;overflow:hidden;transition:max-height .25s ease;}
  .nav-links-wrap.open{max-height:500px;}
  .nav-links{flex-direction:column;gap:2px;padding:10px 0 4px;width:100%;}
  .nav-links a{display:block;}
  .hero{min-height:100svh;padding:70px 0 50px;}
  .bi-row{grid-template-columns:1fr;}
  .menu-item{flex-direction:column;gap:4px;}
  footer .wrap{flex-direction:column;}
  .footer-credit{flex-wrap:wrap;}
}
