:root {
  /* === Variables globales para colores y estilos === */
  --bg:#fffdfa;        /* fondo general */
  --ink:#2b221d;       /* color principal de texto */
  --ink-2:#5a4a42;     /* color secundario de texto */
  --brand:#4e2a14;     /* color de marca (chocolate) */
  --brand-2:#e6d5c8;   /* color secundario (beige claro) */
  --radius:24px;       /* radio de bordes redondeados */
}

/* ==== Reset & Base ==== */
* { box-sizing:border-box } /* todos los elementos incluyen borde en medidas */
html,body {
  margin:0; padding:0;
  background:var(--bg);   /* color de fondo general */
  color:var(--ink);       /* color del texto */
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif; /* tipografía base */
}
img { max-width:100%; display:block } /* imágenes nunca exceden su contenedor */
a { color:var(--brand); text-decoration:none } /* enlaces con color de marca sin subrayado */

/* ==== Topbar ==== */
.topbar {
  position:sticky; top:0; z-index:20; /* se fija arriba */
  backdrop-filter:saturate(160%) blur(8px); /* efecto blur */
  background:color-mix(in oklab, white 75%, var(--brand-2)); /* mezcla color */
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:10px clamp(12px,4vw,28px); /* padding adaptable */
  border-bottom:1px solid #eee;      /* línea inferior */
}
.logo { height:48px; width:auto; filter:drop-shadow(0 2px 2px rgba(0,0,0,.05)) } /* logo con sombra */
.nav { display:none; gap:20px }   /* navegación oculta en mobile */
.nav a { font-weight:600; opacity:.85 } /* enlaces del menú */

/* ==== Botones generales ==== */
.cta {
  border:2px solid var(--brand); background:transparent; color:var(--brand);
  padding:10px 14px; border-radius:12px; font-weight:700; cursor:pointer;
  transition:.2s transform, .2s background; /* animación hover */
}
.cta:hover { transform:translateY(-1px); } /* efecto de elevación */
.cta.solid { background:#25D366; color:white } /* variante sólida (WhatsApp verde) */
.cta.tiny { padding:8px 12px; border-radius:10px; font-size:.9rem } /* variante pequeña */

/* ==== Sección Hero (imagen principal) ==== */
.hero { position:relative; min-height:70vh; display:grid }
.hero img { width:100%; height:100%; object-fit:cover; filter:contrast(1.05) saturate(1.05) } /* imagen responsive */
.hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg,rgba(0,0,0,.15),rgba(0,0,0,.45)) } /* degradado oscuro encima */
.hero-copy {
  position:absolute; left:clamp(14px,6vw,40px); bottom:clamp(16px,6vh,60px);
  max-width:min(720px,92%); color:white; text-shadow:0 1px 2px rgba(0,0,0,.35);
}
.plate { font-size:clamp(28px,5vw,56px); line-height:1.05; margin:0 0 8px 0; font-weight:800 } /* título del plato */
.desc { font-size:clamp(14px,1.6vw,20px); opacity:.95; margin:0 0 12px 0 } /* descripción */
.price-row { display:flex; align-items:center; gap:14px } /* fila de precio + botón */
.price {
  font-weight:800; font-size:clamp(18px,2vw,28px);
  background:rgba(255,255,255,.2); padding:6px 10px; border-radius:10px;
}

/* ==== Secciones generales ==== */
.section { padding: clamp(32px,6vw,64px) clamp(14px,6vw,40px) } /* padding adaptable */
.section h2 { font-family:Montserrat, sans-serif; font-size:clamp(22px,3.6vw,36px); margin:0 0 18px 0 }

/* ==== Cards ==== */
.grid { display:grid; gap:20px; grid-template-columns:repeat(12,1fr) }
.card {
  grid-column: span 12; background:white; border-radius:var(--radius);
  overflow:hidden; border:1px solid #eee; box-shadow:0 10px 30px rgba(0,0,0,.04);
}
.card img { aspect-ratio:16/10; object-fit:cover } /* imágenes con ratio fijo */
.card-body { padding:16px 16px 18px }
.card-body h3 { margin:0 0 6px 0 }
.card-body p { margin:0 0 12px 0; color:var(--ink-2) }
.card-actions { display:flex; align-items:center; justify-content:space-between }
.tag { background:var(--brand-2); padding:6px 10px; border-radius:999px; font-weight:700; color:var(--brand) }

/* ==== Sección About ==== */
.about { display:grid; gap:28px; grid-template-columns:repeat(12,1fr); align-items:center }
.about-media { grid-column:span 12 }
.about-media img {
  border-radius: var(--radius); border: 1px solid #eee;
  width: 100%; height: 300px;
  object-fit: cover; /* recorte atractivo manteniendo proporción */
}
.about-copy { grid-column:span 12 }
.bullets { padding-left:18px }
.bullets li { margin:8px 0 }

/* ==== Contacto ==== */
.contact .cta-row { display:flex; gap:10px; flex-wrap:wrap }
.contact input {
  flex:1; min-width:220px; padding:14px 16px; border-radius:12px;
  border:1px solid #ddd; font-size:1rem
}
.small { opacity:.75 } /* texto auxiliar */

/* ==== Footer ==== */
.footer {
  display:flex; justify-content:space-between; align-items:center;
  padding:20px clamp(14px,6vw,40px); border-top:1px solid #eee; background:#fff;
}

/* ==== Botón flotante de WhatsApp ==== */
.whatsapp-fab {
  position:fixed; right:16px; bottom:16px; z-index:30;
  width:56px; height:56px; border-radius:50%; border:none; cursor:pointer;
  background:#25D366; box-shadow:0 8px 24px rgba(0,0,0,.2);
  display:flex; align-items:center; justify-content:center; /* centrado del ícono */
}
.whatsapp-fab .whatsapp-icon { width:35px; height:35px } /* tamaño del ícono en FAB */

/* ==== Header personalizado ==== */
.custom-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:12px 20px; background:transparent;
  position:absolute; top:0; left:0; width:100%; z-index:50;
}
.brand-text {
  font-size:1.5rem; font-weight:800; color:#fff;
  font-family:Poppins, system-ui, sans-serif; letter-spacing:.2px;
}
.logo-img { height:45px; width:auto; display:block }

/* Botón CTA de WhatsApp (header y secciones) */
.cta-whatsapp {
  background:#25D366; color:#fff; font-weight:700; border:none;
  padding:10px 16px; border-radius:12px; cursor:pointer;
  display:flex; align-items:center; gap:10px;
}
.cta-whatsapp:hover { filter:brightness(0.95) }

/* ==== Ícono de WhatsApp en botones con texto ==== */
.whatsapp-icon {
  height:1.2em; width:auto; vertical-align:middle;
  display:inline-block; margin-left:0.15rem; image-rendering:auto;
}

/* ==== Fuente decorativa para el logo ==== */
.logo, .brand, .site-title, .logo-text {
  font-family: 'Great Vibes', cursive; font-weight:400; letter-spacing:0.5px;
}

/* ==== Estilo de enlaces tipo WhatsApp ==== */
a.whatsapp, .whatsapp-btn { display:inline-flex; align-items:center; gap:0.4rem }
a.whatsapp svg, .whatsapp-btn svg { display:none !important }

/* ==== Responsive (desktop) ==== */
@media (min-width: 860px){
  .nav { display:flex } /* menú visible */
  .card { grid-column: span 4 }
  .about-media { grid-column:span 6 }
  .about-copy { grid-column:span 6 }
}