{"product_id":"vestido-copia","title":"Vestido (Copia)","description":"\u003c!-- ============================================================\n     TABLA DE MEDIDAS CON SEPARACIÓN POR TALLA (para Shopify)\n     ------------------------------------------------------------\n     Instrucciones:\n     1. Copia este código y pégalo en la descripción de tu producto\n        (en el editor, cambia a \"Vista HTML\" o \"Código fuente\").\n     2. O pégalo en un bloque de \"Liquid personalizado\" en la\n        página de producto.\n     3. Para editar las medidas, busca más abajo donde dice:\n        \"DATOS DE MEDIDAS - EDITA AQUÍ\".\n     ============================================================ --\u003e\n\n\u003cstyle\u003e\n  \/* Contenedor principal *\/\n  .tallas-container {\n    margin: 20px 0;\n    font-family: 'Helvetica Neue', Arial, sans-serif;\n  }\n\n  \/* Botón para desplegar la tabla *\/\n  .ver-medidas-btn {\n    display: inline-block;\n    padding: 10px 25px;\n    background: #fff;\n    border: 2px solid #ccc;\n    border-radius: 30px;\n    font-size: 0.95rem;\n    font-weight: 600;\n    color: #333;\n    cursor: pointer;\n    transition: all 0.2s ease;\n    margin-top: 5px;\n    text-decoration: none;\n  }\n  .ver-medidas-btn:hover {\n    background: #f0f0f0;\n    border-color: #999;\n  }\n  .ver-medidas-btn .flecha {\n    display: inline-block;\n    margin-left: 8px;\n    transition: transform 0.3s ease;\n  }\n  .ver-medidas-btn.abierto .flecha {\n    transform: rotate(180deg);\n  }\n\n  \/* Contenedor de la tabla con animación de despliegue *\/\n  .tabla-medidas-wrapper {\n    overflow: hidden;\n    max-height: 0;\n    transition: max-height 0.4s ease-out;\n    margin-top: 15px;\n  }\n  .tabla-medidas-wrapper.abierto {\n    max-height: 800px; \/* Ajusta según contenido *\/\n    transition: max-height 0.5s ease-in;\n  }\n\n  \/* Tabla de medidas *\/\n  .tabla-medidas {\n    width: 100%;\n    border-collapse: collapse;\n    font-size: 0.9rem;\n    background: #fff;\n    border: 1px solid #e0e0e0;\n    border-radius: 8px;\n    overflow: hidden;\n    box-shadow: 0 2px 8px rgba(0,0,0,0.05);\n  }\n  .tabla-medidas th {\n    background: #f8f8f8;\n    font-weight: 700;\n    text-transform: uppercase;\n    letter-spacing: 0.5px;\n    padding: 12px 10px;\n    border-bottom: 2px solid #ddd;\n    text-align: center;\n  }\n  .tabla-medidas td {\n    padding: 10px 12px;\n    border-bottom: 1px solid #eee;\n    text-align: center;\n  }\n  .tabla-medidas tr:last-child td {\n    border-bottom: none;\n  }\n\n  \/* ===== MEJORA: SEPARACIÓN GRUESA ENTRE TALLAS ===== *\/\n  \/* Cada vez que cambia la talla (primera columna), añadimos un borde superior grueso *\/\n  .tabla-medidas .medida-talla {\n    font-weight: 700;\n    background: #fafafa;\n    \/* Borde izquierdo para destacar la talla (opcional) *\/\n    border-left: 3px solid #ddd;\n  }\n  \/* Línea gruesa entre tallas: aplicamos un borde superior a la primera fila de cada talla *\/\n  .tabla-medidas tr.fila-inicio-talla td {\n    border-top: 4px solid #888; \/* Línea gruesa y visible *\/\n  }\n  \/* La primera fila de la tabla (primera talla) no necesita borde superior, lo quitamos *\/\n  .tabla-medidas tbody tr:first-child td {\n    border-top: none;\n  }\n\n  \/* Alternar colores de filas para mejor legibilidad *\/\n  .tabla-medidas tbody tr:nth-child(even) {\n    background: #fcfcfc;\n  }\n  .tabla-medidas tbody tr:hover {\n    background: #f5f9ff;\n  }\n\n  \/* Pie de tabla con nota *\/\n  .tabla-nota {\n    margin-top: 10px;\n    font-size: 0.8rem;\n    color: #777;\n    font-style: italic;\n  }\n\n  \/* Responsive: en móviles, la tabla puede hacer scroll *\/\n  @media (max-width: 600px) {\n    .tabla-medidas-wrapper {\n      overflow-x: auto;\n    }\n    .tabla-medidas {\n      font-size: 0.8rem;\n      min-width: 400px;\n    }\n    .ver-medidas-btn {\n      padding: 8px 18px;\n      font-size: 0.8rem;\n    }\n  }\n\u003c\/style\u003e\n\n\u003cdiv class=\"tallas-container\"\u003e\n  \u003c!-- Botón para mostrar\/ocultar tabla --\u003e\n  \u003cbutton class=\"ver-medidas-btn\" id=\"btnVerMedidas\"\u003e\n    Guía de tallas \u003cspan class=\"flecha\"\u003e▼\u003c\/span\u003e\n  \u003c\/button\u003e\n\n  \u003c!-- Contenedor de la tabla --\u003e\n  \u003cdiv class=\"tabla-medidas-wrapper\" id=\"tablaWrapper\"\u003e\n    \u003ctable class=\"tabla-medidas\" id=\"tablaMedidas\"\u003e\n      \u003cthead\u003e\n        \u003ctr\u003e\n          \u003cth\u003eTalla\u003c\/th\u003e\n          \u003cth\u003eZona\u003c\/th\u003e\n          \u003cth\u003eCM\u003c\/th\u003e\n          \u003cth\u003ePulgadas\u003c\/th\u003e\n        \u003c\/tr\u003e\n      \u003c\/thead\u003e\n      \u003ctbody id=\"tablaBody\"\u003e\n        \u003c!-- Las filas se generan con JavaScript --\u003e\n      \u003c\/tbody\u003e\n    \u003c\/table\u003e\n    \u003cdiv class=\"tabla-nota\"\u003e* Medidas aproximadas en cm y pulgadas. Pueden variar ligeramente según la prenda.\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cscript\u003e\n  (function() {\n    \/\/ ============================================================\n    \/\/  DATOS DE MEDIDAS - EDITA AQUÍ\n    \/\/  Cada talla tiene un array con [pecho, largoDelantero, largoManga]\n    \/\/  Puedes añadir o quitar tallas, y modificar las medidas.\n    \/\/ ============================================================\n    \/\/ Lista de tallas disponibles (en el orden que quieras mostrar)\n    const tallas = ['XS', 'S', 'M', 'L', 'XL', 'XXL'];\n    \n    \/\/ Medidas en cm para cada talla (debe haber un array por cada talla con 3 valores)\n    const medidas = {\n      'XS': [54.0, 62.0, 70.0],\n      'S':  [56.5, 64.0, 72.0],\n      'M':  [59.3, 66.0, 74.5],\n      'L':  [62.0, 68.0, 77.0],\n      'XL': [65.0, 70.0, 79.5],\n      'XXL':[68.0, 72.0, 82.0]\n    };\n    \n    \/\/ Nombres de las zonas (filas para cada talla)\n    const zonas = ['Pecho', 'Largo delantero', 'Largo de manga'];\n    \/\/ ============================================================\n\n    \/\/ Función para convertir cm a pulgadas\n    function cmToPulgadas(cm) {\n      return (cm * 0.393701).toFixed(1);\n    }\n\n    \/\/ Obtener elementos del DOM\n    const tablaBody = document.getElementById('tablaBody');\n    const btnToggle = document.getElementById('btnVerMedidas');\n    const wrapper = document.getElementById('tablaWrapper');\n\n    \/\/ Generar la tabla\n    function generarTabla() {\n      tablaBody.innerHTML = '';\n      \n      tallas.forEach((talla, indexTalla) =\u003e {\n        const medidasTalla = medidas[talla];\n        if (!medidasTalla) return;\n        \n        \/\/ Por cada zona, crear una fila\n        zonas.forEach((zona, idxZona) =\u003e {\n          const tr = document.createElement('tr');\n          \n          \/\/ Si es la primera fila de esta talla, añadir la celda de talla con rowspan\n          if (idxZona === 0) {\n            const tdTalla = document.createElement('td');\n            tdTalla.className = 'medida-talla';\n            tdTalla.rowSpan = zonas.length;\n            tdTalla.textContent = talla;\n            tr.appendChild(tdTalla);\n          }\n          \n          \/\/ Celda de zona\n          const tdZona = document.createElement('td');\n          tdZona.textContent = zona;\n          tr.appendChild(tdZona);\n          \n          \/\/ Celda CM\n          const valorCm = medidasTalla[idxZona];\n          const tdCm = document.createElement('td');\n          tdCm.textContent = valorCm.toFixed(1);\n          tr.appendChild(tdCm);\n          \n          \/\/ Celda Pulgadas\n          const tdPulg = document.createElement('td');\n          tdPulg.textContent = cmToPulgadas(valorCm);\n          tr.appendChild(tdPulg);\n          \n          \/\/ Añadir clase para marcar el inicio de cada talla (primera fila de cada talla)\n          if (idxZona === 0) {\n            tr.classList.add('fila-inicio-talla');\n          }\n          \n          tablaBody.appendChild(tr);\n        });\n      });\n    }\n\n    \/\/ Toggle mostrar\/ocultar tabla\n    btnToggle.addEventListener('click', function() {\n      wrapper.classList.toggle('abierto');\n      this.classList.toggle('abierto');\n      if (wrapper.classList.contains('abierto')) {\n        this.innerHTML = 'Ocultar medidas \u003cspan class=\"flecha\"\u003e▲\u003c\/span\u003e';\n      } else {\n        this.innerHTML = 'Guía de tallas \u003cspan class=\"flecha\"\u003e▼\u003c\/span\u003e';\n      }\n    });\n\n    \/\/ Inicializar\n    generarTabla();\n    \n    \/\/ Si quieres que la tabla aparezca abierta por defecto, descomenta la siguiente línea:\n    \/\/ wrapper.classList.add('abierto');\n    \/\/ btnToggle.classList.add('abierto');\n    \/\/ btnToggle.innerHTML = 'Ocultar medidas \u003cspan class=\"flecha\"\u003e▲\u003c\/span\u003e';\n  })();\n\u003c\/script\u003e","brand":"Moda Xu","offers":[{"title":"Dorado \/ Talla única","offer_id":65186123874653,"sku":"1234","price":12.9,"currency_code":"EUR","in_stock":true},{"title":"Azul marino \/ Talla única","offer_id":65186123907421,"sku":"1233","price":12.9,"currency_code":"EUR","in_stock":true},{"title":"Beige \/ Talla única","offer_id":65186123940189,"sku":null,"price":12.9,"currency_code":"EUR","in_stock":true},{"title":"Bronce \/ Talla única","offer_id":65186123972957,"sku":null,"price":12.9,"currency_code":"EUR","in_stock":true},{"title":"Clara \/ Talla única","offer_id":65186124005725,"sku":null,"price":12.9,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1087\/5135\/6253\/files\/3_5a1cf198-57e7-4942-94f4-4c7f5a9cd72b.jpg?v=1782597463","url":"https:\/\/modaxu.com\/products\/vestido-copia","provider":"Moda Xu","version":"1.0","type":"link"}