/* La Noble Tamalería — hoja de estilos
   Paleta de la marca: vino oscuro, crema y amarillo mostaza (sacada de su menú y sus PDF).
   Estructura calcada de la referencia elegida (Pancho's, Envisager Studio). */

:root {
  --vino: #4e1c0e;
  --vino-oscuro: #33110a;
  --vino-claro: #6b2a17;
  --crema: #f5ebd9;
  --crema-clara: #fbf6ec;
  --mostaza: #e0a62b;
  --mostaza-oscura: #c8901f;
  --barro: #a04826; /* 5.15:1 sobre crema (AA); antes #b5542e daba 4.16:1 */
  --texto: #2b1a14;
  --texto-suave: #5c463d;
  --ancho: 1180px;
  --titulos: "Denk One", "Arial Black", sans-serif;
  --cuerpo: "Poppins", "Segoe UI", sans-serif;
  --script: "Kaushan Script", "Brush Script MT", cursive;
  --script-pago: "Ephesis", "Kaushan Script", cursive; /* la letra del PDF de formas de pago (aprox. libre) */
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 120px; } /* respaldo: la barra fija mide ~104 px. El centrado fino lo hace menu.js */
body {
  margin: 0;
  font-family: var(--cuerpo);
  font-size: 16px;
  line-height: 1.65;
  color: var(--texto);
  background: var(--crema-clara);
}
img { max-width: 100%; height: auto; display: block; }
a { color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
h1, h2, h3 { font-family: var(--titulos); font-weight: 400; line-height: 1.1; margin: 0 0 .5em; letter-spacing: .01em; }
h2 { font-size: clamp(1.9rem, 3.2vw, 2.7rem); color: var(--vino); }
h3 { font-size: 1.35rem; color: var(--vino); }
p { margin: 0 0 1em; }
.contenedor { width: min(var(--ancho), 100% - 2.5rem); margin-inline: auto; }
.centrado { text-align: center; }
.ico { width: 1.15em; height: 1.15em; vertical-align: -.2em; fill: currentColor; }

/* Etiqueta pequeña en letra manuscrita, como en la referencia */
.pre-titulo {
  font-family: var(--script);
  font-size: 1.5rem;
  color: var(--barro);
  margin: 0 0 .25em;
}
.pre-titulo--crema { color: var(--mostaza); }

/* Botones */
.boton {
  display: inline-block;
  font-family: var(--titulos);
  font-size: 1rem;
  letter-spacing: .06em;
  text-transform: uppercase;
  text-decoration: none;
  padding: .85em 1.7em;
  border-radius: 3px;
  border: 2px solid transparent;
  transition: transform .15s ease, background-color .15s ease, color .15s ease;
}
.boton:hover { transform: translateY(-2px); }
.boton--mostaza { background: var(--mostaza); color: var(--vino-oscuro); }
.boton--mostaza:hover { background: var(--mostaza-oscura); }
.boton--vino { background: var(--vino); color: var(--crema); }
.boton--vino:hover { background: var(--vino-claro); }
.boton--contorno { border-color: var(--crema); color: var(--crema); background: transparent; }
.boton--contorno:hover { background: var(--crema); color: var(--vino); }

/* Pedir ahora: botón que despliega WhatsApp, Uber Eats y Rappi */
.pedir { position: relative; display: inline-block; }
.pedir__boton { cursor: pointer; line-height: inherit; }
.pedir__opciones {
  list-style: none; margin: .5rem 0 0; padding: .4rem 0;
  position: absolute; left: 0; top: 100%; min-width: 100%; z-index: 30;
  background: var(--vino-oscuro); border: 1px solid rgba(245, 235, 217, .22);
  border-radius: 4px; box-shadow: 0 10px 24px rgba(0, 0, 0, .35);
  display: none;
}
.pedir.abierto .pedir__opciones { display: block; }
.pedir .pedir__opciones a {
  display: flex; align-items: center; gap: .55rem;
  padding: .7em 1.15em; border-bottom: 0; white-space: nowrap;
  color: var(--crema); text-decoration: none;
  font-family: var(--titulos); letter-spacing: .05em; font-size: .95rem;
}
.pedir .pedir__opciones a:hover { background: var(--vino); color: var(--mostaza); border-bottom: 0; }
.pedir .pedir__opciones .ico { width: 1.05em; height: 1.05em; }

/* Barra superior */
.barra-superior { background: var(--vino-oscuro); color: var(--crema); font-size: .82rem; }
.barra-superior__fila { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 38px; }
.barra-superior__datos { display: flex; flex-wrap: wrap; gap: .3rem 1.6rem; }
.barra-superior__datos li { white-space: nowrap; }
.redes { display: flex; gap: .6rem; }
.redes a { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; color: inherit; text-decoration: none; }
.redes a:hover { background: rgba(255, 255, 255, .12); }
.redes--chicas .ico { width: 1.45em; height: 1.45em; } /* 19 px: la barra mide 38 px de alto y el círculo 36, así que no crece */

/* Navegación */
.nav { background: var(--vino); color: var(--crema); position: sticky; top: 0; z-index: 20; box-shadow: 0 2px 8px rgba(0, 0, 0, .25); }
.nav__fila { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 76px; }
/* La barra abarca el logo completo (el logo marca la altura, unos 104 px). */
.nav__logo { display: block; line-height: 0; padding: 2px 0; }
.nav__logo img { width: 118px; height: auto; }
.nav__menu { display: flex; align-items: center; gap: 2rem; }
.nav__menu a { text-decoration: none; font-family: var(--titulos); letter-spacing: .05em; font-size: 1.02rem; padding: .3em 0; border-bottom: 2px solid transparent; }
.nav__menu a:not(.boton):hover { border-bottom-color: var(--mostaza); }
.nav__pedir { padding: .65em 1.3em; font-size: .9rem; }
.nav__hamburguesa { display: none; background: none; border: 0; color: var(--crema); cursor: pointer; padding: .4rem; }
.nav__hamburguesa .ico { width: 30px; height: 30px; }
.nav__hamburguesa .ico--cerrar { display: none; }
.nav__hamburguesa[aria-expanded="true"] .ico--abrir { display: none; }
.nav__hamburguesa[aria-expanded="true"] .ico--cerrar { display: block; }

/* Portada */
.portada {
  position: relative;
  color: var(--crema);
  background: var(--vino-oscuro) url("../img/portada.jpg") center / cover no-repeat;
  min-height: clamp(560px, 78vh, 800px);
  display: flex;
  align-items: center;
  isolation: isolate;
}
.portada::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(100deg, rgba(51, 17, 10, .92) 0%, rgba(51, 17, 10, .78) 38%, rgba(51, 17, 10, .25) 68%, rgba(51, 17, 10, .1) 100%);
}
.portada__contenido { padding: 5.5rem 0 8.5rem; max-width: 720px; }
.portada h1 { font-size: clamp(2.5rem, 5vw, 3.9rem); color: var(--crema); margin-bottom: .35em; text-shadow: 0 2px 10px rgba(0, 0, 0, .35); }
.portada__texto { font-size: 1.08rem; max-width: 520px; margin-bottom: 1.8em; color: #efe3cf; }
.portada__botones { display: flex; flex-wrap: wrap; gap: .8rem; }

/* Olas de brocha */
.ola { position: absolute; left: 0; width: 100%; height: 90px; display: block; }
.ola--abajo { bottom: -1px; }
.ola--arriba { top: -1px; transform: scaleY(-1); }
.ola__fondo { fill: var(--crema-clara); }
.ola__fondo--sombra { opacity: .45; }
.ola__trazo { fill: none; stroke-width: 5; stroke-linecap: round; }
.ola__trazo--fino { stroke-width: 2.5; }
.ola__trazo--grueso { stroke-width: 8; }
.ola__trazo--claro { stroke: var(--crema-clara); opacity: .85; }
.ola__trazo--oscuro { stroke: var(--vino-oscuro); opacity: .7; }
.pie .ola__fondo { fill: var(--crema-clara); }
.pie .ola__trazo--claro { stroke: var(--crema-clara); }
.pie .ola__trazo--oscuro { stroke: var(--vino); opacity: .5; }

/* Secciones */
.seccion { padding: 4.5rem 0; }

/* Menú destacado */
.menu-destacado__fila { display: grid; grid-template-columns: 1fr 1.35fr; gap: 3.5rem; align-items: center; }
.menu-destacado__texto p { color: var(--texto-suave); }
.menu-destacado__texto .boton { margin-top: .5rem; }
.cuadricula { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.3rem 1.1rem; }
.cuadricula li { text-align: center; }
.cuadricula img {
  aspect-ratio: 4 / 3; object-fit: cover; border-radius: 2px;
  border: 6px solid #fff; box-shadow: 0 6px 16px rgba(78, 28, 14, .2);
  transform: rotate(-.8deg);
}
.cuadricula li:nth-child(even) img { transform: rotate(.8deg); }
.cuadricula li:nth-child(3n) img { transform: rotate(-.4deg); }

/* Subrayado de brocha bajo los títulos de sección */
.seccion h2::after {
  content: "";
  display: block;
  width: 110px; height: 12px;
  margin: .3em 0 .7em;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 110 12'%3E%3Cpath d='M2 8 C 20 3, 40 3, 58 6 S 92 9, 108 4' fill='none' stroke='%23e0a62b' stroke-width='5' stroke-linecap='round'/%3E%3Cpath d='M10 10 C 30 7, 50 8, 70 9' fill='none' stroke='%23e0a62b' stroke-width='2' stroke-linecap='round' opacity='.7'/%3E%3C/svg%3E") no-repeat center / contain;
}
.seccion h2.centrado::after { margin-inline: auto; }
.cuadricula span { display: block; margin-top: .55rem; font-family: var(--titulos); color: var(--vino); font-size: .95rem; letter-spacing: .03em; }

/* Banda de bebidas */
.banda {
  position: relative;
  background: var(--vino) url("../img/grano.png");
  background-blend-mode: soft-light;
  color: var(--crema);
  padding: 4.5rem 0 4rem;
  text-align: center;
}
.banda::before, .banda::after {
  content: "";
  position: absolute; left: 0; right: 0; height: 16px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 16'%3E%3Cpolygon points='0,0 40,0 20,16' fill='%23fbf6ec'/%3E%3C/svg%3E") repeat-x;
  background-size: 40px 16px;
}
.banda::before { top: 0; }
.banda::after { bottom: 0; transform: scaleY(-1); }
.banda__titulo { color: var(--mostaza); font-size: clamp(2rem, 3.4vw, 2.8rem); margin-bottom: 2rem; }
.banda__columnas { display: grid; grid-template-columns: repeat(3, 1fr); }
.banda__col { padding: 0 2rem; border-left: 1px solid rgba(245, 235, 217, .25); }
.banda__col:first-child { border-left: 0; }
.banda__col h3 { color: var(--mostaza); font-size: 1.45rem; }
.banda__col p { color: #eadfcc; font-size: .95rem; }
.banda__precio { font-family: var(--titulos); font-size: 1.15rem; color: var(--crema); letter-spacing: .04em; }
.banda__nota { margin: 2.2rem 0 0; font-size: .9rem; color: #d9c9b2; }
.banda__nota a { color: var(--mostaza); }
.banda__sub { margin-top: 1.6rem; }  /* Coca-Cola dentro de la columna del café de olla */

/* Formas de pago: título en la letra manuscrita de su PDF y pastillas oscuras con icono de línea, como en el PDF */
.banda__titulo--script { font-family: var(--script-pago); font-weight: 400; font-size: clamp(3.2rem, 6.5vw, 4.8rem); line-height: 1; letter-spacing: 0; text-transform: none; color: var(--crema); margin-bottom: 2.2rem; }
.pagos { list-style: none; margin: 0 auto; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.4rem; max-width: 980px; }
.pago { background: var(--vino-oscuro); border-radius: 22px; padding: 1.7rem 1.2rem 1.55rem; display: flex; flex-direction: column; align-items: center; gap: .8rem; box-shadow: inset 0 0 0 1px rgba(245, 235, 217, .08); }
.pago__ico { width: 46px; height: 46px; color: var(--crema); }
.pago span { font-family: var(--cuerpo); font-size: 1.15rem; color: var(--crema); }
.pago__nota { max-width: 760px; margin-left: auto; margin-right: auto; }
.pago__nota strong { font-family: var(--titulos); font-weight: 400; letter-spacing: .06em; text-transform: uppercase; color: var(--crema); margin-right: .35em; }

/* Menú completo */
.menu-completo { background: var(--crema) url("../img/grano.png"); background-blend-mode: soft-light; }
.menu-completo__columnas { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.5rem; margin-top: 2.5rem; }
.lista h3 { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 2px solid var(--vino); padding-bottom: .35em; }
.lista h3 span { font-size: 1.2rem; color: var(--barro); }
.lista li { display: flex; justify-content: space-between; gap: 1rem; padding: .45em 0; border-bottom: 1px dotted rgba(78, 28, 14, .3); }
.lista li span { color: var(--barro); font-weight: 500; white-space: nowrap; }
.menu-completo__nota { margin: 2rem 0 0; text-align: center; font-size: .88rem; color: var(--texto-suave); }
.menu-completo__descarga { margin: 1.6rem 0 0; display: flex; gap: .9rem; justify-content: center; flex-wrap: wrap; }

/* Nosotros */
.nosotros__fila { display: grid; grid-template-columns: 1.1fr 1fr; gap: 3.5rem; align-items: center; }
.nosotros__foto { margin: 0; position: relative; padding: 0 2.5rem 2.5rem 0; }
.nosotros__foto img { border-radius: 2px; border: 8px solid #fff; box-shadow: 0 10px 24px rgba(78, 28, 14, .22); }
.nosotros__foto-grande { transform: rotate(-1deg); }
.nosotros__foto-chica { position: absolute; right: 0; bottom: 0; width: 34%; transform: rotate(2.5deg); }
.nosotros__texto p { color: var(--texto-suave); }
.nosotros__datos { margin: 0 0 1.6rem; }
.nosotros__datos li { padding: .35em 0 .35em 1.4em; position: relative; }
.nosotros__datos li::before { content: ""; position: absolute; left: 0; top: .95em; width: .55em; height: .55em; background: var(--mostaza); border-radius: 50%; }
.nosotros__datos strong { font-family: var(--titulos); font-weight: 400; color: var(--vino); font-size: 1.15rem; }

/* Opiniones */
.opiniones { background: var(--crema); padding-top: 3.5rem; padding-bottom: 6.5rem; }
.opiniones__fila { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 2rem; }
.opinion { margin: 0; background: var(--crema-clara); border-left: 4px solid var(--mostaza); padding: 1.4rem 1.5rem; border-radius: 3px; }
.opinion p { font-size: .98rem; color: var(--texto); }
.opinion footer { font-family: var(--titulos); font-size: .9rem; color: var(--barro); letter-spacing: .03em; }

/* Pie */
.pie { position: relative; background: var(--mostaza) url("../img/grano.png"); background-blend-mode: soft-light; color: var(--vino-oscuro); padding-top: 6rem; }
.pie__columnas { display: grid; grid-template-columns: 1.2fr 1fr 1.2fr; gap: 3rem; padding-bottom: 3rem; }
.pie__col h3 { color: var(--vino-oscuro); font-size: 1.25rem; margin-bottom: .8rem; }
.pie__col--marca img { width: 300px; max-width: 100%; margin: -.6rem 0 .6rem -.4rem; }
.pie__col--marca p { max-width: 300px; }
.pie .redes a { color: var(--vino-oscuro); border: 1.5px solid var(--vino-oscuro); }
.pie .redes a:hover { background: var(--vino-oscuro); color: var(--mostaza); }
.pie .redes { gap: .85rem; }
.pie .redes a { width: 48px; height: 48px; }
.pie .redes .ico { width: 1.45rem; height: 1.45rem; }
.pie__sigue { font-family: var(--titulos); text-transform: uppercase; letter-spacing: .06em; font-size: .95rem; color: var(--vino-oscuro); margin: 1.1rem 0 .7rem; }
.horario { margin: 0; display: grid; grid-template-columns: auto 1fr; gap: .5rem 1.2rem; }
.horario dt { font-weight: 600; white-space: nowrap; }
.horario dd { margin: 0; white-space: nowrap; }
.pie__nota { margin-top: .9rem; font-size: .88rem; }
address { font-style: normal; line-height: 1.7; }
address a, .pie__apps a { color: var(--vino-oscuro); }
.pie__apps { margin-top: .9rem; }
.pie__final { background: var(--vino-oscuro); color: var(--crema); font-size: .85rem; padding: .9rem 0; text-align: center; }

/* Pantallas medianas y chicas */
@media (max-width: 960px) {
  .menu-destacado__fila, .nosotros__fila { grid-template-columns: 1fr; gap: 2.5rem; }
  .nosotros__foto { order: 2; }
  .banda__columnas { grid-template-columns: 1fr; gap: 2rem; }
  .banda__col { border-left: 0; padding: 0 1rem; }
  .menu-completo__columnas, .opiniones__fila, .pie__columnas { grid-template-columns: 1fr; }
  .barra-superior__datos li:nth-child(3) { display: none; }
}
@media (max-width: 840px) {
  .barra-superior__datos li:nth-child(1) { display: none; }
  .nav__hamburguesa { display: block; }
  .nav__menu {
    display: none; position: absolute; left: 0; right: 0; top: 100%;
    flex-direction: column; align-items: stretch; gap: 0;
    background: var(--vino-oscuro); padding: .6rem 1.25rem 1.2rem; box-shadow: 0 8px 16px rgba(0, 0, 0, .3);
  }
  .nav__menu.abierto { display: flex; }
  .nav__menu a { padding: .8em 0; border-bottom: 1px solid rgba(245, 235, 217, .15); }
  .nav__menu .boton { margin-top: .8rem; text-align: center; border-bottom: 0; }
  .nav__menu .pedir { display: block; margin-top: .8rem; }
  .nav__menu .pedir .boton { width: 100%; margin-top: 0; }
  .nav__menu .pedir__opciones { position: static; margin: .3rem 0 0; box-shadow: none; border: 0; background: transparent; }
  .nav__menu .pedir .pedir__opciones a { justify-content: center; }
}
@media (max-width: 720px) {
  .portada { min-height: auto; }
  .portada__contenido { padding: 4rem 0 7rem; }
  .cuadricula { grid-template-columns: repeat(2, 1fr); }
  .pagos { grid-template-columns: 1fr; max-width: 420px; }
  .seccion { padding: 3.2rem 0; }
  .ola { height: 60px; }
  .nosotros__foto { padding: 0 1.5rem 1.5rem 0; }
  .nosotros__foto-chica { width: 38%; }
}
