PageSourceSearch

https://www.verbumradio.com/

html verbumradio.com collected 2026-10-01 15:03:55 UTC 89,660 bytes, 1,303 lines download raw bytes

1<!DOCTYPE html>
2<html lang="it">
3  <head>
4    <meta http-equiv="content-type" content="text/html; charset=utf-8">
5    <meta name="viewport" content="width=device-width, initial-scale=1.0">
6    <title>VerbumRadio — Le Sante Messe in diretta dalle chiese e dai santuari</title>
7  <link rel="canonical" href="https://www.verbumradio.com/">
8  <meta property="og:type" content="website">
9  <meta property="og:site_name" content="VerbumRadio">
10  <meta property="og:locale" content="it_IT">
11  <meta property="og:title" content="VerbumRadio — Le Sante Messe in diretta dalle chiese e dai santuari">
12  <meta property="og:description" content="Radio e video streaming professionali per parrocchie, santuari e comunità. Le Sante Messe in diretta su smart-TV, smartphone, assistenti vocali e principali social.">
13  <meta property="og:url" content="https://www.verbumradio.com/">
14  <meta property="og:image" content="https://www.verbumradio.com/immagini/og-verbumradio.jpg">
15  <meta name="twitter:card" content="summary_large_image">
16  <meta name="twitter:title" content="VerbumRadio — Le Sante Messe in diretta dalle chiese e dai santuari">
17  <meta name="twitter:description" content="Radio e video streaming professionali per parrocchie, santuari e comunità. Le Sante Messe in diretta su smart-TV, smartphone, assistenti vocali e principali social.">
18  <meta name="twitter:image" content="https://www.verbumradio.com/immagini/og-verbumradio.jpg">
19    <meta name="description" content="Radio e video streaming professionali per parrocchie, santuari e comunità. Le Sante Messe in diretta su smart-TV, smartphone, assistenti vocali e principali social.">
20    <meta name="keywords" content="Radio Parrocchiale, video streaming, web radio, regia video, dirette Sante Messe">
21    <meta name="robots" content="index, follow">
22    <link rel="preconnect" href="https://fonts.googleapis.com">
23    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="">
24    <link href="https://fonts.googleapis.com/css2?family=Lora:wght@400;500;600;700&amp;
24family=Inter:wght@400;500;600;700&amp;display=swap"
25
26      rel="stylesheet">
vendor: 71 bytes, lines 26-27
26
27    <script async="" src="https://www.googletagmanager.com/gtag/js?id=
27UA-127518698-1
vendor: 16 bytes, lines 27-28
27"></script>
28    
28<script>
vendor: 118 bytes, line 28
28window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
28UA-127518698-1
vendor: 3 bytes, line 28
28');
28</script>
28
29    <style>
30  :root{
31    --terra:#8a4020; --terra-dk:#6b3018; --terra-lt:#f5e8df; --terra-xlt:#fdf2ec; --terra-soft:#c98352;
32    --blu:#185FA5; --blu-dk:#124a82;
33    --brown:#2d2416; --brown-md:#5a4a38; --brown-lt:#8a7560; --brown-xlt:#c5b8a8;
34    --cream:#faf8f5; --cream-2:#f3ede4; --line:#e7ddd0;
35    --green:#4a7c59;
36  }
37  *{box-sizing:border-box;margin:0;padding:0}
38  html{scroll-behavior:smooth}
39  body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;color:var(--brown);background:var(--cream);line-height:1.6;overflow-x:hidden}
40  img{max-width:100%;height:auto;display:block}
41  h1,h2,h3{font-family:'Lora',Georgia,serif;font-weight:600;line-height:1.15;letter-spacing:-.01em}
42  a{color:inherit;text-decoration:none}
43  .wrap{max-width:1140px;margin:0 auto;padding:0 24px}
44
45  /* Topbar */
46  .topbar{position:sticky;top:0;z-index:50;background:rgba(250,248,245,.85);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
47  .topbar .wrap{display:flex;align-items:center;justify-content:space-between;height:64px;gap:16px}
48  .brand{text-decoration:none;cursor:pointer;font-family:'Lora',Georgia,serif;font-size:clamp(28px,4.6vw,38px);font-weight:700;color:var(--brown)}
49  .brand span{color:var(--terra)}
50  .top-nav{display:flex;align-items:center;gap:22px}
51  .top-nav a.lnk{font-size:14px;font-weight:600;color:var(--brown-md)}
52  .top-nav a.lnk:hover{color:var(--terra-dk)}
53  .nav-cta{background:var(--terra);color:#fff;padding:9px 18px;border-radius:9px;font-size:14px;font-weight:600;transition:.15s}
54  .nav-cta:hover{background:var(--terra-dk)}
55  .nav-toggle{display:none;background:none;border:none;font-size:27px;line-height:1;color:var(--brown);cursor:pointer;padding:2px 6px}
56  @media(max-width:720px){
57    .nav-toggle{display:block}
58    .top-nav{position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:var(--cream);border-bottom:1px solid var(--line);box-shadow:0 14px 26px -14px rgba(45,36,22,.35);padding:4px 0 10px;display:none}
59    .top-nav.open{display:flex}
60    .top-nav a.lnk{display:block;padding:14px 24px;font-size:16.5px;border-top:1px solid var(--line)}
61    .top-nav a.lnk:first-child{border-top:none}
62    .top-nav .nav-cta{margin:12px 24px 4px;text-align:center;font-size:16px;padding:13px}
63  }
64
65  /* Hero */
66  .hero{padding:64px 0 12px}
67  .hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:44px;align-items:center}
68  @media(max-width:880px){.hero-grid{grid-template-columns:1fr;gap:30px}}
69  .eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--terra-dk);background:var(--terra-xlt);border:1px solid var(--terra-lt);padding:6px 14px;border-radius:20px;margin-bottom:20px}
70  .live-dot{width:8px;height:8px;border-radius:50%;background:var(--terra);animation:pulse 1.8s ease-in-out infinite}
71  @keyframes pulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(138,64,32,.5)}50%{opacity:.65;box-shadow:0 0 0 6px rgba(138,64,32,0)}}
72  .hero h1{font-size:clamp(30px,4.6vw,48px);margin-bottom:18px}
73  .hero h1 .accent{color:var(--terra)}
74  .hero p.lead{font-size:clamp(16px,2vw,18px);color:var(--brown-md);max-width:32em;margin-bottom:14px}
75  .oggi{font-size:18px;color:var(--brown);margin-bottom:8px;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
76  .oggi-data{font-weight:700;color:var(--terra)}
77  .oggi-santo{font-weight:600;color:var(--terra)}
78  .oggi-santo:not(:empty)::before{content:"·";color:var(--brown-lt);margin-right:8px}
79  .news-head{display:flex;align-items:baseline;justify-content:flex-start;gap:14px;flex-wrap:wrap}
80  .news-updated{display:block;text-align:center;font-size:14px;font-weight:600;color:var(--brown-lt);margin-top:2px}
81  .updated b{color:var(--terra-dk)}
82  .cta-row{display:flex;gap:13px;flex-wrap:wrap}
83  .btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;border-radius:11px;font-size:15px;font-weight:600;cursor:pointer;border:none;transition:.16s;font-family:inherit}
84  .btn-primary{background:var(--terra);color:#fff}
85  .btn-primary:hover{background:var(--terra-dk);transform:translateY(-1px)}
86  .btn-ghost{background:transparent;color:var(--brown);border:1.5px solid var(--line)}
87  .btn-ghost:hover{border-color:var(--terra);color:var(--terra-dk)}
88  .btn-blu{background:var(--blu);color:#fff;border:none}
89  .btn-blu:hover{background:var(--blu-dk);transform:translateY(-1px)}
90  .hero-media{border-radius:18px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:0 24px 60px -28px rgba(45,36,22,.45)}
91  .hero-media img{width:100%}
92
93  /* Sections */
94  section{padding:58px 0}
95  #novita{background:var(--terra-xlt);border-top:1px solid var(--terra-lt);border-bottom:1px solid var(--terra-lt);padding:38px 0 44px}
96  .sec-eyebrow{font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--terra-dk);margin-bottom:10px}
97  .sec-title{font-size:clamp(24px,3.2vw,34px);margin-bottom:12px}
98  .sec-sub{color:var(--brown-md);font-size:16px;max-width:40em;margin-bottom:34px}
99  /* Titolo di sezione + pulsante WhatsApp "Chiedi informazioni" affiancato */
100  h2.has-wa{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
101  h2.has-wa--center{justify-content:center}
102  h2.has-wa--right{justify-content:flex-end}
103  .wa-btn{display:inline-flex;align-items:center;gap:8px;background:#25d366;color:#fff;
104    font-family:'Inter',system-ui,sans-serif;font-weight:700;font-size:14px;line-height:1;
105    text-decoration:none;padding:9px 15px;border-radius:999px;white-space:nowrap;
106    box-shadow:0 8px 20px -10px rgba(37,211,102,.85);transition:transform .15s ease,background .15s ease}
107  .wa-btn:hover{background:#1eb457;transform:translateY(-1px)}
108  .wa-btn:focus-visible{outline:2px solid #0b6b3a;outline-offset:2px}
109  .wa-ico{width:20px;height:20px;object-fit:contain;display:block;flex-shrink:0}
110  @media(max-width:620px){.wa-btn{font-size:13px;padding:8px 13px}.h2-wa-gap,h2.has-wa{gap:10px}}
111  .menu .sec-eyebrow,.menu .sec-title,.menu .sec-sub,
112  #chiese .sec-eyebrow,#chiese .sec-title,#chiese .sec-sub,
113  #app .sec-eyebrow,#app .sec-title,#app .sec-sub,
114  #novita .sec-title,#novita .sec-sub{text-align:center}
115  .menu .sec-sub,#chiese .sec-sub,#app .sec-sub,#novita .sec-sub{margin-left:auto;margin-right:auto}
116
117  /* Quick menu */
118  .menu{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
119  .menu-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
120  @media(max-width:880px){.menu-grid{grid-template-columns:1fr 1fr}}
121  @media(max-width:560px){.menu-grid{grid-template-columns:1fr}}
122  .mcard{background:var(--brown);border:1px solid rgba(201,131,82,.22);border-radius:16px;padding:22px;transition:.18s}
123  .mcard:hover{transform:translateY(-3px);box-shadow:0 16px 34px -18px rgba(0,0,0,.55);border-color:var(--terra-soft)}
124  .mcard h3{font-size:18px;margin-bottom:12px;display:flex;align-items:center;gap:9px;color:var(--cream)}
125  .mcard h3 svg{width:20px;height:20px;stroke:var(--terra-soft);flex-shrink:0}
126  .mcard ul{list-style:none;display:flex;flex-direction:column;gap:8px}
127  .mcard li a{display:inline-flex;align-items:center;gap:7px;font-size:14px;color:var(--brown-xlt);font-weight:500;transition:.14s}
128  .mcard li a:hover{color:var(--terra-soft)}
129  .mcard li a::before{content:'→';color:var(--terra-soft);font-weight:700}
130
131  /* Showcase */
132  .cc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
133  @media(max-width:980px){.cc-grid{grid-template-columns:repeat(3,1fr)}}
134  @media(max-width:720px){.cc-grid{grid-template-columns:repeat(2,1fr)}}
135  @media(max-width:440px){.cc-grid{grid-template-columns:1fr}}
136  .cc{background:#fff;border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:.18s;display:flex;flex-direction:column}
137  .cc:hover{transform:translateY(-3px);box-shadow:0 16px 34px -20px rgba(45,36,22,.34);border-color:var(--terra-lt)}
138  .cc-media{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--cream-2)}
139  .cc-media img{width:100%;height:100%;object-fit:cover;transition:.3s}
140  .cc:hover .cc-media img{transform:scale(1.04)}
141  .cc-body{padding:14px 15px 16px;display:flex;flex-direction:column;gap:6px;flex:1}
142  .cc-body h3{font-size:15.5px;line-height:1.25}
143  .cc-body h3 a:hover{color:var(--terra-dk)}
144  .cc-site{font-size:12.5px;color:var(--blu-dk);font-weight:600;margin-top:auto}
145  .cc-site:hover{text-decoration:underline}
146
147  /* Progetto */
148  .progetto{background:var(--brown);color:var(--cream)}
149  .progetto .sec-eyebrow{color:var(--terra-soft)}
150  .progetto .sec-title{color:#fff}
151  .prj-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:36px;align-items:start}
152  @media(max-width:880px){.prj-grid{grid-template-columns:1fr}}
153  .prj-text p{color:var(--brown-xlt);font-size:15.5px;margin-bottom:14px}
154  .prj-text b{color:#fff}
155  .prj-text strong{color:#fff;font-weight:700}
156  .prj-text .links{display:flex;flex-direction:column;gap:8px;margin:8px 0 4px}
157  .prj-text .links a{color:var(--terra-soft);font-weight:600;font-size:15px}
158  .prj-text .links a:hover{text-decoration:underline}
159  .prj-text .links a b{color:#fff}
160  .prj-text .ideas-title{margin-top:30px}
161  .prj-text ul{list-style:none;display:flex;flex-direction:column;gap:11px;margin-top:6px}
162  .prj-text li{position:relative;padding-left:18px;color:var(--brown-xlt);font-size:14.5px;line-height:1.55}
163  .prj-text li::before{content:'';position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--terra-soft)}
164  .prj-text li b{color:#fff;font-weight:700}
165  .hero p.lead strong{color:var(--brown);font-weight:700}
166  .prj-contacts{display:flex;flex-direction:column;gap:12px;margin-top:24px}
167  .pc{display:inline-flex;align-items:center;gap:11px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:13px 16px;color:#fff;font-weight:600;font-size:15px;transition:.15s}
168  .pc:hover{border-color:var(--terra-soft);background:rgba(138,64,32,.14)}
169  .pc svg{width:20px;height:20px;stroke:var(--terra-soft);flex-shrink:0}
170  .pc small{display:block;font-weight:500;font-size:11.5px;color:var(--brown-xlt);letter-spacing:.02em}
171  .prj-map{border-radius:16px;overflow:hidden;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px -22px rgba(0,0,0,.6)}
172  .prj-map iframe{display:block;width:100%;height:330px;border:0}
173
174  /* Novità — scorrimento lento continuo. L'altezza del viewport la fissa il JS
175     (= altezza della colonna a fianco); qui 520px è solo un valore di sicurezza. */
176  .news-window{position:relative}
177  .news-viewport{height:520px;overflow:hidden;position:relative;
178    -webkit-mask-image:linear-gradient(180deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%);
179            mask-image:linear-gradient(180deg,transparent 0,#000 20px,#000 calc(100% - 20px),transparent 100%)}
180  .news-list{list-style:none;display:flex;flex-direction:column;gap:0}
181  .news-list.is-scrolling{will-change:transform;animation:news-scroll linear infinite}
182  .news-viewport:hover .news-list.is-scrolling{animation-play-state:paused}
183  @keyframes news-scroll{from{transform:translateY(0)}to{transform:translateY(-50%)}}
184  .nw{padding:22px 0;border-top:1px solid var(--line)}
185  .nw:first-child{border-top:none}
186  @media(max-width:620px){.nw{gap:6px}}
187  @media(prefers-reduced-motion:reduce){
188    .news-list.is-scrolling{animation:none}
189    .news-viewport{overflow-y:auto}
190  }
191  .nw-date{font-size:13px;font-weight:700;color:var(--terra-dk);text-transform:uppercase;letter-spacing:.03em;margin-bottom:6px}
192  .nw-body h3{font-size:18px;margin-bottom:5px}
193  .nw-body p{color:var(--brown-md);font-size:14.5px}
194  .nw-body a{color:var(--blu-dk);font-weight:600;text-decoration:underline;text-underline-offset:2px}
195
196  /* App parrocchie */
197  .apps{background:linear-gradient(180deg,var(--cream),var(--cream-2))}
198  .app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
199  @media(max-width:880px){.app-grid{grid-template-columns:1fr 1fr}}
200  @media(max-width:520px){.app-grid{grid-template-columns:1fr}}
201  .app-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:12px;transition:.18s}
202  .app-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(45,36,22,.3);border-color:var(--terra-lt)}
203  .app-card h3{font-size:15.5px;line-height:1.25;min-height:2.5em;display:flex;align-items:center}
204  .store-row-mini{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}
205  .store-mini{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#fff;background:var(--brown);padding:7px 12px;border-radius:9px;transition:.15s}
206  .store-mini:hover{background:#3a2e1d;transform:translateY(-1px)}
207  .store-mini svg{width:15px;height:15px;color:var(--terra-soft)}
208  .store-mini.alexa{background:var(--blu-dk)}
209  .store-mini.alexa:hover{background:#0e3a68}
210  .store-mini.alexa svg{color:#9ec6ec}
211  .store-badge{display:inline-flex;align-items:center;line-height:0}
212  .store-badge img{height:44px;width:auto;display:block;border-radius:8px}
213  .store-badge .badge-txt{display:none}
214  .store-badge.nolg img{display:none}
215  .store-badge.nolg .badge-txt{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:#fff;background:var(--brown);padding:8px 13px;border-radius:9px;line-height:1}
216  .store-badge.alexa.nolg .badge-txt{background:var(--blu-dk)}
217
218  /* Final */
219  .final{text-align:center;background:linear-gradient(135deg,var(--terra-xlt),var(--cream))}
220  .final h2{font-size:clamp(26px,4vw,40px);margin-bottom:14px}
221  .final p{color:var(--brown-md);font-size:17px;margin-bottom:28px}
222
223  /* Footer */
224  footer{background:var(--brown);color:var(--brown-xlt);padding:40px 0;font-size:13px;text-align:center}
225  footer .brand{color:#fff;font-size:18px;margin-bottom:10px}
226  footer .brand span{color:var(--terra-soft)}
227  footer a{color:var(--terra-soft)}
228  footer p{margin-bottom:4px}
229
230  @media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
231
232  @keyframes ccpulse{0%,100%{opacity:1}50%{opacity:.3}}
233  /* ── Sezione canali radio (player stile radio-list) ── */
234  .radioch{background:linear-gradient(180deg,#241d14,#191309);border-top:1px solid var(--line)}
235  .radioch .sec-eyebrow{color:var(--terra-soft)}
236  .radioch .sec-title{color:#fff}
237  .radioch .sec-sub{color:var(--brown-xlt)}
238  .radioch .rc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:6px}
239  @media(max-width:760px){.radioch .rc-grid{grid-template-columns:1fr}}
240  .radioch .radio-card{background:#1a160f;border:1px solid #2a241a;border-radius:15px;padding:16px;transition:.25s;box-shadow:0 4px 12px rgba(0,0,0,.4)}
241  .radioch .radio-card:hover{border-color:var(--terra);box-shadow:0 0 22px rgba(138,64,32,.2);transform:translateY(-3px)}
242  .radioch .card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
243  .radioch .radio-title{display:block;font-weight:600;font-size:1.02rem;color:var(--terra-soft);text-decoration:none;flex:1;min-width:0;transition:color .2s}
244  .radioch a.radio-title:hover{color:#fff}
245  .radioch .listeners-badge{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;background:#0d0b07;border:1px solid #2a241a;border-radius:20px;padding:4px 10px;font-size:.8rem;font-weight:600;color:#9aa0a6;white-space:nowrap;line-height:1}
246  .radioch .listeners-badge svg{width:13px;height:13px;display:block;fill:currentColor}
247  .radioch .listeners-badge .dot{width:8px;height:8px;border-radius:50%;background:#555;flex-shrink:0}
248  .radioch .listeners-badge.online{color:#7ee787;border-color:#1f4023;background:#0c1a0e}
249  .radioch .listeners-badge.online .dot{background:#2ea043;box-shadow:0 0 6px #2ea043;animation:ccpulse 2s infinite}
250  .radioch .listeners-badge.offline{color:#777}
251  .radioch .listeners-badge.offline .dot{background:#666}
252  .radioch .listeners-badge.loading{color:#666}
253  .radioch .radio-card iframe{width:100%;height:150px;border:none;border-radius:10px;background:#000;display:block}
254  .radioch .sec-eyebrow,.radioch .sec-title,.radioch .sec-sub{text-align:center}
255  .radioch .sec-sub{margin-left:auto;margin-right:auto}
256
257  /* Rassegna stampa (sfoglia-pagine) */
258  .rassegna{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
259  .rassegna .sec-eyebrow,.rassegna .sec-title,.rassegna .sec-sub{text-align:center}
260  .rassegna .sec-sub{margin-left:auto;margin-right:auto}
261  .flip-wrap{display:flex;align-items:center;justify-content:center;gap:12px;max-width:1000px;margin:14px auto 0}
262  .rass-flip{flex:1;min-width:0;max-width:900px}
263  .flip-nav{flex-shrink:0;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:#fff;color:var(--terra-dk);font-size:26px;line-height:1;cursor:pointer;transition:.15s;display:flex;align-items:center;justify-content:center}
264  .flip-nav:hover{background:var(--terra);color:#fff;border-color:var(--terra)}
265  @media(max-width:560px){.flip-nav{width:38px;height:38px;font-size:22px}}
266  .rass-tools{text-align:center;margin-top:16px;font-size:13px;color:var(--brown-lt);font-weight:600}
267  .rass-tools a{color:var(--terra-dk)}
268  .rass-loading{text-align:center;color:var(--brown-lt);font-size:14px;padding:18px 0}
269  .rass-card{text-decoration:none;color:inherit}
270  .rass-ph{aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-size:46px;background:var(--terra-xlt);color:var(--terra);border-radius:12px}
271  .rass-info{padding:12px 4px}
272  .rass-info h3{font-family:'Lora',serif;font-size:15.5px;color:var(--brown);margin:0 0 6px}
273  .rass-info .go{font-size:13px;color:var(--terra-dk);font-weight:700;margin:0}
274
275  /* ─── Leggibilità su smartphone ─── */
276  @media(max-width:600px){
277    body{font-size:19px!important;line-height:1.72!important}
278    .hero h1{font-size:36px!important}
279    .lead,.hero p.lead{font-size:20px!important}
280    .sec-title{font-size:30px!important}
281    .sec-sub{font-size:19px!important}
282    /* notizie */
283    .nw-body h3{font-size:22px!important}
284    .nw-body p{font-size:19px!important}
285    .nw-date{font-size:16px!important}
286    .news-updated{font-size:16px!important}
287    /* mappa a fianco */
288    .map-title{font-size:24px!important}
289    .map-sub{font-size:16px!important}
290    /* informazioni principali */
291    .mcard h3{font-size:22px!important}
292    .mcard li a{font-size:18px!important}
293    /* chiese e canali */
294    .cc-body h3{font-size:18.5px!important}
295    .cc-site{font-size:15px!important}
296    .radioch .radio-title{font-size:18px!important}
297    /* progetto: testi, video, contatti */
298    .prj-text p{font-size:19px!important}
299    .prj-text li{font-size:18px!important}
300    .prj-text .links a{font-size:17.5px!important}
301    .pv-cap{font-size:15px!important}
302    .pc{font-size:17px!important}
303    .pc small{font-size:15px!important}
304    /* app */
305    .app-card h3{font-size:18.5px!important}
306    .store-mini,.store-badge.nolg .badge-txt{font-size:15px!important}
307    /* rassegna e footer */
308    .rass-tools{font-size:16px!important}
309    footer{font-size:16px!important}
310    /* menu mobile */
311    .top-nav a.lnk{font-size:18px!important}
312    .top-nav .nav-cta{font-size:17px!important}
313  }
314  /* Notizie + testimonianze a destra, mappa sotto (centrata e grande) */
315  .nov-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:30px;align-items:start}
316  @media(max-width:900px){.nov-grid{grid-template-columns:1fr;gap:26px}}
317  .nov-testi{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 14px 34px -22px rgba(45,36,22,.42)}
318  .nt-title{font-family:'Lora',Georgia,serif;font-size:20px;color:var(--brown);margin:0 0 4px}
319  .nt-sub{font-size:13.5px;color:var(--brown-lt);margin:0 0 16px}
320  .nt-empty{font-size:14px;color:var(--brown-lt);background:var(--cream-2);border:1px dashed var(--line);border-radius:12px;padding:18px 16px;text-align:center;line-height:1.5}
321  .nt-add{display:block;margin-top:16px;padding-top:14px;border-top:1px solid var(--line);font-size:13.5px;font-weight:700;color:var(--terra-dk);text-decoration:none;line-height:1.5}
322  .nt-add:hover{color:var(--terra)}
323  .nt-item{border-top:1px solid var(--line);padding:15px 0}
324  .nt-item:first-child{border-top:0;padding-top:0}
325  .nt-item:last-child{padding-bottom:0}
326  .nt-stars{color:#e0a83c;font-size:14px;letter-spacing:1px;margin-bottom:4px}
327  .nt-text{font-size:14px;color:var(--brown-md);line-height:1.55;margin-bottom:8px}
328  .nt-who b{font-size:13.5px;color:var(--brown)}
329  .nt-who small{display:block;font-size:12.5px;color:var(--brown-lt);margin-top:1px}
330  .nt-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
331  .nt-links a{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;text-decoration:none;padding:5px 11px;border-radius:20px;border:1px solid var(--line);transition:.15s}
332  .nt-links a.radio{color:var(--terra-dk);background:var(--terra-xlt);border-color:var(--terra-lt)}
333  .nt-links a.video{color:var(--blu-dk);background:#eaf2fb;border-color:#cfe0f2}
334  .nt-links a:hover{filter:brightness(.97)}
335  .nov-map{margin:38px auto 0;max-width:940px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px;box-shadow:0 14px 34px -22px rgba(45,36,22,.42);text-align:center}
336  .nov-right{display:flex;flex-direction:column;gap:24px}
337  .nov-right .nov-map{margin:0;max-width:none}
338  .map-title{font-family:'Lora',Georgia,serif;font-size:24px;color:var(--brown);margin:0 0 6px}
339  .map-sub{font-size:15px;color:var(--brown-lt);margin:0 0 16px}
340  .map-box{border-radius:14px;overflow:hidden;border:1px solid var(--line)}
341  .map-box iframe{display:block;width:100%;height:520px;border:0}
342  @media(max-width:900px){.nov-map{padding:16px;margin-top:30px}.map-box iframe{height:420px}}
343  @media(max-width:600px){.map-box iframe{height:360px}}
344
345  /* Video nel progetto (al posto della mappa) */
346  .prj-video{display:flex;flex-direction:column}
347  .pv-box{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;border:1px solid rgba(255,255,255,.12);box-shadow:0 18px 40px -22px rgba(0,0,0,.6)}
348  .pv-box iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
349  .pv-cap{display:block;margin-top:12px;font-size:13.5px;color:var(--brown-xlt);text-align:center}
350  .pv-cap a{color:var(--terra-soft);font-weight:600;text-decoration:underline;text-underline-offset:2px}
351  .prj-video .prj-contacts{margin-top:20px}
352  /* Dicono di noi (testimonianze) */
353  .testi{background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
354  .testi .sec-eyebrow,.testi .sec-title,.testi .sec-sub{text-align:center}
355  .testi .sec-sub{margin-left:auto;margin-right:auto}
356  .testi-media{text-align:center;margin-bottom:26px;font-size:15px;color:var(--brown-md)}
357  .testi-media .voto{font-family:'Lora',serif;font-size:26px;font-weight:700;color:var(--terra-dk)}
358  .testi-media .st{color:#e0a83c;letter-spacing:2px;font-size:17px}
359  .testi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
360  @media(max-width:960px){.testi-grid{grid-template-columns:1fr 1fr}}
361  @media(max-width:640px){.testi-grid{grid-template-columns:1fr}}
362  .tcard{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px 20px;box-shadow:0 8px 24px -18px rgba(45,36,22,.4);display:flex;flex-direction:column}
363  .tcard .q{font-family:'Lora',serif;font-size:34px;color:var(--terra-lt);line-height:.6;margin-bottom:8px}
364  .tcard .stars{color:#e0a83c;letter-spacing:2px;font-size:15px;margin-bottom:8px}
365  .tcard p{font-size:15.5px;color:var(--brown-md);line-height:1.65;flex:1;margin:0 0 14px}
366  .tcard .who{border-top:1px solid var(--line);padding-top:12px}
367  .tcard .who b{display:block;font-size:14.5px;color:var(--brown)}
368  .tcard .who small{font-size:13px;color:var(--brown-lt)}
369</style>
370  <link rel="stylesheet" href="theme.php?css">
371
372  
372<script type="application/ld+json">
373  {
374    "@context":"https://schema.org",
375    "@type":"Organization",
376    "name":"VerbumRadio",
377    "alternateName":"A.D.V. Telecommunications",
378    "url":"https://www.verbumradio.com/",
379    "logo":"https://www.verbumradio.com/immagini/og-verbumradio.jpg",
380    "description":"Radio e video streaming professionali per parrocchie e santuari: le Sante Messe in diretta.",
381    "email":"[email protected]",
382    "telephone":"+39 02 9517056",
383    "address":{"@type":"PostalAddress","streetAddress":"Via L. Restelli, 38/40","postalCode":"20064","addressLocality":"Gorgonzola","addressRegion":"MI","addressCountry":"IT"},
384    "contactPoint":{"@type":"ContactPoint","telephone":"+39 335 5990528","contactType":"customer service","email":"[email protected]","areaServed":"IT"}
385  }
386  </script>
386
387</head>
388  <body>
389    <div class="topbar">
390      <div class="wrap">
391        <a href="/index.html" class="brand">Verbum<span>Radio</span></a>
392        <button class="nav-toggle" id="navToggle" aria-label="Apri menu" aria-expanded="false">☰</button>
393        <nav class="top-nav" id="topNav">
394          <a class="lnk" href="#chiese">Chiese in diretta</a>
395          <a class="lnk" href="#informazioni">Informazioni</a>
396          <a class="lnk" href="vetrina-prodotti.html">Prodotti e servizi</a>
397          <a class="nav-cta" href="/ecommerce-verbumradio/landing.html">Visita il nostro e-shop →</a> </nav>
398      </div>
399    </div>
400    <header class="hero">
401      <div class="wrap hero-grid">
402        <div>
403          <h1>Le SS. Messe <span class="accent">in Diretta</span><br>
404            dalle Chiese e dai Santuari italiani</h1>
405          <p class="lead" style="font-style:italic">L'idea è stata fortemente voluta per permettere la
406              trasmissione in diretta delle SS. Messe in tutto il mondo,
407              provenienti dai <strong>Santuari</strong> e dalle <strong>Parrocchie</strong>:
408              diffondere la catechesi e informare i propri parrocchiani sulle
409              attività della comunità. La tecnologia a basso costo di internet
410              permette la diffusione della parola di Dio in ogni parte del mondo.</p>
411          <p class="oggi"><span class="oggi-data" id="oggiData"></span><span class="oggi-santo" id="oggiSanto"></span></p>
412        </div>
413        <div class="hero-media"> <img src="colomba-animata-640x480.GIF" alt="VerbumRadio — la voce della tua comunità">
414        </div>
415      </div>
416    </header>
417    <section id="novita">
418      <div class="wrap">
419        <h2 class="sec-title">Le ultime Notizie:</h2>
420        <div class="news-updated" id="newsUpdated"></div>
421        <p class="sec-sub">Nuovi canali, apparati e installazioni: Tutti gli
422            aggiornamenti più recenti del progetto.</p>
423        <div class="nov-grid">
424          <div class="news-window" id="newsWindow">
425            <div class="news-viewport" id="newsViewport">
426              <ul class="news-list" id="news-list"></ul>
427            </div>
428          </div>
429          <div class="nov-right">
430            <aside class="nov-testi">
431              <h3 class="nt-title">Testimonianze e recensioni</h3>
432              <p class="nt-sub">La voce delle parrocchie che trasmettono con noi.</p>
433              <div id="novTesti"><div class="nt-empty">Presto le prime testimonianze delle parrocchie.</div></div>
434              <a class="nt-add" href="gestione/login.php?next=testimonianze">✍️ La tua parrocchia trasmette con noi? Racconta la tua esperienza →</a>
435            </aside>
436            <div class="nov-map">
437              <h3 class="map-title">📍 VerbumRadio Maps</h3>
438              <p class="map-sub">Le chiese e i santuari collegati al circuito.</p>
439              <div class="map-box">
440                <iframe src="https://www.google.com/maps/d/embed?mid=zedWM1z_nlyk.kklVImxi7h04"
441                  title="Mappa delle installazioni VerbumRadio" loading="lazy"></iframe>
442              </div>
443            </div>
444          </div>
445        </div>
446      </div>
447    </section>
448    <section class="menu" id="informazioni">
449      <div class="wrap">
450        <h2 class="sec-title">Le informazioni principali:</h2>
451        <p class="sec-sub">Documentazione, ascolti, area tecnica, Listini,
452          e-commerce e accessi riservati: </p>
453        <div class="menu-grid">
454          <div class="mcard">
455            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
456
457                stroke-linejoin="round"><rect x="3" y="11" width="18" height="11"
458
459                  rx="2"></rect><path d="M7 11V7a5 5 0 0 1 10 0v4"></path></svg>Accessi
460              riservati</h3>
461            <ul>
462              <li><a href="gestione/login.php">Programmazione Video orari Messe:</a></li>
463              <li><a href="https://verbumtv.it:2020" target="_blank" rel="noopener">Accesso
464                  portale Video:</a></li>
465              <li><a href="https://radiocast.cloud/login">Accesso portale Radio:</a></li>
466            </ul>
467          </div>
468          <div class="mcard">
469            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
470
471                stroke-linejoin="round"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path><path
472
473                  d="M14 2v6h6"></path></svg>Listini e prodotti</h3>
474            <ul>
475              <li><a href="pdf/Listino_radio_2024.pdf">Listino apparati Audio:</a></li>
476              <li><a href="pdf/listino-video-2023.pdf">Listino apparati Video:</a></li>
477              <li><a href="landing.html">Catalogo completo A/V:</a></li>
478            </ul>
479          </div>
480          <div class="mcard">
481            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
482
483                stroke-linejoin="round"><path d="M3 18v-6a9 9 0 0 1 18 0v6"></path><path
484
485                  d="M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z"></path></svg>Ascolto
486              delle SS. Messe</h3>
487            <ul>
488              <li><a href="radio-list.html">Lista canali Radio per PC:</a></li>
489              <li><a href="radio-list-ai1.html">Lista canali Radio per
490                  Smartphone:</a></li>
491            </ul>
492          </div>
493          <div class="mcard">
494            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
495
496                stroke-linejoin="round"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path
497
498                  d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>Prodotti
499              e Servizi</h3>
500            <ul>
501              <li><a href="brochure_verbumradio.pdf">Depliant Chiese e Santuari:</a></li>
502              <li><a href="vetrina-prodotti.html">Vetrina prodotti:</a></li>
503              <li><a href="mailto:[email protected]">Informazioni
504                  commerciali:</a></li>
505              <li><a href="landing.html">Shop online &amp; servizi:</a></li>
506            </ul>
507          </div>
508          <div class="mcard">
509            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
510
511                stroke-linejoin="round"><path d="M12 20h9"></path><path d="M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4z"></path></svg>Area
512              tecnica</h3>
513            <ul>
514              <li><a href="info-radio.html">Come funziona la Radio:</a></li>
515              <li><a href="regia-automatica.pdf">Come funziona il Video:</a></li>
516              <li><a href="mailto:[email protected]">Contatti area tecnica:</a></li>
517            </ul>
518          </div>
519          <div class="mcard">
520            <h3><svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round"
521
522                stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.9
5221.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"></path></svg>Contatti</h3>
523            <ul>
524              <li><a href="https://wa.me/3355990528" target="_blank" rel="noopener">WhatsApp
525                  335 5990528</a></li>
526              <li><a href="tel:0029517056">Telefono 02 9517056</a></li>
527              <li><a href="mailto:[email protected]">[email protected]</a></li>
528            </ul>
529          </div>
530        </div>
531      </div>
532    </section>
533    <section id="chiese">
534      <div class="wrap">
535        <div class="sec-eyebrow">In diretta ora</div>
536        <h2 class="sec-title">Chiese e Santuari sui nostri canali</h2>
537        <p class="sec-sub">Alcune Chiese accendono le telecamere solo per le
538          celebrazioni religiose. </p>
539        <div class="cc-grid">
540          <article class="cc"> <a class="cc-media" href="bornago.html"><img src="immagini/messa-buttonize.jpg"
541
542                alt="Parrocchia di Bornago (Mi)" loading="lazy"></a>
543            <div class="cc-body">
544              <h3><a href="bornago.html">Parrocchia di Bornago (Mi)</a></h3>
545              <a class="cc-site" href="https://www.parrocchiedipessanoconbornago.it/wp/"
546
547                target="_blank" rel="noopener">parrocchiedipessanoconbornago.it
548                →</a> </div>
549          </article>
550          <article class="cc"> <a class="cc-media" href="mbosco.html"><img src="immagini/santuario-madonna-del-bosco-buttonize.jpg"
551
552                alt="Santuario Madonna del Bosco (Lc)" loading="lazy"></a>
553            <div class="cc-body">
554              <h3><a href="mbosco.html">Santuario Madonna del Bosco (Lc)</a></h3>
555              <a class="cc-site" href="https://www.madonnadelbosco.org" target="_blank"
556
557                rel="noopener">madonnadelbosco.org →</a> </div>
558          </article>
559          <article class="cc"> <a class="cc-media" href="caravaggio.html"><img
560
561                src="images/Caravaggio_Santuario256colori_buttonize.png" alt="Santuario di Caravaggio (Bg)"
562
563                loading="lazy"></a>
564            <div class="cc-body">
565              <h3><a href="caravaggio.html">Santuario di Caravaggio (Bg)</a></h3>
566              <a class="cc-site" href="http://www.santuariodicaravaggio.it" target="_blank"
567
568                rel="noopener">santuariodicaravaggio.it →</a> </div>
569          </article>
570          <article class="cc"> <a class="cc-media" href="legnano.html"><img src="immagini/260px-Legnano_S_Magno_buttonize.jpg"
571
572                alt="Basilica San Magno, Legnano (Mi)" loading="lazy"></a>
573            <div class="cc-body">
574              <h3><a href="legnano.html">Basilica San Magno, Legnano (Mi)</a></h3>
575              <a class="cc-site" href="http://www.parrocchiasanmagno.it/" target="_blank"
576
577                rel="noopener">parrocchiasanmagno.it →</a> </div>
578          </article>
579          <article class="cc"> <a class="cc-media" href="fie.html"><img src="immagini/parrocchia-fie.jpg"
580
581                alt="Chiesa S.M. Assunta, Fiè allo Sciliar (Bz)" loading="lazy"></a>
582            <div class="cc-body">
583              <h3><a href="fie.html">Chiesa S.M. Assunta, Fiè allo Sciliar (Bz)</a></h3>
584              <a class="cc-site" href="https://www.pfarrradio.it/" target="_blank"
585
586                rel="noopener">pfarrradio.it →</a> </div>
587          </article>
588          <article class="cc"> <a class="cc-media" href="acireale.html"><img src="immagini/acireale_buttonized.jpg"
589
590                alt="Chiesa S. Vincenzo Ferreri, Acireale (Ct)" loading="lazy"></a>
591            <div class="cc-body">
592              <h3><a href="acireale.html">Chiesa S. Vincenzo Ferreri, Acireale
593                  (Ct)</a></h3>
594              <a class="cc-site" href="http://www.sanvincenzoferreriacireale.it/"
595
596                target="_blank" rel="noopener">sanvincenzoferreriacireale.it →</a>
597            </div>
598          </article>
599          <article class="cc"> <a class="cc-media" href="sanquirico.html"><img
600
601                src="immagini/sanquirico.JPG" alt="Parrocchia San Quirico d'Orcia (Si)"
602
603                loading="lazy"></a>
604            <div class="cc-body">
605              <h3><a href="sanquirico.html">Parrocchia San Quirico d'Orcia (Si)</a></h3>
606              <a class="cc-site" href="http://www.parrsanquiricodorcia.it/" target="_blank"
607
608                rel="noopener">parrsanquiricodorcia.it →</a> </div>
609          </article>
610          <article class="cc"> <a class="cc-media" href="gorgonzola.html"><img
611
612                src="video_live/splashscreen/gorgonzola.jpg" alt="Parrocchia SS. Protasio e Gervasio, Gorgonzola (Mi)"
613
614                loading="lazy"></a>
615            <div class="cc-body">
616              <h3><a href="gorgonzola.html">Parrocchia SS. Protasio e Gervasio,
617                  Gorgonzola (Mi)</a></h3>
618              <a class="cc-site" href="http://www.chiesadigorgonzola.it/" target="_blank"
619
620                rel="noopener">
620chiesadigorgonzola.it →</a> </div>
621          </article>
622          <article class="cc"> <a class="cc-media" href="gorgonzola1.html"><img
623
624                src="video_live/splashscreen/gorgonzola1-buttonize.jpg" alt="Parrocchia S. Carlo, Gorgonzola (Mi)"
625
626                loading="lazy"></a>
627            <div class="cc-body">
628              <h3><a href="gorgonzola1.html">Parrocchia S. Carlo, Gorgonzola
629                  (Mi)</a></h3>
630              <a class="cc-site" href="http://www.chiesadigorgonzola.it/" target="_blank"
631
632                rel="noopener">chiesadigorgonzola.it →</a> </div>
633          </article>
634          <article class="cc"> <a class="cc-media" href="brescia_sanbenedetto.html"><img
635
636                src="immagini/altare-brescia.jpg" alt="Parrocchia San Benedetto, Brescia (Bs)"
637
638                loading="lazy"></a>
639            <div class="cc-body">
640              <h3><a href="brescia_sanbenedetto.html">Parrocchia San Benedetto,
641                  Brescia (Bs)</a></h3>
642            </div>
643          </article>
644          <article class="cc"> <a class="cc-media" href="video_live/fatebenefratelli/fatebenefratelli.html"><img
645
646                src="immagini/fatebenefratelli-320x240.jpg" alt="Fatebenefratelli, Cernusco s/N (Mi)"
647
648                loading="lazy"></a>
649            <div class="cc-body">
650              <h3><a href="video_live/fatebenefratelli/fatebenefratelli.html">Fatebenefratelli,
651                  Cernusco s/N (Mi)</a></h3>
652            </div>
653          </article>
654          <article class="cc"> <a class="cc-media" href="rovellasca.html"><img
655
656                src="immagini/rovellasca1.jpg" alt="Parrocchia SS. Pietro e Paolo, Rovellasca (Co)"
657
658                loading="lazy"></a>
659            <div class="cc-body">
660              <h3><a href="rovellasca.html">Parrocchia SS. Pietro e Paolo,
661                  Rovellasca (Co)</a></h3>
662              <a class="cc-site" href="https://lnx.parrocchiadirovellasca.it/" target="_blank"
663
664                rel="noopener">parrocchiadirovellasca.it →</a> </div>
665          </article>
666          <article class="cc"> <a class="cc-media" href="caldaro.html"><img src="immagini/altare-caldaro320x240.jpg"
667
668                alt="Parrocchia S. Maria Assunta, Caldaro (Bz)" loading="lazy"></a>
669            <div class="cc-body">
670              <h3><a href="caldaro.html">Parrocchia S. Maria Assunta, Caldaro
671                  (Bz)</a></h3>
672              <a class="cc-site" href="https://www.pfarrei-kaltern.it/de" target="_blank"
673
674                rel="noopener">pfarrei-kaltern.it →</a> </div>
675          </article>
676          <article class="cc"> <a class="cc-media" href="inzago.html"><img src="immagini/altare-inzago-web.jpg"
677
678                alt="Parrocchia S. Maria Assunta, Inzago (Mi)" loading="lazy"></a>
679            <div class="cc-body">
680              <h3><a href="inzago.html">Parrocchia S. Maria Assunta, Inzago (Mi)</a></h3>
681              <a class="cc-site" href="https://oratorioinzago.weebly.com/" target="_blank"
682
683                rel="noopener">oratorioinzago.weebly.com →</a> </div>
684          </article>
685          <article class="cc"> <a class="cc-media" href="video_live/berbenno/berbenno-smart.html"><img
686
687                src="video_live/berbenno/altare_berbenno-piccola.jpg" alt="Parrocchia S. Antonio Abate, Berbenno (Bg)"
688
689                loading="lazy"></a>
690            <div class="cc-body">
691              <h3><a href="video_live/berbenno/berbenno-smart.html">Parrocchia
692                  S. Antonio Abate, Berbenno (Bg)</a></h3>
693              <a class="cc-site" href="https://upsanpiro.wordpress.com/" target="_blank"
694
695                rel="noopener">upsanpiro.wordpress.com →</a> </div>
696          </article>
697          <article class="cc"> <a class="cc-media" href="https://www.verbumradio.com/monoscopio2.html"><img
698
699                src="immagini/monoscopio.jpg" alt="Canale di Test" loading="lazy"></a>
700            <div class="cc-body">
701              <h3><a href="https://www.verbumradio.com/monoscopio2.html">Canale
702                  di Test</a></h3>
703            </div>
704          </article>
705        </div>
706      </div>
707    </section>
708
709<section class="radioch" id="canali-radio">
710  <div class="wrap">
711    <div class="sec-eyebrow">Le Dirette Radio</div>
712    <h2 class="sec-title">I canali radio in diretta</h2>
713    <p class="sec-sub">Ascolta le celebrazioni in diretta dalle Parrocchie e dai Santuari. Il numero di ascoltatori è aggiornato in tempo reale.</p>
714    <div class="rc-grid">
715      <div class="radio-card">
716        <a href="https://www.radiomater.org/P/" class="radio-title" target="_blank" rel="noopener">Radio Mater</a>
717        <iframe src="https://radiocast.cloud/public/radiomater.org/embed" loading="lazy" title="Player · Radio Mater"></iframe>
718      </div>
719      <div class="radio-card">
720        <a href="http://www.santuario.it/" class="radio-title" target="_blank" rel="noopener">Santuario di Pompei — Basilica</a>
721        <iframe src="https://radiocast.cloud/public/santuario_pompei/embed" loading="lazy" title="Player · Santuario di Pompei — Basilica"></iframe>
722      </div>
723      <div class="radio-card">
724        <a href="http://www.santuario.it/" class="radio-title" target="_blank" rel="noopener">
724Santuario di Pompei — Cappella Bartolo Longo</a>
725        <iframe src="https://radiocast.cloud/public/pompei_cappella_bartolo_longo/embed" loading="lazy" title="Player · Santuario di Pompei — Cappella Bartolo Longo"></iframe>
726      </div>
727      <div class="radio-card">
728        <a href="http://www.santuario.it/" class="radio-title" target="_blank" rel="noopener">Santuario di Pompei — Piazza Giovanni XXIII</a>
729        <iframe src="https://radiocast.cloud/public/santuario_pompei_piazza_giovanni_xxiii/embed" loading="lazy" title="Player · Santuario di Pompei — Piazza Giovanni XXIII"></iframe>
730      </div>
731      <div class="radio-card">
732        <a href="http://www.santuariodicaravaggio.it/" class="radio-title" target="_blank" rel="noopener">Santuario S. Maria del Fonte, Caravaggio (BG)</a>
733        <iframe src="https://radiocast.cloud/public/relays_caravaggio/embed" loading="lazy" title="Player · Santuario S. Maria del Fonte, Caravaggio (BG)"></iframe>
734      </div>
735      <div class="radio-card">
736        <a href="http://www.madonnadelbosco.org/" class="radio-title" target="_blank" rel="noopener">Santuario Madonna del Bosco, Imbersago (LC)</a>
737        <iframe src="https://radiocast.cloud/public/relays_santuario_madonna_del_bosco/embed" loading="lazy" title="Player · Santuario Madonna del Bosco, Imbersago (LC)"></iframe>
738      </div>
739      <div class="radio-card">
740        <a href="https://www.parrocchiasciano.it/orari_ss_messe.html" class="radio-title" target="_blank" rel="noopener">Parrocchia S. Agata, Asciano (SI)</a>
741        <iframe src="https://radiocast.cloud/public/radio_gesu_e_maria/embed" loading="lazy" title="Player · Parrocchia S. Agata, Asciano (SI)"></iframe>
742      </div>
743      <div class="radio-card">
744        <a href="https://operadonguanellacomo.it/area-pastorale/santuario-sacro-cuore-como/" class="radio-title" target="_blank" rel="noopener">Santuario Sacro Cuore, Como (CO)</a>
745        <iframe src="https://radiocast.cloud/public/radio_sacro_cuore_como/embed" loading="lazy" title="Player · Santuario Sacro Cuore, Como (CO)"></iframe>
746      </div>
747      <div class="radio-card">
748        <a href="https://www.parrocchiaspiritosanto.eu/" class="radio-title" target="_blank" rel="noopener">Parrocchia dello Spirito Santo, Lanciano (CH)</a>
749        <iframe src="https://radiocast.cloud/public/parrocchia_di_lanciano/embed" loading="lazy" title="Player · Parrocchia dello Spirito Santo, Lanciano (CH)"></iframe>
750      </div>
751      <div class="radio-card">
752        <span class="radio-title">Suore Adoratrici di Canale (CN)</span>
753        <iframe src="https://radiocast.cloud/public/suore_adoratrici_di_canale/embed" loading="lazy" title="Player · Suore Adoratrici di Canale (CN)"></iframe>
754      </div>
755      <div class="radio-card">
756        <a href="https://www.villaimmacolata.net/" class="radio-title" target="_blank" rel="noopener">Radio Villa Immacolata, Torreglia (PD)</a>
757        <iframe src="https://radiocast.cloud/public/relays_villaimmacolata/embed" loading="lazy" title="Player · Radio Villa Immacolata, Torreglia (PD)"></iframe>
758      </div>
759      <div class="radio-card">
760        <a href="https://www.pfarrradio.it/" class="radio-title" target="_blank" rel="noopener">Parrocchia S. Maria Assunta, Fiè allo Sciliar (BZ)</a>
761        <iframe src="https://radiocast.cloud/public/relays_bolzano/embed" loading="lazy" title="Player · Parrocchia S. Maria Assunta, Fiè allo Sciliar (BZ)"></iframe>
762      </div>
763      <div class="radio-card">
764        <a href="http://www.parrocchiasanbartolomeo.it/" class="radio-title" target="_blank" rel="noopener">Parrocchia di S. Bartolomeo, Pistoia (PT)</a>
765        <iframe src="https://radiocast.cloud/public/chiesa_san_bartolomeo_pistoia/embed" loading="lazy" title="Player · Parrocchia di S. Bartolomeo, Pistoia (PT)"></iframe>
766      </div>
767      <div class="radio-card">
768        <a href="https://www.pfarrei-kaltern.it/it" class="radio-title" target="_blank" rel="noopener">Parrocchia S. Maria Assunta, Caldaro (BZ)</a>
769        <iframe src="https://radiocast.cloud/public/relays_caldaro/embed" loading="lazy" title="Player · Parrocchia S. Maria Assunta, Caldaro (
769BZ)"></iframe>
770      </div>
771      <div class="radio-card">
772        <a href="http://www.chiesadigorgonzola.it/" class="radio-title" target="_blank" rel="noopener">Parrocchia SS. Protasio e Gervasio, Gorgonzola (MI)</a>
773        <iframe src="https://radiocast.cloud/public/parrocchia_gorgonzola/embed" loading="lazy" title="Player · Parrocchia SS. Protasio e Gervasio, Gorgonzola (MI)"></iframe>
774      </div>
775      <div class="radio-card">
776        <a href="http://www.chiesadigorgonzola.it/" class="radio-title" target="_blank" rel="noopener">Parrocchia S. Carlo, Gorgonzola (MI)</a>
777        <iframe src="https://radiocast.cloud/public/parrocchia_san_carlo_gorgonzola/embed" loading="lazy" title="Player · Parrocchia S. Carlo, Gorgonzola (MI)"></iframe>
778      </div>
779      <div class="radio-card">
780        <a href="https://www.parrocchianoventa.org/" class="radio-title" target="_blank" rel="noopener">Parrocchia SS. Pietro e Paolo, Noventa Padovana (PD)</a>
781        <iframe src="https://radiocast.cloud/public/relays_noventa/embed" loading="lazy" title="Player · Parrocchia SS. Pietro e Paolo, Noventa Padovana (PD)"></iframe>
782      </div>
783      <div class="radio-card">
784        <a href="https://www.parrsanquiricodorcia.it/" class="radio-title" target="_blank" rel="noopener">Parrocc. SS. Quirico e Giulitta, S. Quirico d'Orcia (SI)</a>
785        <iframe src="https://radiocast.cloud/public/sanquirico1/embed" loading="lazy" title="Player · Parrocc. SS. Quirico e Giulitta, S. Quirico d'Orcia (SI)"></iframe>
786      </div>
787      <div class="radio-card">
788        <span class="radio-title">Comunità pastorale S. Piro, Berbenno (BG)</span>
789        <iframe src="https://radiocast.cloud/public/unita_pastorale_s._piro/embed" loading="lazy" title="Player · Comunità pastorale S. Piro, Berbenno (BG)"></iframe>
790      </div>
791      <div class="radio-card">
792        <span class="radio-title">Parrocchia San Bartolomeo, Caspano di Civo (SO)</span>
793        <iframe src="https://radiocast.cloud/public/relays_parrocchia_sondrio/embed" loading="lazy" title="Player · Parrocchia San Bartolomeo, Caspano di Civo (SO)"></iframe>
794      </div>
795      <div class="radio-card">
796        <span class="radio-title">Parrocchia di Bienno (BS)</span>
797        <iframe src="https://radiocast.cloud/public/parrocchia_di_bienno/embed" loading="lazy" title="Player · Parrocchia di Bienno (BS)"></iframe>
798      </div>
799      <div class="radio-card">
800        <span class="radio-title">Parrocchia di Santa Maria, Bienno (BS)</span>
801        <iframe src="https://radiocast.cloud/public/parrocchia_santa_maria_bienno/embed" loading="lazy" title="Player · Parrocchia di Santa Maria, Bienno (BS)"></iframe>
802      </div>
803      <div class="radio-card">
804        <span class="radio-title">Parrocchia S. Maria Assunta di Vertova (BG)</span>
805        <iframe src="https://radiocast.cloud/public/parrocchia_vertova_/embed" loading="lazy" title="Player · Parrocchia S. Maria Assunta di Vertova (BG)"></iframe>
806      </div>
807      <div class="radio-card">
808        <span class="radio-title">Radio Vaticana</span>
809        <iframe src="https://radiocast.cloud/public/radio_vaticana/embed" loading="lazy" title="Player · Radio Vaticana"></iframe>
810      </div>
811    </div>
812  </div>
813</section>
814
815    <section class="apps" id="app">
816      <div class="wrap">
817        <div class="sec-eyebrow">Sul tuo smartphone</div>
818        <h2 class="sec-title">Le App e Alexa per Santuari e Parrocchie:</h2>
819        <p class="sec-sub">Ogni comunità ha la sua app dedicata, con la diretta
820          radio e gli orari delle celebrazioni e gli avvisi. Disponibili su
821          Google Play e Skill per Alexa.</p>
822        <div class="app-grid">
823          <article class="app-card">
824            <h3>Radio Mater</h3>
825            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh605ba99103ad2" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-mater-nuova/dp/B0BN3YSGZM/ref=sr_1_1?crid=2TUEPWJ1UAP5E&amp;keywords=mater+nuova&amp;qid=1671466377&amp;s=digital-skills&amp;sprefix=mater+nuova%2Calexa-skills%2C91&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
826          </article>
827          <article class="app-card">
828            <h3>Parrocchia di Noventa (PD)</h3>
829            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh606c7d7954091" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-di-noventa/dp/B0BNBV11SB/ref=sr_1_1?crid=3EZYC97XP0KQT&amp;keywords=parrocchia+noventa&amp;qid=1671466417&amp;s=digital-skills&amp;sprefix=parrocchia+noventa%2Calexa-skills%2C73&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
830          </article>
831          <article class="app-card">
832            <h3>Santuario di Caravaggio (BG)</h3>
833            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh606584b74c509" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/dp/B0BQN6MVTS/ref=sr_1_1?crid=28EA4N56EEA2T&amp;keywords=santuario+di+caravaggio&amp;qid=1671561059&amp;s=digital-skills&amp;sprefix=santuario+di+caravaggio%2Calexa-skills%2C81&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
834          </article>
835          <article class="app-card">
836            <h3>Santuario del Sacro Cuore (CO)</h3>
837            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6151db4e95b98" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-sacro-cuore-como/dp/B0BNJDZ5S7/ref=sr_1_1?crid=32NR2KC5BI3SJ&amp;keywords=sacro+cuore+como&amp;qid=1671466469&amp;s=digital-skills&amp;sprefix=sacro+cuore+como%2Calexa-skills%2C74&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
838          </article>
839          <article class="app-card">
840            <h3>Santuario M. del Bosco (LC)</h3>
841            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh606712086ef3c" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/Santuario-della-Madonna-del-Bosco/dp/B0BN841CCJ/ref=sr_1_1?crid=Q0CSOOOYHGUZ&amp;keywords=santuario+della+madonna+del+bosco&amp;qid=1671466497&amp;s=digital-skills&amp;sprefix=santuario+della+madonna+del+boscoo%2Calexa-skills%2C85&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
842          </article>
843          <article class="app-card">
844            <h3>Parrocchia di Asciano (Si)</h3>
845            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6067260ab837b" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-di-asciano/dp/B0BN1T37F8/ref=sr_1_1?crid=847TAEJ16VGK&amp;keywords=parrocchia+di+asciano&amp;qid=1671466521&amp;s=digital-skills&amp;sprefix=parrocchia+di+asciano%2Calexa-skills%2C80&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
846          </article>
847          <article class="app-card">
848            <h3>Parrocchie Fie' allo Sciliar (Bz)</h3>
849            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6065ee84339d5" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-fi%C3%A8/dp/B0BNJ8V9DW/ref=sr_1_1?crid=23ZWB5SG4KYTC&amp;keywords=parrocchia+di+fi%C3%A8&amp;qid=1671467187&amp;s=digital-skills&amp;sprefix=parrocchia+di+fi%C3%A8%2Calexa-skills%2C95&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
850          </article>
851          <article class="app-card">
852            <h3>
852Parrocchia di Caldaro (Bz)</h3>
853            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6064922650e49" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-di-caldaro/dp/B0BNJ49WYB/ref=sr_1_1?crid=2NNOUZ6JRM9D3&amp;keywords=parrucca+di+caldaro&amp;qid=1671467420&amp;s=digital-skills&amp;sprefix=parrocchia+di+caldaro%2Calexa-skills%2C88&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
854          </article>
855          <article class="app-card">
856            <h3>Parrocchie di Caspano (So)</h3>
857            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh606743561450a" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-di-caspano/dp/B0BNJ27J2L/ref=sr_1_1?crid=1MJVQTHAGDKBH&amp;keywords=parrocchia+di+caspano&amp;qid=1671467497&amp;s=digital-skills&amp;sprefix=parrocchia+di+caspano%2Calexa-skills%2C82&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
858          </article>
859          <article class="app-card">
860            <h3>Unita' Pastorale Valgrigna (Bs)</h3>
861            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh61488da881ec5&amp;gl=IT" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-di-bienno/dp/B0BNJ318PG/ref=sr_1_1?crid=YE849ZU39O6E&amp;keywords=parrocchia+di+bienno&amp;qid=1671467560&amp;s=digital-skills&amp;sprefix=parrocchia+di+bienno%2Calexa-skills%2C79&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
862          </article>
863          <article class="app-card">
864            <h3>Parrocchie Gorgonzola (Mi)</h3>
865            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh605b4ca8c83c7" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-parrocchia-gorgonzola/dp/B0BN5Z3LRS/ref=sr_1_1?crid=2GR8D0KT8SAD7&amp;keywords=parrucca+gorgonzola&amp;qid=1671466922&amp;s=digital-skills&amp;sprefix=parrocchia+gorgonzola%2Calexa-skills%2C120&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
866          </article>
867          <article class="app-card">
868            <h3>Parrocchia Spirito Santo Lanciano</h3>
869            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh677120e2c0556" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-Parrocchia-di-Lanciano/dp/B0DRYG833M/ref=sr_1_1?crid=V04V1HFBC8PS&amp;dib=eyJ2IjoiMSJ9.1H__LsBcFScvIGq8p-yoXA.avoF3Q51wy8spsrktpUip1ofPBrq1S9Sz5oRJt4TcGk&amp;dib_tag=se&amp;keywords=parrocchia+di+lanciano&amp;qid=1750237560&amp;s=digital-skills&amp;sprefix=parrocchia+di+lanciano%2Calexa-skills%2C85&amp;sr=1-1&amp;tag=wkss20-20" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
870          </article>
871          <article class="app-card">
872            <h3>Parrocchia San Quirico D'Orcia (Si)</h3>
873            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6071bd3b83642" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a></div>
874          </article>
875          <article class="app-card">
876            <h3>Chiesa S. Vincenzo Ferreri Acireale (CT)</h3>
877            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6065d8b11068c" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a></div>
878          </article>
879          <article class="app-card">
880            <h3>Basilica San Magno Legnano (Mi)</h3>
881            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh6064301294d79" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a></div>
882          </article>
883          <article class="app-card">
884            <h3>Parrocchia di Vertova (Bg)</h3>
885            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh696e054fef3a9&amp;hl=it" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a><a class="store-badge alexa" href="https://www.amazon.it/advtelecom-Parrocchia-di-Vertova/dp/B0GHPGBXW4/ref=sr_1_1?crid=2FQ4VSVKI2FP1&amp;dib=eyJ2IjoiMSJ9.kAE1FDhgrlOVovUUgaTr4g.c9VoNZ7nIoHdl61MPqifljJ4bJ-ZB_t6W72SYQpRT4M&amp;dib_tag=se&amp;keywords=parrocchia+di+vertova&amp;qid=1770196974&amp;s=digital-skills&amp;sprefix=parrocchia+di+vertova%2Caps%2C236&amp;sr=1-1" target="_blank" rel="noopener" aria-label="Skill per Amazon Alexa"><img src="immagini/badge-amazon-alexa.png" alt="Skill per Amazon Alexa" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">◉ Alexa</span></a></div>
886          </article>
887          <article class="app-card">
888            <h3>Parrocchia di Inzago (Mi)</h3>
889            <div class="store-row-mini"><a class="store-badge" href="https://play.google.com/store/apps/details?id=webapp.ovh60812de556dda" target="_blank" rel="noopener" aria-label="Disponibile su Google Play"><img src="immagini/badge-google-play.png" alt="Disponibile su Google Play" onerror="this.parentNode.classList.add('nolg')"><span class="badge-txt">▶ Google Play</span></a></div>
890          </article>
891        </div>
892      </div>
893    </section>
894    <section class="progetto">
895      <div class="wrap">
896        <div class="prj-grid">
897          <div class="prj-text">
898            <div class="sec-eyebrow">Il progetto</div>
899            <h2 class="sec-title">Una breve introduzione:</h2>
900            <div class="links"> <a href="/edicola/rassegna_stampa_aggiornata.pdf"><b>Dicono
901                  di noi</b> — la rassegna stampa →</a> <a href="https://www.youtube.com/watch?v=9DLYad4Y5rM"
902
903                target="_blank" rel="noopener"><b>Premiazione Venezia 2015</b> —
904                premiati come migliore innovazione dell'anno →</a> </div>
905            <h2 class="sec-title ideas-title">Le nuove idee:</h2>
906            <ul>
907              <li><b>Ottobre 2022</b> — realizzazione delle applicazioni Radio
908                per Alexa.</li>
909              <li><b>Giugno 2023</b> — progettazione e realizzazione della Regia
910                Video Automatica.</li>
911              <li><b>Dicembre 2025</b> — nuovi encoder Radio economici,
912                riprogettati con l'AI: robusti, affidabili e con potenzialità
913                audio eccezionali.</li>
914              <li><b>Febbraio 2026</b> — encoder Radio con display da 7″ e
915                Vu-meter audio, con informazioni in tempo reale sullo stato
916                della rete.</li>
917              <li><b>Luglio 2026</b> — attivazione del sito e-commerce: apri un
918                canale Radio in pochi minuti, in completa autonomia e completo
919                di tutto.</li>
920            </ul>
921          </div>
922          <div class="prj-video">
923            <div class="pv-box">
924              <iframe src="https://www.youtube-nocookie.com/embed/9DLYad4Y5rM"
925                title="Premiazione H D'Oro — Venezia 2015" loading="lazy"
926                allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share"
927                referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
928            </div>
929            <span class="pv-cap">🏆 1° Premio “H D'Oro” — Venezia 2015 · <a href="https://www.youtube.com/watch?v=9DLYad4Y5rM" target="_blank" rel="noopener">apri su YouTube ↗</a></span>
930
931            <div class="prj-contacts">
932              <a class="pc" href="https://wa.me/3355990528" target="_blank" rel="noopener">
933                <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z"></path></svg>
934                <span>Scrivici su WhatsApp<small>335 5990528 — informazioni e consigli</small></span>
935              </a>
936              <a class="pc" href="tel:0029517056">
937                <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72c.13.96.36 1.9.7 2.81a2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45c.91.34 1.85.57 2.81.7A2 2 0 0 1 22 16.92z"></path></svg>
938                <span>Telefono e cellulare<small>02 9517056 — 335 5990528</small></span>
939              </a>
940              <a class="pc" href="mailto:[email protected]">
941                <svg viewBox="0 0 24 24" fill="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="2" y="4" width="20" height="16" rx="2"></rect><path d="m22 7-10 6L2 7"></path></svg>
942                <span>Scrivici una email<small>[email protected]</small></span>
943              </a>
944            </div>
945          </div>
946        </div>
947      </div>
948    </section>
949    <section class="rassegna" id="rassegna">
950      <div class="wrap">
951        <div class="sec-eyebrow">Hanno parlato di noi</div>
952        <h2 class="sec-title">Rassegna Stampa</h2>
953        <p class="sec-sub">Sfoglia le pagine della rassegna stampa. Tocca una pagina per aprire il PDF completo.</p>
954        <div class="flip-wrap">
955          <button class="flip-nav" id="rassPrev" type="button" aria-label="Pagina precedente">‹</button>
956          <div id="rassFlip" class="rass-flip"></div>
957          <button class="flip-nav" id="rassNext" type="button" aria-label="Pagina successiva">›</button>
958        </div>
959        <div class="rass-tools"><span id="rassCount"></span> · <a id="rassOpen" href="#" target="_blank" rel="noopener">Apri il PDF completo ↗</a></div>
960        <div class="rass-loading" id="rassLoading">Caricamento pagine…</div>
961      </div>
962    </section>
963    <section class="final">
964      <div class="wrap">
965        <h2>...e siete subito in onda </h2>
966        <p>Radio e video streaming, online in pochi minuti e in modo
967          completamente automatico, SENZA OPERATORI.</p>
968        <div><a class="btn btn-primary" href="/ecommerce-verbumradio/landing.html">Inizia
969            ora →</a></div>
970      </div>
971    </section>
972    <footer>
973      <div class="wrap">
974        <a href="/index.html" class="brand">Verbum<span>Radio</span></a>
975        <p>A.D.V. Telecommunications di Bogino Maurizio — P.IVA 10557300158</p>
976        <p>Sede legale: Via F. Meda, 16 · Sede operativa: Via L. Restelli, 38/40 — 20064
977          Gorgonzola (MI) · Tel. 02 9517056 · PEC [email protected]</p>
978        <p style="margin-top:10px">Copyright <a href="https://www.verbumradio.com">verbumradio.com</a>
979          · Web site powered by <a href="https://www.verbumradio.com">verbumradio.com</a></p>
980      </div>
981    </footer>
982    
982<script>
983/* Contatore visite (anonimo, senza cookie) */
984(function(){try{var i=new Image();i.src='./ecommerce-verbumradio/visit-counter.php?action=hit&p=index&_='+Date.now();}catch(e){}})();
985</script>
985 
985<script>
986/* Novità da news.json — scorrimento lento CONTINUO dentro la finestra (nastro verticale).
987   Ordine del file: dalla più recente alla più vecchia. Aggiornabili con l'editor, senza toccare l'HTML. */
988(function(){
989  var ul = document.getElementById('news-list');
990  var vp = document.getElementById('newsViewport');
991  if(!ul) return;
992
993  var SPEED = 26;   // velocità in pixel al secondo (più basso = più lento)
994
995  var mesi = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
996  function fmtDate(d){ return isNaN(d.getTime()) ? '' : d.getDate()+' '+mesi[d.getMonth()]+' '+d.getFullYear(); }
997  function fmtISO(s){ var p=String(s).split('-'); return p.length<3 ? '' : parseInt(p[2],10)+' '+mesi[parseInt(p[1],10)-1]+' '+p[0]; }
998  function esc(s){ var d=document.createElement('div'); d.textContent=(s==null?'':String(s)); return d.innerHTML; }
999  function itemHTML(n){
1000    return '<li class="nw"><span class="nw-date">'+esc(n.data)+'</span>'+
1001           '<div class="nw-body"><h3>'+esc(n.titolo)+'</h3><p>'+(n.testo||'')+'</p></div></li>';
1002  }
1003
1004  var reduce = !!(window.matchMedia && window.matchMedia('(prefers-reduced-motion:reduce)').matches);
1005
1006  var oneHTML = '';          // una copia della lista (HTML)
1007  var itemsN  = 0;
1008  var lastKey = '';          // per evitare ricostruzioni inutili
1009
1010  function fit(){
1011    if(!oneHTML) return;
1012    var right = document.querySelector('.nov-right');
1013    var wide  = window.innerWidth > 900;
1014    // altezza bersaglio: su desktop = colonna a fianco (arriva alla base della mappa);
1015    // su mobile (colonne impilate) un tetto ragionevole.
1016    var target = (wide && right)
1017        ? Math.round(right.getBoundingClientRect().height)
1018        : Math.min(520, Math.round((window.innerHeight || 800) * 0.7));
1019    if(target < 240) target = 240;
1020
1021    var key = target + 'x' + vp.clientWidth + 'x' + (reduce?1:0);
1022    if(key === lastKey) return;   // niente di rilevante è cambiato: non ricostruire
1023    lastKey = key;
1024
1025    vp.style.height = target + 'px';
1026
1027    // misura l'altezza di UNA copia (stato pulito)
1028    ul.classList.remove('is-scrolling');
1029    ul.style.animationDuration = '';
1030    ul.innerHTML = oneHTML;
1031    var copyH = ul.scrollHeight;
1032
1033    if(reduce || copyH <= target + 4){   // ci sta tutto (o animazioni ridotte): nessuno scorrimento
1034      return;
1035    }
1036    // duplica per un loop continuo senza stacchi
1037    ul.innerHTML = oneHTML + oneHTML;
1038    var lis = ul.querySelectorAll('.nw');
1039    for(var i = itemsN; i < lis.length; i++){ lis[i].setAttribute('aria-hidden','true'); }
1040    ul.style.animationDuration = Math.max(8, copyH / SPEED).toFixed(1) + 's';
1041    ul.classList.add('is-scrolling');
1042  }
1043
1044  function setup(items){
1045    itemsN  = items.length;
1046    oneHTML = items.map(itemHTML).join('');
1047    lastKey = '';
1048    requestAnimationFrame(fit);
1049
1050    // ricalcola quando la finestra o la colonna a fianco cambiano dimensione
1051    var rt = null;
1052    function schedule(){ clearTimeout(rt); rt = setTimeout(function(){ lastKey=''; fit(); }, 160); }
1053    window.addEventListener('resize', schedule);
1054    if('ResizeObserver' in window){
1055      var ro = new ResizeObserver(function(){ schedule(); });
1056      var right = document.querySelector('.nov-right');
1057      if(right) ro.observe(right);
1058      ro.observe(vp);
1059    } else {
1060      // fallback: la colonna testimonianze/mappa può caricarsi dopo → ricontrolla
1061      setTimeout(function(){ lastKey=''; fit(); }, 1200);
1062      setTimeout(function(){ lastKey=''; fit(); }, 2800);
1063    }
1064  }
1065
1066  var lastMod=null;
1067  fetch('news.json?_=' + Date.now(), {cache:'no-store'})
1068    .then(function(r){ if(!r.ok) throw new Error(r.status); lastMod=r.headers.get('Last-Modified'); return r.json(); })
1069    .then(function(data){
1070      var items = Array.isArray(data) ? data : ((data && data.notizie) ? data.notizie : []);
1071      var agg   = (data && !Array.isArray(data) && data.aggiornato) ? data.aggiornato : null;
1072      var when  = agg ? fmtISO(agg) : (lastMod ? fmtDate(new Date(lastMod)) : '');
1073      var nu = document.getElementById('newsUpdated');
1074      if(nu && when) nu.textContent = 'Aggiornato il ' + when;
1075      if(!items.length){ ul.innerHTML=''; return; }
1076      setup(items);
1077    })
1078    .catch(function(){
1079      ul.innerHTML = '<li class="nw"><div class="nw-body"><p style="color:#8a7560">Aggiornamenti non disponibili al momento.</p></div></li>';
1080    });
1081
1082  // pausa quando la scheda non è in primo piano (al ritorno lascia decidere al CSS: hover ecc.)
1083  document.addEventListener('visibilitychange', function(){
1084    ul.style.animationPlayState = document.hidden ? 'paused' : '';
1085  });
1086})();
1087
1088/* Data odierna + Santo del giorno (via santo.php, con cache lato server) */
1089(function(){
1090  var box = document.getElementById('oggiData'), s = document.getElementById('oggiSanto');
1091  var g = ['Domenica','Lunedì','Martedì','Mercoledì','Giovedì','Venerdì','Sabato'];
1092  var m = ['Gennaio','Febbraio','Marzo','Aprile','Maggio','Giugno','Luglio','Agosto','Settembre','Ottobre','Novembre','Dicembre'];
1093  var t = new Date();
1094  if(box) box.textContent = g[t.getDay()]+' '+t.getDate()+' '+m[t.getMonth()]+' '+t.getFullYear();
1095  fetch('santo.php?_=' + Date.now(), {cache:'no-store'})
1096    .then(function(r){ return r.json(); })
1097    .then(function(j){
1098      if(!j) return;
1099      if(j.data && box) box.textContent = (j.giorno ? j.giorno+' ' : '') + j.data;
1100      if(j.santo && s) s.textContent = j.santo;
1101    })
1102    .catch(function(){});
1103})();
1104</script>
vendor: 1 bytes, line 1104
1104
1105<script>
1106/* Badge ascoltatori in tempo reale (da radio-list-ai1.html) */
1107(function () {
1108  var SERVER = 'https://radiocast.cloud';
1109  var REFRESH_MS = 20000;
1110  var HEADPHONE_SVG =
1111    '<svg viewBox="0 0 24 24" aria-hidden="true"><path d="M12 3a9 9 0 0 0-9 9v5a3 3 0 0 0 3 3h1a1 1 0 0 0 1-1v-6a1 1 0 0 0-1-1H5v-0a7 7 0 0 1 14 0v0h-2a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h1a3 3 0 0 0 3-3v-5a9 9 0 0 0-9-9z"/></svg>';
1112  function normalize(s){ return (s||'').toLowerCase().replace(/[^a-z0-9]/g,''); }
1113  function getShortcode(card){
1114    var iframe = card.querySelector('iframe'); if(!iframe) return null;
1115    var m = (iframe.getAttribute('src')||'').match(/\/public\/([^\/]+)\/embed/);
1116    return m ? m[1] : null;
1117  }
1118  var cards = document.querySelectorAll('#canali-radio .radio-card');
1119  if(!cards.length) return;
1120  cards.forEach(function(card){
1121    var titleEl = card.querySelector('.radio-title'); if(!titleEl) return;
1122    var head = document.createElement('div'); head.className='card-head';
1123    titleEl.parentNode.insertBefore(head, titleEl); head.appendChild(titleEl);
1124    var badge = document.createElement('span'); badge.className='listeners-badge loading';
1125    badge.innerHTML = HEADPHONE_SVG + '<span class="count">…</span>';
1126    badge.title = 'Ascoltatori in tempo reale'; head.appendChild(badge);
1127    card.setAttribute('data-shortcode', getShortcode(card)||'');
1128  });
1129  function updateListeners(){
1130    fetch(SERVER + '/api/nowplaying?t=' + Date.now(), { cache:'no-store' })
1131      .then(function(res){ if(!res.ok) throw new Error('HTTP '+res.status); return res.json(); })
1132      .then(function(data){
1133        if(!Array.isArray(data)) throw new Error('Formato inatteso');
1134        var map = {};
1135        data.forEach(function(st){ var sc = st && st.station && st.station.shortcode; if(sc) map[normalize(sc)] = st; });
1136        cards.forEach(function(card){
1137          var badge = card.querySelector('.listeners-badge'); if(!badge) return;
1138          var countEl = badge.querySelector('.count');
1139          var st = map[normalize(card.getAttribute('data-shortcode'))];
1140          badge.classList.remove('loading');
1141          if(!st){ badge.classList.remove('online'); badge.classList.add('offline'); countEl.textContent='—'; badge.title='Dati non disponibili'; return; }
1142          var listeners = st.listeners || {}; var n = listeners.total; if(n==null) n=listeners.current; if(n==null) n=0;
1143          if(st.is_online === false){ badge.classList.remove('online'); badge.classList.add('offline'); countEl.textContent='offline'; badge.title='Stazione offline'; }
1144          else { badge.classList.remove('offline'); badge.classList.add('online'); countEl.textContent=n; badge.title=n+' ascoltatori in onda'; }
1145        });
1146      })
1147      .catch(function(err){
1148        console.error('Errore ascoltatori:', err);
1149        document.querySelectorAll('#canali-radio .listeners-badge').forEach(function(b){
1150          var c=b.querySelector('.count'); if(c && c.textContent==='…'){ b.classList.remove('loading'); b.classList.add('offline'); c.textContent='—'; }
1151        });
1152      });
1153  }
1154  updateListeners();
1155  setInterval(updateListeners, REFRESH_MS);
1156})();
1157</script>
vendor: 1 bytes, line 1157
1157
1158<script src="https://cdn.jsdelivr.net/npm/[email protected]/build/pdf.min.js"></script>
vendor: 1 bytes, line 1158
1158
1159<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/page-flip.browser.js"></script>
vendor: 1 bytes, line 1159
1159
1160<script>
1161(function(){
1162  /* ===== PDF della rassegna stampa (tutte le pagine in sequenza). Cambia solo questo percorso: ===== */
1163  var PDF_URL = 'edicola/rassegna_stampa_aggiornata.pdf';
1164  /* ================================================================================================ */
1165  var el = document.getElementById('rassFlip');
1166  var loading = document.getElementById('rassLoading');
1167  if(!el) return;
1168  var PF = (window.St && window.St.PageFlip) || window.PageFlip;
1169  function hideLoading(){ if(loading) loading.style.display='none'; }
1170  function fallback(){
1171    hideLoading();
1172    el.innerHTML = '<a class="rass-card" href="'+PDF_URL+'" target="_blank" rel="noopener" style="display:block;max-width:340px;margin:0 auto"><div class="rass-ph">📄</div><div class="rass-info" style="text-align:center"><h3>Rassegna Stampa</h3><p class="go">📄 Apri il PDF</p></div></a>';
1173  }
1174  if(typeof pdfjsLib==='undefined' || !PF){ fallback(); return; }
1175  pdfjsLib.GlobalWorkerOptions.workerSrc='https://cdn.jsdelivr.net/npm/[email protected]/build/pdf.worker.min.js';
1176
1177  // Renderizza una pagina centrata su un foglio uniforme SW x SH (sfondo bianco)
1178  function renderPage(pdf, num, SW, SH){
1179    return pdf.getPage(num).then(function(page){
1180      var nat = page.getViewport({scale:1});
1181      var scale = Math.min(SW/nat.width, SH/nat.height);
1182      var vp = page.getViewport({scale:scale});
1183      var tmp = document.createElement('canvas');
1184      tmp.width = Math.max(1, Math.floor(vp.width));
1185      tmp.height = Math.max(1, Math.floor(vp.height));
1186      return page.render({canvasContext:tmp.getContext('2d'), viewport:vp}).promise.then(function(){
1187        var sheet=document.createElement('canvas'); sheet.width=SW; sheet.height=SH;
1188        var ctx=sheet.getContext('2d'); ctx.fillStyle='#ffffff'; ctx.fillRect(0,0,SW,SH);
1189        ctx.drawImage(tmp, Math.round((SW-tmp.width)/2), Math.round((SH-tmp.height)/2));
1190        return sheet.toDataURL('image/jpeg',0.82);
1191      });
1192    }).catch(function(){ return null; });
1193  }
1194
1195  pdfjsLib.getDocument(PDF_URL).promise.then(function(pdf){
1196    var total=pdf.numPages;
1197    return pdf.getPage(1).then(function(p1){
1198      var v1=p1.getViewport({scale:1});
1199      var ratio=v1.height/v1.width;               // orientamento/proporzione dalla 1a pagina
1200      var SW=820, SH=Math.round(SW*ratio);
1201      var tasks=[]; for(var p=1;p<=total;p++){ tasks.push(renderPage(pdf,p,SW,SH)); }
1202      return Promise.all(tasks).then(function(list){
1203        var imgs=list.filter(Boolean);
1204        if(!imgs.length){ fallback(); return; }
1205        hideLoading();
1206        var open=document.getElementById('rassOpen'); if(open) open.href=PDF_URL;
1207        var pf=new PF(el, { width:SW, height:SH, size:'stretch',
1208          minWidth:300, maxWidth:820, minHeight:Math.round(300*ratio), maxHeight:Math.round(820*ratio),
1209          maxShadowOpacity:.4, showCover:false, mobileScrollSupport:true, drawShadow:true, flippingTime:700 });
1210        pf.loadFromImages(imgs);
1211        var cnt=document.getElementById('rassCount');
1212        function upd(){ if(cnt) cnt.textContent='Pagina '+(pf.getCurrentPageIndex()+1)+' / '+imgs.length; }
1213        pf.on('flip', upd); upd();
1214        var pv=document.getElementById('rassPrev'), nx=document.getElementById('rassNext');
1215        if(pv) pv.onclick=function(){ pf.flipPrev(); };
1216        if(nx) nx.onclick=function(){ pf.flipNext(); };
1217      });
1218    });
1219  }).catch(function(){ fallback(); });
1220})();
1221</script>
vendor: 1 bytes, line 1221
1221
1222<script>
1223(function(){
1224  var t=document.getElementById('navToggle'), n=document.getElementById('topNav');
1225  if(!t||!n) return;
1226  t.addEventListener('click', function(){ var o=n.classList.toggle('open'); t.setAttribute('aria-expanded', o?'true':'false'); });
1227  n.addEventListener('click', function(e){ if(e.target.closest('a')){ n.classList.remove('open'); t.setAttribute('aria-expanded','false'); } });
1228})();
1229</script>
vendor: 1 bytes, line 1229
1229
1230<script>
1231/* Testimonianze e recensioni — colonna a fianco delle notizie (con link ai canali dell'autore) */
1232(function(){
1233  var box=document.getElementById('novTesti');
1234  if(!box) return;
1235  function stars(n){ n=parseInt(n,10)||0; return n>0 ? '★'.repeat(n)+'☆'.repeat(5-n) : ''; }
1236  function esc(s){ return String(s==null?'':s).replace(/[&<>"]/g,function(c){return {'&':'&amp;','<':'&lt;','>':'&gt;','"':'&quot;'}[c];}); }
1237  fetch('testimonianze.json?_='+Date.now(),{cache:'no-store'})
1238    .then(function(r){ return r.ok ? r.json() : []; })
1239    .then(function(all){
1240      var list=(Array.isArray(all)?all:[]).filter(function(t){ return t && t.stato==='pubblicata'; });
1241      if(!list.length) return;          // resta il placeholder "Presto le prime testimonianze"
1242      list.reverse();                    // più recenti prima
1243      var html='';
1244      list.slice(0,5).forEach(function(t){
1245        var txt=(t.testo||''); if(txt.length>180) txt=txt.slice(0,180).replace(/\s+\S*$/,'')+'…';
1246        var radio=t.radioUrl||t.radio||'', video=t.videoUrl||t.video||'';
1247        var links='';
1248        if(radio) links+='<a class="radio" href="'+esc(radio)+'" target="_blank" rel="noopener">📻 Canale radio</a>';
1249        if(video) links+='<a class="video" href="'+esc(video)+'" target="_blank" rel="noopener">🎥 Canale video</a>';
1250        html+='<div class="nt-item">'+
1251          (parseInt(t.stelle,10)>0 ? '<div class="nt-stars">'+stars(t.stelle)+'</div>' : '')+
1252          '<p class="nt-text">'+esc(txt)+'</p>'+
1253          '<div class="nt-who"><b>'+esc(t.nome||'')+'</b>'+
1254          ((t.ruolo||t.chiesa) ? '<small>'+esc([t.ruolo,t.chiesa].filter(Boolean).join(' · '))+'</small>' : '')+'</div>'+
1255          (links ? '<div class="nt-links">'+links+'</div>' : '')+
1256        '</div>';
1257      });
1258      box.innerHTML=html;
1259    })
1260    .catch(function(){});
1261})();
1262</script>
vendor: 1 bytes, line 1262
1262
1263<script>
1264/* Pulsante WhatsApp "Chiedi informazioni" accanto ai titoli delle sezioni (dalle notizie in giù).
1265   Numero: +39 335 599 0528 · icona: immagini/whatsapp.png · messaggio precompilato con il tema della sezione. */
1266(function(){
1267  var TEL  = '393355990528';
1268  var ICON = 'immagini/whatsapp.png';
1269
1270  var titles = [].slice.call(document.querySelectorAll('h2.sec-title'));
1271  var fin = document.querySelector('.final h2');
1272  if(fin) titles.push(fin);
1273  if(!titles.length) return;
1274
1275  titles.forEach(function(h2){
1276    if(h2.classList.contains('has-wa')) return;
1277
1278    var t = (h2.textContent || '').trim()
1279              .replace(/^[.\s…]+/, '')      // via i puntini iniziali (es. "...e siete subito in onda")
1280              .replace(/[::.\s…]+$/, '');  // via punteggiatura finale (es. "Le nuove idee:")
1281    var msg = 'Salve, vorrei chiedere informazioni' + (t ? ' su: ' + t : '') + ' (VerbumRadio).';
1282    var href = 'https://wa.me/' + TEL + '?text=' + encodeURIComponent(msg);
1283
1284    var a = document.createElement('a');
1285    a.className = 'wa-btn';
1286    a.href = href;
1287    a.target = '_blank';
1288    a.rel = 'noopener';
1289    a.setAttribute('aria-label', 'Chiedi informazioni su WhatsApp' + (t ? ': ' + t : ''));
1290    a.innerHTML = '<img class="wa-ico" src="' + ICON + '" alt="" aria-hidden="true"><span>Chiedi informazioni</span>';
1291
1292    // rispetta l'allineamento del titolo
1293    var ta = (window.getComputedStyle(h2).textAlign || 'left');
1294    h2.classList.add('has-wa');
1295    if(ta === 'center') h2.classList.add('has-wa--center');
1296    else if(ta === 'right' || ta === 'end') h2.classList.add('has-wa--right');
1297
1298    h2.appendChild(a);
1299  });
1300})();
1301</script>
1301
1302</body>
1303</html>

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.