/* Estilos de El Rincón del Productor Español */

* {
  box-sizing:border-box}
body {
  margin:0;
  background:#f7f0df;
  color:#29332c;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
header {
  background:#28553b;
  color:white;
  padding:27px 14px;
  text-align:center}
h1 {
  font:700 29px Georgia,serif;
  margin:0 0 7px}
header div {
  font-size:15px}
.flag-es {
  display:inline-block;
  vertical-align:middle;
  width:28px;
  height:19px;
  margin-left:5px;
  border-radius:2px;
  overflow:hidden;
  position:relative;
  background:#f1c40f;
  border:1px solid rgba(0,0,0,.12)}
.flag-es:before {
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:27%;
  background:#c60b1e}
.flag-es:after {
  content:"";
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  height:27%;
  background:#c60b1e}
main {
  width:100%;
  padding:16px 12px 50px}
.catalog {
  max-width:1050px;
  margin:0 auto}
.filterbar {
  background:#fff;
  border:1px solid #ded6c6;
  border-radius:17px;
  padding:14px}
.filterbar strong {
  display:block;
  color:#28553b;
  margin-bottom:8px}
.filterbar label {
  display:inline-block;
  margin:4px;
  padding:8px 10px;
  border-radius:20px;
  background:#eef3e9;
  color:#28553b;
  font-weight:700;
  font-size:14px;
  cursor:pointer}
input[type=radio] {
  position:absolute;
  opacity:0;
  pointer-events:none}
.card {
  background:#fff;
  border:1px solid #ded6c6;
  border-radius:17px;
  padding:16px;
  margin:11px 0}
.card h3 {
  font:700 21px Georgia,serif;
  color:#28553b;
  margin:0 0 8px}
.row {
  padding:7px 0;
  border-bottom:1px solid #eee7db;
  line-height:1.45}
.row:last-of-type {
  border:0}
.label {
  font-weight:700;
  color:#665b4d}
.tag {
  display:inline-block;
  background:#eef3e9;
  color:#28553b;
  border-radius:20px;
  padding:5px 8px;
  font-size:12px;
  margin:3px 3px 6px 0}
.services {
  margin:10px 0;
  color:#28553b;
  font-weight:700;
  line-height:1.7}
.actions {
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:12px}
.actions a {
  display:inline-block;
  min-height:40px;
  padding:9px 11px;
  border-radius:10px;
  background:#f0eee7;
  color:#29332c;
  text-decoration:none;
  font-weight:700;
  font-size:14px}
.main {
  background:#28553b!important;
  color:#fff!important}
.ig {
  background:#f7e8ef!important}
.fb {
  background:#e9eff9!important}
.tt {
  background:#eee!important}
footer {
  text-align:center;
  color:#756b5c;
  padding:25px}
footer a {
  color:#28553b;
  font-weight:700}
footer a:hover,
footer a:focus-visible {
  color:#173b28}
#aceite-de-oliva-y-aceituna:checked ~ .catalog .card:not(.c-aceite-de-oliva-y-aceituna) {
  display:none}
#aceite-de-oliva-y-aceituna:checked ~ .filterbar label[for="aceite-de-oliva-y-aceituna"] {
  background:#28553b;
  color:#fff}
#frutos-secos:checked ~ .catalog .card:not(.c-frutos-secos) {
  display:none}
#frutos-secos:checked ~ .filterbar label[for="frutos-secos"] {
  background:#28553b;
  color:#fff}
#producci-n-ecol-gica-y-regenerativa:checked ~ .catalog .card:not(.c-producci-n-ecol-gica-y-regenerativa) {
  display:none}
#producci-n-ecol-gica-y-regenerativa:checked ~ .filterbar label[for="producci-n-ecol-gica-y-regenerativa"] {
  background:#28553b;
  color:#fff}
#frutas-tropicales-y-subtropicales:checked ~ .catalog .card:not(.c-frutas-tropicales-y-subtropicales) {
  display:none}
#frutas-tropicales-y-subtropicales:checked ~ .filterbar label[for="frutas-tropicales-y-subtropicales"] {
  background:#28553b;
  color:#fff}
#c-tricos:checked ~ .catalog .card:not(.c-c-tricos) {
  display:none}
#c-tricos:checked ~ .filterbar label[for="c-tricos"] {
  background:#28553b;
  color:#fff}
#legumbres:checked ~ .catalog .card:not(.c-legumbres) {
  display:none}
#legumbres:checked ~ .filterbar label[for="legumbres"] {
  background:#28553b;
  color:#fff}
#miel-y-productos-ap-colas:checked ~ .catalog .card:not(.c-miel-y-productos-ap-colas) {
  display:none}
#miel-y-productos-ap-colas:checked ~ .filterbar label[for="miel-y-productos-ap-colas"] {
  background:#28553b;
  color:#fff}
#frutas:checked ~ .catalog .card:not(.c-frutas) {
  display:none}
#frutas:checked ~ .filterbar label[for="frutas"] {
  background:#28553b;
  color:#fff}
#carnes-y-aves:checked ~ .catalog .card:not(.c-carnes-y-aves) {
  display:none}
