PageSourceSearch

https://zak.tv/karlovarsky-kraj

html zak.tv collected 2026-10-08 22:56:30 UTC 120,122 bytes, 2,062 lines download raw bytes

1<!DOCTYPE html>
2<html prefix="og: http://ogp.me/ns#">
3<head>
4	
4<script src="/js/google-consent.js?v=42X433GKRAp6Ovy95Nby-qA-nUUpx-2vNJJDTgQ5YN4"></script>
4
5
6	<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 6-7
6
7	<script async src="https://www.googletagmanager.com/gtag/js?id=
7G-5KTF9VQQV0
vendor: 13 bytes, lines 7-8
7"></script>
8	
8<script>
9		gtag('js', new Date());
10
11		gtag('config', 'G-5KTF9VQQV0');
12	</script>
12
13
14	<!-- Google AdSense -->
15	
15<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-1914100961537914"
16     crossorigin="anonymous"></script>
16
17
18	
18<script>
19		if (localStorage.getItem('darkmode') === '1') {
20			document.documentElement.classList.add('darkmode');
21		}
22	</script>
22
23
24	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
25	<meta http-equiv="content-language" content="cs" />
26
27	<meta name="keywords" content="plzen, plze&#x148;, zpr&#xE1;vy, aktuality, novinky, ud&#xE1;losti, kultura, sport, region, informace, m&#x11B;sto plze&#x148;, plzensk&#xFD; kraj, d&#x11B;n&#xED;" />
28
29	<meta name="description" content="Aktu&#xE1;ln&#xED; zpr&#xE1;vy a novinky z Plzn&#x11B; a okol&#xED;. Sleduj ud&#xE1;losti, kulturu, sport i d&#x11B;n&#xED; ve m&#x11B;st&#x11B; na jednom m&#xED;st&#x11B; na Plzen.cz" />
30
31	<meta name="robots" content="index, follow" />
32	<meta name="googlebot-news" content="index, follow" />
33
34	<meta charset="utf-8" />
35	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
36	<meta name="viewport" content="width=device-width, initial-scale=1.0" />
37	<meta property="og:site_name" content="zak.tv" />
38	<meta property="og:locale" content="cs_cz" />
39
40	<meta name="theme-color" content="#c70005" />
41	<meta name="msapplication-navbutton-color" content="#c70005" />
42	<meta name="mobile-web-app-capable" content="yes" />
43	<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
44
45	<link rel="icon" type="image/x-icon" href="/favicon.ico">
46
47	<title>Karlovarsk&#xFD; kraj | ZAK.TV</title>
48
49
50
51	<link rel="canonical" href="https://www.zak.tv/karlovarsky-kraj" />
52	<link rel="alternate" type="application/rss+xml" title="ZAK.tv – RSS" href="/rss/karlovarsky-kraj" />
53
54
55	
55<script type="application/ld+json">
56		{"@context":"https://schema.org","@type":"NewsMediaOrganization","@id":"https://www.zak.tv/#organization","name":"ZAK.tv","url":"https://www.zak.tv","logo":{"@type":"ImageObject","url":"https://www.zak.tv/images/zak-tv-logo.png","width":512,"height":512},"areaServed":{"@type":"AdministrativeArea","name":"Západní Čechy"},"publishingPrinciples":"https://www.zak.tv/redakce","sameAs":["https://www.wikidata.org/wiki/Q138637938","https://www.facebook.com/tvzak","https://www.youtube.com/televizezak"]}
57	</script>
57
58
59	
60
61	<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900,100i,300i,400i,500i,700i,900i&amp;display=swap&amp;subset=latin-ext">
62	<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Google+Sans:100,300,400,500,700,900,100i,300i,400i,500i,700i,900i&amp;subset=latin-ext">
63
64	
64<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=63fc60b1b0cf820012575ac1&product=sop' async='async'></script>
64
65
66	<link href="/css/app.min.css?v=8Cd51oHP3JBpf1ntRZIuvvB4gTpj_ggHnjqY7uw_OT4" rel="stylesheet">
67	<link href="/css/fancybox.css" rel="stylesheet">
68	<link href="https://vjs.zencdn.net/8.0.4/video-js.css" rel="stylesheet" />
69	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert2.min.css">
70	<link href="/webfonts/fontawesome-6.5.1/css/all.min.css" rel="stylesheet">
71
72	<link href="/css/zaktv.min.css?v=bO0Bpi8CPboOT9M8zya5cSUdoKTpRjBbAEk4crEnEDw" rel="stylesheet">
73
74	
74<script src="/js/jquery.min.js"></script>
74
75
76	
76<script src="https://ssp.seznam.cz/static/js/ssp.js"></script>
76
77
78<link rel="stylesheet" href="/css/political-advertising.css?v=bS5N0CTmjGpijiNjdX0uCxcPH0z1YJaSYfjbWquQNcA" />
79	<link href="/css/privacy-settings.css?v=0KKXOcLl3ZsRFOSH24DxPuSkVnMz2Iv3p2OVYCIpPeY" rel="stylesheet">
80</head>
81
82<body>
83	<div class="d-flex justify-content-center branding desktop-only" id="branding-rotation"
84     data-campaign-id="">
85    <div class="brand-w2k"></div>
86</div>
87<script src="/js/branding.js?v=nw-zTH-fAm9jhqcRhUyA3D79cIEmdziLVSu6w-YPM-E" defer></script>
87
88
89	
90<header class="header-area">
91
92	<div class="header-navbar-bottom pt-2 pt-lg-0">
93
94		<div class="themeix-menu-selector px12">
95			
96			<nav class="navbar navbar-expand-lg">
97				<div class="collapse navbar-collapse" id="main_nav" style="display: block;">
98
99					<a href="/">
100						<img class="nav-brand-logo" src="/images/zaktv-wlogo-w.svg">
101						<img class="nav-brand-logo-mobile" src="/images/zaktv-logo.svg">
102					</a>
103					<img class="desktop-only my-auto nav-tube" src="/images/tube.svg">
104
105					<div class="desktop-nav">
106						
107						<ul class="navbar-nav me-auto">
108							<li class="nav-item hl noselect dropdown">
109								<a class="nav-link dropdown-toggle hand" href="/zpravodajstvi">Zpravodajství</a>
110								<div class="dropped-nav">
111									<div class="region-select">
112										<a class="dropdown-item" href="/plzensky-kraj" alt="">Plzeňský kraj</a>
113										<a class="dropdown-item" href="/karlovarsky-kraj" alt="">Karlovarský kraj</a>
114									</div>
115								</div>
116							</li>
117							<li class="nav-item">
118								<a class="nav-link nav-link-static" href="/aktualne" alt="Aktuálně">Aktuálně</a>
119							</li>
120							<li class="nav-item">
121								<a class="nav-link nav-link-static" href="/krimi" alt="Krimi západ"> Krimi západ</a>
122							</li>
123							<li class="nav-item">
124								<a class="nav-link nav-link-static" href="/kultura" alt="Kultura"> Kultura</a>
125							</li>
126							<li class="nav-item">
127								<a class="nav-link nav-link-static" href="/sport" alt="Sport"> Sport</a>
128							</li>
129							<li class="nav-item">
130								<a class="nav-link nav-link-static" href="/doprava" alt="Doprava"> Doprava</a>
131							</li>
132							<li class="nav-item">
133								<a class="nav-link nav-link-static" href="/lifestyle" alt="Lifestyle">Lifestyle</a>
134							</li>
135							<li class="nav-item">
136								<a class="nav-link nav-link-static" href="/webkamera" alt="Webkamera">Webkamera</a>
137							</li>
138						</ul>
139					</div>
140				</div>
141				<div class="social">
142					<a href="https://www.facebook.com/tvzak" target="_blank"><img src="/images/facebook-ico.svg" /></a>
143					<a href="https://www.youtube.com/televizezak" target="_blank"><img src="/images/youtube-ico.svg" /></a>
144					<a href="https://www.instagram.com/zak_televize/" target="_blank"><img src="/images/instagram-ico.svg" /></a>
145				</div>
146				<div class="my-auto desktop-bio noselect white desktop-only">
147					
148					<span>
149						p&#xE1;tek 9. &#x159;&#xED;jna 2026
150                            <br />Svátek má &#x160;tefan a S&#xE1;ra
151					</span>
152				</div>
153				<img class="desktop-only my-auto nav-tube" src="/images/tube.svg" />
154				<div class="search-modal" data-bs-toggle="modal" data-bs-target="#search-modal">
155					<a class="nav-link"><i class="fas fa-search"></i></a>
156				</div>
157				<div class="mobile-nav">
158					<label for="mobile-nav" class="hand"><i class="nav-link fa fa-bars"></i></label>
159					<input type="checkbox" id="mobile-nav" class="visually-hidden">
160					<div class="dropped-mobile-nav">
161
162						<div class="dn-bio">
163							<p>Je <b>p&#xE1;tek 9. &#x159;&#xED;jna 2026</b> <i>(týden&nbsp;41.,&nbsp;lich&#xFD;)</i></p>
164                                <p>Svátek má <b>&#x160;tefan a S&#xE1;ra</b></p>
165						</div>
166
167						<div class="dn-categories">
168							<div class="d-flex">
169								<div class="ruby">
170									<a href="/zpravodajstvi">Zpravodajství</a>
171									<a href="/aktualne" alt="Aktuálně">Aktuálně</a>
172									<a href="/plzensky-kraj" alt="Plzeňský kraj">Plzeňský kraj</a>
173									<a href="/karlovarsky-kraj" alt="Karlovarský kraj">Karlovarský kraj</a>
174									<a href="/lifestyle" alt="Krimi západ">Krimi západ</a>
175									<a href="/kultura" alt="Kultura">Kultura</a>
176									<a href="/sport" alt="Sport">Sport</a>
177									<a href="/doprava" alt="Doprava">Doprava</a>
178									<a href="/webkamera" alt="Webkamera">Webkamera</a>
179								</div>
180								<div><a class="dropdown-item right" href="/"><span class="fa fa-home" alt="Úvod"></span></a></div>
181							</div>
182						</div>
183
184						<div class="forecast-wideget-dn">
185								<div class="d-flex no-wrap text-center forecast">
186										<div class="forecast-day">
187											<img src="/images/weather/12.png" width="38" height="38" alt="Obla&#x10D;no, odpoledne ojedin&#x11B;l&#xFD; d&#xE9;&#x161;&#x165;. Teploty 9/20 &#xB0;C." title="Obla&#x10D;no, odpoledne ojedin&#x11B;l&#xFD; d&#xE9;&#x161;&#x165;. Teploty 9/20 &#xB0;C." /><br />
188											<small>9&#xB0;C / 20&#xB0;C</small><br />
189											Dnes
190										</div>
191										<div class="forecast-day">
192											<img src="/images/weather/7.png" width="38" height="38" alt="Obla&#x10D;no, odpoledne a ve&#x10D;er v&#xED;ce obla&#x10D;nosti. Teplota klesne na 14 &#xB0;C. Odpoledne v&#xED;tr z JZ." title="Obla&#x10D;no, odpoledne a ve&#x10D;er v&#xED;ce obla&#x10D;nosti. Teplota klesne na 14 &#xB0;C. Odpoledne v&#xED;tr z JZ." /><br />
193											<small>5&#xB0;C / 14&#xB0;C</small><br />
194											Z&#xED;tra
195										</div>
196										<div class="forecast-day">
197											<img src="/images/weather/12.png" width="38" height="38" alt="Ojedin&#x11B;l&#xFD; d&#xE9;&#x161;&#x165;, odpoledne zata&#x17E;eno. Teploty 9/13 &#xB0;C." title="Ojedin&#x11B;l&#xFD; d&#xE9;&#x161;&#x165;, odpoledne zata&#x17E;eno. Teploty 9/13 &#xB0;C." /><br />
198											<small>9&#xB0;C / 13&#xB0;C</small><br />
199											Sobota
200										</div>
201								</div>
202								<div class="small forecast-today-text">
203									<p>Obla&#x10D;no, odpoledne ojedin&#x11B;l&#xFD; d&#xE9;&#x161;&#x165;. Teploty 9/20 &#xB0;C.</p>
204								</div>
205								<div class="meteocentrum text-muted">
206									<a href="https://www.meteocentrum.cz/" title="Data počasí poskytuje Meteocentrum" target="_blank" class="small text-secondary">Počasí: meteocentrum.cz</a>
207								</div>
208						</div>
209
210						<switch class="d-flex flex-nowrap mobile-only">
211							<div class="day small"><span>Světlý motiv</span></div>
212							<div class="night small"><span>Tmavý motiv</span></div>
213							<div><button id="darkToggle" class="darkmode" title="darkmode switch"></button></div>
214						</switch>
215						
216					</div>
217				</div>
218			</nav>
219			
220			<div class="modal fade" id="search-modal" data-bs-backdrop="static">
221				<button type="button" class="btn-close" data-bs-dismiss="modal" id="search-modal-close"></button>
222				<div class="modal-dialog">
223					<div class="modal-content">
224						<div class="modal-body">
225							<form class="forms" id="gh-search-input" method="get" action="/">
226								<div class="input-group">
227									<span class="input-group-text">
228										<i class="fas fa-search"></i>
229									</span>
230									<input type="search" class="search-input form-control" placeholder="Vyhledat.." id="search-input" name="q" minlength="2" required>
231									<button class="btn btn-primary" type="submit" id="search-btn">
232										<span class="search-btn-text">Hledat</span>
233										<span class="spinner-border spinner-border-sm search-spinner d-none ms-2" role="status">
234											<span class="visually-hidden">Hledání...</span>
235										</span>
236									</button>
237								</div>
238								<small class="text-danger d-none" id="search-error"></small>
239							</form>
240						</div>
241					</div>
242				</div>
243			</div>
244		</div>
245	</div>
246
247</header>
248
249 
250
251	<div class="container branded body-movein">
252		
253
254<div class="blog-area-static pt-2">
255	<div class="container">
256
257		<div class="my-1 pl-14">
258			<h1>Karlovarsk&#xFD; kraj</h1>
259		</div>
260			<div class="row">
261				<div class="col-md-7 col-lg-8 pt-2 pl-12">
262						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
263							<div class="feature-image">
264								<div class="image-frame image-hover-style-1">
265									<a href="/naciste_zatkli_behem_jedine_noci_1_500_sokolu_jejich_pamatku_uctil_i_karlovarsky_kraj" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/fbb4b5e11e/slavnostni_otevreni_google_discover.jpg.medium.jpg" alt="Nacist&#xE9; zatkli b&#x11B;hem jedin&#xE9; noci 1 500 sokol&#x16F;. Jejich pam&#xE1;tku uctil i Karlovarsk&#xFD; kraj"></a>
266								</div>
267							</div>
268							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
269								<div class="card-flex-content w-100">
270									<h6>
271										<a href="/naciste_zatkli_behem_jedine_noci_1_500_sokolu_jejich_pamatku_uctil_i_karlovarsky_kraj" target="">Nacist&#xE9; zatkli b&#x11B;hem jedin&#xE9; noci 1 500 sokol&#x16F;. Jejich pam&#xE1;tku uctil i Karlovarsk&#xFD; kraj</a>
272									</h6>
273									<div class="desktop-only">
274										<p>Tisíce sokolů a sokolek položily život v boji proti nacismu. Jejich odvahu a oběti připomíná Památný den sokolstva, který připadá na 8. října. Karlovarský kraj při této příležitosti vyvěsil před budovou krajského úřadu sokolskou vlajku. Pietní vzpomínka se uskuteční také v Karlových Varech-Rybářích.</p>
275									</div>
276								</div>
277							</div>
278						</article>
279						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
280							<div class="feature-image">
281								<div class="image-frame image-hover-style-1">
282									<a href="/uprchly_vezen_zraneni_airsoftovou_zbrani_i_zachrana_srny_assti_straznici_meli_napilno" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/e2db4f93df/Cq4v3XqvIWmuHUgsIRNz.jpeg.medium.jpg" alt="Uprchl&#xFD; v&#x11B;ze&#x148;, zran&#x11B;n&#xED; airsoftovou zbran&#xED; i z&#xE1;chrana srny. A&#x161;&#x161;t&#xED; str&#xE1;&#x17E;n&#xED;ci m&#x11B;li napilno"></a>
283								</div>
284							</div>
285							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
286								<div class="card-flex-content w-100">
287									<h6>
288										<a href="/uprchly_vezen_zraneni_airsoftovou_zbrani_i_zachrana_srny_assti_straznici_meli_napilno" target="">Uprchl&#xFD; v&#x11B;ze&#x148;, zran&#x11B;n&#xED; airsoftovou zbran&#xED; i z&#xE1;chrana srny. A&#x161;&#x161;t&#xED; str&#xE1;&#x17E;n&#xED;ci m&#x11B;li napilno</a>
289									</h6>
290									<div class="desktop-only">
291										<p>Pátrání po uprchlém vězni, domácí konflikty, zranění airsoftovou zbraní nebo srna uvězněná za plotem. Ašští strážníci se v posledních týdnech rozhodně nenudili. Vedle běžných dopravních přestupků řešili také případy ohrožení zdraví, pomáhali záchranářům a zasahovali kvůli opakovanému zneužívání tísňových linek.</p>
292									</div>
293								</div>
294							</div>
295						</article>
296						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
297							<div class="feature-image">
298								<div class="image-frame image-hover-style-1">
299									<a href="/od_200_metru_az_po_35_kilometru_na_goethovu_vyhlidku_se_vraci_oblibeny_bezecky_zavod" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/678c64d598/vybeh_google_discover.jpg.medium.jpg" alt="Od 200 metr&#x16F; a&#x17E; po 3,5 kilometru. Na Goethovu vyhl&#xED;dku se vrac&#xED; obl&#xED;ben&#xFD; b&#x11B;&#x17E;eck&#xFD; z&#xE1;vod"></a>
300								</div>
301							</div>
302							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
303								<div class="card-flex-content w-100">
304									<h6>
305										<a href="/od_200_metru_az_po_35_kilometru_na_goethovu_vyhlidku_se_vraci_oblibeny_bezecky_zavod" target="">Od 200 metr&#x16F; a&#x17E; po 3,5 kilometru. Na Goethovu vyhl&#xED;dku se vrac&#xED; obl&#xED;ben&#xFD; b&#x11B;&#x17E;eck&#xFD; z&#xE1;vod</a>
306									</h6>
307									<div class="desktop-only">
308										<p>Obout běžecké boty a vyrazit do podzimních lázeňských lesů. V neděli 11. října se v Karlových Varech uskuteční třetí ročník Výběhu na Goethovu vyhlídku. Závod nabídne tratě pro nejmenší děti, zkušenější běžce i širokou veřejnost. Ti nejodvážnější se mohou pustit do trasy dlouhé 3,5 kilometru.</p>
309									</div>
310								</div>
311							</div>
312						</article>
313						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
314							<div class="feature-image">
315								<div class="image-frame image-hover-style-1">
316									<a href="/z_historickych_lazni_mestske_byty_frantiskovy_lazne_planuji_promenu_vyznamne_budovy" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/efd4cab187/nahled_google_discover.jpg.medium.jpg" alt="Z historick&#xFD;ch l&#xE1;zn&#xED; m&#x11B;stsk&#xE9; byty. Franti&#x161;kovy L&#xE1;zn&#x11B; pl&#xE1;nuj&#xED; prom&#x11B;nu v&#xFD;znamn&#xE9; budovy"></a>
317								</div>
318							</div>
319							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
320								<div class="card-flex-content w-100">
321									<h6>
322										<a href="/z_historickych_lazni_mestske_byty_frantiskovy_lazne_planuji_promenu_vyznamne_budovy" target="">Z historick&#xFD;ch l&#xE1;zn&#xED; m&#x11B;stsk&#xE9; byty. Franti&#x161;kovy L&#xE1;zn&#x11B; pl&#xE1;nuj&#xED; prom&#x11B;nu v&#xFD;znamn&#xE9; budovy</a>
323									</h6>
324									<div class="desktop-only">
325										<p>Historická budova Luisiných lázní ve Františkových Lázních by mohla získat nové využití. Město připravilo projekt její rekonstrukce, který počítá se vznikem menších i větších nájemních bytů pro místní obyvatele. Součástí plánované proměny má být také společná zahrada s posezením a altánem.</p>
326									</div>
327								</div>
328							</div>
329						</article>
330						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
331							<div class="feature-image">
332								<div class="image-frame image-hover-style-1">
333									<a href="/robotika_3d_tisk_i_digitalni_dovednosti_chodov_da_300_tisic_na_nove_pocitace" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/ffca3f25d0/deti_lego_google_discover.jpg.medium.jpg" alt="Robotika, 3D tisk i digit&#xE1;ln&#xED; dovednosti. Chodov d&#xE1; 300 tis&#xED;c na nov&#xE9; po&#x10D;&#xED;ta&#x10D;e"></a>
334								</div>
335							</div>
336							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
337								<div class="card-flex-content w-100">
338									<h6>
339										<a href="/robotika_3d_tisk_i_digitalni_dovednosti_chodov_da_300_tisic_na_nove_pocitace" target="">Robotika, 3D tisk i digit&#xE1;ln&#xED; dovednosti. Chodov d&#xE1; 300 tis&#xED;c na nov&#xE9; po&#x10D;&#xED;ta&#x10D;e</a>
340									</h6>
341									<div class="desktop-only">
342										<p>Kroužky 3D tisku, robotika nebo rozvoj digitálních dovedností dostanou v chodovském DDM Bludiště nové vybavení. Dvanáct zastaralých počítačů už svými parametry nestačí a není možné je převést na novější podporovanou verzi operačního systému. Na modernizaci město vyčlenilo 300 tisíc korun.</p>
343									</div>
344								</div>
345							</div>
346						</article>
347						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
348							<div class="feature-image">
349								<div class="image-frame image-hover-style-1">
350									<a href="/ve_veznici_vypukl_pozar_a_chybeli_dva_odsouzeni_nastesti_slo_jen_o_cviceni" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/0e2721e78d/hasici_veznice_google_discover.jpg.medium.jpg" alt="Ve v&#x11B;znici vypukl po&#x17E;&#xE1;r a chyb&#x11B;li dva odsouzen&#xED;. Na&#x161;t&#x11B;st&#xED; &#x161;lo jen o cvi&#x10D;en&#xED;"></a>
351								</div>
352							</div>
353							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
354								<div class="card-flex-content w-100">
355									<h6>
356										<a href="/ve_veznici_vypukl_pozar_a_chybeli_dva_odsouzeni_nastesti_slo_jen_o_cviceni" target="">Ve v&#x11B;znici vypukl po&#x17E;&#xE1;r a chyb&#x11B;li dva odsouzen&#xED;. Na&#x161;t&#x11B;st&#xED; &#x161;lo jen o cvi&#x10D;en&#xED;</a>
357									</h6>
358									<div class="desktop-only">
359										<p>Požár zachvátil dvě cely a při evakuaci se zjistilo, že chybějí dva odsouzení. Takový scénář čekal na hasiče a zaměstnance Věznice Horní Slavkov během taktického cvičení. Do areálu postupně dorazily jednotky z několika míst Karlovarského kraje.</p>
360									</div>
361								</div>
362							</div>
363						</article>
364						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
365							<div class="feature-image">
366								<div class="image-frame image-hover-style-1">
367									<a href="/sokolov_ma_nove_pietni_misto" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/a408fb3579/Bez_nazvu.png.medium.jpg" alt="Sokolov m&#xE1; nov&#xE9; pietn&#xED; m&#xED;sto"></a>
368								</div>
369							</div>
370							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
371								<div class="card-flex-content w-100">
372									<h6>
373										<a href="/sokolov_ma_nove_pietni_misto" target="">Sokolov m&#xE1; nov&#xE9; pietn&#xED; m&#xED;sto</a>
374									</h6>
375									<div class="desktop-only">
376										<p>
376Desítky let zůstával jejich příběh ukrytý v archivech a vzpomínkách pamětníků. Nyní mají ženy vězněné v nacistickém táboře ve Svatavě své vlastní pietní místo, které vzniklo na sokolovském hřbitově.</p>
377									</div>
378								</div>
379							</div>
380						</article>
381						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
382							<div class="feature-image">
383								<div class="image-frame image-hover-style-1">
384									<a href="/barokni_kulisa_ostrovskeho_zamku_ma_za_sebou_opravu_pohledova_zed_dostala_novy_kabat" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/1d96a5a14a/zahrada_google_discover_1200x900.jpg.medium.jpg" alt="Barokn&#xED; kulisa ostrovsk&#xE9;ho z&#xE1;mku m&#xE1; za sebou opravu. Pohledov&#xE1; ze&#x10F; dostala nov&#xFD; kab&#xE1;t"></a>
385								</div>
386							</div>
387							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
388								<div class="card-flex-content w-100">
389									<h6>
390										<a href="/barokni_kulisa_ostrovskeho_zamku_ma_za_sebou_opravu_pohledova_zed_dostala_novy_kabat" target="">Barokn&#xED; kulisa ostrovsk&#xE9;ho z&#xE1;mku m&#xE1; za sebou opravu. Pohledov&#xE1; ze&#x10F; dostala nov&#xFD; kab&#xE1;t</a>
391									</h6>
392									<div class="desktop-only">
393										<p>Pohledová zeď u ostrovského zámku má za sebou další opravu. Řemeslníci obnovili poškozené omítky a zdivo, opravili střechu i vyhlídkovou plošinu. Úprav se dočkala také přilehlá Zahrada vůní a barev.</p>
394									</div>
395								</div>
396							</div>
397						</article>
398						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
399							<div class="feature-image">
400								<div class="image-frame image-hover-style-1">
401									<a href="/frantiskovy_lazne_chystaji_sit_dobijecich_stanic_vzniknout_ma_kolem_20_stanic" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/0ef4c0ecd7/60ae95f1-53de-4e4b-94c0-30b9cd5d7df4.png.medium.jpg" alt="Franti&#x161;kovy L&#xE1;zn&#x11B; chystaj&#xED; s&#xED;&#x165; dob&#xED;jec&#xED;ch stanic. Vzniknout m&#xE1; kolem dvaceti m&#xED;st"></a>
402								</div>
403							</div>
404							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
405								<div class="card-flex-content w-100">
406									<h6>
407										<a href="/frantiskovy_lazne_chystaji_sit_dobijecich_stanic_vzniknout_ma_kolem_20_stanic" target="">Franti&#x161;kovy L&#xE1;zn&#x11B; chystaj&#xED; s&#xED;&#x165; dob&#xED;jec&#xED;ch stanic. Vzniknout m&#xE1; kolem dvaceti m&#xED;st</a>
408									</h6>
409									<div class="desktop-only">
410										<p>Řidiči elektromobilů by mohli ve Františkových Lázních získat více možností, kde doplnit energii. Město připravuje síť přibližně 20 dobíjecích míst, která mají vzniknout například na sídlišti nebo záchytných parkovištích. Projekt je zatím ve fázi příprav.</p>
411									</div>
412								</div>
413							</div>
414						</article>
415						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
416							<div class="feature-image">
417								<div class="image-frame image-hover-style-1">
418									<a href="/obyvatele_chodova_rozhodli_mesto_pristi_rok_uskutecni_sedm_jejich_napadu" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/4cad7e86ff/sportoviste_google_discover_1200x900.jpg.medium.jpg" alt="Obyvatel&#xE9; Chodova rozhodli. M&#x11B;sto p&#x159;&#xED;&#x161;t&#xED; rok uskute&#x10D;n&#xED; sedm jejich n&#xE1;pad&#x16F;"></a>
419								</div>
420							</div>
421							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
422								<div class="card-flex-content w-100">
423									<h6>
424										<a href="/obyvatele_chodova_rozhodli_mesto_pristi_rok_uskutecni_sedm_jejich_napadu" target="">Obyvatel&#xE9; Chodova rozhodli. M&#x11B;sto p&#x159;&#xED;&#x161;t&#xED; rok uskute&#x10D;n&#xED; sedm jejich n&#xE1;pad&#x16F;</a>
425									</h6>
426									<div class="desktop-only">
427										<p>Pítko s mlhovištěm, malá letní scéna nebo komunitní nahrávací studio. Obyvatelé Chodova rozhodli, které návrhy z participativního rozpočtu se uskuteční v roce 2027. Město počítá s realizací sedmi projektů za celkem 1,9 milionu korun.</p>
428									</div>
429								</div>
430							</div>
431						</article>
432						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
433							<div class="feature-image">
434								<div class="image-frame image-hover-style-1">
435									<a href="/as_opravila_klecove_hriste_po_bazenu_jde_o_dalsi_promenu_sportovniho_zazemi" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/a94c6519a1/hriste_google_discover_1200x900.jpg.medium.jpg" alt="A&#x161; opravila klecov&#xE9; h&#x159;i&#x161;t&#x11B;. Po baz&#xE9;nu jde o dal&#x161;&#xED; prom&#x11B;nu sportovn&#xED;ho z&#xE1;zem&#xED;"></a>
436								</div>
437							</div>
438							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
439								<div class="card-flex-content w-100">
440									<h6>
441										<a href="/as_opravila_klecove_hriste_po_bazenu_jde_o_dalsi_promenu_sportovniho_zazemi" target="">A&#x161; opravila klecov&#xE9; h&#x159;i&#x161;t&#x11B;. Po baz&#xE9;nu jde o dal&#x161;&#xED; prom&#x11B;nu sportovn&#xED;ho z&#xE1;zem&#xED;</a>
442									</h6>
443									<div class="desktop-only">
444										<p>Klecové hřiště ve vnitrobloku mezi ulicemi Třebízského, Dlouhá a Nemocniční v Aši je po celkové opravě znovu přístupné veřejnosti. Sportoviště dostalo nový umělý povrch a navazuje na další investice města do sportovního zázemí. Nedávno skončila rekonstrukce krytého bazénu a připravuje se také nový volnočasový areál místo dosluhujícího skateparku.</p>
445									</div>
446								</div>
447							</div>
448						</article>
449						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
450							<div class="feature-image">
451								<div class="image-frame image-hover-style-1">
452									<a href="/hasici_bojovali_o_pohar_hejtmana_u_globusu_pomerily_sily_deti_i_dospeli" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/49f42f8a6a/hasici_deti_google_discover_1200x900.jpg.medium.jpg" alt="Hasi&#x10D;i bojovali o poh&#xE1;r hejtmana. U Globusu pom&#x11B;&#x159;ily s&#xED;ly d&#x11B;ti i dosp&#x11B;l&#xED;"></a>
453								</div>
454							</div>
455							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
456								<div class="card-flex-content w-100">
457									<h6>
458										<a href="/hasici_bojovali_o_pohar_hejtmana_u_globusu_pomerily_sily_deti_i_dospeli" target="">Hasi&#x10D;i bojovali o poh&#xE1;r hejtmana. U Globusu pom&#x11B;&#x159;ily s&#xED;ly d&#x11B;ti i dosp&#x11B;l&#xED;</a>
459									</h6>
460									<div class="desktop-only">
461										<p>Hadice, proudnice a boj o každou vteřinu. U Globusu se v sobotu 3. října uskutečnil další ročník soutěže O pohár hejtmana Karlovarského kraje. V požárním útoku poměřili síly mladí hasiči, dorostenci i dospělí závodníci.</p>
462									</div>
463								</div>
464							</div>
465						</article>
466						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
467							<div class="feature-image">
468								<div class="image-frame image-hover-style-1">
469									<a href="/misto_zchatraleho_pivovaru_nova_ctvrt_v_rybarich_vyroste_temer_200_bytu" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/b650cf7481/bydleni_google_discover_1200x900.jpg.medium.jpg" alt="M&#xED;sto zch&#xE1;tral&#xE9;ho pivovaru nov&#xE1; &#x10D;tvr&#x165;. V Ryb&#xE1;&#x159;&#xED;ch vyroste t&#xE9;m&#x11B;&#x159; 200 byt&#x16F;"></a>
470								</div>
471							</div>
472							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
473								<div class="card-flex-content w-100">
474									<h6>
475										<a href="/misto_zchatraleho_pivovaru_nova_ctvrt_v_rybarich_vyroste_temer_200_bytu" target="">M&#xED;sto zch&#xE1;tral&#xE9;ho pivovaru nov&#xE1; &#x10D;tvr&#x165;. V Ryb&#xE1;&#x159;&#xED;ch vyroste t&#xE9;m&#x11B;&#x159; 200 byt&#x16F;</a>
476									</h6>
477									<div class="desktop-only">
478										<p>Místo zchátralého a dlouhá léta uzavřeného areálu nová část města s bydlením, obchody, službami i parkem. V pondělí byl v Rybářích slavnostně položen základní kámen nové čtvrti, která vznikne na místě bývalého pivovaru. První etapa má být dokončena v roce 2028.</p>
479									</div>
480								</div>
481							</div>
482						</article>
483						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
484							<div class="feature-image">
485								<div class="image-frame image-hover-style-1">
486									<a href="/straznici_pomahali_seniorum_jednoho_zvedli_na_nohy_druheho_doprovodili_domu" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/fc800e7423/senior_google_discover.jpg.medium.jpg" alt="Str&#xE1;&#x17E;n&#xED;ci pom&#xE1;hali senior&#x16F;m. Jednoho zvedli na nohy, druh&#xE9;ho doprovodili dom&#x16F;"></a>
487								</div>
488							</div>
489							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
490								<div class="card-flex-content w-100">
491									<h6>
492										<a href="/straznici_pomahali_seniorum_jednoho_zvedli_na_nohy_druheho_doprovodili_domu" target="">Str&#xE1;&#x17E;n&#xED;ci pom&#xE1;hali senior&#x16F;m. Jednoho zvedli na nohy, druh&#xE9;ho doprovodili dom&#x16F;</a>
493									</h6>
494									<div class="desktop-only">
495										<p>Dva senioři potřebovali během neděle pomoc karlovarských strážníků. Devadesátiletý muž se nedokázal sám postavit na nohy, další senior trpící Parkinsonovou nemocí opakovaně padal při chůzi. Oba případy se naštěstí obešly bez zranění.</p>
496									</div>
497								</div>
498							</div>
499						</article>
500						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
501							<div class="feature-image">
502								<div class="image-frame image-hover-style-1">
503									<a href="/veterinarni_pohotovost_ma_v_karlovarskem_kraji_napilno_za_jednu_sluzbu_osetri_kolem_20_zvirat" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/aed5db4465/veterina_google_discover.jpg.medium.jpg" alt="Veterin&#xE1;rn&#xED; pohotovost m&#xE1; v Karlovarsk&#xE9;m kraji napilno. Za jednu slu&#x17E;bu o&#x161;et&#x159;&#xED; kolem 20 zv&#xED;&#x159;at"></a>
504								</div>
505							</div>
506							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
507								<div class="card-flex-content w-100">
508									<h6>
509										<a href="/veterinarni_pohotovost_ma_v_karlovarskem_kraji_napilno_za_jednu_sluzbu_osetri_kolem_20_zvirat" target="">Veterin&#xE1;rn&#xED; pohotovost m&#xE1; v Karlovarsk&#xE9;m kraji napilno. Za jednu slu&#x17E;bu o&#x161;et&#x159;&#xED; kolem 20 zv&#xED;&#x159;at</a>
510									</h6>
511									<div class="desktop-only">
512										<p>
512Kolem dvaceti zvířecích pacientů během jediné služby, někdy i více. Veterinární služba první pomoci v Karlovarském kraji zůstává podle zkušeností zapojených lékařů hojně využívaná i po otevření nové veterinární kliniky v Karlových Varech. O víkendech a svátcích ji nyní zajišťuje 11 ordinací.</p>
513									</div>
514								</div>
515							</div>
516						</article>
517						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
518							<div class="feature-image">
519								<div class="image-frame image-hover-style-1">
520									<a href="/nocni_pozar_v_lubech_na_chebsku_hasici_zachranili_z_bytoveho_domu_14_lidi" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/494bd70192/hasici_nocni_zasah_google_discover.jpg.medium.jpg" alt="No&#x10D;n&#xED; po&#x17E;&#xE1;r v Lubech na Chebsku. Hasi&#x10D;i zachr&#xE1;nili z bytov&#xE9;ho domu 14 lid&#xED;"></a>
521								</div>
522							</div>
523							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
524								<div class="card-flex-content w-100">
525									<h6>
526										<a href="/nocni_pozar_v_lubech_na_chebsku_hasici_zachranili_z_bytoveho_domu_14_lidi" target="">No&#x10D;n&#xED; po&#x17E;&#xE1;r v Lubech na Chebsku. Hasi&#x10D;i zachr&#xE1;nili z bytov&#xE9;ho domu 14 lid&#xED;</a>
527									</h6>
528									<div class="desktop-only">
529										<p>Čtrnáct zachráněných a dalších sedm evakuovaných lidí si vyžádal noční požár bytového domu v Lubech. Hořet začalo v sobotu krátce po druhé hodině ranní ve sklepní kóji a kouř následně zaplnil společné prostory. Jednoho člověka si převzali záchranáři.</p>
530									</div>
531								</div>
532							</div>
533						</article>
534						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
535							<div class="feature-image">
536								<div class="image-frame image-hover-style-1">
537									<a href="/nove_ucebny_interaktivni_tabule_i_pestry_program_skola_ve_frantiskovych_laznich_nezahali" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/2fb035e083/skola_google_discover.jpg.medium.jpg" alt="Nov&#xE9; u&#x10D;ebny, interaktivn&#xED; tabule i pestr&#xFD; program. &#x160;kola ve Franti&#x161;kov&#xFD;ch L&#xE1;zn&#xED;ch nezah&#xE1;l&#xED;"></a>
538								</div>
539							</div>
540							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
541								<div class="card-flex-content w-100">
542									<h6>
543										<a href="/nove_ucebny_interaktivni_tabule_i_pestry_program_skola_ve_frantiskovych_laznich_nezahali" target="">Nov&#xE9; u&#x10D;ebny, interaktivn&#xED; tabule i pestr&#xFD; program. &#x160;kola ve Franti&#x161;kov&#xFD;ch L&#xE1;zn&#xED;ch nezah&#xE1;l&#xED;</a>
544									</h6>
545									<div class="desktop-only">
546										<p>Zatímco děti měly letní prázdniny, ve škole ve Františkových Lázních se pracovalo. Rekonstrukcí prošlo sedm učeben, nové vybavení dostala také družina a změny se dotkly chodeb i šaten. Do budoucna se počítá také s moderním školním hřištěm.</p>
547									</div>
548								</div>
549							</div>
550						</article>
551						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
552							<div class="feature-image">
553								<div class="image-frame image-hover-style-1">
554									<a href="/u_sokolovskeho_hrbitova_vzniklo_pietni_misto_pro_zeny_ze_svatavy" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/911091c967/26aacf5acf002aba.jpg.webp.medium.jpg" alt="U sokolovsk&#xE9;ho h&#x159;bitova vzniklo pietn&#xED; m&#xED;sto pro &#x17E;eny ze Svatavy"></a>
555								</div>
556							</div>
557							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
558								<div class="card-flex-content w-100">
559									<h6>
560										<a href="/u_sokolovskeho_hrbitova_vzniklo_pietni_misto_pro_zeny_ze_svatavy" target="">U sokolovsk&#xE9;ho h&#x159;bitova vzniklo pietn&#xED; m&#xED;sto pro &#x17E;eny ze Svatavy</a>
561									</h6>
562									<div class="desktop-only">
563										<p>Nové pietní místo u sokolovského hřbitova připomíná osudy žen vězněných za druhé světové války ve svatavském koncentračním táboře. Součástí prostoru je také pamětní kniha Rodinné album, která prostřednictvím fotografií a vzpomínek přibližuje jejich tragické příběhy. Vybudování místa stálo přibližně 1,5 milionu korun.</p>
564									</div>
565								</div>
566							</div>
567						</article>
568						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
569							<div class="feature-image">
570								<div class="image-frame image-hover-style-1">
571									<a href="/za_jachymovskym_tolarem_vyrazi_turiste_uz_po_petadvacate_pripomenou_otce_hornictva" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/ee9724b4a1/turistika_google_discover.jpg.medium.jpg" alt="Za j&#xE1;chymovsk&#xFD;m tolarem vyraz&#xED; turist&#xE9; u&#x17E; po p&#x11B;tadvac&#xE1;t&#xE9;. P&#x159;ipomenou &#x201E;otce hornictva&#x201C;"></a>
572								</div>
573							</div>
574							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
575								<div class="card-flex-content w-100">
576									<h6>
577										<a href="/za_jachymovskym_tolarem_vyrazi_turiste_uz_po_petadvacate_pripomenou_otce_hornictva" target="">Za j&#xE1;chymovsk&#xFD;m tolarem vyraz&#xED; turist&#xE9; u&#x17E; po p&#x11B;tadvac&#xE1;t&#xE9;. P&#x159;ipomenou &#x201E;otce hornictva&#x201C;</a>
578									</h6>
579									<div class="desktop-only">
580										<p>Od krátké procházky s dětmi až po osmnáctikilometrovou túru přes Krušné hory. V sobotu 10. října se uskuteční 25. ročník pochodu O jáchymovský tolar. Letošní ročník připomene Josefa Štěpa, významnou osobnost zdejšího hornictví, od jehož smrti letos uplynulo 100 let.</p>
581									</div>
582								</div>
583							</div>
584						</article>
585						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
586							<div class="feature-image">
587								<div class="image-frame image-hover-style-1">
588									<a href="/sledujte_predvolebni_debatu_kandidatu_na_primatora_plzne_na_zak_tv" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/c0fc35c573/Bez_nazvu.png.medium.jpg" alt="Sledujte p&#x159;edvolebn&#xED; debatu kandid&#xE1;t&#x16F; na prim&#xE1;tora Plzn&#x11B; na ZAK TV"></a>
589								</div>
590							</div>
591							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
592								<div class="card-flex-content w-100">
593									<h6>
594										<a href="/sledujte_predvolebni_debatu_kandidatu_na_primatora_plzne_na_zak_tv" target="">Sledujte p&#x159;edvolebn&#xED; debatu kandid&#xE1;t&#x16F; na prim&#xE1;tora Plzn&#x11B; na ZAK TV</a>
595									</h6>
596									<div class="desktop-only">
597										<p>
597Od pondělí 5. října vždy po hlavních zprávách, které startují v 17:00, bude v TV ZAK k vidění první část třídílné předvolební debaty, kterou televize uspořádala minulý čtvrtek na malé scéně Divadla J. K. Tyla v Plzni.</p>
598									</div>
599								</div>
600							</div>
601						</article>
602						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
603							<div class="feature-image">
604								<div class="image-frame image-hover-style-1">
605									<a href="/na_skolni_obedy_pro_deti_v_nouzi_pujde_temer_12_milionu_korun" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/bf45bebc80/obedy_do_skol_google_discover.jpg.medium.jpg" alt="Na &#x161;koln&#xED; ob&#x11B;dy pro d&#x11B;ti v nouzi p&#x16F;jde t&#xE9;m&#x11B;&#x159; 12 milion&#x16F; korun"></a>
606								</div>
607							</div>
608							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
609								<div class="card-flex-content w-100">
610									<h6>
611										<a href="/na_skolni_obedy_pro_deti_v_nouzi_pujde_temer_12_milionu_korun" target="">Na &#x161;koln&#xED; ob&#x11B;dy pro d&#x11B;ti v nouzi p&#x16F;jde t&#xE9;m&#x11B;&#x159; 12 milion&#x16F; korun</a>
612									</h6>
613									<div class="desktop-only">
614										<p>Děti a mladí lidé ze sociálně slabých rodin mohou i v tomto školním roce získat příspěvek na stravování. Karlovarský kraj znovu vyhlašuje program Obědy do škol, na který pro školní rok 2026/2027 vyčlenil téměř 12,2 milionu korun. Podpora je určena dětem a žákům ve věku od 2 do 26 let.</p>
615									</div>
616								</div>
617							</div>
618						</article>
619						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
620							<div class="feature-image">
621								<div class="image-frame image-hover-style-1">
622									<a href="/ostrov_bude_patrit_filmu_festival_oty_hofmana_privita_sveraka_freimanovou_i_zilkovou" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/7282ac3e47/festival_oty_hofmana_google_discover.jpg.medium.jpg" alt="Ostrov bude pat&#x159;it filmu. Festival Oty Hofmana p&#x159;iv&#xED;t&#xE1; Sv&#x11B;r&#xE1;ka, Freimanovou i &#x17D;ilkovou"></a>
623								</div>
624							</div>
625							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
626								<div class="card-flex-content w-100">
627									<h6>
628										<a href="/ostrov_bude_patrit_filmu_festival_oty_hofmana_privita_sveraka_freimanovou_i_zilkovou" target="">Ostrov bude pat&#x159;it filmu. Festival Oty Hofmana p&#x159;iv&#xED;t&#xE1; Sv&#x11B;r&#xE1;ka, Freimanovou i &#x17D;ilkovou</a>
629									</h6>
630									<div class="desktop-only">
631										<p>Ostrov se v říjnu znovu promění v centrum filmové a televizní tvorby pro děti a mládež. Od 11. do 16. října se uskuteční 58. ročník Festivalu Oty Hofmana, který nabídne více než čtyřicet snímků, předpremiéry, výstavy i setkání se známými osobnostmi. Dorazí například Zdeněk Svěrák, Veronika Freimanová, Veronika Žilková nebo Josef Dvořák.</p>
632									</div>
633								</div>
634							</div>
635						</article>
636						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
637							<div class="feature-image">
638								<div class="image-frame image-hover-style-1">
639									<a href="/nehoda_a_skupina_lidi_mirici_k_hranici_u_ase_cvicily_desitky_policistu_hasicu_i_dobrovolniku" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/5e056cb237/nehoda_hasici_google_discover_1200x900.jpg.medium.jpg" alt="Nehoda a skupina lid&#xED; m&#xED;&#x159;&#xED;c&#xED; k hranici. U A&#x161;e cvi&#x10D;ily des&#xED;tky policist&#x16F;, hasi&#x10D;&#x16F; i dobrovoln&#xED;k&#x16F;"></a>
640								</div>
641							</div>
642							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
643								<div class="card-flex-content w-100">
644									<h6>
645										<a href="/nehoda_a_skupina_lidi_mirici_k_hranici_u_ase_cvicily_desitky_policistu_hasicu_i_dobrovolniku" target="">Nehoda a skupina lid&#xED; m&#xED;&#x159;&#xED;c&#xED; k hranici. U A&#x161;e cvi&#x10D;ily des&#xED;tky policist&#x16F;, hasi&#x10D;&#x16F; i dobrovoln&#xED;k&#x16F;</a>
646									</h6>
647									<div class="desktop-only">
648										<p>Dopravní nehoda dvou aut, zranění lidé a skupina osob, která zamířila lesem ke státní hranici. Takový byl scénář rozsáhlého takticko-prověřovacího cvičení, které se v sobotu 26. září uskutečnilo poblíž Aše. Do několikahodinové akce se zapojily desítky policistů, hasičů, dobrovolníků i studentů.</p>
649									</div>
650								</div>
651							</div>
652						</article>
653						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
654							<div class="feature-image">
655								<div class="image-frame image-hover-style-1">
656									<a href="/muz_u_panelaku_podezrele_cichal_k_omitce_straznici_odhalili_zahadu_degustatora_fasady" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/ce39d4df00/pozarna_fasada_google_discover_1200x900.jpg.medium.jpg" alt="Mu&#x17E; u panel&#xE1;ku podez&#x159;ele &#x10D;ichal k om&#xED;tce. Str&#xE1;&#x17E;n&#xED;ci odhalili z&#xE1;hadu &#x201E;degust&#xE1;tora fas&#xE1;dy&#x201C;"></a>
657								</div>
658							</div>
659							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
660								<div class="card-flex-content w-100">
661									<h6>
662										<a href="/muz_u_panelaku_podezrele_cichal_k_omitce_straznici_odhalili_zahadu_degustatora_fasady" target="">Mu&#x17E; u panel&#xE1;ku podez&#x159;ele &#x10D;ichal k om&#xED;tce. Str&#xE1;&#x17E;n&#xED;ci odhalili z&#xE1;hadu &#x201E;degust&#xE1;tora fas&#xE1;dy&#x201C;</a>
663									</h6>
664									<div class="desktop-only">
665										<p>Loupe omítku z paneláku, sype ji do pytlíčku a ještě k ní podezřele čichá. Takové oznámení přijali v úterý krátce po poledni strážníci kvůli muži v Západní ulici. Na místě skutečně našli horlivého „omítkáře“, vysvětlení ale bylo mnohem prostší.</p>
666									</div>
667								</div>
668							</div>
669						</article>
670						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
671							<div class="feature-image">
672								<div class="image-frame image-hover-style-1">
673									<a href="/za_erbem_ostrovske_kaple_objevili_tajnou_schranku_ukryji_do_ni_vzkaz_pro_budouci_generace" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/c945a295d7/kaple_google_discover_1200x900.jpg.medium.jpg" alt="Za erbem ostrovsk&#xE9; kaple objevili tajnou schr&#xE1;nku. Ukryj&#xED; do n&#xED; vzkaz pro budouc&#xED; generace"></a>
674								</div>
675							</div>
676							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
677								<div class="card-flex-content w-100">
678									<h6>
679										<a href="/za_erbem_ostrovske_kaple_objevili_tajnou_schranku_ukryji_do_ni_vzkaz_pro_budouci_generace" target="">Za erbem ostrovsk&#xE9; kaple objevili tajnou schr&#xE1;nku. Ukryj&#xED; do n&#xED; vzkaz pro budouc&#xED; generace</a>
680									</h6>
681									<div class="desktop-only">
682										<p>Nečekaný objev přinesla letošní obnova kaple Panny Marie Einsiedelnské v Ostrově. Restaurátoři za aliančním erbem narazili na tajnou schránku, která nyní dostane nový účel. Ve středu 7. října do ní bude slavnostně uloženo pamětní pouzdro s poselstvím pro budoucí generace.</p>
683									</div>
684								</div>
685							</div>
686						</article>
687
688					<div class="text-center">
689						
690
691<div class="ad-list">
692		<div class="ad-title-wrap mb-0 d-flex justify-content-end">
693        <span class="ad-title">Reklama</span>
694</div>
695			<a href="https://www.serikovka.cz/" class="banner-link" data-banner-id="163" target="_blank" title="Turbo v &#x160;e&#x159;&#xED;kovce"><img src="https://zaktv.b-cdn.net/upload/Banner/d7a475b68b/2026-12-30_Turbo_728x90px_plzencz_(3).jpg" /></a>
696</div>
697					</div>
698
699				</div>
700				<div class="col-lg-4 col-md-5 desktop-only">
701					<div class="sticky-top sticky-sidebar">
702
703						
704
705<div class="static-ads">
706
707		<div class="mb-2 ad-sidebar">
708			<div data-sidebar-ad-title hidden>
709				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
710        <span class="ad-title">Reklama</span>
711</div>
712			</div>
713			<!-- ZAK-Sidebar -->
714			<ins class="sidebar-adsense"
715				 style="display:block"
716				 data-ad-client="ca-pub-1914100961537914"
717				 data-ad-slot="2460148899"
718				 data-ad-format="auto"
719				 data-full-width-responsive="true"></ins>
720			
720<script>
721				(function () {
722					const ad = document.currentScript.previousElementSibling;
723					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
724					function updateTitle() {
725						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
726					}
727					const statusObserver = new MutationObserver(updateTitle);
728					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
729					updateTitle();
730					let initialized = false;
731					const observer = new ResizeObserver(initialize);
732					function initialize() {
733						if (initialized || ad.getBoundingClientRect().width <= 0) return;
734						initialized = true;
735						observer.disconnect();
736						ad.classList.add('adsbygoogle');
737						(window.adsbygoogle = window.adsbygoogle || []).push({});
738					}
739					observer.observe(ad);
740					initialize();
741				})();
742			</script>
742
743		</div>
744
745</div>
746						
747
748<div class="static-ads">
749
750		<div class="mb-2 ad-sidebar">
751			<div data-sidebar-ad-title hidden>
752				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
753        <span class="ad-title">Reklama</span>
754</div>
755			</div>
756			<!-- ZAK-Sidebar -->
757			<ins class="sidebar-adsense"
758				 style="display:block"
759				 data-ad-client="ca-pub-1914100961537914"
760				 data-ad-slot="2460148899"
761				 data-ad-format="auto"
762				 data-full-width-responsive="true"></ins>
763			
763<script>
764				(function () {
765					const ad = document.currentScript.previousElementSibling;
766					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
767					function updateTitle() {
768						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
769					}
770					const statusObserver = new MutationObserver(updateTitle);
771					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
772					updateTitle();
773					let initialized = false;
774					const observer = new ResizeObserver(initialize);
775					function initialize() {
776						if (initialized || ad.getBoundingClientRect().width <= 0) return;
777						initialized = true;
778						observer.disconnect();
779						ad.classList.add('adsbygoogle');
780						(window.adsbygoogle = window.adsbygoogle || []).push({});
781					}
782					observer.observe(ad);
783					initialize();
784				})();
785			</script>
785
786		</div>
787
788</div>
789
790					</div>
791				</div>
792			</div>
793
794
795			<div class="row">
796				<div class="col-md-7 col-lg-8 pl-12">
797
798						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
799							<div class="feature-image">
800								<div class="image-frame image-hover-style-1">
801									<a href="/z_rodinneho_domu_zmizely_sperky_i_dron_za_170_tisic_policie_patra_po_cloveku_z_videa" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/bd98adebbd/policie_velitel_google_discover_1200x900.jpg.medium.jpg" alt="Z rodinn&#xE9;ho domu zmizely &#x161;perky i dron za 170 tis&#xED;c. Policie p&#xE1;tr&#xE1; po &#x10D;lov&#x11B;ku z videa"></a>
802								</div>
803							</div>
804							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
805								<div class="card-flex-content w-100">
806									<h6>
807										<a href="/z_rodinneho_domu_zmizely_sperky_i_dron_za_170_tisic_policie_patra_po_cloveku_z_videa" target="">Z rodinn&#xE9;ho domu zmizely &#x161;perky i dron za 170 tis&#xED;c. Policie p&#xE1;tr&#xE1; po &#x10D;lov&#x11B;ku z videa</a>
808									</h6>
809									<div class="desktop-only">
810										<p>Prsteny, téměř dvanáct řetízků nebo dron s příslušenstvím zmizely v srpnu z rodinného domu v menší obci na Karlovarsku. Škoda dosáhla přibližně 170 tisíc korun. Kriminalisté nyní pátrají po osobě, kterou v době krádeže zachytil kamerový systém.</p>
811									</div>
812								</div>
813							</div>
814						</article>
815						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
816							<div class="feature-image">
817								<div class="image-frame image-hover-style-1">
818									<a href="/ledove_jamy_se_vyjimecne_otevrou_verejnosti_blatensky_vrch_nabidne_den_s_lesniky" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/1bd3d16cf2/liska_google_discover_1200x900.jpg.medium.jpg" alt="Ledov&#xE9; j&#xE1;my se v&#xFD;jime&#x10D;n&#x11B; otev&#x159;ou ve&#x159;ejnosti. Blatensk&#xFD; vrch nab&#xED;dne den s lesn&#xED;ky"></a>
819								</div>
820							</div>
821							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
822								<div class="card-flex-content w-100">
823									<h6>
824										<a href="/ledove_jamy_se_vyjimecne_otevrou_verejnosti_blatensky_vrch_nabidne_den_s_lesniky" target="">Ledov&#xE9; j&#xE1;my se v&#xFD;jime&#x10D;n&#x11B; otev&#x159;ou ve&#x159;ejnosti. Blatensk&#xFD; vrch nab&#xED;dne den s lesn&#xED;ky</a>
825									</h6>
826									<div class="desktop-only">
827										<p>Běžně nepřístupné Ledové jámy, výstup zdarma na rozhlednu nebo ukázky práce lesníků. Blatenský vrch nabídne den věnovaný lesnictví, přírodě i historii Krušných hor. Návštěvníky čeká 2,5 kilometru dlouhá okružní trasa s řadou stanovišť.</p>
828									</div>
829								</div>
830							</div>
831						</article>
832						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
833							<div class="feature-image">
834								<div class="image-frame image-hover-style-1">
835									<a href="/ridic_prosvistel_kolem_policejniho_vozu_rychlosti_183_kmh_prisel_o_ridicak" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/4daa7d348e/rychlost_183_google_discover.jpg.medium.jpg" alt="&#x158;idi&#x10D; prosvi&#x161;t&#x11B;l kolem policejn&#xED;ho vozu rychlost&#xED; 183 km/h. P&#x159;i&#x161;el o &#x159;idi&#x10D;&#xE1;k"></a>
836								</div>
837							</div>
838							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
839								<div class="card-flex-content w-100">
840									<h6>
841										<a href="/ridic_prosvistel_kolem_policejniho_vozu_rychlosti_183_kmh_prisel_o_ridicak" target="">&#x158;idi&#x10D; prosvi&#x161;t&#x11B;l kolem policejn&#xED;ho vozu rychlost&#xED; 183 km/h. P&#x159;i&#x161;el o &#x159;idi&#x10D;&#xE1;k</a>
842									</h6>
843									<div class="desktop-only">
844										<p>
844Na pořádný problém si zadělal šestatřicetiletý řidič na silnici I/6 u Verušiček. V místě s povolenou devadesátkou jel rychlostí 183 kilometrů v hodině a při své jízdě předjel přímo policejní vůz. Policisté ho následně zastavili a zadrželi mu řidičský průkaz.</p>
845									</div>
846								</div>
847							</div>
848						</article>
849						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
850							<div class="feature-image">
851								<div class="image-frame image-hover-style-1">
852									<a href="/karlovarsky_kraj_laka_lekare_na_milionovy_prispevek_hleda_onkology_a_radiology" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/aae664e523/261002-radiolog-screening-mamograf.png.medium.jpg" alt="Karlovarsk&#xFD; kraj l&#xE1;k&#xE1; l&#xE9;ka&#x159;e na milionov&#xFD; p&#x159;&#xED;sp&#x11B;vek. Hled&#xE1; onkology a radiology"></a>
853								</div>
854							</div>
855							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
856								<div class="card-flex-content w-100">
857									<h6>
858										<a href="/karlovarsky_kraj_laka_lekare_na_milionovy_prispevek_hleda_onkology_a_radiology" target="">Karlovarsk&#xFD; kraj l&#xE1;k&#xE1; l&#xE9;ka&#x159;e na milionov&#xFD; p&#x159;&#xED;sp&#x11B;vek. Hled&#xE1; onkology a radiology</a>
859									</h6>
860									<div class="desktop-only">
861										<p>Karlovarský kraj chce získat další lékaře pro nemocnice v Karlových Varech, Chebu a Sokolově. Klinickým onkologům, radiologům a specialistům na mamární diagnostiku nově nabídne náborový příspěvek až jeden milion korun. Posílení personálu má mimo jiné umožnit rozšíření provozu onkologického centra.</p>
862									</div>
863								</div>
864							</div>
865						</article>
866						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
867							<div class="feature-image">
868								<div class="image-frame image-hover-style-1">
869									<a href="/chebsti_hasici_maji_novy_velitelsky_vuz_zvladne_i_tezko_pristupny_teren" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/ead829c729/hasici_cheb_google_discover_1200x900.jpg.medium.jpg" alt="Cheb&#x161;t&#xED; hasi&#x10D;i maj&#xED; nov&#xFD; velitelsk&#xFD; v&#x16F;z. Zvl&#xE1;dne i t&#x11B;&#x17E;ko p&#x159;&#xED;stupn&#xFD; ter&#xE9;n"></a>
870								</div>
871							</div>
872							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
873								<div class="card-flex-content w-100">
874									<h6>
875										<a href="/chebsti_hasici_maji_novy_velitelsky_vuz_zvladne_i_tezko_pristupny_teren" target="">Cheb&#x161;t&#xED; hasi&#x10D;i maj&#xED; nov&#xFD; velitelsk&#xFD; v&#x16F;z. Zvl&#xE1;dne i t&#x11B;&#x17E;ko p&#x159;&#xED;stupn&#xFD; ter&#xE9;n</a>
876									</h6>
877									<div class="desktop-only">
878										<p>Profesionální hasiči v Chebu mají k dispozici nový velitelský automobil Toyota Hilux. Vůz za více než 1,7 milionu korun pořídilo město Cheb a ve čtvrtek 1. října jej předalo hasičům. Díky pohonu všech kol může zasahovat také v náročném a hůře přístupném terénu.</p>
879									</div>
880								</div>
881							</div>
882						</article>
883						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
884							<div class="feature-image">
885								<div class="image-frame image-hover-style-1">
886									<a href="/cheb_rozsiruje_stomatologickou_peci_o_deti_slozitejsi_zakroky_zvladnou_v_celkove_anestezii" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/ce92233cef/detsky_zubar_google_discover_1200x900.jpg.medium.jpg" alt="Cheb roz&#x161;i&#x159;uje stomatologickou p&#xE9;&#x10D;i o d&#x11B;ti. Slo&#x17E;it&#x11B;j&#x161;&#xED; z&#xE1;kroky zvl&#xE1;dnou v celkov&#xE9; anestezii"></a>
887								</div>
888							</div>
889							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
890								<div class="card-flex-content w-100">
891									<h6>
892										<a href="/cheb_rozsiruje_stomatologickou_peci_o_deti_slozitejsi_zakroky_zvladnou_v_celkove_anestezii" target="">Cheb roz&#x161;i&#x159;uje stomatologickou p&#xE9;&#x10D;i o d&#x11B;ti. Slo&#x17E;it&#x11B;j&#x161;&#xED; z&#xE1;kroky zvl&#xE1;dnou v celkov&#xE9; anestezii</a>
893									</h6>
894									<div class="desktop-only">
895										<p>Děti, u kterých není možné potřebné zubní ošetření bezpečně provést běžně v ordinaci, získávají v Chebu novou možnost. Stomatologické centrum FITDENT ve spolupráci s Nemocnicí Cheb začíná od 1. října provádět zákroky u dětských pacientů v celkové anestezii. První dvě děti podstoupí ošetření hned ve čtvrtek.</p>
896									</div>
897								</div>
898							</div>
899						</article>
900						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
901							<div class="feature-image">
902								<div class="image-frame image-hover-style-1">
903									<a href="/perninsky_kros_prilakal_120_zavodniku_pernink_chysta_dalsi_rozvoj_arealu" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/e688aa0b6b/cross_4.jpg.medium.jpg" alt="Perninsk&#xFD; kros p&#x159;il&#xE1;kal 120 z&#xE1;vodn&#xED;k&#x16F;. Pernink chyst&#xE1; dal&#x161;&#xED; rozvoj are&#xE1;lu"></a>
904								</div>
905							</div>
906							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
907								<div class="card-flex-content w-100">
908									<h6>
909										<a href="/perninsky_kros_prilakal_120_zavodniku_pernink_chysta_dalsi_rozvoj_arealu" target="">Perninsk&#xFD; kros p&#x159;il&#xE1;kal 120 z&#xE1;vodn&#xED;k&#x16F;. Pernink chyst&#xE1; dal&#x161;&#xED; rozvoj are&#xE1;lu</a>
910									</h6>
911									<div class="desktop-only">
912										<p>V Perninku se v sobotu 26. září uskutečnil Perninský kros – Memoriál Jirky Holého. Na start se postavili závodníci všech věkových kategorií od minižáků až po veterány. Náročná trať vedla také do sjezdovky Velký link a závodu se zúčastnilo zhruba 120 běžců.
913</p>
914									</div>
915								</div>
916							</div>
917						</article>
918						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
919							<div class="feature-image">
920								<div class="image-frame image-hover-style-1">
921									<a href="/ostrov_obnovi_zelen_u_domu_kultury_v_listopadu_zde_odhali_pamatnik_politickym_veznum" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/0b9b65273e/budova_google_discover_1200x900.jpg.medium.jpg" alt="Ostrov obnov&#xED; zele&#x148; u Domu kultury. V listopadu zde odhal&#xED; pam&#xE1;tn&#xED;k politick&#xFD;m v&#x11B;z&#x148;&#x16F;m"></a>
922								</div>
923							</div>
924							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
925								<div class="card-flex-content w-100">
926									<h6>
927										<a href="/ostrov_obnovi_zelen_u_domu_kultury_v_listopadu_zde_odhali_pamatnik_politickym_veznum" target="">Ostrov obnov&#xED; zele&#x148; u Domu kultury. V listopadu zde odhal&#xED; pam&#xE1;tn&#xED;k politick&#xFD;m v&#x11B;z&#x148;&#x16F;m</a>
928									</h6>
929									<div class="desktop-only">
930										<p>Okolí Domu kultury v Ostrově čeká další proměna. Přestárlé keře nahradí nová výsadba navazující na podobu prostoru ze 60. let a dokončena už byla také oprava scho
930dišť před čelní fasádou. Významnou novinkou bude Památník svědomí připomínající politické vězně, kteří se na stavbě kulturního domu podíleli.</p>
931									</div>
932								</div>
933							</div>
934						</article>
935						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
936							<div class="feature-image">
937								<div class="image-frame image-hover-style-1">
938									<a href="/misto_referenda_rozhodli_zastupitele_as_odkoupi_nevyuzivany_hotel_goethe" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/64325a2a33/hotel_google_discover_1200x900.jpg.medium.jpg" alt="M&#xED;sto referenda rozhodli zastupitel&#xE9;. A&#x161; odkoup&#xED; nevyu&#x17E;&#xED;van&#xFD; hotel Goethe"></a>
939								</div>
940							</div>
941							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
942								<div class="card-flex-content w-100">
943									<h6>
944										<a href="/misto_referenda_rozhodli_zastupitele_as_odkoupi_nevyuzivany_hotel_goethe" target="">M&#xED;sto referenda rozhodli zastupitel&#xE9;. A&#x161; odkoup&#xED; nevyu&#x17E;&#xED;van&#xFD; hotel Goethe</a>
945									</h6>
946									<div class="desktop-only">
947										<p>Nevyužívaný hotel Goethe na rohu Čapkovy a Nádražní ulice přejde do majetku Aše. Zastupitelé schválili jeho odkoupení za 17 milionů korun. Město chce získáním objektu ovlivnit jeho další využití a předejít tomu, aby se z bývalého hotelu stala další ubytovna.</p>
948									</div>
949								</div>
950							</div>
951						</article>
952						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
953							<div class="feature-image">
954								<div class="image-frame image-hover-style-1">
955									<a href="/od_proutenych_kabelek_k_prumyslovym_pecim_karlovarsky_kraj_vybral_firmu_a_zivnostnika_roku" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/c145cb3520/foto_google_discover_1200x900.jpg.medium.jpg" alt="Od prout&#x11B;n&#xFD;ch kabelek k pr&#x16F;myslov&#xFD;m pec&#xED;m. Karlovarsk&#xFD; kraj vybral Firmu a &#x17D;ivnostn&#xED;ka roku"></a>
956								</div>
957							</div>
958							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
959								<div class="card-flex-content w-100">
960									<h6>
961										<a href="/od_proutenych_kabelek_k_prumyslovym_pecim_karlovarsky_kraj_vybral_firmu_a_zivnostnika_roku" target="">Od prout&#x11B;n&#xFD;ch kabelek k pr&#x16F;myslov&#xFD;m pec&#xED;m. Karlovarsk&#xFD; kraj vybral Firmu a &#x17D;ivnostn&#xED;ka roku</a>
962									</h6>
963									<div class="desktop-only">
964										<p>Krajské finále 21. ročníku soutěží Firma roku a Živnostník roku zná své vítěze. V prostorách Hotelu Imperial uspěla mezi společnostmi karlovarská firma REALISTIC, která vyvíjí a vyrábí průmyslové pece a technologická zařízení pro tepelné zpracování materiálů. Mezi živnostníky porota vybrala Andreu Holzknechtovou z Nejdku, která vyrábí proutěné kabelky doplněné o kožené prvky.</p>
965									</div>
966								</div>
967							</div>
968						</article>
969						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
970							<div class="feature-image">
971								<div class="image-frame image-hover-style-1">
972									<a href="/tri_vyrazene_sanitky_dostanou_druhou_sanci_jedna_bude_zachranovat_i_zvirata" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/fc65169075/241212-sanita.jpg.medium.jpg" alt="T&#x159;i vy&#x159;azen&#xE9; sanitky dostanou druhou &#x161;anci. Jedna bude zachra&#x148;ovat i zv&#xED;&#x159;ata"></a>
973								</div>
974							</div>
975							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
976								<div class="card-flex-content w-100">
977									<h6>
978										<a href="/tri_vyrazene_sanitky_dostanou_druhou_sanci_jedna_bude_zachranovat_i_zvirata" target="">T&#x159;i vy&#x159;azen&#xE9; sanitky dostanou druhou &#x161;anci. Jedna bude zachra&#x148;ovat i zv&#xED;&#x159;ata</a>
979									</h6>
980									<div class="desktop-only">
981										<p>Tři sanitky, které po letech končí u Zdravotnické záchranné služby Karlovarského kraje, ještě do důchodu nemíří. Kraj je bezplatně převede třem spolkům. Vozy budou nově pomáhat při záchraně volně žijících zvířat, na motoristických a hasičských akcích nebo při vzdělávání veřejnosti.</p>
982									</div>
983								</div>
984							</div>
985						</article>
986						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
987							<div class="feature-image">
988								<div class="image-frame image-hover-style-1">
989									<a href="/ridic_na_parkovisti_prehledl_lampu_souboj_s_naraznikem_vyhral_stozar" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/88f8aa0d87/nehoda_google_discover_1200x900.jpg.medium.jpg" alt="&#x158;idi&#x10D; na parkovi&#x161;ti p&#x159;ehl&#xE9;dl lampu. Souboj s n&#xE1;razn&#xED;kem vyhr&#xE1;l sto&#x17E;&#xE1;r"></a>
990								</div>
991							</div>
992							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
993								<div class="card-flex-content w-100">
994									<h6>
995										<a href="/ridic_na_parkovisti_prehledl_lampu_souboj_s_naraznikem_vyhral_stozar" target="">&#x158;idi&#x10D; na parkovi&#x161;ti p&#x159;ehl&#xE9;dl lampu. Souboj s n&#xE1;razn&#xED;kem vyhr&#xE1;l sto&#x17E;&#xE1;r</a>
996									</h6>
997									<div class="desktop-only">
998										<p>Nedělní noc ve Dvorech narušila krátce před půlnocí pořádná rána. Strážníci u obchodního domu Albert objevili nabourané auto a pouliční lampu, které si podle řidiče jednoduše nevšiml. Alkohol za nehodou nebyl.</p>
999									</div>
1000								</div>
1001							</div>
1002						</article>
1003						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1004							<div class="feature-image">
1005								<div class="image-frame image-hover-style-1">
1006									<a href="/tridit_odpad_pujde_i_pri_cekani_na_autobus_ostrov_zkousi_nove_trojkose" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/0b2606d77a/tridene_kose_google_discover.jpg.medium.jpg" alt="T&#x159;&#xED;dit odpad p&#x16F;jde i p&#x159;i &#x10D;ek&#xE1;n&#xED; na autobus. Ostrov zkou&#x161;&#xED; nov&#xE9; trojko&#x161;e"></a>
1007								</div>
1008							</div>
1009							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1010								<div class="card-flex-content w-100">
1011									<h6>
1012										<a href="/tridit_odpad_pujde_i_pri_cekani_na_autobus_ostrov_zkousi_nove_trojkose" target="">T&#x159;&#xED;dit odpad p&#x16F;jde i p&#x159;i &#x10D;ek&#xE1;n&#xED; na autobus. Ostrov zkou&#x161;&#xED; nov&#xE9; trojko&#x161;e</a>
1013									</h6>
1014									<div class="desktop-only">
1015										<p>Kelímek, obal od svačiny nebo jiný drobný odpad nemusí při čekání na autobus automaticky skončit ve směsném koši. Ostrov začal na vybraných místech testovat nové trojkoše na tříděný odpad. Pokud se osvědčí, mají postupně přibývat i na dalších zastávkách.</p>
1016									</div>
1017								</div>
1018							</div>
1019						</article>
1020						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1021							<div class="feature-image">
1022								<div class="image-frame image-hover-style-1">
1023									<a href="/troufnete_si_do_hororoveho_domu_kokorovsky_dvur_nabidne_strasidelny_program" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/2fff7a73a1/stazeny_soubor.jpeg.medium.jpg" alt="Troufnete si do hororov&#xE9;ho domu? Koko&#x159;ovsk&#xFD; dv&#x16F;r nab&#xED;dne stra&#x161;ideln&#xFD; program"></a>
1024								</div>
1025							</div>
1026							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1027								<div class="card-flex-content w-100">
1028									<h6>
1029										<a href="/troufnete_si_do_hororoveho_domu_kokorovsky_dvur_nabidne_strasidelny_program" target="">Troufnete si do hororov&#xE9;ho domu? Koko&#x159;ovsk&#xFD; dv&#x16F;r nab&#xED;dne stra&#x161;ideln&#xFD; program</a>
1030									</h6>
1031									<div class="desktop-only">
1032										<p>Strašidla, čarodějnická sluj, dlabání dýní, ohnivá show a pro odvážnější také hororový dům. Kokořovský dvůr ve Žluticích se v sobotu 3. října promění v kouzelně strašidelné místo. Na své si přijdou děti i dospělí a kostýmy jsou vítány.</p>
1033									</div>
1034								</div>
1035							</div>
1036						</article>
1037						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1038							<div class="feature-image">
1039								<div class="image-frame image-hover-style-1">
1040									<a href="/aby_lide_nemuseli_pro_kazdy_nakup_jinam_kraj_podpori_14_venkovskych_prodejen" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/c1ef73694f/prodejna_google_discover_4x3.jpg.medium.jpg" alt="Aby lid&#xE9; nemuseli pro ka&#x17E;d&#xFD; n&#xE1;kup jinam. Kraj podpo&#x159;&#xED; 14 venkovsk&#xFD;ch prodejen"></a>
1041								</div>
1042							</div>
1043							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1044								<div class="card-flex-content w-100">
1045									<h6>
1046										<a href="/aby_lide_nemuseli_pro_kazdy_nakup_jinam_kraj_podpori_14_venkovskych_prodejen" target="">Aby lid&#xE9; nemuseli pro ka&#x17E;d&#xFD; n&#xE1;kup jinam. Kraj podpo&#x159;&#xED; 14 venkovsk&#xFD;ch prodejen</a>
1047									</h6>
1048									<div class="desktop-only">
1049										<p>Pro rohlíky, mléko nebo další základní zboží nemusejí lidé z menších obcí vždy cestovat několik kilometrů. Aby místní obchody zůstaly v provozu i tam, kde mají méně zákazníků, rozdělí Karlovarský kraj mezi 14 žadatelů téměř 1,7 milionu korun.</p>
1050									</div>
1051								</div>
1052							</div>
1053						</article>
1054						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1055							<div class="feature-image">
1056								<div class="image-frame image-hover-style-1">
1057									<a href="/mezi_veselovem_a_zluticemi_se_znovu_pojede_primo_cast_obchvatu_se_otevira_ridicum" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/c58782c8e9/sil
1057nice_nahled_google_discover_1200.jpg.medium.jpg" alt="Mezi Veselovem a &#x17D;luticemi se znovu pojede p&#x159;&#xED;mo. &#x10C;&#xE1;st obchvatu se otev&#xED;r&#xE1; &#x159;idi&#x10D;&#x16F;m"></a>
1058								</div>
1059							</div>
1060							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1061								<div class="card-flex-content w-100">
1062									<h6>
1063										<a href="/mezi_veselovem_a_zluticemi_se_znovu_pojede_primo_cast_obchvatu_se_otevira_ridicum" target="">Mezi Veselovem a &#x17D;luticemi se znovu pojede p&#x159;&#xED;mo. &#x10C;&#xE1;st obchvatu se otev&#xED;r&#xE1; &#x159;idi&#x10D;&#x16F;m</a>
1064									</h6>
1065									<div class="desktop-only">
1066										<p>Téměř pět měsíců museli řidiči mezi Veselovem a Žluticemi využívat objízdnou trasu přes Chyši a Bošov. Od úterý 29. září se situace mění. První část budovaného obchvatu Veselova se otevírá v režimu předčasného užívání a doprava se vrací na silnici II/205.</p>
1067									</div>
1068								</div>
1069							</div>
1070						</article>
1071						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1072							<div class="feature-image">
1073								<div class="image-frame image-hover-style-1">
1074									<a href="/jazz_propoji_plzen_senegal_izrael_i_svycarsko_karlovarska_galerie_zve_na_dvojkoncert" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/26663b14c7/jazz_google_discover.jpg.medium.jpg" alt="Jazz propoj&#xED; Plze&#x148;, Senegal, Izrael i &#x160;v&#xFD;carsko. Karlovarsk&#xE1; galerie zve na dvojkoncert"></a>
1075								</div>
1076							</div>
1077							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1078								<div class="card-flex-content w-100">
1079									<h6>
1080										<a href="/jazz_propoji_plzen_senegal_izrael_i_svycarsko_karlovarska_galerie_zve_na_dvojkoncert" target="">Jazz propoj&#xED; Plze&#x148;, Senegal, Izrael i &#x160;v&#xFD;carsko. Karlovarsk&#xE1; galerie zve na dvojkoncert</a>
1081									</h6>
1082									<div class="desktop-only">
1083										<p>Milovníci jazzu se mohou v neděli 4. října vydat do Galerie umění Karlovy Vary. V rámci 43. ročníku festivalu pořádaného Jazzovým kruhem Milana Krajíce zde vystoupí plzeňská skupina Zo-o-ya s trumpetistou Františkem Kučerou a mezinárodní trio JMO.</p>
1084									</div>
1085								</div>
1086							</div>
1087						</article>
1088						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1089							<div class="feature-image">
1090								<div class="image-frame image-hover-style-1">
1091									<a href="/oprava_strechy_alzbetinych_lazni_pokracuje_hotovo_ma_byt_v_roce_2028" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/848f7ad74a/alzbetiny_lazne.jpg.medium.jpg" alt="Oprava st&#x159;echy Al&#x17E;b&#x11B;tin&#xFD;ch l&#xE1;zn&#xED; pokra&#x10D;uje, hotovo m&#xE1; b&#xFD;t v roce 2028"></a>
1092								</div>
1093							</div>
1094							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1095								<div class="card-flex-content w-100">
1096									<h6>
1097										<a href="/oprava_strechy_alzbetinych_lazni_pokracuje_hotovo_ma_byt_v_roce_2028" target="">Oprava st&#x159;echy Al&#x17E;b&#x11B;tin&#xFD;ch l&#xE1;zn&#xED; pokra&#x10D;uje, hotovo m&#xE1; b&#xFD;t v roce 2028</a>
1098									</h6>
1099									<div class="desktop-only">
1100										<p>Alžbětiny lázně v Karlových Varech procházejí další etapou obnovy. Po výměně oken přišla na řadu střecha historické budovy, která je ve špatném stavu a místy do objektu zatéká. Práce budou pokračovat i v dalších sezónách, dokončení je plánované na rok 2028.</p>
1101									</div>
1102								</div>
1103							</div>
1104						</article>
1105						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1106							<div class="feature-image">
1107								<div class="image-frame image-hover-style-1">
1108									<a href="/vino_cimbalovka_i_rodeo_na_lahvi_na_loket_se_vraci_svatovaclavske_vinobrani" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/3e79fde835/loket_06.png.medium.jpg" alt="V&#xED;no, cimb&#xE1;lovka i rodeo na lahvi. Na Loket se vrac&#xED; Svatov&#xE1;clavsk&#xE9; vinobran&#xED;"></a>
1109								</div>
1110							</div>
1111							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1112								<div class="card-flex-content w-100">
1113									<h6>
1114										<a href="/vino_cimbalovka_i_rodeo_na_lahvi_na_loket_se_vraci_svatovaclavske_vinobrani" target="">V&#xED;no, cimb&#xE1;lovka i rodeo na lahvi. Na Loket se vrac&#xED; Svatov&#xE1;clavsk&#xE9; vinobran&#xED;</a>
1115									</h6>
1116									<div class="desktop-only">
1117										<p>První říjnový víkend bude na hradě Loket patřit vínu, hudbě a podzimní atmosféře. V sobotu 3. a v neděli 4. října se uskuteční už 19. ročník Svatováclavského vinobraní. Návštěvníkům nabídne vína od 27 vinařů z celé republiky, živou hudbu i doprovodný program.</p>
1118									</div>
1119								</div>
1120							</div>
1121						</article>
1122						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1123							<div class="feature-image">
1124								<div class="image-frame image-hover-style-1">
1125									<a href="/hledaji_se_studenti_se_zajmem_o_it_a_data_v_chebu_je_ceka_24hodinova_vyzva" target=""> <img class=" ls-is-cached lazyloaded" src="https://zaktv.b-cdn.net/upload/News/9dfb2cab0f/hackathon_google_discover.jpg.medium.jpg" alt="Hledaj&#xED; se studenti se z&#xE1;jmem o IT a data. V Chebu je &#x10D;ek&#xE1; 24hodinov&#xE1; v&#xFD;zva"></a>
1126								</div>
1127							</div>
1128							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1129								<div class="card-flex-content w-100">
1130									<h6>
1131										<a href="/hledaji_se_studenti_se_zajmem_o_it_a_data_v_chebu_je_ceka_24hodinova_vyzva" target="">Hledaj&#xED; se studenti se z&#xE1;jmem o IT a data. V Chebu je &#x10D;ek&#xE1; 24hodinov&#xE1; v&#xFD;zva</a>
1132									</h6>
1133									<div class="desktop-only">
1134										<p>Máte doma středoškoláka, vysokoškoláka nebo studenta VOŠ, kterého baví programování, data, grafika či vymýšlení nových řešení? První Hackathon otevřených dat Karlovarského kraje hledá studentské týmy, které dostanou 24 hodin na vytvoření vlastního digitálního projektu. Přihlásit se mohou do 4. října nebo do naplnění kapacity.</p>
1135									</div>
1136								</div>
1137							</div>
1138						</article>
1139
1140					<div class="text-center">
1141						
1142
1143<div class="ad-list">
1144		<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1145        <span class="ad-title">Reklama</span>
1146</div>
1147			<a href="https://www.serikovka.cz/" class="banner-link" data-banner-id="145" target="_blank" title="Harlej v &#x160;e&#x159;&#xED;kovce"><img src="https://zaktv.b-cdn.net/upload/Banner/f7b00a3e74/2026-10-15_Harlej_728x90px_plzencz.jpg" /></a>
1148</div>
1149					</div>
1150				</div>
1151				<div class="col-lg-4 col-md-5 desktop-only">
1152					<div class="sticky-top sticky-sidebar">
1153
1154						
1155
1156<div class="static-ads">
1157
1158		<div class="mb-2 ad-sidebar">
1159			<div data-sidebar-ad-title hidden>
1160				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1161        <span class="ad-title">Reklama</span>
1162</div>
1163			</div>
1164			<!-- ZAK-Sidebar -->
1165			<ins class="sidebar-adsense"
1166				 style="display:block"
1167				 data-ad-client="ca-pub-1914100961537914"
1168				 data-ad-slot="2460148899"
1169				 data-ad-format="auto"
1170				 data-full-width-responsive="true"></ins>
1171			
1171<script>
1172				(function () {
1173					const ad = document.currentScript.previousElementSibling;
1174					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
1175					function updateTitle() {
1176						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
1177					}
1178					const statusObserver = new MutationObserver(updateTitle);
1179					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
1180					updateTitle();
1181					let initialized = false;
1182					const observer = new ResizeObserver(initialize);
1183					function initialize() {
1184						if (initialized || ad.getBoundingClientRect().width <= 0) return;
1185						initialized = true;
1186						observer.disconnect();
1187						ad.classList.add('adsbygoogle');
1188						(window.adsbygoogle = window.adsbygoogle || []).push({});
1189					}
1190					observer.observe(ad);
1191					initialize();
1192				})();
1193			</script>
1193
1194		</div>
1195
1196</div>
1197						
1198
1199<div class="static-ads">
1200
1201		<div class="mb-2 ad-sidebar">
1202			<div data-sidebar-ad-title hidden>
1203				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1204        <span class="ad-title">Reklama</span>
1205</div>
1206			</div>
1207			<!-- ZAK-Sidebar -->
1208			<ins class="sidebar-adsense"
1209				 style="display:block"
1210				 data-ad-client="ca-pub-1914100961537914"
1211				 data-ad-slot="2460148899"
1212				 data-ad-format="auto"
1213				 data-full-width-responsive="true"></ins>
1214			
1214<script>
1215				(function () {
1216					const ad = document.currentScript.previousElementSibling;
1217					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
1218					function updateTitle() {
1219						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
1220					}
1221					const statusObserver = new MutationObserver(updateTitle);
1222					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
1223					updateTitle();
1224					let initialized = false;
1225					const observer = new ResizeObserver(initialize);
1226					function initialize() {
1227						if (initialized || ad.getBoundingClientRect().width <= 0) return;
1228						initialized = true;
1229						observer.disconnect();
1230						ad.classList.add('adsbygoogle');
1231						(window.adsbygoogle = window.adsbygoogle || []).push({});
1232					}
1233					observer.observe(ad);
1234					initialize();
1235				})();
1236			</script>
1236
1237		</div>
1238
1239</div>
1240
1241					</div>
1242				</div>
1243			</div>
1244
1245			<div class="row">
1246				<div class="col-md-7 col-lg-8 pl-12">
1247
1248					<div class="d-flex justify-content-center">
1249						<ul class="pagination">
1250								<li class="page-item disabled" data-duration="0.3" data-opacity="0.2">
1251									<a class="btn has-ripple page-link" href="#">← Novější</a>
1252								</li>
1253								<li class="page-item" data-duration="0.3" data-opacity="0.2">
1254									<a href="/karlovarsky-kraj?page=2" class="btn has-ripple page-link">Starší →</a>
1255								</li>
1256						</ul>
1257					</div>
1258
1259				</div>
1260				<div class="col-lg-4 col-md-5 pt-4 px-3 desktop-only">
1261				</div>
1262			</div>
1263
1264	</div>
1265</div>
1266	</div>
1267
1268	<footer class="footer-area pb-2">
1269	<div class="container">
1270		<div class="row col-lg-12">
1271			<div class="col-lg-8 footer-links">
1272				<div class="footer-widget footer-nav small-res-center">
1273					<div class="row">
1274						<div class="col-lg-4 small">
1275							<ul class="footer-nav list-inline text-center">
1276								<li><a href="/redakce" alt="Redakce">Redakce</a></li>
1277								<li><a href="/reklama">Reklama</a></li>
1278								<li><a href="/rss/karlovarsky-kraj">RSS</a></li>
1279							</ul>
1280						</div>
1281						<div class="col-lg-4 small">
1282							<ul class="footer-nav list-inline text-center">
1283								<li><a href="/eticky-kodex">Etický kodex</a></li>
1284								<li><a href="/ochrana_osobnich_udaju" alt="Ochrana osobních údajů">Ochrana osobních údajů</a></li>
1285							</ul>
1286						</div>
1287						<div class="col-lg-4 small">
1288							<ul class="footer-nav list-inline text-center">
1289								<li><a href="/zpracovani_osobnich_udaju" alt="Zpracování osobních údajů">Zpracování osobních údajů</a></li>
1290								<li><a href="#nastaveni-cookies" data-google-consent-settings>Nastavení cookies</a></li>
1291							</ul>
1292						</div>
1293					</div>
1294				</div>
1295				<hr />
1296				<div class="row">
1297					<div class="col-lg-4 small text-center">
1298						<a href="https://www.euronovagroup.com/" target="_blank"><i class="fa fa-copyright"></i> <b>Euronova Group</b></a>
1299					</div>
1300				</div>
1301			</div>
1302			<div class="col-lg-4 small my-auto">
1303				<div class="footer-logo">
1304					<img src="/images/zaktv-wlogo-w.svg" />
1305				</div>
1306			</div>
1307		</div>
1308
1309	</div>
1310</footer>
1311
1312	<div id="da_regiotv1_sticky" class="mobile-only"></div>
1313
1314	<a id="back-to-top" class="btn btn-primary shadow30 btn-lg back-to-top footer-back" role="button" alt="Zpět na začátek"><span><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" class="bi bi-caret-up-fill" fill="white" id="caret-up-fill" style="width: 16px;height: 16px;margin-bottom: 6px;"><path d="M7.247 4.86l-4.796 5.481c-.566.647-.106 1.659.753 1.659h9.592a1 1 0 00.753-1.659l-4.796-5.48a1 1 0 00-1.506 0z"></path></svg></span></a>
1315	
1316	
1316<script src="/js/fancybox.umd.js"></script>
1316
1317	
1317<script src="/js/back-to-top.js"></script>
1317
1318	
1318<script src="/js/build.min.js?=build530"></script>
1318
1319	
1319<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert2.all.min.js"></script>
1319
1320	
1320<script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
1320
1321	
1321<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-youtube/2.6.1/Youtube.min.js"></script>
1321
1322	
1322<script src="/js/util.js?v=XyRxxB7t5yv3ww_YUrBnZBVurxuZeSBI134GKUMJM_I"></script>
1322
1323
1324	
1325<script>
1326	const activeCooldownTimers = new Map(); // surveyId → { intervalId, endTime }
1327
1328	const formatTime = (secs) => {
1329		const m = Math.floor(secs / 60);
1330		const s = secs % 60;
1331		return `${m}:${s.toString().padStart(2, '0')}`;
1332	};
1333
1334	document.addEventListener('DOMContentLoaded', function() {
1335		// Find all survey placeholders in page content
1336		const surveyEmbeds = document.querySelectorAll('div.survey-embed[data-survey-id]');
1337
1338		surveyEmbeds.forEach(placeholder => {
1339			const surveyId = parseInt(placeholder.dataset.surveyId);
1340			if (isNaN(surveyId)) return;
1341
1342			// Replace placeholder with loading container
1343			const container = document.createElement('div');
1344			container.id = `survey-container-${surveyId}`;
1345			container.className = 'survey-container';
1346			container.innerHTML = '<div class="survey-loading">Načítání ankety...</div>';
1347
1348			placeholder.replaceWith(container);
1349
1350			// Load and render survey
1351			loadSurvey(surveyId, container);
1352		});
1353	});
1354
1355	document.addEventListener('visibilitychange', async () => {
1356		if (document.visibilityState !== 'visible') return;
1357		if (activeCooldownTimers.size === 0) return;
1358
1359		for (const [surveyId, timerData] of Array.from(activeCooldownTimers.entries())) {
1360			// Zkontroluj lokálně – bez server roundtrip (klíčové pro hibernaci)
1361			if (Date.now() >= timerData.endTime) {
1362				clearInterval(timerData.intervalId);
1363				activeCooldownTimers.delete(surveyId);
1364
1365				const container = document.getElementById(`survey-container-${surveyId}`);
1366				if (container) {
1367					const form = container.querySelector(`#survey-form-${surveyId}`);
1368					const submitBtn = form?.querySelector('button[type="submit"]');
1369					if (submitBtn) {
1370						submitBtn.textContent = 'Hlasovat v anketě';
1371						submitBtn.disabled = false;
1372						submitBtn.style.opacity = '1';
1373						submitBtn.style.cursor = 'pointer';
1374					}
1375					if (form) {
1376						form.querySelectorAll('input').forEach(el => el.disabled = false);
1377					}
1378					container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1379				}
1380				continue;
1381			}
1382
1383			// Timer stále běží – re-sync se serverem pro přesnost
1384			// Nejdřív okamžitě oprav zmrazený text (eliminuje viditelný skok)
1385			const container = document.getElementById(`survey-container-${surveyId}`);
1386			if (container) {
1387				const localRemaining = Math.max(0, Math.floor((timerData.endTime - Date.now()) / 1000));
1388				const form = container.querySelector(`#survey-form-${surveyId}`);
1389				const submitBtn = form?.querySelector('button[type="submit"]');
1390				if (submitBtn && localRemaining > 0) {
1391					submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(localRemaining)}`;
1392				}
1393			}
1394
1395			try {
1396				const response = await fetch(`/api/survey/get/${surveyId}`, { cache: 'no-store' });
1397				if (!response.ok) continue;
1398				if (!activeCooldownTimers.has(surveyId)) continue; // expiroval během fetch
1399
1400				const survey = await response.json();
1401				const container = document.getElementById(`survey-container-${surveyId}`);
1402				if (!container) continue;
1403
1404				if (survey.secondsRemainingBeforeCooldownExpires > 0) {
1405					startCooldownTimer(container, surveyId, survey.secondsRemainingBeforeCooldownExpires);
1406				} else {
1407					clearInterval(activeCooldownTimers.get(surveyId).intervalId);
1408					activeCooldownTimers.delete(surveyId);
1409
1410					const form = container.querySelector(`#survey-form-${surveyId}`);
1411					const submitBtn = form?.querySelector('button[type="submit"]');
1412					if (submitBtn) {
1413						submitBtn.textContent = 'Hlasovat v anketě';
1414						submitBtn.disabled = false;
1415						submitBtn.style.opacity = '1';
1416						submitBtn.style.cursor = 'pointer';
1417					}
1418					if (form) {
1419						form.querySelectorAll('input').forEach(el => el.disabled = false);
1420					}
1421					container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1422				}
1423			} catch (e) {
1424				console.error(`Survey re-sync error for survey ${surveyId}:`, e);
1425			}
1426		}
1427	});
1428
1429	async function loadSurvey(surveyId, container) {
1430		try {
1431			const response = await fetch(`/api/survey/get/${surveyId}`, { cache: 'no-store' });
1432
1433			if (!response.ok) {
1434				const error = await response.json();
1435				container.innerHTML = `<div class="survey-error">${escapeHtml(error.error || 'Nepodařilo se načíst anketu')}</div>`;
1436				return;
1437			}
1438
1439			const survey = await response.json();
1440			renderSurveyForm(survey, container);
1441		} catch (error) {
1442			console.error('Survey load error:', error);
1443			container.innerHTML = '<div class="survey-error">Nepodařilo se načíst anketu. Zkuste prosím později.</div>';
1444		}
1445	}
1446
1447	function renderSurveyForm(survey, container) {
1448		let html = `
1449			<div class="survey mt-2 mb-2 pt-1 pb-1 radius">
1450				<div class="px-3">
1451		`;
1452
1453		survey.questions.forEach(question => {
1454			html += `
1455					<div class="small gdpr">
1456						Hlasování v anketě je anonymní – nezjišťujeme vaše jméno, e-mail ani polohu. Používáme pouze jednoduchý technický identifikátor k zajištění férových výsledků. <a href="/ochrana_osobnich_udaju">Více&nbsp;informací</a>.
1457						<hr />
1458					</div>
1459					<div class="survey-question-header mb-2">
1460						<button type="button" class="survey-gdpr-toggle" aria-label="GDPR informace"><i class="fa-regular fa-circle-info"></i></button>
1461						<h4 class="mb-2">${escapeHtml(question.questionText)}</h4>
1462					</div>
1463
1464					<div class="survey-options">
1465			`;
1466
1467			question.answers.forEach(answer => {
1468				html += `
1469						<div class="survey-option mb-2">
1470							<div class="d-flex justify-content-between align-items-center mb-1">
1471								<label class="mb-0">
1472									<input type="radio" name="question-${question.questionId}" value="${answer.answerId}" class="me-2" required>
1473									<span>${escapeHtml(answer.answerText)}</span>
1474								</label>
1475								<span class="badge bg-secondary" data-answer-percent="${answer.answerId}">${answer.votePercentage}%</span>
1476							</div>
1477							<div class="progress mb-1" style="height: 7px;">
1478								<div class="progress-bar bg-plzen" role="progressbar" data-answer-bar="${answer.answerId}" style="width: ${answer.votePercentage}%;"></div>
1479							</div>
1480						</div>
1481				`;
1482			});
1483
1484			html += `
1485					</div>
1486			`;
1487		});
1488
1489		html += `
1490					<div class="text-center mt-3">
1491						<button class="btn btn-secondary btn-sm" type="submit" data-survey-id="${survey.surveyId}">Hlasovat v anketě</button>
1492						<div id="survey-message-${survey.surveyId}" class="d-none">
1493							<div class="alert alert-success mb-0" role="alert">
1494								<strong>Děkujeme!</strong> Váš hlas byl zaregistrován.
1495							</div>
1496						</div>
1497					</div>
1498				</div>
1499			</div>
1500		`;
1501
1502		container.innerHTML = `<form id="survey-form-${survey.surveyId}">${html}</form>`;
1503
1504		// Attach GDPR toggle handlers
1505		container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => {
1506			btn.addEventListener('click', () => {
1507				const notice = btn.closest('.survey-question-header').previousElementSibling;
1508				if (notice) notice.classList.toggle('gdpr-open');
1509			});
1510		});
1511
1512		// Attach form submission handler
1513		const form = container.querySelector(`#survey-form-${survey.surveyId}`);
1514		form.addEventListener('submit', (e) => handleSurveySubmit(e, survey));
1515
1516		// Typ 0) - anketa po termínu
1517		if (survey.isExpired) {
1518			disableSurveyForm(container, survey.surveyId);
1519			const submitBtn = form.querySelector('button[type="submit"]');
1520			if (submitBtn) {
1521				submitBtn.style.display = 'none';
1522			}
1523			const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1524			if (messageDiv) {
1525				messageDiv.classList.remove('d-none');
1526				messageDiv.innerHTML = `
1527					<div class="alert alert-secondary mb-0" role="alert">
1528						Anketa již skončila a není možné znovu hlasovat.
1529					</div>
1530				`;
1531			}
1532			return;
1533		}
1534
1535		// Typ a) - bez opakování hlasování - uživatel už hlasoval
1536		if (!survey.allowMultipleSubmissions && survey.userHasAlreadyVoted) {
1537			disableSurveyForm(container, survey.surveyId);
1538			// Schovat tlačítko a zobrazit success message
1539			const submitBtn = form.querySelector('button[type="submit"]');
1540			if (submitBtn) {
1541				submitBtn.style.display = 'none';
1542			}
1543			const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1544			if (messageDiv) {
1545				messageDiv.classList.remove('d-none');
1546				messageDiv.innerHTML = `
1547					<div class="alert alert-info mb-0" role="alert">
1548						<strong>Děkujeme!</strong> Váš hlas byl zaznamenán.
1549					</div>
1550				`;
1551			}
1552		}
1553		// Typ b) - s opakováním hlasování - cooldown aktivní
1554		else if (survey.allowMultipleSubmissions && survey.secondsRemainingBeforeCooldownExpires > 0) {
1555			disableSurveyForm(container, survey.surveyId);
1556			startCooldownTimer(container, survey.surveyId, survey.secondsRemainingBeforeCooldownExpires);
1557		}
1558		// Všechny ostatní případy - ověř eligibilitu
1559		else {
1560			checkVotingEligibility(survey, container);
1561		}
1562	}
1563
1564	async function checkVotingEligibility(survey, container) {
1565		try {
1566			const response = await fetch('/api/survey/can-vote', {
1567				method: 'POST',
1568				headers: {
1569					'Content-Type': 'application/json'
1570				},
1571				body: JSON.stringify({ surveyId: survey.surveyId })
1572			});
1573
1574			if (!response.ok) return;
1575
1576			const data = await response.json();
1577			if (!data.canVote) {
1578				const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1579
1580				// Pokud tam není už success alert, zobraz error message
1581				if (messageDiv && !messageDiv.innerHTML.includes('Děkujeme')) {
1582					disableSurveyForm(container, survey.surveyId, data.reason);
1583				}
1584
1585				// Show cooldown countdown if applicable
1586				if (data.secondsRemaining > 0) {
1587					startCooldownTimer(container, survey.surveyId, data.secondsRemaining);
1588				}
1589			}
1590		} catch (error) {
1591			console.error('Eligibility check error:', error);
1592		}
1593	}
1594
1595	async function handleSurveySubmit(event, survey) {
1596		event.preventDefault();
1597
1598		const form = event.target;
1599		const container = form.closest('.survey-container') ?? form.parentElement;
1600		const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1601
1602		// Gather answers
1603		const answers = [];
1604		survey.questions.forEach(question => {
1605			const selected = form.querySelector(`input[name="question-${question.questionId}"]:checked`);
1606			if (selected) {
1607				answers.push({
1608					questionId: question.questionId,
1609					answerId: parseInt(selected.value)
1610				});
1611			}
1612		});
1613
1614		if (answers.length !== survey.questions.length) {
1615			if (messageDiv) {
1616				messageDiv.classList.remove('d-none');
1617				messageDiv.innerHTML = `
1618					<div class="alert alert-danger mb-0" role="alert">
1619						Prosím odpovězte na všechny otázky
1620					</div>
1621				`;
1622			}
1623			return;
1624		}
1625
1626		// Disable form during submission
1627		form.querySelectorAll('input, button').forEach(el => el.disabled = true);
1628
1629		try {
1630			const response = await fetch('/api/survey/submit', {
1631				method: 'POST',
1632				headers: {
1633					'Content-Type': 'application/json'
1634				},
1635				body: JSON.stringify({
1636					surveyId: survey.surveyId,
1637					answers: answers
1638				})
1639			});
1640
1641			const result = await response.json();
1642
1643			if (!response.ok) {
1644				if (messageDiv) {
1645					messageDiv.classList.remove('d-none');
1646					messageDiv.innerHTML = `
1647						<div class="alert alert-danger mb-0" role="alert">
1648							${escapeHtml(result.error || 'Hlasování se nezdařilo')}
1649						</div>
1650					`;
1651				}
1652				form.querySelectorAll('input, button').forEach(el => el.disabled = false);
1653
1654				if (result.secondsRemaining > 0) {
1655					startCooldownTimer(container, survey.surveyId, result.secondsRemaining);
1656				}
1657				return;
1658			}
1659
1660			// Success: Update results and disable form
1661			if (messageDiv) {
1662				messageDiv.classList.remove('d-none');
1663				messageDiv.innerHTML = `
1664					<div class="alert alert-success mb-0" role="alert">
1665						<strong>Děkujeme!</strong> Váš hlas byl zaregistrován.
1666					</div>
1667				`;
1668			}
1669			disableSurveyForm(container, survey.surveyId);
1670			updateSurveyResults(container, result.results);
1671			container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1672
1673			// Typ a) - bez opakování - schovat tlačítko po hlasování
1674			if (!survey.allowMultipleSubmissions) {
1675				const submitBtn = form.querySelector('button[type="submit"]');
1676				if (submitBtn) {
1677					submitBtn.style.display = 'none';
1678				}
1679			} else if (result.secondsRemainingBeforeCooldownExpires > 0) {
1680				// Typ b) - s opakováním - spusť countdown přímo z dat odpovědi
1681				startCooldownTimer(container, survey.surveyId, result.secondsRemainingBeforeCooldownExpires);
1682			}
1683		} catch (error) {
1684			console.error('Submission error:', error);
1685			if (messageDiv) {
1686				messageDiv.classList.remove('d-none');
1687				messageDiv.innerHTML = `
1688					<div class="alert alert-danger mb-0" role="alert">
1689						Nepodařilo se odeslat váš hlas. Zkuste prosím znovu.
1690					</div>
1691				`;
1692			}
1693			form.querySelectorAll('input, button').forEach(el => el.disabled = false);
1694		}
1695	}
1696
1697	function disableSurveyForm(container, surveyId, message) {
1698		const form = container.querySelector(`#survey-form-${surveyId}`);
1699		if (form) {
1700			form.querySelectorAll('input').forEach(el => el.disabled = true);
1701			const submitBtn = form.querySelector('button[type="submit"]');
1702			if (submitBtn) {
1703				submitBtn.disabled = true;
1704				// Pokud není zpráva, je to po úspěšném hlasování - nechej tlačítko viditelné s textem "Hlasovat"
1705				if (!message) {
1706					submitBtn.textContent = 'Hlasování';
1707					submitBtn.style.opacity = '0.6';
1708					submitBtn.style.cursor = 'not-allowed';
1709				}
1710			}
1711		}
1712
1713		const messageDiv = container.querySelector(`#survey-message-${surveyId}`);
1714		if (message && messageDiv) {
1715			messageDiv.classList.remove('d-none');
1716			messageDiv.innerHTML = `
1717				<div class="alert alert-info mb-0" role="alert">
1718					${escapeHtml(message)}
1719				</div>
1720			`;
1721		}
1722	}
1723
1724	function updateSurveyResults(container, results) {
1725		results.forEach(result => {
1726			const percentBadge = container.querySelector(`[data-answer-percent="${result.answerId}"]`);
1727			const progressBar = container.querySelector(`[data-answer-bar="${result.answerId}"]`);
1728
1729			if (percentBadge) percentBadge.textContent = `${Math.round(result.votePercentage)}%`;
1730			if (progressBar) progressBar.style.width = `${Math.round(result.votePercentage)}%`;
1731		});
1732	}
1733
1734	function startCooldownTimer(container, surveyId, secondsRemaining) {
1735		// Vyčisti starý timer pro tuto anketu, pokud existuje
1736		if (activeCooldownTimers.has(surveyId)) {
1737			clearInterval(activeCooldownTimers.get(surveyId).intervalId);
1738		}
1739
1740		const endTime = Date.now() + (secondsRemaining * 1000);
1741		const messageDiv = container.querySelector(`#survey-message-${surveyId}`);
1742		const form = container.querySelector(`#survey-form-${surveyId}`);
1743		const submitBtn = form ? form.querySelector('button[type="submit"]') : null;
1744
1745		// Skryj messageDiv během countdownu - countdown jde do tlačítka
1746		if (messageDiv) {
1747			messageDiv.classList.add('d-none');
1748		}
1749
1750		// Zobraz čas okamžitě (bez čekání na první tick)
1751		if (submitBtn) {
1752			submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(secondsRemaining)}`;
1753			submitBtn.disabled = true;
1754			submitBtn.style.opacity = '0.7';
1755			submitBtn.style.cursor = 'not-allowed';
1756		}
1757
1758		const intervalId = setInterval(() => {
1759			const remaining = Math.max(0, Math.floor((endTime - Date.now()) / 1000));
1760
1761			if (submitBtn) {
1762				submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(remaining)}`;
1763				submitBtn.disabled = true;
1764				submitBtn.style.opacity = '0.7';
1765				submitBtn.style.cursor = 'not-allowed';
1766			}
1767
1768			if (remaining <= 0) {
1769				clearInterval(intervalId);
1770				activeCooldownTimers.delete(surveyId);
1771
1772				if (submitBtn) {
1773					submitBtn.textContent = 'Hlasovat v anketě';
1774					submitBtn.disabled = false;
1775					submitBtn.style.opacity = '1';
1776					submitBtn.style.cursor = 'pointer';
1777				}
1778				if (form) {
1779					form.querySelectorAll('input').forEach(el => el.disabled = false);
1780				}
1781				container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1782			}
1783		}, 1000);
1784
1785		activeCooldownTimers.set(surveyId, { intervalId, endTime });
1786	}
1787
1788	function escapeHtml(text) {
1789		if (!text) return '';
1790		const div = document.createElement('div');
1791		div.textContent = text;
1792		return div.innerHTML;
1793	}
1794</script>
1794
1795
1796	<noscript><style>div.quiz-embed[data-quiz-id]::after { content: ' Pro vyplnění kvízu zapněte JavaScript.'; }</style></noscript>
1797<script>
1798(() => {
1799    const element = (tag, className, text) => {
1800        const node = document.createElement(tag);
1801        node.className = className || '';
1802        if (text !== undefined) node.textContent = text;
1803        return node;
1804    };
1805    // All instances share token loading to avoid competing first-request antiforgery cookies.
1806    let tokenRequest;
1807    async function json(url, options) {
1808        const response = await fetch(url, { credentials: 'same-origin', cache: 'no-store', ...options });
1809        const data = await response.json().catch(() => ({}));
1810        if (!response.ok) throw new Error(data.error || (response.status === 400
1811            ? 'Odeslání se nezdařilo. Zkontrolujte odpovědi a povolení cookies.'
1812            : 'Kvíz se nepodařilo načíst nebo odeslat. Zkuste to prosím později.'));
1813        return data;
1814    }
1815    const token = () => tokenRequest || (tokenRequest = json('/api/quiz/token').catch(error => {
1816        tokenRequest = null;
1817        throw error;
1818    }));
1819    function preservePosition(container, change) {
1820        const x = window.scrollX, y = window.scrollY;
1821        change();
1822        window.scrollTo({ left: x, top: y, behavior: 'instant' });
1823    }
1824    function start() {
1825        document.querySelectorAll('div.quiz-embed[data-quiz-id]').forEach((placeholder, index) => {
1826            const id = Number(placeholder.dataset.quizId);
1827            const container = element('div', 'quiz survey mt-2 mb-2 pt-1 pb-1 radius');
1828            container.id = `quiz-instance-${index}`;
1829            const body = element('div', 'quiz-body');
1830            container.append(body);
1831            placeholder.replaceWith(container);
1832            async function load() {
1833                body.replaceChildren(element('p', '', 'Načítání kvízu…'));
1834                try {
1835                    if (!Number.isSafeInteger(id) || id <= 0) throw new Error('Kvíz není dostupný.');
1836                    const quiz = await json(`/api/quiz/get/${id}`);
1837                    if (!quiz.questions.length || quiz.questions.length > 100 || quiz.questions.some(q => !q.answers.length))
1838                        throw new Error('Tento kvíz nyní nelze vyplnit.');
1839                    preservePosition(container, () => render(quiz));
1840                } catch (error) {
1841                    preservePosition(container, () => {
1842                        const message = element('p', 'alert alert-info', error.message);
1843                        message.setAttribute('role', 'alert');
1844                        const retry = element('button', 'btn btn-secondary btn-sm', 'Načíst znovu');
1845                        retry.type = 'button';
1846                        retry.addEventListener('click', load);
1847                        body.replaceChildren(message, retry);
1848                    });
1849                }
1850            }
1851            function render(quiz) {
1852                const header = element('div', 'quiz-header');
1853                const counter = element('span', 'quiz-counter');
1854                const info = element('button', 'survey-gdpr-toggle quiz-info');
1855                info.type = 'button';
1856                info.setAttribute('aria-label', 'Informace o zpracování osobních údajů');
1857                info.setAttribute('aria-expanded', 'false');
1858                info.setAttribute('aria-controls', `${container.id}-privacy`);
1859                const icon = element('i', 'fa-regular fa-circle-info');
1860                icon.setAttribute('aria-hidden', 'true');
1861                info.append(icon);
1862                const meta = element('div', 'quiz-meta');
1863                meta.append(counter, info);
1864                header.append(element('h4', 'quiz-title mb-2', quiz.title), meta);
1865                const privacy = element('div', 'small gdpr quiz-privacy');
1866                privacy.id = `${container.id}-privacy`;
1867                privacy.setAttribute('inert', '');
1868                privacy.append(document.createTextNode('Pro vyplnění kvízu nezadáváte jméno ani e-mail. Ukládáme vaše odpovědi, čas odevzdání, stránku a technický identifikátor v cookie pro vyhodnocení a statistiku. '));
1869                const privacyLink = element('a', '', 'Více informací o ochraně osobních údajů.');
1870                privacyLink.href = '/ochrana_osobnich_udaju';
1871                privacy.append(privacyLink, element('hr'));
1872                info.addEventListener('click', () => preservePosition(container, () => {
1873                    const open = privacy.classList.toggle('gdpr-open');
1874                    privacy.toggleAttribute('inert', !open);
1875                    info.setAttribute('aria-expanded', String(open));
1876                }));
1877                body.replaceChildren(privacy, header);
1878                if (quiz.description) body.append(element('p', 'quiz-description', quiz.description));
1879                const form = element('form');
1880                form.noValidate = true;
1881                const fields = new Map();
1882                quiz.questions.forEach((question, questionIndex) => {
1883                    const field = element('fieldset', 'quiz-question');
1884                    field.hidden = questionIndex !== 0;
1885                    const legend = element('legend', 'quiz-legend', question.questionText);
1886                    legend.tabIndex = -1;
1887                    field.append(legend);
1888                    question.answers.forEach(answer => {
1889                        const label = element('label', 'quiz-option');
1890                        const input = element('input', 'me-2');
1891                        input.type = 'radio';
1892                        input.name = `${container.id}-question-${question.questionId}`;
1893                        input.value = answer.answerId;
1894                        input.required = true;
1895                        label.append(input, element('span', '', answer.answerText));
1896                        field.append(label);
1897                    });
1898                    fields.set(question.questionId, { field });
1899                    form.append(field);
1900                });
1901                const message = element('div', 'quiz-message');
1902                message.setAttribute('aria-live', 'polite');
1903                message.setAttribute('aria-atomic', 'true');
1904                const controls = element('div', 'quiz-controls');
1905                const submit = element('button', 'btn btn-secondary btn-sm', 'Hodnocení');
1906                submit.type = 'submit';
1907                const retry = element('button', 'btn btn-secondary btn-sm', 'Zkusit znovu');
1908                retry.type = 'button';
1909                retry.hidden = true;
1910                retry.addEventListener('click', () => preservePosition(container, () => {
1911                    render(quiz);
1912                    body.querySelector('legend').focus({ preventScroll: true });
1913                }));
1914                controls.append(submit, retry);
1915                form.append(controls, message);
1916                body.append(form);
1917                let current = 0;
1918                let busy = false, complete = false;
1919                function updateSubmitState() {
1920                    submit.disabled = busy || complete || !fields.get(quiz.questions[current].questionId).field.querySelector('input:checked');
1921                }
1922                form.addEventListener('change', updateSubmitState);
1923                function showQuestion(focus) {
1924                    fields.forEach(({ field }, questionId) => field.hidden = questionId !== quiz.questions[current].questionId);
1925                    counter.textContent = `${current + 1}/${quiz.questions.length}`;
1926                    counter.setAttribute('aria-label', `Otázka ${current + 1} z ${quiz.questions.length}`);
1927                    submit.textContent = current === quiz.questions.length - 1 ? 'Hodnocení' : 'Další otázka';
1928                    message.textContent = '';
1929                    updateSubmitState();
1930                    if (focus) {
1931                        const nextField = fields.get(quiz.questions[current].questionId).field;
1932                        nextField.classList.add('quiz-enter');
1933                        nextField.querySelector('legend').focus({ preventScroll: true });
1934                    }
1935                }
1936                showQuestion(false);
1937                form.addEventListener('submit', async event => {
1938                    event.preventDefault();
1939                    if (busy || complete) return;
1940                    const activeField = fields.get(quiz.questions[current].questionId).field;
1941                    if (!activeField.querySelector('input:checked')) {
1942                        activeField.setAttribute('aria-invalid', 'true');
1943                        message.textContent = 'Vyberte prosím odpověď.';
1944                        return;
1945                    }
1946                    activeField.removeAttribute('aria-invalid');
1947                    if (current < quiz.questions.length - 1) {
1948                        preservePosition(container, () => { current++; showQuestion(true); });
1949                        return;
1950                    }
1951                    const answers = [];
1952                    fields.forEach(({ field }, questionId) => {
1953                        const checked = field.querySelector('input:checked');
1954                        field.setAttribute('aria-invalid', checked ? 'false' : 'true');
1955                        if (checked) answers.push({ questionId, answerId: Number(checked.value) });
1956                    });
1957                    if (answers.length !== quiz.questions.length) {
1958                        message.textContent = 'Odpovězte prosím na všechny otázky.';
1959                        return;
1960                    }
1961                    busy = true;
1962                    submit.disabled = true;
1963                    form.setAttribute('aria-busy', 'true');
1964                    form.querySelectorAll('input').forEach(input => input.disabled = true);
1965                    message.textContent = 'Vyhodnocování…';
1966                    try {
1967                        const csrf = await token();
1968                        const result = await json('/api/quiz/submit', {
1969                            method: 'POST',
1970                            headers: { 'Content-Type': 'application/json', [csrf.headerName]: csrf.token },
1971                            body: JSON.stringify({ quizId: id, answers })
1972                        });
1973                        preservePosition(container, () => {
1974                            const summary = element('div', 'quiz-summary quiz-enter');
1975                            const score = element('p', 'quiz-score', `Výsledek: ${result.correctCount} z ${result.questionCount}
1975 (${result.scorePercentage.toLocaleString('cs-CZ')} %)`);
1976                            score.tabIndex = -1;
1977                            summary.append(score);
1978                            const details = element('details', 'quiz-results');
1979                            details.append(element('summary', '', 'Zobrazit odpovědi'));
1980                            result.questions.forEach(answer => {
1981                                const question = quiz.questions.find(q => q.questionId === answer.questionId);
1982                                const row = element('div', `quiz-result ${answer.isCorrect ? 'quiz-correct' : 'quiz-incorrect'}`);
1983                                row.append(
1984                                    element('strong', '', question.questionText),
1985                                    element('div', 'quiz-result-status', answer.isCorrect ? 'Vaše odpověď: správná' : 'Vaše odpověď: nesprávná')
1986                                );
1987                                if (answer.answerStatistics?.length) {
1988                                    const comparison = element('div', 'quiz-comparison');
1989                                    comparison.append(element('div', 'quiz-comparison-title', 'Jak se odpovídalo'));
1990                                    answer.answerStatistics.forEach(stat => {
1991                                        const option = question.answers.find(a => a.answerId === stat.answerId);
1992                                        if (!option) return;
1993                                        const line = element('div', 'quiz-stat');
1994                                        const caption = element('span', 'quiz-stat-label');
1995                                        const answerText = element('span', '', option.answerText);
1996                                        const isSelected = stat.answerId === answer.selectedAnswerId;
1997                                        const isCorrect = answer.correctAnswerIds.includes(stat.answerId);
1998                                        if (isSelected) line.classList.add('quiz-stat-user-choice');
1999                                        const annotation = isSelected
2000                                            ? 'vaše volba'
2001                                            : (isCorrect ? 'správná odpověď' : '');
2002                                        const statusIcon = element('span', 'quiz-result-icon', isCorrect ? '✓' : '✕');
2003                                        statusIcon.setAttribute('role', 'img');
2004                                        statusIcon.setAttribute('aria-label', isCorrect ? 'Správně' : 'Špatně');
2005                                        statusIcon.title = isCorrect ? 'Správně' : 'Špatně';
2006                                        caption.append(statusIcon);
2007                                        if (annotation) answerText.append(element('span', 'quiz-stat-selected', ` (${annotation})`));
2008                                        caption.append(answerText);
2009                                        const track = element('span', 'quiz-stat-track');
2010                                        track.setAttribute('aria-hidden', 'true');
2011                                        const bar = element('span', 'quiz-stat-bar');
2012                                        bar.style.width = `${Math.max(0, Math.min(100, stat.percentage))}%`;
2013                                        track.append(bar);
2014                                        line.append(caption, track, element('span', 'quiz-stat-value', `${stat.percentage.toLocaleString('cs-CZ')} %`));
2015                                        comparison.append(line);
2016                                    });
2017                                    row.append(comparison);
2018                                }
2019                                details.append(row);
2020                            });
2021                            summary.append(details);
2022                            counter.textContent = `${quiz.questions.length}/${quiz.questions.length}`;
2023                            counter.setAttribute('aria-label', 'Kvíz dokončen');
2024                            body.querySelector('.quiz-description')?.remove();
2025                            form.replaceChildren(summary, controls);
2026                            complete = true;
2027                            submit.hidden = true;
2028                            retry.hidden = false;
2029                            score.focus({ preventScroll: true });
2030                        });
2031                    } catch (error) {
2032                        tokenRequest = null;
2033                        message.textContent = error.message;
2034                        form.querySelectorAll('input').forEach(input => input.disabled = false);
2035                        submit.disabled = false;
2036                    } finally {
2037                        busy = false;
2038                        updateSubmitState();
2039                        form.removeAttribute('aria-busy');
2040                    }
2041                });
2042            }
2043            load();
2044        });
2045    }
2046    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start);
2047    else start();
2048})();
2049</script>
2049
2050
2051	
2052	<div class="modal" id="political-advertising-modal" tabindex="-1" aria-labelledby="political-advertising-title">
2053    <div class="modal-dialog modal-lg modal-dialog-scrollable"><div class="modal-content">
2054        <div class="modal-header"><h2 class="modal-title fs-5" id="political-advertising-title">Politická reklama</h2><button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Zavřít"></button></div>
2055        <div class="modal-body" aria-live="polite"></div>
2056    </div></div>
2057</div>
2058    
2058<script src="/js/political-advertising.js?v=5C3fvhKmEPrAeimJc0dsTAGn4Dp-R5r-spjYBqIQfAQ"></script>
2058
2059    
2060
2061</body>
2062</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.