PageSourceSearch

https://www.plzen.cz/Aktualne

html plzen.cz collected 2026-10-02 17:05:49 UTC 124,523 bytes, 2,171 lines download raw bytes

1<!DOCTYPE html>
2<html prefix="og: http://ogp.me/ns#">
3<head>
4
5	<!-- Google tag (gtag.js) -->
vendor: 65 bytes, lines 5-6
5
6	<script async src="https://www.googletagmanager.com/gtag/js?id=
6G-8XGQPP27HQ
vendor: 13 bytes, lines 6-7
6"></script>
7	
7<script>
8		
vendor: 134 bytes, lines 8-12
8window.dataLayer = window.dataLayer || [];
9		function gtag(){dataLayer.push(arguments);}
10		gtag('js', new Date());
11
12		gtag('config', '
12G-8XGQPP27HQ
vendor: 5 bytes, lines 12-13
12');
13	
13</script>
13
14
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, max-image-preview:large" />
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="plzen.cz" />
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>Aktu&#xE1;ln&#xED; zpr&#xE1;vy dne | Aktuality | Plze&#x148;.cz</title>
48
49
50
51	<meta property="og:title" content="Aktu&#xE1;ln&#xED; zpr&#xE1;vy dne | Aktuality | Plze&#x148;.cz" />
52	<meta property="og:type" content="website" />
53	<meta property="og: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" />
54	<meta property="og:image" content="https://plzencz.b-cdn.net/homecover/plzen-og-v2.jpg" />
55	<meta property="og:url" content="https://www.plzen.cz/Aktualne" />
56
57	<link rel="canonical" href="https://www.plzen.cz/Aktualne" />
58
59
60	
60<script type="application/ld+json">
61		{"@context":"https://schema.org","@type":"NewsMediaOrganization","@id":"https://www.plzen.cz/#organization","name":"Plzen.cz","url":"https://www.plzen.cz","logo":{"@type":"ImageObject","url":"https://www.plzen.cz/images/plzencz-logo.png","width":512,"height":512},"areaServed":{"@type":"AdministrativeArea","name":"Plzeňský kraj"},"publishingPrinciples":"https://www.plzen.cz/redakce","sameAs":["https://www.wikidata.org/wiki/Q138637290","https://www.facebook.com/tvzak","https://www.youtube.com/televizezak"]}
62	</script>
62
63
64	
65
66	<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">
67
68	
68<script type='text/javascript' src='https://platform-api.sharethis.com/js/sharethis.js#property=63fc60b1b0cf820012575ac1&product=sop' async='async'></script>
68
69
70	<link href="/css/app.min.css?=sth68g2xz" rel="stylesheet">
71	<link href="/css/fancybox.css" rel="stylesheet">
72	<link href="https://vjs.zencdn.net/8.0.4/video-js.css" rel="stylesheet" />
73	<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert2.min.css">
74	<link href="/css/CookieConsent.css?=v26" rel="stylesheet">
75	<link href="/webfonts/fontawesome-6.5.1/css/all.min.css" rel="stylesheet">
76
77	<link href="/css/plzen.min.css?v=hJGUH79CXJp-RcrQOb0V_FWjKFKvcYmjy703sReQHhQ" rel="stylesheet">
78
79	
79<script src="/js/jquery.min.js"></script>
79
80
81	
81<script src="https://ssp.seznam.cz/static/js/ssp.js"></script>
81
82
83</head>
84
85<body>
86	<div class="d-flex justify-content-center branding desktop-only" id="branding-rotation"
87     data-campaign-id="">
88    <div class="brand-w2k"></div>
89</div>
90<script src="/js/branding.js?v=OjbR2Ek28HpY6JrUzQcpRR_Hj7zGAHjedNcqKtJY7vI" defer></script>
90
91
92	
93<header class="header-area">
94
95	<div class="header-navbar-bottom pt-2 pt-lg-0">
96
97		<div class="themeix-menu-selector px12">
98			
99			<nav class="navbar navbar-expand-lg">
100				<div class="collapse navbar-collapse" id="main_nav" style="display: block;">
101
102					<a href="/">
103						<img class="nav-brand-logo" src="/images/plzencz-wlogo-w.svg">
104						<img class="nav-brand-logo-mobile" src="/images/plzencz-logo.svg">
105					</a>
106					<img class="desktop-only my-auto nav-tube" src="/images/tube.svg">
107
108					<div class="desktop-nav">
109						
110						<ul class="navbar-nav me-auto">
111							<li class="nav-item hl noselect dropdown">
112								<a class="nav-link dropdown-toggle hand" href="/Zpravodajstvi">Zpravodajství</a>
113								<div class="dropped-nav">
114									<div class="region-select">
115										<a class="dropdown-item" href="/Aktualne" alt="Aktuálně">Aktuálně</a>
116										<a class="dropdown-item" href="/z-Plzne" alt="Z Plzně">Z Plzně</a>
117										<a class="dropdown-item" href="/politika" alt="Politika">Politika</a>
118										<a class="dropdown-item" href="/z-kraje" alt="Z kraje">Z kraje</a>
119										<a class="dropdown-item" href="/z-regionu" alt="Z regionů">Z regionů</a>
120									</div>
121								</div>
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="/video" alt="Video"> Video</a>
131							</li>
132							<li class="nav-item">
133								<a class="nav-link nav-link-static" href="/doprava" alt="Doprava"> Doprava</a>
134							</li>
135							<li class="nav-item">
136								<a class="nav-link nav-link-static" href="/krimi" alt="Krimi"> Krimi</a>
137							</li>
138							<li class="nav-item">
139								<a class="nav-link nav-link-static" href="/lifestyle" alt="Lifestyle"> Lifestyle</a>
140							</li>
141							<li class="nav-item">
142								<a class="nav-link nav-link-static" href="/Webkamera" alt="Webkamera">Webkamera</a>
143							</li>
144						</ul>
145					</div>
146				</div>
147				<div class="social">
148					<a href="https://www.facebook.com/tvzak" target="_blank"><img src="/images/facebook-ico.svg" /></a>
149					<a href="https://www.youtube.com/televizezak" target="_blank"><img src="/images/youtube-ico.svg" /></a>
150					<a href="https://www.instagram.com/zak_televize/" target="_blank"><img src="/images/instagram-ico.svg" /></a>
151				</div>
152				<div class="my-auto desktop-bio noselect white desktop-only">
153					
154					<span>
155						p&#xE1;tek 2. &#x159;&#xED;jna 2026
156                            <br />Svátek má Olivie a Oliver
157					</span>
158				</div>
159				<img class="desktop-only my-auto nav-tube" src="/images/tube.svg" />
160				<div class="search-modal" data-bs-toggle="modal" data-bs-target="#search-modal">
161					<a class="nav-link" id="search-icon-trigger">
162						<i class="fas fa-search search-icon-visible"></i>
163						<div class="search-icon-spinner" style="display: none;">
164							<div class="spinner-mini"></div>
165						</div>
166					</a>
167				</div>
168				<div class="mobile-nav">
169					<label for="mobile-nav" class="hand"><i class="nav-link fa fa-bars"></i></label>
170					<input type="checkbox" id="mobile-nav" class="visually-hidden">
171					<div class="dropped-mobile-nav">
172
173						<div class="dn-bio">
174							<p>Je <b>p&#xE1;tek 2. &#x159;&#xED;jna 2026</b> <i>(týden&nbsp;40.,&nbsp;sud&#xFD;)</i></p>
175                                <p>Svátek má <b>Olivie a Oliver</b></p>
176						</div>
177
178						<div class="dn-categories">
179							<div class="d-flex">
180								<div class="ruby">
181									<a href="/zpravodajstvi" alt="Zpravodajství">Zpravodajství</a>
182									<a href="/aktualne" alt="Aktuálně">Aktuálně</a>
183									<a href="/z-plzne" alt="Z Plzně">Z Plzně</a>
184									<a href="/z-kraje" alt="Z kraje">Z kraje</a>
185									<a href="/z-regionu" alt="Z regionů">Z regionů</a>
186									<a href="/politika" alt="Politika">Politika</a>
187									<a href="/Kultura" alt="Kultura">Kultura</a>
188									<a href="/Sport" alt="Sport">Sport</a>
189									<a href="/video" alt="Video">Video</a>
190									<a href="/Doprava" alt="Doprava">Doprava</a>
191									<a href="/krimi" alt="Krimi">Krimi</a>
192									<a href="/lifestyle" alt="Lifestyle">Lifestyle</a>
193									<a href="/Webkamera" alt="Webkamera">Webkamera</a>
194
195								</div>
196								<div><a class="dropdown-item right" href="/"><span class="fa fa-home" alt="Úvod"></span></a></div>
197							</div>
198						</div>
199
200						<div class="forecast-wideget-dn">
201								<div class="d-flex no-wrap text-center forecast">
202										<div class="forecast-day">
203											<img src="/images/weather/5.png" width="38" height="38" alt="Zata&#x17E;eno, ve&#x10D;er polojasno. Teploty 9/20 &#xB0;C." title="Zata&#x17E;eno, ve&#x10D;er polojasno. Teploty 9/20 &#xB0;C." /><br />
204											<small>9&#xB0;C / 20&#xB0;C</small><br />
205											Dnes
206										</div>
207										<div class="forecast-day">
208											<img src="/images/weather/3.png" width="38" height="38" alt="Slune&#x10D;no, odpoledne v&#xED;ce obla&#x10D;nosti. Teploty 7/22 &#xB0;C." title="Slune&#x10D;no, odpoledne v&#xED;ce obla&#x10D;nosti. Teploty 7/22 &#xB0;C." /><br />
209											<small>7&#xB0;C / 22&#xB0;C</small><br />
210											Z&#xED;tra
211										</div>
212										<div class="forecast-day">
213											<img src="/images/weather/4.png" width="38" height="38" alt="Polojasno, ve&#x10D;er zata&#x17E;eno. Teploty 7/22 &#xB0;C." title="Polojasno, ve&#x10D;er zata&#x17E;eno. Teploty 7/22 &#xB0;C." /><br />
214											<small>7&#xB0;C / 22&#xB0;C</small><br />
215											Ned&#x11B;le
216										</div>
217								</div>
218								<div class="small forecast-today-text">
219									<p>Zata&#x17E;eno, ve&#x10D;er polojasno. Teploty 9/20 &#xB0;C.</p>
220								</div>
221								<div class="meteocentrum text-muted">
222									<a href="https://www.meteocentrum.cz/" title="Data počasí poskytuje Meteocentrum" target="_blank" class="small text-secondary">Počasí: meteocentrum.cz</a>
223								</div>
224						</div>
225
226						<switch class="d-flex flex-nowrap mobile-only">
227							<div class="day small"><span>Světlý motiv</span></div>
228							<div class="night small"><span>Tmavý motiv</span></div>
229							<div><button id="darkToggle" class="darkmode" title="darkmode switch"></button></div>
230						</switch>
231						
232					</div>
233				</div>
234			</nav>
235			
236			<div class="modal fade" id="search-modal" data-bs-backdrop="static">
237				<button type="button" class="btn-close" data-bs-dismiss="modal" id="search-modal-close"></button>
238				<div class="modal-dialog">
239					<div class="modal-content">
240						<div class="modal-body">
241							<form class="forms" id="gh-search-input" method="get" action="/">
242								<div class="input-group">
243									<span class="input-group-text">
244										<i class="fas fa-search"></i>
245									</span>
246									<input type="search" class="search-input form-control" placeholder="Vyhledat.." id="search-input" name="q" minlength="2" required>
247									<button class="btn btn-primary" type="submit" id="search-btn">
248										<span class="search-btn-text">Hledat</span>
249										<span class="spinner-border spinner-border-sm search-spinner d-none ms-2" role="status">
250											<span class="visually-hidden">Hledání...</span>
251										</span>
252									</button>
253								</div>
254								<small class="text-danger d-none" id="search-error"></small>
255							</form>
256						</div>
257					</div>
258				</div>
259			</div>
260		</div>
261	</div>
262
263</header>
264
265 
266
267	<div class="container branded body-movein">
268
269		
270
271<div class="blog-area-static pt-2">
272	<div class="container">
273
274		<div class="my-1 pl-14">
275			<h1>Aktu&#xE1;ln&#x11B;</h1>
276
277			<p class="category-intro">
278				Nejd&#x16F;le&#x17E;it&#x11B;j&#x161;&#xED; aktu&#xE1;ln&#xED; zpr&#xE1;vy dne. P&#x159;ehled ud&#xE1;lost&#xED;, kter&#xE9; pr&#xE1;v&#x11B; h&#xFD;bou Plzn&#xED;, regionem i &#x10C;eskou republikou.
279			</p>
280
281		</div>
282			<div class="row">
283				<div class="col-md-7 col-lg-8 pt-2 pl-12">
284						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
285							<div class="feature-image">
286								<div class="image-frame image-hover-style-1">
287									<a href="/centralni_obvod_proveruje_rizikove_stromy_odborne_zkousky_rozhodnou_ktere_zustanou" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/c6b063a969/27345796-5793-4cde-9532-dc68f8db498c.jpg.medium.jpg" alt="Mohou spadnout, nebo je&#x161;t&#x11B; vydr&#x17E;&#xED;? Centr&#xE1;ln&#xED; obvod nech&#xE1;v&#xE1; prov&#x11B;&#x159;it rizikov&#xE9; stromy"></a>
288								</div>
289							</div>
290							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
291								<div class="card-flex-content w-100">
292									<h6>
293										<a href="/centralni_obvod_proveruje_rizikove_stromy_odborne_zkousky_rozhodnou_ktere_zustanou" target="">Mohou spadnout, nebo je&#x161;t&#x11B; vydr&#x17E;&#xED;? Centr&#xE1;ln&#xED; obvod nech&#xE1;v&#xE1; prov&#x11B;&#x159;it rizikov&#xE9; stromy</a>
294									</h6>
295									<div class="desktop-only">
296										<p>Šestnáct stromů v Plzni 3 čeká odborné prověření. Tahové zkoušky mají ukázat, zda jsou skutečně nebezpečné, nebo je bude možné zachovat. O jejich dalším osudu rozhodnou výsledky měření.</p>
297									</div>
298								</div>
299							</div>
300						</article>
301						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
302							<div class="feature-image">
303								<div class="image-frame image-hover-style-1">
304									<a href="/tv_zak_usporadala_" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/cbb48f2ba9/Bez_nazvu.png.medium.jpg" alt="TV ZAK uspo&#x159;&#xE1;dala projekci &#x10D;esk&#xE9; komedie pro sv&#xE9; klienty"></a>
305								</div>
306							</div>
307							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
308								<div class="card-flex-content w-100">
309									<h6>
310										<a href="/tv_zak_usporadala_" target="">TV ZAK uspo&#x159;&#xE1;dala projekci &#x10D;esk&#xE9; komedie pro sv&#xE9; klienty</a>
311									</h6>
312									<div class="desktop-only">
313										<p>
313I letos si Televize ZAK připravila pro své klienty soukromou projekci v rámci filmového festivalu Finále Plzeň. Tentokrát si hosté mohli v poslední den konání festivalu, tedy ve středu 30. září, společně užít českou komedii režiséra Miroslava Ondruše s názvem 6 gramů.</p>
314									</div>
315								</div>
316							</div>
317						</article>
318						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
319							<div class="feature-image">
320								<div class="image-frame image-hover-style-1">
321									<a href="/padajici_omitka_dopadla_na_chodnik_straznici_v_plzni_museli_uzavrit_cast_koterovske_tridy" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/5dcef46723/828939374_1631336708628411_1065828476622524501_n.jpg.medium.jpg" alt="Nebezpe&#x10D;&#xED; nad hlavami chodc&#x16F;. Z domu v Plzni se za&#x10D;ala drolit fas&#xE1;da"></a>
322								</div>
323							</div>
324							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
325								<div class="card-flex-content w-100">
326									<h6>
327										<a href="/padajici_omitka_dopadla_na_chodnik_straznici_v_plzni_museli_uzavrit_cast_koterovske_tridy" target="">Nebezpe&#x10D;&#xED; nad hlavami chodc&#x16F;. Z domu v Plzni se za&#x10D;ala drolit fas&#xE1;da</a>
328									</h6>
329									<div class="desktop-only">
330										<p>Jen několik okamžiků mohlo rozhodovat o vážném zranění. Na Koterovské třídě v Plzni se ve středu večer uvolnila část omítky z jednoho z domů a dopadla přímo na chodník. Strážníci městské policie okamžitě zabezpečili nebezpečný prostor a zabránili vstupu chodců do rizikové zóny.
330</p>
331									</div>
332								</div>
333							</div>
334						</article>
335						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
336							<div class="feature-image">
337								<div class="image-frame image-hover-style-1">
338									<a href="/hledate_recept_na_uspech_v_dnesni_dobe_mestanska_beseda_odhali_nadcasovou_filozofii_tomase_bati" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/e1f8e5a614/Tomas_Bata.jpg.medium.jpg" alt="Hled&#xE1;te recept na &#xFA;sp&#x11B;ch v dne&#x161;n&#xED; dob&#x11B;? M&#x11B;&#x161;&#x165;ansk&#xE1; beseda odhal&#xED; nad&#x10D;asovou filozofii Tom&#xE1;&#x161;e Bati"></a>
339								</div>
340							</div>
341							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
342								<div class="card-flex-content w-100">
343									<h6>
344										<a href="/hledate_recept_na_uspech_v_dnesni_dobe_mestanska_beseda_odhali_nadcasovou_filozofii_tomase_bati" target="">Hled&#xE1;te recept na &#xFA;sp&#x11B;ch v dne&#x161;n&#xED; dob&#x11B;? M&#x11B;&#x161;&#x165;ansk&#xE1; beseda odhal&#xED; nad&#x10D;asovou filozofii Tom&#xE1;&#x161;e Bati</a>
345									</h6>
346									<div class="desktop-only">
347										<p>Přednáška o Tomáši Baťovi, jeho stylu řízení a obrovském podnikatelském úspěchu</p>
348									</div>
349								</div>
350							</div>
351						</article>
352						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
353							<div class="feature-image">
354								<div class="image-frame image-hover-style-1">
355									<a href="/plzen_oslavi_vznik_republiky_otevre_bezne_nepristupna_mista_vecer_rozzari_centrum_pruvod_svetel" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/05002a9806/2026-28-obrazovka-1920x1080px.png.medium.jpg" alt="Plze&#x148; oslav&#xED; vznik republiky. Otev&#x159;e b&#x11B;&#x17E;n&#x11B; nep&#x159;&#xED;stupn&#xE1; m&#xED;sta, ve&#x10D;er rozz&#xE1;&#x159;&#xED; centrum Pr&#x16F;vod sv&#x11B;tel"></a>
356								</div>
357							</div>
358							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
359								<div class="card-flex-content w-100">
360									<h6>
361										<a href="/plzen_oslavi_vznik_republiky_otevre_bezne_nepristupna_mista_vecer_rozzari_centrum_pruvod_svetel" target="">Plze&#x148; oslav&#xED; vznik republiky. Otev&#x159;e b&#x11B;&#x17E;n&#x11B; nep&#x159;&#xED;stupn&#xE1; m&#xED;sta, ve&#x10D;er rozz&#xE1;&#x159;&#xED; centrum Pr&#x16F;vod sv&#x11B;tel</a>
362									</h6>
363									<div class="desktop-only">
364										<p>Desítky turistických cílů, exkurze do běžně nepřístupných provozů, historické tramvaje, sportovní aktivity i velkolepá světelná show v srdci města. Tak budou vypadat Plzeňské oslavy vzniku republiky, které se uskuteční 28. října. Návštěvníci si připomenou 108. výročí založení samostatného Československa a na mnoha místech využijí symbolické vstupné 28 korun, výrazné slevy nebo vstup zdarma.</p>
365									</div>
366								</div>
367							</div>
368						</article>
369						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
370							<div class="feature-image">
371								<div class="image-frame image-hover-style-1">
372									<a href="/na_klatovsku" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/b4658b6ac7/Gemini_Generated_Image_853uxb853uxb853u.jpg.medium.jpg" alt="Aktualizov&#xE1;no: Na Klatovsku se z&#x159;&#xED;til para&#x161;utista, nehodu nep&#x159;e&#x17E;il"></a>
373								</div>
374							</div>
375							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
376								<div class="card-flex-content w-100">
377									<h6>
378										<a href="/na_klatovsku" target="">Aktualizov&#xE1;no: Na Klatovsku se z&#x159;&#xED;til para&#x161;utista, nehodu nep&#x159;e&#x17E;il</a>
379									</h6>
380									<div class="desktop-only">
381										<p>Tragicky skončil v pátek dopoledne seskok jednapadesátiletého parašutisty na Klatovsku. Muž se zřítil na louku mezi Klatovy a Točníkem. Přes intenzivní resuscitaci se ho záchranářům nepodařilo zachránit. Případem se nyní zabývají kriminalisté.</p>
382									</div>
383								</div>
384							</div>
385						</article>
386						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
387							<div class="feature-image">
388								<div class="image-frame image-hover-style-1">
389									<a href="/dalsi_anonymni_hrozba_bombou_zamestnala_policisty_okresni_soud_v_plzni_musel_znovu_evakuovat_budovu" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/03456ecd00/gwinoauwwaarquo_XL_(2).jpg.medium.jpg" alt="Dal&#x161;&#xED; anonymn&#xED; hrozba bombou zam&#x11B;stnala policisty. Okresn&#xED; soud v Plzni musel znovu evakuovat budovu"></a>
390								</div>
391							</div>
392							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
393								<div class="card-flex-content w-100">
394									<h6>
395										<a href="/dalsi_anonymni_hrozba_bombou_zamestnala_policisty_okresni_soud_v_plzni_musel_znovu_evakuovat_budovu" target="">Dal&#x161;&#xED; anonymn&#xED; hrozba bombou zam&#x11B;stnala policisty. Okresn&#xED; soud v Plzni musel znovu evakuovat budovu</a>
396									</h6>
397									<div class="desktop-only">
398										<p>Pouhé dva dny po předchozím incidentu řešili policisté v Plzni další anonymní oznámení o uložení bomby v budově Okresního soudu Plzeň-město. Na místě byla okamžitě přijata rozsáhlá bezpečnostní opatření, která si vyžádala evakuaci osob i uzavření přilehlých komunikací.</p>
399									</div>
400								</div>
401							</div>
402						</article>
403						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
404							<div class="feature-image">
405								<div class="image-frame image-hover-style-1">
406									<a href="/drama_v_plzni_muz_hrozil_skokem_z_osmnactimetroveho_leseni" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/a39b90660d/ChatGPT_Image_2._10._2026_09_30_40.png.medium.jpg" alt="Drama v Plzni: Mu&#x17E; hrozil skokem z osmn&#xE1;ctimetrov&#xE9;ho le&#x161;en&#xED;"></a>
407								</div>
408							</div>
409							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
410								<div class="card-flex-content w-100">
411									<h6>
412										<a href="/drama_v_plzni_muz_hrozil_skokem_z_osmnactimetroveho_leseni" target="">Drama v Plzni: Mu&#x17E; hrozil skokem z osmn&#xE1;ctimetrov&#xE9;ho le&#x161;en&#xED;</a>
413									</h6>
414									<div class="desktop-only">
415										<p>Dramatické chvíle se odehrály v pátek ráno v Mánesově ulici v Plzni. Muž tam vystoupal na lešení ve výšce přibližně 18 metrů a vyhrožoval, že skočí dolů. Na místo okamžitě vyrazily všechny složky integrovaného záchranného systému včetně policejního vyjednavače ze zásahové jednotky.</p>
416									</div>
417								</div>
418							</div>
419						</article>
420						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
421							<div class="feature-image">
422								<div class="image-frame image-hover-style-1">
423									<a href="/plzen_stavi_novy_clovicek_moderni_stacionar_za_temer_200_milionu_pomuze_lidem_s_tezkym_handicapem" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/032c3925b2/19171794.jpg.medium.jpg" alt="Plze&#x148; stav&#xED; nov&#xFD; &#x10C;lov&#xED;&#x10D;ek. Modern&#xED; stacion&#xE1;&#x159; za t&#xE9;m&#x11B;&#x159; 200 milion&#x16F; pom&#x16F;&#x17E;e lidem s t&#x11B;&#x17E;k&#xFD;m handicapem"></a>
424								</div>
425							</div>
426							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
427								<div class="card-flex-content w-100">
428									<h6>
429										<a href="/plzen_stavi_novy_clovicek_moderni_stacionar_za_temer_200_milionu_pomuze_lidem_s_tezkym_handicapem" target="">Plze&#x148; stav&#xED; nov&#xFD; &#x10C;lov&#xED;&#x10D;ek. Modern&#xED; stacion&#xE1;&#x159; za t&#xE9;m&#x11B;&#x159; 200 milion&#x16F; pom&#x16F;&#x17E;e lidem s t&#x11B;&#x17E;k&#xFD;m handicapem</a>
430									</h6>
431									<div class="desktop-only">
432										<p>Plzeň zahájila výstavbu nového denního stacionáře Človíček 2, který výrazně rozšíří kapacity péče o lidi s těžkým kombinovaným postižením a poruchami autistického spektra. Moderní zařízení ve Skvrňanech nabídne zázemí pro 36 klientů, propojí sociální služby se speciálním vzděláváním a díky bezbariérovému a energeticky úspornému řešení vytvoří podmínky odpovídající současným nárokům na péči. Hotovo má být v září 2028.</p>
433									</div>
434								</div>
435							</div>
436						</article>
437						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
438							<div class="feature-image">
439								<div class="image-frame image-hover-style-1">
440									<a href="/perninsky_kros_prilakal_120_zavodniku_pernink_chysta_dalsi_rozvoj_arealu" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.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>
441								</div>
442							</div>
443							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
444								<div class="card-flex-content w-100">
445									<h6>
446										<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>
447									</h6>
448									<div class="desktop-only">
449										<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ů.
450</p>
451									</div>
452								</div>
453							</div>
454						</article>
455						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
456							<div class="feature-image">
457								<div class="image-frame image-hover-style-1">
458									<a href="/predvolebni_diskuze_zak_tv_nabidla_stret_sesti_kandidatu_resili_bezpecnost_dopravu_i_bydleni" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/8a48093b52/att.UfLocIpieO3icVv_eDgegVSCf4c16TgZrPvjcSpQZAQ_1.jpeg.medium.jpg" alt="P&#x159;edvolebn&#xED; debata ZAK TV nab&#xED;dla st&#x159;et &#x161;esti kandid&#xE1;t&#x16F;. &#x158;e&#x161;ili bezpe&#x10D;nost, dopravu i bydlen&#xED;"></a>
459								</div>
460							</div>
461							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
462								<div class="card-flex-content w-100">
463									<h6>
464										<a href="/predvolebni_diskuze_zak_tv_nabidla_stret_sesti_kandidatu_resili_bezpecnost_dopravu_i_bydleni" target="">P&#x159;edvolebn&#xED; debata ZAK TV nab&#xED;dla st&#x159;et &#x161;esti kandid&#xE1;t&#x16F;. &#x158;e&#x161;ili bezpe&#x10D;nost, dopravu i bydlen&#xED;</a>
465									</h6>
466									<div class="desktop-only">
467										<p>Předvolební atmosféra v Plzni se dostává do další fáze. ZAK TV uspořádala velkou předvolební debata, do které pozvala zástupce šesti nejsilnějších politických stran podle srpnových průzkumů. Pavel Bosák (Piráti), Lukáš Hegner (ODS), Július Líška (SPD), Tomáš Morávek (Pro Plzeň), Aleš Tolar (STAN) a Roman Zarzycký (ANO) v ní debatovali o uplynulých čtyřech letech i o tom, jakým směrem by se měla Plzeň vydat dál.</p>
468									</div>
469								</div>
470							</div>
471						</article>
472						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
473							<div class="feature-image">
474								<div class="image-frame image-hover-style-1">
475									<a href="/hudba_pro_dobrou_vec_tachovsky_koncert_podpori_nemocneho_filipa" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/246e9d192c/IMG-20260803-WA0008.jpg.medium.jpg" alt="Hudba pro dobrou v&#x11B;c. Tachovsk&#xFD; koncert podpo&#x159;&#xED; nemocn&#xE9;ho Filipa"></a>
476								</div>
477							</div>
478							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
479								<div class="card-flex-content w-100">
480									<h6>
481										<a href="/hudba_pro_dobrou_vec_tachovsky_koncert_podpori_nemocneho_filipa" target="">Hudba pro dobrou v&#x11B;c. Tachovsk&#xFD; koncert podpo&#x159;&#xED; nemocn&#xE9;ho Filipa</a>
482									</h6>
483									<div class="desktop-only">
484										<p>Tachovské kino Mže bude v sobotu 24. října hostit dobročinný koncert na podporu nemocného Filipa. Návštěvníci se mohou těšit na vystoupení několika kapel, přičemž veškerý výtěžek z dobrovolného vstupného poputuje na jeho léčbu. Mimořádnou událostí bude také návrat kapely Keep Panic, která se po několikaleté pauze znovu představí publiku.</p>
485									</div>
486								</div>
487							</div>
488						</article>
489						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
490							<div class="feature-image">
491								<div class="image-frame image-hover-style-1">
492									<a href="/bazen_dostal_zelenou_mesto_a_univerzita_nasly_kompromis" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/37d081226f/220510_Bazen_2.jpg.medium.jpg" alt="Baz&#xE9;n dostal zelenou. M&#x11B;sto a Z&#xE1;pado&#x10D;esk&#xE1; univerzita na&#x161;ly kompromis"></a>
493								</div>
494							</div>
495							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
496								<div class="card-flex-content w-100">
497									<h6>
498										<a href="/bazen_dostal_zelenou_mesto_a_univerzita_nasly_kompromis" target="">Baz&#xE9;n dostal zelenou. M&#x11B;sto a Z&#xE1;pado&#x10D;esk&#xE1; univerzita na&#x161;ly kompromis</a>
499									</h6>
500									<div class="desktop-only">
501										<p>Plánovaná výstavba nového plaveckého bazénu na Borech udělala důležitý krok vpřed. Město Plzeň a Západočeská univerzita podepsaly memorandum o spolupráci, které má odstranit překážky bránící realizaci projektu. Klíčovým tématem byla ochrana výzkumného centra NTIS, jež se nachází v bezprostřední blízkosti budoucí stavby.</p>
502									</div>
503								</div>
504							</div>
505						</article>
506						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
507							<div class="feature-image">
508								<div class="image-frame image-hover-style-1">
509									<a href="/plzenske_hlavni_nadrazi_pod_drobnohledem_policiste_tam_provedli_uz_tisice_kontrol" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/d60a0edab9/Kontrolyhlavninadrazi1.jpg.medium.jpg" alt="Plze&#x148;sk&#xE9; hlavn&#xED; n&#xE1;dra&#x17E;&#xED; pod drobnohledem. Policist&#xE9; tam provedli u&#x17E; tis&#xED;ce kontrol"></a>
510								</div>
511							</div>
512							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
513								<div class="card-flex-content w-100">
514									<h6>
515										<a href="/plzenske_hlavni_nadrazi_pod_drobnohledem_policiste_tam_provedli_uz_tisice_kontrol" target="">Plze&#x148;sk&#xE9; hlavn&#xED; n&#xE1;dra&#x17E;&#xED; pod drobnohledem. Policist&#xE9; tam provedli u&#x17E; tis&#xED;ce kontrol</a>
516									</h6>
517									<div class="desktop-only">
518										<p>Plzeňské hlavní vlakové nádraží patří mezi nejstřeženější místa ve městě. Policisté i strážníci zde každoročně provádějí tisíce kontro
518l osob a vozidel, přičemž letošní statistiky ukazují další nárůst dohledu. K větší bezpečnosti přispívají nejen pravidelné hlídky a kamerový systém, ale také služební místnost městské policie s interkomem pro okamžité spojení s operačním střediskem.</p>
519									</div>
520								</div>
521							</div>
522						</article>
523						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
524							<div class="feature-image">
525								<div class="image-frame image-hover-style-1">
526									<a href="/bavorsko-cesky_den_pro_firmy_13_rijna_v_deggendorfu_podpori_preshranicni_ekonomiku" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/0cb2bfc291/7._Bavorsko-cesky_den_pro_firmy.jpg.medium.jpg" alt="Bavorsko-&#x10D;esk&#xFD; den pro firmy 13. &#x159;&#xED;jna v Deggendorfu podpo&#x159;&#xED; p&#x159;eshrani&#x10D;n&#xED; ekonomiku"></a>
527								</div>
528							</div>
529							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
530								<div class="card-flex-content w-100">
531									<h6>
532										<a href="/bavorsko-cesky_den_pro_firmy_13_rijna_v_deggendorfu_podpori_preshranicni_ekonomiku" target="">Bavorsko-&#x10D;esk&#xFD; den pro firmy 13. &#x159;&#xED;jna v Deggendorfu podpo&#x159;&#xED; p&#x159;eshrani&#x10D;n&#xED; ekonomiku</a>
533									</h6>
534									<div class="desktop-only">
535										<p>Dne 13. října se výstaviště v Deggendorfu (Stadthallen Deggendorf) opět promění ve velkou burzu nápadů a kontaktů dvou zemí – v jeden společný trh příležitostí. Akce se koná již posedmé. Bavorsko-český den pro firmy opět organizuje Ing. Jaroslava Pongratz, manažerka kontaktních sítí Bavorsko-Čechy. Řada vystavovatelů z obou stran hranice představí své produkty a služby a nebude chybět ani odborný program a prostor pro setkávání, navazování kontaktů a získávání nových informací.</p>
536									</div>
537								</div>
538							</div>
539						</article>
540						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
541							<div class="feature-image">
542								<div class="image-frame image-hover-style-1">
543									<a href="/v_centru_plzne_vykolejila_tramvaj_doprava_kolabovala" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/7f0490a8c3/IMG_7849.jpeg.medium.jpg" alt="V centru Plzn&#x11B; vykolejila tramvaj, doprava kolabovala"></a>
544								</div>
545							</div>
546							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
547								<div class="card-flex-content w-100">
548									<h6>
549										<a href="/v_centru_plzne_vykolejila_tramvaj_doprava_kolabovala" target="">V centru Plzn&#x11B; vykolejila tramvaj, doprava kolabovala</a>
550									</h6>
551									<div class="desktop-only">
552										<p>Krátce po osmé hodině ranní zkomplikovalo provoz MHD v centru Plzně vykolejení tramvaje u zastávky U Zvonu. Kvůli mimořádné události byly dočasně omezeny tramvajové linky číslo 1 a 2, které neobsluhovaly úsek mezi Sady Pětatřicátníků a konečnými zastávkami Slovany a Světovar. Cestující mohli využít náhradní autobusovou dopravu z Anglického nábřeží.</p>
553									</div>
554								</div>
555							</div>
556						</article>
557						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
558							<div class="feature-image">
559								<div class="image-frame image-hover-style-1">
560									<a href="/promena_lochotinskeho_parku_je_u_konce_plzen_dokoncila_revitalizaci_za_vice_nez_90_milionu_korun" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/c59e6f34c9/3P7A0310.jpg.medium.jpg" alt="Prom&#x11B;na Lochot&#xED;nsk&#xE9;ho parku je u konce. Plze&#x148; dokon&#x10D;ila revitalizaci za v&#xED;ce ne&#x17E; 90 milion&#x16F; korun"></a>
561								</div>
562							</div>
563							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
564								<div class="card-flex-content w-100">
565									<h6>
566										<a href="/promena_lochotinskeho_parku_je_u_konce_plzen_dokoncila_revitalizaci_za_vice_nez_90_milionu_korun" target="">Prom&#x11B;na Lochot&#xED;nsk&#xE9;ho parku je u konce. Plze&#x148; dokon&#x10D;ila revitalizaci za v&#xED;ce ne&#x17E; 90 milion&#x16F;
566 korun</a>
567									</h6>
568									<div class="desktop-only">
569										<p>Po více než deseti letech skončila rozsáhlá revitalizace Lochotínského parku, jednoho z nejvýznamnějších parků v Plzni. Návštěvníci zde najdou opravené cesty, nové výsadby, herní i cvičební prvky, obnovený kaskádový vodopád i řadu dalších vylepšení. Celkové náklady na obnovu přesáhly 90 milionů korun.</p>
570									</div>
571								</div>
572							</div>
573						</article>
574						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
575							<div class="feature-image">
576								<div class="image-frame image-hover-style-1">
577									<a href="/finale_plzen_prepsalo_rekordy_festival_navstivilo_temer_18_tisic_divaku" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/726b74a811/Zl._lednacek_-_nejlepsi_celovecerni_hrany_nebo_animovany_film_-_Milovnik_ne_bojovnik_-_Julie_Markova_Zackova_Frantisek_Beles_1.jpg.medium.jpg" alt="Fin&#xE1;le Plze&#x148; p&#x159;epsalo rekordy. Festival nav&#x161;t&#xED;vilo t&#xE9;m&#x11B;&#x159; 18 tis&#xED;c div&#xE1;k&#x16F;"></a>
578								</div>
579							</div>
580							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
581								<div class="card-flex-content w-100">
582									<h6>
583										<a href="/finale_plzen_prepsalo_rekordy_festival_navstivilo_temer_18_tisic_divaku" target="">Fin&#xE1;le Plze&#x148; p&#x159;epsalo rekordy. Festival nav&#x161;t&#xED;vilo t&#xE9;m&#x11B;&#x159; 18 tis&#xED;c div&#xE1;k&#x16F;</a>
584									</h6>
585									<div class="desktop-only">
586										<p>Letošní 39. ročník filmového festivalu Finále Plzeň se zařadil mezi nejúspěšnější v historii. Do západočeské metropole přilákal bezmála 18 tisíc návštěvníků, nabídl 151 projekcí a desítky doprovodných akcí. Ocenění Zlatý ledňáček si odnesly snímky Milovník, ne bojovník, Kdyby se holubi proměnili ve zlato, minisérie Gerta Schnirch a studentský film Věž.</p>
587									</div>
588								</div>
589							</div>
590						</article>
591						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
592							<div class="feature-image">
593								<div class="image-frame image-hover-style-1">
594									<a href="/stary_plzenec_zahaji_dostavbu_centra_mesta_vznikne_novy_mestsky_park_i_multifunkcni_hriste" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/b3f1ac5537/Pohled.JPG.medium.jpg" alt="Star&#xFD; Plzenec zah&#xE1;j&#xED; dostavbu centra m&#x11B;sta Vznikne nov&#xFD; m&#x11B;stsk&#xFD; park i multifunk&#x10D;n&#xED; h&#x159;i&#x161;t&#x11B;"></a>
595								</div>
596							</div>
597							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
598								<div class="card-flex-content w-100">
599									<h6>
600										<a href="/stary_plzenec_zahaji_dostavbu_centra_mesta_vznikne_novy_mestsky_park_i_multifunkcni_hriste" target="">Star&#xFD; Plzenec zah&#xE1;j&#xED; dostavbu centra m&#x11B;sta Vznikne nov&#xFD; m&#x11B;stsk&#xFD; park i multifunk&#x10D;n&#xED; h&#x159;i&#x161;t&#x11B;</a>
601									</h6>
602									<div class="desktop-only">
603										<p>Ve Starém Plzenci začíná jedna z nejvýznamnějších proměn centra města za poslední desetiletí. V pátek 2. října 2026 bude slavnostně předáno staveniště projektu Dostavba centra Starý Plzenec – PARK. Součástí setkání bude i symbolické poklepání základního kamene.</p>
604									</div>
605								</div>
606							</div>
607						</article>
608						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
609							<div class="feature-image">
610								<div class="image-frame image-hover-style-1">
611									<a href="/babystar_i_den_architektury_finale_plzen_nabidne_program_i_v_posledni_den" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/84c75e55f0/Babystar.jpg.medium.jpg" alt="Babystar i Den architektury. Fin&#xE1;le Plze&#x148; nab&#xED;dne program i v posledn&#xED; den"></a>
612								</div>
613							</div>
614							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
615								<div class="card-flex-content w-100">
616									<h6>
617										<a href="/babystar_i_den_architektury_finale_plzen_nabidne_program_i_v_posledni_den" target="">Babystar i Den architektury. Fin&#xE1;le Plze&#x148; nab&#xED;dne program i v posledn&#xED; den</a>
618									</h6>
619									<div class="desktop-only">
620										<p>Filmový festival Finále Plzeň dnes vyvrcholí udílením Zlatých ledňáčků. Program ale pokračuje až do večera. Návštěvníci mohou zamířit na projekci německého filmu Babystar nebo na dokument o legendárním architektovi Rudolphu M. Schindlerovi. Obě akce začínají v 19:30.</p>
621									</div>
622								</div>
623							</div>
624						</article>
625						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
626							<div class="feature-image">
627								<div class="image-frame image-hover-style-1">
628									<a href="/prvni_v_cesku_plzen_poridila_profesionalni_vybaveni_pro_fotbal_dronu" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/d37cbbf251/DSCF3219_1.jpg.medium.jpg" alt="Prvn&#xED; v &#x10C;esku! Plze&#x148; po&#x159;&#xED;dila profesion&#xE1;ln&#xED; vybaven&#xED; pro fotbal dron&#x16F;"></a>
629								</div>
630							</div>
631							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
632								<div class="card-flex-content w-100">
633									<h6>
634										<a href="/prvni_v_cesku_plzen_poridila_profesionalni_vybaveni_pro_fotbal_dronu" target="">Prvn&#xED; v &#x10C;esku! Plze&#x148; po&#x159;&#xED;dila profesion&#xE1;ln&#xED; vybaven&#xED; pro fotbal dron&#x16F;</a>
635									</h6>
636									<div class="desktop-only">
637										<p>Plzeň se stala prvním městem v České republice, které pořídilo certifikované vybavení pro Drone Soccer – dynamický sport spojující pilotování dronů, technické dovednosti a týmovou spolupráci. Novinka se stane součástí výuky na středních školách a má mladé lidi přivést k moderním technologiím, které jim mohou otevřít dveře k atraktivním profesím budoucnosti.</p>
638									</div>
639								</div>
640							</div>
641						</article>
642						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
643							<div class="feature-image">
644								<div class="image-frame image-hover-style-1">
645									<a href="/slovany_maji_prvni_celorocni_fotopoint" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/ef5a4bbd88/2.JPG.medium.jpg" alt="Vzpom&#xED;nka na starou plov&#xE1;rnu i m&#xED;sto pro relax. B&#x159;eh Radbuzy na Slovanech pro&#x161;el prom&#x11B;nou"></a>
646								</div>
647							</div>
648							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
649								<div class="card-flex-content w-100">
650									<h6>
651										<a href="/slovany_maji_prvni_celorocni_fotopoint" target="">Vzpom&#xED;nka na starou plov&#xE1;rnu i m&#xED;sto pro relax. B&#x159;eh Radbuzy na Slovanech pro&#x161;el prom&#x11B;nou</a>
652									</h6>
653									<div class="desktop-only">
654										<p>U řeky Radbuzy, na místě spojeném s historií bývalé plovárny a převozníkem, vznikl nový prostor pro odpočinek, procházku i posezení. Pobytová louka v Cyklistické ulici byla slavnostně uvedena do užívání v pátek 25. září 2026. Její součástí jsou nové cestičky, lavičky a také první stálý celoroční fotopoint na území Slovan. </p>
655									</div>
656								</div>
657							</div>
658						</article>
659						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
660							<div class="feature-image">
661								<div class="image-frame image-hover-style-1">
662									<a href="/anonym_nahlasil_bombu_u_plzenskych_soudu_policie_evakuovala_budovy_a_uzavrela_okoli" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/0e4d0010ab/gwinoauwwaarquo_XL_(1).jpg.medium.jpg" alt="Aktualizov&#xE1;no: Anonym nahl&#xE1;sil bombu u plze&#x148;sk&#xFD;ch soud&#x16F;"></a>
663								</div>
664							</div>
665							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
666								<div class="card-flex-content w-100">
667									<h6>
668										<a href="/anonym_nahlasil_bombu_u_plzenskych_soudu_policie_evakuovala_budovy_a_uzavrela_okoli" target="">Aktualizov&#xE1;no: Anonym nahl&#xE1;sil bombu u plze&#x148;sk&#xFD;ch soud&#x16F;</a>
669									</h6>
670									<div class="desktop-only">
671										<p>Policisté zasahovali u budov okresních soudů v Plzni v ulicích Edvarda Beneše a Nádražní. Na tísňovou linku 112 totiž dorazilo anonymní oznámení o uložení bomby. </p>
672									</div>
673								</div>
674							</div>
675						</article>
676						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
677							<div class="feature-image">
678								<div class="image-frame image-hover-style-1">
679									<a href="/ridici_si_oddechnou_silnice_mezi_ostromeci_a_nemnenicemi_dostala_novy_kabat" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/969ad77dd2/IMG_20260812_121009.jpg.medium.jpg" alt="&#x158;idi&#x10D;i si oddechnou. Silnice spojuj&#xED;c&#xED; jih Plze&#x148;ska a Doma&#x17E;licko dostala nov&#xFD; kab&#xE1;t"></a>
680								</div>
681							</div>
682							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
683								<div class="card-flex-content w-100">
684									<h6>
685										<a href="/ridici_si_oddechnou_silnice_mezi_ostromeci_a_nemnenicemi_dostala_novy_kabat" target="">&#x158;idi&#x10D;i si oddechnou. Silnice spojuj&#xED;c&#xED; jih Plze&#x148;ska a Doma&#x17E;licko dostala nov&#xFD; kab&#xE1;t</a>
686									</h6>
687									<div class="desktop-only">
688										<p>Řidiči mezi Ostromečí a Nemněnicemi už nemusí kličkovat po poškozené vozovce. Silnice III/19345 dostala nový povrch a po téměř dvou měsících prací je znovu v plném provozu. Rekonstrukce 1,6 kilometru dlouhého úseku vyšla na 6,7 milionu korun bez DPH.</p>
689									</div>
690								</div>
691							</div>
692						</article>
693						<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
694							<div class="feature-image">
695								<div class="image-frame image-hover-style-1">
696									<a href="/indiani_vali_prehrali_mladou_boleslav" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/452950a653/min_(46
696).jpg.medium.jpg" alt="Plze&#x148;&#x161;t&#xED; hokejist&#xE9; potvrdili formu i v Mlad&#xE9; Boleslavi, v&#xFD;hru trefila posila"></a>
697								</div>
698							</div>
699							<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
700								<div class="card-flex-content w-100">
701									<h6>
702										<a href="/indiani_vali_prehrali_mladou_boleslav" target="">Plze&#x148;&#x161;t&#xED; hokejist&#xE9; potvrdili formu i v Mlad&#xE9; Boleslavi, v&#xFD;hru trefila posila</a>
703									</h6>
704									<div class="desktop-only">
705										<p>Hokejisté Plzně se posouvají tabulkou na přední příčky. Indiáni potvrdili vzrůstající formu na ledě Mladé Boleslavi, kde v šestém extraligovém kole zvítězili 4:1. Rozhodující trefu zaznamenal na začátku třetí třetiny Carter Robertson. </p>
706									</div>
707								</div>
708							</div>
709						</article>
710
711					<div class="text-center">
712						<div class="ad-list">
713		<div class="ad-title-wrap mb-0 d-flex justify-content-end">
714	<span class="ad-title">Reklama</span>
715</div>
716			<a href="https://www.palis.cz/" class="banner-link" data-banner-id="49" target="_blank" title="PALIS"><img src="https://plzencz.b-cdn.net/upload/Banner/5f15ca819f/Palis.cz_Banner_728x90pix_OD_STROMU_K_DOMU_V01.png" /></a>
717</div>
718					</div>
719
720				</div>
721				<div class="col-lg-4 col-md-5 desktop-only">
722					<div class="sticky-top sticky-sidebar">
723
724						<div class="static-ads">
725
726		<div class="mb-2 ad-sidebar">
727			<div data-sidebar-ad-title hidden>
728				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
729	<span class="ad-title">Reklama</span>
730</div>
731			</div>
732			<!-- PCZ-Sidebar -->
733			<ins class="sidebar-adsense"
734				 style="display:block"
735				 data-ad-client="ca-pub-1914100961537914"
736				 data-ad-slot="1535357725"
737				 data-ad-format="auto"
738				 data-full-width-responsive="true"></ins>
739			
739<script>
740				(function () {
741					const ad = document.currentScript.previousElementSibling;
742					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
743					function updateTitle() {
744						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
745					}
746					const statusObserver = new MutationObserver(updateTitle);
747					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
748					updateTitle();
749					let initialized = false;
750					const observer = new ResizeObserver(initialize);
751					function initialize() {
752						if (initialized || ad.getBoundingClientRect().width <= 0) return;
753						initialized = true;
754						observer.disconnect();
755						ad.classList.add('adsbygoogle');
756						(window.adsbygoogle = window.adsbygoogle || []).push({});
757					}
758					observer.observe(ad);
759					initialize();
760				})();
761			</script>
761
762		</div>
763
764</div>
765						<div class="static-ads">
766
767		<div class="mb-2 ad-sidebar">
768			<div data-sidebar-ad-title hidden>
769				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
770	<span class="ad-title">Reklama</span>
771</div>
772			</div>
773			<!-- PCZ-Sidebar -->
774			<ins class="sidebar-adsense"
775				 style="display:block"
776				 data-ad-client="ca-pub-1914100961537914"
777				 data-ad-slot="1535357725"
778				 data-ad-format="auto"
779				 data-full-width-responsive="true"></ins>
780			
780<script>
781				(function () {
782					const ad = document.currentScript.previousElementSibling;
783					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
784					function updateTitle() {
785						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
786					}
787					const statusObserver = new MutationObserver(updateTitle);
788					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
789					updateTitle();
790					let initialized = false;
791					const observer = new ResizeObserver(initialize);
792					function initialize() {
793						if (initialized || ad.getBoundingClientRect().width <= 0) return;
794						initialized = true;
795						observer.disconnect();
796						ad.classList.add('adsbygoogle');
797						(window.adsbygoogle = window.adsbygoogle || []).push({});
798					}
799					observer.observe(ad);
800					initialize();
801				})();
802			</script>
802
803		</div>
804
805</div>
806
807					</div>
808				</div>
809			</div>
810
811
812			<div class="row">
813				<div class="col-md-7 col-lg-8 pl-12">
814
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="/nehoda_kamionu_uzavrela_d5_u_myta" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/d052341f1c/828202048_10232828555686459_9029470926230513022_n.jpg.medium.jpg" alt="D&#xE1;lnici D5 ochromila v&#xE1;&#x17E;n&#xE1; nehoda!"></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="/nehoda_kamionu_uzavrela_d5_u_myta" target="">D&#xE1;lnici D5 ochromila v&#xE1;&#x17E;n&#xE1; nehoda!</a>
825										</h6>
826										<div class="desktop-only">
827											<p>Dálnici D5 na 50. kilometru u Mýta na Rokycansku v úterý odpoledne uzavřela vážná dopravní nehoda. Podle policie se na místě srazila dvě nákladní vozidla. Nejprve byl uzavřen směr na Prahu, později policisté z bezpečnostních důvodů zastavili provoz i v opačném směru. Krátce před 16. hodinou se však podařilo obnovit provoz ve směru z Prahy na Rozvadov.</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="/slavnosti_jablek_v_nebilovech_prilakaly_tisice_lidi_sa
835dy_provonel_most_i_domaci_kolace" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/70f2c33d6e/IMG_7739.jpeg.medium.jpg" alt="Slavnosti jablek v Neb&#xED;lovech p&#x159;il&#xE1;kaly tis&#xED;ce lid&#xED;, sady provon&#x11B;l mo&#x161;t i dom&#xE1;c&#xED; kol&#xE1;&#x10D;e"></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="/slavnosti_jablek_v_nebilovech_prilakaly_tisice_lidi_sady_provonel_most_i_domaci_kolace" target="">Slavnosti jablek v Neb&#xED;lovech p&#x159;il&#xE1;kaly tis&#xED;ce lid&#xED;, sady provon&#x11B;l mo&#x161;t i dom&#xE1;c&#xED; kol&#xE1;&#x10D;e</a>
842										</h6>
843										<div class="desktop-only">
844											<p>Vůně čerstvě lisovaného moštu, dozrávajících jablek a domácích koláčů se v neděli nesla Sady Nebílovy. Tradiční Slavnosti jablek, které letos napsaly už svůj 17. ročník, přilákaly tisíce návštěvníků z celého Plzeňského kraje. Ti si užili den plný chutí, hudby, zábavy i podzimní pohody.</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="/plzen_slavi_zrod_cerneho_umeni_smetanovy_sady_ozdobi_unikatni_vystava_k_550_letum_knihtisku" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/9dc0694326/statuta_synodalis_Arnost_z_Pardubic.jpg.medium.jpg" alt="Plze&#x148; slav&#xED; zrod &#x201E;&#x10D;ern&#xE9;ho um&#x11B;n&#xED;&#x201C;. Smetanovy sady ozdob&#xED; unik&#xE1;tn&#xED; v&#xFD;stava k 550 let&#x16F;m knihtisku"></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="/plzen_slavi_zrod_cerneho_umeni_smetanovy_sady_ozdobi_unikatni_vystava_k_550_letum_knihtisku" target="">Plze&#x148; slav&#xED; zrod &#x201E;&#x10D;ern&#xE9;ho um&#x11B;n&#xED;&#x201C;. Smetanovy sady ozdob&#xED; unik&#xE1;tn&#xED; v&#xFD;stava k 550 let&#x16F;m knihtisku</a>
859										</h6>
860										<div class="desktop-only">
861											<p>550 let českého knihtisku - venkovní výstava před Studijní a vědeckou knihovnou Plzeňského kraje</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="/nalestene_americke_vozy_a_ryzovani_zlata_v_plzni_radcice_v_rijnu_oziji_atmosferou_divokeho_zapadu" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/ba93442840/WestPark.jpg.medium.jpg" alt="Nale&#x161;t&#x11B;n&#xE9; americk&#xE9; vozy a r&#xFD;&#x17E;ov&#xE1;n&#xED; zlata v Plzni: Rad&#x10D;ice v &#x159;&#xED;jnu o&#x17E;ij&#xED; atmosf&#xE9;rou Divok&#xE9;ho z&#xE1;padu"></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="/nalestene_americke_vozy_a_ryzovani_zlata_v_plzni_radcice_v_rijnu_oziji_atmosferou_divokeho_zapadu" target="">Nale&#x161;t&#x11B;n&#xE9; americk&#xE9; vozy a r&#xFD;&#x17E;ov&#xE1;n&#xED; zlata v Plzni: Rad&#x10D;ice v &#x159;&#xED;jnu o&#x17E;ij&#xED; atmosf&#xE9;rou Divok&#xE9;ho z&#xE1;padu</a>
876										</h6>
877										<div class="desktop-only">
878											<p>Americký den v Radčicích</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="/pres_mzi_na_kole_i_v_gondole_plzen_zacne_stavet_unikatni_most_pohaneny_lidskou_silou" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/3fab6b77e6/b20be2c8-3a1a-4d9e-aa22-699848f1f873.jpg.medium.jpg" alt="P&#x159;es M&#x17E;i na kole i v gondole. Plze&#x148; za&#x10D;ne stav&#x11B;t unik&#xE1;tn&#xED; most poh&#xE1;n&#x11B;n&#xFD; lidskou silou"></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="/pres_mzi_na_kole_i_v_gondole_plzen_zacne_stavet_unikatni_most_pohaneny_lidskou_silou" target="">P&#x159;es M&#x17E;i na kole i v gondole. Plze&#x148; za&#x10D;ne stav&#x11B;t unik&#xE1;tn&#xED; most poh&#xE1;n&#x11B;n&#xFD; lidskou silou</a>
893										</h6>
894										<div class="desktop-only">
895											<p>Cyklostezky v okolí Malesic brzy propojí neobvyklá atrakce. Plzeň zahajuje stavbu samoobslužného gondolového mostu přes řeku Mži, který budou lidé ovládat vlastní silou pomocí pedálů. Originální transbordér za zhruba 20 milionů korun usnadní cestu cyklistům a turistům a zároveň se má stát novým lákadlem západního okraje města.</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="/oprava_strechy_alzbetinych_lazni_pokracuje_hotovo_ma_byt_v_roce_2028" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.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>
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="/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>
910										</h6>
911										<div class="desktop-only">
912											<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>
913										</div>
914									</div>
915								</div>
916							</article>
917							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
918								<div class="feature-image">
919									<div class="image-frame image-hover-style-1">
920										<a href="/nakup_za_36_tisic_bez_placeni_nevysel_muzi_hrozi_dva_roky_za_mrizemi" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/b147eb66cf/odcizeni-zbozi-1.jpg.medium.jpg" alt="N&#xE1;kup za 36 tis&#xED;c bez placen&#xED; nevy&#x161;el. Mu&#x17E;i hroz&#xED; dva roky za m&#x159;&#xED;&#x17E;emi"></a>
921									</div>
922								</div>
923								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
924									<div class="card-flex-content w-100">
925										<h6>
926											<a href="/nakup_za_36_tisic_bez_placeni_nevysel_muzi_hrozi_dva_roky_za_mrizemi" target="">N&#xE1;kup za 36 tis&#xED;c bez placen&#xED; nevy&#x161;el. Mu&#x17E;i hroz&#xED; dva roky za m&#x159;&#xED;&#x17E;emi</a>
927										</h6>
928										<div class="desktop-only">
929											<p>Pokus o krádež zboží za téměř 36 tisíc korun řešili domažličtí policisté. Pětatřicetiletý muž si v jednom z obchodních domů naložil do nákupního košíku různé zboží a zamířil k východu, aniž by za nákup zaplatil. V cestě mu však zabránili zaměstnanci prodejny.</p>
930										</div>
931									</div>
932								</div>
933							</article>
934							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
935								<div class="feature-image">
936									<div class="image-frame image-hover-style-1">
937										<a href="/silnicari_v_plzenskem_kraji_se_pripravuji_na_zimu_po_rekordne_drahe_sezone_navysuji_zasoby_i_techniku" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/e85f453e06/ChatGPT_Image_26._1._2026_09_06_19.png.big.
937jpg.medium.jpg" alt="Silni&#x10D;&#xE1;&#x159;i v Plze&#x148;sk&#xE9;m kraji se p&#x159;ipravuj&#xED; na zimu: Po rekordn&#x11B; drah&#xE9; sez&#xF3;n&#x11B; navy&#x161;uj&#xED; z&#xE1;soby i techniku"></a>
938									</div>
939								</div>
940								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
941									<div class="card-flex-content w-100">
942										<h6>
943											<a href="/silnicari_v_plzenskem_kraji_se_pripravuji_na_zimu_po_rekordne_drahe_sezone_navysuji_zasoby_i_techniku" target="">Silni&#x10D;&#xE1;&#x159;i v Plze&#x148;sk&#xE9;m kraji se p&#x159;ipravuj&#xED; na zimu: Po rekordn&#x11B; drah&#xE9; sez&#xF3;n&#x11B; navy&#x161;uj&#xED; z&#xE1;soby i techniku</a>
944										</h6>
945										<div class="desktop-only">
946											<p>Správa a údržba silnic Plzeňského kraje (SÚS) má připraveno na zimní údržbu více posypového materiálu než loni. Přichystáno má 27.500 tun soli a 23.000 tun kamenné drti, tedy inertního posypu, který se používá hlavně na Šumavě a v Českém lese. Informoval o tom provozní ředitel SÚS Radek Šíma.</p>
947										</div>
948									</div>
949								</div>
950							</article>
951							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
952								<div class="feature-image">
953									<div class="image-frame image-hover-style-1">
954										<a href="/malik_vychytal_prvni_tribodovou_vyhru_miluju_zapasy_o_gol_usmival_se_po_vyhre_nad_hradcem" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/edadd80e2f/min_(44).jpg.medium.jpg" alt="Mal&#xED;k vychytal prvn&#xED; t&#x159;&#xED;bodovou v&#xFD;hru. Miluju z&#xE1;pasy o g&#xF3;l, usm&#xED;val se po v&#xFD;h&#x159;e nad Hradcem"></a>
955									</div>
956								</div>
957								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
958									<div class="card-flex-content w-100">
959										<h6>
960											<a href="/malik_vychytal_prvni_tribodovou_vyhru_miluju_zapasy_o_gol_usmival_se_po_vyhre_nad_hradcem" target="">Mal&#xED;k vychytal prvn&#xED; t&#x159;&#xED;bodovou v&#xFD;hru. Miluju z&#xE1;pasy o g&#xF3;l, usm&#xED;val se po v&#xFD;h&#x159;e nad Hradcem</a>
961										</h6>
962										<div class="desktop-only">
963											<p>Hokejisté Plzně se konečně dočkali. Po několika těsně ztracených zápasech zvládli na domácím ledě souboj s Hradcem Králové a po výhře 2:1 si připsali první tříbodové vítězství v nové extraligové sezoně. Jedním z hlavních strůjců úspěchu byl brankář Nick Malík, který několika důležitými zákroky podržel svůj tým zejména v závěrečných minutách.</p>
964										</div>
965									</div>
966								</div>
967							</article>
968							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
969								<div class="feature-image">
970									<div class="image-frame image-hover-style-1">
971										<a href="/finale_plzen_nabidne_premiery_serialu_tata_a_seriovy_manzel_dorazi_i_tvurci_a_herci" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/61cac25eca/Seriovy_manzel.JPG.medium.jpg" alt="Fin&#xE1;le Plze&#x148; nab&#xED;dne premi&#xE9;ry seri&#xE1;l&#x16F; T&#xE1;ta a S&#xE9;riov&#xFD; man&#x17E;el. Doraz&#xED; i tv&#x16F;rci a herci"></a>
972									</div>
973								</div>
974								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
975									<div class="card-flex-content w-100">
976										<h6>
977											<a href="/finale_plzen_nabidne_premiery_serialu_tata_a_seriovy_manzel_dorazi_i_tvurci_a_herci" target="">Fin&#xE1;le Plze&#x148; nab&#xED;dne premi&#xE9;ry seri&#xE1;l&#x16F; T&#xE1;ta a S&#xE9;riov&#xFD; man&#x17E;el. Doraz&#xED; i tv&#x16F;rci a herci</a>
978										</h6>
979										<div class="desktop-only">
980											<p>Filmový festival Finále Plzeň zve v pondělí 28. září na dvě výrazné seriálové novinky inspirované skutečnými událostmi. Diváci se mohou těšit na první dva díly dramatické minisérie Táta i tragikomického seriálu Sériový manžel. Součástí projekcí budou také besedy s tvůrci a hereckými delegacemi.</p>
981										</div>
982									</div>
983								</div>
984							</article>
985							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
986								<div class="feature-image">
987									<div class="image-frame image-hover-style-1">
988										<a href="/na_zcu_zacina_boj_o_rektora_soucasny_sef_univerzity_jde_znovu_do_volby" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/2098f7ac39/crop_info_21401.jpg.medium.jpg" alt="Na Z&#x10C;U za&#x10D;&#xED;n&#xE1; boj o rektora. Sou&#x10D;asn&#xFD; &#x161;&#xE9;f univerzity jde znovu do volby"></a>
989									</div>
990								</div>
991								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
992									<div class="card-flex-content w-100">
993										<h6>
994											<a href="/na_zcu_zacina_boj_o_rektora_soucasny_sef_univerzity_jde_znovu_do_volby" target="">Na Z&#x10C;U za&#x10D;&#xED;n&#xE1; boj o rektora. Sou&#x10D;asn&#xFD; &#x161;&#xE9;f univerzity jde znovu do volby</a>
995										</h6>
996										<div class="desktop-only">
997											<p>Západočeskou univerzitu v Plzni (ZČU) chce znovu vést pětapadesátiletý matematik Miroslav Lávička. Je jediným kandidátem na rektora. Předsednictvo akademického senátu univerzity obdrželo osm návrhů, všechny na současného rektora. Lávička je ve funkci od března 2023, mandát mu má skončit v únoru 2027.</p>
998										</div>
999									</div>
1000								</div>
1001							</article>
1002							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1003								<div class="feature-image">
1004									<div class="image-frame image-hover-style-1">
1005										<a href="/radek_novak__1" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/5c78eeef94/ChatGPT_Image_22._9._2026_09_29_17.png.medium.jpg" alt="Radek Nov&#xE1;k: Ve&#x159;ejn&#xFD; prostor nen&#xED; steriln&#xED; galerie"></a>
1006									</div>
1007								</div>
1008								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1009									<div class="card-flex-content w-100">
1010										<h6>
1011											<a href="/radek_novak__1" target="">Radek Nov&#xE1;k: Ve&#x159;ejn&#xFD; prostor nen&#xED; steriln&#xED; galerie</a>
1012										</h6>
1013										<div class="desktop-only">
1014											<p>Veřejný prostor patří všem – a právě proto by měl zůstat živý, rozmanitý a otevřený různým formám projevu. Označovat reklamu ve městech obecně za „vizuální smog“ mi připadá jako příliš zjednodušený a ideologický pohled na to, jak má moderní město vypadat. Město přece není sterilní galerie ani skanzen, ve kterém je možné předem určit jedinou správnou podobu veřejného prostoru. Je to živý organismus, který se neustále vyvíjí, mění a odráží dobu, ve které žijeme. A reklama je jeho přirozenou součástí.</p>
1015										</div>
1016									</div>
1017								</div>
1018							</article>
1019							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1020								<div class="feature-image">
1021									<div class="image-frame image-hover-style-1">
1022										<a href="/skodovka_se_dockala_prvni_tribodovou_vyhru_trefil_obrance_macpherson" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/52641a9013/min_(43).jpg.medium.jpg" alt="&#x160;kodovka se do&#x10D;kala, prvn&#xED; t&#x159;&#xED;bodovou v&#xFD;hru trefil obr&#xE1;nce MacPherson"></a>
1023									</div>
1024								</div>
1025								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1026									<div class="card-flex-content w-100">
1027										<h6>
1028											<a href="/skodovka_se_dockala_prvni_tribodovou_vyhru_trefil_obrance_macpherson" target="">&#x160;kodovka se do&#x10D;kala, prvn&#xED; t&#x159;&#xED;bodovou v&#xFD;hru trefil obr&#xE1;nce MacPherson</a>
1029										</h6>
1030										<div class="desktop-only">
1031											<p>První tříbodovou výhru v sezóně vybojovali hokejisté Plzně v pátém extraligovém kole proti hradeckému Mountfieldu. Indiány poslal do vedení v 5. minutě Ondřej Rohlík, za hosty pak ale vyrovnal explzeňský Nenonen. O vítězství Škody 2:1 nakonec rozhodla trefa obránce MacPhersona ze začátku druhé části.</p>
1032										</div>
1033									</div>
1034								</div>
1035							</article>
1036							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1037								<div class="feature-image">
1038									<div class="image-frame image-hover-style-1">
1039										<a href="/desitky_vyhruzek_a_strach_o_zivot_muz_terorizoval_dve_zeny_soud_ho_poslal_do_vazby" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/f60f0fee57/Gemini_Generated_Image_e85g83e85g83e85g.jpg.medium.jpg" alt="Des&#xED;tky v&#xFD;hr&#x16F;&#x17E;ek a strach o &#x17E;ivot. Mu&#x17E; terorizoval dv&#x11B; &#x17E;eny, soud ho poslal do vazby"></a>
1040									</div>
1041								</div>
1042								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1043									<div class="card-flex-content w-100">
1044										<h6>
1045											<a href="/desitky_vyhruzek_a_strach_o_zivot_muz_terorizoval_dve_zeny_soud_ho_poslal_do_vazby" target="">Des&#xED;tky v&#xFD;hr&#x16F;&#x17E;ek a strach o &#x17E;ivot. Mu&#x17E; terorizoval dv&#x11B; &#x17E;eny, soud ho poslal do vazby</a>
1046										</h6>
1047										<div class="desktop-only">
1048											<p>Dvě ženy z Plzeňského kraje čelily dlouhodobým výhrůžkám, které jim podle policie posílal třiašedesátiletý muž. Jedné z nich hrozil prostřednictvím e-mailů, druhé zasílal desítky zpráv na mobilní telefon. Případ nyní skončil obviněním a vazbou.</p>
1049										</div>
1050									</div>
1051								</div>
1052							</article>
1053							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1054								<div class="feature-image">
1055									<div class="image-frame image-hover-style-1">
1056										<a href="/finale_plzen_pridava_projekce" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/749aff7b69/Seri
1056ovy_manzel.JPG.medium.jpg" alt="Fin&#xE1;le Plze&#x148; reaguje na velk&#xFD; z&#xE1;jem. P&#x159;id&#xE1;v&#xE1; dv&#x11B; projekce, l&#xE1;k&#xE1; na Basikovou i Str&#xE1;nsk&#xE9;ho"></a>
1057									</div>
1058								</div>
1059								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1060									<div class="card-flex-content w-100">
1061										<h6>
1062											<a href="/finale_plzen_pridava_projekce" target="">Fin&#xE1;le Plze&#x148; reaguje na velk&#xFD; z&#xE1;jem. P&#x159;id&#xE1;v&#xE1; dv&#x11B; projekce, l&#xE1;k&#xE1; na Basikovou i Str&#xE1;nsk&#xE9;ho</a>
1063										</h6>
1064										<div class="desktop-only">
1065											<p>Filmový festival Finále Plzeň je v plném proudu a řada projekcí už je vyprodaná. Organizátoři proto program rozšířili o další dvě projekce, které se uskuteční v pondělí 28. září v Domě hudby.</p>
1066										</div>
1067									</div>
1068								</div>
1069							</article>
1070							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1071								<div class="feature-image">
1072									<div class="image-frame image-hover-style-1">
1073										<a href="/motorkarka_neprezila_nehodu_u_stareho_smolivce" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/e0aa147c81/f761b3c4-aded-4311-9058-67f82584c581.jpg.medium.jpg" alt="Trag&#xE9;die na Plze&#x148;sku: Motork&#xE1;&#x159;ka vyjela ze silnice, na m&#xED;st&#x11B; zem&#x159;ela"></a>
1074									</div>
1075								</div>
1076								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1077									<div class="card-flex-content w-100">
1078										<h6>
1079											<a href="/motorkarka_neprezila_nehodu_u_stareho_smolivce" target="">Trag&#xE9;die na Plze&#x148;sku: Motork&#xE1;&#x159;ka vyjela ze silnice, na m&#xED;st&#x11B; zem&#x159;ela</a>
1080										</h6>
1081										<div class="desktop-only">
1082											<p>Tragická dopravní nehoda si v sobotu vyžádala život čtyřiačtyřicetileté motocyklistky. K neštěstí došlo na silnici II/191 mezi Roželovem a Starým Smolivcem na jižním Plzeňsku.</p>
1083										</div>
1084									</div>
1085								</div>
1086							</article>
1087							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1088								<div class="feature-image">
1089									<div class="image-frame image-hover-style-1">
1090										<a href="/podchod_pod_zahorskem_se_meni_v_galerii_pod_sirym_nebem_umelci_mu_davaji_zcela_novou_tvar" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/52eaa0d392/824489934_1061077086543650_3370001752432259280_n.jpg.medium.jpg" alt="Barvy m&#xED;sto &#x161;edi. Podchod v Plzni se b&#x11B;hem p&#xE1;r dn&#x16F; prom&#x11B;&#x148;uje v galerii"></a>
1091									</div>
1092								</div>
1093								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1094									<div class="card-flex-content w-100">
1095										<h6>
1096											<a href="/podchod_pod_zahorskem_se_meni_v_galerii_pod_sirym_nebem_umelci_mu_davaji_zcela_novou_tvar" target="">Barvy m&#xED;sto &#x161;edi. Podchod v Plzni se b&#x11B;hem p&#xE1;r dn&#x16F; prom&#x11B;&#x148;uje v galerii</a>
1097										</h6>
1098										<div class="desktop-only">
1099											<p>Šedé stěny mizí před očima a nahrazují je barvy, fantazie a originální umělecká díla. Podchod Pod Záhorskem v plzeňském prvním obvodu prochází proměnou, za kterou stojí čeští a slovenští streetartoví umělci. Během několika dnů zde vzniká unikátní venkovní galerie, která má oživit veřejný prostor a nabídnout kolemjdoucím nevšední zážitek.</p>
1100										</div>
1101									</div>
1102								</div>
1103							</article>
1104							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1105								<div class="feature-image">
1106									<div class="image-frame image-hover-style-1">
1107										<a href="/kulickova_draha_teqball_i_tobogan_o_tom_co_vznikne_na_ctyrce_rozhoduji_sami_obyvatele" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/b1eefe6ca7/11._parkour.png.medium.jpg" alt="Kuli&#x10D;kov&#xE1; dr&#xE1;ha, teqball i tobog&#xE1;n. O tom, co vznikne na &#x10C;ty&#x159;ce, rozhoduj&#xED; sami obyvatel&#xE9;"></a>
1108									</div>
1109								</div>
1110								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1111									<div class="card-flex-content w-100">
1112										<h6>
1113											<a href="/kulickova_draha_teqball_i_tobogan_o_tom_co_vznikne_na_ctyrce_rozhoduji_sami_obyvatele" target="">Kuli&#x10D;kov&#xE1; dr&#xE1;ha, teqball i tobog&#xE1;n. O tom, co vznikne na &#x10C;ty&#x159;ce, rozhoduj&#xED; sami obyvatel&#xE9;</a>
1114										</h6>
1115										<div class="desktop-only">
1116											<p>Už jen několik dní zbývá obyvatelům čtvrtého plzeňského obvodu na to, aby rozhodli, jaké projekty obohatí jejich okolí. Participativní rozpočet Rozhodněte sami míří do finále a o přízeň hlasujících bojuje patnáctka nápadů – od kuličkové dráhy přes teqballové hřiště až po tobogán v Lobezském par
1116ku. Na vítězné projekty má radnice připravené dva miliony korun.</p>
1117										</div>
1118									</div>
1119								</div>
1120							</article>
1121							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1122								<div class="feature-image">
1123									<div class="image-frame image-hover-style-1">
1124										<a href="/nova_krimi_miniserie_hec_se_predstavi_v_mestanske_besede_dorazi_hvezdna_delegace" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/b73186bfc6/Hec.jpeg.medium.jpg" alt="Na Fin&#xE1;le Plze&#x148; se p&#x159;edstav&#xED; nov&#xE1; krimi minis&#xE9;rie Hec. Doraz&#xED; hv&#x11B;zdn&#xE1; delegace!"></a>
1125									</div>
1126								</div>
1127								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1128									<div class="card-flex-content w-100">
1129										<h6>
1130											<a href="/nova_krimi_miniserie_hec_se_predstavi_v_mestanske_besede_dorazi_hvezdna_delegace" target="">Na Fin&#xE1;le Plze&#x148; se p&#x159;edstav&#xED; nov&#xE1; krimi minis&#xE9;rie Hec. Doraz&#xED; hv&#x11B;zdn&#xE1; delegace!</a>
1131										</h6>
1132										<div class="desktop-only">
1133											<p>Filmový festival Finále Plzeň nabídne návštěvníkům exkluzivní podívanou na první dva díly očekávané krimi minisérie Hec z produkce České televize. Slavnostní promítání proběhne v sobotu 26. září 2026 od 20:00 hodin v Malém sále Měšťanské besedy. Součástí večera bude i osobní účast tvůrčí delegace.</p>
1134										</div>
1135									</div>
1136								</div>
1137							</article>
1138							<article data-aos="fade-up" class="blog-style2 card mb-2 aos-init aos-animate xdf6g51 d-flex flex-nowrap">
1139								<div class="feature-image">
1140									<div class="image-frame image-hover-style-1">
1141										<a href="/zlodej_se_do_svatebniho_salonu_dostal_pomoci_hasiciho_pristroje_odnesl_si_19_prstenu" target=""> <img class=" ls-is-cached lazyloaded" src="https://plzencz.b-cdn.net/upload/News/34229ef8bc/b-3.jpg.medium.jpg" alt="Zlod&#x11B;j se do svatebn&#xED;ho salonu dostal pomoc&#xED; hasic&#xED;ho p&#x159;&#xED;stroje. Odnesl si 19 prsten&#x16F;"></a>
1142									</div>
1143								</div>
1144								<div data-aos="fade-in" class="d546s my-auto card-body d-md-flex align-items-center aos-init aos-animate">
1145									<div class="card-flex-content w-100">
1146										<h6>
1147											<a href="/zlodej_se_do_svatebniho_salonu_dostal_pomoci_hasiciho_pristroje_odnesl_si_19_prstenu" target="">Zlod&#x11B;j se do svatebn&#xED;ho salonu dostal pomoc&#xED; hasic&#xED;ho p&#x159;&#xED;stroje. Odnesl si 19 prsten&#x16F;</a>
1148										</h6>
1149										<div class="desktop-only">
1150											<p>Plzeňští policisté objasnili sérii krádeží a vloupání, za kterými podle dosud zjištěných skutečností stojí muž narozený v roce 1982. Během jediného dne měl napáchat škodu v řádu desítek tisíc korun. Největší pozornost vzbudilo vloupání do svatebního salonu, odkud zmizelo 19 snubních a zásnubních prstenů. Policisté nyní muže stíhají pro několik trestných činů.</p>
1151										</div>
1152									</div>
1153								</div>
1154							</article>
1155
1156						<div class="text-center">
1157							<div class="ad-list">
1158		<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1159	<span class="ad-title">Reklama</span>
1160</div>
1161			<a href="https://www.123print.cz/" class="banner-link" data-banner-id="63" target="_blank" title="123Print"><img src="https://plzencz.b-cdn.net/upload/Banner/965dbd5d71/123print-1000x200.png" /></a>
1162</div>
1163					</div>
1164				</div>
1165				<div class="col-lg-4 col-md-5 desktop-only">
1166					<div class="sticky-top sticky-sidebar">
1167
1168						<div class="static-ads">
1169
1170		<div class="mb-2 ad-sidebar">
1171			<div data-sidebar-ad-title hidden>
1172				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1173	<span class="ad-title">Reklama</span>
1174</div>
1175			</div>
1176			<!-- PCZ-Sidebar -->
1177			<ins class="sidebar-adsense"
1178				 style="display:block"
1179				 data-ad-client="ca-pub-1914100961537914"
1180				 data-ad-slot="1535357725"
1181				 data-ad-format="auto"
1182				 data-full-width-responsive="true"></ins>
1183			
1183<script>
1184				(function () {
1185					const ad = document.currentScript.previousElementSibling;
1186					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
1187					function updateTitle() {
1188						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
1189					}
1190					const statusObserver = new MutationObserver(updateTitle);
1191					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
1192					updateTitle();
1193					let initialized = false;
1194					const observer = new ResizeObserver(initialize);
1195					function initialize() {
1196						if (initialized || ad.getBoundingClientRect().width <= 0) return;
1197						initialized = true;
1198						observer.disconnect();
1199						ad.classList.add('adsbygoogle');
1200						(window.adsbygoogle = window.adsbygoogle || []).push({});
1201					}
1202					observer.observe(ad);
1203					initialize();
1204				})();
1205			</script>
1205
1206		</div>
1207
1208</div>
1209						<div class="static-ads">
1210
1211		<div class="mb-2 ad-sidebar">
1212			<div data-sidebar-ad-title hidden>
1213				<div class="ad-title-wrap mb-0 d-flex justify-content-end">
1214	<span class="ad-title">Reklama</span>
1215</div>
1216			</div>
1217			<!-- PCZ-Sidebar -->
1218			<ins class="sidebar-adsense"
1219				 style="display:block"
1220				 data-ad-client="ca-pub-1914100961537914"
1221				 data-ad-slot="1535357725"
1222				 data-ad-format="auto"
1223				 data-full-width-responsive="true"></ins>
1224			
1224<script>
1225				(function () {
1226					const ad = document.currentScript.previousElementSibling;
1227					const title = ad.parentElement.querySelector('[data-sidebar-ad-title]');
1228					function updateTitle() {
1229						title.hidden = ad.getAttribute('data-ad-status') !== 'filled';
1230					}
1231					const statusObserver = new MutationObserver(updateTitle);
1232					statusObserver.observe(ad, { attributes: true, attributeFilter: ['data-ad-status'] });
1233					updateTitle();
1234					let initialized = false;
1235					const observer = new ResizeObserver(initialize);
1236					function initialize() {
1237						if (initialized || ad.getBoundingClientRect().width <= 0) return;
1238						initialized = true;
1239						observer.disconnect();
1240						ad.classList.add('adsbygoogle');
1241						(window.adsbygoogle = window.adsbygoogle || []).push({});
1242					}
1243					observer.observe(ad);
1244					initialize();
1245				})();
1246			</script>
1246
1247		</div>
1248
1249</div>
1250
1251					</div>
1252				</div>
1253			</div>
1254
1255			<div class="row">
1256				<div class="col-md-7 col-lg-8 pl-12">
1257
1258					<div class="d-flex justify-content-center">
1259						<ul class="pagination">
1260								<li class="page-item disabled" data-duration="0.3" data-opacity="0.2">
1261									<a class="btn has-ripple page-link" href="#">← Novější</a>
1262								</li>
1263								<li class="page-item" data-duration="0.3" data-opacity="0.2">
1264									<a href="/Aktualne?page=2" class="btn has-ripple page-link">Starší →</a>
1265								</li>
1266						</ul>
1267					</div>
1268
1269				</div>
1270				<div class="col-lg-4 col-md-5 pt-4 px-3 desktop-only">
1271				</div>
1272			</div>
1273
1274	</div>
1275</div>
1276
1277	</div>
1278
1279	<footer class="footer-area pb-2">
1280	<div class="container">
1281		<div class="row col-lg-12">
1282			<div class="col-lg-8 footer-links">
1283				<div class="footer-widget footer-nav small-res-center">
1284					<div class="row">
1285						<div class="col-lg-4 small">
1286							<ul class="footer-nav list-inline text-center">
1287								<li><a href="javascript:void(0);" data-cc="c-settings">Nastavení cookies</a></li>
1288								<li><a href="/ochrana_osobnich_udaju" alt="Ochrana osobních údajů">Ochrana osobních údajů</a></li>
1289								<li><a href="/zpracovani_osobnich_udaju" alt="Zpracování osobních údajů">Zpracování osobních údajů</a></li>
1290								<li><a href="/Redakce" alt="Redakce">Redakce</a></li>
1291								<li><a href="/reklama">Reklama</a></li>
1292								<li><a href="/eticky-kodex">Etický kodex</a></li>
1293							</ul>
1294						</div>
1295						<hr class="mobile-only" />
1296						<div class="col-lg-4 small">
1297							<ul class="footer-nav list-inline text-center">
1298								<li><a href="/zpravodajstvi">Zpravodajství</a></li>
1299								<li><a href="/kultura">Kultura</a></li>
1300								<li><a href="/sport">Sport</a></li>
1301								<li><a href="/video">Video</a></li>
1302
1303							</ul>
1304						</div>
1305						<div class="col-lg-4 small">
1306							<ul class="footer-nav list-inline text-center">
1307								<li><a href="/krimi">Krimi</a></li>
1308								<li><a href="/doprava">Doprava</a></li>
1309								<li><a href="/lifestyle">Lifestyle</a></li>
1310								<li><a href="/Webkamera">Webkamera</a></li>
1311							</ul>
1312						</div>
1313					</div>
1314				</div>
1315				<hr />
1316				<div class="row">
1317					<div class="col-lg-4 small text-center">
1318						<a href="https://www.euronovagroup.com/" target="_blank"><i class="fa fa-copyright"></i> <b>Euronova Group</b></a>
1319					</div>
1320					<div class="col-lg-4 small text-center">
1321						<a href="/vseobecne_podminky" alt="Všeobecné podmínky">Všeobecné podmínky</a>
1322					</div>
1323					<div class="col-lg-4 small text-center">
1324					</div>
1325				</div>
1326			</div>
1327			<div class="col-lg-4 small my-auto">
1328				<div class="footer-logo">
1329					<img src="/images/plzencz-wlogo-w.svg" />
1330				</div>
1331			</div>
1332		</div>
1333
1334	</div>
1335</footer>
1336
1337	<div id="da_regiotv1_sticky" class="mobile-only"></div>
1338
1339	<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>
1340	
1341	
1341<script src="/js/fancybox.umd.js"></script>
1341
1342	
1342<script src="/js/back-to-top.js"></script>
1342
1343	
1343<script src="/js/build.min.js?=build530"></script>
1343
1344	
1344<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/sweetalert2.all.min.js"></script>
1344
1345	
1345<script src="https://vjs.zencdn.net/7.17.0/video.min.js"></script>
1345
1346	
1346<script src="https://cdnjs.cloudflare.com/ajax/libs/videojs-youtube/2.6.1/Youtube.min.js"></script>
1346
1347	
1347<script src="/js/CookieConsent.js"></script>
1347
1348	
1348<script src="/js/CookieConsent-Config.js?=v26"></script>
1348
1349	
1349<script src="/js/util.js?v=hZZP4wnY4kCQ036mkCrkbAxRbYmkeM-0yb6Z4jr9Msg"></script>
1349
1350
1351	
1352<script>
1353	const activeCooldownTimers = new Map(); // surveyId → { intervalId, endTime }
1354
1355	const formatTime = (secs) => {
1356		const m = Math.floor(secs / 60);
1357		const s = secs % 60;
1358		return `${m}:${s.toString().padStart(2, '0')}`;
1359	};
1360
1361	const createCapabilityError = (code, message, details) => ({ ok: false, code, message, details });
1362
1363	function checkSurveyCapabilities() {
1364		if (typeof window.fetch !== 'function' || typeof window.Promise !== 'function' || typeof window.JSON !== 'object') {
1365			return createCapabilityError('SURVEY_CAP_01', 'Váš prohlížeč nepodporuje všechny funkce potřebné pro anketu.');
1366		}
1367
1368		if (typeof document.querySelectorAll !== 'function' || typeof Element === 'undefined' || !Element.prototype.closest) {
1369			return createCapabilityError('SURVEY_CAP_01', 'Váš prohlížeč nepodporuje všechny funkce potřebné pro anketu.');
1370		}
1371
1372		try {
1373			const testCookieName = 'survey_cap_check';
1374			document.cookie = `${testCookieName}=1; path=/; SameSite=Lax`;
1375			const cookieReadable = document.cookie.includes(`${testCookieName}=1`);
1376			document.cookie = `${testCookieName}=; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax`;
1377
1378			if (!cookieReadable) {
1379				return createCapabilityError('SURVEY_CAP_02', 'V tomto režimu prohlížeče nelze spolehlivě používat technické cookies.');
1380			}
1381		} catch (error) {
1382			return createCapabilityError('SURVEY_CAP_02', 'V tomto režimu prohlížeče nelze spolehlivě používat technické cookies.', error);
1383		}
1384
1385		return { ok: true };
1386	}
1387
1388	function renderSurveyDiagnostic(container, diag) {
1389		if (!container) return;
1390
1391		const code = diag?.code ? escapeHtml(diag.code) : 'SURVEY_JS_01';
1392		const message = escapeHtml(diag?.message || 'Anketu se nepodařilo inicializovat.');
1393
1394		container.innerHTML = `
1395			<div class="survey-diagnostic" role="alert">
1396				<div class="survey-diagnostic-title">Anketu se nepodařilo načíst</div>
1397				<div class="survey-diagnostic-message">${message}</div>
1398				<div class="survey-diagnostic-help">Zkuste prosím obnovit stránku, otevřít ji v anonymním okně nebo dočasně vypnout blokování skriptů pro tento web.</div>
1399				<div class="survey-diagnostic-code">Kód: ${code}</div>
1400			</div>
1401		`;
1402
1403		console.warn(`[${code}] ${diag?.message || 'Survey diagnostic'}`, diag?.details || '');
1404	}
1405
1406	window.addEventListener('error', (event) => {
1407		console.error('[SURVEY_JS_01] Survey runtime error', event?.error || event?.message || event);
1408	});
1409
1410	window.addEventListener('unhandledrejection', (event) => {
1411		console.error('[SURVEY_JS_01] Survey unhandled rejection', event?.reason || event);
1412	});
1413
1414	document.addEventListener('DOMContentLoaded', function() {
1415		// Find all survey placeholders in page content
1416		const surveyEmbeds = document.querySelectorAll('div.survey-embed[data-survey-id]');
1417		const capability = checkSurveyCapabilities();
1418
1419		surveyEmbeds.forEach(placeholder => {
1420			const surveyId = parseInt(placeholder.dataset.surveyId);
1421			if (isNaN(surveyId)) return;
1422
1423			// Replace placeholder with loading container
1424			const container = document.createElement('div');
1425			container.id = `survey-container-${surveyId}`;
1426			container.className = 'survey-container';
1427			container.innerHTML = '<div class="survey-loading">Načítání ankety...</div>';
1428
1429			placeholder.replaceWith(container);
1430
1431			if (!capability.ok) {
1432				renderSurveyDiagnostic(container, capability);
1433				return;
1434			}
1435
1436			// Load and render survey
1437			loadSurvey(surveyId, container);
1438		});
1439	});
1440
1441	document.addEventListener('visibilitychange', async () => {
1442		if (document.visibilityState !== 'visible') return;
1443		if (activeCooldownTimers.size === 0) return;
1444
1445		for (const [surveyId, timerData] of Array.from(activeCooldownTimers.entries())) {
1446			// Zkontroluj lokálně – bez server roundtrip (klíčové pro hibernaci)
1447			if (Date.now() >= timerData.endTime) {
1448				clearInterval(timerData.intervalId);
1449				activeCooldownTimers.delete(surveyId);
1450
1451				const container = document.getElementById(`survey-container-${surveyId}`);
1452				if (container) {
1453					const form = container.querySelector(`#survey-form-${surveyId}`);
1454					const submitBtn = form?.querySelector('button[type="submit"]');
1455					if (submitBtn) {
1456						submitBtn.textContent = 'Hlasovat v anketě';
1457						submitBtn.disabled = false;
1458						submitBtn.style.opacity = '1';
1459						submitBtn.style.cursor = 'pointer';
1460					}
1461					if (form) {
1462						form.querySelectorAll('input').forEach(el => el.disabled = false);
1463					}
1464					container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1465				}
1466				continue;
1467			}
1468
1469			// Timer stále běží – re-sync se serverem pro přesnost
1470			// Nejdřív okamžitě oprav zmrazený text (eliminuje viditelný skok)
1471			const container = document.getElementById(`survey-container-${surveyId}`);
1472			if (container) {
1473				const localRemaining = Math.max(0, Math.floor((timerData.endTime - Date.now()) / 1000));
1474				const form = container.querySelector(`#survey-form-${surveyId}`);
1475				const submitBtn = form?.querySelector('button[type="submit"]');
1476				if (submitBtn && localRemaining > 0) {
1477					submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(localRemaining)}`;
1478				}
1479			}
1480
1481			try {
1482				const response = await fetch(`/api/survey/get/${surveyId}`, { cache: 'no-store' });
1483				if (!response.ok) continue;
1484				if (!activeCooldownTimers.has(surveyId)) continue; // expiroval během fetch
1485
1486				const survey = await response.json();
1487				const container = document.getElementById(`survey-container-${surveyId}`);
1488				if (!container) continue;
1489
1490				if (survey.secondsRemainingBeforeCooldownExpires > 0) {
1491					startCooldownTimer(container, surveyId, survey.secondsRemainingBeforeCooldownExpires);
1492				} else {
1493					clearInterval(activeCooldownTimers.get(surveyId).intervalId);
1494					activeCooldownTimers.delete(surveyId);
1495
1496					const form = container.querySelector(`#survey-form-${surveyId}`);
1497					const submitBtn = form?.querySelector('button[type="submit"]');
1498					if (submitBtn) {
1499						submitBtn.textContent = 'Hlasovat v anketě';
1500						submitBtn.disabled = false;
1501						submitBtn.style.opacity = '1';
1502						submitBtn.style.cursor = 'pointer';
1503					}
1504					if (form) {
1505						form.querySelectorAll('input').forEach(el => el.disabled = false);
1506					}
1507					container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1508				}
1509			} catch (e) {
1510				console.error(`Survey re-sync error for survey ${surveyId}:`, e);
1511			}
1512		}
1513	});
1514
1515	async function loadSurvey(surveyId, container) {
1516		try {
1517			const response = await fetch(`/api/survey/get/${surveyId}`, { cache: 'no-store' });
1518
1519			if (!response.ok) {
1520				const error = await response.json();
1521				container.innerHTML = `<div class="survey-error">${escapeHtml(error.error || 'Nepodařilo se načíst anketu')}</div>`;
1522				return;
1523			}
1524
1525			const survey = await response.json();
1526			renderSurveyForm(survey, container);
1527		} catch (error) {
1528			console.error('Survey load error:', error);
1529			renderSurveyDiagnostic(container, {
1530				code: 'SURVEY_JS_01',
1531				message: 'Inicializace ankety selhala.',
1532				details: error
1533			});
1534		}
1535	}
1536
1537	function renderSurveyForm(survey, container) {
1538		let html = `
1539			<div class="survey mt-2 mb-2 pt-1 pb-1 radius">
1540				<div class="px-3">
1541		`;
1542
1543		survey.questions.forEach(question => {
1544			html += `
1545					<div class="small gdpr">
1546						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>.
1547						<hr />
1548					</div>
1549					<div class="survey-question-header mb-2">
1550						<button type="button" class="survey-gdpr-toggle" aria-label="GDPR informace"><i class="fa-regular fa-circle-info"></i></button>
1551						<h4 class="mb-2">${escapeHtml(question.questionText)}</h4>
1552					</div>
1553
1554					<div class="survey-options">
1555			`;
1556
1557			question.answers.forEach(answer => {
1558				html += `
1559						<div class="survey-option mb-2">
1560							<div class="d-flex justify-content-between align-items-center mb-1">
1561								<label class="mb-0">
1562									<input type="radio" name="question-${question.questionId}" value="${answer.answerId}" class="me-2" required>
1563									<span>${escapeHtml(answer.answerText)}</span>
1564								</label>
1565								<span class="badge bg-secondary" data-answer-percent="${answer.answerId}">${answer.votePercentage}%</span>
1566							</div>
1567							<div class="progress mb-1" style="height: 7px;">
1568								<div class="progress-bar bg-plzen" role="progressbar" data-answer-bar="${answer.answerId}" style="width: ${answer.votePercentage}%;"></div>
1569							</div>
1570						</div>
1571				`;
1572			});
1573
1574			html += `
1575					</div>
1576			`;
1577		});
1578
1579		html += `
1580					<div class="text-center mt-3">
1581						<button class="btn btn-secondary btn-sm" type="submit" data-survey-id="${survey.surveyId}">Hlasovat v anketě</button>
1582						<div id="survey-message-${survey.surveyId}" class="d-none">
1583							<div class="alert alert-success mb-0" role="alert">
1584								<strong>Děkujeme!</strong> Váš hlas byl zaregistrován.
1585							</div>
1586						</div>
1587					</div>
1588				</div>
1589			</div>
1590		`;
1591
1592		container.innerHTML = `<form id="survey-form-${survey.surveyId}">${html}</form>`;
1593
1594		const form = container.querySelector(`#survey-form-${survey.surveyId}`);
1595		if (!form) {
1596			renderSurveyDiagnostic(container, {
1597				code: 'SURVEY_EVT_01',
1598				message: 'Nepodařilo se inicializovat formulář ankety.'
1599			});
1600			return;
1601		}
1602
1603		const submitBtn = form.querySelector('button[type="submit"]');
1604		if (!submitBtn) {
1605			renderSurveyDiagnostic(container, {
1606				code: 'SURVEY_EVT_02',
1607				message: 'Nepodařilo se inicializovat odeslání ankety.'
1608			});
1609			return;
1610		}
1611
1612		// Attach GDPR toggle handlers
1613		container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => {
1614			btn.addEventListener('click', () => {
1615				const notice = btn.closest('.survey-question-header').previousElementSibling;
1616				if (notice) notice.classList.toggle('gdpr-open');
1617			});
1618		});
1619
1620		// Attach form submission handler
1621		try {
1622			form.addEventListener('submit', (e) => handleSurveySubmit(e, survey));
1623			form.dataset.surveySubmitBound = '1';
1624		} catch (error) {
1625			renderSurveyDiagnostic(container, {
1626				code: 'SURVEY_EVT_02',
1627				message: 'Nepodařilo se inicializovat odeslání ankety.',
1628				details: error
1629			});
1630			return;
1631		}
1632
1633		// Typ 0) - anketa po termínu
1634		if (survey.isExpired) {
1635			disableSurveyForm(container, survey.surveyId);
1636			if (submitBtn) {
1637				submitBtn.style.display = 'none';
1638			}
1639			const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1640			if (messageDiv) {
1641				messageDiv.classList.remove('d-none');
1642				messageDiv.innerHTML = `
1643					<div class="alert alert-secondary mb-0" role="alert">
1644						Anketa již skončila a není možné znovu hlasovat.
1645					</div>
1646				`;
1647			}
1648			return;
1649		}
1650
1651		// Typ a) - bez opakování hlasování - uživatel už hlasoval
1652		if (!survey.allowMultipleSubmissions && survey.userHasAlreadyVoted) {
1653			disableSurveyForm(container, survey.surveyId);
1654			// Schovat tlačítko a zobrazit success message
1655			const submitBtn = form.querySelector('button[type="submit"]');
1656			if (submitBtn) {
1657				submitBtn.style.display = 'none';
1658			}
1659			const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1660			if (messageDiv) {
1661				messageDiv.classList.remove('d-none');
1662				messageDiv.innerHTML = `
1663					<div class="alert alert-info mb-0" role="alert">
1664						<strong>Děkujeme!</strong> Váš hlas byl zaznamenán.
1665					</div>
1666				`;
1667			}
1668		}
1669		// Typ b) - s opakováním hlasování - cooldown aktivní
1670		else if (survey.allowMultipleSubmissions && survey.secondsRemainingBeforeCooldownExpires > 0) {
1671			disableSurveyForm(container, survey.surveyId);
1672			startCooldownTimer(container, survey.surveyId, survey.secondsRemainingBeforeCooldownExpires);
1673		}
1674		// Všechny ostatní případy - ověř eligibilitu
1675		else {
1676			checkVotingEligibility(survey, container);
1677		}
1678	}
1679
1680	async function checkVotingEligibility(survey, container) {
1681		try {
1682			const response = await fetch('/api/survey/can-vote', {
1683				method: 'POST',
1684				headers: {
1685					'Content-Type': 'application/json'
1686				},
1687				body: JSON.stringify({ surveyId: survey.surveyId })
1688			});
1689
1690			if (!response.ok) return;
1691
1692			const data = await response.json();
1693			if (!data.canVote) {
1694				const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1695
1696				// Pokud tam není už success alert, zobraz error message
1697				if (messageDiv && !messageDiv.innerHTML.includes('Děkujeme')) {
1698					disableSurveyForm(container, survey.surveyId, data.reason);
1699				}
1700
1701				// Show cooldown countdown if applicable
1702				if (data.secondsRemaining > 0) {
1703					startCooldownTimer(container, survey.surveyId, data.secondsRemaining);
1704				}
1705			}
1706		} catch (error) {
1707			console.error('Eligibility check error:', error);
1708		}
1709	}
1710
1711	async function handleSurveySubmit(event, survey) {
1712		event.preventDefault();
1713
1714		const form = event.target;
1715		const container = form.closest('.survey-container') ?? form.parentElement;
1716		const messageDiv = container.querySelector(`#survey-message-${survey.surveyId}`);
1717
1718		// Gather answers
1719		const answers = [];
1720		survey.questions.forEach(question => {
1721			const selected = form.querySelector(`input[name="question-${question.questionId}"]:checked`);
1722			if (selected) {
1723				answers.push({
1724					questionId: question.questionId,
1725					answerId: parseInt(selected.value)
1726				});
1727			}
1728		});
1729
1730		if (answers.length !== survey.questions.length) {
1731			if (messageDiv) {
1732				messageDiv.classList.remove('d-none');
1733				messageDiv.innerHTML = `
1734					<div class="alert alert-danger mb-0" role="alert">
1735						Prosím odpovězte na všechny otázky
1736					</div>
1737				`;
1738			}
1739			return;
1740		}
1741
1742		// Disable form during submission
1743		form.querySelectorAll('input, button').forEach(el => el.disabled = true);
1744
1745		try {
1746			const response = await fetch('/api/survey/submit', {
1747				method: 'POST',
1748				headers: {
1749					'Content-Type': 'application/json'
1750				},
1751				body: JSON.stringify({
1752					surveyId: survey.surveyId,
1753					answers: answers
1754				})
1755			});
1756
1757			const result = await response.json();
1758
1759			if (!response.ok) {
1760				if (messageDiv) {
1761					messageDiv.classList.remove('d-none');
1762					messageDiv.innerHTML = `
1763						<div class="alert alert-danger mb-0" role="alert">
1764							${escapeHtml(result.error || 'Hlasování se nezdařilo')}
1765						</div>
1766					`;
1767				}
1768				form.querySelectorAll('input, button').forEach(el => el.disabled = false);
1769
1770				if (result.secondsRemaining > 0) {
1771					startCooldownTimer(container, survey.surveyId, result.secondsRemaining);
1772				}
1773				return;
1774			}
1775
1776			// Success: Update results and disable form
1777			if (messageDiv) {
1778				messageDiv.classList.remove('d-none');
1779				messageDiv.innerHTML = `
1780					<div class="alert alert-success mb-0" role="alert">
1781						<strong>Děkujeme!</strong> Váš hlas byl zaregistrován.
1782					</div>
1783				`;
1784			}
1785			disableSurveyForm(container, survey.surveyId);
1786			updateSurveyResults(container, result.results);
1787			container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1788
1789			// Typ a) - bez opakování - schovat tlačítko po hlasování
1790			if (!survey.allowMultipleSubmissions) {
1791				const submitBtn = form.querySelector('button[type="submit"]');
1792				if (submitBtn) {
1793					submitBtn.style.display = 'none';
1794				}
1795			} else if (result.secondsRemainingBeforeCooldownExpires > 0) {
1796				// Typ b) - s opakováním - spusť countdown přímo z dat odpovědi
1797				startCooldownTimer(container, survey.surveyId, result.secondsRemainingBeforeCooldownExpires);
1798			}
1799		} catch (error) {
1800			console.error('Submission error:', error);
1801			if (messageDiv) {
1802				messageDiv.classList.remove('d-none');
1803				messageDiv.innerHTML = `
1804					<div class="alert alert-danger mb-0" role="alert">
1805						Nepodařilo se odeslat váš hlas. Zkuste prosím znovu.
1806					</div>
1807				`;
1808			}
1809			form.querySelectorAll('input, button').forEach(el => el.disabled = false);
1810		}
1811	}
1812
1813	function disableSurveyForm(container, surveyId, message) {
1814		const form = container.querySelector(`#survey-form-${surveyId}`);
1815		if (form) {
1816			form.querySelectorAll('input').forEach(el => el.disabled = true);
1817			const submitBtn = form.querySelector('button[type="submit"]');
1818			if (submitBtn) {
1819				submitBtn.disabled = true;
1820				// Pokud není zpráva, je to po úspěšném hlasování - nechej tlačítko viditelné s textem "Hlasovat"
1821				if (!message) {
1822					submitBtn.textContent = 'Hlasování';
1823					submitBtn.style.opacity = '0.6';
1824					submitBtn.style.cursor = 'not-allowed';
1825				}
1826			}
1827		}
1828
1829		const messageDiv = container.querySelector(`#survey-message-${surveyId}`);
1830		if (message && messageDiv) {
1831			messageDiv.classList.remove('d-none');
1832			messageDiv.innerHTML = `
1833				<div class="alert alert-info mb-0" role="alert">
1834					${escapeHtml(message)}
1835				</div>
1836			`;
1837		}
1838	}
1839
1840	function updateSurveyResults(container, results) {
1841		results.forEach(result => {
1842			const percentBadge = container.querySelector(`[data-answer-percent="${result.answerId}"]`);
1843			const progressBar = container.querySelector(`[data-answer-bar="${result.answerId}"]`);
1844
1845			if (percentBadge) percentBadge.textContent = `${Math.round(result.votePercentage)}%`;
1846			if (progressBar) progressBar.style.width = `${Math.round(result.votePercentage)}%`;
1847		});
1848	}
1849
1850	function startCooldownTimer(container, surveyId, secondsRemaining) {
1851		// Vyčisti starý timer pro tuto anketu, pokud existuje
1852		if (activeCooldownTimers.has(surveyId)) {
1853			clearInterval(activeCooldownTimers.get(surveyId).intervalId);
1854		}
1855
1856		const endTime = Date.now() + (secondsRemaining * 1000);
1857		const messageDiv = container.querySelector(`#survey-message-${surveyId}`);
1858		const form = container.querySelector(`#survey-form-${surveyId}`);
1859		const submitBtn = form ? form.querySelector('button[type="submit"]') : null;
1860
1861		// Skryj messageDiv během countdownu - countdown jde do tlačítka
1862		if (messageDiv) {
1863			messageDiv.classList.add('d-none');
1864		}
1865
1866		// Zobraz čas okamžitě (bez čekání na první tick)
1867		if (submitBtn) {
1868			submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(secondsRemaining)}`;
1869			submitBtn.disabled = true;
1870			submitBtn.style.opacity = '0.7';
1871			submitBtn.style.cursor = 'not-allowed';
1872		}
1873
1874		const intervalId = setInterval(() => {
1875			const remaining = Math.max(0, Math.floor((endTime - Date.now()) / 1000));
1876
1877			if (submitBtn) {
1878				submitBtn.textContent = `⏱️ Hlasovat můžete znovu za ${formatTime(remaining)}`;
1879				submitBtn.disabled = true;
1880				submitBtn.style.opacity = '0.7';
1881				submitBtn.style.cursor = 'not-allowed';
1882			}
1883
1884			if (remaining <= 0) {
1885				clearInterval(intervalId);
1886				activeCooldownTimers.delete(surveyId);
1887
1888				if (submitBtn) {
1889					submitBtn.textContent = 'Hlasovat v anketě';
1890					submitBtn.disabled = false;
1891					submitBtn.style.opacity = '1';
1892					submitBtn.style.cursor = 'pointer';
1893				}
1894				if (form) {
1895					form.querySelectorAll('input').forEach(el => el.disabled = false);
1896				}
1897				container.querySelectorAll('.survey-gdpr-toggle').forEach(btn => btn.disabled = false);
1898			}
1899		}, 1000);
1900
1901		activeCooldownTimers.set(surveyId, { intervalId, endTime });
1902	}
1903
1904	function escapeHtml(text) {
1905		if (!text) return '';
1906		const div = document.createElement('div');
1907		div.textContent = text;
1908		return div.innerHTML;
1909	}
1910</script>
1910
1911
1912	<noscript><style>div.quiz-embed[data-quiz-id]::after { content: ' Pro vyplnění kvízu zapněte JavaScript.'; }</style></noscript>
1913<script>
1914(() => {
1915    const element = (tag, className, text) => {
1916        const node = document.createElement(tag);
1917        node.className = className || '';
1918        if (text !== undefined) node.textContent = text;
1919        return node;
1920    };
1921    // All instances share token loading to avoid competing first-request antiforgery cookies.
1922    let tokenRequest;
1923    async function json(url, options) {
1924        const response = await fetch(url, { credentials: 'same-origin', cache: 'no-store', ...options });
1925        const data = await response.json().catch(() => ({}));
1926        if (!response.ok) throw new Error(data.error || (response.status === 400
1927            ? 'Odeslání se nezdařilo. Zkontrolujte odpovědi a povolení cookies.'
1928            : 'Kvíz se nepodařilo načíst nebo odeslat. Zkuste to prosím později.'));
1929        return data;
1930    }
1931    const token = () => tokenRequest || (tokenRequest = json('/api/quiz/token').catch(error => {
1932        tokenRequest = null;
1933        throw error;
1934    }));
1935    function preservePosition(container, change) {
1936        const x = window.scrollX, y = window.scrollY;
1937        change();
1938        window.scrollTo({ left: x, top: y, behavior: 'instant' });
1939    }
1940    function start() {
1941        document.querySelectorAll('div.quiz-embed[data-quiz-id]').forEach((placeholder, index) => {
1942            const id = Number(placeholder.dataset.quizId);
1943            const container = element('div', 'quiz survey mt-2 mb-2 pt-1 pb-1 radius');
1944            container.id = `quiz-instance-${index}`;
1945            const body = element('div', 'quiz-body');
1946            container.append(body);
1947            placeholder.replaceWith(container);
1948            async function load() {
1949                body.replaceChildren(element('p', '', 'Načítání kvízu…'));
1950                try {
1951                    if (!Number.isSafeInteger(id) || id <= 0) throw new Error('Kvíz není dostupný.');
1952                    const quiz = await json(`/api/quiz/get/${id}`);
1953                    if (!quiz.questions.length || quiz.questions.length > 100 || quiz.questions.some(q => !q.answers.length))
1954                        throw new Error('Tento kvíz nyní nelze vyplnit.');
1955                    preservePosition(container, () => render(quiz));
1956                } catch (error) {
1957                    preservePosition(container, () => {
1958                        const message = element('p', 'alert alert-info', error.message);
1959                        message.setAttribute('role', 'alert');
1960                        const retry = element('button', 'btn btn-secondary btn-sm', 'Načíst znovu');
1961                        retry.type = 'button';
1962                        retry.addEventListener('click', load);
1963                        body.replaceChildren(message, retry);
1964                    });
1965                }
1966            }
1967            function render(quiz) {
1968                const header = element('div', 'quiz-header');
1969                const counter = element('span', 'quiz-counter');
1970                const info = element('button', 'survey-gdpr-toggle quiz-info');
1971                info.type = 'button';
1972                info.setAttribute('aria-label', 'Informace o zpracování osobních údajů');
1973                info.setAttribute('aria-expanded', 'false');
1974                info.setAttribute('aria-controls', `${container.id}-privacy`);
1975                const icon = element('i', 'fa-regular fa-circle-info');
1976                icon.setAttribute('aria-hidden', 'true');
1977                info.append(icon);
1978                const meta = element('div', 'quiz-meta');
1979                meta.append(counter, info);
1980                header.append(element('h4', 'quiz-title mb-2', quiz.title), meta);
1981                const privacy = element('div', 'small gdpr quiz-privacy');
1982                privacy.id = `${container.id}-privacy`;
1983                privacy.setAttribute('inert', '');
1984                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. '));
1985                const privacyLink = element('a', '', 'Více informací o ochraně osobních údajů.');
1986                privacyLink.href = '/ochrana_osobnich_udaju';
1987                privacy.append(privacyLink, element('hr'));
1988                info.addEventListener('click', () => preservePosition(container, () => {
1989                    const open = privacy.classList.toggle('gdpr-open');
1990                    privacy.toggleAttribute('inert', !open);
1991                    info.setAttribute('aria-expanded', String(open));
1992                }));
1993                body.replaceChildren(privacy, header);
1994                if (quiz.description) body.append(element('p', 'quiz-description', quiz.description));
1995                const form = element('form');
1996                form.noValidate = true;
1997                const fields = new Map();
1998                quiz.questions.forEach((question, questionIndex) => {
1999                    const field = element('fieldset', 'quiz-question');
2000                    field.hidden = questionIndex !== 0;
2001                    const legend = element('legend', 'quiz-legend', question.questionText);
2002                    legend.tabIndex = -1;
2003                    field.append(legend);
2004                    question.answers.forEach(answer => {
2005                        const label = element('label', 'quiz-option');
2006                        const input = element('input', 'me-2');
2007                        input.type = 'radio';
2008                        input.name = `${container.id}-question-${question.questionId}`;
2009                        input.value = answer.answerId;
2010                        input.required = true;
2011                        label.append(input, element('span', '', answer.answerText));
2012                        field.append(label);
2013                    });
2014                    fields.set(question.questionId, { field });
2015                    form.append(field);
2016                });
2017                const message = element('div', 'quiz-message');
2018                message.setAttribute('aria-live', 'polite');
2019                message.setAttribute('aria-atomic', 'true');
2020                const controls = element('div', 'quiz-controls');
2021                const submit = element('button', 'btn btn-secondary btn-sm', 'Hodnocení');
2022                submit.type = 'submit';
2023                const retry = element('button', 'btn btn-secondary btn-sm', 'Zkusit znovu');
2024                retry.type = 'button';
2025                retry.hidden = true;
2026                retry.addEventListener('click', () => preservePosition(container, () => {
2027                    render(quiz);
2028                    body.querySelector('legend').focus({ preventScroll: true });
2029                }));
2030                controls.append(submit, retry);
2031                form.append(controls, message);
2032                body.append(form);
2033                let current = 0;
2034                let busy = false, complete = false;
2035                function updateSubmitState() {
2036                    submit.disabled = busy || complete || !fields.get(quiz.questions[current].questionId).field.querySelector('input:checked');
2037                }
2038                form.addEventListener('change', updateSubmitState);
2039                function showQuestion(focus) {
2040                    fields.forEach(({ field }, questionId) => field.hidden = questionId !== quiz.questions[current].questionId);
2041                    counter.textContent = `${current + 1}/${quiz.questions.length}`;
2042                    counter.setAttribute('aria-label', `Otázka ${current + 1} z ${quiz.questions.length}`);
2043                    submit.textContent = current === quiz.questions.length - 1 ? 'Hodnocení' : 'Další otázka';
2044                    message.textContent = '';
2045                    updateSubmitState();
2046                    if (focus) {
2047                        const nextField = fields.get(quiz.questions[current].questionId).field;
2048                        nextField.classList.add('quiz-enter');
2049                        nextField.querySelector('legend').focus({ preventScroll: true });
2050                    }
2051                }
2052                showQuestion(false);
2053                form.addEventListener('submit', async event => {
2054                    event.preventDefault();
2055                    if (busy || complete) return;
2056                    const activeField = fields.get(quiz.questions[current].questionId).field;
2057                    if (!activeField.querySelector('input:checked')) {
2058                        activeField.setAttribute('aria-invalid', 'true');
2059                        message.textContent = 'Vyberte prosím odpověď.';
2060                        return;
2061                    }
2062                    activeField.removeAttribute('aria-invalid');
2063                    if (current < quiz.questions.length - 1) {
2064                        preservePosition(container, () => { current++; showQuestion(true); });
2065                        return;
2066                    }
2067                    const answers = [];
2068                    fields.forEach(({ field }, questionId) => {
2069                        const checked = field.querySelector('input:checked');
2070                        field.setAttribute('aria-invalid', checked ? 'false' : 'true');
2071                        if (checked) answers.push({ questionId, answerId: Number(checked.value) });
2072                    });
2073                    if (answers.length !== quiz.questions.length) {
2074                        message.textContent = 'Odpovězte prosím na všechny otázky.';
2075                        return;
2076                    }
2077                    busy = true;
2078                    submit.disabled = true;
2079                    form.setAttribute('aria-busy', 'true');
2080                    form.querySelectorAll('input').forEach(input => input.disabled = true);
2081                    message.textContent = 'Vyhodnocování…';
2082                    try {
2083                        const csrf = await token();
2084                        const result = await json('/api/quiz/submit', {
2085                            method: 'POST',
2086                            headers: { 'Content-Type': 'application/json', [csrf.headerName]: csrf.token },
2087                            body: JSON.stringify({ quizId: id, answers })
2088                        });
2089                        preservePosition(container, () => {
2090                            const summary = element('div', 'quiz-summary quiz-enter');
2091                            const score = element('p', 'quiz-score', `Výsledek: ${result.correctCount} z ${result.questionCount}
2091 (${result.scorePercentage.toLocaleString('cs-CZ')} %)`);
2092                            score.tabIndex = -1;
2093                            summary.append(score);
2094                            const details = element('details', 'quiz-results');
2095                            details.append(element('summary', '', 'Zobrazit odpovědi'));
2096                            result.questions.forEach(answer => {
2097                                const question = quiz.questions.find(q => q.questionId === answer.questionId);
2098                                const row = element('div', `quiz-result ${answer.isCorrect ? 'quiz-correct' : 'quiz-incorrect'}`);
2099                                row.append(
2100                                    element('strong', '', question.questionText),
2101                                    element('div', 'quiz-result-status', answer.isCorrect ? 'Vaše odpověď: správná' : 'Vaše odpověď: nesprávná')
2102                                );
2103                                if (answer.answerStatistics?.length) {
2104                                    const comparison = element('div', 'quiz-comparison');
2105                                    comparison.append(element('div', 'quiz-comparison-title', 'Jak se odpovídalo'));
2106                                    answer.answerStatistics.forEach(stat => {
2107                                        const option = question.answers.find(a => a.answerId === stat.answerId);
2108                                        if (!option) return;
2109                                        const line = element('div', 'quiz-stat');
2110                                        const caption = element('span', 'quiz-stat-label');
2111                                        const answerText = element('span', '', option.answerText);
2112                                        const isSelected = stat.answerId === answer.selectedAnswerId;
2113                                        const isCorrect = answer.correctAnswerIds.includes(stat.answerId);
2114                                        if (isSelected) line.classList.add('quiz-stat-user-choice');
2115                                        const annotation = isSelected
2116                                            ? 'vaše volba'
2117                                            : (isCorrect ? 'správná odpověď' : '');
2118                                        const statusIcon = element('span', 'quiz-result-icon', isCorrect ? '✓' : '✕');
2119                                        statusIcon.setAttribute('role', 'img');
2120                                        statusIcon.setAttribute('aria-label', isCorrect ? 'Správně' : 'Špatně');
2121                                        statusIcon.title = isCorrect ? 'Správně' : 'Špatně';
2122                                        caption.append(statusIcon);
2123                                        if (annotation) answerText.append(element('span', 'quiz-stat-selected', ` (${annotation})`));
2124                                        caption.append(answerText);
2125                                        const track = element('span', 'quiz-stat-track');
2126                                        track.setAttribute('aria-hidden', 'true');
2127                                        const bar = element('span', 'quiz-stat-bar');
2128                                        bar.style.width = `${Math.max(0, Math.min(100, stat.percentage))}%`;
2129                                        track.append(bar);
2130                                        line.append(caption, track, element('span', 'quiz-stat-value', `${stat.percentage.toLocaleString('cs-CZ')} %`));
2131                                        comparison.append(line);
2132                                    });
2133                                    row.append(comparison);
2134                                }
2135                                details.append(row);
2136                            });
2137                            summary.append(details);
2138                            counter.textContent = `${quiz.questions.length}/${quiz.questions.length}`;
2139                            counter.setAttribute('aria-label', 'Kvíz dokončen');
2140                            body.querySelector('.quiz-description')?.remove();
2141                            form.replaceChildren(summary, controls);
2142                            complete = true;
2143                            submit.hidden = true;
2144                            retry.hidden = false;
2145                            score.focus({ preventScroll: true });
2146                        });
2147                    } catch (error) {
2148                        tokenRequest = null;
2149                        message.textContent = error.message;
2150                        form.querySelectorAll('input').forEach(input => input.disabled = false);
2151                        submit.disabled = false;
2152                    } finally {
2153                        busy = false;
2154                        updateSubmitState();
2155                        form.removeAttribute('aria-busy');
2156                    }
2157                });
2158            }
2159            load();
2160        });
2161    }
2162    if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', start);
2163    else start();
2164})();
2165</script>
2165
2166
2167	
2168	
2169
2170</body>
2171</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.