{"id":137878,"date":"2025-11-26T15:57:12","date_gmt":"2025-11-26T15:57:12","guid":{"rendered":"https:\/\/www.escueladesurfsopelana.com\/?p=137878"},"modified":"2026-01-07T16:32:23","modified_gmt":"2026-01-07T16:32:23","slug":"zarautz-webcam","status":"publish","type":"post","link":"https:\/\/www.escueladesurfsopelana.com\/en\/zarautz-webcam\/","title":{"rendered":"Zarautz Webcam: Watch the waves live"},"content":{"rendered":"<p><iframe src=\"https:\/\/www.hlsplayer.org\/play?url=https%3A%2F%2F58f14c0895a20.streamlock.net%2Fcamaramar%2FGIP_zarautz_169.stream%2Fplaylist.m3u8\" width=\"640\" height=\"360\" frameborder=\"0\" allowfullscreen=\"allowfullscreen\"><\/iframe><\/p>\n    <style>\n    \/* Estilos generales *\/\n    .kostasystem-container {\n        max-width: 100%;\n        margin: 0 auto;\n    }\n    .kostasystem-titulo-principal {\n        text-align: center;\n        margin-bottom: 20px;\n        font-size: 24px;\n        font-weight: bold;\n    }\n    \n    \/* Estilos para las c\u00e1maras principales - vertical *\/\n    .kostasystem-camaras-grupo {\n        display: flex;\n        flex-direction: column;\n        gap: 30px;\n        margin-bottom: 40px;\n    }\n    .kostasystem-camara-container {\n        width: 100%;\n        position: relative;\n        overflow: hidden;\n        border-radius: 8px;\n        box-shadow: 0 2px 10px rgba(0,0,0,0.1);\n    }\n    .kostasystem-camara-titulo {\n        background-color: rgba(0,0,0,0.7);\n        color: white;\n        font-weight: bold;\n        padding: 8px 15px;\n        position: absolute;\n        top: 0;\n        left: 0;\n        z-index: 10;\n        border-bottom-right-radius: 8px;\n    }\n    .kostasystem-camara-layers {\n        position: relative;\n        width: 100%;\n        height: auto;\n    }\n    .kostasystem-camara-layer {\n        position: absolute;\n        top: 0;\n        left: 0;\n        width: 100%;\n        height: 100%;\n        transition: opacity 0.5s ease-in-out;\n    }\n    .kostasystem-camara-layer.active {\n        z-index: 2;\n        opacity: 1;\n    }\n    .kostasystem-camara-layer.inactive {\n        z-index: 1;\n        opacity: 0;\n    }\n    .kostasystem-camara-base {\n        position: relative;\n        z-index: 0;\n        width: 100%;\n        display: block;\n    }\n    \n    \/* Estilos para el historial - vertical *\/\n    .kostasystem-historial-container {\n        margin-top: 40px;\n        padding-top: 20px;\n        border-top: 1px solid #eee;\n    }\n    .kostasystem-historial-titulo {\n        text-align: center;\n        font-size: 20px;\n        font-weight: bold;\n        margin-bottom: 20px;\n        padding-bottom: 10px;\n        border-bottom: 2px solid #f5f5f5;\n    }\n    .kostasystem-historial-seccion {\n        margin-bottom: 30px;\n    }\n    .kostasystem-historial-subtitulo {\n        font-size: 18px;\n        margin-bottom: 15px;\n        background-color: #f5f5f5;\n        padding: 8px 15px;\n        border-radius: 5px;\n    }\n    .kostasystem-historial-grid {\n        display: grid;\n        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));\n        gap: 10px;\n        margin-bottom: 30px;\n    }\n    .kostasystem-historial-item {\n        position: relative;\n        border: 1px solid #ddd;\n        border-radius: 5px;\n        overflow: hidden;\n        background: #f9f9f9;\n    }\n    .kostasystem-historial-imagen {\n        width: 100%;\n        height: auto;\n        display: block;\n    }\n    .kostasystem-historial-tiempo {\n        position: absolute;\n        bottom: 0;\n        left: 0;\n        right: 0;\n        background: rgba(0,0,0,0.7);\n        color: white;\n        font-size: 11px;\n        padding: 5px;\n        text-align: center;\n    }\n    \n    \/* Otros estilos *\/\n    .kostasystem-estado {\n        margin-top: 10px;\n        color: #ff0000;\n        font-style: italic;\n        text-align: center;\n    }\n    .kostasystem-timestamp {\n        margin-top: 8px;\n        margin-bottom: 5px;\n        font-size: 13px;\n        color: #666;\n        text-align: center;\n        background-color: #f9f9f9;\n        padding: 5px;\n        border-radius: 4px;\n    }\n    \n    \/* Media queries para responsividad *\/\n    @media (min-width: 768px) {\n        .kostasystem-historial-grid {\n            grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));\n        }\n    }\n    <\/style>\n\n    <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b\" class=\"kostasystem-container\">\n                    <h2 class=\"kostasystem-titulo-principal\">Zarautz<\/h2>\n                \n        <div class=\"kostasystem-camaras-grupo\">\n                            <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container1\" class=\"kostasystem-camara-container\">\n                    <div class=\"kostasystem-camara-titulo\">C\u00e1mara 1<\/div>\n                    <a href=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara1_snap.jpeg\" target=\"_blank\" rel=\"noopener\">\n                        <!-- Imagen base para establecer dimensiones -->\n                        <img decoding=\"async\" class=\"kostasystem-camara-base\" \n                             src=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara1_snap.jpeg\" \n                             alt=\"Webcam Zarautz 1\" \/>\n                        \n                        <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers1\" class=\"kostasystem-camara-layers\">\n                            <!-- Las capas de im\u00e1genes se agregar\u00e1n aqu\u00ed v\u00eda JavaScript -->\n                        <\/div>\n                    <\/a>\n                    \n                    <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp1\" class=\"kostasystem-timestamp\"><\/div>\n                <\/div>\n                            <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container4\" class=\"kostasystem-camara-container\">\n                    <div class=\"kostasystem-camara-titulo\">C\u00e1mara 4<\/div>\n                    <a href=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara4_snap.jpeg\" target=\"_blank\" rel=\"noopener\">\n                        <!-- Imagen base para establecer dimensiones -->\n                        <img decoding=\"async\" class=\"kostasystem-camara-base\" \n                             src=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara4_snap.jpeg\" \n                             alt=\"Webcam Zarautz 4\" \/>\n                        \n                        <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers4\" class=\"kostasystem-camara-layers\">\n                            <!-- Las capas de im\u00e1genes se agregar\u00e1n aqu\u00ed v\u00eda JavaScript -->\n                        <\/div>\n                    <\/a>\n                    \n                    <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp4\" class=\"kostasystem-timestamp\"><\/div>\n                <\/div>\n                            <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container5\" class=\"kostasystem-camara-container\">\n                    <div class=\"kostasystem-camara-titulo\">C\u00e1mara 5<\/div>\n                    <a href=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara5_snap.jpeg\" target=\"_blank\" rel=\"noopener\">\n                        <!-- Imagen base para establecer dimensiones -->\n                        <img decoding=\"async\" class=\"kostasystem-camara-base\" \n                             src=\"https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara5_snap.jpeg\" \n                             alt=\"Webcam Zarautz 5\" \/>\n                        \n                        <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers5\" class=\"kostasystem-camara-layers\">\n                            <!-- Las capas de im\u00e1genes se agregar\u00e1n aqu\u00ed v\u00eda JavaScript -->\n                        <\/div>\n                    <\/a>\n                    \n                    <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp5\" class=\"kostasystem-timestamp\"><\/div>\n                <\/div>\n                    <\/div>\n        \n                \n        <div id=\"kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_estado\" class=\"kostasystem-estado\"><\/div>\n    <\/div>\n    \n    <script>\n    document.addEventListener('DOMContentLoaded', function() {\n        \/\/ Configuraci\u00f3n\n        const container_id = 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b';\n        const config = {\n            camaras: [\n                                {\n                    num: 1,\n                    container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container1',\n                    layers: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers1',\n                    url: 'https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara1_snap.jpeg',\n                    timestamp: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp1',\n                    currentLayer: 0,\n                    layersCreated: false,\n                    historial: {\n                        activo: false,\n                        container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_historial_grid_1',\n                        items: [],\n                        lastHourProcessed: null\n                    }\n                },\n                                {\n                    num: 4,\n                    container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container4',\n                    layers: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers4',\n                    url: 'https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara4_snap.jpeg',\n                    timestamp: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp4',\n                    currentLayer: 0,\n                    layersCreated: false,\n                    historial: {\n                        activo: false,\n                        container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_historial_grid_4',\n                        items: [],\n                        lastHourProcessed: null\n                    }\n                },\n                                {\n                    num: 5,\n                    container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_container5',\n                    layers: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_layers5',\n                    url: 'https:\/\/www.kostasystem.com\/wp-content\/uploads\/irudiak\/zarautz\/camara5_snap.jpeg',\n                    timestamp: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_timestamp5',\n                    currentLayer: 0,\n                    layersCreated: false,\n                    historial: {\n                        activo: false,\n                        container: 'kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_historial_grid_5',\n                        items: [],\n                        lastHourProcessed: null\n                    }\n                },\n                            ],\n            intervalo: 5000,\n            reintentos: {\n                tiempo: 3000,\n                max: 5\n            },\n            historial: {\n                activo: false,\n                ambasCamaras: false,\n                maxItems: 8,\n                minDiffHoras: 1 \/\/ Diferencia m\u00ednima en horas para a\u00f1adir al historial\n            }\n        };\n\n        const estadoConexion = document.getElementById('kostasystem_zarautz_32f05daffd313c35d5d69f7c3ab07b1b_estado');\n        \n        \/\/ Funci\u00f3n para formatear una fecha\n        function formatearFecha(date) {\n            const dia = date.getDate().toString().padStart(2, '0');\n            const mes = (date.getMonth() + 1).toString().padStart(2, '0');\n            const anio = date.getFullYear();\n            const hora = date.getHours().toString().padStart(2, '0');\n            const minutos = date.getMinutes().toString().padStart(2, '0');\n            \n            return `${dia}\/${mes}\/${anio} ${hora}:${minutos}`;\n        }\n        \n        \/\/ Inicializaci\u00f3n\n        function inicializar() {\n            \/\/ Crear las capas iniciales para cada c\u00e1mara\n            config.camaras.forEach(camara => {\n                const layersElement = document.getElementById(camara.layers);\n                if (!layersElement) return;\n                \n                \/\/ Creamos dos capas para alternar entre ellas\n                const layer1 = document.createElement('img');\n                layer1.className = 'kostasystem-camara-layer active';\n                layer1.src = camara.url + '?t=' + Date.now();\n                layer1.alt = 'Webcam Layer 1';\n                \n                const layer2 = document.createElement('img');\n                layer2.className = 'kostasystem-camara-layer inactive';\n                layer2.src = camara.url + '?t=' + Date.now();\n                layer2.alt = 'Webcam Layer 2';\n                \n                layersElement.appendChild(layer1);\n                layersElement.appendChild(layer2);\n                \n                camara.layersCreated = true;\n                \n                \/\/ Actualizar timestamp\n                const timestampElement = document.getElementById(camara.timestamp);\n                if (timestampElement) {\n                    const ahora = new Date();\n                    timestampElement.textContent = '\u00daltima actualizaci\u00f3n: ' + formatearFecha(ahora);\n                }\n                \n                \/\/ Preparar historial si est\u00e1 habilitado\n                if (config.historial.activo && \n                    (config.historial.ambasCamaras || camara.num === config.camaras[0].num)) {\n                    const ahora = new Date();\n                    const primerItem = {\n                        src: camara.url + '?t=' + Date.now(),\n                        timestamp: Date.now(),\n                        fecha: ahora,\n                        hora: ahora.getHours()\n                    };\n                    camara.historial.items.push(primerItem);\n                    camara.historial.lastHourProcessed = ahora.getHours();\n                    actualizarHistorialVisual(camara);\n                }\n            });\n            \n            \/\/ Comenzar actualizaciones\n            setTimeout(() => {\n                iniciarActualizaciones();\n            }, 1000); \/\/ Esperamos 1 segundo para la carga inicial\n        }\n        \n        \/\/ Funci\u00f3n para actualizar el historial visual de una c\u00e1mara espec\u00edfica\n        function actualizarHistorialVisual(camara) {\n            if (!config.historial.activo) return;\n            if (!camara.historial.activo) return;\n            \n            const historialElement = document.getElementById(camara.historial.container);\n            if (!historialElement) return;\n            \n            \/\/ Limpiar el historial visual actual\n            historialElement.innerHTML = '';\n            \n            \/\/ Mostrar los elementos del historial (limitados al m\u00e1ximo configurado)\n            const itemsToShow = camara.historial.items.slice(0, config.historial.maxItems);\n            \n            itemsToShow.forEach((item, index) => {\n                const itemElement = document.createElement('div');\n                itemElement.className = 'kostasystem-historial-item';\n                \n                \/\/ Crear enlace para hacer la imagen clicable\n                const enlace = document.createElement('a');\n                enlace.href = item.src;\n                enlace.target = '_blank';\n                enlace.rel = 'noopener';\n                \n                const img = document.createElement('img');\n                img.className = 'kostasystem-historial-imagen';\n                img.src = item.src;\n                img.alt = 'Historial ' + (index + 1);\n                \n                const tiempo = document.createElement('div');\n                tiempo.className = 'kostasystem-historial-tiempo';\n                tiempo.textContent = formatearFecha(item.fecha);\n                \n                enlace.appendChild(img);\n                itemElement.appendChild(enlace);\n                itemElement.appendChild(tiempo);\n                historialElement.appendChild(itemElement);\n            });\n        }\n        \n        \/\/ Funci\u00f3n para actualizar la imagen con transici\u00f3n suave\n        function actualizarImagen(camara, intentos = 0) {\n            \/\/ Si las capas no se han creado, salimos\n            if (!camara.layersCreated) return;\n            \n            const layersElement = document.getElementById(camara.layers);\n            if (!layersElement) return;\n            \n            \/\/ Obtenemos las dos capas\n            const layers = layersElement.getElementsByClassName('kostasystem-camara-layer');\n            if (layers.length !== 2) return;\n            \n            \/\/ Determinamos qu\u00e9 capa est\u00e1 activa e inactiva\n            const activeLayer = layers[camara.currentLayer];\n            const inactiveLayer = layers[camara.currentLayer === 0 ? 1 : 0];\n            \n            \/\/ Creamos la nueva URL con timestamp\n            const timestamp = Date.now();\n            const newUrl = camara.url + '?t=' + timestamp;\n            \n            \/\/ Cargamos la nueva imagen en la capa inactiva\n            const tempImage = new Image();\n            tempImage.onload = function() {\n                \/\/ Cuando la imagen est\u00e1 cargada, la asignamos a la capa inactiva\n                inactiveLayer.src = newUrl;\n                \n                \/\/ Y hacemos el cambio de capas\n                setTimeout(() => {\n                    activeLayer.classList.remove('active');\n                    activeLayer.classList.add('inactive');\n                    \n                    inactiveLayer.classList.remove('inactive');\n                    inactiveLayer.classList.add('active');\n                    \n                    \/\/ Alternamos la capa actual\n                    camara.currentLayer = camara.currentLayer === 0 ? 1 : 0;\n                    \n                    \/\/ Actualizar timestamp\n                    const timestampElement = document.getElementById(camara.timestamp);\n                    if (timestampElement) {\n                        const ahora = new Date();\n                        timestampElement.textContent = '\u00daltima actualizaci\u00f3n: ' + formatearFecha(ahora);\n                    }\n                    \n                    \/\/ Procesar para el historial si es necesario\n                    if (config.historial.activo && \n                        (config.historial.ambasCamaras || camara.num === config.camaras[0].num)) {\n                        const ahora = new Date();\n                        const horaActual = ahora.getHours();\n                        \n                        \/\/ Solo a\u00f1adimos al historial si cambia la hora\n                        if (camara.historial.lastHourProcessed === null || \n                            horaActual !== camara.historial.lastHourProcessed) {\n                            const nuevoItem = {\n                                src: newUrl,\n                                timestamp: timestamp,\n                                fecha: ahora,\n                                hora: horaActual\n                            };\n                            \n                            \/\/ A\u00f1adir al principio del array\n                            camara.historial.items.unshift(nuevoItem);\n                            \n                            \/\/ Mantener solo el m\u00e1ximo configurado\n                            if (camara.historial.items.length > config.historial.maxItems) {\n                                camara.historial.items = camara.historial.items.slice(0, config.historial.maxItems);\n                            }\n                            \n                            \/\/ Actualizar la \u00faltima hora procesada\n                            camara.historial.lastHourProcessed = horaActual;\n                            \n                            \/\/ Actualizar visual del historial\n                            actualizarHistorialVisual(camara);\n                        }\n                    }\n                    \n                    \/\/ Limpiamos cualquier mensaje de error\n                    if (estadoConexion && estadoConexion.textContent.includes('Error')) {\n                        estadoConexion.textContent = '';\n                    }\n                }, 50); \/\/ Peque\u00f1o retraso para asegurar que la imagen est\u00e9 cargada\n            };\n            \n            tempImage.onerror = function() {\n                if (intentos < config.reintentos.max) {\n                    setTimeout(() => actualizarImagen(camara, intentos + 1), config.reintentos.tiempo);\n                } else if (estadoConexion) {\n                    estadoConexion.textContent = 'Error de conexi\u00f3n. Reintentando...';\n                    setTimeout(() => actualizarImagen(camara, 0), config.reintentos.tiempo * 2);\n                }\n            };\n            \n            \/\/ Iniciamos la carga\n            tempImage.src = newUrl;\n        }\n        \n        function iniciarActualizaciones() {\n            \/\/ Primera actualizaci\u00f3n\n            config.camaras.forEach(camara => actualizarImagen(camara));\n            \n            \/\/ Configurar actualizaciones peri\u00f3dicas\n            setInterval(() => {\n                config.camaras.forEach(camara => actualizarImagen(camara));\n            }, config.intervalo);\n        }\n        \n        \/\/ Iniciar todo\n        inicializar();\n    });\n    <\/script>\n    \n\t\t<div data-elementor-type=\"section\" data-elementor-id=\"137532\" class=\"elementor elementor-137532\" data-elementor-post-type=\"elementor_library\">\n\t\t\t<div class=\"elementor-element elementor-element-f52f1f0 e-flex e-con-boxed e-con e-parent\" data-id=\"f52f1f0\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-9ac172c elementor-widget elementor-widget-heading\" data-id=\"9ac172c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">Clases de surf<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-9a95746 elementor-widget elementor-widget-text-editor\" data-id=\"9a95746\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t\t\t\t\t\t<p>Descubre el surf en Sopela y convierte el mar en tu nuevo reto personal.<br \/>En Pe\u00f1a Txuri entendemos el surf como una forma de vida, una pasi\u00f3n que queremos compartir contigo.<\/p>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-0771b44 elementor-grid-3 elementor-grid-tablet-2 elementor-grid-mobile-1 elementor-widget elementor-widget-loop-grid\" data-id=\"0771b44\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;template_id&quot;:135877,&quot;row_gap&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:20,&quot;sizes&quot;:[]},&quot;_skin&quot;:&quot;post&quot;,&quot;columns&quot;:&quot;3&quot;,&quot;columns_tablet&quot;:&quot;2&quot;,&quot;columns_mobile&quot;:&quot;1&quot;,&quot;edit_handle_selector&quot;:&quot;[data-elementor-type=\\&quot;loop-item\\&quot;]&quot;,&quot;row_gap_tablet&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]},&quot;row_gap_mobile&quot;:{&quot;unit&quot;:&quot;px&quot;,&quot;size&quot;:&quot;&quot;,&quot;sizes&quot;:[]}}\" data-widget_type=\"loop-grid.post\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-loop-container elementor-grid\" role=\"list\">\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135787 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/ADULTOS-PTX-Sopela-19-scaled.webp\");}.e-loop-item-135787 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/ADULTOS-PTX-Sopela-19-scaled.webp\");}<\/style><style id=\"loop-135877\">.elementor-135877 .elementor-element.elementor-element-17347c8{--display:flex;--margin-top:0px;--margin-bottom:0px;--margin-left:0px;--margin-right:0px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-color:var( --e-global-color-primary );background-position:center center;background-size:cover;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front .elementor-flip-box__layer__overlay{text-align:start;justify-content:flex-end;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front .elementor-flip-box__layer__title{color:var( --e-global-color-92c703a );font-family:var( --e-global-typography-0c160d5-font-family ), Sans-serif;font-size:var( --e-global-typography-0c160d5-font-size );font-weight:var( --e-global-typography-0c160d5-font-weight );text-transform:var( --e-global-typography-0c160d5-text-transform );line-height:var( --e-global-typography-0c160d5-line-height );letter-spacing:var( --e-global-typography-0c160d5-letter-spacing );word-spacing:var( --e-global-typography-0c160d5-word-spacing );-webkit-text-stroke-width:0.5px;stroke-width:0.5px;-webkit-text-stroke-color:#000;stroke:#000;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-color:var( --e-global-color-primary );background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back .elementor-flip-box__layer__overlay{background-color:#00000070;text-align:start;justify-content:flex-end;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__button{margin-inline-start:0;font-family:\"Inter\", Sans-serif;font-size:14px;font-weight:400;color:var( --e-global-color-secondary );background-color:var( --e-global-color-accent );border-width:0px;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back .elementor-flip-box__layer__title{color:var( --e-global-color-secondary );font-family:\"Montserrat\", Sans-serif;font-size:18px;font-weight:800;text-transform:uppercase;line-height:1em;}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__button:hover{color:var( --e-global-color-secondary );background-color:var( --e-global-color-primary );}@media(max-width:1024px){.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front .elementor-flip-box__layer__title{font-size:var( --e-global-typography-0c160d5-font-size );line-height:var( --e-global-typography-0c160d5-line-height );letter-spacing:var( --e-global-typography-0c160d5-letter-spacing );word-spacing:var( --e-global-typography-0c160d5-word-spacing );}}@media(max-width:767px){.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front .elementor-flip-box__layer__title{font-size:var( --e-global-typography-0c160d5-font-size );line-height:var( --e-global-typography-0c160d5-line-height );letter-spacing:var( --e-global-typography-0c160d5-letter-spacing );word-spacing:var( --e-global-typography-0c160d5-word-spacing );}.elementor-135877 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back .elementor-flip-box__layer__title{font-size:16px;}}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135787 post-135787 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tAdult Surf Lessons in Sopelana\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/adult-surf-lessons\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tAdult Surf Lessons in Sopelana\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135919 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-ESKOLA-KIDS-77-scaled.webp\");}.e-loop-item-135919 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-ESKOLA-KIDS-77-scaled.webp\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135919 post-135919 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tKids\u2019 Surf Lessons in Sopelana\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/kids-surf-lesson\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tKids\u2019 Surf Lessons in Sopelana\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135794 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/ADULTOS-PTX-Sopela-24-scaled.webp\");}.e-loop-item-135794 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/ADULTOS-PTX-Sopela-24-scaled.webp\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135794 post-135794 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tGroup Surf Lessons in Sopelana\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/group-booking\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tGroup Surf Lessons in Sopelana\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135805 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/SURF-ADAPTADO-6-scaled.webp\");}.e-loop-item-135805 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/SURF-ADAPTADO-6-scaled.webp\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135805 post-135805 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tAdaptive Surfing in Sopelana\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/adapted-surfing\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tAdaptive Surfing in Sopelana\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135808 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-SUM23-62-scaled.webp\");}.e-loop-item-135808 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-SUM23-62-scaled.webp\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135808 post-135808 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tAdvanced Surf Lessons and Coaching\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/perfectioning\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tAdvanced Surf Lessons and Coaching\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<style id=\"loop-dynamic-135877\">.e-loop-item-135817 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__front{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-SUM23-33-scaled.webp\");}.e-loop-item-135817 .elementor-element.elementor-element-cd02dd2 .elementor-flip-box__back{background-image:url(\"https:\/\/www.escueladesurfsopelana.com\/wp-content\/uploads\/2025\/07\/PTX-SUM23-33-scaled.webp\");}<\/style>\t\t<div data-elementor-type=\"loop-item\" data-elementor-id=\"135877\" class=\"elementor elementor-135877 elementor-1242 elementor-1242 e-loop-item e-loop-item-135817 post-135817 clases type-clases status-publish has-post-thumbnail hentry\" data-elementor-post-type=\"elementor_library\" data-custom-edit-handle=\"1\">\n\t\t\t<div class=\"elementor-element elementor-element-17347c8 e-flex e-con-boxed e-con e-parent\" data-id=\"17347c8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;jet_parallax_layout_list&quot;:[]}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd02dd2 elementor-flip-box--effect-fade elementor-widget elementor-widget-flip-box\" data-id=\"cd02dd2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"flip-box.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-flip-box\" tabindex=\"0\">\n\t\t\t<div class=\"elementor-flip-box__layer elementor-flip-box__front\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\t\tCompetition Surf Training and High-Performance Coaching\t\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t<\/div>\n\t\t\t<a class=\"elementor-flip-box__layer elementor-flip-box__back\" href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/competition-high-performance\/\">\n\t\t\t<div class=\"elementor-flip-box__layer__overlay\">\n\t\t\t\t<div class=\"elementor-flip-box__layer__inner\">\n\t\t\t\t\t\t\t\t\t\t\t<h3 class=\"elementor-flip-box__layer__title\">\n\t\t\t\t\t\t\tCompetition Surf Training and High-Performance Coaching\t\t\t\t\t\t<\/h3>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<span class=\"elementor-flip-box__button elementor-button elementor-size-xs\">\n\t\t\t\t\t\t\tDiscover\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<h2>Check the Zarautz webcam and plan your session<\/h2>\n<p>Thanks to this real-time webcam, you can <strong>check the sea conditions from home<\/strong> and make sure the waves, wind, and tides are just right for your session in Zarautz before heading out.<\/p>\n<p>And if the conditions in Zarautz don&#8217;t convince you (it sometimes gets crowded or closes out with big swells), or if you prefer the consistency of <a href=\"https:\/\/www.escueladesurfsopelana.com\/en\/sopelana-beach\/\"><strong>Sopelana&#8217;s waves<\/strong><\/a>, come to <a href=\"https:\/\/www.escueladesurfsopelana.com\/en\/\"><strong>Pe\u00f1a Txuri Surf School<\/strong><\/a>. Here you will find <strong>the best equipment, the best lessons, and the best facilities<\/strong> to make the most of every session.<\/p>\n<p>\ud83d\udccd <strong>Book your lesson here<\/strong> \ud83d\udc49 <a href=\"https:\/\/www.escueladesurfsopelana.com\/en\/surf-lesson-sopelana\/\" target=\"_new\" rel=\"noopener\"><strong>Surf lessons in Sopelana<\/strong><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Check the Zarautz webcam and plan your session Thanks to this real-time webcam, you can check the sea conditions from home and make sure the waves, wind, and tides are just right for your session in Zarautz before heading out. And if the conditions in Zarautz don&#8217;t convince you (it sometimes gets crowded or closes [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":137669,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[38],"tags":[],"class_list":["post-137878","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-web-cam"],"_links":{"self":[{"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/posts\/137878","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/comments?post=137878"}],"version-history":[{"count":2,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/posts\/137878\/revisions"}],"predecessor-version":[{"id":137880,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/posts\/137878\/revisions\/137880"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/media\/137669"}],"wp:attachment":[{"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/media?parent=137878"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/categories?post=137878"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.escueladesurfsopelana.com\/en\/wp-json\/wp\/v2\/tags?post=137878"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}