/* === Catalog Section === */
.catalogo__fecha-vigencia,
.mensaje-important {
 padding: var(--spacing-small);
 font-family: var(--font-family-primary);
 font-weight: var(--font-weight-bold);
 margin-bottom: 0;
 background-color: var(--neutral-900);
 color: var(--color-warning);
}

.catalogo__fecha-vigencia::before {
 font-family: "Font Awesome 6 Free";
 font-weight: var(--font-weight-semibold);
 content: "\f071"; /* Warning icon */
 margin-right: var(--spacing-small);
 color: var(--text-color); /* Semantic warning */
 font-size: var(--font-size-lg);
 display: inline-block;
 transform: translateY(2px); 
 font-style: normal;
}
.info {
 font-size: var(--font-size-md);
 font-weight: var(--font-weight-semibold);
 color: var(--neutral-700); /* Neutral-700 */
 margin-top: var(--spacing-medium);
 padding: 0 var(--spacing-small);
}
/* #region bloque de texto */

/* === Responsive layout === */

@media (max-width: 576px) {
  .catalogo-texto {
    grid-template-columns: 1fr;
    padding: var(--spacing-medium);
  }
  .catalogo-texto__item {
    text-align: center;
  }
}


/* #endregion bloque de texto */

.catalogo__productos {
 display: grid;
 grid-template-columns: repeat(4, 1fr);
 gap: var(--spacing-large);
 padding: 0 var(--spacing-xx-small);
 box-sizing: border-box;
 width: 100%;
 max-width: 1200px;
 margin: 0 auto;
}

.catalogo__categoria {
 border-top: 3px solid var(--neutral-500); /* Neutral for divider */
 padding-top: var(--spacing-medium);
 margin-top: calc(1.5 * var(--spacing-large));
 padding-bottom: 0;
 margin-bottom: 0;
 grid-column: 1 / -1;
 font-family: var(--font-family-secondary);
 font-weight: var(--font-weight-semibold);
 color: var(--title-color); /* 10% accent */
 font-size: var(--font-size-lg);
}

.producto {
  border: 1px solid var(--neutral-300);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--shadow-xs);
  text-align: center;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border-color: var(--neutral-500);
  background: var(--background-color-alt-lighter); /* 60% neutral variant */
}

.producto:hover {
  border-color: var(--neutral-700);
  box-shadow: var(--shadow-md);
  transform: scale(1.03) translateY(-4px);
  transition: transform var(--transition-duration-fast) var(--transition-easing-smooth),
              box-shadow var(--transition-duration-fast) var(--transition-easing-smooth);
}

.producto p {
 margin: 0;
 color: var(--text-color); /* Neutral-700 */
}

.producto__nombre {
 font-family: var(--font-family-primary);
 font-size: var(--font-size-md);
 font-weight: var(--font-weight-semibold);
 color: var(--title-color); /* 10% accent */
}

.producto__precio {
 font-family: var(--font-family-secondary);
 font-size: var(--font-size-lg);
 font-weight: var(--font-weight-bold);
 color: var(--color-primary); /* 30% primary for emphasis */
}

.producto img {
 width: 100%;
 height: auto;
 display: block;
 background-color: var(--neutral-300); /* Neutral for fallback */
 object-fit: cover;
 min-height: 120px;
 position: relative;
}

.producto__texto {
 display: flex;
 flex-direction: column;
 justify-content: center;
 padding: 0;
 box-sizing: border-box;
}

.producto__texto p {
 margin-bottom: var(--spacing-medium);
}

