﻿:root{
  --rojo:#6f2040;
  --rojo-vivo:#912751;
  --rojo-oscuro:#471529;
  --rojo-profundo:#280b17;
  --dorado:#6f2040;
  --dorado-vivo:#491329;
  --dorado-suave:#9f3861;
  --naranja:#912751;
  --rosa-chino:#912751;
  --crema:#6f2040;
  --negro:#f1e8e4;
  --negro-suave:#e6d2cc;
  --gris-suave:#d9beb6;
  --linea:#c46e90;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  font-family:'Jost',sans-serif;
  background:var(--negro);
  color:#2e0f1c;
  overflow-x:hidden;
  line-height:1.7;
  font-weight:300;
  font-size:15px;
}
a{text-decoration:none;color:inherit}
::selection{background:#6f2040;color:#f4ebef}

/* Scrollbar */
::-webkit-scrollbar{width:12px}
::-webkit-scrollbar-track{background:var(--negro-suave)}
::-webkit-scrollbar-thumb{background:var(--rojo-oscuro);border-radius:10px}
::-webkit-scrollbar-thumb:hover{background:var(--rojo)}

/* Patrón decorativo */
.pattern-bg{
  position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 15% 25%, rgba(111,32,64,.08) 0, transparent 38%),
    radial-gradient(circle at 85% 75%, rgba(111,32,64,.14) 0, transparent 45%),
    radial-gradient(circle at 50% 50%, rgba(111,32,64,.06) 0, transparent 60%);
  pointer-events:none;
  z-index:0;
}

/* Linterna decorativa */
.lantern{
  position:absolute;
  width:60px;height:80px;
  background:radial-gradient(ellipse at center,#6f2040,#280b17 70%);
  border-radius:50%/40%;
  box-shadow:0 0 30px rgba(111,32,64,.55),inset 0 -10px 20px rgba(0,0,0,.4),inset 0 8px 15px rgba(255,255,255,.1);
  opacity:.65;
  animation:swing 4s ease-in-out infinite alternate;
}
.lantern::before{
  content:'';position:absolute;top:-15px;left:50%;width:2px;height:15px;background:var(--dorado);transform:translateX(-50%);
}
.lantern::after{
  content:'';position:absolute;bottom:-12px;left:50%;width:14px;height:14px;background:var(--dorado);transform:translateX(-50%);border-radius:0 0 50% 50%;
  box-shadow:0 4px 0 -2px var(--dorado);
}
@keyframes swing{from{transform:rotate(-5deg)}to{transform:rotate(5deg)}}

/* Confeti chino - puntos dorados flotantes */
.confetti{
  position:absolute;
  width:8px;height:8px;
  background:var(--dorado);
  border-radius:50%;
  opacity:.6;
  animation:float 6s ease-in-out infinite;
  box-shadow:0 0 10px var(--dorado);
}
@keyframes float{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-30px) rotate(180deg)}
}

