{"title":"Outdoor tables ","description":"\u003cdiv class=\"text-wrapper\" style=\"width: 100%; max-width: 100%; box-sizing: border-box; padding: 0; margin: 0;\"\u003e\n\u003cdiv id=\"textContainer\" style=\"position: relative; overflow: hidden;\"\u003e\n\u003cp id=\"mainText\" style=\"width: 100%; max-width: 100%; margin: 0 0 15px 0; padding: 0; box-sizing: border-box; text-align: left;\"\u003e Discover Slow Deco's collection of outdoor tables, where design, durability, and elegance come together to create unique outdoor spaces, designed to withstand the test of time while enhancing terraces, gardens, and balconies with contemporary style.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cbutton id=\"toggleBtn\" style=\"display: none; background: none; border: none; color: #1A1A1A; text-decoration: underline; cursor: pointer; font-size: 14px; padding: 0; margin: 0 0 15px 0; font-weight: 500;\"\u003eSee more\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Estructura básica optimizada para móvil con tarjetas de imagen --\u003e\n\u003cdiv class=\"nav-wrap\" style=\"width: 100%; max-width: 100%; position: relative; margin: 0; padding: 0; box-sizing: border-box;\"\u003e\n\u003c!-- Contenedor de tarjetas con scroll --\u003e\n\u003cdiv class=\"nav-container\" style=\"width: 100%; max-width: 100%; margin: 0; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; box-sizing: border-box; position: relative;\"\u003e\n\u003c!-- Tarjeta 1: Conjunto de exteriores --\u003e\n\u003ca class=\"nav-card first-card\" href=\"https:\/\/slowhousedeco.com\/collections\/conjunto-de-exterior\" style=\"display: inline-block; width: 180px; margin: 0 8px; text-decoration: none; color: #1A1A1A; vertical-align: top; white-space: normal; box-sizing: border-box;\"\u003e\n\u003cdiv class=\"card-image-wrap\" style=\"width: 100%; height: 180px; overflow: hidden; border-radius: 8px; position: relative; box-sizing: border-box;\"\u003e\n\u003cimg alt=\"Outdoor set\" class=\"card-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0909\/7932\/files\/conjunto-exterior.jpg?v=1764055833\" style=\"width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; display: block;\"\/\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card-text\" style=\"text-align: center; padding: 10px 4px 0; font-size: 13px; font-weight: 500; line-height: 1.3; border: none; text-decoration: none;\"\u003e Outdoor set\u003c\/div\u003e\n\u003c\/a\u003e\n\u003c!-- Tarjeta 2: Sillas de exterior --\u003e\n\u003ca class=\"nav-card\" href=\"https:\/\/slowhousedeco.com\/collections\/sillas-de-exterior\" style=\"display: inline-block; width: 180px; margin: 0 8px; text-decoration: none; color: #1A1A1A; vertical-align: top; white-space: normal; box-sizing: border-box;\"\u003e\n\u003cdiv class=\"card-image-wrap\" style=\"width: 100%; height: 180px; overflow: hidden; border-radius: 8px; position: relative; box-sizing: border-box;\"\u003e\n\u003cimg alt=\"Outdoor chairs\" class=\"card-img\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0909\/7932\/files\/silla-exterior_5f31a8c7-60c1-4efc-968d-db1b8684cd6e.jpg?v=1764055833\" style=\"width: 100%; height: 100%; object-fit: cover; transition: transform 0.4s ease; display: block;\"\/\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"card-text\" style=\"text-align: center; padding: 10px 4px 0; font-size: 13px; font-weight: 500; line-height: 1.3;\"\u003e Outdoor chairs \u003c\/div\u003e\n\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c!-- Barra indicadora de scroll (solo móvil) --\u003e\n\u003cdiv class=\"scroll-indicator-bar\" style=\"display: none;\"\u003e\n\u003cdiv class=\"scroll-progress\" style=\"width: 0%;\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Flechas de navegación estilo Sklum (TODOS LOS DISPOSITIVOS) --\u003e\n\u003cbutton id=\"prevBtn\" style=\"position: absolute; left: 10px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: white; border: none; font-size: 22px; cursor: pointer; display: none; z-index: 10; opacity: 0; transition: opacity 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.15); line-height: 1; color: #333;\"\u003e‹\u003c\/button\u003e\n\u003cbutton id=\"nextBtn\" style=\"position: absolute; right: 10px; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: white; border: none; font-size: 22px; cursor: pointer; display: none; z-index: 10; opacity: 0; transition: opacity 0.3s ease, box-shadow 0.3s ease; box-shadow: 0 2px 8px rgba(0,0,0,0.15); line-height: 1; color: #333;\"\u003e›\u003c\/button\u003e\n\u003c\/div\u003e\n\u003c!-- Estilos optimizados --\u003e\n\u003cstyle\u003e\n\/* Forzar ancho completo en todos los contenedores *\/\n* {\n    box-sizing: border-box !important;\n}\n\n.nav-wrap, .nav-container {\n    width: 100% !important;\n    max-width: 100% !important;\n}\n\n\/* Eliminar TODAS las posibles líneas, bordes y sombras *\/\n.nav-wrap, .nav-container, .nav-card, .card-text, .card-image-wrap, a.nav-card {\n    border: none !important;\n    border-top: none !important;\n    border-bottom: none !important;\n    border-left: none !important;\n    border-right: none !important;\n    outline: none !important;\n    text-decoration: none !important;\n    box-shadow: none !important;\n}\n\nhr {\n    display: none !important;\n}\n\n\/* Efecto hover: zoom en la imagen *\/\n.nav-card:hover .card-img {\n    transform: scale(1.08);\n}\n\n\/* Efecto hover en las flechas *\/\n#prevBtn:hover,\n#nextBtn:hover {\n    background: #f5f5f5 !important;\n    box-shadow: 0 4px 12px rgba(0,0,0,0.25) !important;\n}\n\n\/* Estilos para Ver más\/Ver menos (solo móvil) *\/\n@media (max-width: 768px) {\n    \/* FORZAR contenedores padres sin padding *\/\n    .site-box-content,\n    .rte.subtitle {\n        padding-left: 0 !important;\n        padding-right: 0 !important;\n    }\n    \n    \/* Wrapper de texto con margin negativo para compensar padding padre *\/\n    .text-wrapper {\n        padding: 0 !important;\n        margin: 0 -30px !important;\n        width: calc(100% + 60px) !important;\n        max-width: calc(100% + 60px) !important;\n    }\n    \n    \/* Contenedor de texto sin padding en móvil *\/\n    #textContainer {\n        max-height: 60px;\n        transition: max-height 0.3s ease;\n        padding: 0 !important;\n        margin: 0 !important;\n    }\n    \n    #mainText {\n        padding: 0 5px !important;\n        margin: 0 0 10px 0 !important;\n        width: 100% !important;\n        box-sizing: border-box !important;\n    }\n    \n    #textContainer.expanded {\n        max-height: none;\n    }\n    \n    #toggleBtn {\n        display: block !important;\n        margin-left: 5px !important;\n    }\n}\n\n@media (min-width: 769px) {\n    #textContainer {\n        max-height: none !important;\n    }\n    \n    #toggleBtn {\n        display: none !important;\n    }\n}\n\n\/* Scrollbar oculta por defecto *\/\n.nav-container {\n    scrollbar-width: none;\n}\n\n.nav-container::-webkit-scrollbar {\n    display: none;\n    height: 0;\n    width: 0;\n}\n\n\/* Barra indicadora de scroll (solo móvil) *\/\n.scroll-indicator-bar {\n    width: 100%;\n    height: 3px;\n    background: rgba(0,0,0,0.1);\n    position: relative;\n    margin-top: 8px;\n    border-radius: 2px;\n    overflow: hidden;\n}\n\n.scroll-progress {\n    height: 100%;\n    background: #1A1A1A;\n    transition: width 0.1s ease-out;\n    border-radius: 2px;\n}\n\n\/* Ajustes para móvil *\/\n@media (max-width: 768px) {\n    \/* Forzar nav-wrap con margin negativo para compensar padding del padre *\/\n    .nav-wrap {\n        padding: 0 !important;\n        margin: 0 -30px !important;\n        position: relative;\n        --scroll-indicator-opacity: 1;\n        width: calc(100% + 60px) !important;\n        max-width: calc(100% + 60px) !important;\n        overflow: visible !important;\n    }\n    \n    \/* Ocultar scrollbar completamente en móvil *\/\n    .nav-container::-webkit-scrollbar {\n        display: none !important;\n    }\n    \n    .nav-container {\n        scrollbar-width: none !important;\n        padding: 0 !important;\n        margin: 0 !important;\n        text-align: left;\n        display: flex !important;\n        flex-wrap: nowrap !important;\n    }\n    \n    \/* Indicador de scroll - gradiente en el borde derecho *\/\n    .nav-wrap::after {\n        content: '';\n        position: absolute;\n        right: 0;\n        top: 0;\n        bottom: 0;\n        width: 20px;\n        background: linear-gradient(to left, rgba(255,255,255,0.95), rgba(255,255,255,0));\n        pointer-events: none;\n        z-index: 5;\n        opacity: var(--scroll-indicator-opacity, 1);\n        transition: opacity 0.3s ease;\n    }\n    \n    \/* FORZAR imágenes 70px x 70px (30% más pequeñas de 100px) *\/\n    .nav-card {\n        flex: 0 0 auto !important;\n        width: 70px !important;\n        min-width: 70px !important;\n        max-width: 70px !important;\n        margin: 0 8px !important;\n        padding: 0 !important;\n    }\n    \n    .nav-card.first-card {\n        margin-left: 0 !important;\n    }\n    \n    .nav-card:last-child {\n        margin-right: 10px !important;\n    }\n    \n    \/* FORZAR imágenes 70px x 70px *\/\n    .card-image-wrap {\n        height: 70px !important;\n        min-height: 70px !important;\n        max-height: 70px !important;\n        width: 70px !important;\n        min-width: 70px !important;\n        max-width: 70px !important;\n        margin: 0 !important;\n        padding: 0 !important;\n    }\n    \n    .card-image-wrap img,\n    .card-img {\n        height: 70px !important;\n        width: 70px !important;\n        max-height: 70px !important;\n        max-width: 70px !important;\n        min-height: 70px !important;\n        min-width: 70px !important;\n    }\n    \n    .card-text {\n        font-size: 9px !important;\n        padding: 4px 0 0 !important;\n        margin: 0 !important;\n    }\n    \n    \/* Mostrar barra indicadora en móvil *\/\n    .scroll-indicator-bar {\n        display: block !important;\n    }\n    \n    \/* MOSTRAR flechas también en móvil - más pequeñas *\/\n    #prevBtn, #nextBtn {\n        display: block !important;\n        width: 30px !important;\n        height: 30px !important;\n        font-size: 18px !important;\n    }\n    \n    #prevBtn {\n        left: 5px !important;\n    }\n    \n    #nextBtn {\n        right: 5px !important;\n    }\n}\n\n\/* Ajustes para tablet *\/\n@media (min-width: 769px) and (max-width: 1024px) {\n    \/* Ocultar barra de scroll en tablet *\/\n    .scroll-indicator-bar {\n        display: none !important;\n    }\n    \n    .nav-wrap {\n        padding: 0 !important;\n    }\n    \n    .nav-container {\n        padding: 10px 50px !important;\n    }\n    \n    .nav-card {\n        width: 170px !important;\n    }\n    \n    .card-image-wrap {\n        height: 170px !important;\n    }\n    \n    \/* Flechas funcionales en tablet *\/\n    #prevBtn, #nextBtn {\n        opacity: 1 !important;\n        background: white !important;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;\n        pointer-events: auto !important;\n        width: 40px !important;\n        height: 40px !important;\n        font-size: 22px !important;\n    }\n    \n    #prevBtn {\n        left: 10px !important;\n    }\n    \n    #nextBtn {\n        right: 10px !important;\n    }\n}\n\n\/* Desktop: ocultar scrollbar y mostrar flechas *\/\n@media (min-width: 1025px) {\n    \/* Ocultar barra de scroll en desktop *\/\n    .scroll-indicator-bar {\n        display: none !important;\n    }\n    \n    .nav-container::-webkit-scrollbar {\n        display: none;\n    }\n    \n    .nav-container {\n        scrollbar-width: none;\n        padding: 10px 50px !important;\n    }\n    \n    .nav-wrap {\n        padding: 0 !important;\n    }\n    \n    .nav-card {\n        width: 200px !important;\n        margin: 0 10px !important;\n    }\n    \n    .card-image-wrap {\n        height: 200px !important;\n    }\n    \n    \/* Flechas funcionales en desktop *\/\n    #prevBtn, #nextBtn {\n        opacity: 1 !important;\n        background: white !important;\n        box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;\n        pointer-events: auto !important;\n        width: 40px !important;\n        height: 40px !important;\n        font-size: 22px !important;\n    }\n    \n    #prevBtn {\n        left: 10px !important;\n    }\n    \n    #nextBtn {\n        right: 10px !important;\n    }\n}\n\u003c\/style\u003e\n\u003c!-- Script para navegación con flechas dinámicas --\u003e\n\u003cscript\u003e\ndocument.addEventListener('DOMContentLoaded', function() {\n    \/\/ Funcionalidad See more\/See less (solo móvil)\n    var textContainer = document.getElementById('textContainer');\n    var toggleBtn = document.getElementById('toggleBtn');\n    var isExpanded = false;\n    \n    if (toggleBtn) {\n        toggleBtn.addEventListener('click', function() {\n            if (isExpanded) {\n                textContainer.classList.remove('expanded');\n                toggleBtn.textContent = 'See more';\n                isExpanded = false;\n            } else {\n                textContainer.classList.add('expanded');\n                toggleBtn.textContent = 'See less';\n                isExpanded = true;\n            }\n        });\n    }\n    \n    var navContainer = document.querySelector('.nav-container');\n    var prevBtn = document.getElementById('prevBtn');\n    var nextBtn = document.getElementById('nextBtn');\n    var scrollProgress = document.querySelector('.scroll-progress');\n    \n    \/\/ Función para actualizar barra de progreso en móvil\n    function updateScrollProgress() {\n        if (window.innerWidth \u003e 768 || !scrollProgress) return; \/\/ Solo para móvil\n        \n        var scrollLeft = navContainer.scrollLeft;\n        var scrollWidth = navContainer.scrollWidth;\n        var clientWidth = navContainer.clientWidth;\n        var maxScroll = scrollWidth - clientWidth;\n        \n        if (maxScroll \u003c= 0) {\n            scrollProgress.style.width = '100%';\n        } else {\n            var percentage = (scrollLeft \/ maxScroll) * 100;\n            scrollProgress.style.width = percentage + '%';\n        }\n    }\n    \n    \/\/ Función para actualizar el indicador de scroll en móvil\n    function updateScrollIndicator() {\n        if (window.innerWidth \u003e 768) return; \/\/ Solo para móvil\n        \n        var navWrap = document.querySelector('.nav-wrap');\n        var scrollLeft = navContainer.scrollLeft;\n        var scrollWidth = navContainer.scrollWidth;\n        var clientWidth = navContainer.clientWidth;\n        var maxScroll = scrollWidth - clientWidth;\n        \n        \/\/ Ocultar indicador si está al final del scroll\n        if (scrollLeft \u003e= maxScroll - 10) {\n            navWrap.style.setProperty('--scroll-indicator-opacity', '0');\n        } else {\n            navWrap.style.setProperty('--scroll-indicator-opacity', '1');\n        }\n    }\n    \n    \/\/ Escuchar scroll en el contenedor para actualizar indicador\n    navContainer.addEventListener('scroll', updateScrollIndicator);\n    navContainer.addEventListener('scroll', updateScrollProgress);\n    window.addEventListener('resize', updateScrollIndicator);\n    window.addEventListener('resize', updateScrollProgress);\n    updateScrollIndicator(); \/\/ Llamar al cargar\n    updateScrollProgress(); \/\/ Llamar al cargar\n    \n    \/\/ Función para actualizar visibilidad de flechas según posición del scroll (TODOS LOS DISPOSITIVOS)\n    function updateArrows() {\n        var scrollLeft = navContainer.scrollLeft;\n        var scrollWidth = navContainer.scrollWidth;\n        var clientWidth = navContainer.clientWidth;\n        var maxScroll = scrollWidth - clientWidth;\n        \n        \/\/ Si no hay scroll necesario, ocultar ambas flechas\n        if (maxScroll \u003c= 0) {\n            prevBtn.style.opacity = '0';\n            nextBtn.style.opacity = '0';\n            setTimeout(function() {\n                if (prevBtn.style.opacity === '0') prevBtn.style.display = 'none';\n                if (nextBtn.style.opacity === '0') nextBtn.style.display = 'none';\n            }, 300);\n            return;\n        }\n        \n        \/\/ Mostrar\/ocultar flecha izquierda\n        if (scrollLeft \u003c= 5) {\n            prevBtn.style.opacity = '0';\n            setTimeout(function() {\n                if (prevBtn.style.opacity === '0') prevBtn.style.display = 'none';\n            }, 300);\n        } else {\n            prevBtn.style.display = 'block';\n            setTimeout(function() {\n                prevBtn.style.opacity = '1';\n            }, 10);\n        }\n        \n        \/\/ Mostrar\/ocultar flecha derecha\n        if (scrollLeft \u003e= maxScroll - 5) {\n            nextBtn.style.opacity = '0';\n            setTimeout(function() {\n                if (nextBtn.style.opacity === '0') nextBtn.style.display = 'none';\n            }, 300);\n        } else {\n            nextBtn.style.display = 'block';\n            setTimeout(function() {\n                nextBtn.style.opacity = '1';\n            }, 10);\n        }\n    }\n    \n    \/\/ Navegación con flechas (TODOS LOS DISPOSITIVOS)\n    if (prevBtn \u0026\u0026 nextBtn) {\n        prevBtn.addEventListener('click', function() {\n            var scrollAmount = window.innerWidth \u003c= 768 ? 80 : 220;\n            navContainer.scrollBy({ left: -scrollAmount, behavior: 'smooth' });\n            setTimeout(updateArrows, 300);\n        });\n        \n        nextBtn.addEventListener('click', function() {\n            var scrollAmount = window.innerWidth \u003c= 768 ? 80 : 220;\n            navContainer.scrollBy({ left: scrollAmount, behavior: 'smooth' });\n            setTimeout(updateArrows, 300);\n        });\n    }\n    \n    \/\/ Actualizar flechas cuando se hace scroll\n    navContainer.addEventListener('scroll', updateArrows);\n    \n    \/\/ Actualizar flechas al cargar y redimensionar\n    setTimeout(function() {\n        updateArrows();\n        updateScrollProgress();\n    }, 100);\n    window.addEventListener('resize', updateArrows);\n});\n\u003c\/script\u003e","products":[{"product_id":"silla-yamal-beige-00sl119725","title":"Yamal Beige Chair","description":"\u003ch3\u003eYamal Beige Chair\u003c\/h3\u003e\n\u003ch5\u003e\u003cstrong\u003eSomcasa\u003c\/strong\u003e\u003c\/h5\u003e\n\u003cp\u003eThe YAMAL chair is made up of a seat, backrest, and arms molded in a single piece of polypropylene, offering ergonomic support that adapts perfectly to the body. Its metal legs complete its minimalist and modern design, ideal for any space.\u003c\/p\u003e\n\u003ch4\u003e\u003cstrong\u003eProduct Details\u003c\/strong\u003e\u003c\/h4\u003e\n\u003cul\u003e\n\n\u003cli\u003eDimensions: 55 cm wide · 52 cm deep · 80 cm high\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\u003ch4\u003e\u003cstrong\u003eMaterials\u003c\/strong\u003e\u003c\/h4\u003e\n\u003cul\u003e\n\n\u003cli\u003eMain materials: polyurethane, polypropylene and metal.\u003c\/li\u003e\n\n\n\u003c\/ul\u003e\n\u003ch4\u003e\u003cstrong\u003eFrequently Asked Questions\u003c\/strong\u003e\u003c\/h4\u003e\n\u003cul\u003e\n\n\u003cli\u003e\n\n\u003cstrong\u003eWhat are its dimensions?\u003c\/strong\u003e\u003cbr\u003e\n55 cm wide, 52 cm deep, 80 cm high.\u003c\/li\u003e\n\n\u003cli\u003e\n\n\u003cstrong\u003eWhat materials is it made from?\u003c\/strong\u003e\u003cbr\u003e\nIts main materials are polyurethane, polypropylene and metal.\u003c\/li\u003e\n\n\u003cli\u003e\n\n\u003cstrong\u003eCan I see it at the Valencia showroom?\u003c\/strong\u003e\u003cbr\u003e\nAt our Valencia showroom (Avda. Pérez Galdós 127), we have the Somcasa catalog and can advise you with any questions. If you are interested in purchasing, we can visit the brand's showroom together to see it in person. We ship throughout Spain.\u003c\/li\u003e\n\n\n\u003c\/ul\u003e","brand":"Somcasa Vlc","offers":[{"title":"Beige","offer_id":53397039087963,"sku":"00SL119725","price":76.8,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0909\/7932\/files\/DriveViewer_79a3a6ce-ee56-4b83-a12b-e18ccb4cc2ab.jpg?v=1781731832"}],"url":"https:\/\/slowhousedeco.com\/en\/collections\/outdoor-tables.oembed","provider":"Slowdeco","version":"1.0","type":"link"}