/* === Buttons === */
.agregar-carrito {
  width: 100%;
  background: radial-gradient(ellipse farthest-corner at right bottom, #FFD700 0%, #DAA520 30%, #e9aa0b 40%, transparent 80%),
              radial-gradient(ellipse farthest-corner at left top, #f1cd3d 0%, #f0e18c 25%, #FFD700 62.5%, #DAA520 100%);
  color: var(--text-color);
  padding: var(--spacing-small);
  border: none;
  font-family: var(--font-family-primary);
  font-size: var(--font-size-md);
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: 
    background-color var(--transition-duration-default) var(--transition-easing-smooth),
    transform var(--transition-duration-fast) var(--transition-easing-smooth);
}

.agregar-carrito:hover {
  /* ✅ Más oscuro que el normal */
  background-color: color-mix(in srgb, var(--color-primary) 70%, black);
  transform: scale(1.05) translateY(-0.1em);
  font-weight: var(--font-weight-semibold);
}



.btn--secondary:active,
.agregar-carrito:active {
 transform: scale(0.98);
}

.btn--secondary:focus,
.agregar-carrito:focus {
 outline: 2px solid var(--color-info);
 outline-offset: 1px;
}

/* === Specific Category Headings === */
#materialapicola,
#criareinas,
#equipoapicola {
 grid-column: 1 / -1;
 width: 100%;
 box-sizing: border-box;
 padding: var(--spacing-medium);
 background-color: var(--background-color-alt); /* 60% neutral variant */
 border-bottom: 2px solid var(--neutral-500); /* Neutral for divider */
 margin: var(--spacing-medium) 0 0;
 font-family: var(--font-family-primary);
 font-size: var(--font-size-h3);
 font-weight: var(--font-weight-semibold);
 color: var(--title-color); /* 10% accent */
}

/* === Product Modal === */
.product-modal {
 position: fixed;
 top: 50%;
 left: 50%;
 transform: translate(-50%, -50%);
 background: var(--background-color); /* 60% neutral-100 */
 max-width: 550px;
 overflow: auto;
 z-index: 1000; /* Standardized z-index */
 text-align: center;
 border-radius: var(--border-radius-medium);
 box-shadow: var(--shadow-md);
}

.modal-image-container {
 position: relative;
 margin-bottom: var(--spacing-medium);
}

.modal-main-image {
 max-width: 100%;
 max-height: 450px;
 object-fit: contain;
 border-radius: var(--border-radius-small);
}

.modal-arrow {
 position: absolute;
 top: 50%;
 transform: translateY(-50%);
 color: var(--neutral-500);
 background-color: var(--color-on-primary-80); /* Semi-transparent white */
 border: none;
 padding: var(--spacing-small);
 cursor: pointer;
 font-size: var(--font-size-lg);
 border-radius: var(--border-radius-small);
 transition: background-color var(--transition-duration-fast) var(--transition-easing-smooth);
}

.modal-arrow:hover {
  background-color: var(--color-on-primary);
}

.modal-arrow--prev {
 left: var(--spacing-small);
}

.modal-arrow--next {
 right: var(--spacing-small);
}

.modal-product-name {
  margin: var(--spacing-medium);
  font-family: var(--font-family-primary);
  font-size: var(--font-size-md); /* Replaced --font-size-h5 */
  font-weight: var(--font-weight-semibold);
  line-height: 1.3;
  text-transform: uppercase;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

.modal-product-description {
 margin: 0 var(--spacing-small) var(--spacing-medium) var(--spacing-small);
}

.modal-close {
 position: absolute;
 top: var(--spacing-small);
 right: var(--spacing-small);
 background: none;
 border: none;
 font-size: var(--font-size-h1);
 cursor: pointer;
 color: var(--text-color); /* Neutral-700 */
 transition: color var(--transition-duration-fast) var(--transition-easing-smooth);
}

.modal-close:hover {
 color: var(--color-primary); /* 30% primary */
}

/* === Media Queries === */
@media (max-width: 1024px) {
 .catalogo__productos {
 grid-template-columns: repeat(3, 1fr);
 }
 .catalogo__categoria {
 grid-column: 1 / -1;
 }
}

@media (max-width: 768px) {
 .catalogo__productos {
 grid-template-columns: repeat(2, 1fr);
 }
 .catalogo__categoria {
 grid-column: 1 / -1;
 }
}

@media (max-width: 576px) {
 .contenedor-catalogo {
 margin-top: -15px; /* Kept fixed for specific design */
 }
 .catalogo__productos {
 grid-template-columns: 1fr;
 }
 .catalogo__categoria {
 grid-column: 1 / -1;
 }
}