#carnes-y-aves:checked ~ .filterbar label[for="carnes-y-aves"] {
  background:#28553b;
  color:#fff}
#huevos:checked ~ .catalog .card:not(.c-huevos) {
  display:none}
#huevos:checked ~ .filterbar label[for="huevos"] {
  background:#28553b;
  color:#fff}
#chocolate-y-cacao:checked ~ .catalog .card:not(.c-chocolate-y-cacao) {
  display:none}
#chocolate-y-cacao:checked ~ .filterbar label[for="chocolate-y-cacao"] {
  background:#28553b;
  color:#fff}
#quesos-y-l-cteos:checked ~ .catalog .card:not(.c-quesos-y-l-cteos) {
  display:none}
#quesos-y-l-cteos:checked ~ .filterbar label[for="quesos-y-l-cteos"] {
  background:#28553b;
  color:#fff}
#verduras-y-hortalizas:checked ~ .catalog .card:not(.c-verduras-y-hortalizas) {
  display:none}
#verduras-y-hortalizas:checked ~ .filterbar label[for="verduras-y-hortalizas"] {
  background:#28553b;
  color:#fff}
#vinos-y-bebidas:checked ~ .catalog .card:not(.c-vinos-y-bebidas) {
  display:none}
#vinos-y-bebidas:checked ~ .filterbar label[for="vinos-y-bebidas"] {
  background:#28553b;
  color:#fff}
#artesan-a-y-productos-naturales:checked ~ .catalog .card:not(.c-artesan-a-y-productos-naturales) {
  display:none}
#artesan-a-y-productos-naturales:checked ~ .filterbar label[for="artesan-a-y-productos-naturales"] {
  background:#28553b;
  color:#fff}
#conservas-y-elaborados:checked ~ .catalog .card:not(.c-conservas-y-elaborados) {
  display:none}
#conservas-y-elaborados:checked ~ .filterbar label[for="conservas-y-elaborados"] {
  background:#28553b;
  color:#fff}
#varios:checked ~ .catalog .card:not(.c-varios) {
  display:none}
#varios:checked ~ .filterbar label[for="varios"] {
  background:#28553b;
  color:#fff}
#trufa:checked ~ .catalog .card:not(.c-trufa) {
  display:none}
#trufa:checked ~ .filterbar label[for="trufa"] {
  background:#28553b;
  color:#fff}

/* Estilos para el sistema de filtrado dinámico (JS) */
.filter-label {
  display: inline-block;
  margin: 4px;
  padding: 8px 10px;
  border-radius: 20px;
  background: #eef3e9;
  color: #28553b;
  font-weight: 700;
  font-size: 14px;
  cursor: pointer;
  user-select: none;
  transition: background 0.2s, color 0.2s;
}

