/* ============================================================
   PALETA & VARIABLES — Estética mexicana moderna
   ============================================================ */
:root{
  --mx-sand:    #faf3e7;   /* fondo cálido */
  --mx-oxblood: #7b2d26;   /* rojo marrón (texto/acentos) */
  --mx-maize:   #f2c14e;   /* maíz (detalles) */
  --mx-agave:   #156f4b;   /* agave (detalles) */
  --mx-ink:     #262422;   /* texto oscuro */
  --mx-line:    #e6ded2;   /* líneas/sutil borde */
  --mx-card:    #fff9f1;   /* tarjeta */
  --mx-card-rgb: 255,249,241; /* para fallback de fade */
  --mx-shadow:  0 8px 20px rgba(0,0,0,.06);

  --radius-card: 16px;
  --radius-pill: 9999px;

  --fondo-opacidad: 0.22;  /* fondo decorativo más sutil */

  /* Fade de imagen (ajústalo si quieres más/menos fade) */
  --img-fade-keep: 60%;   /* hasta aquí es sólida */
  --img-fade-soft1: 75%;  /* inicio suavizado */
  --img-fade-soft2: 90%;  /* casi transparente */
  --img-fade-end: 100%;   /* totalmente transparente */
}

/* ============================================================
   FONDO ESTÁTICO A PANTALLA COMPLETA
   ============================================================ */
body::before {
  content: "";
  position: fixed;
  inset: 0;
  background-image: url('fondo.jpg');
  background-size: cover;
  background-position: center center;
  opacity: var(--fondo-opacidad);
  z-index: -1;
  pointer-events: none;
}

/* ============================================================
   TIPOGRAFÍA GLOBAL Y COLORES BASE
   ============================================================ */
body{
  font-family: "Inter", "Nunito Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  background-color: var(--mx-sand);
  color: var(--mx-ink);
  margin: 0;
  padding: 0;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}

h1,h2,h3{ letter-spacing: .2px; }

/* ============================================================
   CONTENEDOR GENERAL
   ============================================================ */
.contenedor{
  max-width: 1100px;
  margin: auto;
  padding: 22px 18px 28px;
}

/* ============================================================
   ENCABEZADO
   ============================================================ */
.encabezado{
  text-align:center;
  margin-bottom: 36px;
}
.encabezado h1{
  font-family: "Oswald", "Fjalla One", Impact, system-ui, sans-serif;
  font-size: clamp(30px, 4.2vw, 46px);
  margin: 0;
  color: var(--mx-oxblood);
}
.subtitulo{
  font-size: 15px;
  color: #6b5f55;
  margin-top: 8px;
}

/* ============================================================
   CATEGORÍAS (H2) + SUBCATEGORÍAS (H3)
   ============================================================ */
.categoria{ margin-bottom: 36px; }

.categoria h2{
  font-family: "Oswald", system-ui, sans-serif;
  font-size: clamp(24px, 3.2vw, 34px);
  color: var(--mx-oxblood);
  margin: 0 0 14px;
  padding-bottom: 8px;
  border-bottom: 3px dotted var(--mx-line);
}
.categoria h2::after{
  content:"";
  display:inline-block;
  vertical-align: middle;
  margin-left: 10px;
  width: 36px; height: 6px;
  border-radius: 6px;
  background: linear-gradient(90deg, var(--mx-maize), var(--mx-agave));
  opacity: .85;
}

.subcategoria{
  font-family: "Oswald", system-ui, sans-serif;
  font-size: clamp(18px, 2.6vw, 24px);
  color: var(--mx-oxblood);
  margin: 20px 0 10px;
  padding-left: 10px;
  border-left: 6px solid var(--mx-agave);
}

/* ============================================================
   TARJETA DE PRODUCTO
   * Imagen ABSOLUTA a la derecha que ocupa TODO el alto del card
   * Reservamos ancho con padding-right
   ============================================================ */
.item{
  position: relative;
  /* ancho reservado para la imagen + separación interna */
  --img-w: clamp(160px, 30%, 320px);
  --img-gap: 16px;

  margin-bottom: 18px;
  padding: 16px calc(var(--img-w) + var(--img-gap)) 14px 16px;
  border-radius: var(--radius-card);
  background: var(--mx-card);
  border: 1px solid var(--mx-line);
  box-shadow: var(--mx-shadow);
}

/* ============================================================
   IMAGEN DEL PRODUCTO (RECTÁNGULO DERECHA + FADE SUAVE A IZQUIERDA)
   - Pegada al borde derecho y del alto exacto del card
   - Esquinas derechas redondeadas
   ============================================================ */
.imagen-producto-container{
  position: absolute;
  top: 0; right: 0; bottom: 0;
  width: var(--img-w);
  border-top-right-radius: var(--radius-card);
  border-bottom-right-radius: var(--radius-card);
  overflow: hidden;
  background: #000; /* por si tarda en cargar */
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.04);
}

