/* ===== NANA Omakase — estilos base ===== */
:root{
  --negro: #0a0a0a;
  --negro-2: #111111;
  --carmin: #b91c1c;
  --carmin-claro: #d63333;
  --dorado: #c9a961;
  --texto: #ece7e0;
  --texto-suave: #a89f93;
  --font-titulo: 'Playfair Display', serif;
  --font-cuerpo: 'Inter', sans-serif;
}

*{ margin:0; padding:0; box-sizing:border-box; }

html{ scroll-behavior:smooth; }

body{
  background:var(--negro);
  color:var(--texto);
  font-family:var(--font-cuerpo);
  font-weight:300;
  overflow-x:hidden;
}

img{ max-width:100%; display:block; }

.kanji{ color:var(--dorado); font-weight:400; }

/* ===== NAVBAR ===== */
.navbar{
  position:fixed; top:0; left:0; width:100%; z-index:100;
  background:rgba(10,10,10,0.85);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(201,169,97,0.15);
  transition:background .3s ease;
}
.nav-container{
  max-width:1200px; margin:0 auto; padding:18px 24px;
  display:flex; align-items:center; justify-content:space-between;
}
.logo{
  font-family:var(--font-titulo); font-size:1.6rem; font-weight:700;
  color:var(--texto); text-decoration:none; letter-spacing:2px;
}
.nav-links{ display:flex; gap:36px; }
.nav-links a{
  color:var(--texto-suave); text-decoration:none; font-size:.9rem;
  letter-spacing:.5px; transition:color .25s ease; position:relative;
}
.nav-links a:hover{ color:var(--dorado); }
.btn-nav{
  border:1px solid var(--dorado); color:var(--dorado); text-decoration:none;
  padding:9px 22px; font-size:.85rem; letter-spacing:.5px; border-radius:2px;
  transition:all .3s ease;
}
.btn-nav:hover{ background:var(--dorado); color:var(--negro); }
.burger{ display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; }
.burger span{ width:24px; height:2px; background:var(--texto); }

/* ===== HERO ===== */
.hero{
  min-height:100vh; position:relative; display:flex; align-items:center; justify-content:center;
  background:url('https://images.unsplash.com/photo-1579871494447-9811cf80d66c?w=1920&q=80') center/cover no-repeat;
  text-align:center; padding:0 24px;
}
.hero-overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(10,10,10,.75) 0%, rgba(10,10,10,.55) 45%, rgba(10,10,10,.92) 100%);
}
.hero-content{ position:relative; z-index:2; max-width:720px; animation:apareceSuave 1.2s ease both; }
.hero-kicker{ color:var(--dorado); letter-spacing:4px; font-size:.85rem; margin-bottom:18px; text-transform:uppercase; }
.hero h1{
  font-family:var(--font-titulo); font-size:clamp(3.5rem,10vw,7rem); font-weight:900;
  letter-spacing:10px; line-height:1; color:var(--texto);
}
.hero-tagline{
  font-family:var(--font-titulo); font-style:italic; font-size:clamp(1.2rem,3vw,1.6rem);
  color:var(--carmin-claro); margin:18px 0 20px;
}
.hero-desc{ color:var(--texto-suave); font-size:1rem; line-height:1.7; max-width:560px; margin:0 auto 34px; }
.hero-actions{ display:flex; flex-direction:column; align-items:center; gap:20px; }

.btn-primary{
  background:var(--carmin); color:#fff; text-decoration:none; padding:16px 42px;
  font-size:.95rem; letter-spacing:1px; border-radius:2px; display:inline-block;
  transition:all .3s ease; box-shadow:0 8px 24px rgba(185,28,28,.25);
}
.btn-primary:hover{ background:var(--carmin-claro); transform:translateY(-3px); box-shadow:0 12px 30px rgba(185,28,28,.35); }

.chip-rating{
  border:1px solid rgba(201,169,97,.4); color:var(--dorado); padding:8px 20px;
  border-radius:30px; font-size:.85rem; letter-spacing:.5px; background:rgba(201,169,97,.05);
}

.scroll-hint{ position:absolute; bottom:32px; left:50%; transform:translateX(-50%); z-index:2; }
.scroll-hint span{
  display:block; width:1px; height:50px; background:linear-gradient(var(--dorado), transparent);
  animation:bajar 1.8s ease-in-out infinite;
}

@keyframes apareceSuave{ from{ opacity:0; transform:translateY(25px);} to{ opacity:1; transform:translateY(0);} }
@keyframes bajar{ 0%{ transform:translateY(0); opacity:1;} 100%{ transform:translateY(20px); opacity:0;} }

/* ===== SECCIONES GENERALES ===== */
section{ padding:110px 24px; max-width:1200px; margin:0 auto; }
.section-head{ text-align:center; max-width:640px; margin:0 auto 60px; }
.section-kicker{ color:var(--dorado); letter-spacing:3px; font-size:.8rem; text-transform:uppercase; margin-bottom:14px; }
.section-head h2, .chef h2{
  font-family:var(--font-titulo); font-size:clamp(2.2rem,5vw,3rem); font-weight:600; margin-bottom:16px;
}
.section-sub{ color:var(--texto-suave); font-size:1rem; line-height:1.7; }