.filter-label:hover {
  background: #d4e8ca;
}

.filter-label.active {
  background: #28553b;
  color: #fff;
}

/* =========================================
   NUEVOS ESTILOS: HERO Y CATEGORÍAS
========================================= */

/* Sección Hero */
.hero {
  position: relative;
  background-image: linear-gradient(rgba(40, 85, 59, 0.7), rgba(40, 85, 59, 0.8)), url('https://images.unsplash.com/photo-1500382017468-9049fed747ef?q=80&w=2000');
  background-size: cover;
  background-position: center;
  color: white;
  text-align: center;
  padding: 80px 20px;
  margin-bottom: 30px;
}

.hero-content {
  max-width: 800px;
  margin: 0 auto;
}

.hero-content h2 {
  font-family: Georgia, serif;
  font-size: 42px;
  margin: 0 0 15px 0;
  text-shadow: 1px 2px 4px rgba(0,0,0,0.5);
}

.hero-content p {
  font-size: 18px;
  margin: 0 0 30px 0;
  opacity: 0.9;
}

/* Buscador */
.search-container {
  display: flex;
  max-width: 600px;
  margin: 0 auto;
  box-shadow: 0 8px 24px rgba(0,0,0,0.15);
  border-radius: 30px;
  overflow: hidden;
}

.search-container input {
  flex: 1;
  padding: 16px 24px;
  border: none;
  font-size: 16px;
  outline: none;
}

.search-container button {
  background: #f1c40f;
  color: #29332c;
  border: none;
  padding: 0 30px;
  font-weight: bold;
  font-size: 16px;
  cursor: pointer;
  transition: background 0.2s;
}

.search-container button:hover {
  background: #d4ac0d;
}

/* Cuadrícula Visual de Categorías */
.filterbar-visual {
  width: 100%;
  margin-bottom: 40px;
}

.filterbar-visual[hidden] {
  display: none;
}

.categories-header {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 14px;
  margin-bottom: 25px;
}

.filterbar-visual h2 {
  font-family: Georgia, serif;
  color: #28553b;
  text-align: center;
  margin: 0;
}

.categories-toggle {
  border: 1px solid #28553b;
  border-radius: 20px;
  background: #fff;
  color: #28553b;
  padding: 8px 14px;
  font-weight: 700;
  cursor: pointer;
}

.categories-toggle:hover,
.categories-toggle:focus-visible {
  background: #28553b;
  color: #fff;
}

.cat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
  gap: 15px;
}

.cat-grid[hidden] {
  display: none;
}

@media (max-width: 700px) {
  .categories-header {
    margin-bottom: 15px;
  }

  .categories-toggle {
    width: 100%;
  }
}

.cat-card {
  position: relative;
  height: 110px;
  border-radius: 12px;
  overflow: hidden;
  cursor: pointer;
  box-shadow: 0 4px 10px rgba(0,0,0,0.06);
  transition: transform 0.2s, box-shadow 0.2s;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: 10px;
  text-align: center;
  /* Eliminar márgenes y paddings antiguos de .filter-label */
  margin: 0; 
}

.cat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 16px rgba(0,0,0,0.12);
}

.cat-card.active {
  border: 3px solid #28553b;
}

.cat-bg {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  filter: brightness(0.7);
  transition: filter 0.3s;
  z-index: 1;
}

.cat-card:hover .cat-bg {
  filter: brightness(0.5);
}

.cat-name {
  position: relative;
  z-index: 2;
  color: white;
  font-weight: 700;
  font-size: 13px;
  text-shadow: 0 2px 4px rgba(0,0,0,0.8);
  line-height: 1.2;
}

/* Fix para el .active original que sobreescribe estilos de texto */
.cat-card.active .cat-name {
  color: #fff;
}
