{"id":4726,"date":"2026-11-06T06:27:41","date_gmt":"2026-11-06T06:27:41","guid":{"rendered":"https:\/\/sun-stop.es\/?page_id=4726"},"modified":"2026-11-06T06:35:04","modified_gmt":"2026-11-06T06:35:04","slug":"donde-encontrar","status":"publish","type":"page","link":"https:\/\/sun-stop.es\/?page_id=4726","title":{"rendered":"D\u00f3nde encontrar"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"4726\" class=\"elementor elementor-4726\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e67997f e-con e-atomic-element e-flexbox-base e-default-div e-5b89487 \" data-id=\"e67997f\" data-element_type=\"e-flexbox\" data-e-type=\"e-flexbox\" data-interaction-id=\"e67997f\" data-e-type=\"e-flexbox\" data-id=\"e67997f\">\n    <div class=\"elementor-element elementor-element-8274137 e-flex e-con-boxed e-con e-parent\" data-id=\"8274137\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2d3dbc4 elementor-widget elementor-widget-html\" data-id=\"2d3dbc4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- SUN STOP \u00b7 Puntos de venta \u00b7 para widget HTML Elementor -->\n<style>\n    \/* COLORES SUN STOP: modif\u00edcalos aqu\u00ed si lo necesitas. *\/\n    #sunstop-puntos {\n      --ss-navy:#112a46;--ss-orange:#f46a16;--ss-orange-dark:#de5806;\n      --ss-text:#132944;--ss-muted:#667386;--ss-border:#e4e8ee;\n      --ss-bg:#ffffff;--ss-soft:#f6f8fa;\n      color:var(--ss-text);background:var(--ss-bg);\n      font-family:Montserrat,Arial,Helvetica,sans-serif;\n      width:100%;padding:26px 20px 56px;box-sizing:border-box;\n    }\n    #sunstop-puntos *,#sunstop-puntos *::before,#sunstop-puntos *::after{box-sizing:border-box}\n    #sunstop-puntos .ss-container{max-width:1130px;margin:auto}\n    #sunstop-puntos .ss-intro{font-size:13px;line-height:1.7;margin:0 0 27px;color:var(--ss-text);text-align:center}\n    #sunstop-puntos .ss-intro strong{font-weight:800}\n    #sunstop-puntos .ss-intro a{color:var(--ss-orange);text-decoration:none;font-weight:750}\n    #sunstop-puntos .ss-intro a:hover{text-decoration:underline}\n    #sunstop-puntos h1{margin:0;text-align:center;color:var(--ss-navy);font-size:clamp(23px,3.4vw,35px);font-weight:850;line-height:1.23;letter-spacing:1.2px;text-transform:uppercase}\n    #sunstop-puntos h1 span{color:var(--ss-orange)}\n    #sunstop-puntos .ss-accent{width:117px;height:4px;background:var(--ss-orange);border-radius:8px;margin:15px auto 19px}\n    #sunstop-puntos .ss-map-shell{height:505px;border:1px solid var(--ss-border);border-radius:14px;overflow:hidden;box-shadow:0 10px 30px rgba(14,40,70,.08);background:#b4d9e8;position:relative}\n    #sunstop-puntos #ss-map{width:100%;height:100%;z-index:1}\n    #sunstop-puntos .ss-map-status{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--ss-navy);font-size:13px;background:rgba(255,255,255,.95);padding:10px 15px;border-radius:6px;z-index:2;display:none}\n    #sunstop-puntos .ss-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:15px;align-items:center;padding:15px 0 10px}\n    #sunstop-puntos .ss-search{display:flex;align-items:center;border:1px solid #dbe1e7;background:#fff;border-radius:13px;transition:border-color .15s,box-shadow .15s;min-width:0}\n    #sunstop-puntos .ss-search:focus-within{border-color:var(--ss-orange);box-shadow:0 0 0 3px rgba(244,106,22,.1)}\n    #sunstop-puntos .ss-search svg{margin:0 0 0 15px;flex-shrink:0;stroke:var(--ss-orange)}\n    #sunstop-puntos .ss-search input{appearance:none;border:0;border-radius:13px;box-shadow:none!important;outline:0!important;background:transparent;color:var(--ss-navy);width:100%;font-family:inherit;font-size:13px;padding:14px 13px;min-width:0;line-height:1.3}\n    #sunstop-puntos .ss-search input::placeholder{color:#969ba3;opacity:1}\n    #sunstop-puntos .ss-search-clear{border:0;background:none;color:#6a7380;font-size:20px;line-height:1;cursor:pointer;padding:9px 14px;display:none}\n    #sunstop-puntos .ss-count{color:var(--ss-orange);font-size:15px;font-weight:800;white-space:nowrap;font-variant-numeric:tabular-nums}\n    #sunstop-puntos .ss-table-shell{border:1px solid var(--ss-border);border-radius:11px;overflow:hidden;box-shadow:0 5px 18px rgba(8,27,47,.045)}\n    #sunstop-puntos .ss-table-scroll{overflow-x:auto;max-height:545px;overflow-y:auto}\n    #sunstop-puntos table{border-collapse:separate;border-spacing:0;width:100%;min-width:670px;font-size:12px;text-align:left}\n    #sunstop-puntos thead th{background:var(--ss-navy);color:#fff;padding:15px 13px;position:sticky;top:0;z-index:3;font-weight:800;line-height:1.2;text-align:left;border-right:1px solid rgba(255,255,255,.25)}\n    #sunstop-puntos thead th:last-child{border-right:0}\n    #sunstop-puntos tbody td{padding:12px 13px;color:var(--ss-text);border-bottom:1px solid #e7eaee;border-right:1px solid #edf0f3;background:#fff;vertical-align:middle;line-height:1.4}\n    #sunstop-puntos tbody tr:last-child td{border-bottom:0}\n    #sunstop-puntos tbody td:last-child{border-right:0}\n    #sunstop-puntos tbody tr{cursor:pointer}\n    #sunstop-puntos tbody tr:hover td{background:#fff7f1}\n    #sunstop-puntos tbody tr.ss-selected td{background:#fff0e5}\n    #sunstop-puntos tbody tr:focus-visible{outline:3px solid var(--ss-orange);outline-offset:-3px}\n    #sunstop-puntos tbody td:first-child{font-weight:700}\n    #sunstop-puntos .ss-small-note{font-size:11px;line-height:1.6;color:#7b8490;text-align:right;margin:11px 2px 0}\n    #sunstop-puntos .ss-empty{display:none;padding:30px 20px;text-align:center;color:var(--ss-muted);font-size:13px}\n    #sunstop-puntos .ss-pin{background:transparent;border:0}\n    #sunstop-puntos .ss-pin-svg{width:22px;height:30px;filter:drop-shadow(0 2px 2px rgba(3,20,34,.18));transition:transform .16s ease;transform-origin:50% 100%}\n    #sunstop-puntos .ss-pin:hover .ss-pin-svg,#sunstop-puntos .ss-pin.is-active .ss-pin-svg{transform:scale(1.14)}\n    #sunstop-puntos .ss-popup{font-size:12px;line-height:1.6;color:var(--ss-text);min-width:185px}\n    #sunstop-puntos .ss-popup strong{display:block;color:var(--ss-navy);font-weight:800;margin-bottom:5px;font-size:13px}\n    #sunstop-puntos .ss-popup a{display:inline-block;margin-top:9px;color:var(--ss-orange);text-decoration:none;font-weight:750}\n    #sunstop-puntos .ss-popup a:hover{text-decoration:underline}\n    \/* OpenFreeMap + MapLibre: aspecto SUN STOP y controles personalizados. *\/\n    #sunstop-puntos .maplibregl-map{font-family:Montserrat,Arial,Helvetica,sans-serif}\n    #sunstop-puntos .maplibregl-ctrl-group{overflow:hidden;border-radius:6px;border:1px solid #d4dbe1;box-shadow:0 2px 8px rgba(0,0,0,.12)}\n    #sunstop-puntos .maplibregl-ctrl-group button{width:32px;height:32px;background:#fff}\n    #sunstop-puntos .maplibregl-ctrl-group button:hover{background:#fff3e9}\n    #sunstop-puntos .maplibregl-popup-content{padding:15px 17px;border-radius:10px;box-shadow:0 6px 22px rgba(4,31,50,.12)}\n    #sunstop-puntos .maplibregl-popup-content-wrapper{border-radius:10px}\n    #sunstop-puntos .maplibregl-popup-close-button{color:var(--ss-navy);font-size:19px;padding:2px 8px}\n    #sunstop-puntos .maplibregl-ctrl-attrib{font-size:10px;background:rgba(255,255,255,.88)}\n    #sunstop-puntos .ss-pin{display:block;width:22px;height:30px;cursor:pointer;border:0;background:transparent;padding:0}\n    #sunstop-puntos .ss-pin:focus-visible{outline:2px solid var(--ss-orange);outline-offset:3px}\n    @media(max-width:700px){\n      #sunstop-puntos{padding:22px 12px 34px}\n      #sunstop-puntos .ss-intro{font-size:12px;margin-bottom:20px}\n      #sunstop-puntos h1{letter-spacing:.4px}\n      #sunstop-puntos .ss-map-shell{height:410px;border-radius:10px}\n      #sunstop-puntos .ss-toolbar{grid-template-columns:1fr;gap:8px}\n      #sunstop-puntos .ss-count{text-align:right;font-size:13px;padding-right:2px}\n      #sunstop-puntos .ss-search input{font-size:12px}\n      #sunstop-puntos .ss-table-scroll{max-height:510px}\n    }\n    @media(prefers-reduced-motion:reduce){#sunstop-puntos .ss-pin-svg{transition:none}}\n  <\/style>\n<section id=\"sunstop-puntos\" aria-label=\"Puntos de venta SUN STOP\">\n <div class=\"ss-container\">\n  <p class=\"ss-intro\">Encuentra tu punto de venta <strong>SUN STOP<\/strong> m\u00e1s cercano. Si no localizas un punto cercano a ti, ponte en <a href=\"https:\/\/sun-stop.es\/?page_id=4620\">contacto<\/a> con nosotros y uno de nuestros asistentes te atender\u00e1.<\/p>\n  <h1>Puntos de venta <span>SUN STOP<\/span><\/h1>\n  <div class=\"ss-accent\" aria-hidden=\"true\"><\/div>\n  <div class=\"ss-map-shell\">\n   <div id=\"ss-map\" role=\"region\" aria-label=\"Mapa interactivo de puntos de venta\"><\/div>\n   <div class=\"ss-map-status\" id=\"ss-map-status\" role=\"status\">No se ha podido cargar el mapa. Comprueba tu conexi\u00f3n a Internet.<\/div>\n  <\/div>\n  <div class=\"ss-toolbar\">\n   <label class=\"ss-search\" for=\"ss-search-input\">\n     <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"><circle cx=\"10.8\" cy=\"10.8\" r=\"7.5\"><\/circle><path d=\"m16.5 16.5 5 5\"><\/path><\/svg>\n     <input id=\"ss-search-input\" type=\"search\" autocomplete=\"off\" placeholder=\"Buscar por tienda, CP, municipio, provincia o pa\u00eds\" aria-label=\"Buscar puntos de venta\">\n     <button type=\"button\" class=\"ss-search-clear\" id=\"ss-search-clear\" title=\"Limpiar b\u00fasqueda\" aria-label=\"Limpiar b\u00fasqueda\">\u00d7<\/button>\n   <\/label>\n   <strong class=\"ss-count\" id=\"ss-count\" aria-live=\"polite\">Cargando puntos de venta...<\/strong>\n  <\/div>\n  <div class=\"ss-table-shell\"><div class=\"ss-table-scroll\">\n   <table aria-label=\"Listado de puntos de venta SUN STOP\">\n    <thead><tr><th style=\"width:42%\">Tienda<\/th><th style=\"width:9%\">CP<\/th><th style=\"width:18%\">Municipio<\/th><th style=\"width:20%\">Provincia<\/th><th style=\"width:11%\">Pa\u00eds<\/th><\/tr><\/thead>\n    <tbody id=\"ss-table-body\"><\/tbody>\n   <\/table>\n   <div id=\"ss-empty\" class=\"ss-empty\">No se han encontrado puntos de venta con esa b\u00fasqueda.<\/div>\n  <\/div><\/div>\n  <p class=\"ss-small-note\">Los marcadores sit\u00faan cada tienda de forma aproximada por localidad. Consulta la direcci\u00f3n completa al seleccionar un punto de venta.<\/p>\n <\/div>\n<\/section>\n<script>\n(function(){\n  'use strict';\n  \/\/ Las 88 tiendas y sus direcciones proceden del HTML original del usuario.\n  \/\/ Los pares lat\/lng son referencias aproximadas de las localidades (no GPS de las tiendas).\n  const stores = [{\"name\":\"Leroy Merlin Vitoria\",\"address\":\"Centro Comercial Boulevard, Zaramaga Kalea, 1\",\"postal\":\"01013\",\"locality\":\"Vitoria-Gasteiz\",\"province\":\"\u00c1lava\",\"id\":1,\"lat\":42.8467,\"lng\":-2.6726,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Alicante\",\"address\":\"Parque Comercial Vistahermosa, Av. de Antonio Ramos Carratal\u00e1, s\/n\",\"postal\":\"03015\",\"locality\":\"Alicante\",\"province\":\"Alicante\",\"id\":2,\"lat\":38.3452,\"lng\":-0.481,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Elche\",\"address\":\"Pol\u00edgono Industrial Carr\u00fas, Carrer Almansa, 68\",\"postal\":\"03206\",\"locality\":\"Elche \/ Elx\",\"province\":\"Alicante\",\"id\":3,\"lat\":38.2669,\"lng\":-0.6983,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin La Zenia\",\"address\":\"Calle Jade, s\/n, C.C. Zenia Boulevard\",\"postal\":\"03189\",\"locality\":\"Orihuela Costa\",\"province\":\"Alicante\",\"id\":4,\"lat\":37.9245,\"lng\":-0.7353,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin San Juan\",\"address\":\"Ctra. Valencia, km 89\",\"postal\":\"03550\",\"locality\":\"Sant Joan d'Alacant\",\"province\":\"Alicante\",\"id\":5,\"lat\":38.4014,\"lng\":-0.436,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Almer\u00eda\",\"address\":\"C. M\u00e9dico Francisco P\u00e9rez Company, 32, C.C. Torrec\u00e1rdenas\",\"postal\":\"04009\",\"locality\":\"Almer\u00eda\",\"province\":\"Almer\u00eda\",\"id\":6,\"lat\":36.834,\"lng\":-2.4637,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Roquetas de Mar\",\"address\":\"Parque Comercial Gran Plaza, Ctra. de Alic\u00fan, s\/n\",\"postal\":\"04740\",\"locality\":\"Roquetas de Mar\",\"province\":\"Almer\u00eda\",\"id\":7,\"lat\":36.7661,\"lng\":-2.6147,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Gij\u00f3n\",\"address\":\"Av. Roces, 514\",\"postal\":\"33209\",\"locality\":\"Gij\u00f3n\",\"province\":\"Asturias\",\"id\":8,\"lat\":43.5322,\"lng\":-5.6611,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Oviedo\",\"address\":\"Parque Comercial Azabache, AS-18, km 7,8\",\"postal\":\"33690\",\"locality\":\"Llanera \/ Oviedo\",\"province\":\"Asturias\",\"id\":9,\"lat\":43.423,\"lng\":-5.819,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin \u00c1vila\",\"address\":\"Avenida Juan Carlos I, frente al Hospital Ntra. Sra. de Sonsoles\",\"postal\":\"05004\",\"locality\":\"\u00c1vila\",\"province\":\"\u00c1vila\",\"id\":10,\"lat\":40.6565,\"lng\":-4.6819,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Badajoz\",\"address\":\"P.I. El Nevero, Av. Antonio Nevado Gonz\u00e1lez, 43, salida 403 A-5\",\"postal\":\"06006\",\"locality\":\"Badajoz\",\"province\":\"Badajoz\",\"id\":11,\"lat\":38.8794,\"lng\":-6.9707,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Badalona\",\"address\":\"Avinguda de la Comunitat Europea, s\/n\",\"postal\":\"08917\",\"locality\":\"Badalona\",\"province\":\"Barcelona\",\"id\":12,\"lat\":41.4469,\"lng\":2.245,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin La Maquinista\",\"address\":\"Westfield La Maquinista, Carrer de la Rep\u00fablica Dominicana, 264\",\"postal\":\"08030\",\"locality\":\"Barcelona\",\"province\":\"Barcelona\",\"id\":13,\"lat\":41.4349,\"lng\":2.1976,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Urban Barcelona\",\"address\":\"Carrer de Fontanella, 12\",\"postal\":\"08010\",\"locality\":\"Barcelona\",\"province\":\"Barcelona\",\"id\":14,\"lat\":41.3874,\"lng\":2.17,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sant Boi\",\"address\":\"Centro Comercial Sant Boi, Carrer de les Alberedes, 9\",\"postal\":\"08830\",\"locality\":\"Sant Boi de Llobregat\",\"province\":\"Barcelona\",\"id\":15,\"lat\":41.342,\"lng\":2.037,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sant Cugat\",\"address\":\"Parc d'Activitats Econ\u00f2miques, Carretera de Rub\u00ed, 7\",\"postal\":\"08174\",\"locality\":\"Sant Cugat del Vall\u00e8s\",\"province\":\"Barcelona\",\"id\":16,\"lat\":41.472,\"lng\":2.085,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Vic\",\"address\":\"Carretera de Manlleu, 60\",\"postal\":\"08500\",\"locality\":\"Vic\",\"province\":\"Barcelona\",\"id\":17,\"lat\":41.9301,\"lng\":2.2547,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sant Feliu de Llobregat\",\"address\":\"Carrer de Laure\u00e0 Mir\u00f3, 361\",\"postal\":\"08980\",\"locality\":\"Sant Feliu de Llobregat\",\"province\":\"Barcelona\",\"id\":18,\"lat\":41.381,\"lng\":2.045,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin C\u00e1ceres\",\"address\":\"Avenida del Ferrocarril, s\/n\",\"postal\":\"10005\",\"locality\":\"C\u00e1ceres\",\"province\":\"C\u00e1ceres\",\"id\":19,\"lat\":39.4753,\"lng\":-6.3724,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Jerez\",\"address\":\"Av. de la Ilustraci\u00f3n, 1\",\"postal\":\"11407\",\"locality\":\"Jerez de la Frontera\",\"province\":\"C\u00e1diz\",\"id\":20,\"lat\":36.6865,\"lng\":-6.1372,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Bah\u00eda de C\u00e1diz\",\"address\":\"Calle del Calamar, s\/n, P.I. Tres Caminos\",\"postal\":\"11510\",\"locality\":\"Puerto Real\",\"province\":\"C\u00e1diz\",\"id\":21,\"lat\":36.5325,\"lng\":-6.1926,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Los Barrios\",\"address\":\"P.I. Palmones II, N-340, salida 112\",\"postal\":\"11379\",\"locality\":\"Los Barrios\",\"province\":\"C\u00e1diz\",\"id\":22,\"lat\":36.184,\"lng\":-5.4925,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Santander\",\"address\":\"C. Alday, s\/n, C.C. Valle Real\",\"postal\":\"39600\",\"locality\":\"Camargo \/ Malia\u00f1o\",\"province\":\"Cantabria\",\"id\":23,\"lat\":43.407,\"lng\":-3.824,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Torrelavega\",\"address\":\"Av. de Bilbao, 124\",\"postal\":\"39300\",\"locality\":\"Torrelavega\",\"province\":\"Cantabria\",\"id\":24,\"lat\":43.3515,\"lng\":-4.0471,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Castell\u00f3n\",\"address\":\"Av. Enrique Gimeno, 101\",\"postal\":\"12006\",\"locality\":\"Castell\u00f3 de la Plana\",\"province\":\"Castell\u00f3n\",\"id\":25,\"lat\":39.9864,\"lng\":-0.0513,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Vinar\u00f2s\",\"address\":\"N-340, km 1049, s\/n\",\"postal\":\"12500\",\"locality\":\"Vinar\u00f2s\",\"province\":\"Castell\u00f3n\",\"id\":26,\"lat\":40.4708,\"lng\":0.4745,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Ciudad Real\",\"address\":\"C. Membrilla, 21\",\"postal\":\"13005\",\"locality\":\"Ciudad Real\",\"province\":\"Ciudad Real\",\"id\":27,\"lat\":38.985,\"lng\":-3.9273,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Valdepe\u00f1as\",\"address\":\"Av. del Vino, 10\",\"postal\":\"13300\",\"locality\":\"Valdepe\u00f1as\",\"province\":\"Ciudad Real\",\"id\":28,\"lat\":38.7621,\"lng\":-3.3848,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin C\u00f3rdoba\",\"address\":\"C.C. Los Patios de Azahara, Ctra. Palma del R\u00edo, km 4,5\",\"postal\":\"14005\",\"locality\":\"C\u00f3rdoba\",\"province\":\"C\u00f3rdoba\",\"id\":29,\"lat\":37.8882,\"lng\":-4.7794,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin A Coru\u00f1a\",\"address\":\"Centro Comercial Marineda City, Av. Arteixo, s\/n\",\"postal\":\"15008\",\"locality\":\"A Coru\u00f1a\",\"province\":\"A Coru\u00f1a\",\"id\":30,\"lat\":43.3623,\"lng\":-8.4115,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Oleiros\",\"address\":\"C.C. Parque Oleiros, Avenida das Mari\u00f1as, N-VI\",\"postal\":\"15171\",\"locality\":\"Oleiros\",\"province\":\"A Coru\u00f1a\",\"id\":31,\"lat\":43.3273,\"lng\":-8.3117,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Ferrol\",\"address\":\"Pol\u00edgono Industrial A G\u00e1ndara\",\"postal\":\"15404\",\"locality\":\"Ferrol\",\"province\":\"A Coru\u00f1a\",\"id\":32,\"lat\":43.484,\"lng\":-8.232,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Santiago\",\"address\":\"P.I. Costa Vella, Av. de Camilo Jos\u00e9 Cela, s\/n\",\"postal\":\"15707\",\"locality\":\"Santiago de Compostela\",\"province\":\"A Coru\u00f1a\",\"id\":33,\"lat\":42.8782,\"lng\":-8.5448,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Jard\u00edn Santiago\",\"address\":\"R\u00faa de Polonia, 4\",\"postal\":\"15707\",\"locality\":\"Santiago de Compostela\",\"province\":\"A Coru\u00f1a\",\"id\":34,\"lat\":42.884,\"lng\":-8.55,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Cuenca\",\"address\":\"Av. de los Alfares\",\"postal\":\"16002\",\"locality\":\"Cuenca\",\"province\":\"Cuenca\",\"id\":35,\"lat\":40.0717,\"lng\":-2.1348,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Girona\",\"address\":\"Carrer Ast\u00faries, 66\",\"postal\":\"17003\",\"locality\":\"Girona\",\"province\":\"Girona\",\"id\":36,\"lat\":41.9794,\"lng\":2.8214,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Figueres\",\"address\":\"C-260, Carretera de Figueres a Roses, km 28,65\",\"postal\":\"17600\",\"locality\":\"Figueres \/ Roses\",\"province\":\"Girona\",\"id\":37,\"lat\":42.2675,\"lng\":2.9616,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Granada\",\"address\":\"Centro Comercial Nevada Shopping, Av. de las Palmeras, s\/n\",\"postal\":\"18100\",\"locality\":\"Armilla\",\"province\":\"Granada\",\"id\":38,\"lat\":37.1447,\"lng\":-3.6257,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Nave Construcci\u00f3n Granada\",\"address\":\"Parque Comercial Alb\u00e1n, Av. Fernando de los R\u00edos, s\/n\",\"postal\":\"18100\",\"locality\":\"Armilla\",\"province\":\"Granada\",\"id\":39,\"lat\":37.147,\"lng\":-3.633,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Motril\",\"address\":\"Av. de Salobre\u00f1a, s\/n\",\"postal\":\"18600\",\"locality\":\"Motril\",\"province\":\"Granada\",\"id\":40,\"lat\":36.75,\"lng\":-3.5167,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Guadalajara\",\"address\":\"P.I. El Balconcillo, C. Trafalgar, s\/n\",\"postal\":\"19004\",\"locality\":\"Guadalajara\",\"province\":\"Guadalajara\",\"id\":41,\"lat\":40.632,\"lng\":-3.1602,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Oiartzun\",\"address\":\"Barrio Lintzirin, N-I, km 469\",\"postal\":\"20180\",\"locality\":\"Oiartzun\",\"province\":\"Gipuzkoa\",\"id\":42,\"lat\":43.3022,\"lng\":-1.8582,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Huelva\",\"address\":\"Ronda Exterior Sur, s\/n, junto a Parque Comercial Holea\",\"postal\":\"21007\",\"locality\":\"Huelva\",\"province\":\"Huelva\",\"id\":43,\"lat\":37.2614,\"lng\":-6.9447,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Ja\u00e9n\",\"address\":\"Paraje de las Lagunillas, C.C. Ja\u00e9n Plaza\",\"postal\":\"23009\",\"locality\":\"Ja\u00e9n\",\"province\":\"Ja\u00e9n\",\"id\":44,\"lat\":37.7796,\"lng\":-3.7849,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Logro\u00f1o\",\"address\":\"C.C. Parque Rioja, Calle Prado Viejo, parcelas E y F\",\"postal\":\"26007\",\"locality\":\"Logro\u00f1o\",\"province\":\"La Rioja\",\"id\":45,\"lat\":42.4627,\"lng\":-2.4449,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Le\u00f3n\",\"address\":\"Parque Comercial Reino de Le\u00f3n, Av. Pa\u00eds Leon\u00e9s, 12\",\"postal\":\"24010\",\"locality\":\"Le\u00f3n\",\"province\":\"Le\u00f3n\",\"id\":46,\"lat\":42.5987,\"lng\":-5.5671,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Lugo\",\"address\":\"Av. Duquesa de Lugo, s\/n, C.C. As Termas\",\"postal\":\"27003\",\"locality\":\"Lugo\",\"province\":\"Lugo\",\"id\":47,\"lat\":43.0122,\"lng\":-7.5559,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Alcal\u00e1 de Henares\",\"address\":\"C.C. La Dehesa, N-II, km 32\",\"postal\":\"28805\",\"locality\":\"Alcal\u00e1 de Henares\",\"province\":\"Madrid\",\"id\":48,\"lat\":40.4818,\"lng\":-3.3646,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Alcobendas\",\"address\":\"Carretera de Fuencarral, s\/n\",\"postal\":\"28100\",\"locality\":\"Alcobendas\",\"province\":\"Madrid\",\"id\":49,\"lat\":40.54,\"lng\":-3.635,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Alcorc\u00f3n\",\"address\":\"Parque Oeste, A-5, km 14\",\"postal\":\"28922\",\"locality\":\"Alcorc\u00f3n\",\"province\":\"Madrid\",\"id\":50,\"lat\":40.3458,\"lng\":-3.8249,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Madrid-Barajas\",\"address\":\"P.I. Las Mercedes, C. Laguardia, 4\",\"postal\":\"28022\",\"locality\":\"Madrid\",\"province\":\"Madrid\",\"id\":51,\"lat\":40.4697,\"lng\":-3.5694,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Getafe\",\"address\":\"Centro de Ocio Nassica, Av. R\u00edo Guadalquivir, s\/n\",\"postal\":\"28906\",\"locality\":\"Getafe\",\"province\":\"Madrid\",\"id\":52,\"lat\":40.3047,\"lng\":-3.7327,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Legan\u00e9s\",\"address\":\"Parquesur, Ctra. de Villaverde \/ A-42 salida 9A\",\"postal\":\"28916\",\"locality\":\"Legan\u00e9s\",\"province\":\"Madrid\",\"id\":53,\"lat\":40.3271,\"lng\":-3.7635,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Las Rozas\",\"address\":\"Ctra. de La Coru\u00f1a, km 22\",\"postal\":\"28230\",\"locality\":\"Las Rozas\",\"province\":\"Madrid\",\"id\":54,\"lat\":40.493,\"lng\":-3.874,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Majadahonda\",\"address\":\"Ctra. Boadilla del Monte, km 7,3, P.I. El Carralero\",\"postal\":\"28222\",\"locality\":\"Majadahonda\",\"province\":\"Madrid\",\"id\":55,\"lat\":40.4735,\"lng\":-3.8702,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Rivas\",\"address\":\"C.C. Rivas Futura, C. Juan de la Cierva, 2\",\"postal\":\"28521\",\"locality\":\"Rivas-Vaciamadrid\",\"province\":\"Madrid\",\"id\":56,\"lat\":40.335,\"lng\":-3.5191,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin San Sebasti\u00e1n de los Reyes\",\"address\":\"C.C. Megapark, Plaza del Comercio, s\/n\",\"postal\":\"28701\",\"locality\":\"San Sebasti\u00e1n de los Reyes\",\"province\":\"Madrid\",\"id\":57,\"lat\":40.5592,\"lng\":-3.6264,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Urban Madrid\",\"address\":\"C. Raimundo Fern\u00e1ndez Villaverde, 43\",\"postal\":\"28003\",\"locality\":\"Madrid\",\"province\":\"Madrid\",\"id\":58,\"lat\":40.448,\"lng\":-3.699,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin M\u00e1laga\",\"address\":\"Camino de la Loma de San Juli\u00e1n, s\/n\",\"postal\":\"29004\",\"locality\":\"M\u00e1laga\",\"province\":\"M\u00e1laga\",\"id\":59,\"lat\":36.7213,\"lng\":-4.4216,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Marbella\",\"address\":\"C.C. La Ca\u00f1ada, Carretera de Oj\u00e9n, s\/n\",\"postal\":\"29603\",\"locality\":\"Marbella\",\"province\":\"M\u00e1laga\",\"id\":60,\"lat\":36.5101,\"lng\":-4.8825,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Mijas\",\"address\":\"Av. Carmen S\u00e1enz de Tejada, C.C. Miramar\",\"postal\":\"29649\",\"locality\":\"Mijas Costa\",\"province\":\"M\u00e1laga\",\"id\":61,\"lat\":36.5439,\"lng\":-4.624,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Murcia\",\"address\":\"C.C. Nueva Condomina, A-7, salida D. Juan de Borb\u00f3n\",\"postal\":\"30110\",\"locality\":\"Churra \/ Murcia\",\"province\":\"Murcia\",\"id\":62,\"lat\":38.033,\"lng\":-1.146,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Cartagena\",\"address\":\"Parque Comercial Mediterr\u00e1neo, P.I. Cabezo Beaza\",\"postal\":\"30353\",\"locality\":\"Cartagena\",\"province\":\"Murcia\",\"id\":63,\"lat\":37.6257,\"lng\":-0.9966,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Pamplona\",\"address\":\"Parque Comercial Galaria, Barrio La Morea, s\/n\",\"postal\":\"31191\",\"locality\":\"Cordovilla\",\"province\":\"Navarra\",\"id\":64,\"lat\":42.79,\"lng\":-1.6397,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Ourense\",\"address\":\"N-120, km 573,4, P.I. Quintela\",\"postal\":\"32001\",\"locality\":\"Ourense\",\"province\":\"Ourense\",\"id\":65,\"lat\":42.3358,\"lng\":-7.8639,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Palencia\",\"address\":\"Parque Comercial Arambol, Av. de Brasilia, 5\",\"postal\":\"34004\",\"locality\":\"Palencia\",\"province\":\"Palencia\",\"id\":66,\"lat\":42.0096,\"lng\":-4.5288,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Pontevedra\",\"address\":\"Avenida de Lugo \/ \u00e1rea comercial de Pontevedra\",\"postal\":\"36004\",\"locality\":\"Pontevedra\",\"province\":\"Pontevedra\",\"id\":67,\"lat\":42.431,\"lng\":-8.6444,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Mos\",\"address\":\"Estrada Porri\u00f1o-Redondela, 15\",\"postal\":\"36418\",\"locality\":\"Mos\",\"province\":\"Pontevedra\",\"id\":68,\"lat\":42.1942,\"lng\":-8.633,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Salamanca\",\"address\":\"C.C. Capuchinos, Ctra. N-501, km 2\",\"postal\":\"37900\",\"locality\":\"Santa Marta de Tormes\",\"province\":\"Salamanca\",\"id\":69,\"lat\":40.9504,\"lng\":-5.6278,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sevilla Tomares\",\"address\":\"Parque Aljarafe, Carretera Nacional 617\",\"postal\":\"41940\",\"locality\":\"Tomares\",\"province\":\"Sevilla\",\"id\":70,\"lat\":37.3763,\"lng\":-6.0457,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sevilla Alcal\u00e1\",\"address\":\"P.I. Fridex, parcela 1, km 4,408\",\"postal\":\"41500\",\"locality\":\"Alcal\u00e1 de Guada\u00edra\",\"province\":\"Sevilla\",\"id\":71,\"lat\":37.3386,\"lng\":-5.8403,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sevilla Dos Hermanas\",\"address\":\"C.C. Way, Av. Ingeniero Jos\u00e9 Luis Prats, 1\",\"postal\":\"41703\",\"locality\":\"Dos Hermanas\",\"province\":\"Sevilla\",\"id\":72,\"lat\":37.2836,\"lng\":-5.9226,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Tarragona\",\"address\":\"P.I. Les Gavarres, parcela 7C, Josep Maria Folch i Torres\",\"postal\":\"43006\",\"locality\":\"Tarragona\",\"province\":\"Tarragona\",\"id\":73,\"lat\":41.1189,\"lng\":1.2445,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Toledo\",\"address\":\"C.C. La Abad\u00eda, Carretera A-42\",\"postal\":\"45003\",\"locality\":\"Toledo\",\"province\":\"Toledo\",\"id\":74,\"lat\":39.8628,\"lng\":-4.0273,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Talavera de la Reina\",\"address\":\"Parque Comercial El Golf, Ctra. de Madrid, km 114\",\"postal\":\"45600\",\"locality\":\"Talavera de la Reina\",\"province\":\"Toledo\",\"id\":75,\"lat\":39.9635,\"lng\":-4.831,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Alboraya\",\"address\":\"Centro Comercial Alcampo, V-21, salida 14\",\"postal\":\"46120\",\"locality\":\"Port Saplaya \/ Alboraia\",\"province\":\"Valencia\",\"id\":76,\"lat\":39.508,\"lng\":-0.3299,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Aldaia\",\"address\":\"C.C. Bonaire, Nacional III, km 345\",\"postal\":\"46960\",\"locality\":\"Aldaia\",\"province\":\"Valencia\",\"id\":77,\"lat\":39.4652,\"lng\":-0.4613,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Burjassot\",\"address\":\"Parque Comercial Ademuz, Av. de la Ilustraci\u00f3n, 6\",\"postal\":\"46100\",\"locality\":\"Burjassot\",\"province\":\"Valencia\",\"id\":78,\"lat\":39.5108,\"lng\":-0.413,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Massanassa\",\"address\":\"Carrer Medi Ambient, 5\",\"postal\":\"46470\",\"locality\":\"Massanassa\",\"province\":\"Valencia\",\"id\":79,\"lat\":39.4085,\"lng\":-0.4002,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin La Pobla de Vallbona\",\"address\":\"C.C. El Osito, Autov\u00eda de Ademuz, salida 17A\",\"postal\":\"46185\",\"locality\":\"La Pobla de Vallbona\",\"province\":\"Valencia\",\"id\":80,\"lat\":39.591,\"lng\":-0.552,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Sagunto\",\"address\":\"C.C. Vidanova Parc, Cam\u00ed dels Rolls, s\/n\",\"postal\":\"46500\",\"locality\":\"Sagunt\",\"province\":\"Valencia\",\"id\":81,\"lat\":39.679,\"lng\":-0.278,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin X\u00e0tiva\",\"address\":\"Carrer Ronda de la S\u00e9quia de la Vila, s\/n\",\"postal\":\"46800\",\"locality\":\"X\u00e0tiva\",\"province\":\"Valencia\",\"id\":82,\"lat\":38.989,\"lng\":-0.521,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Valladolid\",\"address\":\"C.C. R\u00edo Shopping, A-62 salida 128\",\"postal\":\"47195\",\"locality\":\"Arroyo de la Encomienda\",\"province\":\"Valladolid\",\"id\":83,\"lat\":41.6108,\"lng\":-4.797,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Barakaldo\",\"address\":\"C.C. Megapark, Av. de la Ribera, s\/n\",\"postal\":\"48903\",\"locality\":\"Barakaldo\",\"province\":\"Bizkaia\",\"id\":84,\"lat\":43.2956,\"lng\":-2.99,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Artea\",\"address\":\"C.C. Artea, Barrio Peruri, 33\",\"postal\":\"48940\",\"locality\":\"Leioa\",\"province\":\"Bizkaia\",\"id\":85,\"lat\":43.3252,\"lng\":-2.986,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Zamora\",\"address\":\"Ctra. Tordesillas, N-122, km 62,3\",\"postal\":\"49022\",\"locality\":\"Zamora\",\"province\":\"Zamora\",\"id\":86,\"lat\":41.5034,\"lng\":-5.7467,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Puerto Venecia\",\"address\":\"Parque Comercial Puerto Venecia\",\"postal\":\"50021\",\"locality\":\"Zaragoza\",\"province\":\"Zaragoza\",\"id\":87,\"lat\":41.6289,\"lng\":-0.8544,\"country\":\"Espa\u00f1a\"},{\"name\":\"Leroy Merlin Utebo\",\"address\":\"Carretera de Logro\u00f1o, km 6,5\",\"postal\":\"50011\",\"locality\":\"Zaragoza \/ Utebo\",\"province\":\"Zaragoza\",\"id\":88,\"lat\":41.721,\"lng\":-1.0,\"country\":\"Espa\u00f1a\"}];\n  const root=document.getElementById('sunstop-puntos');\n  if(!root)return;\n  const tbody=root.querySelector('#ss-table-body');\n  const input=root.querySelector('#ss-search-input');\n  const clear=root.querySelector('#ss-search-clear');\n  const count=root.querySelector('#ss-count');\n  const empty=root.querySelector('#ss-empty');\n  const status=root.querySelector('#ss-map-status');\n  const safe=(s)=>String(s??'').replace(\/[&<>\"']\/g,c=>({'&':'&amp;','<':'&lt;','>':'&gt;','\"':'&quot;',\"'\":'&#39;'}[c]));\n  const normalize=(s)=>String(s??'').normalize('NFD').replace(\/[\\u0300-\\u036f]\/g,'').toLowerCase();\n  const address=(s)=>[s.address,s.postal+' '+s.locality,s.province,s.country].filter(Boolean).join(', ');\n  const mapsUrl=(s)=>'https:\/\/www.google.com\/maps\/search\/?api=1&query='+encodeURIComponent(address(s));\n  const htmlPin=`<svg class=\"ss-pin-svg\" viewBox=\"0 0 30 40\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" aria-hidden=\"true\"><path d=\"M15 3C8.4 3 3.5 8 3.5 14.7 3.5 22.8 15 35 15 35S26.5 22.8 26.5 14.7C26.5 8 21.6 3 15 3Z\" fill=\"#ffffff\" stroke=\"#f46a16\" stroke-width=\"2.2\"\/><circle cx=\"15\" cy=\"14.8\" r=\"5.5\" fill=\"#f46a16\"\/><\/svg>`;\n  const markerById=new Map();\n  let selectedId=null;\n  let map=null;\n  let mapReady=false;\n\n  function getBounds(data){\n    if(!data.length)return [[-9.5,35.5],[4,44.7]];\n    return [\n      [Math.min(...data.map(s=>s.lng)),Math.min(...data.map(s=>s.lat))],\n      [Math.max(...data.map(s=>s.lng)),Math.max(...data.map(s=>s.lat))]\n    ];\n  }\n  const initialBounds=getBounds(stores);\n  function refreshActiveStyles(){\n    markerById.forEach((marker,id)=>marker.getElement().classList.toggle('is-active',id===selectedId));\n    tbody.querySelectorAll('tr').forEach(row=>{\n      const active=Number(row.dataset.id)===selectedId;\n      row.classList.toggle('ss-selected',active);\n      row.setAttribute('aria-selected',String(active));\n    });\n  }\n  function selectStore(store,scrollToRow){\n    selectedId=store.id;\n    refreshActiveStyles();\n    if(map && markerById.has(store.id)){\n      map.flyTo({center:[store.lng,store.lat],zoom:Math.max(map.getZoom(),12),essential:true,speed:1.5});\n      map.once('moveend',()=>{\n        const marker=markerById.get(store.id);\n        if(marker&&selectedId===store.id){marker.togglePopup();refreshActiveStyles();}\n      });\n    }\n    if(scrollToRow){\n      const row=tbody.querySelector('tr[data-id=\"'+store.id+'\"]');\n      if(row)row.scrollIntoView({behavior:'smooth',block:'nearest'});\n    }\n  }\n  function render(data,fit){\n    count.textContent=data.length+' '+(data.length===1?'punto de venta':'puntos de venta');\n    tbody.replaceChildren();\n    empty.style.display=data.length?'none':'block';\n    const fragment=document.createDocumentFragment();\n    for(const store of data){\n      const row=document.createElement('tr');\n      row.dataset.id=store.id;row.tabIndex=0;row.setAttribute('role','button');\n      row.setAttribute('aria-label','Ver '+store.name+' en el mapa');\n      [store.name,store.postal,store.locality,store.province,store.country].forEach(value=>{\n        const cell=document.createElement('td');cell.textContent=value;row.appendChild(cell);\n      });\n      row.addEventListener('click',()=>selectStore(store,false));\n      row.addEventListener('keydown',event=>{\n        if(event.key==='Enter'||event.key===' '){event.preventDefault();selectStore(store,false);}\n      });\n      fragment.appendChild(row);\n    }\n    tbody.appendChild(fragment);\n    if(map){\n      const visibleIds=new Set(data.map(s=>s.id));\n      markerById.forEach((marker,id)=>{\n        marker.getElement().style.display=visibleIds.has(id)?'':'none';\n        if(!visibleIds.has(id)&&marker.getPopup()?.isOpen())marker.getPopup().remove();\n      });\n      if(fit){\n        if(data.length===1)map.flyTo({center:[data[0].lng,data[0].lat],zoom:11,essential:true});\n        else map.fitBounds(data.length>1?getBounds(data):initialBounds,{\n          padding:{top:38,bottom:38,left:40,right:40},maxZoom:data.length>1?9:7,\n          duration:350,essential:true\n        });\n      }\n    }\n    refreshActiveStyles();\n  }\n  function onSearch(){\n    const term=normalize(input.value.trim());\n    clear.style.display=term?'block':'none';\n    const filtered=stores.filter(store=>normalize([\n      store.name,store.address,store.postal,store.locality,store.province,store.country\n    ].join(' ')).includes(term));\n    if(selectedId&&!filtered.some(store=>store.id===selectedId))selectedId=null;\n    render(filtered,true);\n  }\n  function initMap(){\n    if(!window.maplibregl){status.style.display='block';status.textContent='No se ha podido cargar el componente del mapa.';return;}\n    try{\n      map=new maplibregl.Map({\n        container:root.querySelector('#ss-map'),\n        style:'https:\/\/tiles.openfreemap.org\/styles\/liberty',\n        center:[-3.8,40.1],zoom:5,\n        scrollZoom:true,dragRotate:false,touchPitch:false,\n        attributionControl:false\n      });\n      map.addControl(new maplibregl.NavigationControl({showCompass:false}),'top-left');\n      \/\/ Mantener la atribuci\u00f3n del proveedor y de los datos visible en la web.\n      map.addControl(new maplibregl.AttributionControl({\n        compact:false,\n        customAttribution:'<a href=\"https:\/\/openfreemap.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">OpenFreeMap<\/a> \u00b7 <a href=\"https:\/\/openmaptiles.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u00a9 OpenMapTiles<\/a> \u00b7 Datos de <a href=\"https:\/\/www.openstreetmap.org\/copyright\" target=\"_blank\" rel=\"noopener noreferrer\">OpenStreetMap<\/a>'\n      }),'bottom-right');\n      for(const store of stores){\n        const element=document.createElement('button');\n        element.type='button';element.className='ss-pin';\n        element.title=store.name;element.setAttribute('aria-label','Mostrar '+store.name);\n        element.innerHTML=htmlPin;\n        const popup=new maplibregl.Popup({offset:26,closeButton:true,maxWidth:'290px'})\n          .setHTML('<div class=\"ss-popup\"><strong>'+safe(store.name)+'<\/strong>'+safe(address(store))+'<a target=\"_blank\" rel=\"noopener noreferrer\" href=\"'+mapsUrl(store)+'\">Ver direcci\u00f3n en Google Maps \u2197<\/a><\/div>');\n        const marker=new maplibregl.Marker({element,anchor:'bottom'})\n          .setLngLat([store.lng,store.lat]).setPopup(popup).addTo(map);\n        element.addEventListener('click',()=>{\n          selectedId=store.id;refreshActiveStyles();\n          const row=tbody.querySelector('tr[data-id=\"'+store.id+'\"]');\n          if(row)row.scrollIntoView({behavior:'smooth',block:'nearest'});\n        });\n        markerById.set(store.id,marker);\n      }\n      map.fitBounds(initialBounds,{\n        padding:{top:38,bottom:38,left:40,right:40},maxZoom:7,duration:0\n      });\n      render(stores,false);\n      map.on('load',()=>{mapReady=true;status.style.display='none';});\n      map.on('error',error=>{\n        \/\/ Solo indicar un fallo general si el estilo base no ha llegado a cargar.\n        if(!mapReady){\n          status.style.display='block';\n          status.textContent='No se pudo cargar el mapa. Comprueba tu conexi\u00f3n o los bloqueos del navegador.';\n        }\n        console.warn('SUN STOP: error de cartograf\u00eda',error.error||error);\n      });\n      \/\/ Reajustar el lienzo al abrirse dentro de Elementor\/WordPress.\n      setTimeout(()=>map.resize(),350);\n    }catch(error){\n      status.style.display='block';\n      status.textContent='No se pudo iniciar el mapa. Comprueba la conexi\u00f3n a Internet.';\n      console.error('SUN STOP mapa:',error);\n    }\n  }\n  \/\/ Carga resistente a bloqueos puntuales de una CDN en WordPress\/Elementor.\n  \/\/ Si el proveedor principal falla, se prueban rutas alternativas verificables.\n  const maplibreVersion='5.24.0';\n  const providers=[\n    'https:\/\/unpkg.com\/maplibre-gl@'+maplibreVersion+'\/dist\/',\n    'https:\/\/cdn.jsdelivr.net\/npm\/maplibre-gl@'+maplibreVersion+'\/dist\/',\n    'https:\/\/unpkg.com\/maplibre-gl@4.7.1\/dist\/',\n    'https:\/\/cdn.jsdelivr.net\/npm\/maplibre-gl@4.7.1\/dist\/'\n  ];\n  function loadAsset(url,isScript){\n    return new Promise(resolve=>{\n      const el=document.createElement(isScript?'script':'link');\n      let done=false;\n      const finish=(ok)=>{\n        if(done)return;\n        done=true;\n        clearTimeout(timeout);\n        el.onload=null;el.onerror=null;\n        if(!ok)el.remove();\n        resolve(ok);\n      };\n      const timeout=setTimeout(()=>finish(false),14000);\n      if(isScript){\n        el.src=url;\n        el.async=true;\n      }else{\n        el.href=url;\n        el.rel='stylesheet';\n      }\n      el.onload=()=>finish(isScript?Boolean(window.maplibregl?.Map):true);\n      el.onerror=()=>finish(false);\n      document.head.appendChild(el);\n    });\n  }\n  async function loadWithFallback(filename,isScript){\n    if(isScript&&window.maplibregl?.Map)return true;\n    for(const base of providers){\n      if(await loadAsset(base+filename,isScript))return true;\n    }\n    return false;\n  }\n  async function startMap(){\n    status.textContent='Cargando mapa\u2026';\n    status.style.display='block';\n    \/\/ Se carga primero el CSS para que marcadores y controles mantengan su posici\u00f3n.\n    const [cssLoaded,jsLoaded]=await Promise.all([\n      loadWithFallback('maplibre-gl.css',false),\n      loadWithFallback('maplibre-gl.js',true)\n    ]);\n    if(!jsLoaded){\n      status.textContent='No se puede cargar el mapa desde los proveedores externos. Revisa si WordPress, el navegador o la red bloquean unpkg.com y cdn.jsdelivr.net.';\n      console.warn('SUN STOP: MapLibre no disponible (CDN).');\n      return;\n    }\n    if(!cssLoaded) console.warn('SUN STOP: no se pudo descargar la hoja de estilos de MapLibre.');\n    status.style.display='none';\n    initMap();\n  }\n  input.addEventListener('input',onSearch);\n  clear.addEventListener('click',()=>{input.value='';input.focus();onSearch();});\n  render(stores,false);\n  startMap();\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\n<\/div>\n\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>Encuentra tu punto de venta SUN STOP m\u00e1s cercano. Si no localizas un punto cercano a ti, ponte en contacto con nosotros y uno de nuestros asistentes te atender\u00e1. Puntos de venta SUN STOP No se ha podido cargar el mapa. Comprueba tu conexi\u00f3n a Internet. \u00d7 Cargando puntos de venta&#8230; Tienda CP Municipio Provincia [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_eb_attr":"","_templately_pack_id":"","_templately_imported_at":"","_templately_source":"","_templately_import_session_id":"","footnotes":""},"class_list":["post-4726","page","type-page","status-publish","hentry"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/sun-stop.es\/index.php?rest_route=\/wp\/v2\/pages\/4726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sun-stop.es\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sun-stop.es\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sun-stop.es\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sun-stop.es\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4726"}],"version-history":[{"count":0,"href":"https:\/\/sun-stop.es\/index.php?rest_route=\/wp\/v2\/pages\/4726\/revisions"}],"wp:attachment":[{"href":"https:\/\/sun-stop.es\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}