Observatorio de precios ASAJA, semana 44. Del 26 al 30 de octubre de 2026.
<!-- =====================================================================
OBSERVATORIO DE PRECIOS ASAJA · versión web · Semana 44
Pegar TODO este bloque en un widget «HTML» de Elementor.
Cada semana solo cambia el bloque de DATOS (entre las dos marcas).
====================================================================== -->
<!-- ▼▼▼ DATOS DE LA SEMANA (empieza) ▼▼▼ -->
<script type="application/json" id="asaja-obs-data">
{
"semana": 44,
"anio": 2026,
"periodo": "Del 26 al 30 de octubre de 2026",
"pdf": "https://www.asaja.com/wp-content/uploads/2026/10/Obervatorio-de-precios-semana-44-completo.pdf",
"historico": "https://www.asaja.com/observatorio-precios-historico/",
"tiendas": [
"Carrefour",
"Dia",
"ECI",
"Mercadona",
"Alcampo"
],
"secciones": [
{
"id": "frutas",
"nombre": "Frutas",
"icono": "frutas",
"tipo": "tienda",
"filas": [
[
"Ciruela",
"Tipo Black",
"Generalitat Valenciana",
"0,50",
"",
"=",
[
"3,29",
"3,29",
"3,95",
"",
"3,29"
]
],
[
"Limón",
"Verna",
"Generalitat Valenciana",
"0,05",
"",
"=",
[
"2,49",
"2,99",
"2,99",
"2,60",
"2,39"
]
],
[
"Manzana",
"Fuji",
"Lonja del Ebro",
"0,55",
"",
"=",
[
"2,40",
"1,99",
"2,49",
"2,00",
"1,89"
]
],
[
"Manzana",
"Golden Grande I",
"Lonja del Ebro",
"0,48",
"",
"=",
[
"2,99",
"2,19",
"2,49",
"2,00",
"1,79"
]
],
[
"Nectarina",
"Amarilla",
"Consejería de Murcia",
"0,50",
"0,65",
"=",
[
"",
"2,65",
"3,25",
"",
""
]
],
[
"Pera",
"Conferencia",
"Lonja del Ebro",
"0,75",
"",
"=",
[
"2,45",
"2,79",
"2,49",
"2,50",
"1,98"
]
]
]
},
{
"id": "hortalizas",
"nombre": "Hortalizas",
"icono": "hortalizas",
"tipo": "tienda",
"filas": [
[
"Acelga",
"Acelga",
"Gobierno de La Rioja",
"0,80",
"",
"=",
[
"3,11",
"4,24",
"4,48",
"4,50",
"2,65"
]
],
[
"Champiñón",
"Bandeja pie cortado",
"Gobierno de La Rioja",
"3,60",
"",
"=",
[
"6,20",
"6,76",
"7,96",
"6,60",
"6,20"
]
],
[
"Berenjena",
"Berenjena",
"ASAJA Almería",
"0,68",
"",
"s",
[
"1,99",
"2,63",
"2,59",
"2,20",
"1,99"
]
],
[
"Patata",
"Blanca",
"Generalitat Valenciana",
"",
"",
"",
[
"1,75",
"1,89",
"1,99",
"1,90",
"1,84"
]
],
[
"Brócoli",
"Brócoli",
"Gobierno de Navarra",
"1,27",
"",
"s",
[
"2,70",
"2,22",
"3,98",
"2,30",
"1,90"
]
],
[
"Calabacín",
"Calabacín",
"ASAJA Almería",
"0,70",
"",
"b",
[
"1,79",
"2,49",
"2,25",
"1,40",
"1,78"
]
],
[
"Cebolla",
"Cebolla dulce",
"Ministerio de Agricultura",
"0,33",
"",
"b",
[
"2,39",
"2,99",
"2,99",
"2,50",
"1,99"
]
],
[
"Coliflor",
"Coliflor blanca",
"Gobierno de Navarra",
"0,82",
"",
"=",
[
"1,79",
"2,49",
"3,95",
"2,50",
""
]
],
[
"Repollo",
"Hoja rizada",
"Generalitat Valenciana",
"0,45",
"",
"b",
[
"1,63",
"1,69",
"1,99",
"",
""
]
],
[
"Pimiento",
"Italiano verde",
"ASAJA Almería",
"1,35",
"",
"b",
[
"2,45",
"2,99",
"2,95",
"2,50",
"3,29"
]
],
[
"Pimiento",
"Lamuyo rojo",
"ASAJA Almería",
"1,58",
"",
"b",
[
"2,79",
"3,79",
"3,95",
"2,90",
"3,99"
]
],
[
"Pimiento",
"Lamuyo verde",
"ASAJA Almería",
"1,43",
"",
"b",
[
"2,80",
"2,99",
"3,95",
"",
"4,89"
]
],
[
"Pepino",
"Largo",
"ASAJA Almería",
"0,92",
"",
"b",
[
"",
"1,99",
"2,89",
"2,65",
"3,98"
]
],
[
"Lechuga",
"Romana",
"Generalitat Valenciana",
"0,40",
"",
"b",
[
"",
"1,09",
"4,97",
"1,10",
"2,90"
]
],
[
"Tomate",
"Pera",
"ASAJA Almería",
"2,09",
"",
"s",
[
"1,63",
"3,58",
"3,29",
"2,20",
"2,18"
]
],
[
"Tomate",
"Suelto",
"ASAJA Almería",
"1,81",
"",
"s",
[
"2,19",
"2,99",
"3,29",
"2,20",
"1,14"
]
],
[
"Calabaza",
"Tipo cacahuete",
"Generalitat Valenciana",
"0,41",
"",
"s",
[
"1,95",
"1,99",
"1,99",
"",
"1,29"
]
],
[
"Zanahoria",
"Zanahoria",
"Ministerio de Agricultura",
"0,27",
"",
"=",
[
"3,05",
"1,19",
"2,79",
"1,00",
"1,14"
]
]
]
},
{
"id": "cereales",
"nombre": "Cereales",
"icono": "cereales",
"tipo": "lonjas",
"col": [
"Última",
"Anterior"
],
"grupos": [
{
"n": "Lonja de Albacete",
"f": [
"29/10/2026",
"22/10/2026"
],
"filas": [
[
"Avena rubia",
"191,00",
"190,00",
"s"
],
[
"Cebada +62 kg/hl",
"219,00",
"219,00",
"="
],
[
"Trigo blando",
"226,00",
"226,00",
"="
],
[
"Trigo duro (Grupo 2)",
"256,00",
"254,00",
"s"
]
]
},
{
"n": "Lonja de Barcelona",
"f": [
"20/10/2026",
"15/09/2026"
],
"filas": [
[
"Cebada nacional (camión destino)",
"262,00",
"249,00",
"s"
],
[
"Maíz CE (sobre camión destino)",
"259,00",
"262,00",
"b"
],
[
"Maíz importación puerto Tarragona",
"224,00",
"249,00",
"b"
],
[
"Trigo forrajero nacional (destino)",
"267,00",
"261,00",
"s"
]
]
},
{
"n": "Lonja de Ciudad Real",
"f": [
"21/10/2026",
"07/10/2026"
],
"filas": [
[
"Avena rubia",
"192,00",
"192,00",
"="
],
[
"Cebada pienso (+62 kg/hl)",
"221,00",
"221,00",
"="
],
[
"Maíz (14% humedad)",
"245,00",
"248,00",
"b"
],
[
"Trigos forrajeros",
"231,00",
"231,00",
"="
]
]
},
{
"n": "Lonja de Córdoba",
"f": [
"27/10/2026",
"13/10/2026"
],
"filas": [
[
"Avena",
"N/C",
"N/C",
""
],
[
"Cebada +62 kg/hl",
"N/C",
"213,00",
""
],
[
"Trigo blando (Grupo 3)",
"238,00",
"238,00",
"="
],
[
"Trigo duro (Grupo 3)",
"263,00",
"263,00",
"="
]
]
},
{
"n": "Lonja de Extremadura",
"f": [
"20/10/2026",
"13/10/2026"
],
"filas": [
[
"Avena (productor almacén comprador)",
"188,00",
"S/C",
""
],
[
"Cebada (productor almacén comprador)",
"239,00",
"236,00",
"s"
],
[
"Cebada importación origen puerto",
"240,00",
"239,00",
"s"
],
[
"Trigo pienso importación origen puerto",
"252,00",
"253,00",
"b"
],
[
"Trigo pienso (productor almacén comprador)",
"248,00",
"248,00",
"="
]
]
},
{
"n": "Lonja de León",
"f": [
"29/10/2026",
"21/10/2026"
],
"filas": [
[
"Avena",
"202,00",
"202,00",
"="
],
[
"Cebada",
"224,00",
"223,00",
"s"
],
[
"Maíz (secadero)",
"250,00",
"250,00",
"="
],
[
"Trigo pienso",
"228,00",
"230,00",
"b"
]
]
},
{
"n": "Lonja de Salamanca",
"f": [
"26/10/2026",
"19/10/2026"
],
"filas": [
[
"Avena",
"205,00",
"205,00",
"="
],
[
"Cebada",
"232,00",
"232,00",
"="
],
[
"Trigo blando",
"238,00",
"238,00",
"="
]
]
},
{
"n": "Lonja de Segovia",
"f": [
"22/10/2026",
"15/10/2026"
],
"filas": [
[
"Trigo pienso 72 kg/hl",
"232,00",
"232,00",
"="
],
[
"Centeno",
"209,00",
"209,00",
"="
],
[
"Cebada de 62 kg/hl",
"223,00",
"223,00",
"="
],
[
"Avena",
"200,00",
"200,00",
"="
]
]
},
{
"n": "Lonja de Sevilla",
"f": [
"27/10/2026",
"20/10/2026"
],
"filas": [
[
"Trigo pienso importación origen puerto",
"N/C",
"N/C",
""
],
[
"Trigo duro (Grupo 2)",
"255,00",
"255,00",
"="
],
[
"Trigo duro (Grupo 2)",
"279,00",
"279,00",
"="
],
[
"Trigo blando (Grupo 3)",
"248,00",
"248,00",
"="
],
[
"Maíz nacional",
"247,00",
"249,00",
"b"
],
[
"Maíz importación origen puerto",
"240,00",
"245,00",
"b"
],
[
"Cebada nacional",
"236,00",
"236,00",
"="
],
[
"Cebada importación origen puerto",
"236,00",
"236,00",
"="
],
[
"Avena nacional",
"N/C",
"N/C",
""
],
[
"Avena importación origen puerto",
"218,00",
"215,00",
"s"
]
]
},
{
"n": "Lonja de Toledo",
"f": [
"22/10/2026",
"08/10/2026"
],
"filas": [
[
"Trigo pienso",
"252,00",
"250,00",
"s"
],
[
"Trigo duro",
"N/C",
"N/C",
""
],
[
"Maíz (secadero)",
"259,00",
"259,00",
"="
],
[
"Cebada +62 kg/hl",
"240,00",
"239,00",
"s"
],
[
"Avena rubia",
"N/C",
"N/C",
""
]
]
},
{
"n": "Lonja de Valladolid y Palencia",
"c": "Valladolid y Palencia",
"f": [
"25/09/2026",
"11/09/2026"
],
"filas": [
[
"Avena (Valladolid)",
"N/C",
"197,00",
""
],
[
"Cebada (Valladolid)",
"N/C",
"221,00",
""
],
[
"Centeno (Valladolid)",
"N/C",
"196,00",
""
],
[
"Trigo (Valladolid)",
"N/C",
"231,00",
""
]
]
}
]
},
{
"id": "vino",
"nombre": "Vino",
"icono": "vino",
"tipo": "lonjas",
"grupos": [
{
"n": "Andalucía",
"c": "Andalucía",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Montilla",
"filas": [
[
"Blanco 12º",
[
"8,50",
"8,60"
],
[
"8,50",
"8,60"
],
"="
],
[
"Blanco 15º",
[
"8,60",
"8,90"
],
[
"8,60",
"8,90"
],
"="
],
[
"Blanco PX dulce, litro",
[
"4,50",
"4,55"
],
[
"4,50",
"4,55"
],
"="
]
]
}
]
},
{
"n": "Aragón",
"c": "Aragón",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Barbastro",
"filas": [
[
"Blanco DOP",
[
"3,82",
"3,92"
],
[
"3,82",
"3,92"
],
"="
],
[
"Rosado DOP",
[
"4,05",
"4,15"
],
[
"4,05",
"4,15"
],
"="
],
[
"Tinto DOP",
[
"4,00",
"4,10"
],
[
"4,00",
"4,10"
],
"="
]
]
}
]
},
{
"n": "Castilla-La Mancha",
"c": "Castilla-La Mancha",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Ciudad Real",
"filas": [
[
"Blanco",
[
"3,40",
"3,55"
],
[
"3,40",
"3,55"
],
"="
],
[
"Tinto",
[
"3,60",
"3,80"
],
[
"3,60",
"3,80"
],
"="
],
[
"Tinto Cencibel",
[
"4,05",
"4,25"
],
[
"4,05",
"4,25"
],
"="
],
[
"Tinto doble pasta",
[
"3,90",
"4,10"
],
[
"3,90",
"4,10"
],
"="
]
]
},
{
"n": "Méntrida",
"filas": [
[
"Rosado",
[
"3,40",
"3,50"
],
[
"3,40",
"3,50"
],
"="
],
[
"Tinto Garnacha",
[
"3,40",
"3,50"
],
[
"3,40",
"3,50"
],
"="
],
[
"Tinto Tempranillo",
[
"3,75",
"4,05"
],
[
"3,75",
"4,05"
],
"="
]
]
},
{
"n": "Villacañas",
"filas": [
[
"Blanco",
[
"3,45",
"3,60"
],
[
"3,45",
"3,60"
],
"="
],
[
"Tinto",
[
"3,45",
"3,55"
],
[
"3,45",
"3,55"
],
"="
]
]
}
]
},
{
"n": "Cataluña",
"c": "Cataluña",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Villafranca del Penedès",
"filas": [
[
"Blanco",
[
"6,65",
"6,85"
],
[
"6,65",
"6,85"
],
"="
],
[
"Blanco (f.c.)",
[
"7,70",
"7,90"
],
[
"7,70",
"7,90"
],
"="
],
[
"Rosado",
[
"5,60",
"5,80"
],
[
"5,60",
"5,80"
],
"="
],
[
"Tinto",
[
"5,10",
"5,30"
],
[
"5,10",
"5,30"
],
"="
],
[
"Tinto DOP",
[
"5,30",
"5,50"
],
[
"5,30",
"5,50"
],
"="
]
]
}
]
},
{
"n": "Comunidad Valenciana",
"c": "C. Valenciana",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Utiel-Requena",
"filas": [
[
"Blanco Macabeo",
[
"3,55",
"3,75"
],
[
"3,55",
"3,75"
],
"="
],
[
"Doble pasta",
[
"3,60",
"3,75"
],
[
"3,60",
"3,75"
],
"="
],
[
"Rosado",
[
"3,40",
"3,60"
],
[
"3,40",
"3,60"
],
"="
],
[
"Tempranillo",
[
"3,75",
"3,95"
],
[
"3,75",
"3,95"
],
"="
],
[
"Tinto",
[
"3,50",
"3,70"
],
[
"3,50",
"3,70"
],
"="
],
[
"Tintorera",
[
"3,75",
"4,05"
],
[
"3,75",
"4,05"
],
"="
]
]
}
]
},
{
"n": "La Rioja",
"c": "La Rioja",
"f": [
"10/10/2026",
"26/09/2026"
],
"sub": [
{
"n": "Rioja Media",
"filas": [
[
"Blanco cántara",
[
"27,50",
"28,00"
],
[
"27,50",
"28,00"
],
"="
],
[
"Rosado cántara 16 l",
[
"21,00",
"21,50"
],
[
"21,00",
"21,50"
],
"="
],
[
"Tinto cántara 16 l",
[
"20,50",
"21,00"
],
[
"20,50",
"21,00"
],
"="
]
]
}
]
},
{
"n": "Navarra (Observatorio Navarra)",
"c": "Navarra",
"f": [
"25/10/2026",
"18/10/2026"
],
"sub": [
{
"n": "Navarra",
"filas": [
[
"Blanco Chardonnay",
"1,05",
"1,05",
"="
],
[
"Rosado 13º",
"0,78",
"0,78",
"="
],
[
"Tinto 13º",
"0,68",
"0,68",
"="
]
]
}
]
}
]
},
{
"id": "frutos-secos",
"nombre": "Frutos secos",
"icono": "frutossecos",
"tipo": "lonjas",
"grupos": [
{
"n": "Gobierno de La Rioja (kg cáscara)",
"c": "La Rioja",
"filas": [
[
"Almendra común",
"1,11",
"1,12",
"b"
],
[
"Almendra ecológica",
"1,83",
"1,79",
"s"
],
[
"Almendra floración tardía",
"1,65",
"1,67",
"b"
],
[
"Almendra largueta",
"1,28",
"1,29",
"b"
],
[
"Almendra marcona",
"1,33",
"1,34",
"b"
]
]
},
{
"n": "Lonja de Albacete",
"filas": [
[
"Almendra comuna (multivarietales)",
"5,35",
"5,35",
"="
],
[
"Almendra ecológica",
"8,00",
"8,00",
"="
],
[
"Almendra Guara (monovarietales)",
"5,45",
"5,45",
"="
],
[
"Almendra largueta",
"5,70",
"5,70",
"="
],
[
"Almendra marcona",
"6,40",
"6,40",
"="
]
]
},
{
"n": "Lonja de Córdoba",
"filas": [
[
"Almendra Antoñeta",
"N/C",
"N/C",
""
],
[
"Almendra Belona",
"5,80",
"5,80",
"="
],
[
"Almendra comuna tradicional (máx. 0,2)",
"5,35",
"5,35",
"="
],
[
"Almendra Constantí",
"N/C",
"N/C",
""
],
[
"Almendra ecológica",
"N/C",
"N/C",
""
],
[
"Almendra floración tardía monovarietal",
"5,50",
"5,50",
"="
],
[
"Almendra Guara",
"5,55",
"5,55",
"="
],
[
"Almendra Soleta",
"5,60",
"5,60",
"="
]
]
},
{
"n": "Lonja del Ebro",
"c": "Ebro",
"filas": [
[
"Almendra comuna tardía",
"5,45",
"5,45",
"="
],
[
"Almendra comuna tradicional",
"5,35",
"5,35",
"="
],
[
"Almendra ecológica (diferentes variedades)",
"8,00",
"7,95",
"s"
],
[
"Almendra Guara",
"5,50",
"5,50",
"="
],
[
"Almendra largueta",
"5,73",
"5,68",
"s"
],
[
"Almendra marcona",
"6,40",
"6,40",
"="
]
]
},
{
"n": "Lonja de Reus",
"filas": [
[
"Almendra común",
"4,95",
"4,95",
"="
],
[
"Almendra largueta",
"N/C",
"N/C",
""
],
[
"Almendra marcona",
"N/C",
"N/C",
""
]
]
},
{
"n": "Región de Murcia",
"c": "Murcia",
"filas": [
[
"Almendra común",
"5,35",
"5,34",
"s"
],
[
"Almendra comuna ecológica",
"7,97",
"7,95",
"s"
],
[
"Almendra Desmayo largueta",
"5,71",
"5,68",
"s"
],
[
"Almendra Guara",
"5,46",
"5,44",
"s"
],
[
"Almendra marcona",
"6,32",
"6,29",
"s"
]
]
}
]
},
{
"id": "ganaderia",
"nombre": "Ganadería",
"icono": "ganaderia",
"tipo": "lonjas",
"grupos": [
{
"n": "Lonja de Albacete",
"sub": [
{
"n": "Leche",
"filas": [
[
"Leche de cabra (extracto quesero grasas + proteínas)",
[
"13,26",
"13,83"
],
[
"13,26",
"13,83"
],
"="
],
[
"Leche de oveja (extracto quesero grasas + proteínas)",
[
"11,43",
"12,03"
],
[
"11,13",
"11,73"
],
"s"
]
]
},
{
"n": "Ovino",
"filas": [
[
"Cordero 9-11 kg",
[
"8,79",
"8,85"
],
[
"8,79",
"8,85"
],
"="
],
[
"Cordero 11-15 kg",
[
"8,46",
"8,52"
],
[
"8,07",
"8,13"
],
"s"
],
[
"Cordero 15-19 kg",
[
"7,23",
"7,29"
],
[
"6,93",
"6,99"
],
"s"
],
[
"Cordero 19-23 kg",
[
"6,42",
"6,48"
],
[
"6,18",
"6,24"
],
"s"
],
[
"Cordero manchego 19-23 kg",
[
"6,54",
"6,60"
],
[
"6,30",
"6,36"
],
"s"
]
]
}
]
},
{
"n": "Lonja de Talavera",
"sub": [
{
"n": "Leche",
"filas": [
[
"Leche de oveja (extracto quesero grasas + proteínas)",
[
"11,71",
"11,71"
],
[
"11,71",
"11,71"
],
"="
],
[
"Leche de cabra (extracto quesero grasas + proteínas)",
[
"13,15",
"13,15"
],
[
"13,15",
"13,15"
],
"="
]
]
},
{
"n": "Ovino",
"filas": [
[
"Cordero 19-23 kg",
[
"5,91",
"5,91"
],
[
"5,91",
"5,91"
],
"="
],
[
"Cordero 15-19 kg",
[
"6,62",
"6,62"
],
[
"6,62",
"6,62"
],
"="
],
[
"Cordero 11-15 kg",
[
"7,70",
"7,70"
],
[
"7,70",
"7,70"
],
"="
],
[
"Cordero 9-11 kg",
[
"8,80",
"8,80"
],
[
"8,80",
"8,80"
],
"="
]
]
}
]
},
{
"n": "Lonja de Salamanca",
"sub": [
{
"n": "Ovino",
"filas": [
[
"Cordero 9-11 kg",
[
"9,85",
"9,85"
],
[
"9,80",
"9,80"
],
"s"
],
[
"Cordero 11-15 kg",
[
"7,45",
"7,45"
],
[
"7,40",
"7,40"
],
"s"
],
[
"Cordero 15-19 kg",
[
"7,00",
"7,00"
],
[
"6,95",
"6,95"
],
"s"
],
[
"Cordero 19-23 kg",
[
"6,40",
"6,40"
],
[
"6,35",
"6,35"
],
"s"
]
]
},
{
"n": "Porcino",
"filas": [
[
"Cerdo normal",
[
"1,19",
"1,19"
],
[
"1,22",
"1,22"
],
"b"
]
]
},
{
"n": "Vacuno",
"filas": [
[
"Añojo primera (>350 kg)",
[
"6,07",
"6,07"
],
[
"6,06",
"6,06"
],
"s"
]
]
}
]
},
{
"n": "Lonja de Extremadura",
"sub": [
{
"n": "Vacuno",
"filas": [
[
"Terneros cruzados base 200 kg 1ª",
[
"5,12",
"5,24"
],
[
"5,12",
"5,24"
],
"="
],
[
"Terneras cruzadas",
[
"5,24",
"5,36"
],
[
"5,39",
"5,51"
],
"b"
]
]
},
{
"n": "Leche",
"filas": [
[
"Leche de cabra (extracto quesero grasas + proteínas)",
"",
"",
""
],
[
"Leche de oveja (extracto quesero grasas + proteínas)",
"N/C",
"N/C",
""
]
]
},
{
"n": "Ovino",
"filas": [
[
"Cordero 11-15 kg",
[
"7,73",
"8,13"
],
[
"7,52",
"7,93"
],
"s"
],
[
"Cordero 9-11 kg",
"N/C",
"N/C",
""
],
[
"Cordero 19-23 kg",
[
"5,80",
"5,97"
],
[
"5,83",
"6,19"
],
"b"
],
[
"Cordero 15-19 kg",
[
"5,80",
"6,05"
],
[
"6,60",
"6,74"
],
"b"
]
]
}
]
},
{
"n": "Lonja de Ciudad Real",
"sub": [
{
"n": "Ovino",
"filas": [
[
"Cordero merino 19-23 kg",
[
"6,47",
"6,53"
],
[
"6,23",
"6,29"
],
"s"
],
[
"Cordero manchego 19-23 kg",
[
"6,65",
"6,71"
],
[
"6,41",
"6,47"
],
"s"
],
[
"Cordero lechal 11-15 kg",
[
"8,90",
"8,96"
],
[
"8,66",
"8,72"
],
"s"
]
]
}
]
},
{
"n": "Lonja de León",
"sub": [
{
"n": "Ovino",
"filas": [
[
"Lechazo hasta 12 kg",
[
"8,30",
"8,30"
],
[
"8,20",
"8,20"
],
"s"
]
]
}
]
},
{
"n": "Lonja del Ebro",
"c": "Ebro",
"sub": [
{
"n": "Avícola",
"filas": [
[
"Pollo",
[
"1,40",
"1,40"
],
[
"1,40",
"1,40"
],
"="
]
]
}
]
},
{
"n": "Gobierno de La Rioja",
"c": "La Rioja",
"sub": [
{
"n": "Cunícola",
"filas": [
[
"Conejo",
[
"2,64",
"2,64"
],
[
"2,64",
"2,64"
],
"="
]
]
}
]
},
{
"n": "Lonja de Bellpuig",
"sub": [
{
"n": "Cunícola",
"filas": [
[
"Conejo de más de 2,125 kg",
[
"2,72",
"2,72"
],
[
"2,70",
"2,70"
],
"s"
]
]
}
]
},
{
"n": "Lonja de Loncun",
"sub": [
{
"n": "Cunícola",
"filas": [
[
"Conejo joven (1,9-2,25 kg)",
[
"2,70",
"2,70"
],
[
"2,60",
"2,60"
],
"s"
],
[
"Conejo ojos negros",
[
"2,75",
"2,75"
],
[
"2,65",
"2,65"
],
"s"
]
]
}
]
}
]
},
{
"id": "huevos",
"nombre": "Huevos",
"icono": "huevos",
"tipo": "tienda",
"filas": [
[
"Huevos",
"Talla L",
"Mesa Avícola de Toledo",
"2,63",
"",
"=",
[
"3,04",
"3,30",
"",
"3,05",
"3,20"
]
],
[
"Huevos",
"Talla M",
"Mesa Avícola de Toledo",
"2,40",
"",
"=",
[
"2,85",
"2,88",
"",
"2,85",
"2,99"
]
],
[
"Huevos",
"Talla XL",
"Mesa Avícola de Toledo",
"3,13",
"",
"=",
[
"3,89",
"4,40",
"",
"4,30",
"4,39"
]
]
]
},
{
"id": "aceite",
"nombre": "Aceite de oliva",
"icono": "aceite",
"tipo": "lonjas",
"col": [
"Actual",
"Anterior"
],
"grupos": [
{
"n": "Sistema Poolred",
"c": "Poolred",
"filas": [
[
"Virgen",
"2,891",
"3,00",
"b"
],
[
"Virgen extra",
"3,129",
"3,07",
"s"
],
[
"Lampante",
"2,781",
"2,84",
"b"
]
]
}
]
},
{
"id": "caza",
"nombre": "Caza",
"icono": "caza",
"tipo": "lonjas",
"sinAnterior": true,
"col": [
"Precio mín. – máx."
],
"grupos": [
{
"n": "Lonja de Ciudad Real",
"filas": [
[
"Canal de ciervo (con cola) +30 piezas",
[
"2,60",
"2,80"
]
],
[
"Canal de jabalí +30 piezas",
[
"0,60",
"0,80"
]
],
[
"Canal de gamo +30 piezas",
[
"2,10",
"2,30"
]
],
[
"Canal de corzo +30 piezas",
[
"2,80",
"3,00"
]
],
[
"Canal de muflón +30 piezas",
[
"0,40",
"0,70"
]
],
[
"Conejo de tiro (pieza)",
[
"0,70",
"1,00"
]
],
[
"Perdiz roja autóctona (pieza)",
[
"3,00",
"3,60"
]
],
[
"Perdiz roja (pieza)",
[
"0,60",
"0,80"
]
],
[
"Liebre",
"N/C"
]
]
},
{
"n": "Extremadura · Caza mayor (oreo 2%)",
"sub": [
{
"n": "Canal de jabalí",
"filas": [
[
"Más de 100 animales",
[
"0,65",
"0,65"
]
],
[
"De 31 a 100 animales",
[
"0,40",
"0,40"
]
],
[
"Hasta 30 animales",
[
"0,00",
"0,30"
]
]
]
},
{
"n": "Canal de ciervo con cola",
"filas": [
[
"Más de 100 animales",
[
"2,75",
"2,85"
]
],
[
"De 31 a 100 animales",
[
"2,35",
"2,55"
]
],
[
"Hasta 30 animales",
[
"2,05",
"2,35"
]
]
]
},
{
"n": "Gamo",
"filas": [
[
"Más de 100 animales",
[
"2,10",
"2,30"
]
],
[
"De 31 a 100 animales",
[
"1,90",
"2,10"
]
],
[
"Hasta 30 animales",
[
"1,60",
"1,80"
]
]
]
},
{
"n": "Muflón",
"filas": [
[
"Más de 100 animales",
[
"0,70",
"0,70"
]
],
[
"De 31 a 100 animales",
[
"0,50",
"0,50"
]
],
[
"Hasta 30 animales",
[
"0,40",
"0,40"
]
]
]
},
{
"n": "Corzo",
"filas": [
[
"Más de 100 animales",
[
"2,80",
"2,90"
]
],
[
"De 31 a 100 animales",
[
"2,50",
"2,70"
]
],
[
"Hasta 30 animales",
[
"2,00",
"2,30"
]
]
]
}
]
},
{
"n": "Extremadura · Caza menor (oreo 2%)",
"filas": [
[
"Perdiz campo",
[
"3,00",
"3,50"
]
],
[
"Perdiz suelta",
[
"0,60",
"0,80"
]
],
[
"Conejo",
[
"1,00",
"1,50"
]
],
[
"Liebre",
"N/C"
]
]
}
]
}
]
}
</script>
<!-- ▲▲▲ DATOS DE LA SEMANA (termina) ▲▲▲ -->
<div id="asaja-obs"><noscript>Activa JavaScript para ver el observatorio o descarga el PDF.</noscript></div>
<style>
#asaja-obs{--g:#12a04b;--g2:#0b7a39;--g3:#e8f6ed;--g4:#f6faf7;--ink:#1c2a22;--mut:#66756c;--line:#e1e9e4;--up:#12873d;--upbg:#e3f4e9;--dn:#d03232;--dnbg:#fdeaea;--eq:#6f7a75;--eqbg:#eef1ef;--off:90px;
font-family:inherit;color:var(--ink);line-height:1.4;font-size:15px;width:100%;margin:0 auto;font-variant-numeric:tabular-nums;-webkit-text-size-adjust:100%}
#asaja-obs *,#asaja-obs *::before,#asaja-obs *::after{box-sizing:border-box}
#asaja-obs h3,#asaja-obs h4,#asaja-obs p{margin:0;padding:0;font-family:inherit;letter-spacing:normal;text-transform:none;color:inherit;line-height:inherit;font-size:inherit;font-weight:inherit}
#asaja-obs button{-webkit-appearance:none;appearance:none;font:inherit;color:inherit;margin:0;padding:0;background:none;border:0;border-radius:0;box-shadow:none;text-transform:none;letter-spacing:normal;line-height:inherit;min-height:0;width:auto;height:auto;cursor:pointer;text-align:inherit}
#asaja-obs button:focus-visible,#asaja-obs a:focus-visible{outline:3px solid #8fd3a8;outline-offset:2px}
#asaja-obs a{text-decoration:none;box-shadow:none}
#asaja-obs svg{display:block;flex:none}
#asaja-obs table{border-collapse:separate;border-spacing:0;width:100%;margin:0;border:0;background:#fff;font-size:14px;table-layout:auto}
#asaja-obs th,#asaja-obs td{border:0;margin:0;vertical-align:middle;font-family:inherit;line-height:1.3;background:transparent}
/* cabecera */
#asaja-obs .aobs-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-radius:14px;background:var(--g4);border:1px solid var(--line);margin-bottom:14px}
#asaja-obs .aobs-top__w{font-size:16px;font-weight:800;color:var(--g2)}
#asaja-obs .aobs-top__p{font-size:14px;color:var(--mut)}
#asaja-obs .aobs-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;background:var(--g);color:#fff;font-weight:700;font-size:14.5px;line-height:1.1;transition:background .2s,transform .2s}
#asaja-obs .aobs-btn:hover{background:var(--g2);color:#fff;transform:translateY(-1px)}
#asaja-obs .aobs-btn svg{width:17px;height:17px}
/* desplegables */
#asaja-obs .aobs-sec{border:1px solid var(--line);border-radius:14px;margin:0 0 10px;background:#fff;scroll-margin-top:var(--off);overflow:hidden;transition:border-color .3s,box-shadow .3s}
#asaja-obs .aobs-sec.is-open{border-color:#c9e4d3;box-shadow:0 8px 24px -16px rgba(11,122,57,.5)}
#asaja-obs .aobs-sec__btn{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;transition:background .2s}
#asaja-obs .aobs-sec__btn:hover{background:var(--g4)}
#asaja-obs .aobs-sec__ic{width:40px;height:40px;border-radius:11px;background:var(--g);color:#fff;display:grid;place-items:center}
#asaja-obs .aobs-sec__ic svg{width:25px;height:25px}
#asaja-obs .aobs-sec__t{flex:1;font-size:17px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}
#asaja-obs .aobs-chev{width:30px;height:30px;border-radius:50%;background:var(--eqbg);display:grid;place-items:center;transition:transform .35s cubic-bezier(.2,.8,.2,1),background .3s}
#asaja-obs .aobs-chev svg{width:16px;height:16px}
#asaja-obs .aobs-sec.is-open .aobs-chev{transform:rotate(180deg);background:var(--g3);color:var(--g2)}
#asaja-obs .aobs-sec__body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.7,.2,1)}
#asaja-obs .aobs-sec.is-open .aobs-sec__body{grid-template-rows:1fr}
#asaja-obs .aobs-sec__in{overflow:hidden;min-height:0;visibility:hidden;transition:visibility 0s .4s}
#asaja-obs .aobs-sec.is-open .aobs-sec__in{visibility:visible;transition:visibility 0s 0s}
#asaja-obs .aobs-sec__pad{padding:4px 12px 14px;border-top:1px solid var(--line)}
#asaja-obs .aobs-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;padding-top:12px}
#asaja-obs .aobs-back{display:flex;justify-content:flex-end;margin-top:12px}
#asaja-obs .aobs-back button{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;font-weight:700;color:#fff;background:#6aab1f;border-radius:999px;padding:8px 14px}
#asaja-obs .aobs-back button svg{width:15px;height:15px}
/* tablas */
#asaja-obs .aobs-tbl{border:1px solid var(--line);border-radius:12px;overflow:hidden;opacity:0;transform:translateY(8px);transition:opacity .45s ease .1s,transform .45s ease .1s}
#asaja-obs .is-open .aobs-tbl{opacity:1;transform:none}
#asaja-obs .aobs-tbl__h{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 10px;background:var(--g4);padding:9px 12px;border-bottom:2px solid var(--g)}
#asaja-obs .aobs-tbl__t{font-size:14.5px;font-weight:800;color:var(--g2);text-transform:uppercase;letter-spacing:.02em}
#asaja-obs .aobs-tbl__d{font-size:12px;color:var(--mut)}
#asaja-obs .aobs-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
#asaja-obs th{padding:8px 10px;font-size:11px;font-weight:700;color:var(--mut);text-transform:uppercase;letter-spacing:.04em;text-align:right;white-space:nowrap;border-bottom:1px solid var(--line);background:#fff}
#asaja-obs th small{display:block;font-size:10.5px;font-weight:500;text-transform:none;letter-spacing:0;color:#8b978f;margin-top:1px}
#asaja-obs th:first-child,#asaja-obs td:first-child{text-align:left}
#asaja-obs td{padding:9px 10px;text-align:right;white-space:nowrap;border-bottom:1px solid #edf2ef}
#asaja-obs tbody tr:last-child td{border-bottom:0}
#asaja-obs tbody tr:nth-child(even) td{background:#f8fbf9}
#asaja-obs tbody tr:hover td{background:var(--g3)}
#asaja-obs td.p{white-space:normal;min-width:120px;font-size:14px;overflow-wrap:anywhere}
#asaja-obs td.p b{font-weight:700}
#asaja-obs td.p small{display:block;font-size:12px;color:var(--mut);margin-top:1px}
#asaja-obs td.v{font-weight:700;font-size:15.5px}
#asaja-obs td.s{font-weight:600;font-size:14px;color:#3d4a42}
#asaja-obs td.o{font-weight:800;font-size:16.5px;color:var(--g2);background:#f0f9f3}
#asaja-obs tbody tr:nth-child(even) td.o{background:#e8f5ec}
#asaja-obs td.prev{color:var(--mut);font-weight:500;font-size:14px}
#asaja-obs td.nd{color:#a9b3ad;font-weight:500}
#asaja-obs tr.sub td{background:var(--g4)!important;font-size:11.5px;font-weight:800;color:var(--g2);text-transform:uppercase;letter-spacing:.06em;padding:6px 10px;text-align:left}
#asaja-obs td.t{text-align:center;width:1%}
#asaja-obs th.t{text-align:center}
#asaja-obs .tr{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:4px 8px;font-size:12px;font-weight:700;line-height:1}
#asaja-obs .tr svg{width:10px;height:10px}
#asaja-obs .tr--s{background:var(--upbg);color:var(--up)}
#asaja-obs .tr--b{background:var(--dnbg);color:var(--dn)}
#asaja-obs .tr--e{background:var(--eqbg);color:var(--eq)}
/* tablas anchas (frutas, hortalizas, huevos): primera columna fija al deslizar */
#asaja-obs .aobs-wide td.p,#asaja-obs .aobs-wide th:first-child{position:-webkit-sticky;position:sticky;left:0;z-index:1;background:#fff;box-shadow:1px 0 0 var(--line)}
#asaja-obs .aobs-wide tbody tr:nth-child(even) td.p{background:#f8fbf9}
#asaja-obs .aobs-wide tbody tr:hover td.p{background:var(--g3)}
#asaja-obs .aobs-wide td.p{min-width:132px;max-width:170px}
#asaja-obs .aobs-hint{display:none;align-items:center;gap:6px;font-size:12.5px;color:var(--mut);padding:0 2px}
#asaja-obs .aobs-hint.is-on{display:flex}
#asaja-obs .aobs-hint svg{width:14px;height:14px;animation:aobsNudge 1.4s ease-in-out infinite}
@keyframes aobsNudge{50%{transform:translateX(4px)}}
#asaja-obs .aobs-note{margin-top:16px;font-size:12.5px;color:var(--mut);line-height:1.5}
#asaja-obs .aobs-note p+p{margin-top:6px}
@media (min-width:900px){
#asaja-obs .aobs-grid--2{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
#asaja-obs .aobs-sec__btn{padding:14px 18px}
#asaja-obs .aobs-sec__pad{padding:4px 18px 18px}
}
#asaja-obs .r i{font-style:normal}
@media (max-width:600px){#asaja-obs .r{display:block}#asaja-obs .r i{margin-left:2px}
#asaja-obs td.o{font-size:17.5px}#asaja-obs td.v{font-size:17.5px}#asaja-obs td.s{font-size:15.5px}#asaja-obs td.prev{font-size:15.5px}#asaja-obs td.nd{font-size:15px}
#asaja-obs td.p{font-size:14.5px}#asaja-obs .tr{font-size:12.5px}}
@media (max-width:420px){
#asaja-obs table{font-size:13.5px}
#asaja-obs th,#asaja-obs td{padding-left:7px;padding-right:7px}
#asaja-obs td.p{min-width:104px}
#asaja-obs .tr{padding:4px 6px}
}
@media (prefers-reduced-motion:reduce){#asaja-obs *{transition:none!important;animation:none!important}#asaja-obs .aobs-tbl{opacity:1;transform:none}}
</style>
<script>
(function(){
var root=document.getElementById('asaja-obs');
if(!root||root.getAttribute('data-ready'))return;
root.setAttribute('data-ready','1');
var D;
try{D=JSON.parse(document.getElementById('asaja-obs-data').textContent);}
catch(e){root.innerHTML='<p>No se han podido cargar los datos del observatorio.</p>';return;}
function esc(s){return String(s==null?'':s).replace(/[&<>"]/g,function(c){return{'&':'&','<':'<','>':'>','"':'"'}[c];});}
function num(v){
if(v==null)return null;
if(Array.isArray(v)){var a=[];v.forEach(function(x){var n=num(x);if(n!==null)a.push(n);});return a.length?a.reduce(function(p,c){return p+c;},0)/a.length:null;}
var s=String(v).trim();if(!/\d/.test(s))return null;
var n=parseFloat(s.replace(/\./g,'').replace(',','.'));return isNaN(n)?null:n;
}
// texto de un precio: "8,50", ["8,50","8,60"] -> "8,50–8,60", "N/C", ""
function ptxt(v){
if(Array.isArray(v)){
var a=v.filter(function(x){return num(x)!==null;});
if(!a.length){var t=v.filter(function(x){return x&&String(x).trim();})[0];return{t:t||'—',nd:1};}
if(a.length===1||a[0]===a[1])return{t:a[0]};
return{t:a[0]+'–'+a[1],r:[a[0],a[1]]};
}
if(num(v)!==null)return{t:String(v)};
return{t:v&&String(v).trim()?String(v).trim():'—',nd:1};
}
function tcode(code,act,ant){
if(num(act)===null)return'';
if(code==='s'||code==='b'||code==='=')return code;
var a=num(act),b=num(ant);if(b===null)return'';
return a>b?'s':(a<b?'b':'=');
}
var AR={
s:'<svg viewBox="0 0 10 10" aria-hidden="true"><path d="M5 1.5 9 8H1z" fill="currentColor"/></svg>',
b:'<svg viewBox="0 0 10 10" aria-hidden="true"><path d="M5 8.5 1 2h8z" fill="currentColor"/></svg>',
e:'<svg viewBox="0 0 10 10" aria-hidden="true"><rect x="1" y="4" width="8" height="2.2" rx="1.1" fill="currentColor"/></svg>'
};
function tr(c){
if(!c)return'<td class="t nd">—</td>';
if(c==='s')return'<td class="t"><span class="tr tr--s">'+AR.s+'Sube</span></td>';
if(c==='b')return'<td class="t"><span class="tr tr--b">'+AR.b+'Baja</span></td>';
return'<td class="t"><span class="tr tr--e">'+AR.e+'Igual</span></td>';
}
function cell(v,cls){var p=ptxt(v);return'<td class="'+(p.nd?'nd':(cls||'v'))+'"'+(p.t==='N/C'?' title="No cotiza"':(p.t==='S/C'?' title="Sin cotización"':''))+'>'+(p.r?'<span class="r">'+esc(p.r[0])+'<i>–</i></span><span class="r">'+esc(p.r[1])+'</span>':esc(p.t))+'</td>';}
function svg(p,sw){return'<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="'+(sw||1.7)+'" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true">'+p+'</svg>';}
var ICON={
frutas:svg('<path d="M12 7.5c-1.6-1.3-4.6-1.7-6.2.6-1.8 2.6-.6 7.3 1.7 9.9 1.2 1.4 2.7 1.6 4.5.8 1.8.8 3.3.6 4.5-.8 2.3-2.6 3.5-7.3 1.7-9.9-1.6-2.3-4.6-1.9-6.2-.6z"/><path d="M12 7.5c0-2 .7-3.5 2.2-4.4"/><path d="M12.6 5.4c1.3-1.7 3.5-2 4.8-1.3-.6 1.7-2.8 2.7-4.8 1.3z"/>'),
hortalizas:svg('<path d="M4 20c2-1 9-5.5 11.6-8.2a3.3 3.3 0 0 0-4.7-4.7C8.4 9.6 5 18 4 20z"/><path d="M14.4 8.2 19 3.6M15.8 10 20.5 8.8M13.1 6.6 14 2.5"/><path d="M8.2 13.2l1.5 1.5M10.2 10.9l1.3 1.3"/>'),
cereales:svg('<path d="M12 22V7"/><path d="M12 11c-2.6 0-4.2-1.7-4.2-4.2 2.6 0 4.2 1.7 4.2 4.2zM12 11c2.6 0 4.2-1.7 4.2-4.2-2.6 0-4.2 1.7-4.2 4.2zM12 16c-2.6 0-4.2-1.7-4.2-4.2 2.6 0 4.2 1.7 4.2 4.2zM12 16c2.6 0 4.2-1.7 4.2-4.2-2.6 0-4.2 1.7-4.2 4.2zM12 6.5c-1.1-1.1-1.1-3.1 0-4.3 1.1 1.2 1.1 3.2 0 4.3z"/>'),
vino:svg('<path d="M7.5 3h9l-.4 5.2a4.1 4.1 0 0 1-8.2 0z"/><path d="M12 12.3V20.5M8.5 20.8h7"/><path d="M7.8 6.8h8.4"/>'),
frutossecos:svg('<path d="M12 2.8c3.6 3 5.6 7.2 5.1 11.2-.4 3.5-2.7 6.1-5.1 7.2-2.4-1.1-4.7-3.7-5.1-7.2C6.4 10 8.4 5.8 12 2.8z"/><path d="M12 7c-.9 3.3-.9 7.3.1 11"/>'),
ganaderia:svg('<path d="M7 6.3C6.2 4.6 4.6 3.6 2.8 3.6c.2 2.1 1.7 3.6 4.2 3.9M17 6.3c.8-1.7 2.4-2.7 4.2-2.7-.2 2.1-1.7 3.6-4.2 3.9"/><path d="M7 6.2h10v6.6c0 .9-.3 1.7-.8 2.4H7.8c-.5-.7-.8-1.5-.8-2.4z"/><rect x="6.8" y="15" width="10.4" height="5.8" rx="2.9"/><path d="M10 17.9h.01M14 17.9h.01M9.7 10h.01M14.3 10h.01" stroke-width="2.2"/>'),
huevos:svg('<path d="M9 21c-3 0-5-2.2-5-5.5S6.1 7 9 7s5 5.2 5 8.5S12 21 9 21z"/><path d="M14.4 9.5C15.1 8 16 7 17.1 7 19.7 7 21 11.6 21 14.4c0 2.8-1.7 4.6-4.4 4.6"/>'),
aceite:svg('<path d="M12 3s6 6.4 6 11a6 6 0 0 1-12 0c0-4.6 6-11 6-11z"/><path d="M9.2 14.6a2.8 2.8 0 0 0 2.8 2.8"/>'),
caza:svg('<path d="M12 21.5v-4.8M9.5 21.5h5"/><path d="M12 16.7c-2.6 0-4.1-1.6-4.6-4.1M7.4 12.6C4.9 12 3.4 10 3.4 7.4M7.4 12.6c-.4-2 .1-4 1.6-5.6M5.1 9.6 3 9.4M12 16.7c2.6 0 4.1-1.6 4.6-4.1M16.6 12.6c2.5-.6 4-2.6 4-5.2M16.6 12.6c.4-2-.1-4-1.6-5.6M18.9 9.6l2.1-.2"/>'),
dl:svg('<path d="M12 4v11M7 10.5l5 5 5-5M5 20h14"/>',2.2),
chev:svg('<path d="m6 9 6 6 6-6"/>',2.4),
up:svg('<path d="M12 19V5M6 11l6-6 6 6"/>',2.6),
swipe:svg('<path d="M5 12h14M14 7l5 5-5 5"/>',2.4)
};
var TI=D.tiendas||[];
/* tabla con precios de tienda (frutas, hortalizas, huevos) */
function tablaTienda(S){
var dosPrecios=(S.filas||[]).some(function(r){return num(r[4])!==null;});
var h='<p class="aobs-hint">'+ICON.swipe+'Desliza la tabla para ver todos los precios</p>';
h+='<div class="aobs-tbl"><div class="aobs-scroll"><table class="aobs-wide"><thead><tr><th>Producto</th>';
h+=dosPrecios?'<th>Origen<small>mín.</small></th><th>Origen<small>máx.</small></th>':'<th>Precio<small>origen</small></th>';
h+='<th class="t">Tendencia<small>origen</small></th>';
TI.forEach(function(t){h+='<th>'+esc(t)+'</th>';});
h+='</tr></thead><tbody>';
(S.filas||[]).forEach(function(r){
var hasO=num([r[3],r[4]])!==null;
var nombre=String(r[1]||'').toLowerCase()===String(r[0]||'').toLowerCase()?esc(r[0]):esc(r[0])+' · '+esc(r[1]);
h+='<tr><td class="p"><b>'+nombre+'</b><small>'+esc(r[2])+'</small></td>';
h+=dosPrecios?cell(r[3],'o')+cell(r[4],'o'):cell(r[3],'o');
h+=tr(hasO?tcode(r[5],[r[3],r[4]]):'');
TI.forEach(function(t,k){h+=cell((r[6]||[])[k],'s');});
h+='</tr>';
});
return h+'</tbody></table></div></div>';
}
/* tabla por lonja (cereales, vino, frutos secos, ganadería, aceite, caza) */
function tablaLonja(S,g){
var na=!!S.sinAnterior,f=g.f||[];
var h='<div class="aobs-tbl"><div class="aobs-tbl__h"><h4 class="aobs-tbl__t">'+esc(g.n)+'</h4>';
if(na&&f[0])h+='<span class="aobs-tbl__d">'+esc(f[0])+'</span>';
h+='</div><div class="aobs-scroll"><table><thead><tr><th>Producto</th>';
if(na)h+='<th>Precio<small>mín.</small></th><th>Precio<small>máx.</small></th>';
else{var c=S.col||['Actual','Anterior'];
h+='<th>'+esc(c[0])+(f[0]?'<small>'+esc(f[0])+'</small>':'')+'</th><th>'+esc(c[1])+(f[1]?'<small>'+esc(f[1])+'</small>':'')+'</th><th class="t">Tendencia</th>';}
h+='</tr></thead><tbody>';
var subs=g.sub||[{n:'',filas:g.filas||[]}],cols=na?3:4;
subs.forEach(function(sb){
if(sb.n&&g.sub)h+='<tr class="sub"><td colspan="'+cols+'">'+esc(sb.n)+'</td></tr>';
(sb.filas||[]).forEach(function(r){
h+='<tr><td class="p">'+esc(r[0])+'</td>';
if(na){var v=Array.isArray(r[1])?r[1]:[r[1],r[1]];h+=cell(v[0])+cell(v[1]);}
else h+=cell(r[1])+cell(r[2],'v prev')+tr(tcode(r[3],r[1],r[2]));
h+='</tr>';
});
});
return h+'</tbody></table></div></div>';
}
// La cabecera de la semana (fondo verde + botón PDF) va aparte, en contenedores de Elementor.
var html='';
(D.secciones||[]).forEach(function(S){
var id='obs-'+S.id;
html+='<section class="aobs-sec" id="'+esc(id)+'"><h3 style="margin:0"><button type="button" class="aobs-sec__btn" aria-expanded="false" aria-controls="'+esc(id)+'-b"><span class="aobs-sec__ic">'+(ICON[S.icono]||'')+'</span><span class="aobs-sec__t">'+esc(S.nombre)+'</span><span class="aobs-chev">'+ICON.chev+'</span></button></h3>';
html+='<div class="aobs-sec__body" id="'+esc(id)+'-b" role="region" aria-label="'+esc(S.nombre)+'"><div class="aobs-sec__in"><div class="aobs-sec__pad">';
if(S.tipo==='tienda')html+='<div class="aobs-grid">'+tablaTienda(S)+'</div>';
else{var G=S.grupos||[];html+='<div class="aobs-grid'+(G.length>1?' aobs-grid--2':'')+'">';G.forEach(function(g){html+=tablaLonja(S,g);});html+='</div>';}
html+='<div class="aobs-back"><button type="button" data-top="1">'+ICON.up+'Ir al índice</button></div></div></div></div></section>';
});
html+='<div class="aobs-note"><p><strong>NOTA:</strong> Los datos incorporados en este Observatorio de precios se obtienen de las siguientes fuentes. Precios satisfechos al agricultor: lonjas e instituciones reseñadas para cada producto. Precios en destino: páginas web o app móvil de las empresas de distribución seleccionadas.</p><p>A través de este Observatorio de precios, ASAJA pretende exclusivamente contribuir a mejorar el conocimiento y la transparencia del proceso de formación de precios en el marco de la cadena alimentaria. N/C: no cotiza · S/C: sin cotización.</p></div>';
root.innerHTML=html;
var secs=Array.prototype.slice.call(root.querySelectorAll('.aobs-sec'));
function offset(){return parseFloat(getComputedStyle(root).getPropertyValue('--off'))||90;}
function scrollTo(el){window.scrollTo({top:el.getBoundingClientRect().top+window.pageYOffset-offset(),behavior:'smooth'});}
function hints(sec){Array.prototype.forEach.call(sec.querySelectorAll('.aobs-hint'),function(hn){var sc=hn.nextElementSibling.querySelector('.aobs-scroll');hn.classList.toggle('is-on',sc.scrollWidth>sc.clientWidth+4);});}
function setOpen(sec,o){sec.classList.toggle('is-open',o);sec.querySelector('.aobs-sec__btn').setAttribute('aria-expanded',o?'true':'false');if(o)hints(sec);}
secs.forEach(function(sec){
sec.querySelector('.aobs-sec__btn').addEventListener('click',function(){
var o=!sec.classList.contains('is-open');setOpen(sec,o);
if(o)setTimeout(function(){if(sec.getBoundingClientRect().top<0)scrollTo(sec);},50);
});
});
Array.prototype.forEach.call(root.querySelectorAll('[data-top]'),function(b){b.addEventListener('click',function(){scrollTo(root);});});
window.addEventListener('resize',function(){secs.forEach(function(s){if(s.classList.contains('is-open'))hints(s);});});
// enlace directo a una categoría: …/observatorio-de-precios/#obs-cereales
var h=document.getElementById((location.hash||'#').slice(1));
if(h&&h.classList&&h.classList.contains('aobs-sec')){setOpen(h,true);setTimeout(function(){scrollTo(h);},300);}
})();
</script>