/* Apilado + máscara de degradado suave hacia la izquierda */
.imagen-producto-container img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: 0;
  transition: opacity .5s ease;
  display: block;

  /* Difuminado MUY suave (ajustable con variables) */
  -webkit-mask-image: linear-gradient(
    to left,
    rgba(0,0,0,1)    var(--img-fade-keep),
    rgba(0,0,0,.85)  var(--img-fade-soft1),
    rgba(0,0,0,.45)  var(--img-fade-soft2),
    rgba(0,0,0,0)    var(--img-fade-end)
  );
          mask-image: linear-gradient(
    to left,
    rgba(0,0,0,1)    var(--img-fade-keep),
    rgba(0,0,0,.85)  var(--img-fade-soft1),
    rgba(0,0,0,.45)  var(--img-fade-soft2),
    rgba(0,0,0,0)    var(--img-fade-end)
  );
  -webkit-mask-size: 100% 100%;
          mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
          mask-repeat: no-repeat;
}
.imagen-producto-container img.active{ opacity: 1; }

/* Fallback para navegadores sin mask-image: overlay que funde con el card */
@supports not ((-webkit-mask-image: linear-gradient(#000,#000)) or (mask-image: linear-gradient(#000,#000))){
  .imagen-producto-container::after{
    content:"";
    position:absolute; inset:0;
    pointer-events:none;
    background: linear-gradient(
      to left,
      rgba(0,0,0,0)                 var(--img-fade-keep),
      rgba(var(--mx-card-rgb), .35) var(--img-fade-soft1),
      rgba(var(--mx-card-rgb), .75) var(--img-fade-soft2),
      rgba(var(--mx-card-rgb), 1)   var(--img-fade-end)
    );
  }
}

/* En PROMOS se omite el bloque de imagen */
.promo-item .imagen-producto-container{ display: none !important; }

/* ============================================================
   TEXTO DEL PRODUCTO
   ============================================================ */
.item > .texto-producto{
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  min-width: 0;
}
.item > .texto-producto > h3{
  font-family: "Oswald", system-ui, sans-serif;
  font-size: clamp(18px, 2.4vw, 22px);
  font-weight: 800;
  margin: 0 0 6px 0;
  color: var(--mx-oxblood);
  line-height: 1.18;
  letter-spacing: .2px;
}

/* Descripción general */
.descripcion-general{
  color: #6b4a44; /* marrón rojizo suave */
  font-size: 15.5px;
  margin: 2px 0 0 0;
  line-height: 1.38;
  max-width: 70ch;
}

/* Badges (si los usas) */
.badges{
  display: inline-flex;
  gap: 6px;
  margin-left: 8px;
  vertical-align: middle;
}
.badge{
  display: inline-flex; align-items: center; gap: 6px;
  padding: 3px 8px;
  border-radius: var(--radius-pill);
  font-size: 12px; font-weight: 800; line-height: 1;
  letter-spacing: .2px;
}
.badge-vegan{ background: #107a2b; color: #fff; }
.badge-veggie{ background: #dff0e3; color: #0c4e2f; border: 1px solid #abd9bf; }

/* ============================================================
   PRECIO & PRESENTACIONES (chips)
   - Precio en BLANCO con BORDE del color del texto (oxblood)
   ============================================================ */
.valor-general{
  margin-top: 10px;
  display: inline-block;
  background: #fff;
  color: var(--mx-oxblood);
  border: 2px solid var(--mx-oxblood);
  padding: 6px 10px;
  border-radius: var(--radius-pill);
  font-weight: 900;
  font-size: 15.5px;
  letter-spacing: .2px;
  width: fit-content;
}

.presentaciones{
  display: flex; flex-wrap: wrap; gap: 8px 10px;
  margin-top: 8px;
}
.presentacion{
  display: inline-flex; align-items: center; gap: 8px;
  background: #fff;
  border: 2px solid var(--mx-oxblood);
  border-radius: var(--radius-pill);
  padding: 5px 9px;
}
.presentacion-descripcion{
  font-weight: 700;
  font-size: 13.5px;
  color: #5a3b35;
}
.presentacion-valor{
  font-weight: 900;
  font-size: 14px;
  color: var(--mx-oxblood);
  white-space: nowrap;
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 860px){
  .item{
    --img-w: clamp(120px, 42vw, 260px);
    --img-gap: 12px;
    padding: 14px calc(var(--img-w) + var(--img-gap)) 12px 14px;
  }
  /* si quieres un fade que empiece antes en móvil, descomenta: */
  /* :root{ --img-fade-keep: 56%; --img-fade-soft1: 74%; } */

  .descripcion-general{ font-size: 15px; }
  .valor-general{ font-size: 15px; padding: 6px 9px; }
  .presentacion{ padding: 4px 8px; }
  .presentacion-valor{ font-size: 13.5px; }
}

@media (max-width: 600px){
  .item{
    padding: 12px calc(var(--img-w) + var(--img-gap)) 10px 12px;
  }
}

/* ============================================================
   SIN IMAGEN → libera espacio reservado
   ============================================================ */
.imagen-producto-container:empty{
  display: none;
}
