/* Chiquillas Snacks — sitio corporativo. Valores del handoff de diseño (alta fidelidad). */
:root {
  --crema: #FFF8E7;
  --crema-2: #FFF1CC;
  --borde-crema: #F2E3BC;
  --borde-crema-2: #EAD9AE;
  --dorado: #F4C430;
  --dorado-claro: #FCE7A8;
  --verde: #174F27;
  --verde-2: #1E6B34;
  --rojo: #8E1B1B;
  --cafe: #2B1D12;
  --cafe-2: #4A3826;
  --cafe-3: #5A4632;
  --foto: #F5EEDC;
  --wa: #25D366;
  --wa-hover: #1FBE5B;
  --wa-texto: #06301A;
  --wa-sombra: #0E7A3A;
  --titulos: 'Baloo 2', system-ui, sans-serif;
  --texto: 'Atkinson Hyperlegible', system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 84px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--crema);
  color: var(--cafe);
  font-family: var(--texto);
  font-size: 17px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
:focus-visible { outline: 3px solid var(--rojo); outline-offset: 3px; border-radius: 4px; }
a { color: var(--verde-2); }
a:hover { color: var(--rojo); }
h1, h2, h3, h4 { text-wrap: balance; }
p, li { text-wrap: pretty; }
img { max-width: 100%; }

