.container-bg--top {

}
/* === Catalog Section === */
.catalogo__fecha-vigencia,
.mensaje-important {
 padding: var(--spacing-small);
 font-family: var(--font-family-primary);
 font-weight: var(--font-weight-bold);
 font-size: var(--font-size-lg);
 margin-bottom: 0;
 background-color: var(--neutral-700);
 color: var(--color-warning);
 text-shadow: 1px 1px 3px var(--text-color);
}

.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);
  font-size: var(--font-size-lg);
  display: inline-block;
  transform: translateY(2px); 
  font-style: normal;
  animation: escala-suave 2s ease-in-out infinite;
}
@keyframes escala-suave {
    0%, 100% { transform: translateY(2px) scale(1); }
    50% { transform: translateY(2px) scale(1.1); }
}
.catalogo__fecha-nota {
  margin-top: 0;
  margin-bottom: 0;
  background-color: var(--background-color);
  padding: var(--spacing-small);
}
.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 */

/* #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 {
 margin-top: calc(1.5 * var(--spacing-large));
 grid-column: 1 / -1;
 color: var(--color-on-primary);
 font-size: var(--font-size-h3);
 height: 65px;
 background-color: var(--neutral-700);
 border-radius: var(--border-radius-small);
 line-height: 65px;
 padding-top: 0;
 text-shadow: 1px 1px 5px var(--text-color);
}

/* Filtros */
.product-card__title {
  flex: 1;
  text-align: left;
}
/* === Estilos base (pantallas grandes) === */
/* → 1. En pantallas anchas, todos los cinco elementos en línea */
.catalogo__filtros {
  display: flex;
  align-items: center;
  gap: var(--spacing-medium);
  justify-content: flex-start; /* botón a la izquierda */
  position: sticky;
  top: 70px;
  z-index: 1000;
}

/* === Buscador === */

.catalog-search {
  width: 100% !important;
  max-width: none; /* deja que ocupe el espacio del contenedor */
  min-width: 220px;
  box-sizing: border-box;
  padding: 0.6rem 1rem;
  border: 1px solid var(--neutral-400);
  border-radius: 20px;
  font-size: 0.95rem;
}

.catalog-search:focus {
  width: 100%;
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px var(--color-tertiary);
}

/* Estilos cards */
.products-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--spacing-large);
  margin-top: var(--spacing-medium);
  align-items: stretch;
  justify-content: space-between;
}

.product-card {
  flex: 1;
  min-width: 250px;
  background: var(--background-color);
  border-radius: var(--border-radius-medium);
  box-shadow: var(--shadow-md);
  display: flex;
  flex-direction: column;
  padding: var(--spacing-medium);
  margin-top: var(--spacing-medium);
  transition:opacity .25s, transform .25s;
}

.product-card h3, .product-card p {
    padding: 0;
    margin: var(--spacing-small);
}

.product-card ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    height: 100%;
    margin-bottom: var(--spacing-medium);
}
.product-card li {
    text-align: left;
    padding-left: var(--spacing-x-large);
}

.product-card li span {
    display: inline-block;
    width: var(--spacing-medium);
}

.product-card:hover {
    box-shadow: var(--shadow-md);
    transform: scale(1.05);
    transition: transform 0.3s ease-in-out, box-shadow 0.3s ease-in-out;
}

.product-card img {
    width: 100%;
    object-fit: cover;
    flex-shrink: 0;
}

/* Botón de título principal */
.product-card__title {
  padding: var(--spacing-xx-small);
  margin: 0;
  font-size: var(--font-size-md2);
  color: var(--color-text);
  transition: all 0.2s ease-in-out;
  flex: 0 0 auto;
  text-align: center;
}

/* Botones Filtros */
.product-card__btn {
  display: inline-block;
  min-width: 140px;
  background: var(--text-color) !important;
  color: var(--background-color);
  font-weight: var(--font-weight-normal) !important;
  text-align: center;
  padding: var(--spacing-small) var(--spacing-medium);
  margin: 0!important;
  border-radius: 15px !important;
}

.product-card__btn:focus {
  outline: 0;
  outline-offset: 0 !important;
}

.product-card__btn:hover {
  background: var(--color-success) !important;
  color: var(--background-color) !important;
}

/* === COMPLEMENTOS === */

.catalog-product {
  border: 1px solid #ddd;
  border-radius: 10px;
  padding: 1rem;
  margin: .5rem 0;
  background: #fff;
  transition: opacity .3s ease, transform .3s ease;
}

/* Animación de aparición suave */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.fade-in {
  animation: fadeIn 0.3s ease-in-out;
}

/* === Media Queries === */
/* FIn Filtros */

.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(--color-on-primary);
  transition: opacity 200ms ease, transform 200ms ease;
  aspect-ratio: 1 / 1.5;
}

.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 */
}

/* la imagen conserva tu base, pero añade transición y centrado */
.producto img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center;
  min-height: 120px;
  position: relative;
  background-color: var(--neutral-300);
}

.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(--color-on-primary);
 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);
  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 === */
/* TABLET horizontal: hasta 1024px */
@media (max-width: 1024px) {
  .catalogo__productos {
  grid-template-columns: repeat(3, 1fr);
  }
  .catalogo__categoria {
  grid-column: 1 / -1;
  }
}
/* === TABLET vertical / móviles grandes: hasta 768px === */
@media (max-width: 768px) {
  .catalogo__filtros {
    flex-direction: column;
    align-items: stretch;
    gap: var(--spacing-medium);
  }

  /* Título + toggle siguen juntos en la misma línea */
  .product-card__title {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-sm);
    width: auto;
  }

  /* Botones abajo, cada uno línea completa */
  .product-card__btn {
    flex: 1 1 100%;
    width: 100%;
    margin: auto !important;
    text-align: center;
    border-radius: 10px !important;
    font-size: var(--font-size-sm);
  }
  .catalogo__productos {
  grid-template-columns: repeat(2, 1fr);
  }
  .catalogo__categoria {
  grid-column: 1 / -1;
  }
}
/* === MÓVILES pequeños: hasta 576px === */
@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;
  }
  .catalogo-texto {
    grid-template-columns: 1fr;
    padding: var(--spacing-medium);
  }
  .catalogo-texto__item {
    text-align: center;
  }
}

/* Modal Producto Agregado */
.product-added-modal {
  position: fixed;
  top: 6%; /* Nueva posición vertical */
  right: 4%; /* Nueva posición horizontal */
  border-radius: 12px;
  display: flex;
  align-items: center;
  gap: 10px;
  z-index: 2000;
  opacity: 0;
  transition: all 0.3s ease;
  margin: 0!important;
}
.product-added-modal.active {
  opacity: 1;
}
.product-added-modal img {
  width: 260px;
  height: 250px;
  border-radius: 8px;
}
.modal-confirmation {
  object-fit: contain;
  border-radius: var(--border-radius-small);
  box-shadow: 0 4px 15px rgba(0,0,0,0.2);
  animation: palpitar 0.8s ease-in-out 3; /* Se repite 3 veces */
}
@keyframes palpitar {
    0% {
        transform: translate(0, 0);
    }
    35% {
        transform: translate(10px, -20px);
    }
    100% {
        transform: translate(0, 0);
    }
}