/* NAV */
nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  padding:16px 6%;
  display:flex;justify-content:space-between;align-items:center;
  background:rgba(241,232,228,.75);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  border-bottom:2px solid rgba(196,110,144,.15);
  transition:all .3s ease;
}
nav.scrolled{
  background:rgba(241,232,228,.97);
  padding:10px 6%;
  border-bottom-color:rgba(196,110,144,.25);
  box-shadow:0 4px 20px rgba(111,32,64,.08);
}
.logo{
  font-family:'Jost',sans-serif;
  font-weight:400;
  font-size:.92rem;
  letter-spacing:.32em;
  text-transform:uppercase;
  color:var(--crema);
  text-decoration:none !important;
  border:none;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.logo b{color:var(--dorado);font-weight:500}
.logo-icon{height:34px;width:auto;display:block}

nav ul{display:flex;list-style:none;gap:32px;align-items:center}
nav ul a{
  color:#2e0f1c;text-decoration:none;font-weight:300;font-size:.82rem;
  position:relative;transition:color .25s;
  letter-spacing:.18em;text-transform:uppercase;
}
nav ul a:hover{color:var(--dorado)}
nav ul a::after{
  content:'';position:absolute;left:0;bottom:-6px;height:1px;width:0;
  background:var(--dorado);
  transition:width .3s;
}
nav ul a:hover::after,nav ul a.active::after{width:100%}

.nav-cta{
  background:transparent !important;
  color:var(--dorado) !important;
  padding:10px 22px;
  border-radius:0;
  font-size:.75rem !important;
  letter-spacing:.25em;
  transition:all .3s !important;
  border:1px solid var(--dorado);
  font-weight:400;
}
.nav-cta:hover{background:var(--dorado) !important;color:var(--negro) !important}
.nav-cta::after{display:none}

.lang-switch{
  display:flex;align-items:center;gap:2px;
  border:1px solid rgba(196,110,144,.3);
  padding:2px;
}
.lang-switch button{
  background:transparent;border:none;cursor:pointer;
  color:#2e0f1c;font-family:'Jost',sans-serif;font-size:.68rem;
  letter-spacing:.15em;font-weight:400;padding:6px 12px;
  transition:all .25s;
}
.lang-switch button.active{background:var(--rojo);color:var(--negro)}
.lang-switch button::after{display:none}

/* Nav oscura (todas las páginas excepto la portada) */
nav.nav-dark{
  background:linear-gradient(160deg,#3d1220 0%,#1a0810 100%);
  border-bottom-color:rgba(244,235,239,.15);
}
nav.nav-dark.scrolled{
  background:linear-gradient(160deg,#3d1220 0%,#1a0810 100%);
  border-bottom-color:rgba(244,235,239,.2);
}
nav.nav-dark .logo{color:var(--negro)}
nav.nav-dark .logo b{color:var(--negro-suave)}
nav.nav-dark ul a{color:var(--negro)}
nav.nav-dark ul a:hover{color:var(--negro-suave)}
nav.nav-dark ul a::after{background:var(--negro-suave)}
nav.nav-dark .nav-cta{color:var(--negro) !important;border-color:var(--negro)}
nav.nav-dark .nav-cta:hover{background:var(--negro) !important;color:var(--rojo-oscuro) !important}
nav.nav-dark .lang-switch{border-color:rgba(241,232,228,.3)}
nav.nav-dark .lang-switch button{color:var(--negro)}
nav.nav-dark .lang-switch button.active{background:var(--negro);color:var(--rojo-oscuro)}
nav.nav-dark .menu-toggle{color:var(--negro)}
.menu-toggle{display:none;background:none;border:none;color:var(--dorado);font-size:1.7rem;cursor:pointer}

@media(max-width:920px){
  nav ul{
    position:absolute;top:100%;right:0;left:0;
    flex-direction:column;background:linear-gradient(160deg,#3d1220 0%,#1a0810 100%);
    padding:30px;gap:22px;
    transform:translateY(-130%);transition:transform .35s ease;
    border-bottom:2px solid var(--negro);
  }
  nav ul a{color:var(--negro)}
  nav ul a:hover{color:var(--negro-suave)}
  .nav-cta{color:var(--negro) !important;border-color:var(--negro)}
  .nav-cta:hover{background:var(--negro) !important;color:var(--rojo-oscuro) !important}
  .lang-switch{border-color:rgba(241,232,228,.3)}
  .lang-switch button{color:var(--negro)}
  .lang-switch button.active{background:var(--negro);color:var(--rojo-oscuro)}
  nav ul.open{transform:translateY(0)}
  .menu-toggle{display:block}
}

/* ============= HERO / PORTADA ============= */
.hero{
  position:relative;
  min-height:100vh;
  display:flex;align-items:center;justify-content:center;
  text-align:center;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(10,2,2,.7) 0%,rgba(15,3,3,.65) 35%,rgba(15,3,3,.9) 100%),
    url('assets/hero.jpg') center/cover no-repeat;
  background-attachment:fixed;
}
.hero::after{
  content:'';
  position:absolute;inset:0;
  background:radial-gradient(ellipse at center,rgba(10,2,2,.2) 0%,rgba(5,1,1,.8) 100%);
  z-index:1;
  pointer-events:none;
}
.hero::before{
  content:'';
  position:absolute;inset:0;
  background:
    repeating-linear-gradient(45deg,transparent 0 70px,rgba(111,32,64,.04) 70px 71px),
    repeating-linear-gradient(-45deg,transparent 0 70px,rgba(111,32,64,.04) 70px 71px);
  z-index:1;
}
.hero-frame{
  position:absolute;
  inset:40px 5%;
  border:1px solid rgba(234,200,213,.25);
  z-index:2;
  pointer-events:none;
}
.hero-frame::before,.hero-frame::after{
  content:'';position:absolute;width:30px;height:30px;border:1px solid #EAC8D5;
}
.hero-frame::before{top:-1px;left:-1px;border-right:none;border-bottom:none}
.hero-frame::after{bottom:-1px;right:-1px;border-left:none;border-top:none}

.hero-content{position:relative;z-index:3;padding:0 30px;max-width:920px;animation:fadeUp 1.6s ease}
@keyframes fadeUp{from{opacity:0;transform:translateY(25px)}to{opacity:1;transform:none}}

.hero-mini{
  font-family:'Jost',sans-serif;
  color:#EAC8D5;
  letter-spacing:.5em;
  font-size:.72rem;
  text-transform:uppercase;
  margin-bottom:2rem;
  opacity:.9;
  font-weight:500;
}
.hero-mini::before,.hero-mini::after{
  content:'—';margin:0 14px;color:rgba(234,200,213,.5);
}
.hero-divider{
  display:flex;align-items:center;justify-content:center;gap:18px;
  margin:1.5rem auto 2rem;
}
.hero-divider::before,.hero-divider::after{
  content:'';height:1px;width:90px;background:rgba(234,200,213,.5);
}
.hero-divider span{
  width:4px;height:4px;background:#EAC8D5;border-radius:50%;
  display:inline-block;
}

.hanzi-big{
  font-family:'Noto Serif SC',serif;
  color:#EAC8D5;
  font-size:clamp(2.5rem,6vw,4rem);
  font-weight:600;
  margin-bottom:1.2rem;
  letter-spacing:.3em;
  opacity:.88;
  line-height:1;
}

.hero h1{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.6rem,6vw,4.5rem);
  font-weight:400;
  color:#EAC8D5;
  letter-spacing:.04em;
  margin-bottom:.5rem;
  line-height:1.1;
  text-shadow:0 4px 30px rgba(0,0,0,.7);
}
.hero h1 span{
  color:#EAC8D5;
  font-style:italic;
  font-weight:500;
}
.hero p{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(1.05rem,1.6vw,1.3rem);
  color:#f0dde3;
  max-width:600px;margin:0 auto 2.8rem;
  font-weight:400;
  font-style:italic;
  line-height:1.6;
  letter-spacing:.01em;
}
.hero-cta{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

.btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:15px 36px;
  border-radius:0;
  font-family:'Jost',sans-serif;
  font-weight:500;font-size:.78rem;
  letter-spacing:.28em;text-transform:uppercase;
  text-decoration:none;
  cursor:pointer;
  transition:all .4s ease;
  position:relative;overflow:hidden;
}
.btn-primary{
  background:var(--rojo);
  color:var(--negro);
  border:1px solid var(--negro);
}
.btn-primary:hover{
  background:var(--rojo-oscuro);
  color:var(--negro);
  border-color:var(--negro);
}
.btn-ghost{
  background:transparent;
  color:var(--negro);
  border:1px solid var(--rojo);
}
.btn-ghost:hover{
  background:var(--rojo);
  border-color:var(--negro);
  color:var(--negro);
}

.scroll-indicator{
  position:absolute;bottom:50px;left:50%;transform:translateX(-50%);z-index:3;
  color:#f4ebef;
  font-family:'Jost',sans-serif;font-size:.65rem;
  letter-spacing:.4em;text-transform:uppercase;
  opacity:.7;
  display:flex;flex-direction:column;align-items:center;gap:14px;
}
.scroll-indicator::after{
  content:'';width:1px;height:50px;
  background:linear-gradient(to bottom,#f4ebef,transparent);
  animation:scrollLine 2.5s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{transform:scaleY(0);transform-origin:top}
  50%{transform:scaleY(1);transform-origin:top}
  51%{transform-origin:bottom}
  100%{transform:scaleY(0);transform-origin:bottom}
}

/* ============= SECCIONES GENERAL ============= */
section{
  position:relative;
  padding:110px 6%;
  overflow:hidden;
}
.page-head{
  padding:0 6% 60px;
  text-align:center;
  position:relative;
}
.page-head-band{
  width:100vw;
  margin-left:calc(50% - 50vw);
  padding:88px 6% 40px;
  margin-bottom:50px;
  position:relative;
  z-index:1;
}
.page-head-band .section-title{margin-bottom:0;margin-top:-180px;position:relative;z-index:2}
.dragon-row{
  position:relative;
  width:100vw;
  margin-left:calc(50% - 50vw);
  height:230px;
  margin-bottom:14px;
  z-index:1;
  overflow:hidden;
  pointer-events:none;
  user-select:none;
}
.dragon-row img{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  height:auto;
  display:block;
}
.dragon-row .dragon-big{
  left:-15px;
  width:380px;
  max-width:52vw;
}
.dragon-row .dragon-small{
  right:-10px;
  width:340px;
  max-width:46vw;
}

.section-title{
  text-align:center;
  margin-bottom:60px;
  position:relative;z-index:2;
}
.section-title .small{
  display:block;
  font-family:'Jost',sans-serif;
  color:var(--dorado);
  letter-spacing:.45em;
  font-size:.68rem;
  text-transform:uppercase;
  margin-bottom:1.2rem;
  font-weight:400;
  opacity:.9;
}
.section-title h2{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(2.2rem,4.5vw,3.4rem);
  color:var(--crema);
  letter-spacing:.02em;
  margin-bottom:0;
  font-weight:400;
}
.section-title h2 .accent{
  color:var(--dorado);
  font-style:italic;
  font-weight:300;
}
.section-title .deco{
  display:flex;align-items:center;justify-content:center;gap:18px;margin-top:1.4rem;
}
.section-title .deco::before,
.section-title .deco::after{
  content:'';height:1px;width:60px;background:rgba(196,110,144,.4);
}
.section-title .deco span{
  width:5px;height:5px;background:var(--dorado);border-radius:50%;display:inline-block;
}

/* ============= PÁGINAS LEGALES ============= */
.legal{
  background:linear-gradient(180deg,var(--negro) 0%,var(--negro-suave) 100%);
}
.legal-content{
  max-width:760px;margin:0 auto;
  position:relative;z-index:2;
}
.legal-content h3{
  font-family:'Cormorant Garamond',serif;color:var(--dorado);
  font-size:1.4rem;font-style:italic;font-weight:400;
  margin:38px 0 12px;
  padding-bottom:8px;border-bottom:1px solid rgba(196,110,144,.25);
}
.legal-content h3:first-child{margin-top:0}
.legal-content p{margin-bottom:14px;font-size:.95rem;line-height:1.8}
.legal-content ul{margin:0 0 14px 20px;font-size:.95rem;line-height:1.8}
.legal-content li{margin-bottom:6px}
.legal-content a{color:var(--dorado);border-bottom:1px solid transparent;transition:border-color .3s}
.legal-content a:hover{border-bottom-color:var(--dorado)}
.legal-content .legal-updated{
  font-size:.78rem;color:#a8677d;font-style:italic;margin-bottom:40px;text-align:center;
}
.legal-content .cookie-config-link{
  display:inline-block;margin-top:6px;
  font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--negro);background:var(--rojo);
  padding:10px 22px;border:none;cursor:pointer;border-radius:0;
  transition:all .3s;
}
.legal-content .cookie-config-link:hover{background:var(--rojo-oscuro)}

/* ============= INICIO (ubicación/horario/reservas) ============= */
.inicio{
  background:linear-gradient(180deg,var(--negro) 0%,var(--negro-suave) 100%);
}
.inicio-wrap{
  max-width:1200px;margin:0 auto;position:relative;z-index:2;
}

.inicio-img{
  position:relative;
  max-width:480px;
  margin:60px auto 0;
  padding:0;
  background:transparent;
  border-radius:0;
  box-shadow:0 25px 50px rgba(111,32,64,.2);
  transition:transform .5s;
}
.inicio-img::before{
  content:'';position:absolute;inset:-14px;border:1px solid rgba(196,110,144,.25);pointer-events:none;
}
.inicio-img img{filter:saturate(.9) contrast(1.02)}
@keyframes gradientShift{0%,100%{background-position:0 50%}50%{background-position:100% 50%}}
.inicio-img:hover{transform:scale(1.015)}
.inicio-img img{
  display:block;
  width:100%;
  height:auto;
  border-radius:8px;
  background:var(--negro);
}

.inicio-cards{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
  align-items:stretch;
}
.info-card{
  background:linear-gradient(160deg,var(--rojo) 0%,var(--rojo-oscuro) 100%);
  border:1px solid var(--rojo-oscuro);
  border-top:2px solid #f4ebef;
  padding:36px 28px;
  border-radius:4px;
  position:relative;
  overflow:hidden;
  transition:all .35s;
  display:flex;flex-direction:column;
  text-align:center;
  box-shadow:0 15px 35px rgba(111,32,64,.2);
}
.info-card:hover{
  transform:translateY(-4px);
  border-top-color:#f4ebef;
  box-shadow:0 20px 45px rgba(111,32,64,.3);
}
.info-card .icn-big{
  width:38px;height:38px;
  margin:0 auto 18px;
  display:flex;align-items:center;justify-content:center;
  color:#f4ebef;
}
.info-card .icn-big svg{width:100%;height:100%;stroke:#f4ebef;stroke-width:1.2;fill:none}
.info-card h4{
  font-family:'Cormorant Garamond',serif;
  color:#f4ebef;
  font-size:1.5rem;letter-spacing:.04em;
  margin-bottom:16px;
  font-weight:400;font-style:italic;
}
.info-card p{color:#f0dde3;font-size:.95rem;line-height:1.7;font-weight:300}
.info-card .horario-dia{
  font-family:'Jost',sans-serif;color:#f4ebef;font-size:.7rem;
  letter-spacing:.35em;font-weight:400;margin-bottom:12px;text-transform:uppercase;
}
.info-card .horario-hora{
  font-family:'Cormorant Garamond',serif;color:#f4ebef;font-size:1.4rem;
  letter-spacing:.03em;font-weight:400;line-height:1.7;
}
.info-card .horario-sub{font-size:.78rem;color:#e3b7c4;margin-top:14px;font-style:italic;letter-spacing:.05em}
.info-card .horario-nota{
  font-size:.72rem;color:#e3b7c4;margin-top:12px;letter-spacing:.03em;
  padding-top:12px;border-top:1px dotted rgba(244,235,239,.3);
}
.info-card a{color:#f0dde3;transition:color .2s}
.info-card a:hover{color:#f4ebef}
.info-card .tel-link{
  font-family:'Cormorant Garamond',serif;font-weight:500;font-size:1.6rem;
  color:#f4ebef;letter-spacing:.06em;
  display:inline-block;margin-top:12px;
  padding:0;border:none;border-radius:0;
  transition:all .3s;
  border-bottom:1px solid transparent;
}
.info-card .tel-link:hover{background:transparent;color:#f4ebef;border-bottom-color:#f4ebef}
.info-card .reservas-nota{
  font-size:.72rem;color:#e3b7c4;margin-top:16px;letter-spacing:.03em;
  padding-top:12px;border-top:1px dotted rgba(244,235,239,.3);
}
.info-card .btn-mapa{
  margin-top:18px;
  display:inline-block;
  font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.3em;font-weight:400;
  color:#f4ebef;text-transform:uppercase;
  padding:10px 22px;border:1px solid #f4ebef;border-radius:0;
  transition:all .3s;
}
.info-card .btn-mapa:hover{background:#f4ebef;color:var(--rojo-oscuro)}

.mapa-full{
  margin-top:50px;
  border-radius:0;overflow:hidden;
  border:1px solid rgba(196,110,144,.3);
  box-shadow:0 20px 50px rgba(111,32,64,.15);
  height:340px;
  max-width:1200px;margin-left:auto;margin-right:auto;
  filter:saturate(.9) contrast(.98);
}
.mapa-full iframe{width:100%;height:100%;border:0;display:block}

@media(max-width:920px){
  .inicio-cards{grid-template-columns:1fr;gap:18px}
  .inicio-img{margin-top:40px}
  .mapa-full{height:260px;margin-top:30px}
}

/* ============= AVISO GENERAL (alérgenos, antelación...) ============= */
.aviso-banner{
  max-width:900px;margin:55px auto 0;
  text-align:center;
  padding:16px 28px;
  border:1px solid var(--rojo-oscuro);
  background:linear-gradient(160deg,var(--rojo) 0%,var(--rojo-oscuro) 100%);
  color:#f0dde3;
  font-size:.85rem;
  letter-spacing:.02em;
  position:relative;z-index:2;
  box-shadow:0 10px 25px rgba(111,32,64,.2);
}
.aviso-banner strong{color:#f4ebef;font-weight:500}

/* ============= CARTA ============= */
.carta{
  background:linear-gradient(180deg,var(--negro-suave) 0%,var(--negro) 50%,var(--negro-suave) 100%);
}

.tabs{
  display:flex;justify-content:center;gap:18px;flex-wrap:wrap;
  margin-bottom:35px;position:relative;z-index:2;
}
.tab{
  padding:13px 36px;
  background:transparent;
  border:1px solid rgba(196,110,144,.35);
  color:#2e0f1c;
  font-family:'Jost',sans-serif;font-weight:400;
  letter-spacing:.3em;text-transform:uppercase;
  font-size:.72rem;
  border-radius:0;
  cursor:pointer;transition:all .35s;
}
.tab.active,.tab:hover{
  background:var(--dorado);
  color:var(--negro);
  border-color:var(--dorado);
}

.tab-panel{display:none}
.tab-panel.active{display:block;animation:fadeUp .6s}

/* Filtros de categoría */
.filtros{
  display:flex;justify-content:center;gap:10px;flex-wrap:wrap;
  margin-bottom:50px;position:relative;z-index:2;
}
.filtro{
  padding:9px 20px;
  background:transparent;
  border:1px solid rgba(196,110,144,.3);
  color:#7a3550;
  font-family:'Jost',sans-serif;font-weight:400;
  letter-spacing:.12em;text-transform:uppercase;
  font-size:.66rem;
  border-radius:20px;
  cursor:pointer;transition:all .3s;
}
.filtro.active,.filtro:hover{
  background:var(--dorado);
  color:var(--negro);
  border-color:var(--dorado);
}
/* Carta completa - categorías */
.carta-container{max-width:1100px;margin:0 auto}
.categoria{
  background:linear-gradient(160deg,var(--rojo) 0%,var(--rojo-oscuro) 100%);
  border:1px solid var(--rojo-oscuro);
  border-radius:2px;
  padding:38px 0 38px;
  margin-bottom:22px;
  position:relative;
  overflow:hidden;
  transition:all .4s,max-height .4s ease;
  box-shadow:0 15px 35px rgba(111,32,64,.2);
}
.categoria:hover{
  box-shadow:0 20px 45px rgba(111,32,64,.3);
}
.categoria.hidden{display:none}

.plato-grupo{
  grid-column:1 / -1;
  font-family:'Jost',sans-serif;color:#f4ebef;
  font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;font-weight:400;
  margin:18px 0 4px;padding-bottom:6px;
  border-bottom:1px solid rgba(244,235,239,.25);
}
.plato-grupo:first-child{margin-top:0}
.categoria-header{
  display:flex;align-items:center;gap:18px;
  margin:0 44px 24px;padding-bottom:16px;
  border-bottom:1px solid rgba(244,235,239,.25);
}
.categoria h3{
  font-family:'Cormorant Garamond',serif;
  color:#f4ebef;
  font-size:1.7rem;
  letter-spacing:.02em;
  display:flex;align-items:baseline;gap:20px;
  font-weight:400;
  font-style:italic;
}
.categoria h3 .cn{
  font-family:'Noto Serif SC',serif;
  color:#f4ebef;
  font-size:1.8rem;font-weight:400;
  margin-right:6px;
  line-height:1;
  font-style:normal;
}

.platos-list{
  display:grid;grid-template-columns:1fr 1fr;gap:10px 35px;
  margin:0 44px;
}
.plato-item{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:10px 0;
  border-bottom:1px dotted rgba(244,235,239,.2);
  transition:all .25s;
}
.plato-item:hover{padding-left:8px;border-bottom-color:#f4ebef}
.plato-item .nombre{color:#f0dde3;font-size:.95rem;font-weight:300;letter-spacing:.01em}
.plato-item .precio{
  color:#f4ebef;font-family:'Cormorant Garamond',serif;font-weight:500;
  font-size:1.05rem;white-space:nowrap;margin-left:12px;
}
.plato-item .dots{
  flex:1;border-bottom:1px dotted rgba(244,235,239,.2);
  margin:0 10px 5px;
}

@media(max-width:760px){
  .platos-list{grid-template-columns:1fr;gap:5px 0;margin:0 22px}
  .categoria-header{margin:0 22px 18px}
  .categoria{padding-bottom:25px}
}

/* Menú del día */
.menu-dia{
  max-width:780px;margin:0 auto;
  background:linear-gradient(160deg,var(--rojo) 0%,var(--rojo-oscuro) 100%);
  border:1px solid var(--rojo-oscuro);
  border-radius:0;
  padding:60px 50px;
  position:relative;
  box-shadow:0 30px 70px rgba(111,32,64,.25);
}
.menu-dia::before{
  content:'';position:absolute;inset:12px;border:1px solid rgba(244,235,239,.2);pointer-events:none;
}

.menu-precio{text-align:center;margin:25px 0 30px}
.menu-precio .label{
  font-family:'Jost',sans-serif;letter-spacing:.4em;color:#f4ebef;font-size:.68rem;text-transform:uppercase;
  display:block;font-weight:400;
}
.menu-precio .num{
  font-family:'Cormorant Garamond',serif;font-size:4.8rem;font-weight:400;
  color:#f4ebef;
  line-height:1;display:block;margin-top:10px;
  letter-spacing:.01em;
}
.menu-precio .num small{font-size:1.7rem;vertical-align:top;color:#f4ebef;opacity:.7;font-style:italic}
.menu-disponible{
  display:inline-block;
  margin-top:18px;
  font-family:'Jost',sans-serif;
  font-size:.68rem;
  letter-spacing:.32em;
  color:#f4ebef;
  text-transform:uppercase;
  padding:8px 18px;
  border:1px solid rgba(244,235,239,.4);
}

.menu-bloque{margin-bottom:28px}
.menu-bloque h4{
  font-family:'Cormorant Garamond',serif;color:#f4ebef;
  font-size:1.3rem;letter-spacing:.02em;
  margin-bottom:14px;
  padding-bottom:10px;border-bottom:1px solid rgba(244,235,239,.25);
  font-weight:400;font-style:italic;
}
.menu-bloque ul{list-style:none;color:#f0dde3;font-size:.95rem;columns:2;column-gap:30px;font-weight:300}
.menu-bloque li{padding:4px 0;display:flex;align-items:center;gap:10px;break-inside:avoid}
.menu-bloque li::before{content:'—';color:#f4ebef;opacity:.6}
@media(max-width:600px){.menu-bloque ul{columns:1}}

.menu-bebida{
  margin-top:36px;padding:24px;border-top:1px solid rgba(244,235,239,.25);
  font-size:.95rem;color:#f0dde3;text-align:center;
  background:rgba(0,0,0,.1);
  font-weight:300;
  font-family:'Cormorant Garamond',serif;
}
.menu-bebida .destacado{
  color:#f4ebef;font-family:'Jost',sans-serif;letter-spacing:.35em;
  font-size:.68rem;font-weight:400;text-transform:uppercase;
}
.menu-nota{font-size:.75rem;color:#e3b7c4;margin-top:20px;text-align:center;font-style:italic;letter-spacing:.05em}

/* ============= GALERÍA ============= */
.galeria{
  background:linear-gradient(180deg,var(--negro-suave) 0%,var(--negro) 100%);
}
.galeria-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
  gap:25px;max-width:1200px;margin:0 auto;
}
.foto-card{
  position:relative;
  border-radius:0;overflow:hidden;
  background:var(--negro-suave);
  transition:all .5s;
  cursor:pointer;
}
.foto-card:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px rgba(111,32,64,.2);
}
.foto-card .img-wrap{
  overflow:hidden;
  height:240px;
  position:relative;
}
.foto-card img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .7s;
}
.foto-card:hover img{transform:scale(1.12)}
.foto-card .img-wrap::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(transparent 50%,rgba(20,4,4,.6));
}
.foto-card-body{
  padding:24px 22px 26px;
  background:var(--negro-suave);
  text-align:center;
}
.foto-card h4{
  font-family:'Cormorant Garamond',serif;
  color:var(--crema);
  font-size:1.25rem;letter-spacing:.02em;
  margin-bottom:0;
  font-weight:400;
  font-style:italic;
}
.foto-card h4 .cn{
  font-family:'Noto Serif SC',serif;
  color:var(--dorado);font-weight:400;
  margin-right:10px;
  font-style:normal;
  font-size:1.1rem;
}
.foto-card p{color:#7a3550;font-size:.88rem;font-weight:300;line-height:1.5}

/* ============= RESPONSIVE MÓVIL ============= */
@media(max-width:768px){
  nav{padding:10px 5%}
  nav.scrolled{padding:8px 5%}
  .logo{font-size:.72rem;letter-spacing:.22em;gap:6px}
  .logo-icon{height:24px}

  section{padding:55px 5%}
  .page-head{padding:0 5% 35px}
  .page-head-band{padding:65px 5% 20px;margin-bottom:26px}
  .dragon-row{height:70px;margin-bottom:6px}
  .dragon-row .dragon-big{left:-8px;width:105px}
  .dragon-row .dragon-small{right:-8px;width:100px}
  .page-head-band .section-title{margin-top:-58px}
  .page-head-band .section-title h2{font-size:1.45rem}
  .page-head-band .section-title .small{letter-spacing:.25em}
  .section-title{margin-bottom:32px}
  .section-title .small{font-size:.6rem;letter-spacing:.35em;margin-bottom:.7rem}
  .section-title h2{font-size:1.7rem;letter-spacing:.02em}
  .section-title .deco{margin-top:.8rem}
  .section-title .deco::before,.section-title .deco::after{width:35px}

  .hero{min-height:85vh;background-attachment:scroll}
  .hero-frame{inset:25px 4%}
  .hero-mini{font-size:.62rem;letter-spacing:.35em;margin-bottom:1.2rem}
  .hero-mini::before,.hero-mini::after{margin:0 8px}
  .hanzi-big{font-size:2.4rem;letter-spacing:.2em;margin-bottom:.6rem}
  .hero h1{font-size:1.9rem;margin-bottom:.5rem}
  .hero-divider{margin:.8rem auto 1.2rem}
  .hero-divider::before,.hero-divider::after{width:55px}
  .hero p{font-size:.95rem;margin-bottom:1.6rem;padding:0 5px}
  .hero-cta{flex-direction:column;width:100%;padding:0 30px;gap:10px}
  .hero-cta .btn{width:100%;justify-content:center;padding:13px 18px;font-size:.7rem;letter-spacing:.22em}

  .floating-cn{font-size:7rem;opacity:.4}

  .inicio-img{max-width:90%;margin-top:35px}
  .inicio-img::before{inset:-8px}
  .inicio-cards{gap:14px}
  .info-card{padding:24px 22px}
  .info-card .icn-big{width:30px;height:30px;margin-bottom:12px}
  .info-card h4{font-size:1.2rem;margin-bottom:10px}
  .info-card p{font-size:.88rem}
  .info-card .horario-hora{font-size:1.15rem}
  .info-card .horario-dia{font-size:.62rem;letter-spacing:.3em;margin-bottom:8px}
  .info-card .horario-sub{font-size:.72rem;margin-top:10px}
  .info-card .horario-nota{font-size:.66rem}
  .info-card .tel-link{font-size:1.35rem;margin-top:8px}
  .info-card .btn-mapa{font-size:.6rem;padding:9px 18px;letter-spacing:.25em;margin-top:14px}
  .mapa-full{height:220px;margin-top:25px}

  .aviso-banner{font-size:.78rem;padding:14px 18px;margin-top:35px}

  .tabs{gap:10px;margin-bottom:22px}
  .tab{padding:10px 20px;font-size:.62rem;letter-spacing:.25em}
  .filtros{gap:8px;margin-bottom:30px}
  .filtro{padding:8px 16px;font-size:.6rem}

  .categoria{padding-bottom:20px}
  .plato-grupo{font-size:.6rem;letter-spacing:.22em;margin:14px 0 4px}
  .categoria-header{gap:14px;margin:0 22px 18px;padding-bottom:12px}
  .categoria h3{font-size:1.25rem}
  .categoria h3 .cn{font-size:1.4rem}
  .plato-item{padding:8px 0}
  .plato-item .nombre{font-size:.88rem}
  .plato-item .precio{font-size:.92rem}

  .menu-dia{padding:40px 24px 28px}
  .menu-dia::before{inset:8px}
  .menu-precio{margin:10px 0 24px}
  .menu-precio .label{font-size:.6rem;letter-spacing:.32em}
  .menu-precio .num{font-size:3.4rem}
  .menu-precio .num small{font-size:1.2rem}
  .menu-bloque{margin-bottom:22px}
  .menu-bloque h4{font-size:1.05rem;margin-bottom:10px}
  .menu-bloque ul{font-size:.88rem}
  .menu-bebida{padding:18px;margin-top:24px;font-size:.88rem}
  .menu-bebida .destacado{font-size:.6rem;letter-spacing:.3em}
  .menu-nota{font-size:.7rem;margin-top:14px}

  /* Galería en collage (columnas tipo mosaico, sin scroll horizontal) */
  .galeria-grid{
    display:block;
    columns:2;
    column-gap:12px;
  }
  .foto-card{
    display:inline-block;
    width:100%;
    margin-bottom:12px;
    break-inside:avoid;
  }
  .foto-card:nth-child(3n+1) .img-wrap{height:220px}
  .foto-card:nth-child(3n+2) .img-wrap{height:150px}
  .foto-card:nth-child(3n) .img-wrap{height:180px}
  .foto-card .img-wrap{height:170px}
  .foto-card-body{padding:16px 14px 18px}
  .foto-card h4{font-size:1.05rem}
  .foto-card h4 .cn{font-size:.95rem;margin-right:8px}

  footer{padding:45px 18px 28px}
  .footer-cn{font-size:1.05rem;letter-spacing:.4em;margin-bottom:14px}
  footer h3{font-size:1.2rem;margin-bottom:10px}
  footer p{font-size:.78rem;margin-top:4px}
  footer .small{font-size:.66rem;margin-top:14px}
}

@media(max-width:420px){
  section{padding:45px 5%}
  .hero h1{font-size:1.7rem}
  .hanzi-big{font-size:2.1rem}
  .section-title h2{font-size:1.5rem}
  .menu-dia{padding:32px 20px 24px}
  .menu-precio .num{font-size:3rem}
  .categoria{padding-bottom:18px}
  .foto-card{flex:0 0 78%}
}

/* ============= FOOTER ============= */
footer{
  background:#e3e0df;
  text-align:center;
  padding:70px 20px 40px;
  border-top:1px solid rgba(196,110,144,.2);
  position:relative;
}
.footer-cn{
  font-family:'Noto Serif SC',serif;
  color:var(--rojo);
  font-size:1.4rem;letter-spacing:.45em;font-weight:400;margin-bottom:20px;
  opacity:.85;
}
footer h3{
  font-family:'Cormorant Garamond',serif;color:var(--rojo);
  letter-spacing:.05em;margin-bottom:14px;font-weight:400;font-size:1.5rem;
  font-style:italic;
}
footer p{color:#7a3550;font-size:.85rem;margin-top:8px;font-weight:300;letter-spacing:.04em}
footer .small{font-size:.72rem;color:#a8677d;margin-top:20px;letter-spacing:.08em}
footer a{color:var(--dorado);font-weight:400;border-bottom:1px solid transparent;transition:all .3s}
footer a:hover{border-bottom-color:var(--dorado)}

.footer-legal{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px;
  margin-top:28px;padding-top:22px;
  border-top:1px solid rgba(196,110,144,.2);
}
.footer-legal a,.footer-legal button{
  background:none;border:none;cursor:pointer;padding:0;
  font-family:'Jost',sans-serif;color:#7a3550;font-size:.72rem;
  letter-spacing:.06em;font-weight:300;
  border-bottom:1px solid transparent;transition:all .3s;
}
.footer-legal a:hover,.footer-legal button:hover{color:var(--dorado);border-bottom-color:var(--dorado)}
.footer-legal .sep{color:#a8677d;font-size:.7rem}

/* Reveal */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s ease}
.reveal.visible{opacity:1;transform:none}
.reveal-left{opacity:0;transform:translateX(-40px);transition:all 1s}
.reveal-right{opacity:0;transform:translateX(40px);transition:all 1s}
.reveal-left.visible,.reveal-right.visible{opacity:1;transform:none}
.reveal-scale{opacity:0;transform:scale(.94);transition:all .85s}
.reveal-scale.visible{opacity:1;transform:scale(1)}

/* Si JS está deshabilitado, todo visible */
.no-js .reveal,.no-js .reveal-left,.no-js .reveal-right,.no-js .reveal-scale{
  opacity:1 !important;transform:none !important;
}

.floating-cn{
  position:absolute;
  font-family:'Noto Serif SC',serif;
  color:rgba(111,32,64,.07);
  font-size:16rem;
  font-weight:bold;
  pointer-events:none;
  z-index:0;
  user-select:none;
}

/* ============= BANNER DE COOKIES ============= */
.cookie-banner{
  position:fixed;left:0;right:0;bottom:0;z-index:500;
  max-width:640px;margin:0 auto 20px;
  left:20px;right:20px;
  background:linear-gradient(160deg,var(--rojo) 0%,var(--rojo-oscuro) 100%);
  border:1px solid var(--rojo-oscuro);
  box-shadow:0 20px 50px rgba(0,0,0,.35);
  padding:26px 28px;
  transform:translateY(140%);
  opacity:0;
  transition:transform .5s ease,opacity .5s ease;
  pointer-events:none;
}
.cookie-banner.visible{transform:translateY(0);opacity:1;pointer-events:auto}
.cookie-banner-text{color:#f0dde3;font-size:.85rem;line-height:1.6;margin-bottom:16px}
.cookie-options{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.cookie-option{display:flex;align-items:flex-start;gap:10px;font-size:.78rem;color:#f0dde3;line-height:1.5;cursor:pointer}
.cookie-option input{margin-top:3px;flex-shrink:0}
.cookie-option strong{color:#f4ebef}
.cookie-actions{display:flex;flex-wrap:wrap;gap:10px}
.cookie-btn{
  font-family:'Jost',sans-serif;font-size:.68rem;letter-spacing:.15em;text-transform:uppercase;
  padding:11px 18px;border:1px solid #f4ebef;background:transparent;color:#f4ebef;
  cursor:pointer;border-radius:0;transition:all .3s;
}
.cookie-btn-accept{background:#f4ebef;color:var(--rojo-oscuro)}
.cookie-btn:hover{background:#f4ebef;color:var(--rojo-oscuro)}
@media(max-width:600px){
  .cookie-banner{left:12px;right:12px;padding:20px 18px;margin-bottom:12px}
  .cookie-actions{flex-direction:column}
  .cookie-btn{width:100%;text-align:center}
}

.mapa-consent{
  height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:16px;padding:30px;text-align:center;
  background:var(--negro-suave);
}
.mapa-consent p{color:#7a3550;font-size:.9rem;max-width:400px}
.mapa-consent button{
  font-family:'Jost',sans-serif;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--negro);background:var(--rojo);border:none;
  padding:12px 26px;cursor:pointer;transition:all .3s;
}
.mapa-consent button:hover{background:var(--rojo-oscuro)}
