PageSourceSearch

https://camerarace.com/recensioni/bridge/

html camerarace.com collected 2026-10-09 01:28:47 UTC 63,249 bytes, 1,137 lines download raw bytes

1
2
3
4
5<!DOCTYPE html>
6
7<html xmlns="http://www.w3.org/1999/xhtml" lang="it">
8
9
10<head>
11
12<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
13
14<meta property="og:url" content="https://camerarace.com/recensioni/bridge/" />
15<meta property="og:type" content="article" />
16<meta name="facebook-domain-verification" content="5k4n8a6f06s57wihypcjl048x5vhsv" />
17
18
19  <meta name="title" content="Le migliori bridge" />
20  <meta name="description" content="Tutte le migliori bridge selezionate per te dall&#x27;algoritmo di intelligenza artificiale di camerarace. Scopri subito la migliore per ogni genere fotografico." />
21  <meta property="og:title" content="Le migliori bridge"/>
22  <meta property="og:description" content="Tutte le migliori bridge selezionate per te dall&#x27;algoritmo di intelligenza artificiale di camerarace. Scopri subito la migliore per ogni genere fotografico."/>
23  <meta property="article:published_time" content="2018-09-01T00:00:00+0000">
24  <meta property="article:modified_time" content="2020-05-27T10:42:35+0000">
25  <title>Camerarace | Le migliori bridge </title>
26
27
28
29  
30  <link rel="alternate" hreflang="x-default" href="https://camerarace.com/recensioni/bridge/" />
31  
32
33  
34  <link rel="alternate" hreflang="en-us" href="https://camerarace.com/en-us/review/bridge/" />
35  
36
37  
38  <link rel="alternate" hreflang="en-gb" href="https://camerarace.com/en-gb/review/bridge/" />
39  
40
41  
42  <link rel="alternate" hreflang="de" href="https://camerarace.com/de/rezension/bridgekamera/" />
43  
44
45  
46  <link rel="alternate" hreflang="fr-fr" href="https://camerarace.com/fr-fr/test/bridge/" />
47  
48
49  
50  <link rel="alternate" hreflang="fr-ca" href="https://camerarace.com/fr-ca/test/bridge/" />
51  
52
53  
54  <link rel="alternate" hreflang="en-xa" href="https://camerarace.com/en-xa/review/bridge/" />
55  
56
57  
58  <link rel="alternate" hreflang="es-mx" href="https://camerarace.com/es-mx/rese%C3%B1a/puente/" />
59  
60
61  
62  <link rel="alternate" hreflang="es-es" href="https://camerarace.com/es-es/rese%C3%B1a/puente/" />
63  
64
65  
66  <link rel="alternate" hreflang="pt-br" href="https://camerarace.com/pt-br/avalia%C3%A7%C3%A3o/superzoom/" />
67  
68
69  
70  <link rel="alternate" hreflang="en-au" href="https://camerarace.com/en-au/review/bridge/" />
71  
72
73  
74  <link rel="alternate" hreflang="en-in" href="https://camerarace.com/en-in/review/bridge/" />
75  
76
77
78<link rel="canonical" href="https://camerarace.com/recensioni/bridge/" />
79
80<link href="/static/css/bootstrap.min.css" rel="preload" as="style" />
81<link href="/static/css/bootstrap.min.css" rel="stylesheet"/>
82
83<link href="/static/css/style_mobile.css" rel="preload" as="style"/>
84<link href="/static/css/style_mobile.css" rel="stylesheet" type="text/css"/>
85
86<link href="/static/css/style_medal.css" rel="preload" as="style" />
87<link href="/static/css/style_medal.css" rel="stylesheet" />
88<link rel="apple-touch-icon" href="/static/img/apple-icon-152x152.png">
89<meta name="msapplication-TileImage" content="/static/img/ms-icon-150x150.png">
90
91<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
91
92    
92<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
92
93
94<!--Google Fonts-->
95<script type="58ed5c6cfcee119e22b95ade-text/javascript">
96window.addEventListener("load", function(){
97window.cookieconsent.initialise({
98  "palette": {
99    "popup": {
100      "background": "#eaf7f7",
101      "text": "#5c7291"
102    },
103    "button": {
104      "background": "transparent",
105      "text": "#56cbdb",
106      "border": "#56cbdb"
107    }
108  },
109  "content": {
110    "message": "Questo sito o gli strumenti terzi da questo utilizzati si avvalgono di cookie necessari al funzionamento ed utili alle finalità illustrate nella cookie policy. Se vuoi saperne di più consulta la",
111    "dismiss": "OK",
112    "link": "cookies policy",
113    "href": "/cookie"
114  }
115})});
116</script>
116
117
118<!-- Facebook Pixel Code 
119<script>
vendor: 417 bytes, lines 119-128
119
120  !function(f,b,e,v,n,t,s)
121  {if(f.fbq)return;n=f.fbq=function(){n.callMethod?
122  n.callMethod.apply(n,arguments):n.queue.push(arguments)};
123  if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
124  n.queue=[];t=b.createElement(e);t.async=!0;
125  t.src=v;s=b.getElementsByTagName(e)[0];
126  s.parentNode.insertBefore(t,s)}(window, document,'script',
127  'https://connect.facebook.net/en_US/fbevents.js');
128  fbq('init', '
128706817550269121
vendor: 34 bytes, lines 128-130
128');
129  fbq('track', 'PageView');
130  
130</script>
130
131  <noscript><img height="1" width="1" style="display:none"
132  src="https://www.facebook.com/tr?id=706817550269121&ev=PageView&noscript=1"
133  /></noscript>
134   End Facebook Pixel Code -->
135
136<style>
137
138  #searchCamera {position: relative;}
139  #searchCamera input {display: inline-block;height: 50px;padding: 10px;font: 16px/50px;background: #f2f2f2;border: 1px solid #ddd;margin: 0 5px;}
140  #searchCamera span {color: #888;}
141  #searchCamera button {clear: both;margin-top: 1em;font: 16px;padding-left: 35px;padding-right: 35px;}
142  #searchCamera .resultsOuter {position: absolute;top: 51px;left: 0;width: 100%;}
143  #searchCamera .results {position: relative;width: 412px;margin: 0 auto;border: 1px solid #ddd;z-index: 9993;background: #fff;display: none;}
144  #searchCamera .item {border-bottom: 1px solid #e6e6e6;cursor: pointer;}
145  #searchCamera .item:hover {background: #f2f2f2;}
146  #searchCamera .item img {float: left;width: 80px;height: auto;padding: 0 10px;}
147  #searchCamera .item .content {float: right;width: 300px;text-align: left;padding-top: 8px;}
148  #searchCamera .item .title {font: 18px ;color: #444;}
149  #searchCamera .item span {font-size: 12px;}
150
151  .group:before, .group:after {content: '';}
152  .group:after {display: table;clear: both;}
153</style>
154
155
156<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 156-157
156 
157<script async src="https://www.googletagmanager.com/gtag/js?id=
157G-C5HB6TJ3T5
vendor: 61 bytes, line 157
157" type="58ed5c6cfcee119e22b95ade-text/javascript"></script> 
158<script type="58ed5c6cfcee119e22b95ade-text/javascript"> 
vendor: 127 bytes, line 158
158window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', '
158G-C5HB6TJ3T5
vendor: 4 bytes, line 158
158'); 
158</script>
158
159
160
161
162
163<script type="application/ld+json">{"@context": "http://www.schema.org", "@graph": [{"@id": "https://camerarace.com/#organization", "@type": "Organization", "logo": {"@id": "https://camerarace.com/#logo", "@type": "ImageObject", "caption": "Camerarace", "url": "https://camerarace.com/static/img/logo_20.png"}, "name": "Camerarace", "url": "https://camerarace.com/"}, {"@id": "https://camerarace.com/#website", "@type": "WebSite", "name": "Camerarace", "potentialAction": {"@type": "SearchAction", "query-input": "required name=search_term_string", "target": "https://camerarace.com/searchApp?q={search_term_string}"}, "publisher": {"@id": "https://camerarace.com/#organization"}, "url": "https://camerarace.com/"}, {"@id": "https://camerarace.com/recensioni/bridge/#webpage", "@type": "WebPage", "dateModified": "2020-05-27T10:42:35+0000", "datePublished": "2018-09-01T00:00:00+0000", "description": "Tutte le migliori %(category)s selezionate per te dall'algoritmo di intelligenza artificiale di camerarace. Scopri subito la migliore per ogni genere fotografico.", "image": {"@id": "https://camerarace.com/recensioni/bridge/#primaryimage", "@type": "ImageObject", "caption": "", "url": "https://camerarace.com/static/img/logo_20.png"}, "inLanguage": "it", "isPartOf": {"@id": "https://camerarace.com/#website"}, "name": "Le migliori %(category)s", "primaryImageOfPage": {"@id": "https://camerarace.com/recensioni/bridge/#primaryimage"}, "url": "https://camerarace.com/recensioni/bridge/"}, {"@id": "https://camerarace.com/recensioni/bridge/#article", "@type": "Article", "author": {"@id": "https://camerarace.com/#organization"}, "dateModified": "2020-05-27T10:42:35+0000", "datePublished": "2018-09-01T00:00:00+0000", "headline": "Le migliori %(category)s", "image": {"@id": "https://camerarace.com/recensioni/bridge/#primaryimage", "@type": "ImageObject", "caption": "", "url": "https://camerarace.com/static/img/logo_20.png"}, "isPartOf": {"@id": "https://camerarace.com/recensioni/bridge/#webpage"}, "mainEntityOfPage": {"@id": "https://camerarace.com/recensioni/bridge/#webpage"}, "publisher": {"@id": "https://camerarace.com/#organization"}}]}</script>
163
164
165
166
167
168
169
170    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
171
172
173
174
175<script type="58ed5c6cfcee119e22b95ade-text/javascript">
176    var category = "Bridge";
177    var transCat = "bridge";
178 </script>
178
179
180
181</head>
182
183<body>
184
185  
186
187  <div class="container-fluid" style="background-color:#18212b;">
188    <div class="container pb-2">
189      <nav class="navbar navbar-expand-lg navbar-dark px-0 pb-0" >
190        <a class="navbar-brand text-right py-0"style="font-size:0.9rem;font-style:italic; font-weight:300;color:#ff7722; letter-spacing: 0.12rem;" href="/"><img class="img-fluid" style="vertical-align:top;" alt="logo" src="/static/img/logo_20.png"><br/><small >vince sempre la migliore!</small></a>
191        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
192          <span class="navbar-toggler-icon"></span>
193        </button>
194
195        <div class="collapse navbar-collapse" id="navbarSupportedContent">
196          <ul class="navbar-nav mr-auto">
197            <li class="nav-item active">
198              
199    
200              
201    
202	
203
204
205              <nav aria-label="breadcrumb">
206    <ol class="breadcrumb" itemscope itemtype="http://schema.org/BreadcrumbList" itemid="https://camerarace.com/recensioni/bridge/#BreadcrumbList">
207      
208        
209          <li itemprop="itemListElement" itemscope
210          itemtype="http://schema.org/ListItem" class="breadcrumb-item"><a itemtype="http://schema.org/Thing"
211          itemprop="item" href="https://camerarace.com/recensioni/"><span itemprop="name">
212		recensioni
213	</span></a>
214          <meta itemprop="position" content="1" />
215        </li>
216        
217      
218        
219        <li itemprop="itemListElement" itemscope
220          itemtype="http://schema.org/ListItem" class="breadcrumb-item"><a itemtype="http://schema.org/Thing"
221          itemprop="item" href="https://camerarace.com/recensioni/bridge/"><span itemprop="name">
222        bridge
223    </span></a>
224          <meta itemprop="position" content="2" />
225        </li>
226        
227      
228    </ol>
229  </nav>
230  
231            </li>
232
233
234          </ul>
235
236          <form id="searchCamera" class="form-inline my-2 my-lg-0">
237            <input  class="form-control mr-sm-2" type="search" placeholder="Cerca la tua fotocamera" aria-label="Search" style="height:25px;min-width: 200px;">
238            <div class="resultsOuter">
239              <div class="results"></div>
240            </div>
241
242          </form>
243
244
245
246          <form action="/i18n/setlang/" method="post" class="form-inline ml-2"><input type="hidden" name="csrfmiddlewaretoken" value="3CfV3Hyyvcf4yNe9Nv1CxTt76nRG8LdpXL39NlbmVWn3qIqJ9QX2KklDySHFH8mg">
247              <input name="next" type="hidden" value="" />
248              <select name="language" id="language" class="form-control" style="height:25px;padding:0.2rem">
249                  
250                  
251                  
252                      <option value="it"  selected="selected">
253                          Italian
254                      </option>
255                  
256                      <option value="en-us" >
257                          English US
258                      </option>
259                  
260                      <option value="en-gb" >
261                          English UK
262                      </option>
263                  
264                      <option value="de" >
265                          German
266                      </option>
267                  
268                      <option value="fr-fr" >
269                          French France
270                      </option>
271                  
272                      <option value="fr-ca" >
273                          French Canada
274                      </option>
275                  
276                      <option value="en-xa" >
277                          English Canada
278                      </option>
279                  
280                      <option value="es-mx" >
281                          Spanish Mexico
282                      </option>
283                  
284                      <option value="es-es" >
285                          Spanish Spain
286                      </option>
287                  
288                      <option value="pt-br" >
289                          Portuguese Brasil
290                      </option>
291                  
292                      <option value="en-au" >
293                          English Australia
294                      </option>
295                  
296                      <option value="en-in" >
297                          English India
298                      </option>
299                  
300              </select>
301              <input class="btn btn-secondary btn-menu2 text-uppercase ml-2" id="changeLanguage" type="submit" value="Go"/>
302          </form>
303
304          <div class="dropdown ml-2">
305            <button class="btn btn-secondary dropdown-toggle btn-menu2 text-uppercase" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
306             le migliori
307            </button>
308            <div class="dropdown-menu" aria-labelledby="dropdownMenuButton">
309              <a class="dropdown-item" href="/recensioni/reflex/">reflex</a>
310              <a class="dropdown-item" href="/recensioni/mirrorless/">mirrorless</a>
311              <a class="dropdown-item" href="/recensioni/compatte/">compatte</a>
312              <a class="dropdown-item" href="/recensioni/bridge/">bridge</a>
313            </div>
314            </div>
315          <!--a href="/blog/"class="btn btn-secondary btn-menu2 text-uppercase ml-2" style="padding-top: 0.5rem;">Blog</a-->
316
317
318        </div>
319      </nav>
320    </div>
321    </div>
322
323
324    
325<div class="container-fluid pt-md-5 pt-0" style="background-color:#2b3a4d;">
326	<div class="container">
327	<div class="row mx-0 py-3">
328		<div class="col-12 col-md-10 ">
329			<h1 class="text-left pb-0 mb-0 text-uppercase">Le migliori fotocamere bridge</h1>
330		</div>
331
332	</div>
333</div>
334</div>
335<div class="container py-md-5 pt-0 pb-5">
336<div class="row">
337  <div class="col-md-6 col-12 order-md-2 px-0 sfondo">
338  <div id="results" class="sfondo px-0 px-md-3">
339  <table border=0 id="categoryCamera" class="table" style="width:100%">
340      <thead>
341
342      </thead>
343      <tbody>
344
345      </tbody>
346  </table>
347</div>
348</div>
349    <div class="col-sm-12 col-md-6 recensione_single pr-md-5 px-0 pt-5 pt-md-0">
350
351<p>Le fotocamere bridge possono essere considerate come l&rsquo;elemento di congiunzione tra le reflex e le compatte.</p>
352<p>La parola stessa &ldquo;bridge&rdquo; (ponte, in inglese) rende bene l&rsquo;idea..</p>
353<p>La fotocamera bridge &egrave; pensata per chi non si sente pi&ugrave; un principiante alle prime armi (che di solito tende a preferire una compatta), ma allo stesso tempo non se la sente ancora di comprare una reflex.</p>
354<p>Quindi, se anche tu ti ritrovi in questo scenario, qui potrai trovare la migliore alternativa alla tua compatta.</p>
355<p>Iniziamo subito con l&rsquo;analizzare quali sono le reali caratteristiche che differenziano una bridge da una reflex.</p>
356<h2><strong>Fotocamera Bridge: caratteristiche</strong></h2>
357<p>Iniziamo con il dire che le fotocamere bridge si caratterizzano per due elementi chiave: da un lato mantengono un ingombro e un peso relativamente contenuti; dall&rsquo;altro, grazie alla dotazione di lenti zoom ad ampia escursione focale, sono adatte agli usi pi&ugrave; disparati.</p>
358<p>Lo zoom &egrave; forse la caratteristica pi&ugrave; peculiare delle fotocamere bridge: tutte le bridge sono infatti caratterizzate da una&nbsp;<a href="https://www.reflex-mania.com/cos-e-la-lunghezza-focale-un-obiettivo/"><strong>ampia escursione focale</strong></a>. Non per nulla infatti, queste fotocamere vendono anche definite &ldquo;<strong>super-zoom</strong>&ldquo;.</p>
359<p>La focale pu&ograve; andare da grandangolare fino a&nbsp;<strong>medio-teleobiettivo</strong>&nbsp;o anche&nbsp;<strong>super-teleobiettivo</strong>.</p>
360<p>Fino ad arrivare a modelli estremi con zoom che raggiungono gli 800 mm, come per esempio la&nbsp;Canon Powershot SX540HS.&nbsp;</p>
361<p>Il contraltare &egrave; che, per definizione, l&rsquo;obiettivo delle macchine fotografiche bridge non &egrave; mai intercambiabile, il che pone dei limiti invalicabili alla intrinseca qualit&agrave; dell&rsquo;immagine che possono produrre.</p>
362<p>All&rsquo;osservazione le bridge assomigliano molto a delle reflex, tanto che a un occhio inesperto possono apparire indistinguibili dalle cugine di rango superiore: hanno forma simile e la loro conformazione &egrave;&nbsp;<strong>ergonomica</strong>, proprio&nbsp;come quella delle reflex. La differenza maggiore &egrave; che appaiono visibilmente&nbsp;<strong>pi&ugrave; piccole</strong>, meno ingombranti e pi&ugrave; maneggevoli, soprattutto rispetto ai modelli di reflex pro o semi-pro.</p>
363<p>Anche il peso, essendo pi&ugrave; piccole, &egrave; inferiore a quello di molte reflex. Di solito si aggira tra i 300 gr e i 900 grammi. Questo ovviamente si traduce in un tangibile vantaggio in termini di maneggevolezza e portabilit&agrave;.</p>
364<p>Al pari delle dimensioni della fotocamera, anche il sensore della tipica macchina bridge &egrave; pi&ugrave; piccolo normalmente di quello di una reflex. Infatti, esistono modelli dotati di&nbsp;<strong>sensori 2/3, e 4/3</strong>&nbsp;(perci&ograve; piccoli) o, al massimo, da&nbsp;<strong>1 pollice</strong>&nbsp;(pi&ugrave; ampi).</p>
365<p>La dimensione del sensore condiziona inevitabilmente anche la risoluzione complessiva della fotocamera e la superficie dei pixel che in esso sono contenuti.</p>
366<p>Detto in termini pi&ugrave; generali, devi considerare che a parit&agrave; di megapixel un sensore pi&ugrave; grande<strong> cattura meglio la luce</strong>, questo perch&eacute; ogni singolo pixel &egrave; di dimensioni maggiori, e dunque ha una maggiore capacit&agrave; di raccogliere la luce disponibile<strong>.</strong></p>
367<p>Questo significa che in condizioni di scarsa luminosit&agrave; inevitabilmente emergono alcuni degli svantaggi delle fotocamere con sensore piccolo, dovuti alle dimensioni ridotte dei loro pixel.</p>
368<p>In questo ovviamente le bridge non possono competere con le fotocamere reflex, per limiti di dimensioni del sensore.</p>
369<h2>Perch&eacute; scegliere una fotocamera bridge</h2>
370<p>Come dice lo stesso nome, la fotocamera bridge si pone come &nbsp;<strong>ponte tra le compatte e le reflex</strong>, cercando di accontentare un po&rsquo; tutti:</p>
371<ul>
372<li>Chi inizia, perch&eacute; si trova nella condizione di poter usare modalit&agrave; di scatto automatiche e semi-automatiche</li>
373<li>Chi invece &egrave; gi&agrave; a un livello pi&ugrave; avanzato, perch&eacute; pu&ograve; usare la fotocamera in modalit&agrave; manuale in modo da avere il controllo completo della situazione.</li>
374</ul>
375<p>Quindi, se non ti accontenti pi&ugrave; della tua<strong>&nbsp;point&amp;shot</strong>, ma allo stesso tempo non ti senti pronto a fare il salto verso il mondo delle reflex o delle mirrorless a obiettivi intercambiabili, la scelta di una fotocamera bridge potrebbe essere quella che fa per te.</p>
376<p>In queste pagine troverai i modelli pi&ugrave; performanti che puoi trovare oggi sul mercato.</p>
377
378
379    </div>
380
381</div>
382</div>
383
384
385
386
387
388<style>
389  #_form_52_ { font-size:14px; line-height:1.6; margin:0; }
390  #_form_52_ * { outline:0; }
391  ._form_hide { display:none; visibility:hidden; }
392  ._form_show { display:block; visibility:visible; }
393  #_form_52_._form-top { top:0; }
394  #_form_52_._form-bottom { bottom:0; }
395  #_form_52_._form-left { left:0; }
396  #_form_52_._form-right { right:0; }
397  #_form_52_ input[type="text"],#_form_52_ input[type="email"],#_form_52_ input[type="tel"],#_form_52_ input[type="date"],#_form_52_ textarea { padding:6px; height:auto; border:#979797 1px solid; border-radius:4px; color:#000 !important; font-size:14px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; }
398  #_form_52_ textarea { resize:none; }
399  #_form_52_ ._submit {background-color: #ff7722; -webkit-appearance:none; cursor:pointer;  font-size:14px; text-align:center; background:#ff7722 !important; border:0 !important; -moz-border-radius:4px !important; -webkit-border-radius:4px !important; border-radius:4px !important; color:#fff !important; padding:10px !important; }
400  #_form_52_ ._close-icon { cursor:pointer; background-image:url('https://d226aj4ao1t61q.cloudfront.net/esfkyjh1u_forms-close-dark.png'); background-repeat:no-repeat; background-size:14.2px 14.2px; position:absolute; display:block; top:11px; right:9px; overflow:hidden; width:16.2px; height:16.2px; }
401  #_form_52_ ._close-icon:before { position:relative; }
402  #_form_52_ ._form-body { margin-bottom:30px; }
403  #_form_52_ ._form-image-left { width:150px; float:left; }
404  #_form_52_ ._form-content-right { margin-left:164px; }
405  #_form_52_ ._form-branding { color:#fff; font-size:10px; clear:both; text-align:left; margin-top:30px; font-weight:100; }
406  #_form_52_ ._form-branding ._logo { display:block; width:130px; height:14px; margin-top:6px; background-image:url('https://d226aj4ao1t61q.cloudfront.net/hh9ujqgv5_aclogo_li.png'); background-size:130px auto; background-repeat:no-repeat; }
407  #_form_52_ .form-sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0, 0, 0, 0); border:0; }
408  #_form_52_ ._form-label,#_form_52_ ._form_element ._form-label { font-weight:bold; margin-bottom:5px; display:block; }
409  #_form_52_._dark ._form-branding { color:#333; }
410  #_form_52_._dark ._form-branding ._logo { background-image:url('https://d226aj4ao1t61q.cloudfront.net/jftq2c8s_aclogo_dk.png'); }
411  #_form_52_ ._form_element { position:relative; margin-bottom:10px; font-size:0; max-width:100%; }
412  #_form_52_ ._form_element * { font-size:14px; }
413  #_form_52_ ._form_element._clear { clear:both; width:100%; float:none; }
414  #_form_52_ ._form_element._clear:after { clear:left; }
415  #_form_52_ ._form_element input[type="text"],#_form_52_ ._form_element input[type="date"],#_form_52_ ._form_element select,#_form_52_ ._form_element textarea:not(.g-recaptcha-response) { display:block; width:100%; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-family:inherit; }
416  #_form_52_ ._field-wrapper { position:relative; }
417  #_form_52_ ._inline-style { float:left; }
418  #_form_52_ ._inline-style input[type="text"] { width:150px; }
419  #_form_52_ ._inline-style:not(._clear) + ._inline-style:not(._clear) { margin-left:20px; }
420  #_form_52_ ._form_element img._form-image { max-width:100%; }
421  #_form_52_ ._form_element ._form-fieldset { border:0; padding:0.01em 0 0 0; margin:0; min-width:0; }
422  #_form_52_ ._clear-element { clear:left; }
423  #_form_52_ ._full_width { width:100%; }
424  #_form_52_ ._form_full_field { display:block; width:100%; margin-bottom:10px; }
425  #_form_52_ input[type="text"]._has_error,#_form_52_ textarea._has_error { border:#f37c7b 1px solid; }
426  #_form_52_ input[type="checkbox"]._has_error { outline:#f37c7b 1px solid; }
427  #_form_52_ ._error { display:block; position:absolute; font-size:14px; z-index:10000001; }
428  #_form_52_ ._error._above { padding-bottom:4px; bottom:39px; right:0; }
429  #_form_52_ ._error._below { padding-top:4px; top:100%; right:0; }
430  #_form_52_ ._error._above ._error-arrow { bottom:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-top:5px solid #f37c7b; }
431  #_form_52_ ._error._below ._error-arrow { top:0; right:15px; border-left:5px solid transparent; border-right:5px solid transparent; border-bottom:5px solid #f37c7b; }
432  #_form_52_ ._error-inner { padding:8px 12px; background-color:#f37c7b; font-size:14px; font-family:arial, sans-serif; color:#fff; text-align:center; text-decoration:none; -webkit-border-radius:4px; -moz-border-radius:4px; border-radius:4px; }
433  #_form_52_ ._error-inner._form_error { margin-bottom:5px; text-align:left; }
434  #_form_52_ ._button-wrapper ._error-inner._form_error { position:static; }
435  #_form_52_ ._error-inner._no_arrow { margin-bottom:10px; }
436  #_form_52_ ._error-arrow { position:absolute; width:0; height:0; }
437  #_form_52_ ._error-html { margin-bottom:10px; }
438  .pika-single { z-index:10000001 !important; }
439  #_form_52_ input[type="text"].datetime_date { width:69%; display:inline; }
440  #_form_52_ select.datetime_time { width:29%; display:inline; height:32px; }
441  #_form_52_ input[type="date"].datetime_date { width:69%; display:inline-flex; }
442  #_form_52_ input[type="time"].datetime_time { width:29%; display:inline-flex; }
443  @media all and (min-width:320px) and (max-width:667px) { ::-webkit-scrollbar { display:none; }
444  #_form_52_ { margin:0; width:100%; min-width:100%; max-width:100%; box-sizing:border-box; }
445  #_form_52_ * { -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; font-size:1em; }
446  #_form_52_ ._form-content { margin:0; width:100%; }
447  #_form_52_ ._form-inner { display:block; min-width:100%; }
448  #_form_52_ ._form-title,#_form_52_ ._inline-style { margin-top:0; margin-right:0; margin-left:0; }
449  #_form_52_ ._form-title { font-size:1.2em; }
450  #_form_52_ ._form_element { margin:0 0 20px; padding:0; width:100%; }
451  #_form_52_ ._form-element,#_form_52_ ._inline-style,#_form_52_ input[type="text"],#_form_52_ label,#_form_52_ p,#_form_52_ textarea:not(.g-recaptcha-response) { float:none; display:block; width:100%; }
452  #_form_52_ ._row._checkbox-radio label { display:inline; }
453  #_form_52_ ._row,#_form_52_ p,#_form_52_ label { margin-bottom:0.7em; width:100%; }
454  #_form_52_ ._row input[type="checkbox"],#_form_52_ ._row input[type="radio"] { margin:0 !important; vertical-align:middle !important; }
455  #_form_52_ ._row input[type="checkbox"] + span label { display:inline; }
456  #_form_52_ ._row span label { margin:0 !important; width:initial !important; vertical-align:middle !important; }
457  #_form_52_ ._form-image { max-width:100%; height:auto !important; }
458  #_form_52_ input[type="text"] { padding-left:10px; padding-right:10px; font-size:16px; line-height:1.3em; -webkit-appearance:none; }
459  #_form_52_ input[type="radio"],#_form_52_ input[type="checkbox"] { display:inline-block; width:1.3em; height:1.3em; font-size:1em; margin:0 0.3em 0 0; vertical-align:baseline; }
460  #_form_52_ button[type="submit"] { padding:20px; font-size:1.5em; }
461  #_form_52_ ._inline-style { margin:20px 0 0 !important; }
462  }
463  #_form_52_ { position:relative; text-align:left; margin:25px auto 0; padding:20px; -webkit-box-sizing:border-box; -moz-box-sizing:border-box; box-sizing:border-box; *zoom:1; background:#fff !important; border:0px solid #b0b0b0 !important; width:100%; -moz-border-radius:0px !important; -webkit-border-radius:0px !important; border-radius:0px !important; color:#000 !important; }
464  #_form_52_._inline-form,#_form_52_._inline-form ._form-content,#_form_52_._inline-form input,#_form_52_._inline-form ._submit { font-family:"IBM Plex Sans", Helvetica, sans-serif; }
465  #_form_52_ ._form-title { font-size:22px; line-height:22px; font-weight:600; margin-bottom:0; }
466  #_form_52_:before,#_form_52_:after { content:" "; display:table; }
467  #_form_52_:after { clear:both; }
468  #_form_52_._inline-style { width:auto; display:inline-block; }
469  #_form_52_._inline-style input[type="text"],#_form_52_._inline-style input[type="date"] { padding:10px 12px; }
470  #_form_52_._inline-style button._inline-style { position:relative; top:27px; }
471  #_form_52_._inline-style p { margin:0; }
472  #_form_52_._inline-style ._button-wrapper { position:relative; margin:27px 12.5px 0 20px; }
473  #_form_52_ ._form-thank-you { position:relative; left:0; right:0; text-align:center; font-size:18px; }
474  @media all and (min-width:320px) and (max-width:667px) { #_form_52_._inline-form._inline-style ._inline-style._button-wrapper { margin-top:20px !important; margin-left:0 !important; }
475  }
476  #_form_52_ .iti.iti--allow-dropdown.iti--separate-dial-code { width:100%; }
477  #_form_52_ .iti input { width:100%; height:32px; border:#979797 1px solid; border-radius:4px; }
478  #_form_52_ .iti--separate-dial-code .iti__selected-flag { background-color:#fff; border-radius:4px; }
479  #_form_52_ .iti--separate-dial-code .iti__selected-flag:hover { background-color:rgba(0, 0, 0, 0.05); }
480  #_form_52_ .iti__country-list { border-radius:4px; margin-top:4px; min-width:460px; }
481  #_form_52_ .iti__country-list--dropup { margin-bottom:4px; }
482  #_form_52_ .phone-error-hidden { display:none; }
483  #_form_52_ .phone-error { color:#e40e49; }
484  #_form_52_ .phone-input-error { border:1px solid #e40e49 !important; }
485 
486  .close-button {
487  border: none;
488  display: inline-block;
489  padding: 8px 16px;
490  vertical-align: middle;
491  overflow: hidden;
492  text-decoration: none;
493  color: inherit;
494  background-color: inherit;
495  text-align: center;
496  cursor: pointer!important;
497  white-space: nowrap
498}
499
500.topright {
501  position: absolute;
502  right: 0;
503  top: 0
504}
505 </style>
506 <link href="https://fonts.googleapis.com/css2?family=Lato&family=Montserrat&family=Roboto&family=IBM+Plex+Sans:wght@400;600&display=swap" rel="stylesheet">
507 <link rel="stylesheet" type="text/css" href="https://unpkg.com/[email protected]/build/css/intlTelInput.min.css"/>
508   <!--script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
508
509   
509<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script>
509
510   
510<script src="/static/js/bootstrap.min.js"></script>
510
511   < jquery -->
512     <!--script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
513     </script>
513
514     
514<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js">
515     </script>
515
516     
516<script type="text/javascript">
517       var $J = jQuery.noConflict();
518     </script-->
519     <!-- datepicker -->
520       <!--style type="text/css">
521         @import url(../admin/css/datepicker.css?v=);
522       </style>
523       
523<script type="text/javascript" src="/ac_global/bootstrap_datepicker/bootstrap-datepicker.js?v=913-new-social-icons54914e2ef10782de">
524       </script>
524
525       
525<script type="text/javascript" src="/ac_global/bootstrap_datepicker/locales/bootstrap-datepicker.en.js?v=913-new-social-icons54914e2ef10782de">
526       </script-->
527
528       <div class="modal" tabindex="-1" role="dialog" id="optinModal">
529        <div class="modal-dialog" role="document">
530          <div class="modal-content">
531            <div class="modal-header">
532              <span id="closeModalOptin" class="close-button topright">&times;</span>
533            </div>
534            <div class="modal-body thankyou">
535              <form method="POST" action="https://emasrls.activehosted.com/proc.php" id="_form_52_" class="_form _form_52 _inline-form  _dark" novalidate>
536
537                <div class="row">
538                  <div class="col-12">
539                      <p style="text-align: center;">Non sbagliare mai più uno scatto. Scarica il manuale gratuito.</p>        
540                      <p style="text-align: center; font-size: 1.2em;"><b>- Le 5 Basi di uno Scatto Fotografico Corretto -</b></p>
541                  </div>
542                </div>
543
544                <input type="hidden" name="u" value="52" />
545                <input type="hidden" name="f" value="52" />
546                <input type="hidden" name="s" />
547                <input type="hidden" name="c" value="0" />
548                <input type="hidden" name="m" value="0" />
549                <input type="hidden" name="act" value="sub" />
550                <input type="hidden" name="v" value="2" />
551                <input type="hidden" name="or" value="c4db4cef89c47649817d43c20f75317a" />
552                <div class="_form-content">
553                  
554                    <div class="form-group">
555                      <input type="text" name="fullname" class="form-control" placeholder="Digita il tuo nome" required/>
556                   </div>
557          
558                   <div class="form-group">
559                      <input type="email" name="email" class="form-control" placeholder="Inserisci la tua email" required/>
560                   </div>
561                   <div class="form-group">
562                   <div class="form-check">
563                      <input type="checkbox" name="privacy-optin"  placeholder=""  label="Conferma di aver accettato la nostra privacy policy" class="form-check-input" required/>
564                      <label class="form-check-label" for="privacy-optin"><span style="margin-left:1.3em">Conferma di aver accettato la <a style="text-decoration: underline;" href="https://camerarace.com/privacy" rel="nofollow" target="_blank">privacy policy</a></span></label>
565                   </div>
566                  </div>
567                  <div class="_form_element _x63913936 _full_width " >
568                    <label for="ls" class="_form-label">
569                      Please verify your request*
570                    </label>
571                    <div class="g-recaptcha" data-sitekey="6LcwIw8TAAAAACP1ysM08EhCgzd6q5JAOUR1a0Go">
572                    </div>
573                  </div>
574                  <div class="_form_element _field223 _full_width " >
575                    <input type="hidden" name="field[223]" value="it"/>
576                  </div>
577                  <div class="form-group text-center">
578                       
579                    <div class="_button-wrapper _full_width">
580                        <button id="_form_52_submit" class="_submit text-uppercase" type="submit" style="width: 100%;">
581                          <span style="font-family: 'Montserrat', sans-serif; color: #fff; font-weight: 450; letter-spacing:3px;">Scarica il manuale</span>
582                        </button>
583                    </div>
584        
585                   <div class="_clear-element">
586                   </div>
587                 </div>
588                </div>
589                <div class="_form-thank-you" style="display:none;">
590                </div>
591              </form>
592            </div>
593          </div>
594        </div>
595      </div>
596
597       
598      
598<script defer type="58ed5c6cfcee119e22b95ade-text/javascript">
599        window.cfields = {"223":"language"};
600        window.langOptin = "it";
601        window._show_thank_you = function(id, message, trackcmp_url, email) {
602          switch(window.langOptin){
603              case 'it': 
604                window.location = 'https://camerarace.com/thankyou';
605                //window.location = 'https://ema.thrivecart.com/fotografiche/?passthrough[customer_email]=' + email;
606                break;
607              case 'en-us':
608                window.location = 'https://ema.thrivecart.com/photographics-tw-us/?passthrough[customer_email]=' + email;
609                break;
610              default:
611                window.location = 'https://camerarace.com/'+ window.langOptin + '/thankyou';
612                break;
613          }
614          
615        };
616        window._show_error = function(id, message, html) {
617          var form = document.getElementById('_form_' + id + '_'), err = document.createElement('div'), button = form.querySelector('button'), old_error = form.querySelector('._form_error');
618          if (old_error) old_error.parentNode.removeChild(old_error);
619          err.innerHTML = message;
620          err.className = '_error-inner _form_error _no_arrow';
621          var wrapper = document.createElement('div');
622          wrapper.className = '_form-inner';
623          wrapper.appendChild(err);
624          button.parentNode.insertBefore(wrapper, button);
625          document.querySelector('[id^="_form"][id$="_submit"]').disabled = false;
626          if (html) {
627            var div = document.createElement('div');
628            div.className = '_error-html';
629            div.innerHTML = html;
630            err.appendChild(div);
631          }
632        };
633        window._load_script = function(url, callback) {
634          var head = document.querySelector('head'), script = document.createElement('script'), r = false;
635          script.type = 'text/javascript';
636          script.charset = 'utf-8';
637          script.src = url;
638          if (callback) {
639            script.onload = script.onreadystatechange = function() {
640              if (!r && (!this.readyState || this.readyState == 'complete')) {
641                r = true;
642                callback();
643              }
644            };
645          }
646          head.appendChild(script);
647        };
648        (function() {
649          if (window.location.search.search("excludeform") !== -1) return false;
650          var getCookie = function(name) {
651       var match = document.cookie.match(new RegExp('(^|; )' + name + '=([^;]+)'));
652       var flagExpired = false;
653       if (match){
654        var now = new Date();
655        var expire = new Date(match[2]);
656        flagExpired = expire > now;
657       }
658       return flagExpired;
659       /*console.log(expire < now, expire, now)
660       return match ? match[2] : null;
661       */
662     }
663          var setCookie = function(name, value) {
664            var now = new Date();
665            var time = now.getTime();
666            var expireTime = time + 1000 * 60 * value;//60 * 24 * 365;
667            now.setTime(expireTime);
668            document.cookie = name + '=' + now + '; expires=' + now + ';path=/; Secure; SameSite=Lax;';// cannot be HttpOnly
669          }
670              var addEvent = function(element, event, func) {
671            if (element.addEventListener) {
672              element.addEventListener(event, func);
673            } else {
674              var oldFunc = element['on' + event];
675              element['on' + event] = function() {
676                oldFunc.apply(this, arguments);
677                func.apply(this, arguments);
678              };
679            }
680          }
681          var _removed = false;
682          var form_to_submit = document.getElementById('_form_52_');
683          var allInputs = form_to_submit.querySelectorAll('input, select, textarea'), tooltips = [], submitted = false;
684        
685          var getUrlParam = function(name) {
686            var params = new URLSearchParams(window.location.search);
687            return params.get(name) || false;
688          };
689        
690          for (var i = 0; i < allInputs.length; i++) {
691            var regexStr = "field\\[(\\d+)\\]";
692            var results = new RegExp(regexStr).exec(allInputs[i].name);
693            if (results != undefined) {
694              allInputs[i].dataset.name = window.cfields[results[1]];
695            } else {
696              allInputs[i].dataset.name = allInputs[i].name;
697            }
698            var fieldVal = getUrlParam(allInputs[i].dataset.name);
699        
700            if (fieldVal) {
701              if (allInputs[i].dataset.autofill === "false") {
702                continue;
703              }
704              if (allInputs[i].type == "radio" || allInputs[i].type == "checkbox") {
705                if (allInputs[i].value == fieldVal) {
706                  allInputs[i].checked = true;
707                }
708              } else {
709                allInputs[i].value = fieldVal;
710              }
711            }
712          }
713        
714          var remove_tooltips = function() {
715            for (var i = 0; i < tooltips.length; i++) {
716              tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);
717            }
718            tooltips = [];
719          };
720          var remove_tooltip = function(elem) {
721            for (var i = 0; i < tooltips.length; i++) {
722              if (tooltips[i].elem === elem) {
723                tooltips[i].tip.parentNode.removeChild(tooltips[i].tip);
724                tooltips.splice(i, 1);
725                return;
726              }
727            }
728          };
729          var create_tooltip = function(elem, text) {
730            var tooltip = document.createElement('div'), arrow = document.createElement('div'), inner = document.createElement('div'), new_tooltip = {};
731            if (elem.type != 'radio' && elem.type != 'checkbox') {
732              tooltip.className = '_error';
733              arrow.className = '_error-arrow';
734              inner.className = '_error-inner';
735              inner.innerHTML = text;
736              tooltip.appendChild(arrow);
737              tooltip.appendChild(inner);
738              elem.parentNode.appendChild(tooltip);
739            } else {
740              tooltip.className = '_error-inner _no_arrow';
741              tooltip.innerHTML = text;
742              elem.parentNode.insertBefore(tooltip, elem);
743              new_tooltip.no_arrow = true;
744            }
745            new_tooltip.tip = tooltip;
746            new_tooltip.elem = elem;
747            tooltips.push(new_tooltip);
748            return new_tooltip;
749          };
750          var resize_tooltip = function(tooltip) {
751            var rect = tooltip.elem.getBoundingClientRect();
752            var doc = document.documentElement, scrollPosition = rect.top - ((window.pageYOffset || doc.scrollTop)  - (doc.clientTop || 0));
753            if (scrollPosition < 40) {
754              tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _below';
755            } else {
756              tooltip.tip.className = tooltip.tip.className.replace(/ ?(_above|_below) ?/g, '') + ' _above';
757            }
758          };
759          var resize_tooltips = function() {
760            if (_removed) return;
761            for (var i = 0; i < tooltips.length; i++) {
762              if (!tooltips[i].no_arrow) resize_tooltip(tooltips[i]);
763            }
764          };
765          var validate_field = function(elem, remove) {
766            var tooltip = null, value = elem.value, no_error = true;
767            remove ? remove_tooltip(elem) : false;
768            if (elem.type != 'checkbox') elem.className = elem.className.replace(/ ?_has_error ?/g, '');
769            if (elem.getAttribute('required') !== null) {
770              if (elem.type == 'radio' || (elem.type == 'checkbox' && /any/.test(elem.className))) {
771                var elems = form_to_submit.elements[elem.name];
772                if (!(elems instanceof NodeList || elems instanceof HTMLCollection) || elems.length <= 1) {
773                  no_error = elem.checked;
774                }
775                else {
776                  no_error = false;
777                  for (var i = 0; i < elems.length; i++) {
778                    if (elems[i].checked) no_error = true;
779                  }
780                }
781                if (!no_error) {
782                  tooltip = create_tooltip(elem, "Please select an option.");
783                }
784              } else if (elem.type =='checkbox') {
785                var elems = form_to_submit.elements[elem.name], found = false, err = [];
786                no_error = true;
787                for (var i = 0; i < elems.length; i++) {
788                  if (elems[i].getAttribute('required') === null) continue;
789                  if (!found && elems[i] !== elem) return true;
790                  found = true;
791                  elems[i].className = elems[i].className.replace(/ ?_has_error ?/g, '');
792                  if (!elems[i].checked) {
793                    no_error = false;
794                    elems[i].className = elems[i].className + ' _has_error';
795                    err.push("Checking %s is required".replace("%s", elems[i].value));
796                  }
797                }
798                if (!no_error) {
799                  tooltip = create_tooltip(elem, err.join('<br/>'));
800                }
801              } else if (elem.tagName == 'SELECT') {
802                var selected = true;
803                if (elem.multiple) {
804                  selected = false;
805                  for (var i = 0; i < elem.options.length; i++) {
806                    if (elem.options[i].selected) {
807                      selected = true;
808                      break;
809                    }
810                  }
811                } else {
812                  for (var i = 0; i < elem.options.length; i++) {
813                    if (elem.options[i].selected && (!elem.options[i].value || (elem.options[i].value.match(/\n/g)))) {
814                      selected = false;
815                    }
816                  }
817                }
818                if (!selected) {
819                  elem.className = elem.className + ' _has_error';
820                  no_error = false;
821                  tooltip = create_tooltip(elem, "Please select an option.");
822                }
823              } else if (value === undefined || value === null || value === '') {
824                elem.className = elem.className + ' _has_error';
825                no_error = false;
826                tooltip = create_tooltip(elem, "This field is required.");
827              }
828            }
829            if (no_error && (elem.id == 'field[]' || elem.id == 'ca[11][v]')) {
830              if (elem.className.includes('phone-input-error')) {
831                elem.className = elem.className + ' _has_error';
832                no_error = false;
833              }
834            }
835            if (no_error && elem.name == 'email') {
836              if (!value.match(/^[\+_a-z0-9-'&=]+(\.[\+_a-z0-9-']+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$/i)) {
837                elem.className = elem.className + ' _has_error';
838                no_error = false;
839                tooltip = create_tooltip(elem, "Enter a valid email address.");
840              }
841            }
842            if (no_error && /date_field/.test(elem.className)) {
843              if (!value.match(/^\d\d\d\d-\d\d-\d\d$/)) {
844                elem.className = elem.className + ' _has_error';
845                no_error = false;
846                tooltip = create_tooltip(elem, "Enter a valid date.");
847              }
848            }
849            tooltip ? resize_tooltip(tooltip) : false;
850            return no_error;
851          };
852          var needs_validate = function(el) {
853                if(el.getAttribute('required') !== null){
854                    return true
855                }
856                if(el.name === 'email' && el.value !== ""){
857                    return true
858                }
859        
860            if((el.id == 'field[]' || el.id == 'ca[11][v]') && el.className.includes('phone-input-error')){
861                    return true
862                }
863        
864                return false
865          };
866          var validate_form = function(e) {
867            var err = form_to_submit.querySelector('._form_error'), no_error = true;
868            if (!submitted) {
869              submitted = true;
870              for (var i = 0, len = allInputs.length; i < len; i++) {
871                var input = allInputs[i];
872                if (needs_validate(input)) {
873                  if (input.type == 'tel') {
874                    addEvent(input, 'blur', function() {
875                      this.value = this.value.trim();
876                      validate_field(this, true);
877                    });
878                  }
879                  if (input.type == 'text' || input.type == 'number' || input.type == 'time') {
880                    addEvent(input, 'blur', function() {
881                      this.value = this.value.trim();
882                      validate_field(this, true);
883                    });
884                    addEvent(input, 'input', function() {
885                      validate_field(this, true);
886                    });
887                  } else if (input.type == 'radio' || input.type == 'checkbox') {
888                    (function(el) {
889                      var radios = form_to_submit.elements[el.name];
890                      for (var i = 0; i < radios.length; i++) {
891                        addEvent(radios[i], 'click', function() {
892                          validate_field(el, true);
893                        });
894                      }
895                    })(input);
896                  } else if (input.tagName == 'SELECT') {
897                    addEvent(input, 'change', function() {
898                      validate_field(this, true);
899                    });
900                  } else if (input.type == 'textarea'){
901                    addEvent(input, 'input', function() {
902                      validate_field(this, true);
903                    });
904                  }
905                }
906              }
907            }
908            remove_tooltips();
909            for (var i = 0, len = allInputs.length; i < len; i++) {
910              var elem = allInputs[i];
911              if (needs_validate(elem)) {
912                if (elem.tagName.toLowerCase() !== "select") {
913                  elem.value = elem.value.trim();
914                }
915                validate_field(elem) ? true : no_error = false;
916              }
917            }
918            if (!no_error && e) {
919              e.preventDefault();
920            }
921            resize_tooltips();
922            return no_error;
923          };
924          addEvent(window, 'resize', resize_tooltips);
925          addEvent(window, 'scroll', resize_tooltips);
926        
927          var hidePhoneInputError = function(inputId) {
928            var errorMessage =  document.getElementById("error-msg-" + inputId);
929            var input = document.getElementById(inputId);
930            errorMessage.classList.remove("phone-error");
931            errorMessage.classList.add("phone-error-hidden");
932            input.classList.remove("phone-input-error");
933          };
934        
935          var initializePhoneInput = function(input, defaultCountry) {
936            return window.intlTelInput(input, {
937              utilsScript: "https://unpkg.com/[email protected]/build/js/utils.js",
938              autoHideDialCode: false,
939              separateDialCode: true,
940              initialCountry: defaultCountry,
941              preferredCountries: []
942            });
943          }
944        
945          var setPhoneInputEventListeners = function(inputId, input, iti) {
946            input.addEventListener('blur', function() {
947              var errorMessage = document.getElementById("error-msg-" + inputId);
948              if (input.value.trim()) {
949                if (iti.isValidNumber()) {
950                  iti.setNumber(iti.getNumber());
951                  if (errorMessage.classList.contains("phone-error")){
952                    hidePhoneInputError(inputId);
953                  }
954                } else {
955                  showPhoneInputError(inputId)
956                }
957              } else {
958                if (errorMessage.classList.contains("phone-error")){
959                  hidePhoneInputError(inputId);
960                }
961              }
962            });
963        
964            input.addEventListener("countrychange", function() {
965              iti.setNumber('');
966            });
967        
968            input.addEventListener("keydown", function(e) {
969                var charCode = (e.which) ? e.which : e.keyCode;
970                if (charCode > 31 && (charCode < 48 || charCode >
970 57) && charCode !== 8) {
971                       e.preventDefault();
972              }
973             });
974          };
975        
976          var showPhoneInputError = function(inputId) {
977            var errorMessage =  document.getElementById("error-msg-" + inputId);
978            var input = document.getElementById(inputId);
979            errorMessage.classList.add("phone-error");
980            errorMessage.classList.remove("phone-error-hidden");
981            input.classList.add("phone-input-error");
982          };
983        
984        
985          window['recaptcha_callback'] = function() {
986          // Get all recaptchas in the DOM (there may be more than one form on the page).
987          var recaptchas = document.getElementsByClassName("g-recaptcha");
988          for (var i in recaptchas) {
989            // Set the recaptcha element ID, so the recaptcha can be applied to each element.
990            var recaptcha_id = "recaptcha_" + i;
991            recaptchas[i].id = recaptcha_id;
992            var el = document.getElementById(recaptcha_id);
993            if (el != null) {
994              var sitekey = el.getAttribute("data-sitekey");
995              var stoken = el.getAttribute("data-stoken");
996              grecaptcha.render(recaptcha_id, {"sitekey":sitekey,"stoken":stoken});
997            }
998          }
999        };  _load_script("https://www.google.com/recaptcha/api.js?onload=recaptcha_callback&render=explicit");
1000            var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};
1001          
1002            window._old_serialize = null;
1003          if (typeof serialize !== 'undefined') window._old_serialize = window.serialize;
1004          _load_script("//d3rxaij56vjege.cloudfront.net/form-serialize/0.3/serialize.min.js", function() {
1005            window._form_serialize = window.serialize;
1006            if (window._old_serialize) window.serialize = window._old_serialize;
1007          });
1008    
1009      var _form_serialize = function(form){if(!form||form.nodeName!=="FORM"){return }var i,j,q=[];for(i=0;i<form.elements.length;i++){if(form.elements[i].name===""){continue}switch(form.elements[i].nodeName){case"INPUT":switch(form.elements[i].type){case"tel":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].previousSibling.querySelector('div.iti__selected-dial-code').innerText)+encodeURIComponent(" ")+encodeURIComponent(form.elements[i].value));break;case"text":case"number":case"date":case"time":case"hidden":case"password":case"button":case"reset":case"submit":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"checkbox":case"radio":if(form.elements[i].checked){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value))}break;case"file":break}break;case"TEXTAREA":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"SELECT":switch(form.elements[i].type){case"select-one":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break;case"select-multiple":for(j=0;j<form.elements[i].options.length;j++){if(form.elements[i].options[j].selected){q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].options[j].value))}}break}break;case"BUTTON":switch(form.elements[i].type){case"reset":case"submit":case"button":q.push(form.elements[i].name+"="+encodeURIComponent(form.elements[i].value));break}break}}return q.join("&")};
1010    var form_submit = function(e) {
1011      e.preventDefault();
1012      if (validate_form()) {
1013        // use this trick to get the submit button & disable it using plain 
1013javascript
1014        document.querySelector('#_form_52_submit').disabled = true;
1015        //var serialized = _form_serialize(document.getElementById('_form_50_')).replace(/%0A/g, '\\n');
1016        var serialized = $(document.getElementById('_form_52_')).serialize();
1017        console.log(serialized)
1018        setCookie('optin', 60 * 24 * 60);
1019        //var err = form_to_submit.querySelector('._form_error');
1020        //err ? err.parentNode.removeChild(err) : false;
1021        _load_script('https://emasrls.activehosted.com/proc.php?' + serialized + '&jsonp=true');
1022      }
1023      return false;
1024    };
1025
1026    
1027
1028
1029    addEvent(form_to_submit, 'submit', form_submit);
1030          if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
1031            setTimeout(function(){ $('#optinModal').modal('show'); }, 30000);     
1032          }
1033        
1034            document.addEventListener("mousemove", function(e) {
1035                mouseX = e.clientX;
1036                mouseY = e.clientY;
1037            });
1038            
1039            document.getElementById('closeModalOptin').addEventListener("click", function(e) {
1040                console.log("click close");
1041                $('#optinModal').modal('hide');
1042              
1043            });
1044            $(document).mouseleave(function(e) {
1045              console.log('leave');
1046              console.log(getCookie('optin'));
1047              if (getCookie('optin') == false){
1048                console.log('cookie optin false');
1049                if(mouseY <= 5){
1050                  console.log('mouse out');
1051                  if ($('#optinModal').hasClass('show') == false)
1052                  {
1053                      console.log('show modal');
1054                      setCookie('optin', 60*24);
1055                      $('#optinModal').modal('show');
1056                  }    
1057                }
1058              }
1059            });
1060        
1061        
1062        })();
1063        
1064        </script>
1064
1065
1066
1067
1068
1069    <div class="container-fluid" style="background-color:#18212b; min-height:100px;">
1070      <div class="container">
1071        <div class="row">
1072          <div class="col-4 pt-3">
1073            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1074              Copyright 2026
1075            </p>
1076            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1077              EMA s.r.l.s. | p.i. 11740890014
1078            </p>
1079          </div>
1080          <div class="col-4 pt-3">
1081            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1082              <a href="/privacy" style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">Privacy policy</a>
1083            </p>
1084            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1085              <a href="/contatti/" style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">Contatti</a>
1086            </p>
1087            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1088              <a href="/disclosure_policy" style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">Amazon Disclosure</a>
1089            </p>
1090          </div>
1091          <div class="col-4 pt-3">
1092            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1093              All rights reserved
1094            </p>
1095            <p style="font-size:0.8rem; font-weight:300;color:#ccc; letter-spacing: 0.12rem;">
1096              Powered by <a href="https://flowygo.com/" style="margin-left 0.5em"><img src="https://cdn.shortpixel.ai/client/to_webp,q_glossy,ret_img,w_760/https://flowygo.com/wp-content/uploads/2020/08/LOGO_new_color.png" style="height:20px !important"></a>
1097            </p>
1098          </div>
1099        </div>
1100      </div>
1101    </div>
1102
1103
1104
1105     <!-- jQuery first, then Popper.js, then Bootstrap JS -->
1106    
1107    
1107<script src="/static/js/bootstrap.min.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
1107
1108    
1108<script async src="/static/js/intersection-observer.min.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
1108
1109    
1109<script async src="https://cdn.datatables.net/1.10.16/js/jquery.dataTables.min.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
1109
1110    <link async href="https://fonts.googleapis.com/css?family=Montserrat:300,400,600,800,900" rel="stylesheet" type="text/css" />
1111    <link async href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet" type="text/css" />
1112    <link async href="https://cdn.datatables.net/1.10.16/css/jquery.dataTables.min.css" rel="stylesheet" type="text/css" />
1113    <link async rel="stylesheet" type="text/css" href="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.css" />
1114    
1114<script async src="https://cdnjs.cloudflare.com/ajax/libs/cookieconsent2/3.1.0/cookieconsent.min.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
1114
1115
1116    
1117   
1118    
1119
1120    
1120<script async type="58ed5c6cfcee119e22b95ade-text/javascript" src="/jsi18n/"></script>
1120
1121    
1121<script async src="/static/js/base.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
1121
1122  
1122<script defer type="58ed5c6cfcee119e22b95ade-text/javascript">  $(function () {
1123  $('[data-toggle="tooltip"]').tooltip()
1124})</script>
vendor: 1 bytes, line 1124
1124
1125<script defer type="58ed5c6cfcee119e22b95ade-text/javascript">
1126var languageCode = "it";
1127var current_url = "detail:category";
1128var url_kwargs = JSON.parse('{\u0022category_slug\u0022: \u0022bridge\u0022}');
1129</script>
vendor: 1 bytes, line 1129
1129
1130<script defer type="58ed5c6cfcee119e22b95ade-text/javascript" src="/static/js/csrfToken.js"></script>
1130
1131
1132    
1133    
1133<script defer src="/static/js/cameraCat.js" type="58ed5c6cfcee119e22b95ade-text/javascript"></script>
vendor: 145 bytes, lines 1133-1136
1133
1134
1135
1136<script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="58ed5c6cfcee119e22b95ade-|49" defer></script>
1136<script>(function(){function c(){var b=a.contentDocument||(a.contentWindow&&a.contentWindow.document);if(b){var d=b.createElement('script');d.innerHTML="window.__CF$cv$params={r:'a4799c4bcbba813d',t:'MTc5MTUwOTMyNg=='};var a=document.createElement('script');a.src='/cdn-cgi/challenge-platform/scripts/jsd/main.js';document.getElementsByTagName('head')[0].appendChild(a);";b.getElementsByTagName('head')[0].appendChild(d)}}if(document.body){var a=document.createElement('iframe');a.height=1;a.width=1;a.style.position='absolute';a.style.top=0;a.style.left=0;a.style.border='none';a.style.visibility='hidden';document.body.appendChild(a);if('loading'!==document.readyState)c();else if(window.addEventListener)document.addEventListener('DOMContentLoaded',c);else{var e=document.onreadystatechange||function(){};document.onreadystatechange=function(b){e(b);'loading'!==document.readyState&&(document.onreadystatechange=e,c())}}}})();</script>
1136<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"a80f9ab138a340209d4816524f2159b8","r":1,"spa":2}' crossorigin="anonymous"></script>
1136
1137</body>

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.