.pagina { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.contenedor { max-width: 1160px; margin: 0 auto; padding: 0 20px; }

.saltar {
  position: absolute; left: 12px; top: -60px; z-index: 100;
  background: var(--verde-2); color: #fff; padding: 10px 16px; border-radius: 8px; font-weight: 700;
}
.saltar:focus { top: 12px; color: #fff; }

/* Botones */
.btn-wa {
  display: inline-flex; align-items: center; gap: 10px;
  background: var(--wa); color: var(--wa-texto);
  font-weight: 700; font-size: 18px; text-decoration: none;
  padding: 14px 22px; border-radius: 999px;
}
.btn-wa:hover { background: var(--wa-hover); color: var(--wa-texto); }
.btn-wa svg { width: 22px; height: 22px; flex-shrink: 0; }
.btn-wa--grande { padding: 15px 24px; }
.btn-wa--sombra { box-shadow: 0 3px 0 var(--wa-sombra); }
.btn-borde {
  display: inline-flex; align-items: center;
  background: transparent; color: var(--verde);
  font-weight: 700; font-size: 18px; text-decoration: none;
  padding: 13px 22px; border-radius: 999px; border: 2.5px solid var(--verde);
}
.btn-borde:hover { background: var(--verde); color: var(--crema); }

/* Encabezado */
.encabezado { position: sticky; top: 0; z-index: 50; background: var(--crema); border-bottom: 2px solid var(--dorado); }
.encabezado__fila {
  max-width: 1160px; margin: 0 auto; padding: 10px 20px;
  display: flex; align-items: center; gap: 20px; justify-content: space-between;
}
.encabezado__logo { display: flex; align-items: center; flex-shrink: 0; }
.encabezado__logo img { display: block; height: 52px; width: auto; }
.nav { display: flex; align-items: center; gap: 6px; }
.nav a { font-weight: 700; color: var(--cafe); text-decoration: none; padding: 10px 12px; border-radius: 8px; }
.nav a:hover { background: var(--dorado-claro); color: var(--cafe); }
.encabezado .btn-wa { font-size: 17px; padding: 11px 18px; gap: 8px; flex-shrink: 0; }
.encabezado .btn-wa svg { width: 20px; height: 20px; }
.hamburguesa {
  display: none; width: 48px; height: 48px; padding: 0;
  flex-direction: column; align-items: center; justify-content: center; gap: 5px;
  background: var(--verde-2); border: none; border-radius: 10px; cursor: pointer;
}
.hamburguesa span { display: block; width: 22px; height: 3px; background: #fff; border-radius: 2px; }
.menu-movil {
  border-top: 1px solid var(--dorado); background: var(--crema);
  padding: 8px 20px 16px; display: flex; flex-direction: column;
}
.menu-movil[hidden] { display: none; }
.menu-movil a {
  font-family: var(--titulos); font-weight: 700; font-size: 22px; color: var(--cafe);
  text-decoration: none; padding: 12px 4px; border-bottom: 1px solid var(--borde-crema);
}
.menu-movil a:last-child { border-bottom: none; }
.btn-volver {
  font-weight: 700; color: var(--verde); text-decoration: none;
  padding: 10px 14px; border-radius: 999px; border: 2px solid var(--verde);
}
.btn-volver:hover { background: var(--verde); color: var(--crema); }

.wa-flotante {
  display: none; position: fixed; right: 16px; bottom: 16px; z-index: 60;
  width: 62px; height: 62px; border-radius: 50%;
  background: var(--wa); color: var(--wa-texto);
  align-items: center; justify-content: center; box-shadow: 0 6px 18px rgba(0, 0, 0, .25);
}
.wa-flotante:hover { background: var(--wa-hover); color: var(--wa-texto); }
.wa-flotante svg { width: 32px; height: 32px; }

@media (max-width: 879.98px) {
  .encabezado .nav, .encabezado .btn-wa { display: none; }
  .hamburguesa { display: flex; }
  .wa-flotante { display: flex; }
}
@media (min-width: 880px) {
  .menu-movil { display: none !important; }
}

/* Secciones */
.seccion { padding: 64px 0; }
.eyebrow {
  font-family: var(--titulos); font-weight: 700; color: var(--rojo);
  font-size: 18px; letter-spacing: .06em; text-transform: uppercase; margin: 0 0 6px;
}
.titulo-seccion {
  font-family: var(--titulos); font-weight: 800; font-size: clamp(30px, 5vw, 44px);
  line-height: 1.08; color: var(--verde); margin: 0;
}

/* Hero */
.hero { background: var(--dorado); border-bottom: 4px solid var(--rojo); }
.hero__fila {
  max-width: 1160px; margin: 0 auto; padding: 48px 20px 56px;
  display: flex; flex-wrap: wrap; align-items: center; gap: 32px 48px;
}
.hero__texto { flex: 1 1 420px; min-width: 0; }
.hero h1 {
  font-family: var(--titulos); font-weight: 800; font-size: clamp(38px, 7vw, 64px);
  line-height: 1.02; color: var(--verde); margin: 0 0 16px;
}
.hero__sub { font-size: clamp(18px, 2.2vw, 21px); margin: 0 0 28px; max-width: 560px; }
.hero__botones { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__logo {
  flex: 0 1 380px; min-width: 240px; background: var(--crema);
  border-radius: 28px; padding: 22px; box-shadow: 0 6px 0 var(--rojo);
}
.hero__logo img { display: block; width: 100%; height: auto; }

/* Nosotros */
.nosotros__cabeza { display: flex; flex-wrap: wrap; gap: 24px 56px; align-items: flex-end; margin-bottom: 36px; }
.nosotros__cabeza h2 { flex: 1 1 340px; }
.nosotros__cabeza p { flex: 1 1 420px; font-size: clamp(18px, 2vw, 20px); margin: 0; }
.valores {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px;
}
.valores li {
  background: #fff; border: 2px solid var(--borde-crema); border-radius: 22px;
  padding: 24px 24px 26px; display: flex; flex-direction: column; gap: 8px;
}
.valores h3 { font-family: var(--titulos); font-weight: 800; font-size: 24px; line-height: 1.15; color: var(--rojo); margin: 0; }
.valores p { margin: 0; color: var(--cafe-2); }

/* Productos */
.productos { background: var(--crema-2); border-top: 2px solid var(--borde-crema); border-bottom: 2px solid var(--borde-crema); }
.productos .titulo-seccion { margin-bottom: 36px; }
.grupo { font-family: var(--titulos); font-weight: 800; font-size: 26px; color: var(--cafe); margin: 0 0 16px; }
.rejilla {
  display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr));
  gap: 16px; margin-bottom: 44px;
}
.tarjeta {
  background: #fff; border-radius: 20px; overflow: hidden; border: 2px solid var(--borde-crema);
  display: flex; flex-direction: column;
}
.tarjeta__foto { aspect-ratio: 4 / 5; background: var(--foto); overflow: hidden; }
.tarjeta__foto img { display: block; width: 100%; height: 100%; object-fit: cover; }
.tarjeta__cuerpo { padding: 16px 18px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.tarjeta h4 { font-family: var(--titulos); font-weight: 800; font-size: 22px; line-height: 1.15; color: var(--verde); margin: 0 0 4px; }
.tarjeta__desc { margin: 0; font-size: 16px; color: var(--cafe-2); }
.variedades { margin-top: auto; display: flex; flex-direction: column; gap: 8px; }
.variedades__actual { margin: 0; font-size: 14px; font-weight: 700; color: var(--cafe-3); }
.variedades__botones { display: flex; flex-wrap: wrap; gap: 8px; }
.variedades button {
  width: 48px; height: 48px; padding: 0; border-radius: 10px; overflow: hidden; cursor: pointer;
  background: var(--foto); border: 3px solid var(--borde-crema);
}
.variedades button[aria-pressed="true"] { border-color: var(--rojo); }
.variedades button img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Sin JavaScript, solo la primera foto: las miniaturas no harían nada. */
.sin-js .variedades { display: none; }
.banda {
  background: var(--verde); color: var(--crema); border-radius: 24px; padding: 28px 26px;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px;
}
.banda p { font-family: var(--titulos); font-weight: 700; font-size: clamp(22px, 3vw, 28px); line-height: 1.2; margin: 0; }

/* Cómo pedir */
.como-pedir .titulo-seccion { margin-bottom: 32px; }
.pasos {
  list-style: none; margin: 0 0 24px; padding: 0;
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 18px;
}
.pasos li {
  display: flex; gap: 16px; align-items: flex-start;
  background: #fff; border: 2px solid var(--borde-crema); border-radius: 22px; padding: 24px 22px;
}
.pasos__numero {
  flex-shrink: 0; width: 52px; height: 52px; border-radius: 50%;
  background: var(--dorado); color: var(--verde);
  font-family: var(--titulos); font-weight: 800; font-size: 28px;
  display: flex; align-items: center; justify-content: center; box-shadow: 0 3px 0 var(--rojo);
}
.pasos h3 { font-family: var(--titulos); font-weight: 800; font-size: 22px; line-height: 1.2; margin: 4px 0 6px; color: var(--cafe); }
.pasos p { margin: 0; color: var(--cafe-2); }
.nota { margin: 0; font-size: 15px; color: var(--cafe-3); font-style: italic; }

/* Contacto */
.contacto { background: var(--verde); color: var(--crema); }
.contacto__fila { display: flex; flex-wrap: wrap; gap: 32px 56px; align-items: flex-start; }
.contacto__intro { flex: 1 1 300px; min-width: 0; }
.contacto .eyebrow { color: var(--dorado); }
.contacto .titulo-seccion { color: var(--crema); margin-bottom: 16px; }
.contacto__acciones { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.enlace-oscuro { color: var(--dorado); font-weight: 700; }
.enlace-oscuro:hover { color: var(--crema); }
.ficha {
  flex: 1 1 420px; min-width: 0; margin: 0; background: var(--crema); color: var(--cafe);
  border-radius: 24px; padding: 10px 24px;
}
.ficha div { padding: 14px 0; border-bottom: 1px solid var(--borde-crema-2); }
.ficha div:last-child { border-bottom: none; }
.ficha dt { font-size: 14px; font-weight: 700; color: var(--cafe-3); text-transform: uppercase; letter-spacing: .05em; }
.ficha dd { margin: 2px 0 0; font-size: 19px; font-weight: 700; overflow-wrap: anywhere; }
.ficha dd a { color: var(--cafe); }
.ficha dd a:hover { color: var(--rojo); }

/* Pie */
.pie { background: var(--cafe); color: #F5EBD6; padding: 36px 0 96px; }
.pie--corto { padding-bottom: 40px; }
.pie .contenedor { display: flex; flex-direction: column; gap: 14px; font-size: 15px; }
.pie p { margin: 0; }
.pie__marca { font-size: 17px; font-weight: 700; color: var(--crema); }
.pie__datos { display: flex; flex-wrap: wrap; gap: 6px 14px; align-items: center; }
.pie a { color: var(--dorado); font-weight: 700; }
.pie a:hover { color: var(--crema); }
.pie__legal { display: flex; flex-wrap: wrap; gap: 8px 20px; align-items: center; }
.pie__copy { margin-top: 6px !important; color: #CDBB9A; }

/* Política de privacidad */
.politica { padding: 40px 0 64px; line-height: 1.6; }
.politica article { max-width: 760px; margin: 0 auto; padding: 0 20px; }
.politica .eyebrow { font-size: 17px; margin-bottom: 4px; }
.politica h1 {
  font-family: var(--titulos); font-weight: 800; font-size: clamp(32px, 6vw, 48px);
  line-height: 1.05; color: var(--verde); margin: 0 0 28px;
}
.indice { background: #fff; border: 2px solid var(--borde-crema); border-radius: 18px; padding: 20px 24px; margin-bottom: 40px; }
.indice h2 { font-family: var(--titulos); font-weight: 800; font-size: 22px; margin: 0 0 8px; color: var(--cafe); }
.indice ol { margin: 0; padding-left: 22px; display: flex; flex-direction: column; gap: 4px; }
.politica section { margin-bottom: 36px; }
.politica section:last-child { margin-bottom: 0; }
.politica section h2 { font-family: var(--titulos); font-weight: 800; font-size: 28px; line-height: 1.15; color: var(--verde); margin: 0 0 10px; }
.politica section p { margin: 0 0 12px; }
.politica section p:last-child { margin-bottom: 0; }
.politica section ul { margin: 0 0 12px; padding-left: 22px; display: flex; flex-direction: column; gap: 6px; }
.politica section ul:last-child { margin-bottom: 0; }
.politica section a { font-weight: 700; }
