PageSourceSearch

https://cityofwautoma.com/news-and-notices/

html cityofwautoma.com collected 2026-10-02 13:34:08 UTC 55,797 bytes, 1,174 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <title>News-and-notices | City of Wautoma</title>
5    <meta name="description" content="">
6    <meta name="keywords" content="">
7    <meta name="author" content="Town Web | SK">
8    <meta charset="UTF-8">
9    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
10    <link rel="icon" type="image/x-icon" href="https://storage.googleapis.com/juniper-media-library/521/2026/04/Wautoma.png">
11    <meta property="og:title" content="News-and-notices | City of Wautoma">
12    <meta property="og:description" content="">
13    <meta property="og:site_name" content="City of Wautoma">
14    <meta property="og:type" content="website">
15    <link rel="canonical" href="https://cityofwautoma.com/news-and-notices/">
16    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous" />
17    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css" integrity="sha512-MV7K8+y+gLIBoVD59lQIYicR65iaqukzvf/nwasF0nqhPay5w/9lJmVM2hMDcnK1OnMGCdVK+iQrJ7lzPJQd1w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
18    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" integrity="sha512-tS3S5qG0BlhnQROyJXvNjeEM4UpMXHrQfTGmbQ1gKmelCxlSEBUaxhRBj/EFTzpbP4RVSrpEikbmdJobCvhE3g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
19    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/css/lightbox.css" integrity="sha512-Woz+DqWYJ51bpVk5Fv0yES/edIMXjj3Ynda+KWTIkGoynAMHrqTcDUQltbipuiaD5ymEo9520lyoVOo9jCQOCA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
20    
20<script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
20
21    
21<script src="https://darkskyapp.github.io/skycons/skycons.js"></script>
21
22    
22<script src="/settings.js?v=b535076d"></script>
22
23    <link rel="stylesheet" href="/setting.css" />
24    <style>
25@import url('https://fonts.googleapis.com/css?family=Nunito+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
26@import url('https://fonts.googleapis.com/css?family=Nunito+Sans:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');
27:root{--favicon-image:url("https://storage.googleapis.com/juniper-media-library/521/2026/04/Wautoma.png");--default-featured-image:url("https://storage.googleapis.com/juniper-media-library/521/2026/04/wautoma-news-notices.jpg");--primary-color:#7d9373;--secondary-color:#cd5538;--tertiary-color:#ecf1f5;--primary-font:"Nunito Sans";--hedings-font:"Nunito Sans";--default-size:16px;--h1-size:36px;--h2-size:30px;--h3-size:24px;--h4-size:20px;--h5-size:16px;--h6-size:12px;--a-size:16px;--a-color:;}body .sk-page-content{font-family:var(--primary-font);font-size:var(--default-size);}body .sk-page-content h1,body .sk-page-content h2,body .sk-page-content h3,body .sk-page-content h4,body .sk-page-content h5,body .sk-page-content h6{font-family:var(--hedings-font);}body .sk-page-content h1{font-size:var(--h1-size);}body .sk-page-content h2{font-size:var(--h2-size);}body .sk-page-content h3{font-size:var(--h3-size);}body .sk-page-content h4{font-size:var(--h4-size);}body .sk-page-content h5{font-size:var(--h5-size);}body .sk-page-content h6{font-size:var(--h6-size);}body .sk-page-content a{font-size:var(--a-size);}body .sk-page-content a{color:var(--a-color);}
28</style>
29<link rel="stylesheet" href="/theme.css?v=32a16000" />
30    <link rel="stylesheet" href="/style.css" />
31    
31<script>window.HeyGovApi = "https:\/\/api.heygov.com"</script>
31<script src="https://edge.heygov.com/heygov.js" data-heygov-jurisdiction="cityofwautoma.com" data-heygov-features="issues" data-heygov-button-text="Report an issue" data-heygov-button-show="false" data-heygov-button-style="bottom-left" ></script>
31<style>.heygov-widget-button{left:15px;right:auto;top:auto;bottom:15px}</style><style>.userway_p3{left:auto!important;right:15px!important;top:auto!important;bottom:15px!important}</style><style>.userway_p3 .userway_buttons_wrapper{left:auto!important;right:15px!important;top:auto!important;bottom:15px!important;transform: none!important;}</style>
32     <!-- Google tag (gtag.js) -->
vendor: 96 bytes, lines 32-33
32
33                                <script async src='https://www.googletagmanager.com/gtag/js?id=
33G-NKRXLLVX7R
vendor: 44 bytes, lines 33-34
33'></script>
34                                
34<script>
35                                    
vendor: 235 bytes, lines 35-38
35window.dataLayer = window.dataLayer || [];
36                                    function gtag(){dataLayer.push(arguments);}
37                                    gtag('js', new Date());
38                                    gtag('config', '
38G-NKRXLLVX7R
vendor: 36 bytes, lines 38-39
38');
39                                
39</script>
39
40    
41    
41<script>
42        (function(d) {
43            var s = d.createElement("script");
44            /* uncomment the following line to override default position*/
45            s.setAttribute("data-position", 3);
46            /* uncomment the following line to override default size (values: small, large)*/
47            /* s.setAttribute("data-size", "large");*/
48            /* uncomment the following line to override default language (e.g., fr, de, es, he, nl, etc.)*/
49            /* s.setAttribute("data-language", "null");*/
50            /* uncomment the following line to override color set via widget (e.g., #053f67)*/
51            /*s.setAttribute("data-color", "#ccc");*/
52            /* uncomment the following line to override type set via widget (1=person, 2=chair, 3=eye, 4=text)*/
53            /* s.setAttribute("data-type", "1");*/
54            /* s.setAttribute("data-statement_text:", "Our Accessibility Statement");*/
55            /* s.setAttribute("data-statement_url", "http://www.example.com/accessibility";*/
56            /* uncomment the following line to override support on mobile devices*/
57            /* s.setAttribute("data-mobile", true);*/
58            /* uncomment the following line to set custom trigger action for accessibility menu*/
59            /* s.setAttribute("data-trigger", "triggerId")*/
60            s.setAttribute("data-account", "UILnNGMstU");
61            s.setAttribute("src", "https://cdn.userway.org/widget.js");
62            (d.body || d.head).appendChild(s);
63        })(document)
64    </script>
64
65    
65<script>
66        /* Third-party accessibility/gallery widget a11y patches. These run only when
67           the widget is present and only ADD attributes (labels / aria-hidden on
68           decorative icons / landmark wrappers) -- we never hide or remove a working
69           widget, so sites that use UserWay/accessiBe/Lightbox are unaffected. */
70        (function () {
71            var UW_SELECTOR = '[class*="userway"],[class*="uwaw"],[id*="userway"]';
72            function accessibleName(el) {
73                return el.getAttribute('aria-label') ||
74                    el.getAttribute('aria-labelledby') ||
75                    el.getAttribute('title') ||
76                    (el.textContent && el.textContent.trim());
77            }
78            function labelUserwayTriggers() {
79                var buttons = document.querySelectorAll('[role="button"]');
80                for (var i = 0; i < buttons.length; i++) {
81                    var el = buttons[i];
82                    if (!el.closest(UW_SELECTOR)) continue;
83                    if (!accessibleName(el)) el.setAttribute('aria-label', 'Accessibility menu');
84                }
85                /* The launcher's inner SVG icons are decorative once the button is
86                   named; hide them so they don't trip svg-has-no-accessible-name. */
87                var svgs = document.querySelectorAll(UW_SELECTOR + ' svg');
88                for (var j = 0; j < svgs.length; j++) {
89                    var svg = svgs[j];
90                    if (accessibleName(svg) || svg.querySelector('title')) continue;
91                    svg.setAttribute('aria-hidden', 'true');
92                    svg.setAttribute('focusable', 'false');
93                }
94                /* UserWay marks its launcher wrapper aria-hidden="true" yet leaves the
95                   launcher button tabbable (aria_hidden_nontabbable). The button is a
96                   real control, so un-hide the wrapper rather than remove keyboard
97                   access. Only touch wrappers that actually hold a focusable element. */
98                var hiddenWraps = document.querySelectorAll(UW_SELECTOR + '[aria-hidden="true"]');
99                for (var w = 0; w < hiddenWraps.length; w++) {
100                    if (hiddenWraps[w].querySelector('a[href],button,input,select,textarea,[tabindex],[role="button"]')) {
101                        hiddenWraps[w].removeAttribute('aria-hidden');
102                    }
103                }
104            }
105            /* accessiBe (paid ADA add-on some clients load) renders its launcher inside
106               open shadow roots on <access-widget-ui> hosts, with icon SVGs that have no
107               accessible name and occasionally an unnamed button. We keep the widget
108               working and just name/hide those so they stop failing the scanner. */
109            function patchAccessibe() {
110                /* accessiBe also drops a light-DOM trigger <div role="button"> with no
111                   text/label ("button role has no associated label"); name it. */
112                var triggers = document.querySelectorAll('.acsb-trigger,[class*="acsb"][role="button"]');
113                for (var t = 0; t < triggers.length; t++) {
114                    if (!accessibleName(triggers[t])) triggers[t].setAttribute('aria-label', 'Accessibility options');
115                }
116                var hosts = document.querySelectorAll('access-widget-ui');
117                for (var i = 0; i < hosts.length; i++) {
118                    var root = hosts[i].shadowRoot;
119                    if (!root) continue;
120                    var svgs = root.querySelectorAll('svg');
121                    for (var s = 0; s < svgs.length; s++) {
122                        if (accessibleName(svgs[s]) || svgs[s].querySelector('title')) continue;
123                        svgs[s].setAttribute('aria-hidden', 'true');
124                        svgs[s].setAttribute('focusable', 'false');
125                    }
126                    var btns = root.querySelectorAll('button,[role="button"]');
127                    for (var b = 0; b < btns.length; b++) {
128                        if (!accessibleName(btns[b])) btns[b].setAttribute('aria-label', 'Accessibility options');
129                    }
130                    /* The host sits directly under <body>, so its content is "not within
131                       a landmark". Make each visible, non-empty host a regi
131on landmark,
132                       labelled from its button when present else an index (kept unique
133                       to avoid the duplicate-landmark-label rule). */
134                    var host = hosts[i];
135                    if (!host.getAttribute('role') && root.childElementCount > 0 && getComputedStyle(host).display !== 'none') {
136                        var namer = root.querySelector('button,[role="button"]');
137                        host.setAttribute('role', 'region');
138                        host.setAttribute('aria-label', ((namer && accessibleName(namer)) || ('Accessibility widget ' + (i + 1))).slice(0, 60));
139                    }
140                }
141                /* accessiBe's screen-reader-only <a>/<span> helpers are also loose under
142                   <body>; gather them under one region landmark. */
143                var loose = document.querySelectorAll('body > a.acsb-sr-only, body > span.acsb-sr-alert, body > .acsb-sr-only');
144                if (loose.length) {
145                    var region = document.getElementById('acsb-sr-landmark');
146                    if (!region) {
147                        region = document.createElement('div');
148                        region.id = 'acsb-sr-landmark';
149                        region.setAttribute('role', 'region');
150                        region.setAttribute('aria-label', 'Accessibility screen reader helpers');
151                        loose[0].parentNode.insertBefore(region, loose[0]);
152                    }
153                    for (var l = 0; l < loose.length; l++) {
154                        if (loose[l].parentNode !== region) region.appendChild(loose[l]);
155                    }
156                }
157            }
158            /* Lightbox2 (image gallery lib) injects close/cancel controls as
159               <a role="button"> with no text -> "button role has no associated label". */
160            function patchLightbox() {
161                var map = [
162                    ['.lb-close', 'Close image'],
163                    ['.lb-cancel', 'Close image'],
164                    ['.lb-prev', 'Previous image'],
165                    ['.lb-next', 'Next image']
166                ];
167                for (var i = 0; i < map.length; i++) {
168                    var els = document.querySelectorAll(map[i][0]);
169                    for (var j = 0; j < els.length; j++) {
170                        if (!accessibleName(els[j])) els[j].setAttribute('aria-label', map[i][1]);
171                    }
172                }
173            }
174            function processOverlays() {
175                labelUserwayTriggers();
176                patchAccessibe();
177                patchLightbox();
178            }
179            function init() {
180                processOverlays();
181                var obs = new MutationObserver(processOverlays);
182                obs.observe(document.body, { childList: true, subtree: true });
183                /* Overlays load async and accessiBe fills an encapsulated shadow root
184                   the observer can't see, so poll for ~30s as well. */
185                var ticks = 0;
186                var poll = setInterval(function () {
187                    processOverlays();
188                    if (++ticks >= 15) { clearInterval(poll); obs.disconnect(); }
189                }, 2000);
190            }
191            if (document.readyState === 'loading') {
192                document.addEventListener('DOMContentLoaded', init);
193            } else {
194                init();
195            }
196        })();
197    </script>
197
198    <noscript>
199        Please ensure Javascript is enabled for purposes of
200        <a href="https://userway.org">website accessibility</a>
201    </noscript>
202</head>
203
204<body id="juniper">
205    <style>
206    #subs_button {
207  	width: 100%;
208    border-radius: 4px;
209}
210
211section#tw-faq h2#faq-section-title {
212	font-size: 1.75rem!important;
213}
214
215section#tw-events > div::after {
216	opacity: 0.5;
217}
218
219
220.heygov-widget-button {
221  	color: #000;
222}
223/* bolder menu */
224#menuPrimaryContent > ul {
225	font-weight: 700;
226}
227
228/* spacing news menu, social and events */
229#menuNewsDefault {
230	margin-bottom: unset!important;
231}
232/* end of spacing news menu, and events */
233
234#menuNewsDefault .nav-item .nav-link {
235	border-radius: 0.25rem;
236}
237
238/* ── Wrapper ────────────────────────────────────────────────────── */
239.gtranslate_wrapper {
240    position:        relative !important;
241    display:         inline-flex !important;
242    align-items:     center;
243}
244
245/* ── Switcher button ─────────────────────────────────────────────── */
246.gtranslate_wrapper .gt_switcher {
247    border-radius:   30px !important;
248    background:      #ffffff !important;
249    border:          1px solid #cccccc !important;
250    box-shadow:      0 2px 4px rgba(0,0,0,0.1) !important;
251    cursor:          pointer;
252    transition:      box-shadow 0.2s ease;
253    white-space:     nowrap;
254}
255
256.gtranslate_wrapper .gt_switcher:hover {
257    background:      #f8f8f8 !important;
258    box-shadow:      0 4px 8px rgba(0,0,0,0.15) !important;
259}
260
261/* ── Selected language label ─────────────────────────────────────── */
262.gtranslate_wrapper .gt_switcher .gt_selected a {
263    display:         flex !important;
264    align-items:     center !important;
265    gap:             8px !important;
266    padding:         6px 12px !important;
267    font-family:     "Open Sans", sans-serif !important;
268    font-size:       14px !important;
269    color:           #333333 !important;
270    text-decoration: none !important;
271    white-space:     nowrap;
272}
273
274/* ── Flags in button ─────────────────────────────────────────────── */
275.gtranslate_wrapper .gt_switcher a img {
276    visibility:      visible !important;
277    display:         inline-block !important;
278    width:           24px !important;
279    height:          auto !important;
280    flex-shrink:     0;
281}
282
283/* ── Dropdown: floats BELOW the button, aligned to right edge ───── */
284.gtranslate_wrapper .gt_option {
285    position:        absolute !important;
286    top:             100% !important;       /* ← opens downward */
287    bottom:          auto !important;       /* ← not upward */
288    right:           0 !important;          /* ← right-aligned to button */
289    left:            auto !important;
290    margin-top:      6px !important;        /* ← small gap below button */
291    margin-bottom:   0 !important;
292    min-width:       160px !important;
293    width:           auto !important;
294    padding:         6px 0 !important;
295    border-radius:   10px !important;
296    background:      #ffffff !important;
297    border:          1px solid #cccccc !important;
298    box-shadow:      0 6px 16px rgba(0,0,0,0.12) !important;
299    z-index:         99999 !important;
300}
301
302/* ── Language rows ───────────────────────────────────────────────── */
303.gtranslate_wrapper .gt_option a {
304    display:         flex !important;
305    align-items:     center !important;
306    gap:             10px !important;
307    padding:         7px 14px !important;
308    font-family:     "Open Sans", sans-serif !important;
309    font-size:       14px !important;
310    color:           #333333 !important;
311    text-decoration: none !important;
312    text-indent:     0 !important;
313    white-space:     nowrap;
314    line-height:     1.4 !important;
315}
316
317.gtranslate_wrapper .gt_option a:hover {
318    background:      #f0f0f0 !important;
319    color:           #000000 !important;
320}
321
322/* ── Flags in dropdown rows ──────────────────────────────────────── */
323.gtranslate_wrapper .gt_option a img {
324    visibility:      visible !important;
325    display:         inline-block !important;
326    width:           24px !important;
327    height:          auto !important;
328    flex-shrink:     0;
329}
330
331/* ── Prevent Bootstrap grid from clipping the dropdown ──────────── */
332#defaultHeader .col-md-9,
333#topHeader .row,
334#topHeader .container,
335.top-header,
336#defaultHeader {
337    overflow:        visible !important;
338}
339
340    @media (max-width: 767.99px) {
341        /* make menu font smaller */
342div#menuNewsDefault ul li a, div#menuHeroMobile ul li a {
343	font-size: 20px;
344	border-radius: 4px;
345}
346
347/* hide icons in Hero menu */
348div#menuHeroMobile ul li i {
349	display: none;
350}
351
352/* remove extra spacing between Hero menu and News */
353div#menuHeroMobile {
354  margin-bottom: -5rem!important;
355}
356
357/* welcome text */
358#heroSlider > div.carousel-inner > div > div.container > div > div > h1 > span, section#sectionHero #heroSlider h1 {
359font-size: 3rem!important;
360}
361/* end of welcome text */
362
363
364    /* Allow the header's right column to wrap onto multiple rows */
365    #topHeader .col-md-9 {
366        flex-wrap:       wrap !important;
367        align-items:     center;
368        padding-bottom:  8px;
369    }
370
371    /* Weather and search stay on the first row together */
372    #topHeader .weather-widget,
373    #topHeader .search-container {
374        flex-shrink:     0;
375    }
376
377    /* Translate wrapper: own row, centered */
378    .gtranslate_wrapper {
379        flex-basis:      100% !important;  /* forces new row below weather+search */
380        display:         flex !important;  /* flex (not inline-flex) so justify-content works */
381        justify-content: center !important;
382        width:           100% !important;
383        margin-top:      8px !important;
384        margin-bottom:   4px !important;
385    }
386
387    /* Switcher: cap width, keep desktop pill shape */
388    .gtranslate_wrapper .gt_switcher {
389        width:           auto !important;
390        max-width:       200px !important;
391        border-radius:   30px !important;
392    }
393
394    /* Dropdown: center under the button */
395    .gtranslate_wrapper .gt_option {
396        right:           auto !important;
397        left:            50% !important;
398        transform:       translateX(-50%) !important;
399        min-width:       160px !important;
400        width:           auto !important;
401    }
402}
403    }
404</style>
405<script>
406window.gtranslateSettings = {
407    "default_language":                "en",
408    "languages":                       ["ar","nl","en","fr","de","it","pt","ru","es", "tr"],
409    "url_structure":                   "none",
410    "flag_style":                      "3d",
411    "flag_size":                       24,
412    "wrapper_selector":                ".gtranslate_wrapper",
413    "alt_flags":                       {"en":"usa"},
414    "switcher_open_direction":         "top",
415    "switcher_horizontal_position":    "inline",
416    "switcher_text_color":             "#333333",
417    "switcher_arrow_color":            "#666666",
418    "switcher_border_color":           "#cccccc",
419    "switcher_background_color":       "#ffffff",
420    "switcher_background_shadow_color":"#f0f0f0",
421    "switcher_background_hover_color": "#f8f8f8",
422    "dropdown_text_color":             "#333333",
423    "dropdown_hover_color":            "#f0f0f0",
424    "dropdown_background_color":       "#ffffff"
425};
426</script>
vendor: 1 bytes, line 426
426
427<script src="https://cdn.gtranslate.net/widgets/latest/dwf.js" defer></script>
427
428<header id="defaultHeader" class="default-header" role="banner">
429    <a href="#main-content" class="skip-to-main">Skip to main content</a>
430    <div id="topHeader" class="top-header">
431        <div class="container">
432            <div class="row mx-0">
433                <div class="col-md-3 d-flex align-items-center justify-content-center justify-content-md-start">
434                    <a href="/" class="navbar-brand custom-logo-link" rel="home" aria-current="page" aria-label="Home">
435                        <img src="https://storage.googleapis.com/juniper-media-library/521/2026/04/Wautoma.png" width="80px" height="" class="img-responsive" alt="Site Logo" decoding="async">
436                    </a>
437                </div>
438                <div class="col-md-9 justify-content-end d-flex align-items-center">
439                    <!-- Weather Widget -->
440                                        <div class="weather-widget d-flex me-2" role="region" aria-label="Current weather information">
441                                                <canvas class="icon-weather" data-icon="" role="img" aria-label="Weather icon"></canvas>
442                                                <span class="weather-temperature" aria-live="polite">NO DATA</span>
443                    </div>
444                                        <!-- Social Icons -->
445                    <div id="headerSocialMenuWrapper">
446    <ul id="headerSocialMenu" class="nav flex-nowrap">
447        
448    </ul>
449</div>
450                    <!-- Search and Translate -->
451                    <div class="search-container ">
452                        <form action="/search" method="get" role="search" aria-label="Site search" id="header-search-form">
453                            <input class="search expandright" id="searchright" type="search" name="q" placeholder="Search" aria-label="Search the website" title="Search the website">
454                            <button type="button" class="search-button searchbutton" aria-label="Toggle search" aria-expanded="false">
455                                <i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i>
456                            </button>
457                        </form>
458                    </div>
459                    <div class="gtranslate_wrapper" role="region" aria-label="Language translator"></div>
460                </div>
461            </div>
462        </div>
463    </div>
464    <div id="bottomHeader" class="bottom-header w-100">
465        <div id="fixed-header-logo" class="d-none d-sm-none d-md-flex d-lg-flex d-xl-flex position-absolute align-items-center pb-4">
466            <a class="navbar-brand" rel="home" href="/" aria-label="Home">
467                <img src="https://storage.googleapis.com/juniper-media-library/521/2026/04/Wautoma.png" class="" alt="Site Logo" decoding="async">
468            </a>
469        </div>
470        <nav id="menuPrimary" class="navbar navbar-dark navbar-expand-lg">
471  <div class="container">
472    <button style="z-index: 9999;" class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#menuPrimaryContent" aria-controls="menuPrimaryContent" aria-expanded="false" aria-label="Toggle navigation">
473      <div class="tw-hamburger-animated-icon"><span></span><span></span><span></span></div>
474    </button>
475    <div class="collapse navbar-collapse" id="menuPrimaryContent">
476      <ul class="navbar-nav mb-2 mb-lg-0 menu-primary">
477        <li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link " aria-current="page"   rel="none" href="https://cityofwautoma.com"><span> <span class="visually-hidden">Navigate to </span>Home</span></a></li><li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link dropdown-toggle " data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-current="page"  rel="none" href="#"><span> <span class="visually-hidden">Navigate to </span>Government</span></a><div class="dropdown-menu dropdown-mega-menu">
478                    <div class="mega-content">
479                        <div class="container mega-menu-columns">
480                            <div class="row">          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/agendas-minutes"  class="sk-megamenu-column-item-link"  >Agendas & Minutes</a></div><div class="mb-2">          <a rel="none" href="/forms-permits"  class="sk-megamenu-column-item-link"  >
480Forms, Permits & Licenses</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/ordinance-zoning-info"  class="sk-megamenu-column-item-link"  >Ordinance / Zoning Info</a></div><div class="mb-2">          <a rel="none" href="/news-and-notices"  class="sk-megamenu-column-item-link"  >News & Notices</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/calendar-of-events"  class="sk-megamenu-column-item-link"  >Calendar of Events</a></div>          </div>          </div>
481                        </div>
482                    </div>
483                </div></li><li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link dropdown-toggle " data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-current="page"  rel="none" href="#"><span> <span class="visually-hidden">Navigate to </span>Departments</span></a><div class="dropdown-menu dropdown-mega-menu">
484                    <div class="mega-content">
485                        <div class="container mega-menu-columns">
486                            <div class="row">          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/city-directory"  class="sk-megamenu-column-item-link"  >City Directory</a></div><div class="mb-2">          <a rel="none" href="/common-council"  class="sk-megamenu-column-item-link"  >Common Council</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/municipal-court"  class="sk-megamenu-column-item-link"  >Municipal Court</a></div><div class="mb-2">          <a rel="none" href="/police-department"  class="sk-megamenu-column-item-link"  >Police Department</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/water-sewer"  class="sk-megamenu-column-item-link"  >Water & Sewer</a></div>          </div>          </div>
487                        </div>
488                    </div>
489                </div></li><li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link dropdown-toggle " data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-current="page"  rel="none" href="#"><span> <span class="visually-hidden">Navigate to </span>Community</span></a><div class="dropdown-menu dropdown-mega-menu">
490                    <div class="mega-content">
491                        <div class="container mega-menu-columns">
492                            <div class="row">          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/general-info"  class="sk-megamenu-column-item-link"  >General Info</a></div><div class="mb-2">          <a rel="none" href="/important-numbers"  class="sk-megamenu-column-item-link"  >Important Numbers</a></div><div class="mb-2">          <a rel="none" href="/brush-leaf-pickup"  class="sk-megamenu-column-item-link"  >Brush/Leaf Pickup</a></div><div class="mb-2">          <a rel="none" href="/garbage-recycling-pickup"  class="sk-megamenu-column-item-link"  >Garbage/Recycling Pickup</a></div><div class="mb-2">          <a rel="none" href="/open-air-market"  class="sk-megamenu-column-item-link"  >Open Air Market</a></div><div class="mb-2">          <a rel="none" href="/real-estate-taxes"  class="sk-megamenu-column-item-link"  >Real Estate Taxes</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/library"  class="sk-megamenu-column-item-link"  >Library</a></div><div class="mb-2">          <a rel="none" href="/links"  class="sk-megamenu-column-item-link"  >Links</a></div><div class="mb-2">          <a rel="none" href="/home-repair-program"  class="sk-megamenu-column-item-link"  >Home Repair Program</a></div><div class="mb-2">          <a rel="none" href="/join-our-team"  class="sk-megamenu-column-item-link"  >Employment Opportunities</a></div><div class="mb-2">          <a rel="none" href="/elections"  class="sk-megamenu-column-item-link"  >Elections</a></div><div class="mb-2">          <a rel="none" href="/faqs"  class="sk-megamenu-column-item-link"  >Frequently Asked Questions</a></div>          </div>          <div class="col-12 col-sm-6 col-md-4 py-4 mega-menu-column"><div class="mb-2">          <a rel="none" href="/subscribe-to-updates"  class="sk-megamenu-column-item-link"  >Subscribe to Updates</a></div><div class="mb-2">          <a rel="none" href="/wautoma-union-cemetery"  class="sk-megamenu-column-item-link"  >Wautoma Union Cemetery</a></div><div class="mb-2">          <a rel="none" href="/wwii-memorial"  class="sk-megamenu-column-item-link"  >WWII Memorial</a></div><div class="mb-2">          <a rel="none" href="/dog-park"  class="sk-megamenu-column-item-link"  >Dog Park</a></div><div class="mb-2">          <a rel="none" href="/bird-creek-park"  class="sk-megamenu-column-item-link"  >Bird Creek Park</a></div>          </div>          </div>
493                        </div>
494                    </div>
495                </div></li><li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link " aria-current="page"   rel="none" href="/online-pay"><span> <span class="visually-hidden">Navigate to </span>Online Pay</span></a></li><li class="nav-item menu-level-one dropdown dropdown-mega position-static" role="listitem">  <a class="nav-link first-level-link " aria-current="page"   rel="none" href="/contact-us"><span> <span class="visually-hidden">Navigate to </span>Contact Us</span></a></li>
496      </ul>
497    </div>
498  </div>
499</nav>
500        <div class="line"></div>
501    </div>
502</header>
503
504
505
506    <style>
507    /* Filters Section Styling */
508    .filters-section {
509        display: flex;
510        align-items: flex-start;
511        justify-content: space-between;
512        flex-wrap: wrap;
513        gap: 20px;
514        margin-bottom: 15px;
515        align-items: end;
516    }
517
518    .category-filters-wrapper {
519        flex: 1;
520        min-width: 300px;
521    }
522
523    .category-filters-title {
524        font-weight: 600;
525        font-size: 1.1rem;
526        margin-bottom: 10px;
527        color: #495057;
528    }
529
530    .category-filter {
531        display: inline-block;
532        padding: 6px 16px;
533        margin: 4px 8px 4px 0;
534        background-color: #ffffff;
535        border: 2px solid #dee2e6;
536        border-radius: 10px;
537        text-decoration: none;
538        color: #495057;
539        font-size: 0.9rem;
540        transition: all 0.3s ease;
541        cursor: pointer;
542    }
543
544    .category-filter:hover {
545        background-color: #e9ecef;
546        border-color: #adb5bd;
547        text-decoration: none;
548        color: #495057;
549    }
550
551    .category-filter.active {
552        background-color: #0056b3;
553        border-color: #0056b3;
554        color: #ffffff;
555    }
556
557    .category-filters-wrapper-mobile {
558        margin-bottom: 20px;
559    }
560
561    .category-filters-wrapper-mobile label,
562    .archive-filters-wrapper label {
563        font-weight: 600;
564        margin-bottom: 8px;
565        margin-right: 10px;
566        color: #495057;
567    }
568
569    .categories-select-list,
570    .archive-filters-wrapper select,
571    .archive-filters-wrapper input[type="date"] {
572        margin-right: 15px;
573        margin-bottom: 10px;
574        padding: 8px 12px;
575        border: 1px solid #ced4da;
576        border-radius: 4px;
577        font-size: 0.9rem;
578    }
579
580    .archive-filters-wrapper {
581        display: flex;
582        align-items: center;
583        gap: 10px;
584        flex-shrink: 0;
585    }
586
587    .date-range-filters {
588        display: none;
589    }
590
591    /* Card Styling for Even Height */
592    .archive-item {
593        height: 100%;
594        display: flex;
595        flex-direction: column;
596        border: 1px solid #dee2e6;
597        border-radius: 0px;
598        overflow: hidden;
599    }
600
601
602    .archive-item-image {
603        width: 100%;
604        height: 200px;
605        object-fit: cover;
606        border-bottom: 1px solid #dee2e6;
607    }
608
609    .archive-item-body {
610        flex: 1;
611        display: flex;
612        flex-direction: column;
613        padding: 20px;
614    }
615
616    .archive-item-title {
617        font-size: 1.1rem;
618        font-weight: 600;
619        margin-bottom: 10px;
620        line-height: 1.3;
621    }
622
623    .archive-item-title a,
624    a .archive-item-title {
625        text-decoration: none;
626        color: #212529;
627    }
628
629    .archive-item-title a:hover,
630    a:hover .archive-item-title {
631        color: #0056b3;
632        text-decoration: none;
633    }
634
635    .archive-item-snippet {
636        flex: 1;
637        font-size: 0.9rem;
638        color: #6c757d;
639        line-height: 1.5;
640        margin-bottom: 15px;
641    }
642
643    .archive-item-button {
644        margin-top: auto;
645        padding: 8px 0;
646        font-size: 0.9rem;
647        font-weight: 500;
648        color: #0056b3;
649    }
650
651    .archive-item-button:hover,
652    .archive-item-button:focus {
653        color: #004085;
654    }
655
656    /* No Image Placeholder */
657    .no-image-placeholder {
658        width: 100%;
659        height: 200px;
660        background-color: #e9ecef;
661        display: flex;
662        align-items: center;
663        justify-content: center;
664        color: #495057;
665        font-size: 0.9rem;
666        font-weight: 500;
667        border-bottom: 1px solid #dee2e6;
668        border-radius: 10px;
669    }
670
671    /* Pagination Styling */
672    .view-more-button {
673        background-color: #0056b3;
674        color: white;
675        border: none;
676        padding: 12px 24px;
677        border-radius: 6px;
678        font-size: 1rem;
679        font-weight: 500;
680        transition: background-color 0.3s ease;
681    }
682
683    .view-more-button:hover {
684        background-color: #004085;
685    }
686
687    .view-more-button i {
688        margin-right: 8px;
689    }
690
691    /* Responsive adjustments */
692    @media (max-width: 768px) {
693        .filters-section {
694            flex-direction: column;
695            gap: 0px;
696        }
697
698        .category-filters-wrapper {
699            display: none;
700            min-width: auto;
701        }
702
703        .category-filters-wrapper-mobile {
704            width: 100%;
705            display: block;
706            margin-bottom: 0px;
707        }
708
709        .category-filters-wrapper-mobile select,
710        .archive-filters-wrapper select {
711            width: 100%;
712            margin-right: 0;
713        }
714
715        .archive-filters-wrapper {
716            align-self: flex-start;
717            width: 100%;
718            flex-direction: column;
719            align-items: flex-start;
720        }
721
722        .archive-filters-wrapper label {
723            margin-bottom: 0%;
724            margin-right: 0;
725        }
726    }
727
728    @media (min-width: 769px) {
729        .category-filters-wrapper-mobile {
730            display: none;
731        }
732    }
733</style>
734
735<main id="main-content" class="juniper-news-archive news-archive option-1 mb-5">
736    <div class="container">
737        <div class="row">
738            <!-- Page heading -->
739            <div class="col-12">
740                <h1 class="page-heading">News & Notices</h1>
741            </div>
742            <!-- Filters -->
743            <div class="col-12 filters-section">
744                <div class="category-filters-wrapper">
745                    <div class="category-filters-title">Categories</div>
746                    <a class="category-filter active" data-category="all">View All</a>
747                    <!-- Dynamic News Categories -->
748                </div>
749                <div class="category-filters-wrapper-mobile">
750                    <label for="categoriesSelectList">Category</label>
751                    <select id="categoriesSelectList" class="categories-select-list">
752                        <option value="all">View All</option>
753                    </select>
754                </div>
755                <div class="archive-filters-wrapper">
756                    <div class="date-range-filters">
757                        <label for="dateFrom">Date Range</label>
758                        <input type="date" id="dateFrom" name="date-start" aria-label="Input start date in format month-day-year">
759                        <input type="date" id="dateTo" name="date-end" aria-label="Input end date in format month-day-year">
760                    </div>
761                    <label for="archiveYears">Archive</label>
762                    <select id="archiveYears" name="archive_years">
763                        <option value="">All</option><option value="2026">2026</option>
764                    </select>
765                </div>
766            </div>
767            <!-- Content -->
768            <div class="col-12 py-3 ">
769                <div id="news-container" class="row">
770                    
771            </div>
772            <div id="loader" style="display:none; text-align:center; margin: 2rem 0;">
773                <div class="spinner-border" role="status"></div>
774            </div>
775        </div>
776        <!-- Pagination -->
777        <div class="col-12 pagination">
778            <button class="view-more-button"><i class="fa fa-refresh"></i><span class="button-text">View More</span></button>
779        </div>
780        <!-- JSON Pagination -->
781        <nav aria-label="Page navigation example">
782            <ul id="pagination" class="pagination"></ul>
783        </nav>
784        <!-- Default Pagination -->
785        <div id="newsPerPagePagination" class="col-12 pagination">
786            
787        </div>
788    </div>
789</div>
790</main>
791<script>
792    let itemsPerPage = parseInt(jNewsPerPage);
793    let currentIndex = 0;
794    let newsData = [];
795    let filteredNews = [];
796    let selectedCategory = 'all';
797
798    function getQueryParam(name) {
799        const urlParams = new URLSearchParams(window.location.search);
800        return urlParams.get(name);
801    }
802
803    function getQueryPage() {
804        const urlParams = new URLSearchParams(window.location.search);
805        const page = parseInt(urlParams.get('page'));
806        return isNaN(page) || page < 1 ? 1 : page;
807    }
808
809    function applyCategoryFilter(category, updateURL = true) {
810        selectedCategory = category;
811        currentIndex = 0;
812        $('#news-container').empty();
813
814        // Sync desktop and mobile category selection
815        $('.category-filter').removeClass('active');
816        $(`.category-filter[data-category="${category}"]`).addClass('active');
817        $('.categories-select-list').val(category);
818
819        if (updateURL) {
820            const params = new URLSearchParams(window.location.search);
821            if (category === 'all') {
822                params.delete('cat');
823            } else {
824                params.set('cat', category);
825            }
826            params.set('page', 1);
827            const newUrl = `${window.location.pathname}?${params.toString()}`;
828            history.pushState(null, '', newUrl);
829        }
830
831        filterAndRenderNews();
832    }
833
834    function renderCategoryFilters(categories) {
835        const categoryFromUrl = getQueryParam('cat');
836
837        const container = $('.category-filters-wrapper');
838        container.find('.category-filter:not([data-category="all"])').remove();
839        categories.forEach(category => {
840            const filter = $(`<a class="category-filter" data-category="${category}">${category}</a>`);
841            container.append(filter);
842        });
843        container.find('.category-filter').removeClass('active');
844        if (categoryFromUrl && categoryFromUrl !== '') {
845            container.find(`.category-filter[data-category="${categoryFromUrl}"]`).addClass('active');
846        } else {
847            container.find('.category-filter[data-category="all"]').addClass('active');
848        }
849
850        const selectListCategories = $('.categories-select-list');
851        categories.forEach(category => {
852            const filter = $(`<option value="${category}">${category}</option>`);
853            selectListCategories.append(filter);
854        });
855        selectListCategories.val(categoryFromUrl || 'all');
856    }
857
858    function getUniqueCategories(data) {
859        const categorySet = new Set();
860        data.forEach(item => {
861            let categories = [];
862            try {
863                categories = JSON.parse(item.categories);
864            } catch {
865                categories = ["News"];
866            }
867            categories.forEach(cat => categorySet.add(cat));
868        });
869        return Array.from(categorySet);
870    }
871
872    function filterAndRenderNews(updateURL = false, customPage = null) {
873        let category = selectedCategory;
874        let fromDate = $('#dateFrom').val();
875        let toDate = $('#dateTo').val();
876        let archiveYear = $('#archiveYears').val();
877
878        const params = new URLSearchParams(window.location.search);
879
880        if (updateURL) {
881            if (category !== 'all') params.set('cat', category);
882            else params.delete('cat');
883            if (fromDate) params.set('from', fromDate);
884            else params.delete('from');
885            if (toDate) params.set('to', toDate);
886            else params.delete('to');
887            if (archiveYear) params.set('year', archiveYear);
888            else params.delete('year');
889            if (customPage) params.set('page', customPage);
890            const newUrl = `${window.location.pathname}?${params.toString()}`;
891            history.pushState(null, '', newUrl);
892        }
893
894        const page = customPage || getQueryPage();
895        currentIndex = (page - 1) * itemsPerPage;
896
897        filteredNews = newsData.filter(item => {
898            let categories = [];
899            try {
900                categories = JSON.parse(item.categories);
901            } catch {
902                categories = ["News"];
903            }
904            const date = new Date(item.published_at);
905            const matchCategory = category === 'all' || categories.includes(category);
906            const matchFrom = !fromDate || new Date(fromDate) <= date;
907            const matchTo = !toDate || new Date(toDate) >= date;
908            const matchYear = !archiveYear || date.getFullYear().toString() === archiveYear;
909            return matchCategory && matchFrom && matchTo && matchYear;
910        });
911
912        const append = false;
913        renderNewsItems(filteredNews, currentIndex, itemsPerPage, append);
914
915        if (jNewsPaginationType === 'pages') {
916            renderPagination(filteredNews.length, itemsPerPage, page);
917        }
918    }
919
920    function renderNewsItems(data, start, count, append = false) {
921        const container = $('#news-container');
922        if (!append) container.empty();
923
924        for (let i = start; i < start + count && i < data.length; i++) {
925            const item = data[i];
926            let categories = [];
927            try {
928                categories = JSON.parse(item.categories);
929            } catch {
930                categories = ["News"];
931            }
932
933            const categoryHtml = categories.map(cat => `<span class="category">${cat}</span>`).join('');
934            const imageHtml = item.image && item.image.trim() !== '' ?
935                `<img alt="${item.title}" src="${item.image}" class="archive-item-image">` :
936                `<div class="no-image-placeholder">No Image</div>`;
937
938            const html = `
939      <div class="col-md-4 mb-3">
940        <div class="card archive-item">
941          ${imageHtml}
942          <div class="card-body archive-item-body">
943            <a href="${item.slug}" class="">
944              <h3 class="card-title archive-item-title">${item.title}</h3>
945            </a>
946            <p class="archive-item-snippet">${item.snippet || ''}</p>
947            <a href="${item.slug}" class="btn btn-link mt-2 archive-item-button">Read more</a>
948          </div>
949        </div>
950      </div>
951    `;
952            container.append(html);
953        }
954
955        currentIndex += count;
956
957        if (jNewsPaginationType === 'infinite') {
958            $('.view-more-button').toggle(currentIndex < data.length);
959        }
960    }
961
962    function renderPagination(totalItems, perPage, currentPage) {
963        const totalPages = Math.ceil(totalItems / perPage);
964        const container = $('#pagination');
965        container.empty();
966
967        if (totalPages <= 1) {
968            container.hide();
969            return;
970        }
971
972        container.show();
973
974        const ul = $('<ul class="pagination"></ul>');
975
976        // Previous button
977        const prevDisabled = currentPage === 1 ? 'disabled' : '';
978        ul.append(`
979    <li class="page-item ${prevDisabled}">
980      <a href="javascript:void(0)" class="page-link" data-page="${currentPage - 1}">«</a>
981    </li>
982  `);
983
984        // Calculate page range to show
985        const pageButtons = [];
986        if (totalPages <= 5) {
987            for (let i = 1; i <= totalPages; i++) {
988                pageButtons.push(i);
989            }
990        } else {
991            if (currentPage <= 3) {
992                pageButtons.push(1, 2, 3, 4, '...', totalPages);
993            } else if (currentPage >= totalPages - 2) {
994                pageButtons.push(1, '...', totalPages - 3, totalPages - 2, totalPages - 1, totalPages);
995            } else {
996                pageButtons.push(1, '...', currentPage - 1, currentPage, currentPage + 1, '...', totalPages);
997            }
998        }
999
1000        for (let btn of pageButtons) {
1001            if (btn === '...') {
1002                ul.append(`<li class="page-item disabled"><span class="page-link">...</span></li>`);
1003            } else {
1004                const activeClass = btn === currentPage ? 'active' : '';
1005                ul.append(`
1006        <li class="page-item ${activeClass}">
1007          <a href="javascript:void(0)" class="page-link" data-page="${btn}">${btn}</a>
1008        </li>
1009      `);
1010            }
1011        }
1012
1013        // Next button
1014        const nextDisabled = currentPage === totalPages ? 'disabled' : '';
1015        ul.append(`
1016    <li class="page-item ${nextDisabled}">
1017      <a href="javascript:void(0)" class="page-link" data-page="${currentPage + 1}">»</a>
1018    </li>
1019  `);
1020
1021        container.append(ul);
1022    }
1023
1024
1025    function fetchNewsItems() {
1026        $('#loader').show();
1027
1028        fetch(jClientUrl + "/json/search/search.json")
1029            .then(response => response.json())
1030            .then(data => {
1031                newsData = data
1032                    .filter(item => item.type === "NewsNotice")
1033                    .sort((a, b) => new Date(b.published_at) - new Date(a.published_at));
1034                const uniqueCategories = getUniqueCategories(newsData);
1035                renderCategoryFilters(uniqueCategories);
1036
1037                selectedCategory = getQueryParam('cat') || 'all';
1038                $('#dateFrom').val(getQueryParam('from') || '');
1039                $('#dateTo').val(getQueryParam('to') || '');
1040                $('#archiveYears').val(getQueryParam('year') || '');
1041
1042                filterAndRenderNews(false);
1043            })
1044            .catch(error => {
1045                console.error("Error fetching data:", error);
1046            })
1047            .finally(() => {
1048                $('#loader').hide();
1049            });
1050    }
1051
1052    $(document).ready(function() {
1053
1054        // If JSON is enabled for News Archive Page
1055        if (jNewsJSON == '1') {
1056            if (jNewsPaginationType === "infinite") {
1057                $('#pagination').hide();
1058                $('.view-more-button').show();
1059            } else {
1060                $('#pagination').show();
1061                $('.view-more-button').hide();
1062            }
1063
1064
1065
1066            fetchNewsItems();
1067
1068            // Handle view more button click
1069            $('.view-more-button').on('click', function() {
1070                const button = $(this);
1071                const icon = button.find('i');
1072                const text = button.find('.button-text');
1073
1074                icon.addClass('fa-spin-custom');
1075                text.text('Loading...');
1076
1077                setTimeout(() => {
1078                    renderNewsItems(filteredNews, currentIndex, itemsPerPage, true); // APPEND
1079                    icon.removeClass('fa-spin-custom');
1080                    text.text('View More');
1081                }, 300);
1082            });
1083
1084            // Handle category filter click
1085            $(document).on('click', '.category-filter', function() {
1086                const category = $(this).data('category');
1087                applyCategoryFilter(category, true);
1088                filterAndRenderNews(false, 1);
1089            });
1090
1091            // Handle category filter select list
1092            $(document).on('change', '.categories-select-list', function() {
1093                const category = $(this).val();
1094                applyCategoryFilter(category, true);
1095                filterAndRenderNews(false, 1);
1096            });
1097
1098            // Handle date range and archive year changes
1099            $('#dateFrom, #dateTo, #archiveYears').on('change', function() {
1100                filterAndRenderNews(true, 1);
1101            });
1102
1103            // Handle pagination click
1104            $(document).on('click', '.page-link', function() {
1105                const page = $(this).data('page');
1106                filterAndRenderNews(true, page);
1107            });
1108
1109        } else {
1110            $('.view-more-button').hide();
1111            $('.filters-section').hide();
1112        }
1113    });
1114</script>
1114
1115
1116
1117    <footer id="footerDefault" class="footer w-100" role="contentinfo">
1118  <div class="footer-top-line"></div>
1119  <div class="container py-5">
1120    <div class="row">
1121      <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 p-3">
1122        <img src="https://storage.googleapis.com/juniper-media-library/521/2026/04/Wautoma.png" width="70%" height="" alt="Site Logo" />
1123        <div>
1124          
1125        </div>
1126      </div>
1127      <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 p-3">
1128        <h2 class="footer-default-heading">Contact Information</h2>
1129        <div>
1130          <p><strong>Mailing Address: <br /></strong>PO BOX 428<br />Wautoma, Wisconsin 54982</p>
1131<p><strong>Address:</strong><br />210 East Main Street<br />Wautoma, Wisconsin 54982</p>
1132<p><strong>Phone:&nbsp;</strong>(920) 787-4044</p>
1133<p><strong>Fax:&nbsp;</strong>(920) 787-4505</p>
1134<p><strong>Email:&nbsp; </strong><a href="mailto: [email protected]" target="_blank" rel="noopener">[email protected]</a></p>
1135        </div>
1136      </div>
1137      <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 p-3">
1138        <h2 class="footer-default-heading">Police Department & Municipal Court</h2>
1139        <div>
1140          <p><strong>Mailing Address:</strong><br />PO Box 483<br />Wautoma, Wisconsin 54982</p>
1141<p><strong>Email: </strong><a href="mailto: [email protected]" target="_blank" rel="noopener">[email protected]</a></p>
1142<p><strong>Phone: </strong>787-4044 ext. 209<br />Dispatch/Non-Emergency<br />(920) 787-3321</p>
1143        </div>
1144      </div>
1145      <div class="col-lg-3 col-md-3 col-sm-12 col-xs-12 p-3">
1146        <h2 class="footer-default-heading">Office Hours</h2>
1147        <div>
1148          <p>Monday - Friday<br />8:00 AM&ndash;4:30 PM</p>
1149<p><a href="https://www.facebook.com/wautoma" target="_blank" rel="noopener">City Facebook</a></p>
1150<p><a href="https://www.facebook.com/wautomapolice" target="_blank" rel="noopener">Wautoma Police Facebook</a></p>
1151        </div>
1152      </div>
1153    </div>
1154    <div class="d-flex justify-content-center mt-3 bottom-footer" role="contentinfo" aria-label="Copyright and legal information">
1155      © 2026 Designed &amp; Hosted by <a href="https://www.townweb.com/" class="mx-1" target="_blank" rel="noopener noreferrer" aria-label="Town Web (opens in new tab)">Town Web</a> | <a href="/accessibility" class="mx-1" aria-label="View accessibility statement">Accessibility</a> | <a href="/privacy-policy" class="ms-1" aria-label="View privacy policy">Privacy Policy</a>
1156    </div>
1157  </div>
1158</footer>
1159<style>
1160  
1161  @media (max-width: 767.99px) {
1162      
1163  }
1164</style>
1165
1166
1167    
1167<script src="/theme.js?v=e811661f"></script>
1167<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"></script>
vendor: 1 bytes, line 1167
1167
1168<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" integrity="sha512-bPs7Ae6pVvhOSiIcyUClR7/q2OAsRiovw4vAkX+zJbw3ShAeeqezq50RIIcIURq7Oa20rW2n2q+fyXBNcU9lrw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 1168
1168
1169<script src="https://cdn.jsdelivr.net/npm/[email protected]/jquery.marquee.min.js" type="text/javascript"></script>
vendor: 1 bytes, line 1169
1169
1170<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.mask/0.9.0/jquery.mask.min.js" integrity="sha512-oJCa6FS2+zO3EitUSj+xeiEN9UTr+AjqlBZO58OPadb2RfqwxHpjTU8ckIC8F4nKvom7iru2s8Jwdo+Z8zm0Vg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
vendor: 1 bytes, line 1170
1170
1171<script src="https://cdnjs.cloudflare.com/ajax/libs/lightbox2/2.11.4/js/lightbox.min.js" integrity="sha512-Ixzuzfxv1EqafeQlTCufWfaC6ful6WFqIz4G+dWvK0beHw0NVJwvCKSgafpy5gwNqKmgUfIBraVwkKI+Cz0SEQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
1171
1172</body>
1173
1174</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.