/* ===== EXPERIENCIA (cards) ===== */
.cards-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:32px; }
.card{
  background:var(--negro-2); border:1px solid rgba(201,169,97,.12); border-radius:8px;
  padding:36px 28px; transition:transform .35s ease, border-color .35s ease;
}
.card:hover{ transform:translateY(-8px); border-color:rgba(201,169,97,.4); }
.card-icon{ width:52px; height:52px; color:var(--carmin); margin-bottom:22px; }
.card-icon svg{ width:100%; height:100%; }
.card h3{ font-family:var(--font-titulo); font-size:1.25rem; margin-bottom:12px; color:var(--texto); }
.card p{ color:var(--texto-suave); font-size:.92rem; line-height:1.65; }

/* ===== CHEF ===== */
.chef{ display:grid; grid-template-columns:1fr 1.1fr; gap:60px; align-items:center; }
.chef-image{ border-radius:8px; overflow:hidden; border:1px solid rgba(201,169,97,.2); }
.chef-image img{ width:100%; height:520px; object-fit:cover; filter:grayscale(15%) contrast(1.05); }
.chef-content p{ color:var(--texto-suave); line-height:1.8; margin-bottom:18px; font-size:1rem; }

/* ===== GALERÍA ===== */
.gallery-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.gallery-grid img{
  width:100%; height:260px; object-fit:cover; border-radius:6px; filter:brightness(.92);
  transition:transform .5s ease, filter .5s ease;
}
.gallery-grid img:hover{ transform:scale(1.04); filter:brightness(1.05); }

/* ===== RESEÑAS ===== */
.review-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:28px; }
.review-card{
  background:var(--negro-2); border:1px solid rgba(201,169,97,.12); border-radius:8px;
  padding:32px 26px;
}
.stars{ color:var(--dorado); letter-spacing:3px; margin-bottom:16px; }
.review-card p{ font-family:var(--font-titulo); font-style:italic; font-size:1.05rem; line-height:1.6; color:var(--texto); margin-bottom:18px; }
.review-source{ color:var(--texto-suave); font-size:.8rem; letter-spacing:.5px; }

/* ===== RESERVAS ===== */
.reservas-grid{ display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:stretch; }
.reservas-desc{ color:var(--texto-suave); line-height:1.7; margin:16px 0 32px; }
.info-block{ margin-bottom:22px; }
.info-block h4{ color:var(--dorado); font-size:.8rem; letter-spacing:1.5px; text-transform:uppercase; margin-bottom:6px; }
.info-block p{ color:var(--texto); line-height:1.6; font-size:.95rem; }

.btn-whatsapp{
  display:inline-flex; align-items:center; gap:10px; background:#1f7a3f; color:#fff;
  text-decoration:none; padding:15px 30px; border-radius:2px; font-size:.95rem;
  margin-top:14px; transition:all .3s ease;
}
.btn-whatsapp:hover{ background:#25a94e; transform:translateY(-2px); }

.reservas-map{ min-height:400px; border-radius:8px; overflow:hidden; border:1px solid rgba(201,169,97,.2); filter:grayscale(20%) contrast(1.1); }
.reservas-map iframe{ width:100%; height:100%; min-height:400px; }

/* ===== FOOTER ===== */
.footer{
  border-top:1px solid rgba(201,169,97,.12); padding:50px 24px 26px; text-align:center;
}
.footer-brand{ font-family:var(--font-titulo); font-size:1.3rem; margin-bottom:8px; }
.footer-address, .footer-social{ color:var(--texto-suave); font-size:.85rem; margin-bottom:4px; }
.footer-credit{ color:#5c564d; font-size:.75rem; margin-top:26px; letter-spacing:.5px; }

/* ===== RESPONSIVE ===== */
@media (max-width: 900px){
  .cards-grid{ grid-template-columns:repeat(2,1fr); }
  .gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .review-grid{ grid-template-columns:1fr; }
  .chef{ grid-template-columns:1fr; }
  .chef-image img{ height:360px; }
  .reservas-grid{ grid-template-columns:1fr; }
  .reservas-map{ min-height:320px; }
}

@media (max-width: 640px){
  .nav-links, .btn-nav{ display:none; }
  .burger{ display:flex; }
  .nav-links.abierto{
    display:flex; flex-direction:column; position:absolute; top:100%; left:0; width:100%;
    background:var(--negro-2); padding:24px; gap:20px; border-top:1px solid rgba(201,169,97,.15);
  }
  .cards-grid{ grid-template-columns:1fr; }
  .gallery-grid{ grid-template-columns:1fr; }
  section{ padding:80px 20px; }
  .hero h1{ letter-spacing:6px; }
}
