PageSourceSearch

https://www.keruve.com/about-vision-localization-systems/

html keruve.com collected 2026-10-04 12:19:23 UTC 47,506 bytes, 1,547 lines download raw bytes

1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="https://www.w3.org/1999/xhtml" lang="en">
3<head>
4
5 
5<script>
6window.KeruveCookieConsentConfig = {
7    language: 'auto',
8    privacyUrls: {
9        es: '/privacy.php',
10        fr: '/privacy.php',
11        de: '/privacy.php',
12        en: '/privacy.php',
13    },
14    google: {
15        adsId: 'AW-1055398391',
16        analyticsId: 'G-5H653W1Z1H',
17        gtmId: 'GTM-KML7V567',
18        loadTags: false
19    },
20    enhancedConversions: {
21        enabled: true,
22        defaultPhoneCountryCode: 'auto'
23    },
24    adroll: {
25        enabled: false
26    }
27};
28</script>
vendor: 1 bytes, line 28
28
29<script src="/assets/keruve-cookie-consent.js"></script>
29
30
31<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 31-32
31
32<script async src="https://www.googletagmanager.com/gtag/js?id=
32AW-1055398391
vendor: 12 bytes, line 32
32"></script>
33<script>
34  
vendor: 134 bytes, lines 34-38
34window.dataLayer = window.dataLayer || [];
35  function gtag(){dataLayer.push(arguments);}
36  gtag('js', new Date());
37
38  gtag('config', '
38AW-1055398391
vendor: 4 bytes, line 38
38');
39</script>
39
40
41<!-- Google Tag Manager -->
42<script>
vendor: 343 bytes, lines 42-46
42(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
43    new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
44    j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
45    'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
46    })(window,document,'script','dataLayer','
46GTM-KML7V567
vendor: 3 bytes, line 46
46');
46</script>
46
47    <!-- End Google Tag Manager -->
48
49<!-- Google tag (gtag.js) -->
vendor: 64 bytes, lines 49-50
49
50<script async src="https://www.googletagmanager.com/gtag/js?id=
50G-5H653W1Z1H
vendor: 12 bytes, line 50
50"></script>
51<script>
52  
vendor: 134 bytes, lines 52-56
52window.dataLayer = window.dataLayer || [];
53  function gtag(){dataLayer.push(arguments);}
54  gtag('js', new Date());
55
56  gtag('config', '
56G-5H653W1Z1H
vendor: 4 bytes, line 56
56');
57</script>
57
58
59<script type="text/javascript">
60  window._mfq = window._mfq || [];
61  (function() {
62    var mf = document.createElement("script");
63    mf.type = "text/javascript"; mf.defer = true;
64    mf.src = "//cdn.mouseflow.com/projects/9b9f8e3d-b3f1-43d5-8b8e-17f62875260c.js";
65    document.getElementsByTagName("head")[0].appendChild(mf);
66  })();
67</script>
67
68
69
70<!--meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/-->
71<meta charset="UTF-8">
72<meta http-equiv="imagetoolbar" content="no" />
73<meta name="keywords" content="Vision Localization Systems" />
74<meta name="robots" content="all" />
75<!--meta http-equiv="refresh" content="1800"/-->  <!--DESACTIVADO EL 21 DE JULIO DE 2016-->
76<meta http-equiv="Cache-Control" content="no-cache"/>
77<meta http-equiv="Content-Language" content="en" />
78<meta name="google-site-verification" content="vT6IjZKGS4psIxEKG4yLU4QMWKnQcCkoqPIocdf5zbg" />
79
80<title>Keruve   Vision Localization Systems </title>
81
82<meta property="og:title" content="Keruve Family direct locator" />
83    <meta property="og:type" content="website" />
84    <meta property="og:image" content="/_templates/html/images/en/people_keruve.png" />
85    <meta property="og:url" content="/" />
86    <meta property="og:site_name" content="keruve" />
87
88
89<!--link href="/_templates/html/estilo/estructura-10y.css" rel="stylesheet" type="text/css"/>
90<link href="/_templates/html/estilo/reserve.css" rel="stylesheet" type="text/css"/>
91<link href="/_templates/html/estilo/funcionamiento.css" rel="stylesheet" type="text/css"/>
92<link href="/_templates/html/estilo/confianza.css" rel="stylesheet" type="text/css"/>
93<link href="/_templates/html/estilo/comprar.css" rel="stylesheet" type="text/css"/>
94<link href="/_templates/html/estilo/cookies.css" rel="stylesheet" type="text/css"/-->
95
96<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
97
98<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
99<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz" crossorigin="anonymous"></script>
99
100<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/font/bootstrap-icons.min.css">
101
102
103<link href="https://www.keruve.com/_templates/html/estilo/estilo2024.css" rel="stylesheet" type="text/css"/>
104
105
106
107
108
109
110
111
112
113    
113<script src="/js/jquery-2.1.0.min.js"></script>
113
114	
114<script type="text/javascript" src="/fancybox/jquery.mousewheel-3.0.2.pack.js"></script>
114
115	
115<script type="text/javascript" src="/fancybox/jquery.fancybox-1.3.1.js"></script>
115
116	<link rel="stylesheet" type="text/css" href="/fancybox/jquery.fancybox-1.3.1.css" media="screen" />
117
118	
119
120
121
122
123
124    
124<script src="/js/exitpopup.js" type="text/javascript" onload="
125  const opt = digitalruby_exitpopup_options;
126  opt.element_id = 'digitalruby_exitpopup_div'; // required
127  opt.background_element_id = 'digitalruby_exitpopup_div_background'; // optional
128  opt.top_only = false; // default false, whether popup shows only through top exit or all exits
129  opt.click_outside_to_close = true; // default true, whether clicking outside the popup will close it
130  opt.delay = 3000; // delay before allowing popup to show, default is 3000 milliseconds
131  opt.path_regex = ''; // optional, specify a regex to filter the path on, if no match, exit popup will not show
132  opt.will_show = function() // optional, specify a function to execute before the popup shows
133  {
134    console.log('popup showing');
135	// return false to not show the popup
136  };
137" async defer></script>
137
138
139<style type="text/css">
140
141/* it's recommended that your html fill the window to properly detect when the mouse leaves */
142html
143{
144	min-width: 100%;
145	min-height: 100%;
146}
147
148html,* {  box-sizing: border-box; }
149body { }
150.lead { font-size: 1.5rem; font-weight: 300; }
151/*.container { margin: 150px auto; max-width: 960px; }*/
152.btn { padding: 0.75rem; border: 0; border-radius: 3px; background-color: #007691; color: #fff; cursor: pointer; font-weight: bold; }
153
154/* css for the popup, important notes are display of none and fixed position along with a high z index and centering */
155#digitalruby_exitpopup_div {
156    border-radius: 15px;
157  display: none;
158  position: fixed;
159  z-index: 999;
160  padding: 2rem;
161  background-color: #FFF;
162  color: #000;
163  left: 50%;
164  top: 50%;
165  transform: translate(-50%, -50%);
166  max-width: 600px;
167  max-height: 500px;
168  width: 75%;
169  height: 75%;
170  filter: drop-shadow(0px 0px 10px black);
171}
172
173/* css for the popup background, also display of none and fixed position along with filling the viewport */
174#digitalruby_exitpopup_div_background
175{
176  display: none;
177  position: fixed;
178  background-color: rgba(20, 20, 20, 0.5);
179  z-index: 0;
180  transform: translate(0%, 0%);
181  left: 0;
182  top: 0;
183  width: 100%;
184  height: 100%;
185}
186
187</style>
188
189
190
191
192
193
194
195
196
197
198
199
200<script type="text/javascript">
201function controlcookies() {
202         // si variable no existe se crea (al clicar en Aceptar)
203    localStorage.controlcookie = (localStorage.controlcookie || 0);
204
205    localStorage.controlcookie++; // incrementamos cuenta de la cookie
206    cookie1.style.display='none'; // Esconde la pol?tica de cookies
207}
208</script>
208
209
210<script language="javascript" type="text/javascript">
211
212
213$(document).ready(function() {
214	/*
215	*   Examples - images
216	*/
217	$("a[rel=example_group]").fancybox({
218		'transitionIn'		: 'none',
219		'transitionOut'		: 'none',
220		'titlePosition' 	: 'over',
221
222	});
223
224});
225
226
227  function checkform(form)
228    {
229        var NoError = true;
230        String.prototype.trim= function() {//Agrega la funci�n trim al objeto String
231    	   return this.replace(/(^\s*)|(\s*$)/g,""); //elimina espacios a izquierda y derecha
232    	   }
233        var nombre = "";
234        if (form.nombre!=null){
235            nombre = form.nombre.value;
236            nombre = nombre.trim();
237            if (nombre == "" || nombre == "Name" || nombre == "Nombre" || nombre=="Naam" || nombre=="Nome" || nombre=="Nom") {
238        		//document.getElementById("nombre").style.border="solid 1px  red";
239                form.nombre.style.border="solid 1px  red";
240        		NoError = false;
241        	}
242        }
243        if (form.email!=null){
244            var final_mail = form.email.value;
245            final_mail = final_mail.toLowerCase();
246        	//MAL var expresion=/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/;
247            if ( final_mail== ""){ // || (expresion.exec(final_mail))==null) {
248                //document.getElementById("email").style.border="solid 1px  red";
249                form.email.style.border="solid 1px  red";
250        		NoError = false;
251
252        	}
253         }
254         if (form.condiciones!=null){
255            var condiciones = form.condiciones.checked;
256            if (!condiciones) {
257                NoError = false;
258        	}
259
260         }
261
262    	return NoError;
263    }
264mapaConfianza1 = new Image(360,250)
265mapaConfianza1.src = "/_templates/html/images/spain_map_keruve.png"
266mapaConfianza2 = new Image(360,250)
267mapaConfianza2.src = "/_templates/html/images/worldmap_keruve.png"
268
269pack = new Image(360,250)
270pack.src = "/_templates/html/images/packaging_keruve.png"
271pack1 = new Image(360,250)
272pack1.src = "/_templates/html/images/packaging_keruve2.png"
273
274function restartValueInput(input,text){
275    if(input.value=='')input.value = text;
276}
277
278function preCarga() {
279    if (!document.images){
280        return;
281    }
282
283    var ar = new Array();
284    ar[0] = new Image();
285    ar[0].src = "/_templates/html/images/reserve_normal.png";
286    ar[1] = new Image();
287    ar[1].src = "/_templates/html/images/reserve_over.png";
288    ar[2] = new Image();
289    ar[2].src = "/_templates/html/images/button_more_normal.png";
290    ar[3] = new Image();
291    ar[3].src = "/_templates/html/images/button_more_over.png";
292    ar[4] = new Image();
293    ar[4].src = "/_templates/html/images/download_info_normal.png";
294    ar[5] = new Image();
295    ar[5].src = "/_templates/html/images/download_info_over.png";
296}
297function color(n)    {
298	return "0123456789ABCDEF".charAt(parseInt(n / 16)) + "0123456789ABCDEF".charAt(parseInt(n % 16));
299}
300function changeBandera(){
301    var selectmenu=document.getElementById('idiomas');
302    var chosenoption=selectmenu.options[selectmenu.selectedIndex];
303    if (chosenoption.value=='es')
304        document.images['bandera'].src = '/_templates/html/images/flag_es_normal.png';
305    else if (chosenoption.value=='fr')
306        document.images['bandera'].src = '/_templates/html/images/flag_fr_normal.png';
307    else if(chosenoption.value=='en')
308        document.images['bandera'].src = '/_templates/html/images/flag_en_normal.png';
309    else if(chosenoption.value=='cat')
310        document.images['bandera'].src = '/_templates/html/images/flag_cat_normal.png';
311    else if(chosenoption.value=='de')
312        document.images['bandera'].src = '/_templates/html/images/flag_de_normal.png';
313    else if(chosenoption.value=='uk')
314        document.images['bandera'].src = '/_templates/html/images/flag_uk_normal.png';
315    else if(chosenoption.value=='it')
316        document.images['bandera'].src = '/_templates/html/images/flag_it_normal.png';
317    else if(chosenoption.value=='nl')
318        document.images['bandera'].src = '/_templates/html/images/flag_nl_normal.png';
319    else if(chosenoption.value=='pt')
320        document.images['bandera'].src = '/_templates/html/images/flag_pt_normal.png';
321    else if(chosenoption.value=='br')
322        document.images['bandera'].src = '/_templates/html/images/flag_br_normal.png';
323    else if(chosenoption.value=='be')
324        document.images['bandera'].src = '/_templates/html/images/flag_be_normal.png';
325
326    var urlFinal ="https://www.keruve"
327            if (chosenoption.value=='es')
328            urlFinal = urlFinal+".es/?lg=es";
329        else if (chosenoption.value=='fr')
330            urlFinal = urlFinal+".fr/?lg=fr";
331        else if(chosenoption.value=='en')
332            urlFinal = urlFinal+".com/?lg=en";
333        else if(chosenoption.value=='cat')
334            urlFinal = urlFinal+".com/?lg=cat";
335        else if(chosenoption.value=='de')
336            urlFinal = urlFinal+".de/?lg=de";
337        else if(chosenoption.value=='uk')
338            urlFinal = urlFinal+".com/?lg=en";
339        else if(chosenoption.value=='it')
340            urlFinal = urlFinal+".it/?lg=it";
341        else if(chosenoption.value=='nl')
342            urlFinal = urlFinal+".com/?lg=nl";
343        else if(chosenoption.value=='pt')
344            urlFinal = urlFinal+".com/?lg=pt";
345        else if(chosenoption.value=='br')
346            urlFinal = urlFinal+".com/?lg=pt";
347        else if(chosenoption.value=='be')
348            urlFinal = urlFinal+".com/?lg=fr";
349        
350    document.location.href=urlFinal;
351}
352function changeImg(cImg,ref) {
353	document.images[cImg].src = ref.src
354}
355function changeImgConfianza(ref) {
356	document.images['confianza'].src = ref.src
357}
358function changeImgPackaging(ref) {
359	document.images['packaging'].src = ref.src
360}
361function changeImgGallery(ref) {
362	document.images['gallery'].src = ref.src
363}
364
365function changeImg2(cImg,src){
366	document.images[cImg].src = src
367}
368
369
370
371</script>
371
372
373
374
375
376
377 <style>
378        body {
379            margin: 0;
380            font-family: "Inter", "Helvetica Neue", "Helvetica" , "Arial" , "sans-serif";
381            background-image: url('URL_DE_TU_IMAGEN_DE_FONDO');
382            background-size: cover;
383            background-attachment: fixed;
384            font-size: 1rem;
385            line-height: 1.47059;
386            font-weight: 400;
387            letter-spacing: -0.022em;
388            color: #1d1d1f;
389            font-style: normal;
390            background-color: white;
391            -moz-font-feature-settings: "kern";
392            -webkit-font-smoothing: antialiased;
393            -moz-osx-font-smoothing: grayscale;
394        }
395
396        p {
397            display: block;
398            margin-block-start: 1em;
399            margin-block-end: 1em;
400            margin-inline-start: 0px;
401            margin-inline-end: 0px;
402            unicode-bidi: isolate;
403        }
404
405        /* --- Encabezados --- */
406    h1, h2, h3, h4, h5, h6 {
407        font-weight: 600; /* Semibold */
408        line-height: 1.1;
409        margin-top: 1em;
410        margin-bottom: 0.5em;
411        color: #1d1d1f;  /*Usan el mismo color que el texto principal*/
412    }
413
414    h1 { font-size: 2.5rem; } /* 40px aprox. */
415    h2 { font-size: 2rem; }   /* 32px aprox. */
416    h3 { font-size: 1.5rem; }  /* 24px aprox. */
417    h4 { font-size: 1.25rem; } /* 20px aprox. */
418    h5 { font-size: 1rem; }    /* 16px aprox. */
419    h6 { font-size: 0.875rem; }/* 14px aprox. */
420
421    .titulospag { font-size: 2.5rem; width:100%; margin-top:20px; margin-bottom:10px; text-align:center;} /* h1 40px aprox. */
422    .mejor{ font-size: 2rem; margin-top:20px; margin-bottom:10px;}   /*h2 32px aprox. */
423
424    /* --- Párrafos (Texto) --- */
425    p {
426        font-size: 1rem; /* 17px, ajustado a 16px para mayor compatibilidad */
427        margin-bottom: 1em;
428        line-height: 1.5; /* Buen interlineado */
429    }
430    .note, .small, .legal{
431    /*color:#6e6e73;*/
432    color:#000;
433    font-size: 0.7rem;
434    }
435
436    /* --- Listas (li) --- */
437    ul, ol {
438        margin-top: 0;
439        margin-bottom: 1em;
440        padding-left: 20px; /* Sangría */
441    }
442
443    li {
444        font-size: 1rem;
445        line-height: 1.4;
446        margin-bottom: 0.5em;
447    }
448
449    /* --- Enlaces (a) --- */
450    a {
451        color:rgb(0, 98, 120); /* Azul de Apple */
452        text-decoration: none; /* Quita el subrayado por defecto */
453        transition: color 0.2s ease; /* Transición suave */
454    }
455
456    a:hover, a:focus {
457        text-decoration: underline; /* Subrayado al hacer hover o focus */
458        color:rgb(0, 79, 97); /* Un azul más oscuro al hacer hover */
459    }
460
461    a:focus { /* Estilos de enfoque para accesibilidad */
462        outline: 2px solidrgb(0, 81, 99); /* Borde punteado */
463        outline-offset: 2px;
464    }
465    a.more {
466        display: inline-block;
467        margin-top: 10px;
468        font-weight: 500;
469    }
470
471    /* --- Inputs --- */
472    input,
473    select,
474    textarea
475    {
476        font-size: 1rem;
477        padding: 6px 8px;
478        border: 1px solid #d2d2d7;
479        border-radius:6px;
480        background-color: #fff;
481        color: #333;
482        width: 100%; /* Ocupa todo el ancho disponible */
483        box-sizing: border-box; /* Incluye padding y borde en el ancho */
484        margin-bottom: 6px;
485        transition: border-color 0.2s ease;
486        outline: none; /* Quita el outline por defecto */
487    }
488
489    input[type="checkbox"]
490    {
491        width: auto;
492        margin-right: 3px;
493    }
494
495    input:focus,
496    select:focus,
497    textarea:focus
498    {
499        border-color: #007A96; /* Azul al enfocar */
500        outline: none; /* Quita el outline por defecto */
501        box-shadow: 0 0 0 2px rgba(0, 122, 255, 0.25); /* Sombra sutil */
502    }
503    
504        input[type="button"], input[type="button"] {
505            background-color: #007A96;
506            color: white;
507            padding: 12px 20px;
508            border: none;
509            border-radius: 6px;
510            cursor: pointer;
511            font-size: 16px;
512            font-family: Inter, Helvetica Neue, Helvetica, Arial, sans-serif;
513            transition: background-color 0.3s ease;
514            width: auto;
515            margin-bottom: 10px;
516        }
517
518        input[type="button"]:hover, input[type="button"]:hover {
519            background-color: #005662;
520        }
521
522        
523
524    /* --- Botones --- */
525    .button {
526        display: inline-block;
527        padding: 10px 20px;
528        font-size: 1rem;
529        font-weight: 500;
530        text-align: center;
531        text-decoration: none;
532        border-radius: 4px;
533        cursor: pointer;
534        transition: background-color 0.2s ease, color 0.2s ease;
535        border: none; /* Generalmente sin borde */
536        background-color: #007A96; /* Azul de Apple */
537        color: #fff;
538        box-sizing: border-box;
539    }
540
541    .button:hover, .button:focus {
542        background-color:rgb(0, 87, 107); /* Un azul más oscuro al hacer hover */
543    }
544    .button-secondary {
545        background-color: #fff;
546        color: #007A96;
547        border: 1px solid #007A96;
548    }
549
550    .button-secondary:hover, .button-secondary:focus {
551        background-color: #f5f5f7; /* Gris claro al hacer hover */
552        color:rgb(0, 85, 104);
553    }
554    .button-container {
555            display: flex;
556            justify-content: space-around; /* Distribuye los botones uniformemente */
557            flex-wrap: wrap; /* Permite que los botones se envuelvan a la siguiente línea si no hay espacio */
558            gap: 10px; /* Espacio entre botones */
559            margin-bottom: 20px;
560        }
561
562        .menu-bar {
563            position: fixed;
564            top: 0;
565            left: 0;
566            width: 100%;
567            height: 50px;
568            background-color: rgba(255, 255, 255, 0.8);
569            /*background-color: rgba(248, 248, 248, 0.8);*/
570            backdrop-filter: blur(20px);
571            padding: 10px 0;
572            z-index: 100;
573            /*border-bottom: 1px solid rgba(255, 255, 255, 0.638);*/
574            /*border-bottom: 1px solid rgba(75, 75, 75, 0.06); /* Añade el borde inferior de 1px y color gris */
575            display: flex; /* Convierte el menú en un contenedor flexbox */
576            align-items: center; /* Centra verticalmente los elementos del menú */
577        }
578
579        .menu-container {
580            width: 1040px;
581            margin: 0 auto;
582            display: flex;
583            justify-content: flex-start; /* Alinea los elementos al inicio */
584            align-items: center; /* Centra verticalmente los elementos dentro del contenedor del menú */
585            height: 100%;
586        }
587
588        .logo-container {
589            position: relative; /* Cambiado a relative */
590            top: 0; /* Reseteamos top y left para que se posicione con flexbox */
591            left: 0;
592            z-index: 101;
593            margin-right: auto;
593 /* Empuja el logo a la izquierda */
594        }
595
596        .menu-items {
597            flex: 1;
598            text-align: right; /* Alinea el texto a la derecha */
599            padding: 0 20px;
600            height: 100%;
601            display: flex;
602            align-items: center;
603            justify-content: flex-end; /* Alinea los items a la derecha */
604        }
605
606    
607
608        .menu-bar ul {
609            list-style-type: none;
610            margin: 0;
611            padding: 0;
612            white-space: nowrap;
613        }
614
615        .menu-bar li {
616            display: inline;
617            margin: 0 10px;
618        }
619
620        .menu-bar a {
621            text-decoration: none;
622            color: #333;
623            font-family: Inter, Helvetica Neue, Helvetica, Arial, sans-serif;
624            font-size: 12px;
625        }
626
627
628
629
630        .content {
631            padding: 50px 20px;
632            text-align: center;
633            color: black;
634            display: flex; /* Añadimos flexbox al contenedor del contenido */
635            justify-content: space-between; /* Espacio entre las columnas */
636            align-items: stretch; /* Para que las columnas tengan la misma altura */
637            max-width: 1040px; /* Ancho del contenedor del contenido */
638            margin: 0 auto; /* Centrar el contenedor */
639        }
640
641        .text-content {
642            width: 100%; /* Ancho de la columna izquierda */
643            margin-right: 0px;
644            text-align: left;
645            display: flex; 
646            flex-wrap: wrap;
647        }
648
649      
650
651        .right-column {
652            width: 300px;
653            text-align: left;
654            position: relative; /* Establecer el contexto de posicionamiento para el div flotante */
655            /*background-color: rgba(255, 255, 255, 0.638);*/
656            background-color: rgba(255, 255, 255, 0.5);
657            /*backdrop-filter: blur(20px);*/
658            /*backdrop-filter: brightness(100%);*/
659            /*backdrop-filter: opacity(5%);*/
660            backdrop-filter: opacity(5%) brightness(100%);
661            /*border-left: 1px solid rgba(255, 255, 255, 0.46); */
662        }
663
664        .right-float {
665            position: sticky; /* Habilitar el posicionamiento sticky */
666            top: 50px; /* Ajustar la posición vertical según sea necesario */
667            /* Asegúrate de que este valor no sea menor que la altura del menú-bar */
668            background-color: rgba(255, 255, 255, 0); /* Para que el contenido no se mezcle con el fondo */
669            padding: 0px;
670            z-index: 10; /* Asegurar que el contenido flotante esté por encima de otros elementos */
671            margin-left:20px;
672            margin-right:20px;
673            color:#000;
674            
675            
676        }
677
678
679
680
681        
682.headerFunc, .parrafoFunc{
683margin-top: 1em;
684margin-bottom: 1em;
685width:100%;
686/*float:left;*/
687/*text-align:justify;*/
688/*padding-left:20px;*/
689font-family: Inter, Helvetica Neue, Helvetica, Arial, sans-serif;
690/*font-size:11px;*/
691color:black;
692font-size: 1rem; /* 17px, ajustado a 16px para mayor compatibilidad */
693margin-bottom: 1em;
694line-height: 1.5; 
695}
696
697    </style>
698
699   <style>
700    .custom-hero {
701      
702      background-size: auto 100%; /* Redimensiona según la altura */
703      background-position: right center; /* Alinea a la derecha */
704      height: 500px;
705      position: relative;
706      color: white;
707    }
708
709
710
711    .hero-content {
712      position: relative;
713      z-index: 1;
714      height: 100%;
715      display: flex;
716      align-items: center;
717      padding-left: 2rem;
718      max-width: 60%;
719    }
720
721    .hero-content h1 {
722      font-size: 2.5rem;
723      font-weight: bold;
724      color: white;
725    }
726
727    .hero-content p {
728      font-size: 1.2rem;
729      color: white;
730    }
731
732
733        .hero-home {
734      background-image: url('https://www.keruve.com/images/home-image4.jpg');
735      background-repeat: no-repeat;
736      background-size: auto 500px; /* Redimensiona según la altura */
737      background-position: right 50px; /* Alinea a la derecha */
738      /*height: 1000px;*/
739      position: relative;
740      
741    }
742
743    .hero-home::before {
744      content: "";
745      position: absolute;
746      top: 50;
747      left: 0;
748      width: 100%;
749      height: 500px;
750      background: linear-gradient(to right, rgba(0, 0, 0, 0.6) 0%, rgba(0, 0, 0, 0) 70%); /* degradado para mejorar legibilidad */
751      
752      z-index: 0;
753    }
754        
755  </style>
756
757
758
759
760
761<!-- SCRIPTS RECAPTCHA -->
vendor: 61 bytes, lines 761-762
761
762<script src="https://www.google.com/recaptcha/api.js?render=
7626LcnHyQrAAAAAMrYk-LkPhbkWPVEJ6RB014Hm_3z
vendor: 13 bytes, lines 762-763
762"></script>
763
764<script>
765
766function onSubmit(form) {
767  // Realizar la validación de los campos requeridos
768  const requiredFields = form.querySelectorAll('[required]');
769  let isValid = true;
770
771  requiredFields.forEach(field => {
772    if (!field.value.trim()) {
773      isValid = false;
774      // Aquí puedes añadir lógica para mostrar un mensaje de error al usuario
775      alert(`El campo "${field.placeholder || field.name}" es requerido.`);
776      field.focus(); // Opcional: enfocar el campo inválido
777      return false; // Detener el bucle forEach
778    }
779  });
780
781  if (!isValid) {
782    return; // Detener la ejecución de onSubmit si algún campo no es válido
783  }
784
785  // Si todos los campos requeridos están llenos, proceder con reCAPTCHA
786  grecaptcha.ready(function() {
787    grecaptcha.execute('6LcnHyQrAAAAAMrYk-LkPhbkWPVEJ6RB014Hm_3z', { action: 'submit' }).then(function(token) {
788      form.querySelector("#recaptchaResponse").value = token;
789      form.submit();
790    });
791  });
792}
793
794
795
796</script>
796
797
798
799</head>
800
801<!--<body onload="preCarga();_googWcmGet('number', googleNumber);" style="font-family: Verdana;font-size:12px;" >-->
802<body onload="preCarga();"  >
803
804<!-- Google Tag Manager (noscript) -->
vendor: 68 bytes, lines 804-805
804
805<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
805GTM-KML7V567
vendor: 83 bytes, lines 805-806
805"
806height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
807<!-- End Google Tag Manager (noscript) -->
808
809
810<script type="text/javascript">
811if (localStorage.controlcookie>0){
812cookie1.style.display='none';
813}
814</script>
814
815
816
817
818<div style="visibility:hidden;position:absolute;left:-10;">
819	<!-- IMPORTANTE: Esta imagen debe ser la primera despues de BODY -->
820	<img src="/_templates/html/images/keruve_icon.jpg">
821</div>
822
823
824
825
826<!-- ################   MENU SUPERIOR  ######################-->
827    
828    <div class="menu-bar">
829        <div class="menu-container">
830            <div class="logo-container">
831                <img src="https://www.keruve.com/_images/keruve-18-years.png" height="40" alt="Logotipo">
832            </div>
833            <div class="menu-items">
834                <ul id="navi">
835		<li>
836			<a class="navies"
837			href="/">Home</a>
838		</li>
839		<li>
840			<a class="navies"
841			href="/help-alzheimer/">It helps you</a>
842		</li>
843		<li>
844			<a class="navies"
845			href="/best-personal-locator/">Why Keruve?</a>
846		</li>
847		<li>
848			<a class="navies"
849			href="/testimonials-personal-tracker/">Testimonials</a>
850		</li>
851		<li>
852			<a class="navies"
853			href="/images-locator/">Gallery</a>
854		</li>
855		<li>
856			<a class="navies"
857			href="/buy-gps-tracking/buy.php">Buy</a>
858		</li>
859		<li>
860			<a class="naviespress" href="/about-vision-localization-systems/">About Us</a>
861		</li>
862	</ul>
863            </div>
864        </div>
865    </div>
866
867<!-- ################   FIN MENU SUPERIOR  ######################-->
868                                                                            
869
870
871
872<!-- ################  CONTENIDO Y MENU LATERAL  ######################-->
873
874
875
876    <div class="content " >
877        <div class="text-content">
878
879
880
881<div class='container'>
882<h1>About us</h1>
883</div>
884<div class='container'>
885<div class='row'>
886<div class='col-12'>
887
888<img src='/_templates/html/images/en/vision_logo.jpg'  style='float:right'>
889	<p>Vision Localization Systems is a technology company that focuses on the research, design and commercialisation of locators for people with a high risk of getting lost.</p>
890
891<p>For this reason, in its first stage in 2004, it focused on the development of Keruve, the Direct Family Locator especially designed for people with Alzheimer's.</p>
892
893<p>Our only goal is to make life easier for families living with a member affected by Alzheimer's disease. We have clients in more than twenty countries both individuals and corporate clients (Alzheimer Associations, elderly care nurseries, etc). Throughout the years, we have helped thousands of families improve their quality of life and, additionally, worked with the principal alzheimer's disease associations in many countries in order to evolutionize our product development.</p>
894
895<p>Vision Localization Systems develops its own technology based on continuous research of its customers needs and the state of the art. The innovations that differentiate its products worldwide are protected with international patents which ensure our privileged position in the market. As technology advances, new possibilities are created that can provide newer and better solutions to everyday problems. Vision Localization Systems has detected the need and utiliy of localization technology for many years now and will continue to be at the head of innovation in this sector.</p>
896
897</div>
898</div>
899</div>
900
901<div class="container"><br><br><a href="/pre_download.php"><button>Download brochure</button></a></div>
902
903        </div>
904        <div class="right-column">
905        
906            <div class="right-float">
907
908
909
910                
911
912                
913
914
915                <!--form method="POST" action="/contact_us.php">
916                    <input type="text" id="nombre" name="nombre" placeholder="Nombre">
917                    <input type="email" id="email" name="email" placeholder="Email">
918                    <input type="tel" id="telefono" name="telefono" placeholder="Tel&eacute;fono">
919                    <textarea id="comentarios" name="comentarios" placeholder="Comentarios"></textarea>
920                    <input type="button" value="Enviar">
921                </form-->
922
923                
924                
925<!--button class="open-popup-button btn-bf-anim" data-popup-id="popup1">
926    <span class="bf-text-1">Black Friday</span>
927    <span class="bf-text-2">25% Coupon</span>
928</button>
929<br-->
930<h4>Need advice?</h4>
931
932<button id="whatsapp-button" class="whatsapp-button-small">
933<img src="/_images/24px-WhatsApp.svg.png" width="24px"  alt="WhatsApp Icon">
934WhatsApp
935</button>
936<p></p>
937
938<form method="POST" action="/contact_us.php" >
939    <input type="text" id="nombre" size="15" name="nombre"    placeholder="Name" required>
940    <input type="email" id="email" size="15" name="email"     placeholder="Email"  required>
941    <input type="tel" name="telefono"    placeholder="Phone" >
942    <textarea rows='4' cols='15'  name='comentarios'   placeholder='Questions?'  value='Questions?'></textarea>
943    <input type="checkbox" name="condiciones" checked="checked"/><a href="http://www.keruve.com/privacy.php/" class="note">Accept Privacy Policy</a>
944    <input type="hidden" name="form_id" value="form_contacto">
945    <input type="hidden" id="recaptchaResponse" name="recaptcha_response">
946    <input type="button" name="enviar" value="Ask"  onclick="onSubmit(this.form)"/>
947    <input type="hidden" name="next" value="solicitud"/>
948</form>
949
950            </div>
951        </div>
952    </div>
953
954
955
956
957<!-- ################   FIN  CONTENIDO Y MENU LATERAL   ######################-->
958
959
960
961
962<br>
963<br>
964
965
966
967 
968
969
970<br>
971<br>
972<div id="copyright">
973Copyright &#169; 2026 Keruve. All rights reserved.
974
975
976
977<p><a class="condicionesCompra" href="/terms.php/">Terms and Conditions | </a><a class="condicionesCompra" href="/returns.php/">Returns | </a><a class="condicionesCompra" href="/privacy.php/">Privacy Policy</a></p>
978
979
980
981
982
983<div class="copyright"><span>
984Keruve LTD. (reg. Number 11735127) 344-354 Gray's Inn Road, London, England.<br>
985VISION Syst&eacute;mes de Localisation SARL. Green Park III, 298 All&eacute;e du Lac, 31670, Lab&egrave;ge, France.<br>
986T&eacute;l&eacute;phone (+33) 06 44 64 57 36 . <br>
987</span><div class="direccionPie"></div>
988
989
990
991</div>
992</div>
993
994
995
996
997<!--script type="text/javascript">
998adroll_adv_id = "SFVA3KJT2NFU7OSARQOUVN";
999adroll_pix_id = "FLZ6MCPDMVBJJPPOVL7IZX";
1000(function () {
1001var oldonload = window.onload;
1002window.onload = function(){
1003   __adroll_loaded=true;
1004   var scr = document.createElement("script");
1005   var host = (("https:" == document.location.protocol) ? "https://s.adroll.com" : "https://a.adroll.com");
1006   scr.setAttribute('async', 'true');
1007   scr.type = "text/javascript";
1008   scr.src = host + "/j/roundtrip.js";
1009   ((document.getElementsByTagName('head') || [null])[0] ||
1010    document.getElementsByTagName('script')[0].parentNode).appendChild(scr);
1011   if(oldonload){oldonload()}};
1012}());
1013</script-->
1014
1015
1016
1017
1018
1019
1020
1021<!--???????????-->
1022
1023
1024
1025
1026
1027
1028
1029<!-- Google Code for aa All Visitors Not Bouncing -->
1030
1031
1032
1033
1034
1035
1036
1037<!--ENTRY-BEFOREBODYCLOSE-->
1038
1039
1040
1041
1042
1043<!--##########################   POPUPS MULTIPLES ##########################-->
1044
1045    <style>
1046
1047
1048        .button-container {
1049            display: flex;
1050            gap: 20px;
1051        }
1052
1053        button {
1054            padding: 15px 30px;
1055            font-size: 16px;
1056            cursor: pointer;
1057            border: none;
1058            border-radius: 5px;
1059            background-color: #007A96;
1060            color: white;
1061        }
1062
1063        button:hover {
1064            background-color:#3096ad;
1065        }
1066
1067        .popup-overlay {
1068            display: none;
1069            position: fixed;
1070            top: 0;
1071            left: 0;
1072            width: 100%;
1073            height: 100%;
1074            background-color: rgba(255, 255, 255, 0.5);
1075            backdrop-filter: blur(5px);
1076            z-index: 1000;
1077            justify-content: center;
1078            align-items: center;
1079        }
1080
1081        .popup {
1082            background-color: white;
1083            padding: 20px;
1084            border-radius: 20px;
1085            box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
1086            position: fixed;
1087            top: 50px;
1088            left: 25%;
1089            text-align: left; /* Alineamos el texto del formulario a la izquierda */
1090            width: 500px; /* Ancho del popup del formulario */
1091        }
1092
1093        .popup-header {
1094            display: flex;
1095            justify-content: flex-end;
1096            margin-bottom: 10px;
1097        }
1098
1099        .close-button {
1100            background: none;
1101            border: none;
1102            font-size: 20px;
1103            cursor: pointer;
1104            color: #555;
1105        }
1106        .close-button:hover {
1107            background: none;
1108            border: none;
1109            font-size: 20px;
1110            cursor: pointer;
1111            color: #555;
1112        }
1113
1114        .popup-content {
1115            font-size: 16px;
1116            padding-left: 30px;
1117            padding-right: 30px;
1118            padding-bottom: 30px;
1119        }
1120
1121        .popup-content label {
1122            display: block;
1123            margin-bottom: 5px;
1124            font-weight: bold;
1125        }
1126
1127        .popup-content input[type="text"],
1128        .popup-content input[type="tel"],
1129        .popup-content textarea {
1130            width: 100%;
1131            padding: 10px;
1132            margin-bottom: 15px;
1133            border: 1px solid #ccc;
1134            border-radius: 4px;
1135            box-sizing: border-box; /* Asegura que el padding y el borde se incluyan en el ancho */
1136            font-size: 16px;
1137            outline: none;
1138        }
1139
1140        .popup-content input[type="text"]:focus,
1141        .popup-content input[type="tel"]:focus,
1142        .popup-content textarea:focus {
1143            border-color: #007a94;
1144        }
1145
1146        .popup-content textarea {
1147            min-height: 100px;
1148        }
1149
1150        .popup-content button[type="button"] {
1151            background-color: #007a94;
1152            color: white;
1153            border: none;
1154            padding: 10px 15px;
1155            border-radius: 5px;
1156            cursor: pointer;
1157            font-size: 16px;
1158        }
1159
1160        .popup-content button[type="button"]:hover {
1161            background-color: #3899ae;
1162        }
1163
1164
1165        #whatsapp-button img {
1166            width: 24px;
1167            height: 24px;
1168            margin-right: 10px;
1169        }
1170        #whatsapp-button {
1171            background-color: #25d366;
1172            color: white;
1173            font-weight: bold; 
1174            /*border: none;
1175            padding: 15px 15px;
1176            border-radius: 5px;
1177            cursor: pointer;
1178            font-size: 16px;
1179            display: flex;
1180            align-items: center;
1181            margin: auto;*/
1182            
1183        }
1184
1185
1186        .whatsapp-button-small {
1187            background-color: #25d366;
1188            color: white;
1189            font-weight: bold; 
1190            /*border: none;*/
1191            padding: 4px 8px;
1192            /*border-radius: 5px;
1193            cursor: pointer;
1194            font-size: 16px;
1195            display: flex;
1196            align-items: center;
1197            margin: auto;*/
1198            
1199        }
1200
1201
1202
1203/* Estilos para el botón Descuento */
1204.btn-bf-anim {
1205    position: relative;
1206    width: 100%;
1207    background-color: #000; /* Fondo Negro */
1208    color: #fff;
1209    font-weight: bold;
1210    font-size: 18px;
1211    border: 2px solid #d00; /* Borde rojo para destacar */
1212    padding: 15px;
1213    overflow: hidden;
1214    height: 55px; /* Altura fija para evitar saltos */
1215    transition: background-color 0.3s;
1216}
1217
1218.btn-bf-anim:hover {
1219    background-color: #333;
1220}
1221
1222.btn-bf-anim span {
1223    position: absolute;
1224    width: 100%;
1225    left: 0;
1226    top: 50%;
1227    transform: translateY(-50%);
1228    transition: opacity 0.5s ease-in-out;
1229}
1230
1231/* Animación de intermitencia */
1232.bf-text-1 {
1233    animation: fadeText1 4s infinite;
1234}
1235.bf-text-2 {
1236    animation: fadeText2 4s infinite;
1237}
1238
1239@keyframes fadeText1 {
1240    0%, 45% { opacity: 1; }
1241    50%, 100% { opacity: 0; }
1242}
1243
1244@keyframes fadeText2 {
1245    0%, 45% { opacity: 0; }
1246    50%, 100% { opacity: 1; }
1247}
1248
1249/* Estilos para la Tarjeta Hero Descuento */
1250.bf-hero-card {
1251    background: rgba(0, 0, 0, 0.85); /* Fondo negro semitransparente */
1252    border: 2px solid #ff0000; /* Borde rojo neón */
1253    border-radius: 10px;
1254    padding: 15px 20px;
1255    margin-top: 20px;
1256    margin-bottom: 20px;
1257    display: inline-block; /* Se ajusta al contenido */
1258    max-width: 400px;
1259    box-shadow: 0 0 15px rgba(255, 0, 0, 0.3); /* Resplandor rojo */
1260    animation: slideIn 1s ease-out;
1261}
1262
1263.bf-row {
1264    display: flex;
1265    align-items: center;
1266    gap: 10px;
1267    margin-bottom: 5px;
1268}
1269
1270.bf-tag {
1271    background-color: #ff0000;
1272    color: white;
1273    font-weight: 800;
1274    padding: 2px 8px;
1275    text-transform: uppercase;
1276    font-size: 14px;
1277    border-radius: 3px;
1278}
1279
1280.bf-off {
1281    color: #fff;
1282    font-size: 24px;
1283    font-weight: 900;
1284    font-family: "Arial Black", Gadget, sans-serif;
1285}
1286
1287.bf-timer {
1288    color: #ccc;
1289    font-size: 12px !important; /* Forzamos tamaño pequeño */
1290    margin: 0 0 10px 0 !important;
1291    text-transform: uppercase;
1292    letter-spacing: 1px;
1293}
1294
1295.bf-cta-hero {
1296    background-color: white !important;
1297    color: black !important;
1298    font-weight: bold;
1299    border: none;
1300    padding: 10px 20px;
1301    width: 100%;
1302    cursor: pointer;
1303    text-transform: uppercase;
1304    transition: transform 0.2s;
1305}
1306
1307.bf-cta-hero:hover {
1308    transform: scale(1.05); /* Efecto zoom al pasar el ratón */
1309    background-color: #f0f0f0 !important;
1310}
1311
1312/* Animación de entrada */
1313@keyframes slideIn {
1314    from { opacity: 0; transform: translateY(-20px); }
1315    to { opacity: 1; transform: translateY(0); }
1316}
1317
1318/* Ajuste para móviles */
1319@media (max-width: 768px) {
1320    .bf-hero-card {
1321        width: 100%;
1322    }
1323}
1324
1325.bf-timer {
1326    color: #cccccc; /* Gris claro para el texto "Ends in" */
1327    font-size: 14px;
1328    margin: 5px 0 15px 0;
1329    text-transform: uppercase;
1330    letter-spacing: 1px;
1331}
1332    </style>
1333
1334
1335
1336
1337<!-- ################# INICIO POPUP CITA #######################-->
1338
1339    <div id="popup1" class="popup-overlay">
1340        <div class="popup">
1341            <div class="popup-header">
1342                <button class="close-button" data-popup-id="popup1">&times;</button>
1343            </div>
1344            <div class="popup-content">
1345
1346            
1347            
1348
1349            
1350            
1351            
1352                        
1353                                    
1354                <h3>Phone appointment request</h3>
1355                <form method="post" action="/contact_us.php">
1356                    <div>
1357                        
1358                        <input type="text" id="nombre" name="nombre" placeholder="Name" required>
1359                    </div>
1360                    <div>
1361                        
1362                        <input type="tel" id="telefono" name="telefono" placeholder="Phone" required>
1363                    </div>
1364                    <div>
1365                        
1366                        <textarea id="mensaje" name="comentarios">Please call me preferably on ____________ day, from ______ to ________ hours.</textarea>
1367                    </div>
1368                    <input type="hidden" name="form_id" value="popup_cita">
1369                    <input type="hidden" id="recaptchaResponse" name="recaptcha_response">
1370
1371                    <button type="button" onclick="onSubmit(this.form)">Send</button>
1372                </form>
1373
1374                
1375                </p>
1376            
1377            </div>
1378        </div>
1379    </div>
1380
1381    <!-- ################# FIN POPUP CITA #######################-->
1382    <!-- ################# INICIO POPUP WHATSAPP #######################-->
1383
1384    <div id="popup2" class="popup-overlay">
1385        <div class="popup">
1386            <div class="popup-header">
1387                <button class="close-button" data-popup-id="popup2">&times;</button>
1388            </div>
1389            <div class="popup-content">
1390                                                                                <h3>WhatsApp Support</h3>
1391                <form method="post" action="/contact_us.php">
1392                    <div>
1393                        <input type="text" id="nombre" name="nombre" placeholder="Name" required>
1394                    </div>
1395                    <div>
1396                        <input type="tel" id="telefono" name="telefono" placeholder="Your WhatsApp" required>
1397                    </div>
1398
1399                        <input type="hidden" name="comentarios" value="whatsapp"></input>
1400                    <input type="hidden" name="form_id" value="popup_whatsapp">
1401                    <input type="hidden" id="recaptchaResponse" name="recaptcha_response">
1402                    <button id="whatsapp-button"  onclick="onSubmit(this.form)">
1403                    <img src="/_images/24px-WhatsApp.svg.png" alt="WhatsApp Icon" >
1404                    Start WhatsApp
1405                    </button>
1406                </form>
1407                            </div>
1408        </div>
1409    </div>
1410
1411    <!-- ################# FIN POPUP WHATSAPP #######################-->
1412
1413
1414
1415    
1415<script>
1416        const openPopupButtons = document.querySelectorAll('.open-popup-button');
1417        const closeButtons = document.querySelectorAll('.close-button');
1418        const popupOverlays = document.querySelectorAll('.popup-overlay');
1419
1420        const whatsappButton = document.getElementById("whatsapp-button");
1421        const whatsappLinkMobile = "https://wa.me/+34692202396?text=Buenas%2C%20tengo%20una%20pregunta%20sobre%20el%20localizador%20Keruve";
1422
1423        const popup1 = document.getElementById("popup1");
1424
1425        openPopupButtons.forEach(button => {
1426            button.addEventListener('click', () => {
1427                const popupId = button.getAttribute('data-popup-id');
1428                const popup = document.getElementById(popupId);
1429                if (popup) {
1430                    popup.style.display = 'block';
1431                }
1432            });
1433        });
1434
1435        closeButtons.forEach(button => {
1436            button.addEventListener('click', (event) => {
1437                event.stopPropagation();
1438                const popupId = button.getAttribute('data-popup-id');
1439                const popup = document.getElementById(popupId);
1440                if (popup) {
1441                    popup.style.display = 'none';
1442                }
1443            });
1444        });
1445
1446        popupOverlays.forEach(overlay => {
1447            overlay.addEventListener('click', (event) => {
1448                if (event.target === overlay) {
1449                    overlay.style.display = 'none';
1450                }
1451            });
1452        });
1453
1454        function openPopup(popupId) {
1455            const popup = document.getElementById(popupId);
1456            if (popup) {
1457                popup.style.display = 'block';
1458            }
1459        }
1460
1461        function getParameterByName(name, url = window.location.href) {
1462            name = name.replace(/[\[\]]/g, "\\$&");
1463            var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
1464                results = regex.exec(url);
1465            if (!results) return null;
1466            if (!results[2]) return "";
1467            return decodeURIComponent(results[2].replace(/\+/g, " "));
1468        }
1469
1470        document.addEventListener("DOMContentLoaded", function() {
1471            const citaParam = getParameterByName("call");
1472            const whatsappParam = getParameterByName("whatsapp");
1473
1474            if (citaParam === "1") {
1475                    popup1.style.display = "block";
1476                    //overlay.style.display = "block"; // Mostrar el velo
1477            }
1478            else if (whatsappParam === "1") {
1479                    popup2.style.display = "block";
1480                    //overlay.style.display = "block"; // Mostrar el velo
1481            }
1482        });
1483
1484
1485        /*##### PARTE DE WHATSAPP####*/
1486        whatsappButton.addEventListener("click", () => {
1487            if (isMobile()) {
1488                window.location.href = whatsappLinkMobile;
1489            } else {
1490                popup2.style.display = "block";
1491            }
1492        });
1493
1494        function isMobile() {
1495            return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
1496        }
1497
1498    </script>
1498
1499<!---------------------   FIN POPUPS -------------------------->
1500<script>
1501// SCRIPT CONTADOR DESCUENTO
1502(function() {
1503    // --- CONFIGURACIÓN ---
1504    // Define aquí la fecha final. Formato: "AAAA-MM-DDTHH:MM:SS"
1505    // La "T" separa la fecha de la hora.
1506    var fechaFinConfig = "2026-02-28T23:59:59"; 
1507    // ---------------------
1508
1509    // 1. Convertimos la fecha configurada a tiempo en milisegundos
1510    var countDownDate = new Date(fechaFinConfig).getTime();
1511
1512    // 2. Actualizar el contador cada segundo
1513    var x = setInterval(function() {
1514        var now = new Date().getTime();
1515        var distance = countDownDate - now;
1516
1517        // Cálculos de tiempo
1518        var days = Math.floor(distance / (1000 * 60 * 60 * 24));
1519        var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
1520        var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
1521        var seconds = Math.floor((distance % (1000 * 60)) / 1000);
1522
1523        // Mostrar resultado en el elemento con id="bf-countdown"
1524        var displayElement = document.getElementById("bf-countdown");
1525        if (displayElement) {
1526            
1527            // Si la cuenta termina (distancia menor a 0)
1528            if (distance < 0) {
1529                clearInterval(x);
1530                displayElement.innerHTML = "EXPIRED";
1531            } else {
1532                // Formato: 4d 12h 30m 05s
1533                // Se añade un '0' delante si el número es menor a 10 para mejor estética (opcional)
1534                hours = (hours < 10) ? "0" + hours : hours;
1535                minutes = (minutes < 10) ? "0" + minutes : minutes;
1536                seconds = (seconds < 10) ? "0" + seconds : seconds;
1537
1538                displayElement.innerHTML = days + "d " + hours + "h " 
1539                + minutes + "m " + seconds + "s ";
1540            }
1541        }
1542    }, 1000);
1543})();
1544</script>
1544
1545</body>
1546</html>
1547

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.