1<!doctype html> 2<html class="diks-no-js diks-site--karkkilalainen diks-user--is-not-logged-in diks-user--is-not-subscriber diks-user--is-not-company-subscriber diks-site--layout-master" lang="fi" prefix="og: http://ogp.me/ns#"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>Etusivu | Karkkilalainen</title> 7 <link id="diks-stylesheet" rel="stylesheet" href="https://a.karkkilalainen.fi/styles/2efe7af9/styles/diks-news.css"> 8 <link rel="dns-prefetch" href="https://cdn.gravito.net"> 9 <link rel="dns-prefetch" href="https://cdn.gravito.network"> 10 <link rel="dns-prefetch" href="https://handshake.gravito.network"> 11
11<script> 12 13 const checkUserPreferenceEnabled = 1; 14 const darkmodeStylesheet = "https://a.karkkilalainen.fi/styles/2efe7af9/styles/diks-news-darkmode.css"; 15 const defaultStylesheet = "https://a.karkkilalainen.fi/styles/2efe7af9/styles/diks-news.css"; 16 const savedTheme = localStorage.getItem('theme'); 17 const stylesheet = document.getElementById("diks-stylesheet"); 18 19 // Check local storage for saved theme 20 if ( savedTheme == 'darkmode' ) { 21 stylesheet.href = darkmodeStylesheet; 22 document.documentElement.classList.add('diks-theme--darkmode'); 23 } 24 // Check user's theme preference through an OS setting or a user agent setting 25 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 26 stylesheet.href = darkmodeStylesheet; 27 document.documentElement.classList.add('diks-theme--darkmode'); 28 } 29 else { 30 document.documentElement.classList.add('diks-theme--default'); 31 } 32 33 34 // Darkmode toggle switch 35 document.addEventListener('DOMContentLoaded', function () { 36 const darkmodeButton = document.getElementById("diks-darkmode-toggler"); 37 38 if (darkmodeButton) { 39 // Set darkmode button to checked if darkmode is already on 40 // Check local storage for saved theme 41 if (savedTheme == 'darkmode' ) { 42 darkmodeButton.checked = true; 43 } 44 // Check user's theme preference through an OS setting or a user agent setting 45 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 46 darkmodeButton.checked = true; 47 } 48 49 // Change theme based on darkmode button checked/unchecked 50 darkmodeButton.addEventListener("click", function() { 51 // Swap out the URL for the different stylesheets 52 if ( stylesheet.getAttribute("href") == defaultStylesheet ) { 53 stylesheet.href = darkmodeStylesheet; 54 document.documentElement.classList.remove('diks-theme--default'); 55 document.documentElement.classList.add('diks-theme--darkmode'); 56 // Save theme to local storage 57 window.localStorage.setItem('theme', 'darkmode'); 58 } else { 59 stylesheet.href = defaultStylesheet; 60 document.documentElement.classList.remove('diks-theme--darkmode'); 61 document.documentElement.classList.add('diks-theme--default'); 62 // Save theme to local storage 63 window.localStorage.setItem('theme', 'default'); 64 } 65 // Dispatch event ThemeChanged when theme inside Local Storage changes 66 window.dispatchEvent(new Event("ThemeChanged")); 67 }); 68 } 69 }, false); 70 71 </script>
71 72 73 <link rel="preload" href="/gravito-cmp.js" as="script"> 74 <link rel="preload" href="https://cdn.gravito.net/sdk/v6/latest/sdk.js" as="script"><link rel="preload" href="https://a.karkkilalainen.fi/styles/2efe7af9/js/google/googleTagScript.min.js" as="script"> 75
75<script> 76 window.JankkoSSOConfig = { 77 accountOrigin: "KARK" 78 }; 79 </script>
79 80 81 82
82<script id="jankko-sso-script" src="https://sso.karkkilalainen.fi/assets/jankko-sso-client.modern.min.js"></script>
82 83 84 85 86 87 88
88<script> 89 // Hyphenopoly library initialization. The library will add soft-hyphen characters into the content if the 90 // browser doesn't support CSS hyphenation. For debugging on macOS Chrome: require: { 'fi': 'FORCEHYPHENOPOLY' } 91 const Hyphenopoly = { 92 require: { 'fi': 'yhdyssanahirviö' }, 93 setup: { 94 defaultLanguage: "fi", 95 selectors: { '.diks-card__title': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-article__headline': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-parallax-content .diks-article-box .diks-sub-headline': { minWordLength: 11, leftmin: 4, rightmin: 4 } } 96 } 97 } 98 console.log('Hyphenopoly settings:', Hyphenopoly.setup) 99 100 // Helper function for hyphenating content that was added after pageload. We must query a nodelist and iterate 101 // each node because the library can't handle a nodelist. 102 // https://mnater.github.io/Hyphenopoly/Hyphenators.html 103 // https://github.com/mnater/Hyphenopoly/issues/92#issuecomment-597728300 104 const diksHyphenateContent = (containerSelector) => { 105 if (!Hyphenopoly.hyphenators) { 106 return 107 } 108 Hyphenopoly.hyphenators["HTML"].then((hyphenator) => { 109 for (const itemSelector in Hyphenopoly.setup.selectors) { 110 const containerNode = document.querySelector(containerSelector) 111 const itemNodeList = containerNode.querySelectorAll(itemSelector) 112 itemNodeList.forEach((itemNode) => { hyphenator(itemNode, itemSelector) }) 113 } 114 }) 115 } 116 </script>
116 117
117<script src="https://a.karkkilalainen.fi/styles/2efe7af9/includes/hyphenopoly/Hyphenopoly_Loader.js"></script>
117 118
118<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
118 119 <link rel="icon" href="/favicon.png" /><link rel="apple-touch-icon" href="/icon-512.png"> 120 <link rel="apple-touch-icon" sizes="512x512" href="/icon-512.png"> 121 <link rel="apple-touch-icon" sizes="256x256" href="/icon-256.png"><link rel="apple-touch-startup-image" href="/iphone5_splash.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)"> 122 <link rel="apple-touch-startup-image" href="/iphone6_splash.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)"> 123 <link rel="apple-touch-startup-image" href="/iphoneplus_splash.png" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)"> 124 <link rel="apple-touch-startup-image" href="/iphonex_splash.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)"> 125 <link rel="apple-touch-startup-image" href="/iphonexr_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)"> 126 <link rel="apple-touch-startup-image" href="/iphonexsmax_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)"> 127 <link rel="apple-touch-startup-image" href="/ipad_splash.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)"> 128 <link rel="apple-touch-startup-image" href="/ipadpro1_splash.png" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)"> 129 <link rel="apple-touch-startup-image" href="/ipadpro3_splash.png" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)"> 130 <link rel="apple-touch-startup-image" href="/ipadpro2_splash.png" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)"><link rel="alternate" type="application/rss+xml" title="Karkkilalainen" href="https://www.karkkilalainen.fi/feed/rss"><meta name="robots" content="max-image-preview:large"><meta name="facebook-domain-verification" content="a6931m36dmfo4qv2fx11uajdto19le">
130<script> 131 var pageData = {}; 132 133 pageData.section = { 134 'name': 'Etusivu', 135 'uname': 'ece_frontpage', 136 'url': 'https\u003A\/\/www.karkkilalainen.fi\/', 137 'topics': [], 138 'marketingCategories': [], 139 'sportsCategories': [], 140 'advertisers': []} 141 pageData.publication = { 142 'name': 'karkkilalainen', 143 'url': 'https\u003A\/\/www.karkkilalainen.fi\/', 144 'engage': 'KARK', 145 'paywallEnabled': false, 146 'registrationWallEnabled': true, 147 'env':'prod' 148 } 149 pageData.user = {} 150 pageData.companyUser = {} 151 152 function isPwa() { 153 // window.navigator.standalone = iOS 154 // window.matchMedia('(display-mode: standalone)').matches = Android/universal 155 return (window.navigator.standalone) || 156 (["fullscreen", "standalone", "minimal-ui"].some( 157 function(displayMode) { return window.matchMedia('(display-mode: ' + displayMode + ')') 158 .matches })); 159 } 160 161 pageData.general = { 162 'browseMode': (isPwa() ? 'pwa' : 'browser') 163 } 164</script>
164 165 <meta property="og:site_name" content="Karkkilalainen"> 166 <meta property="og:locale" content="fi_FI"><meta name="description" content="Uusimmat uutiset ja kiinnostavimmat sisällöt." /> 167<meta property="og:title" content="Etusivu | Karkkilalainen"/> 168<meta property="og:description" content="Uusimmat uutiset ja kiinnostavimmat sisällöt."/> 169<meta property="og:url" content="https://www.karkkilalainen.fi/" /> 170<meta property="og:type" content="webpage"/><meta property="og:image" content="https://a.karkkilalainen.fi/styles/2efe7af9/images/default/og-image-karkkilalainen.jpg" /> 171 <meta property="og:image:width" content="1200" /> 172 <meta property="og:image:height" content="630" /><meta name="cXenseParse:pageclass" content="frontpage"/> 173 174 <link rel="manifest" href="/manifest.webmanifest"> 175 <style>@media (max-width: 600px) { .gravitoCMP-footer { margin-top: 1.5em; } }</style> 176
176<script type="text/javascript">window.cX = window.cX || {};// Async load of cx.js 177 (function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async'; 178 e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js'; 179 t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script'); 180 </script>
180 181 182
182<script src='https://securepubads.g.doubleclick.net/tag/js/gpt.js' crossorigin="anonymous" async></script>
182<script async src="https://ksml-cdn.relevant-digital.com/static/tags/63c7d8331b1a8b21b765f12d.js"></script>
182<script src="https://a.karkkilalainen.fi/styles/2efe7af9/js/google/googleTagScript.min.js"></script>
182 183
183<script> 184 const GAM_params = { 185 account: '21684433086' || null, 186 site: 'karkkilantienoo' || null, 187 adsSetToRenderFromPageLevel: ["paraati1","jattiboksi1","jattiboksi2","jattiboksi3","jattiboksi4","jattiboksi5","boksi1","boksi2","boksi3","boksi4","mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","mobiili7","mobiili8","mobiili9","mobiili10","interstitiaali","topscroll_skin","topscroll_mob"], 188 enableHeaderBiddingManager: true, 189 headerBiddingManagerConfigId: '63c7d90d3cbf89d79065f13c' || null, 190 enableTCF: true, 191 enableSegmentTargeting: true, 192 enableBCSegmentTargeting: false, 193 segmentTargetingTimeout: 200, 194 pianoSegmentTargetingPersistedQueryId: '110c4c9055b4a1f72dc557ca3983bd140a676a7c' || null, 195 enablePianoSegmentTargeting: true, 196 pianoScriptEnabled: true, 197 enablePersonalizationTargeting: true, 198 enableOnBeforeAuctionSetup: true, 199 pageType: 'section', 200 isPaywallArticle: false, 201 isRegistrationWallArticle: false, 202 mw: 300, 203 tw: 750, 204 dw: 1024, 205 inContentAdTextTop: 'Mainos - sisältö jatkuu alla' || 'Mainos - sisältö jatkuu alla', 206 inContentAdTextBottom: 'Mainos päättyy' || 'Mainos päättyy', 207 collapseEmptyDivs: true, 208 disableInitialLoad: true, 209 enableSRA: true, 210 enableLazyLoad: true, 211 fetchMarginPercent: 200, 212 renderMarginPercent: 20, 213 mobileScaling: -1, 214 gamAdUnits: {"paraati1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}},"section_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}}},"jattiboksi1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":5,"position_inside_latest":10,"position_inside_most_read":10}}
214,"jattiboksi2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]]},"position_inside_article":6},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"position_inside_section":12,"position_inside_latest":20,"position_inside_front_page_large":7,"position_inside_front_page":9}},"jattiboksi3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":19,"position_inside_latest":30,"position_inside_front_page":15}}
214,"jattiboksi4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":25,"position_inside_latest":40,"position_inside_front_page":19}},"jattiboksi5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":31,"position_inside_front_page":25}}
214,"jattiboksi6":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]}}},"boksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[3
21400,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"mobiili1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":1,"position_inside_latest":10,"position_inside_most_read":5}},"mobiili2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":6,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_644":[[3
21400,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":5,"position_inside_latest":20,"position_inside_most_read":10}},"mobiili3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":12,"position_inside_latest":30,"position_inside_front_page_large":7,"position_inside_front_page":6}},"mobiili4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":19,"position_inside_latest":40}},"mobiili5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[3
21400,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":25,"position_inside_front_page":6}},"mobiili6":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":20},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":31,"position_inside_front_page":9}},"mobiili7":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":15}},"mobiili8":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
21400,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":19}},"mobiili9":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":25}},"mobiili10":{"type":"normal","section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"interstitiaali":{"type":"outofpage","article_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}},"section_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}}},"topscroll_skin":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}}}
214,"topscroll_mob":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 215 gamNativeAdPageAdUnits: {"natiiviboksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[3
21500,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiivimobiili1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
21500,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 216 gamNativeAdPageSite: 'natiivikoonti' || 'natiivikoonti', 217 adSlotPrefix: 'gam-ad-' || 'gam-ad-', 218 isFrontPage: true, 219 isNarrowLayoutFromPageLevel: true, 220 isComicArticle: false, 221 isPreview: false, 222 isNativeAdPage: false, 223 previewAdUnits: ["mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","mobiili7","mobiili8","mobiili9","mobiili10"], 224 skipLinksEnabled: true, 225 appendMarketingCategoriesToTopics: true, 226 enableLocationPrompt: false 227 } 228 InitializeGoogleScript(GAM_params) 229 </script>
229 230
230<script type='text/javascript'> 231 (function() { 232 /** CONFIGURATION START **/ 233 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 234 _sf_async_config.uid = 60754; 235 _sf_async_config.domain = location.host.replace("www.",""); 236 _sf_async_config.flickerControl = false; 237 _sf_async_config.useCanonical = true; 238 _sf_async_config.useCanonicalDomain = true; 239 /** CONFIGURATION END **/ 240 })(); 241 </script>
241<script async src="https://static.chartbeat.com/js/chartbeat_mab.js"></script>
241<script> 242 function configureChartbeat(userType) { 243 /** CONFIGURATION START **/ 244 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 245 _sf_async_config.sections = pageData && pageData.section ? pageData.section.name : ''; 246 _sf_async_config.authors = pageData && pageData.article && Array.isArray(pageData.article.authors) ? pageData.article.authors.toString() : ''; 247 248 if (userType) { 249 var _cbq = window._cbq = (window._cbq || []); 250 _cbq.push(['_acct', userType]); 251 } 252 /** CONFIGURATION END **/ 253 function loadChartbeat() { 254 var e = document.createElement('script'); 255 var n = document.getElementsByTagName('script')[0]; 256 e.type = 'text/javascript'; 257 e.async = true; 258 e.src = 'https://static.chartbeat.com/js/chartbeat.js'; 259 n.parentNode.insertBefore(e, n); 260 } 261 loadChartbeat(); 262 }; 263 264 if (typeof JankkoSSOClient !== 'undefined') { 265 JankkoSSOClient.getSession().then(function(data) { 266 if (data && data.user && data.user.id) { 267 var userType = Array.isArray(data.permissions) && data.permissions.includes("paywall") ? 'paid' : 'lgdin'; 268 269 configureChartbeat(userType); 270 } else { 271 configureChartbeat('anon'); 272 } 273 }).catch(function(error) { 274 configureChartbeat('anon'); 275 }); 276 } else { 277 configureChartbeat('anon'); 278 } 279 </script>
279 280
280<script> 281 const gtmContainerId = 'GTM-KTJNB7R'; 282 const sendDatalayerPush = Boolean(1); 283 const context = 'sec'; 284 285 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 286 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 287 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 288 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 289 })(window,document,'script','dataLayer',gtmContainerId); 290 291 if (sendDatalayerPush) { 292 window.dataLayer.push({'event':'pageDataPush','pageData': window.pageData}); 293 } 294 295 (async function () { 296 const paywallEnabled = window?.pageData?.publication?.paywallEnabled ?? true; 297 const registrationWallEnabled = window?.pageData?.publication?.registrationWallEnabled ?? true; 298 299 const user = {}; 300 const companyUser = {}; 301 302 let articleState; 303 let articlePaywall = 'free'; // free is always the safer fallback 304 305 if (context === 'art') { 306 if (window?.pageData?.article?.effectivePaywall) { 307 articlePaywall = window.pageData.article.effectivePaywall; 308 } else if (window?.pageData?.article?.paywall){ 309 articlePaywall = window.pageData.article.paywall; 310 } 311 312 if ((articlePaywall === 'free' || !paywallEnabled) || (articlePaywall === "registered" && !registrationWallEnabled)) { 313 articleState = "full"; 314 } 315 else { 316 articleState = 'preview'; 317 } 318 } 319 320 function getCookie(name) { 321 name = name + '='; 322 const decodedCookie = decodeURIComponent(document.cookie); 323 const cookies = decodedCookie.split(';'); 324 for (let i = 0; i < cookies.length; i++) { 325 const cookie = cookies[i].trim(); 326 if (cookie.indexOf(name) === 0) { 327 return cookie.substring(name.length, cookie.length); 328 } 329 } 330 } 331 332 function pushDataLayerEvent() { 333 let segmentsCookie = getCookie('jankkosegments'); 334 335 if (segmentsCookie) { 336 let segmentsData = JSON.parse(segmentsCookie); 337 let segments = segmentsData.segments; 338 339 if (segments && typeof segments === 'object') { 340 user.segments = segments; 341 } 342 } 343 const pageData = { 344 'user': user,
345 'companyUser': companyUser 346 }; 347 if (context === 'art') { 348 pageData.article = { 'state': articleState }; 349 } 350 if (sendDatalayerPush) { 351 window.dataLayer.push({'event': 'userDataPush', 'pageData': pageData }); 352 } 353 } 354 355 async function modifyDatalayerData() { 356 const sessionData = await JankkoSSOClient.getSession(); 357 if (!sessionData) { 358 return; 359 } 360 361 user.id = sessionData?.personal?.personal_user_id; 362 user.products = sessionData?.personal?.personal_active_products; 363 user.permissions = sessionData?.personal?.personal_permissions; 364 365 companyUser.id = sessionData?.company?.company_user_id ?? null; 366 companyUser.products = sessionData?.company?.company_active_products ?? null; 367 companyUser.permissions = sessionData?.company?.company_permissions ?? null; 368 369 const permissions = sessionData?.permissions ?? []; 370 if (context === 'art') { 371 var userIsLoggedIn = false;if ((articlePaywall != "free" && permissions.includes("paywall") && articlePaywall != "registered") || (userIsLoggedIn === true && articlePaywall === "registered")) { 372 articleState = "full"; 373 } 374 } 375 } 376 377 try { 378 await modifyDatalayerData(); 379 } 380 catch (error) { 381 console.warn(error); 382 } 383 384 pushDataLayerEvent(); 385 }()); 386 387 </script>
387 388 389 </head> 390 <body class="diks-body diks-body--page-type-front-page"> 391 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 391-392
391 392 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
392GTM-KTJNB7R
vendor: 95 bytes, lines 392-394
392" 393 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 394
394<!-- End Google Tag Manager (noscript) --> 395
395<script src='/gravito-cmp.js'></script>
395 396 397 <div class="diks-out-of-page-display-ad-container"><div class="diks-display-ad rs_skip" aria-hidden="true"> 398 <div class="diks-display-ad__unit" id="gam-ad-interstitiaali" style="width:0;height:0;margin:0;padding:0;"> 399
399<script>googletag.cmd.push(function() { googletag.display('gam-ad-interstitiaali'); });</script>
399 400 </div> 401 </div></div> 402 403 404 <header id="main-header" class="diks-header diks-header diks-header--is-fixed"> 405 <div class="diks-skip-link-navigation diks-skip-link-navigation--top"> 406 <ul class="diks-navigation diks-navigation--skip-links"> 407 <li class="diks-navigation__item"> 408 <a class="diks-button diks-button--primary diks-a11y__screen-reader diks-a11y__screen-reader--focusable" href="#sisalto" >Siirry suoraan sisältöön</a> 409 </li> 410 </ul> 411 </div> 412 413 <div class="diks-header-wrapper"> 414 <div class="diks-container diks-container--header"> 415 <div class="diks-header-container"><div class="diks-header__navigation-container diks-header__navigation-container--left"> 416 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link js-diks-toggler diks-dropdown-toggler diks-dropdown-toggler--main" id="diks-dropdown-toggle" data-toggle="diks-dropdown-navigation" aria-expanded="false" aria-controls="diks-dropdown-navigation" aria-label="Valikko"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 417 <path fill-rule="evenodd" d="M22 6H2V4H22V6ZM22 13H2V11H22V13ZM22 20H2V18H22V20Z" clip-rule="evenodd"/> 418</svg> 419</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 420 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218 18.364L10.5858 12Z" clip-rule="evenodd"/> 421</svg> 422</span></button> 423 424 <div class="diks-dropdown-navigation" id="diks-dropdown-navigation"> 425 <button id="diks-close-dropdown-main-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button><div class="diks-dropdown-navigation__sign-container"> 426 <img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" class="diks-logo diks-dropdown-navigation__sign" alt="Keskisuomalainen Oyj"> 427 </div><form id="dropdown-navigation-search" name="dropdownnavigationsearch" class="diks-form diks-form--fluid" action="/haku/" method="get"> 428 <div class="diks-form__field-wrapper diks-form__field-wrapper--padding-right diks-form__field-wrapper--required"><input class="diks-form__field" type="search" name="q" id="dropdown-navigation-searchSearch1" aria-label="Haku" placeholder="Hae sivustolta" required value=""></div> 429 430 <div class="diks-form__field-wrapper diks-form__field-wrapper--submit-button-icon-only"> 431 <button class="diks-form__submit" type="submit" id="dropdown-navigation-searchSubmitbutton2"><span class="diks-icon diks-icon--color-primary" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 432 <path fill-rule="evenodd" d="M9.5 4C6.46243 4 4 6.46243 4 9.5C4 12.5376 6.46243 15 9.5 15C12.5376 15 15 12.5376 15 9.5C15 6.46243 12.5376 4 9.5 4ZM2 9.5C2 5.35786 5.35786 2 9.5 2C13.6421 2 17 5.35786 17 9.5C17 11.2106 16.4273 12.7874 15.4632 14.0493L19.7782 18.3642L18.3639 19.7784L14.049 15.4634C12.7872 16.4274 11.2105 17 9.5 17C5.35786 17 2 13.6421 2 9.5Z" clip-rule="evenodd"/> 433</svg> 434</span>Hae 435 </button> 436 </div> 437 </form> <nav class="diks-navigation-wrapper diks-navigation-wrapper--border-bottom diks-navigation-wrapper--border-top" ><ul class="diks-navigation diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-highlights-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/asenna/">Sovellus</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/">Lehdet</a></li></ul> 438 </nav> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-bottom" ><ul class="diks-navigation diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-customer-upper-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lehti/karkkilalainen
438/"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 439 <path d="M17 8H22V17H19.1875V20.8125L14.1045 17H9V13.4307L4.4375 17.0811V13H2V3H17V8ZM17 13H11V15H14.7705L17.1875 16.8125V15H20V10H17V13ZM4 11H6.4375V12.918L8.5625 11.2188L8.83691 11H15V5H4V11Z"/> 440</svg> 441</span>Asiakaspalvelu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lehti/karkkilalainen/yhteystiedot/laheta-juttuvinkki/"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 442 <path fill-rule="evenodd" d="M7.38197 4H16.618L17.618 6H22V20H2V6H6.38197L7.38197 4ZM8.61803 6L7.61803 8H4V18H20V8H16.382L15.382 6H8.61803ZM12 11C10.8954 11 10 11.8954 10 13C10 14.1046 10.8954 15 12 15C13.1046 15 14 14.1046 14 13C14 11.8954 13.1046 11 12 11ZM8 13C8 10.7909 9.79086 9 12 9C14.2091 9 16 10.7909 16 13C16 15.2091 14.2091 17 12 17C9.79086 17 8 15.2091 8 13Z" clip-rule="evenodd"/> 443</svg> 444</span>Lähetä juttuvinkki</a></li></ul> 445 </nav> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--light" id="dropdown-section-nav"><li class="diks-navigation__item diks-navigation__item--active" aria-current="page"><a class="diks-navigation__link " href="/">Etusivu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/">Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/">Luetuimmat</a></li></ul> 446 </nav><!-- ESI start element "recommendedTopics" generated at 01-10-2026 17:53:02.436769 --><!-- ESI end element "recommendedTopics" --><!-- ESI start element "promotedAdvertisers" generated at 01-10-2026 17:53:30.811067 --><!-- ESI end element "promotedAdvertisers" --> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-top" ><h2 class="diks-navigation__title">Yhteystiedot</h2><ul class="diks-navigation diks-navigation--light diks-navigation--size-s" id="dropdown-customer-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://meks.fi/mainonta/alueet/etela-suomen-media/">Mediamyynti</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lehti/karkkilalainen/yhteystiedot/">Kaikki yhteystiedot</a></li></ul> 447 </nav><div class="diks-navigation-wrapper diks-navigation-wrapper--divider-top"><h2 class="diks-navigation__title">Ulkoasu</h2><label for="diks-darkmode-toggler" class="diks-form__switch"> 448 <span class="diks-form__switch-label"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 449 <path fill-rule="evenodd" d="M13.7547 1.76065L11.7581 3.75666C10.6708 4.8436 10 6.34252 10 8C10 11.3137 12.6863 14 16 14C17.6575 14 19.1564 13.3292 20.2433 12.2419L22.2394 10.2453L21.9451 13.0531C21.4182 18.0815 17.1674 22 12 22C6.47715 22 2 17.5229 2 12C2 6.83263 5.91855 2.58178 10.9469 2.05488L13.7547 1.76065ZM8.70749 4.70657C5.93176 5.9617 4 8.75566 4 12C4 16.4183 7.58172 20 12 20C15.2443 20 18.0383 18.0682 19.2934 15.2925C18.289 15.7468 17.1738 16 16 16C11.5817 16 8 12.4183 8 8C8 6.82623 8.25316 5.71105 8.70749 4.70657Z" clip-rule="evenodd"/> 450</svg> 451</span>Käytä tummaa tilaa</span> 452 <div class="diks-form__switch-wrapper"> 453 <input id="diks-darkmode-toggler" class="diks-form__switch-input" type="checkbox"> 454 <span class="diks-form__switch-slider"></span> 455 </div> 456 </label> 457 </div></div> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-hide-below-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 458 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 459</svg> 460</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 461 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 462</svg> 463</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 464 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 465</svg> 466</span>Lehdet</a></li></ul> 467 </nav></div><div class="diks-header__logo-container"><a class="diks-logo__link diks-header__logo-link diks-header__main-logo-link" href="/"><img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/karkkilalainen.svg" class="diks-logo diks-logo--default diks-header__logo diks-header__main-logo" alt="Karkkilalainen"><img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/karkkilalainen-white.svg" class="diks-logo diks-logo--darkmode diks-header__logo diks-header__main-logo" alt="Karkkilalainen"></a> 468 </div><div class="diks-header__navigation-container diks-header__navigation-container--right"><div class="diks-user-navigation-wrapper"> 469 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link diks-dropdown-toggler diks-dropdown-toggler--user" aria-expanded="false" id="diks-sso-user" data-diks-toggle="diks-user-navigation" data-diks-toggle-class="diks-user-navigation" aria-controls="diks-user-navigation"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 470 <path fill-rule="evenodd" d="M4 12a8 8 0 1 1 13.496 5.814c-1.216-1.593-3.262-2.602-5.491-2.602-2.231 0-4.28 1.011-5.495 2.607A7.978 7.978 0 0 1 4 12Zm4.04 6.953A7.963 7.963 0 0 0 12 20a7.964 7.964 0 0 0 3.966-1.05c-.83-1.087-2.254-1.84-3.961-1.84-1.71 0-3.135.754-3.965 1.843ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm.005 5.898c-1.247 0-2.305 1.049-2.305 2.4 0 1.353 1.058 2.402 2.305 2.402s2.305-1.05 2.305-2.401c0-1.352-1.058-2.4-2.305-2.4Zm-4.203 2.4C7.802 7.952 9.658 6 12.005 6c2.347 0 4.203 1.95 4.203 4.299 0 2.348-1.856 4.299-4.203 4.299-2.347 0-4.203-1.951-4.203-4.3Z" clip-rule="evenodd"/> 471</svg> 472</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 473 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218
47318.364L10.5858 12Z" clip-rule="evenodd"/> 474</svg> 475</span></button> 476 477 <div class="diks-navigation diks-sub-navigation diks-user-navigation" id="diks-user-navigation"> 478 <button id="diks-close-dropdown-user-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button> 479 <p id="diks-sso-username" class="diks-user-navigation__username diks-hide-from-company-subscribers"></p><p class="diks-user-navigation__username diks-show-for-company-subscribers">Yritystilaus tunnistettu</p><div class="diks-show-for-company-subscribers"><p>Voit käyttää palvelun kaikkia sisältöjä vapaasti. Jos haluat kommentoida, kirjaudu sisään henkilökohtaisella Mediatunnuksella.</p></div> <ul class="diks-navigation diks-navigation--size-m" id="diks-sso-links"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a></li></ul> 480 </div> 481</div> 482 </div> 483 </div> 484 </div> 485 </div><div class="diks-quicklinks-wrapper"> 486 <div class="diks-container diks-container--narrow-mobile"> 487 <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--centered diks-hide-above-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 488 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 489</svg> 490</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 491 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 492</svg> 493</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 494 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 495</svg> 496</span>Lehdet</a></li></ul> 497 </nav> 498 </div> 499 </div><div id="diks-dropdown-navigation-shade" class="diks-dropdown-navigation-shade"></div></header>
499<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
499 500
500<script> 501 // Fix forEach for IE 502 if (window.NodeList && !NodeList.prototype.forEach) { 503 NodeList.prototype.forEach = Array.prototype.forEach; 504 } 505 506 // Element.closest() needs a polyfill for older browsers. 507 // While we only need the closest() functionality for mobile browsers, 508 // we don't want the code to fail even on old desktop browsers. 509 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 510 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 511 if (!Element.prototype.matches) { 512 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 513 } 514 515 if (!Element.prototype.closest) { 516 Element.prototype.closest = function(s) { 517 var el = this; 518 519 do { 520 if (el.matches(s)) return el; 521 el = el.parentElement || el.parentNode; 522 } while (el !== null && el.nodeType === 1); 523 return null; 524 }; 525 } 526 527 (function () { 528 if (typeof JankkoSSOClient !== 'undefined') { 529 var stringToHTML = function (htmlString) { 530 var div = document.createElement('div'); 531 div.innerHTML = htmlString.trim(); 532 return div.firstChild; 533 }; 534 535 var showUserRelatedItems = function(personalData) { 536 var usernameElement = document.querySelector('#diks-sso-username'); 537 if (usernameElement) { 538 usernameElement.innerHTML = personalData.full_name; 539 } 540 541 var linksElement = document.querySelector('#diks-sso-links'); 542 if (linksElement) { 543 var myAccountLink = stringToHTML('<li class="diks-navigation__item"><a class="diks-navigation__link" href="'+JankkoSSOClient.serviceUrls.myAccount+'">Omat tiedot</a></li>'); 544 var logoutForm = stringToHTML('<li class="diks-navigation__item diks-navigation__item--logout"><form id="logout-form" action="'+JankkoSSOClient.serviceUrls.logout+'" method="post"><input class="diks-navigation__link" type="submit" value="Kirjaudu ulos"></form></li>'); 545 linksElement.insertBefore(myAccountLink, linksElement.childNodes[0]); 546 linksElement.appendChild(logoutForm); 547 } 548 549 var htmlElement = document.querySelector('.diks-user--is-not-logged-in'); // Class is set to main html element 550 if (htmlElement) { 551 htmlElement.classList.replace('diks-user--is-not-logged-in', 'diks-user--is-logged-in'); 552 } 553 } 554 555 var showMenuLinksForLoggedOutUser = function() { 556 const linksElement = document.querySelector('#diks-sso-links'); 557 if (!linksElement) { 558 return; 559 } 560 561 // Pidetään vain tietyt query-parametrit. Alunperin tässä poistettiin kaikki query-parametrit. 562 // @todo Selvitetään voisiko tässä sallia kaikki query-parametrit. 563 const currentUrlObject = new URL(window.location.href); 564 const returnUrlObject = new URL(`${currentUrlObject.origin}${currentUrlObject.pathname}`); 565 const allowedParams = ['limit-active-products']; 566 allowedParams.forEach(function(name) { 567 if (currentUrlObject.searchParams.get(name)) { 568 returnUrlObject.searchParams.set(name, currentUrlObject.searchParams.get(name)); 569 } 570 }); 571 572 const loginPageUrlObject = new URL(`${window.location.origin}/kirjaudu/`); 573 loginPageUrlObject.searchParams.set('returnUrl', returnUrlObject.toString()); 574 const loginLinkString = `<li class="diks-navigation__item"><a class="diks-navigation__link" href="${loginPageUrlObject.toString()}">Kirjaudu</a></li>`; 575 576 linksElement.insertBefore(stringToHTML(loginLinkString), linksElement.childNodes[0]); 577 } 578 579 var showCompanyUserRelatedItems = function(companyData) { 580 var htmlElement = document.querySelector('.diks-user--is-not-company-subscriber'); // Class is set to main html element 581 var permissions = companyData?.company_permissions || []; 582 if (htmlElement && permissions.length) { 583 htmlElement.classList.replace('diks-user--is-not-company-subscriber', 'diks-user--is-company-subscriber'); 584 } 585 } 586 587 document.addEventListener("DOMContentLoaded", async function() { 588 try { 589 const data = await JankkoSSOClient.getSession(); 590 if (data.company?.company_user_id) { 591 showCompanyUserRelatedItems(data.company); 592 }
593 if (data.personal?.personal_user_id) { 594 showUserRelatedItems(data.personal); 595 } else { 596 showMenuLinksForLoggedOutUser(); 597 } 598 } catch (error) { 599 showMenuLinksForLoggedOutUser(); 600 } 601 }); 602 } 603 }()); 604 605 606 ////////////////////////////////////////////////////////////////////////////////////////// 607 // NAVIGATIONS 608 ////////////////////////////////////////////////////////////////////////////////////////// 609 610 // Toggle icon inside a toggler 611 function toggleTogglerIcon(toggler) { 612 togglerIcons = toggler.querySelectorAll('.diks-icon'); 613 if ( togglerIcons.length > 1 ) { 614 for (var j= 0; j < togglerIcons.length; j++) { 615 togglerIcons[j].classList.toggle('diks-icon--hidden'); 616 } 617 } 618 } 619 620 // Function for closing all dropdown navigations 621 function closeAllDropdownNavigations() { 622 closeMainDropdownNavigation(); 623 closeUserDropdownNavigation(); 624 } 625 626 // Close main nav or user nav if hidden screen reader only close navigation button is clicked 627 let closeDropdownMainNav = document.getElementById('diks-close-dropdown-main-nav'); 628 let closeDropdownUserNav = document.getElementById('diks-close-dropdown-user-nav'); 629 if ( closeDropdownMainNav ) { 630 closeDropdownMainNav.addEventListener('click', function() { 631 closeMainDropdownNavigation(); 632 }); 633 } 634 if ( closeDropdownUserNav ) { 635 closeDropdownUserNav.addEventListener('click', function(e) { 636 e.stopPropagation(); 637 closeUserDropdownNavigation(); 638 }); 639 } 640 641 // Trap focus inside opened dropdown navigation 642 document.addEventListener('keydown', function(event) { 643 // Initialize variables 644 var ssoLinks = document.getElementById('diks-sso-links'); 645 var linksUserNav = ""; 646 var firstElUserNav = ""; 647 var lastElUserNav = ""; 648 var mainDropdownLastNavLinks = document.getElementById('dropdown-customer-nav'); // Last navigation element inside of main dropdown navigation 649 var linksMainDropdownNav = ""; 650 var firstElMainDropdownNav = "" 651 var lastElMainDropdownNav = ""; 652 653 // Set user nav variable values if SSO links exist 654 if (ssoLinks) { 655 linksUserNav = ssoLinks.querySelectorAll('.diks-navigation__link'); 656 firstElUserNav = document.getElementById('diks-close-dropdown-user-nav'); 657 lastElUserNav = linksUserNav[linksUserNav.length - 1]; 658 } 659 660 // Set main dropdown nav variable values if main dropdown last nav links exist 661 if (mainDropdownLastNavLinks) { 662 linksMainDropdownNav = mainDropdownLastNavLinks.querySelectorAll('.diks-navigation__link'); 663 firstElMainDropdownNav = document.getElementById('diks-close-dropdown-main-nav'); 664 lastElMainDropdownNav = linksMainDropdownNav[linksMainDropdownNav.length - 1]; 665 } 666 667 // If darkmode-toggler is found set it as the last element of main dropdown nav 668 if ( document.getElementById('diks-darkmode-toggler') ) { 669 lastElMainDropdownNav = document.getElementById('diks-darkmode-toggler'); 670 } 671 672 // Close all dropdown navigations & reposition fixed header when ESC key is pressed 673 if (event.key === "Escape" || event.key === "Esc") { 674 closeAllDropdownNavigations(); 675 } 676 // Trap focus inside user navigation and/or main dropdown navigation when they are open 677 if (event.keyCode === 9) { 678 if (event.shiftKey && (document.activeElement === firstElUserNav || document.activeElement === firstElMainDropdownNav)) { 679 event.preventDefault(); 680 if (document.activeElement === firstElUserNav) { 681 lastElUserNav.focus(); 682 } 683 else if ( document.activeElement === firstElMainDropdownNav ) { 684 lastElMainDropdownNav.focus(); 685 } 686 } 687 else if (!event.shiftKey && (document.activeElement === lastElUserNav || document.activeElement === lastElMainDropdownNav)) { 688 event.preventDefault(); 689 if (document.activeElement === lastElUserNav) { 690 firstElUserNav.focus(); 691 } 692 else if ( document.activeElement === lastElMainDropdownNav ) { 693 firstElMainDropdownNav.focus(); 694 } 695 } 696 } 697 }); 698 699 700 ////////////////////////////////////////////////////////////////////////////////////////// 701 // User navigation 702 ////////////////////////////////////////////////////////////////////////////////////////// 703 704 let userDropdownNavigation = document.getElementById('diks-user-navigation'); // user dropdown navigation 705 let userDropdownNavigationToggler = document.getElementById('diks-sso-user'); // user dropdown navigation toggler button (opens and closes user dropdown navigation) 706 let userDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside user dropdown navigation 707 708 // Close user dropdown navigation if hidden screen-reader-only close button is clicked 709 if ( userDropdownNavigationCloseButton ) { 710 userDropdownNavigationCloseButton.addEventListener('click', function() { 711 closeUserDropdownNavigation(); 712 }); 713 } 714 715 function closeUserDropdownNavigation() { 716 if (userDropdownNavigation) { 717 if (userDropdownNavigation.classList.contains('diks-user-navigation--is-open')) { 718 // Close user dropdown nav by removing --is-open class 719 userDropdownNavigation.classList.remove('diks-user-navigation--is-open'); 720 // Remove --is-open class from user dropdown navigation toggler 721 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 722 // Toggle icon 723 toggleTogglerIcon(userDropdownNavigationToggler); 724
725 // Set aria-expanded to false for user dropdown toggler 726 userDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 727 } 728 } 729 } 730 731 // User Navigation Dropdown 732 if (userDropdownNavigation) { 733 let userDropdownNavigationAriaControls = userDropdownNavigationToggler.getAttribute('data-diks-toggle'); // aria-controls value for user dropown navigation toggler 734 userDropdownNavigationToggler.setAttribute('aria-controls', userDropdownNavigationAriaControls); 735 userDropdownNavigationToggler.addEventListener('click', function(e) { 736 e.preventDefault(); 737 // If the main dropdown navigation is already open (contains --is-open class) close it 738 if ( (userDropdownNavigation).classList.contains('diks-user-navigation--is-open') ) { 739 closeUserDropdownNavigation(); 740 } 741 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 742 else { 743 // If other toggles are open, close them 744 document.querySelectorAll('.diks-user-navigation--is-open').forEach(function(item) { 745 item.classList.remove('diks-user-navigation--is-open'); 746 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 747 }); 748 749 // Toggle icon 750 toggleTogglerIcon(userDropdownNavigationToggler); 751 752 // Set aria-expanded 753 userDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 754 755 // Open this toggle 756 userDropdownNavigation.classList.add('diks-user-navigation--is-open'); 757 758 // Close main dropdown navigation if it's open 759 closeMainDropdownNavigation(); 760 761 // Add event listener to window when user nav toggler is clicked and user nav is open 762 window.addEventListener('click', function(e){ 763 if (document.querySelector('.diks-user-navigation-wrapper').contains(e.target)){ 764 // Clicked inside user nav, do nothing 765 } 766 else { 767 // Clicked outside user nav, close user nav 768 closeUserDropdownNavigation(); 769 } 770 }); 771 772 } 773 }); 774 } 775 776 ////////////////////////////////////////////////////////////////////////////////////////// 777 // Main navigation 778 ////////////////////////////////////////////////////////////////////////////////////////// 779 780 let mainDropdownNavigation = document.getElementById('diks-dropdown-navigation'); // main dropdown navigation 781 let mainDropdownNavigationToggler = document.getElementById('diks-dropdown-toggle'); // main dropdown navigation toggler button (opens and closes main dropdown navigation) 782 let mainDropdownNavigationShade = document.querySelector('.diks-dropdown-navigation-shade'); // shade effect that is visible when main dropdown navigation is open 783 let mainDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside main dropdown navigation 784 785 // Close main dropdown navigation if hidden screen-reader-only close button is clicked 786 if ( mainDropdownNavigationCloseButton ) { 787 mainDropdownNavigationCloseButton.addEventListener('click', function() { 788 closeMainDropdownNavigation(); 789 }); 790 } 791 792 // Function for closing main dropdown navigation 793 function closeMainDropdownNavigation() { 794 // Main dropdown navigation 795 if (mainDropdownNavigation) { 796 if (mainDropdownNavigation.classList.contains('diks-dropdown-navigation--is-open')) { 797 // Close main dropdown nav by removing --is-open class 798 mainDropdownNavigation.classList.remove('diks-dropdown-navigation--is-open'); 799 // Remove --is-open class from main dropdown navigation toggler 800 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 801 // Toggle icon 802 toggleTogglerIcon(mainDropdownNavigationToggler); 803 804 // Set aria-expanded to false for main dropdown toggler 805 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 806 807 // Remove --is-open class from body 808 document.body.classList.remove('diks-body--dropdown-navigation-is-open'); 809 810 // Turn off shade effect 811 mainDropdownNavigationShade.classList.remove('diks-dropdown-navigation-shade--is-visible'); 812 } 813 } 814 } 815 816 817 // Main Navigation Dropdown 818 if (mainDropdownNavigation) {
819 let mainDropdownNavigationAriaControls = mainDropdownNavigationToggler.getAttribute('data-toggle'); // aria-controls value for main dropown navigation toggler 820 mainDropdownNavigationToggler.setAttribute('aria-controls', mainDropdownNavigationAriaControls); 821 mainDropdownNavigationToggler.addEventListener('click', function(e) { 822 e.preventDefault(); 823 // If the main dropdown navigation is already open (contains --is-open class) close it 824 if ( (mainDropdownNavigation).classList.contains('diks-dropdown-navigation--is-open') ) { 825 closeMainDropdownNavigation(); 826 } 827 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 828 else { 829 // If other toggles are open, close them 830 document.querySelectorAll('.diks-dropdown-navigation--is-open').forEach(function(item) { 831 item.classList.remove('diks-dropdown-navigation--is-open'); 832 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 833 }); 834 835 // Toggle icon 836 toggleTogglerIcon(mainDropdownNavigationToggler); 837 838 // Set aria-expanded 839 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 840 841 // Open this toggle 842 mainDropdownNavigation.classList.add('diks-dropdown-navigation--is-open'); 843 // Add is-open class to body 844 document.body.classList.add('diks-body--dropdown-navigation-is-open'); 845 // Turn on shade effect 846 mainDropdownNavigationShade.classList.add('diks-dropdown-navigation-shade--is-visible'); 847 848 // Close main Dropdown Navigation when visible shade area is clicked 849 document.querySelector('.diks-dropdown-navigation-shade--is-visible').addEventListener('click', function() { 850 closeMainDropdownNavigation(); 851 }); 852 853 // Close user dropdown navigation if it's open 854 closeUserDropdownNavigation(); 855 856 } 857 }); 858 } 859 860 861</script>
861 862 863 <div class="diks-display-ad rs_skip" aria-hidden="true"> 864 <div class="diks-display-ad__unit" id="gam-ad-topscroll_skin" > 865
865<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_skin'); });</script>
865 866 </div> 867 </div> 868 <div class="diks-display-ad rs_skip" aria-hidden="true"> 869 <div class="diks-display-ad__unit" id="gam-ad-topscroll_mob" > 870
870<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_mob'); });</script>
870 871 </div> 872 </div> 873 <div class="diks-container"> 874 <div class="diks-layout"> 875 876 877 878 879 880 881 <div class="diks-note-wrapper "><div class="diks-container diks-container--narrower-mobile"> 882 <div id="diks-segment-notes"></div></div></div>
882<script> 883 let segmentTeasersContainer = document.getElementById("diks-segment-notes"); 884 885 (function() { 886 function getCookie(name) { 887 name = name + '='; 888 const decodedCookie = decodeURIComponent(document.cookie); 889 const cookies = decodedCookie.split(';'); 890 891 for (let i = 0; i < cookies.length; i++) { 892 const cookie = cookies[i].trim(); 893 if (cookie.indexOf(name) == 0) { 894 return cookie.substring(name.length, cookie.length); 895 } 896 } 897 } 898 899 function injectSegmentTeasers(segmentsQueryString) { 900 var xhttp = new XMLHttpRequest(); 901 902 xhttp.onreadystatechange = function() { 903 if (this.readyState == 4 && this.status == 200) { 904 var segmentTeasers = this.responseText.trim(); 905 906 if (segmentTeasers) { 907 if (segmentTeasersContainer) { 908 segmentTeasersContainer.innerHTML = segmentTeasers; 909 } 910 } 911 else { 912 // Remove segment teaser container if there are no segment teasers 913 if (segmentTeasersContainer) { 914 segmentTeasersContainer.remove(); 915 } 916 } 917 } 918 }; 919 920 xhttp.open("GET", "/.ajax/segmentTeaser?" + segmentsQueryString, true); 921 xhttp.send(); 922 } 923 924 var segmentsCookie = getCookie('jankkosegments'); 925 926 if (segmentsCookie) { 927 var segmentsData = JSON.parse(segmentsCookie); 928 var segments = segmentsData.segments; 929 930 if (segments && typeof segments === 'object') { 931 var segmentsQueryString = ""; 932 933 Object.keys(segments).forEach(function(key, index) { 934 segmentsQueryString = index === 0 ? "" : segmentsQueryString + "&"; 935 var value = segments[key]; 936 937 if (Array.isArray(value)) { 938 value = value.join(','); 939 } 940 941 segmentsQueryString = segmentsQueryString + key + "=" + value; 942 }); 943 944 injectSegmentTeasers(segmentsQueryString); 945 } 946 } 947 else { 948 // Remove segment teaser container if there are no segment teasers 949 if (segmentTeasersContainer) { 950 segmentTeasersContainer.remove(); 951 } 952 } 953 })(); 954</script>
954 955 956 <main id="sisalto"> 957 <div class="diks-front-page"><!-- ESI start element "latestFromCurrentPublicationSlider" generated at 01-10-2026 17:54:00.207720 --><div class="diks-story-slider diks-story-slider--no-border-top" id="uusimmat"><div class="diks-story-slider__cards-wrapper"> 958 959 960 961 962 <article class="diks-card diks-card--size-xs"> 963 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 964 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9796484">Onko Karkkila Suomen yhteisöllisin kunta?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 965 <time class="diks-date__published" datetime="2026-10-01T14:00:00+03:00">Tänään 14:00</time> 966 967 </div> 968<div class="diks-comment-count "> 969 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9796484" data-coral-id="9796484"></span> 970 </div> 971 </div> 972 </div></div> 973 </div> 974 </div></article> 975 976 977 978 <article class="diks-card diks-card--size-xs"> 979 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 980 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834095"><span class="diks-ui-accent">Menovinkki | </span>Karkkila tutuksi -kierroksen kohteena on Tuorilan VPK</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 981 <time class="diks-date__published" datetime="2026-10-01T10:00:00+03:00">Tänään 10:00</time> 982 983 </div> 984<div class="diks-comment-count "> 985 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834095" data-coral-id="9834095"></span> 986 </div> 987 </div> 988 </div></div> 989 </div> 990 </div></article> 991 992 993 <article class="diks-card diks-card--size-xs"> 994 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 995 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834514">Karkkilalaisilta kysytään näkemyksiä päihdetilanteesta</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 996 <time class="diks-date__published" datetime="2026-10-01T07:00:00+03:00">Tänään 7:00</time> 997 998 </div> 999<div class="diks-comment-count "> 1000 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834514" data-coral-id="9834514"></span> 1001 </div> 1002 </div> 1003 </div></div> 1004 </div> 1005 </div></article> 1006 1007 1008 1009 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1010 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1011 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9835083"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1012 <time class="diks-date__published" datetime="2026-10-01T06:00:00+03:00">Tänään 6:00</time> 1013 1014 </div> 1015<div class="diks-comment-count "> 1016 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9835083" data-coral-id="9835083"></span> 1017 </div> 1018 </div> 1019 </div></div> 1020 </div> 1021 </div></article> 1022 1023 1024 1025 <article class="diks-card diks-card--size-xs"> 1026 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1027 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9816427"><span class="diks-ui-accent">Menovinkki | </span>Jäivätkö kesähäät pitämättä?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1028 <time class="diks-date__published" datetime="2026-10-01T05:00:00+03:00">Tänään 5:00</time> 1029 1030 </div> 1031<div class="diks-comment-count "> 1032 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9816427" data-coral-id="9816427"></span> 1033 </div> 1034 </div> 1035 </div></div> 1036 </div> 1037 </div></article> 1038 1039 1040 <article class="diks-card diks-card--size-xs"> 1041 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1042 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834579">Hyvinvointialue päivittää potilastietojärjestelmää ââsähköisis...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1043 <time class="diks-date__published" datetime="2026-09-30T16:00:00+03:00">Eilen 16:00</time> 1044 1045 </div> 1046<div class="diks-comment-count "> 1047 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834579" data-coral-id="9834579"></span> 1048 </div> 1049 </div> 1050 </div></div> 1051 </div> 1052 </div></article> 1053 1054 1055 1056 <article class="diks-card diks-card--size-xs"> 1057 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1058 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9815544"><span class="diks-ui-accent">
1058Menovinkki | </span>Työväenopiston tilkkutyökurssi sopii vasta-alkajillekin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1059 <time class="diks-date__published" datetime="2026-09-30T14:00:00+03:00">Eilen 14:00</time> 1060 1061 </div> 1062<div class="diks-comment-count "> 1063 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9815544" data-coral-id="9815544"></span> 1064 </div> 1065 </div> 1066 </div></div> 1067 </div> 1068 </div></article> 1069 1070 1071 <article class="diks-card diks-card--size-xs"> 1072 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1073 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9831303">Vedenjakelu katkeaa Huvilakadulla ja Ãyrästiellä lokakuun alus...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1074 <time class="diks-date__published" datetime="2026-09-30T12:00:00+03:00">Eilen 12:00</time> 1075 1076 </div> 1077<div class="diks-comment-count "> 1078 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9831303" data-coral-id="9831303"></span> 1079 </div> 1080 </div> 1081 </div></div> 1082 </div> 1083 </div></article> 1084 </div> 1085 </div><!-- ESI end element "latestFromCurrentPublicationSlider" --> <h1 class="diks-title diks-a11y__screen-reader" >Etusivu - Karkkilalainen</h1><div class="diks-display-ad diks-display-ad--in-layout rs_skip" aria-hidden="true"> 1086 <div class="diks-display-ad__unit" id="gam-ad-paraati1" > 1087
1087<script>googletag.cmd.push(function() { googletag.display('gam-ad-paraati1'); });</script>
1087 1088 </div> 1089 </div> 1090 1091 <div class="diks-local-stories"> 1092 <div class="diks-columns"> 1093 <div class="diks-local-stories__main diks-main-column diks-border--after"><section> 1094 1095 1096 1097 <article class="diks-card diks-card--size-l diks-card--main"> 1098 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1099 <picture><source srcset="https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/WEBP_LANDSCAPE_240/11676274.webp 240w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/WEBP_LANDSCAPE_480/11676274.webp 480w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/WEBP_LANDSCAPE_720/11676274.webp 720w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/WEBP_LANDSCAPE_960/11676274.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/LANDSCAPE_720/11676274.jpg" srcset="https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/LANDSCAPE_240/11676274.jpg 240w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/LANDSCAPE_480/11676274.jpg 480w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/LANDSCAPE_720/11676274.jpg 720w, https://i.media.fi/incoming/vu2xcm/11676274.jpg/alternates/LANDSCAPE_960/11676274.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1100 </picture> 1101 </div><div class="diks-card__text-wrapper"> 1102 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9796484">Onko Karkkila Suomen yhteisöllisin kunta?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1103 <time class="diks-date__published" datetime="2026-10-01T14:00:00+03:00">Tänään 14:00</time> 1104 1105 </div> 1106<div class="diks-comment-count "> 1107 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9796484" data-coral-id="9796484"></span> 1108 </div> 1109 </div> 1110 </div></div> 1111 </div> 1112 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1113 <div class="diks-display-ad__unit" id="gam-ad-mobiili1" > 1114
1114<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili1'); });</script>
1114 1115 </div> 1116 </div> 1117 1118 1119 1120 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop is--subscriber-only"> 1121 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1122 <picture><source srcset="https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/WEBP_LANDSCAPE_240/9451254.webp 240w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/WEBP_LANDSCAPE_480/9451254.webp 480w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/WEBP_LANDSCAPE_720/9451254.webp 720w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/WEBP_LANDSCAPE_960/9451254.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/LANDSCAPE_720/9451254.jpg" srcset="https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/LANDSCAPE_240/9451254.jpg 240w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/LANDSCAPE_480/9451254.jpg 480w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/LANDSCAPE_720/9451254.jpg 720w, https://i.media.fi/incoming/nhdx6/9451254.jpg/alternates/LANDSCAPE_960/9451254.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1123 </picture> 1124 </div><div class="diks-card__text-wrapper"> 1125 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9835083"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli 840 000 euron korvausvaateet</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1126 <time class="diks-date__published" datetime="2026-10-01T06:00:00+03:00">Tänään 6:00</time> 1127 1128 </div> 1129<div class="diks-comment-count "> 1130 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9835083" data-coral-id="9835083"></span> 1131 </div> 1132 </div> 1133 </div></div> 1134 </div> 1135 </div></article> 1136 1137 1138 1139 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1140 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1141 <picture><source srcset="https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/WEBP_LANDSCAPE_240/11421576.webp 240w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/WEBP_LANDSCAPE_480/11421576.webp 480w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/WEBP_LANDSCAPE_720/11421576.webp 720w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/WEBP_LANDSCAPE_960/11421576.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/LANDSCAPE_720/11421576.jpg" srcset="https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/LANDSCAPE_240/11421576.jpg 240w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/LANDSCAPE_480/11421576.jpg 480w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/LANDSCAPE_720/11421576.jpg 720w, https://i.media.fi/incoming/2m9t5j/11421576.jpg/alternates/LANDSCAPE_960/11421576.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1142 </picture> 1143 </div><div class="diks-card__text-wrapper"> 1144 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834095"><span class="diks-ui-accent">Menovinkki | </span>Karkkila tutuksi -kierroksen kohteena on Tuorilan VPK</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1145 <time class="diks-date__published" datetime="2026-10-01T10:00:00+03:00">Tänään 10:00</time> 1146 1147 </div> 1148<div class="diks-comment-count "> 1149 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834095" data-coral-id="9834095"></span> 1150 </div> 1151 </div> 1152 </div></div> 1153 </div> 1154 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true">
1155 <div class="diks-display-ad__unit" id="gam-ad-mobiili2" > 1156
1156<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili2'); });</script>
1156 1157 </div> 1158 </div> 1159 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1160 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi1" > 1161
1161<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi1'); });</script>
1161 1162 </div> 1163 </div> 1164 1165 1166 <article class="diks-card diks-card--size-l"> 1167 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1168 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834514">Karkkilalaisilta kysytään näkemyksiä päihdetilanteesta</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1169 <time class="diks-date__published" datetime="2026-10-01T07:00:00+03:00">Tänään 7:00</time> 1170 1171 </div> 1172<div class="diks-comment-count "> 1173 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834514" data-coral-id="9834514"></span> 1174 </div> 1175 </div> 1176 </div></div> 1177 </div> 1178 </div></article> 1179 1180 1181 1182 1183 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1184 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1185 <picture><source srcset="https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/WEBP_LANDSCAPE_240/11689114.webp 240w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/WEBP_LANDSCAPE_480/11689114.webp 480w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/WEBP_LANDSCAPE_720/11689114.webp 720w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/WEBP_LANDSCAPE_960/11689114.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/LANDSCAPE_720/11689114.jpg" srcset="https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/LANDSCAPE_240/11689114.jpg 240w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/LANDSCAPE_480/11689114.jpg 480w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/LANDSCAPE_720/11689114.jpg 720w, https://i.media.fi/incoming/aoxrdg/11689114.jpg/alternates/LANDSCAPE_960/11689114.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1186 </picture> 1187 </div><div class="diks-card__text-wrapper"> 1188 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9816427"><span class="diks-ui-accent">Menovinkki | </span>Jäivätkö kesähäät pitämättä?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1189 <time class="diks-date__published" datetime="2026-10-01T05:00:00+03:00">Tänään 5:00</time> 1190 1191 </div> 1192<div class="diks-comment-count "> 1193 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9816427" data-coral-id="9816427"></span> 1194 </div> 1195 </div> 1196 </div></div> 1197 </div> 1198 </div></article> 1199 1200 1201 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1202 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1203 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9834579">Hyvinvointialue päivittää potilastietojärjestelmää ââsähköisissä palveluissa käyttökatko</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1204 <time class="diks-date__published" datetime="2026-09-30T16:00:00+03:00">Eilen 16:00</time> 1205 1206 </div> 1207<div class="diks-comment-count "> 1208 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9834579" data-coral-id="9834579"></span> 1209 </div> 1210 </div> 1211 </div></div> 1212 </div> 1213 </div></article><div class="diks-display-ad rs_skip" aria-hidden="true"> 1214 <div class="diks-display-ad__unit" id="gam-ad-mobiili3" > 1215
1215<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili3'); });</script>
1215 1216 </div> 1217 </div><aside> 1218 1219 <div class="diks-hide-above-large"><div class="diks-display-ad rs_skip" aria-hidden="true"> 1220 <div class="diks-display-ad__unit" id="gam-ad-mobiili4" > 1221
1221<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili4'); });</script>
1221 1222 </div> 1223 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 01-10-2026 17:53:30.839384 --> 1224 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1225 1226 1227 1228 1229 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1230 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1231 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9835083"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli 840 000 euron korvausvaateet</a></h2></div> 1232 </div> 1233 </div></article> </li><li class="diks-article-list__item"> 1234 1235 1236 1237 <article class="diks-card diks-card--size-xs"> 1238 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1239 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9834014"><span class="diks-ui-accent">Lukijalta | </span>Mikä on Karkkilan lukion tulevaisuus?</a></h2></div> 1240 </div> 1241 </div></article> </li><li class="diks-article-list__item"> 1242 1243 1244 1245 1246 <article class="diks-card diks-card--size-xs"> 1247 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1248 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9829644">Mies löytyi kuolleena autosta Karkkilassa</a></h2></div> 1249 </div> 1250 </div></article> </li><li class="diks-article-list__item"> 1251 1252 1253 1254 1255 <article class="diks-card diks-card--size-xs"> 1256 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1257 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9830897"><span class="diks-ui-accent">Kamppailu-urheilu | </span>Hööki Fight Taitopelti Edition iskettiin Konepajahallilla entistä hienommissa puitteissa</a></h2></div> 1258 </div> 1259 </div></article> </li><li class="diks-article-list__item"> 1260 1261 1262 1263 1264 <article class="diks-card diks-card--size-xs"> 1265 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1266 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9796484">Onko Karkkila Suomen yhteisöllisin kunta?</a></h2></div> 1267 </div> 1268 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 1269 </div> 1270 </aside><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1271 <div class="diks-display-ad__unit" id="gam-ad-mobiili5" > 1272
1272<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili5'); });</script>
1272 1273 </div> 1274 </div> 1275 1276 1277 1278 <article class="diks-card diks-card--size-l"> 1279 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1280 <picture><source srcset="https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/WEBP_LANDSCAPE_240/11442880.webp 240w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/WEBP_LANDSCAPE_480/11442880.webp 480w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/WEBP_LANDSCAPE_720/11442880.webp 720w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/WEBP_LANDSCAPE_960/11442880.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/LANDSCAPE_720/11442880.jpg" srcset="https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/LANDSCAPE_240/11442880.jpg 240w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/LANDSCAPE_480/11442880.jpg 480w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/LANDSCAPE_720/11442880.jpg 720w, https://i.media.fi/incoming/uoh0g8/11442880.jpg/alternates/LANDSCAPE_960/11442880.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1281 </picture> 1282 </div><div class="diks-card__text-wrapper"> 1283 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9815544"><span class="diks-ui-accent">Menovinkki | </span>Työväenopiston tilkkutyökurssi sopii vasta-alkajillekin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1284 <time class="diks-date__published" datetime="2026-09-30T14:00:00+03:00">Eilen 14:00</time> 1285 1286 </div> 1287<div class="diks-comment-count "> 1288 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9815544" data-coral-id="9815544"></span> 1289 </div> 1290 </div> 1291 </div></div> 1292 </div> 1293 </div></article> 1294 1295 1296 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1297 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1298 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9831303">Vedenjakelu katkeaa Huvilakadulla ja Ãyrästiellä lokakuun alussa vesihuoltotöiden vuoksi</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1299 <time class="diks-date__published" datetime="2026-09-30T12:00:00+03:00">Eilen 12:00</time> 1300 1301 </div> 1302<div class="diks-comment-count "> 1303 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9831303" data-coral-id="9831303"></span> 1304 </div> 1305 </div> 1306 </div></div> 1307 </div> 1308 </div></article> 1309 1310 1311 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed diks-card--light"> 1312 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1313 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9834014"><span class="diks-ui-accent">Lukijalta | </span>Mikä on Karkkilan lukion tulevaisuus?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1314 <time class="diks-date__published" datetime="2026-09-30T11:08:59+03:00">Eilen 11:08</time> 1315 1316 </div> 1317<div class="diks-comment-count "> 1318 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9834014" data-coral-id="9834014"></span> 1319 </div> 1320 </div> 1321 </div></div> 1322 </div> 1323 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1324 <div class="diks-display-ad__unit" id="gam-ad-mobiili6" > 1325
1325<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili6'); });</script>
1325 1326 </div> 1327 </div> 1328 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1329 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi2" > 1330
1330<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi2'); });</script>
1330 1331 </div> 1332 </div> 1333 1334 1335 <article class="diks-card diks-card--size-l"> 1336 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1337 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9831147">Koirapuisto suljetaan maanmuokkaustöiden ajaksi Karkkilassa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1338 <time class="diks-date__published" datetime="2026-09-30T10:00:00+03:00">Eilen 10:00</time> 1339 1340 </div> 1341<div class="diks-comment-count "> 1342 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9831147" data-coral-id="9831147"></span> 1343 </div> 1344 </div> 1345 </div></div> 1346 </div> 1347 </div></article> 1348 1349 1350 1351 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1352 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1353 <picture><source srcset="https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/WEBP_LANDSCAPE_240/11161884.webp 240w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/WEBP_LANDSCAPE_480/11161884.webp 480w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/WEBP_LANDSCAPE_720/11161884.webp 720w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/WEBP_LANDSCAPE_960/11161884.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/LANDSCAPE_720/11161884.jpg" srcset="https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/LANDSCAPE_240/11161884.jpg 240w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/LANDSCAPE_480/11161884.jpg 480w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/LANDSCAPE_720/11161884.jpg 720w, https://i.media.fi/incoming/mvkxah/11161884.jpg/alternates/LANDSCAPE_960/11161884.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1354 </picture> 1355 </div><div class="diks-card__text-wrapper"> 1356 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9815381"><span class="diks-ui-accent">Menovinkki | </span>Työväenopisto ja SPR Karkkila järjestävät yhteistyössä Ystäväkurssin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1357 <time class="diks-date__published" datetime="2026-09-30T05:00:00+03:00">Eilen 5:00</time> 1358 1359 </div> 1360<div class="diks-comment-count "> 1361 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9815381" data-coral-id="9815381"></span> 1362 </div> 1363 </div> 1364 </div></div> 1365 </div> 1366 </div></article> 1367 1368 1369 1370 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1371 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1372 <picture><source srcset="https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/WEBP_LANDSCAPE_240/11699201.webp 240w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/WEBP_LANDSCAPE_480/11699201.webp 480w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/WEBP_LANDSCAPE_720/11699201.webp 720w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/WEBP_LANDSCAPE_960/11699201.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/LANDSCAPE_720/11699201.jpg" srcset="https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/LANDSCAPE_240/11699201.jpg 240w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/LANDSCAPE_480/11699201.jpg 480w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/LANDSCAPE_720/11699201.jpg 720w, https://i.media.fi/incoming/3kadnz/11699201.jpg/alternates/LANDSCAPE_960/11699201.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1373 </picture>
1374 </div><div class="diks-card__text-wrapper"> 1375 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9830897"><span class="diks-ui-accent">Kamppailu-urheilu | </span>Hööki Fight Taitopelti Edition iskettiin Konepajahallilla entistä hienommissa puitteissa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1376 <time class="diks-date__published" datetime="2026-09-29T14:00:00+03:00">29.9.2026 14:00</time> 1377 1378 </div> 1379<div class="diks-comment-count "> 1380 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9830897" data-coral-id="9830897"></span> 1381 </div> 1382 </div> 1383 </div></div> 1384 </div> 1385 </div></article> 1386 1387 1388 1389 <article class="diks-card diks-card--size-l"> 1390 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1391 <picture><source srcset="https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/WEBP_LANDSCAPE_240/11076112.webp 240w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/WEBP_LANDSCAPE_480/11076112.webp 480w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/WEBP_LANDSCAPE_720/11076112.webp 720w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/WEBP_LANDSCAPE_960/11076112.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/LANDSCAPE_720/11076112.jpg" srcset="https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/LANDSCAPE_240/11076112.jpg 240w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/LANDSCAPE_480/11076112.jpg 480w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/LANDSCAPE_720/11076112.jpg 720w, https://i.media.fi/incoming/oz7l2f/11076112.jpg/alternates/LANDSCAPE_960/11076112.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1392 </picture> 1393 </div><div class="diks-card__text-wrapper"> 1394 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9830240"><span class="diks-ui-accent">Menovinkki | </span>Heijastinpuun avajaisia vietetään jälleen Karkkilan kirjaston edustalla</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1395 <time class="diks-date__published" datetime="2026-09-29T12:00:00+03:00">29.9.2026 12:00</time> 1396 1397 </div> 1398<div class="diks-comment-count "> 1399 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9830240" data-coral-id="9830240"></span> 1400 </div> 1401 </div> 1402 </div></div> 1403 </div> 1404 </div></article> 1405 1406 1407 1408 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1409 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1410 <picture><source srcset="https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/WEBP_LANDSCAPE_240/11691341.webp 240w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/WEBP_LANDSCAPE_480/11691341.webp 480w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/WEBP_LANDSCAPE_720/11691341.webp 720w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/WEBP_LANDSCAPE_960/11691341.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/LANDSCAPE_720/11691341.jpg" srcset="https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/LANDSCAPE_240/11691341.jpg 240w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/LANDSCAPE_480/11691341.jpg 480w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/LANDSCAPE_720/11691341.jpg 720w, https://i.media.fi/incoming/e98z3c/11691341.jpg/alternates/LANDSCAPE_960/11691341.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1411 </picture>
1412 </div><div class="diks-card__text-wrapper"> 1413 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9819771">Karkkilan rippikoulut tulevat!</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1414 <time class="diks-date__published" datetime="2026-09-29T10:00:00+03:00">29.9.2026 10:00</time> 1415 1416 </div> 1417<div class="diks-comment-count "> 1418 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9819771" data-coral-id="9819771"></span> 1419 </div> 1420 </div> 1421 </div></div> 1422 </div> 1423 </div></article> 1424 1425 1426 1427 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1428 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1429 <picture><source srcset="https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/WEBP_LANDSCAPE_240/11697563.webp 240w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/WEBP_LANDSCAPE_480/11697563.webp 480w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/WEBP_LANDSCAPE_720/11697563.webp 720w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/WEBP_LANDSCAPE_960/11697563.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/LANDSCAPE_720/11697563.jpg" srcset="https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/LANDSCAPE_240/11697563.jpg 240w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/LANDSCAPE_480/11697563.jpg 480w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/LANDSCAPE_720/11697563.jpg 720w, https://i.media.fi/incoming/wkmtnz/11697563.jpg/alternates/LANDSCAPE_960/11697563.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1430 </picture> 1431 </div><div class="diks-card__text-wrapper"> 1432 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9828474">Karkkilan yhteisöllisyys ja yrittäjyys tarjoavat mahdollisuuden menestykseen tulevaisuudessakin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1433 <time class="diks-date__published" datetime="2026-09-29T05:00:00+03:00">29.9.2026 5:00</time> 1434 1435 </div> 1436<div class="diks-comment-count "> 1437 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9828474" data-coral-id="9828474"></span> 1438 </div> 1439 </div> 1440 </div></div> 1441 </div> 1442 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1443 <div class="diks-display-ad__unit" id="gam-ad-mobiili7" > 1444
1444<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili7'); });</script>
1444 1445 </div> 1446 </div> 1447 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1448 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi3" > 1449
1449<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi3'); });</script>
1449 1450 </div> 1451 </div> 1452 1453 1454 1455 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1456 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1457 <picture><source srcset="https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/WEBP_LANDSCAPE_240/11697673.webp 240w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/WEBP_LANDSCAPE_480/11697673.webp 480w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/WEBP_LANDSCAPE_720/11697673.webp 720w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/WEBP_LANDSCAPE_960/11697673.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/LANDSCAPE_720/11697673.jpg" srcset="https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/LANDSCAPE_240/11697673.jpg 240w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/LANDSCAPE_480/11697673.jpg 480w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/LANDSCAPE_720/11697673.jpg 720w, https://i.media.fi/incoming/deyn8r/11697673.jpg/alternates/LANDSCAPE_960/11697673.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1458 </picture> 1459 </div><div class="diks-card__text-wrapper"> 1460 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9828646"><span class="diks-ui-accent">Ralli | </span>Juha Salo ajoi itselleen 11. SM-kullan</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1461 <time class="diks-date__published" datetime="2026-09-28T16:00:00+03:00">28.9.2026 16:00</time> 1462 1463 </div> 1464<div class="diks-comment-count "> 1465 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9828646" data-coral-id="9828646"></span> 1466 </div> 1467 </div> 1468 </div></div> 1469 </div> 1470 </div></article> 1471 1472 1473 1474 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1475 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1476 <picture><source srcset="https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/WEBP_LANDSCAPE_240/11546345.webp 240w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/WEBP_LANDSCAPE_480/11546345.webp 480w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/WEBP_LANDSCAPE_720/11546345.webp 720w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/WEBP_LANDSCAPE_960/11546345.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/LANDSCAPE_720/11546345.jpg" srcset="https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/LANDSCAPE_240/11546345.jpg 240w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/LANDSCAPE_480/11546345.jpg 480w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/LANDSCAPE_720/11546345.jpg 720w, https://i.media.fi/incoming/ccjf5z/11546345.jpg/alternates/LANDSCAPE_960/11546345.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1477 </picture> 1478 </div><div class="diks-card__text-wrapper"> 1479 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9829644">Mies löytyi kuolleena autosta Karkkilassa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1480 <time class="diks-date__published" datetime="2026-09-28T18:19:06+03:00">28.9.2026 18:19</time> 1481 1482 </div> 1483<div class="diks-comment-count "> 1484 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9829644" data-coral-id="9829644"></span> 1485 </div> 1486 </div> 1487 </div></div> 1488 </div> 1489 </div></article> 1490 1491 1492 1493 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1494 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1495 <picture><source srcset="https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/WEBP_LANDSCAPE_240/11688356.webp 240w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/WEBP_LANDSCAPE_480/11688356.webp 480w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/WEBP_LANDSCAPE_720/11688356.webp 720w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/WEBP_LANDSCAPE_960/11688356.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/LANDSCAPE_720/11688356.jpg" srcset="https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/LANDSCAPE_240/11688356.jpg 240w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/LANDSCAPE_480/11688356.jpg 480w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/LANDSCAPE_720/11688356.jpg 720w, https://i.media.fi/incoming/1rxdmf/11688356.jpg/alternates/LANDSCAPE_960/11688356.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1496 </picture>
1497 </div><div class="diks-card__text-wrapper"> 1498 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9814902"><span class="diks-ui-accent">Menovinkki | </span>Enkeleitä liikenteessä!</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1499 <time class="diks-date__published" datetime="2026-09-28T14:00:00+03:00">28.9.2026 14:00</time> 1500 1501 </div> 1502<div class="diks-comment-count "> 1503 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9814902" data-coral-id="9814902"></span> 1504 </div> 1505 </div> 1506 </div></div> 1507 </div> 1508 </div></article> 1509 1510 1511 1512 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1513 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1514 <picture><source srcset="https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/WEBP_LANDSCAPE_240/9539618.webp 240w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/WEBP_LANDSCAPE_480/9539618.webp 480w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/WEBP_LANDSCAPE_720/9539618.webp 720w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/WEBP_LANDSCAPE_960/9539618.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/LANDSCAPE_720/9539618.jpg" srcset="https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/LANDSCAPE_240/9539618.jpg 240w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/LANDSCAPE_480/9539618.jpg 480w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/LANDSCAPE_720/9539618.jpg 720w, https://i.media.fi/incoming/rf6nmx/9539618.jpg/alternates/LANDSCAPE_960/9539618.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1515 </picture> 1516 </div><div class="diks-card__text-wrapper"> 1517 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9813147"><span class="diks-ui-accent">Päätöksenteko | </span>Nuorisovaltuusto vaatii lisää toimia nuorten turvallisuuden parantamiseksi Karkkilassa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1518 <time class="diks-date__published" datetime="2026-09-28T05:00:00+03:00">28.9.2026 5:00</time> 1519 1520 </div> 1521<div class="diks-comment-count "> 1522 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9813147" data-coral-id="9813147"></span> 1523 </div> 1524 </div> 1525 </div></div> 1526 </div> 1527 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1528 <div class="diks-display-ad__unit" id="gam-ad-mobiili8" > 1529
1529<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili8'); });</script>
1529 1530 </div> 1531 </div> 1532 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1533 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi4" > 1534
1534<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi4'); });</script>
1534 1535 </div> 1536 </div> 1537 1538 1539 1540 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1541 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1542 <picture><source srcset="https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/WEBP_LANDSCAPE_240/10436911.webp 240w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/WEBP_LANDSCAPE_480/10436911.webp 480w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/WEBP_LANDSCAPE_720/10436911.webp 720w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/WEBP_LANDSCAPE_960/10436911.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/LANDSCAPE_720/10436911.jpg" srcset="https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/LANDSCAPE_240/10436911.jpg 240w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/LANDSCAPE_480/10436911.jpg 480w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/LANDSCAPE_720/10436911.jpg 720w, https://i.media.fi/incoming/sluxcf/10436911.jpg/alternates/LANDSCAPE_960/10436911.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1543 </picture> 1544 </div><div class="diks-card__text-wrapper"> 1545 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9813103"><span class="diks-ui-accent">Menovinkki | </span>Eekku Aromaa luennoi tasa-arvosta Ikäihmisten yliopiston syksyn ensimmäisellä luennolla</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1546 <time class="diks-date__published" datetime="2026-09-27T14:00:00+03:00">27.9.2026 14:00</time> 1547 1548 </div> 1549<div class="diks-comment-count "> 1550 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9813103" data-coral-id="9813103"></span> 1551 </div> 1552 </div> 1553 </div></div> 1554 </div> 1555 </div></article> 1556 1557 1558 1559 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1560 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1561 <picture><source srcset="https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/WEBP_LANDSCAPE_240/11690667.webp 240w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/WEBP_LANDSCAPE_480/11690667.webp 480w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/WEBP_LANDSCAPE_720/11690667.webp 720w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/WEBP_LANDSCAPE_960/11690667.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/LANDSCAPE_720/11690667.jpg" srcset="https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/LANDSCAPE_240/11690667.jpg 240w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/LANDSCAPE_480/11690667.jpg 480w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/LANDSCAPE_720/11690667.jpg 720w, https://i.media.fi/incoming/ehwrp6/11690667.jpg/alternates/LANDSCAPE_960/11690667.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1562 </picture> 1563 </div><div class="diks-card__text-wrapper"> 1564 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9818696"><span class="diks-ui-accent">Menovinkki | </span>Miestenpiirin aiheena Lahden taistelu ja Fellmanin veripellot</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1565 <time class="diks-date__published" datetime="2026-09-27T10:00:00+03:00">27.9.2026 10:00</time> 1566 1567 </div> 1568<div class="diks-comment-count "> 1569 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9818696" data-coral-id="9818696"></span> 1570 </div> 1571 </div> 1572 </div></div> 1573 </div> 1574 </div></article> 1575 1576 1577 1578 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1579 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1580 <picture><source srcset="https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/WEBP_LANDSCAPE_240/9039448.webp 240w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/WEBP_LANDSCAPE_480/9039448.webp 480w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/WEBP_LANDSCAPE_720/9039448.webp 720w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/WEBP_LANDSCAPE_960/9039448.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/LANDSCAPE_720/9039448.jpg" srcset="https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/LANDSCAPE_240/9039448.jpg 240w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/LANDSCAPE_480/9039448.jpg 480w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/LANDSCAPE_720/9039448.jpg 720w, https://i.media.fi/incoming/wxnud0/9039448.jpg/alternates/LANDSCAPE_960/9039448.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1581 </picture>
1582 </div><div class="diks-card__text-wrapper"> 1583 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9812359">Karkkilan työttömyys oli voimakkaassa laskussa elokuussa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1584 <time class="diks-date__published" datetime="2026-09-27T05:00:00+03:00">27.9.2026 5:00</time> 1585 1586 </div> 1587<div class="diks-comment-count "> 1588 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9812359" data-coral-id="9812359"></span> 1589 </div> 1590 </div> 1591 </div></div> 1592 </div> 1593 </div></article> 1594 1595 1596 1597 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1598 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1599 <picture><source srcset="https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/WEBP_LANDSCAPE_240/11688962.webp 240w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/WEBP_LANDSCAPE_480/11688962.webp 480w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/WEBP_LANDSCAPE_720/11688962.webp 720w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/WEBP_LANDSCAPE_960/11688962.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/LANDSCAPE_720/11688962.jpg" srcset="https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/LANDSCAPE_240/11688962.jpg 240w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/LANDSCAPE_480/11688962.jpg 480w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/LANDSCAPE_720/11688962.jpg 720w, https://i.media.fi/incoming/w6i21d/11688962.jpg/alternates/LANDSCAPE_960/11688962.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1600 </picture> 1601 </div><div class="diks-card__text-wrapper"> 1602 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9816144"><span class="diks-ui-accent">Motocross | </span>Kerhojoukkueiden mestaruudet ratkottiin Heinolassa â Karkkilan Moottorikerho ajoi MXV-joukkuekilpailun voittoon</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1603 <time class="diks-date__published" datetime="2026-09-26T14:00:00+03:00">26.9.2026 14:00</time> 1604 1605 </div> 1606<div class="diks-comment-count "> 1607 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9816144" data-coral-id="9816144"></span> 1608 </div> 1609 </div> 1610 </div></div> 1611 </div> 1612 </div></article> 1613 1614 1615 1616 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1617 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1618 <picture><source srcset="https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/WEBP_LANDSCAPE_240/11691249.webp 240w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/WEBP_LANDSCAPE_480/11691249.webp 480w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/WEBP_LANDSCAPE_720/11691249.webp 720w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/WEBP_LANDSCAPE_960/11691249.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/LANDSCAPE_720/11691249.jpg" srcset="https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/LANDSCAPE_240/11691249.jpg 240w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/LANDSCAPE_480/11691249.jpg 480w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/LANDSCAPE_720/11691249.jpg 720w, https://i.media.fi/incoming/p5pvs4/11691249.jpg/alternates/LANDSCAPE_960/11691249.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1619 </picture>
1620 </div><div class="diks-card__text-wrapper"> 1621 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9819654">Karkkilan Voima kasvattaa harrastajia ja kilpailijoita</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1622 <time class="diks-date__published" datetime="2026-09-26T10:00:00+03:00">26.9.2026 10:00</time> 1623 1624 </div> 1625<div class="diks-comment-count "> 1626 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9819654" data-coral-id="9819654"></span> 1627 </div> 1628 </div> 1629 </div></div> 1630 </div> 1631 </div></article> 1632 1633 1634 1635 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1636 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1637 <picture><source srcset="https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/WEBP_LANDSCAPE_240/11684383.webp 240w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/WEBP_LANDSCAPE_480/11684383.webp 480w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/WEBP_LANDSCAPE_720/11684383.webp 720w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/WEBP_LANDSCAPE_960/11684383.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/LANDSCAPE_720/11684383.jpg" srcset="https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/LANDSCAPE_240/11684383.jpg 240w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/LANDSCAPE_480/11684383.jpg 480w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/LANDSCAPE_720/11684383.jpg 720w, https://i.media.fi/incoming/mhf2qe/11684383.jpg/alternates/LANDSCAPE_960/11684383.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1638 </picture> 1639 </div><div class="diks-card__text-wrapper"> 1640 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9809198">Suomen turvallisuusympäristö on muuttunut</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1641 <time class="diks-date__published" datetime="2026-09-26T05:00:00+03:00">26.9.2026 5:00</time> 1642 1643 </div> 1644<div class="diks-comment-count "> 1645 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9809198" data-coral-id="9809198"></span> 1646 </div> 1647 </div> 1648 </div></div> 1649 </div> 1650 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1651 <div class="diks-display-ad__unit" id="gam-ad-mobiili9" > 1652
1652<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili9'); });</script>
1652 1653 </div> 1654 </div> 1655 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1656 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi5" > 1657
1657<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi5'); });</script>
1657 1658 </div> 1659 </div> 1660 1661 1662 1663 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1664 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1665 <picture><source srcset="https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/WEBP_LANDSCAPE_240/11684291.webp 240w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/WEBP_LANDSCAPE_480/11684291.webp 480w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/WEBP_LANDSCAPE_720/11684291.webp 720w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/WEBP_LANDSCAPE_960/11684291.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/LANDSCAPE_720/11684291.jpg" srcset="https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/LANDSCAPE_240/11684291.jpg 240w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/LANDSCAPE_480/11684291.jpg 480w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/LANDSCAPE_720/11684291.jpg 720w, https://i.media.fi/incoming/u2q6s4/11684291.jpg/alternates/LANDSCAPE_960/11684291.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1666 </picture> 1667 </div><div class="diks-card__text-wrapper"> 1668 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9809103"><span class="diks-ui-accent">Menovinkki | </span>Villihevosia-hitin sanoittaja vieraana Karkkilan kirjastossa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1669 <time class="diks-date__published" datetime="2026-09-25T14:00:00+03:00">25.9.2026 14:00</time> 1670 1671 </div> 1672<div class="diks-comment-count "> 1673 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9809103" data-coral-id="9809103"></span> 1674 </div> 1675 </div> 1676 </div></div> 1677 </div> 1678 </div></article> 1679 1680 1681 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed diks-card--light"> 1682 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1683 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9822412"><span class="diks-ui-accent">Lukijalta | </span>Karkkilaa ei pidä säästää hengiltä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1684 <time class="diks-date__published" datetime="2026-09-25T13:00:00+03:00">25.9.2026 13:00</time> 1685 1686 </div> 1687<div class="diks-comment-count "> 1688 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9822412" data-coral-id="9822412"></span> 1689 </div> 1690 </div> 1691 </div></div> 1692 </div> 1693 </div></article> 1694 1695 1696 1697 <article class="diks-card diks-card--size-l"> 1698 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1699 <picture><source srcset="https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/WEBP_LANDSCAPE_240/11688491.webp 240w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/WEBP_LANDSCAPE_480/11688491.webp 480w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/WEBP_LANDSCAPE_720/11688491.webp 720w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/WEBP_LANDSCAPE_960/11688491.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/LANDSCAPE_720/11688491.jpg" srcset="https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/LANDSCAPE_240/11688491.jpg 240w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/LANDSCAPE_480/11688491.jpg 480w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/LANDSCAPE_720/11688491.jpg 720w, https://i.media.fi/incoming/uku16w/11688491.jpg/alternates/LANDSCAPE_960/11688491.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1700 </picture>
1701 </div><div class="diks-card__text-wrapper"> 1702 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9814970"><span class="diks-ui-accent">Menovinkki | </span>Rockia Karkkilassa 50 vuotta -bileet Kino Laikassa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1703 <time class="diks-date__published" datetime="2026-09-25T10:00:00+03:00">25.9.2026 10:00</time> 1704 1705 </div> 1706<div class="diks-comment-count "> 1707 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9814970" data-coral-id="9814970"></span> 1708 </div> 1709 </div> 1710 </div></div> 1711 </div> 1712 </div></article> 1713 1714 1715 1716 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed "> 1717 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1718 <picture><source srcset="https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/WEBP_LANDSCAPE_240/11684223.webp 240w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/WEBP_LANDSCAPE_480/11684223.webp 480w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/WEBP_LANDSCAPE_720/11684223.webp 720w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/WEBP_LANDSCAPE_960/11684223.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/LANDSCAPE_720/11684223.jpg" srcset="https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/LANDSCAPE_240/11684223.jpg 240w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/LANDSCAPE_480/11684223.jpg 480w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/LANDSCAPE_720/11684223.jpg 720w, https://i.media.fi/incoming/tpp1tw/11684223.jpg/alternates/LANDSCAPE_960/11684223.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1719 </picture> 1720 </div><div class="diks-card__text-wrapper"> 1721 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9808965">
1721Karkkilan Pappilan Navetta täyttyy torstaisin nuorista</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1722 <time class="diks-date__published" datetime="2026-09-25T05:00:00+03:00">25.9.2026 5:00</time> 1723 1724 </div> 1725<div class="diks-comment-count "> 1726 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9808965" data-coral-id="9808965"></span> 1727 </div> 1728 </div> 1729 </div></div> 1730 </div> 1731 </div></article> 1732 1733 1734 1735 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed "> 1736 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1737 <picture><source srcset="https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/WEBP_LANDSCAPE_240/11684588.webp 240w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/WEBP_LANDSCAPE_480/11684588.webp 480w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/WEBP_LANDSCAPE_720/11684588.webp 720w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/WEBP_LANDSCAPE_960/11684588.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/LANDSCAPE_720/11684588.jpg" srcset="https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/LANDSCAPE_240/11684588.jpg 240w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/LANDSCAPE_480/11684588.jpg 480w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/LANDSCAPE_720/11684588.jpg 720w, https://i.media.fi/incoming/b0lmgr/11684588.jpg/alternates/LANDSCAPE_960/11684588.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1738 </picture> 1739 </div><div class="diks-card__text-wrapper"> 1740 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9809533"><span class="diks-ui-accent">Ralli | </span>Juha Salolla on SM-finaalin mestaruus mielessä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1741 <time class="diks-date__published" datetime="2026-09-24T14:00:00+03:00">24.9.2026 14:00</time> 1742 1743 </div> 1744<div class="diks-comment-count "> 1745 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.karkkilalainen.fi/paikalliset/9809533" data-coral-id="9809533"></span> 1746 </div> 1747 </div> 1748 </div></div> 1749 </div> 1750 </div></article><aside> 1751 1752 <div class="diks-hide-above-large"><div class="diks-display-ad rs_skip" aria-hidden="true"> 1753 <div class="diks-display-ad__unit" id="gam-ad-mobiili4" > 1754
1754<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili4'); });</script>
1754 1755 </div> 1756 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 01-10-2026 17:53:30.839384 --> 1757 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1758 1759 1760 1761 1762 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1763 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1764 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9835083"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli 840 000 euron korvausvaateet</a></h2></div> 1765 </div> 1766 </div></article> </li><li class="diks-article-list__item"> 1767 1768 1769 1770 <article class="diks-card diks-card--size-xs"> 1771 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1772 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9834014"><span class="diks-ui-accent">Lukijalta | </span>Mikä on Karkkilan lukion tulevaisuus?</a></h2></div> 1773 </div> 1774 </div></article> </li><li class="diks-article-list__item"> 1775 1776 1777 1778 1779 <article class="diks-card diks-card--size-xs"> 1780 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1781 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9829644">Mies löytyi kuolleena autosta Karkkilassa</a></h2></div> 1782 </div> 1783 </div></article> </li><li class="diks-article-list__item"> 1784 1785 1786 1787 1788 <article class="diks-card diks-card--size-xs"> 1789 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1790 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9830897"><span class="diks-ui-accent">Kamppailu-urheilu | </span>Hööki Fight Taitopelti Edition iskettiin Konepajahallilla entistä hienommissa puitteissa</a></h2></div> 1791 </div> 1792 </div></article> </li><li class="diks-article-list__item"> 1793 1794 1795 1796 1797 <article class="diks-card diks-card--size-xs"> 1798 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1799 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9796484">Onko Karkkila Suomen yhteisöllisin kunta?</a></h2></div> 1800 </div> 1801 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 1802 </div> 1803 </aside><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1804 <div class="diks-display-ad__unit" id="gam-ad-mobiili5" > 1805
1805<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili5'); });</script>
1805 1806 </div> 1807 </div></section></div> 1808 <aside class="diks-local-stories__aside diks-aside-column"> 1809 1810 <div class="diks-hide-below-large"> 1811 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1812 <div class="diks-display-ad__unit" id="gam-ad-boksi1" > 1813
1813<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi1'); });</script>
1813 1814 </div> 1815 </div><div class="diks-display-ad rs_skip" aria-hidden="true"> 1816 <div class="diks-display-ad__unit" id="gam-ad-boksi2" > 1817
1817<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi2'); });</script>
1817 1818 </div> 1819 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 01-10-2026 17:53:30.839384 --> 1820 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1821 1822 1823 1824 1825 <article class="diks-card diks-card--size-xs is--subscriber-only"> 1826 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1827 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9835083"><span class="diks-ui-accent">Käräjillä | </span>Karkkilan kirjaston tuhopolttajalle ehdotonta vankeutta ja yli 840 000 euron korvausvaateet</a></h2></div> 1828 </div> 1829 </div></article> </li><li class="diks-article-list__item"> 1830 1831 1832 1833 <article class="diks-card diks-card--size-xs"> 1834 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1835 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paakirjoitus-mielipide/9834014"><span class="diks-ui-accent">Lukijalta | </span>Mikä on Karkkilan lukion tulevaisuus?</a></h2></div> 1836 </div> 1837 </div></article> </li><li class="diks-article-list__item"> 1838 1839 1840 1841 1842 <article class="diks-card diks-card--size-xs"> 1843 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1844 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9829644">Mies löytyi kuolleena autosta Karkkilassa</a></h2></div> 1845 </div> 1846 </div></article> </li><li class="diks-article-list__item"> 1847 1848 1849 1850 1851 <article class="diks-card diks-card--size-xs"> 1852 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1853 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9830897"><span class="diks-ui-accent">Kamppailu-urheilu | </span>Hööki Fight Taitopelti Edition iskettiin Konepajahallilla entistä hienommissa puitteissa</a></h2></div> 1854 </div> 1855 </div></article> </li><li class="diks-article-list__item"> 1856 1857 1858 1859 1860 <article class="diks-card diks-card--size-xs"> 1861 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1862 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.karkkilalainen.fi/paikalliset/9796484">Onko Karkkila Suomen yhteisöllisin kunta?</a></h2></div> 1863 </div> 1864 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 1865 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1866 <div class="diks-display-ad__unit" id="gam-ad-boksi3" > 1867
1867<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi3'); });</script>
1867 1868 </div> 1869 </div> 1870 </div> 1871 1872 <div class="diks-hide-below-large"> 1873 <div class="diks-box "><div class="diks-box__offset diks-column diks-column--s-span-4 diks-column--m-span-1 diks-column--l-span-2 diks-column--xl-span-3"></div> 1874 <div class="diks-box__main-content diks-column diks-column--s-span-4 diks-column--m-span-5 diks-column--l-span-6 diks-column--xl-span-7"><div class="diks-box__content-wrapper"><h2 class="diks-box__title">Juttuvinkki</h2><p>Lähetä meille vinkki, valokuva tai video uutistapahtumasta tai jostain muusta kiinnostavasta.</p> 1875 </div> 1876 </div><div class="diks-box__cta-content diks-column diks-column--s-span-4 diks-column--m-span-1 diks-column--l-span-3 diks-column--xl-span-3"> 1877 <div class="diks-box__button-wrapper"><a class="diks-button diks-button--light" href="https://oma.media.fi/lehti/karkkilalainen/yhteystiedot/laheta-juttuvinkki/" >Lähetä juttuvinkki</a></div> 1878 </div></div> 1879 1880 </div> 1881 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1882 <div class="diks-display-ad__unit" id="gam-ad-mobiili10" > 1883
1883<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili10'); });</script>
1883 1884 </div> 1885 </div> 1886 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1887 <div class="diks-display-ad__unit" id="gam-ad-boksi4" > 1888
1888<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi4'); });</script>
1888 1889 </div> 1890 </div> 1891 </aside> 1892 </div> 1893 </div> 1894 1895 1896 1897 <div class="diks-columns"> 1898 <div class="diks-main-column"></div> 1899 <aside class="diks-aside-column"> 1900 1901 <div class="diks-hide-above-large"> 1902 <div class="diks-box "><div class="diks-box__offset diks-column diks-column--s-span-4 diks-column--m-span-1 diks-column--l-span-2 diks-column--xl-span-3"></div> 1903 <div class="diks-box__main-content diks-column diks-column--s-span-4 diks-column--m-span-5 diks-column--l-span-6 diks-column--xl-span-7"><div class="diks-box__content-wrapper"><h2 class="diks-box__title">Juttuvinkki</h2><p>Lähetä meille vinkki, valokuva tai video uutistapahtumasta tai jostain muusta kiinnostavasta.</p> 1904 </div> 1905 </div><div class="diks-box__cta-content diks-column diks-column--s-span-4 diks-column--m-span-1 diks-column--l-span-3 diks-column--xl-span-3"> 1906 <div class="diks-box__button-wrapper"><a class="diks-button diks-button--light" href="https://oma.media.fi/lehti/karkkilalainen/yhteystiedot/laheta-juttuvinkki/" >Lähetä juttuvinkki</a></div> 1907 </div></div> 1908 1909 </div> 1910 1911 </aside> 1912 </div> 1913 </div> 1914 </main> 1915 </div> 1916 </div> 1917 1918 1919 <footer class="diks-footer"><div class="diks-container"><div class="diks-footer__main"> 1920 <div class="diks-grid"> 1921 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-4"> 1922 <p><img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/karkkilalainen.svg" class="diks-logo diks-logo--default diks-footer__main-logo--wide" alt="Karkkilalainen"><img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/karkkilalainen-white.svg" class="diks-logo diks-logo--darkmode diks-footer__main-logo--wide" alt="Karkkilalainen"></p> 1923 <p><strong>Postiosoite:</strong> Karkkilalainen, PL 60, 08101 Lohja<br><strong>Päätoimittaja:</strong> Päivi Kallo</p></div> 1924 1925 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"><div class="diks-footer__main-secondary-logos-container"><div class="diks-footer__main-secondary-logo"><a href="https://vastuullistajournalismia.fi/"><img src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/vastuullista-journalismia.png" loading="lazy" alt="Vastuullisen journalismin merkki kertoo, että sitä käyttävä media on sitoutunut noudattamaan Julkisen sanan neuvoston laatimia Journalistin ohjeita."></a></div></div><div class="diks-footer__main-links-wrapper"> 1926 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/tietosuojalauseke/">Tietosuojalauseke</a><a class="diks-footer__main-link" href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/kayttoehdot/">Käyttöehdot</a><a class="diks-footer__main-link" href="https://keskisuomalainen.com/medianvapausasetus/">Medianvapausasetus</a><a class="diks-footer__main-link" href="https://oma.media.fi/tekoaly-journalismissamme/">Tekoäly journalismissamme</a></div> 1927 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://oma.media.fi/lehti/karkkilalainen/">Asiakaspalvelu</a><a class="diks-footer__main-link" href="https://meks.fi/mainonta/alueet/etela-suomen-media/">Mediamyynti</a><a class="diks-footer__main-link" href="https://oma.media.fi/lehti/karkkilalainen/yhteystiedot/">Yhteystiedot</a></div> 1928 </div></div> 1929 1930 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"> 1931 <h2 class="diks-footer__main-title">Sovellus</h2><p><strong>Uutissovellus</strong> sisältää tuoreet juttumme, joita ilmestyy ympäri vuorokauden vuoden jokaisena päivänä.</p><p><a class="diks-button diks-button--light" href="/asenna/" >Asenna uutissovellus</a></p> 1932 1933 1934 </div> 1935 </div> 1936 </div><div class="diks-footer__bottom"> 1937 <div class="diks-footer__bottom-row"><div class="diks-footer__bottom-logo-wrapper"><a href="https://www.keskisuomalainen.com/"><img class="diks-footer__bottom-logo" src="https://a.karkkilalainen.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" loading="lazy" alt="Keskisuomalainen Oyj"></a></div><span>Kuulumme Mediakonserni Keskisuomalaiseen</span></div> 1938 <div class="diks-footer__bottom-link-farm-wrapper"> 1939 <p><a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/'>Aamuposti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.avecmedia.fi/'>Avec</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.esaimaa.fi/'>Etelä-Saimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ess.fi/'>Etelä-Suomen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.forssanlehti.fi/'>Forssan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hankasalmensanomat.fi/'>Hankasalmen Sanomat </a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heinavedenlehti.fi/'>Heinäveden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.helsinginuutiset.fi/'>Helsingin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameensanomat.fi/'>Hämeen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameenlinnankaupunkiuutiset.fi/'>Hämeenlinnan Kaupunkiuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.iisalmensanomat.fi/'>Iisalmen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.itahame.fi/'>Itä-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ita-savo.fi/'>Itä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joroistenlehti.fi/'>Joroisten Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.juvanlehti.fi/'>Juvan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kaakonkulma.fi/'>Kaakonkulma</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kangasniemenlehti.fi/'>Kangasniemen Kunnallislehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karjalainen.fi/'>Karjalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heili.fi/'>Karjalan Heili</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karkkilalainen.fi/'>Karkkilalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-hame.fi/'>Keski-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-uusimaa.fi/'>Keski-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keskilaakso.fi/'>Keskilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ksml.fi/'>Keskisuomalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.koillis-savo.fi/'>Koillis-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kouvolansanomat.fi/'>Kouvolan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kymensanomat.fi/'>Kymen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lappeenrannanuutiset.fi/'>Lappeenrannan Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.laukaa-konnevesi.fi/'>Laukaa-Konnevesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lieksanlehti.fi/'>Lieksan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lopenlehti.fi/'>Lopen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.loviisansanomat.fi/'>Loviisan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.luumaenlehti.fi/'>Luumäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansisaimaa.fi/'>Länsi-Saimaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-savo.fi/'>Länsi-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-uusimaa.fi/'>Länsi-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansivayla.fi/'>Länsiväylä</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mattijaliisa.fi/'>Matti ja Liisa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.meksi.fi/'>Meksi Urheilumedia</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.miilu.fi/'>Miilu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mikkelinkaupunkilehti.fi/'>Mikkelin Kaupunkilehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mantsalanuutiset.fi/'>Mäntsälän Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/aihe/Nurmij%C3%A4rvi'>Nurmijärven Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.outokummunseutu.fi/'>Outokummun Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joutsenolehti.fi/'>Paikallislehti Joutseno</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.prsanomat.fi/'>Parikkalan-Rautjärven Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pernionseudunlehti.fi/'>Perniönseudun Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pieksamaenlehti.fi/'>Pieksämäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielavesi-keitele.fi/'>Pielavesi-Keitele</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielisjokiseutu.fi/'>Pielisjokiseutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajalainen.fi/'>Pitäjäläinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajanuutiset.fi/'>Pitäjänuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pogostansanomat.fi/'>Pogostan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.puruvesi.net/'>Puruvesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pyhtaanlehti.fi/'>Pyhtäänlehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.salonjokilaakso.fi/'>Salonjokilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sampolehti.fi/'>Sampo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.savonsanomat.fi/'>Savon Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sinunsavo.fi/'>Sinun Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisa-savolehti.fi/'>Sisä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisasuomenlehti.fi/'>Sisä-Suomen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.soisalonseutu.fi/'>Soisalon Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sjl.fi/'>Suur-Jyväskylän Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tamperelainen.fi/'>Tamperelainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tollotin.fi/'>Töllötin</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uusimaa.fi/'>Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutis-jousi.fi/'>Uutis-Jousi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutisvuoksi.fi/'>Uutisvuoksi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vantaansanomat.fi/'>Vantaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vihdinuutiset.fi/'>Vihdin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viikkosavo.fi/'>Viikkosavo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viispiikkinen.fi/'>
1939Viispiikkinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viitasaarenseutu.fi/'>Viitasaaren Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.warkaudenlehti.fi/'>Warkauden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ylakarjala.fi/'>Ylä-Karjala</a></p><p>Kaikki sisällöt voidaan julkaista kaikissa Mediakonserni Keskisuomalaisen medioissa.</p> 1940 </div> 1941 </div></div> 1942</footer> 1943 1944 1945
1945<script> 1946 if (!DOMTokenList.prototype.replace) { 1947 // IE Polyfill 1948 DOMTokenList.prototype.replace = function (a, b) { 1949 if (this.contains(a)) { 1950 this.add(b); 1951 this.remove(a); 1952 return true; 1953 } 1954 return false; 1955 } 1956 } 1957 1958 document.querySelector('.diks-no-js').classList.replace('diks-no-js', 'diks-js'); 1959 1960 // User agent sniffing is not reliable and it's going away. 1961 // Use only to sprinkle a little bit of progressive enhancement on top. 1962 // Dear Apple, stop lying, iPad on iOS 13 is not a Mac. You're turning into 90s Microsoft. 1963 var userAgent = navigator.userAgent || navigator.vendor || window.opera; 1964 if (/android/i.test(userAgent)) { 1965 document.querySelector('html').classList.add('diks-user-agent--android'); 1966 } else if (/iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream) { 1967 document.querySelector('html').classList.add('diks-user-agent--ios'); 1968 } else if (/macintosh/i.test(userAgent) && navigator.maxTouchPoints > 1) { 1969 document.querySelector('html').classList.add('diks-user-agent--ios'); 1970 } 1971</script>
1971 1972
1973<script> 1974 // Fix forEach for IE 1975 if (window.NodeList && !NodeList.prototype.forEach) { 1976 NodeList.prototype.forEach = Array.prototype.forEach; 1977 } 1978 1979 // Element.closest() needs a polyfill for older browsers. 1980 // While we only need the closest() functionality for mobile browsers, 1981 // we don't want the code to fail even on old desktop browsers. 1982 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 1983 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 1984 if (!Element.prototype.matches) { 1985 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 1986 } 1987 1988 if (!Element.prototype.closest) { 1989 Element.prototype.closest = function(s) { 1990 var el = this; 1991 1992 do { 1993 if (el.matches(s)) return el; 1994 el = el.parentElement || el.parentNode; 1995 } while (el !== null && el.nodeType === 1); 1996 return null; 1997 }; 1998 } 1999 2000 function setAriaExpanded(toggler, ariaExpandedValue) { 2001 // Set aria-expanded attribute of dropdown toggler 2002 // If the toggler contains a button, set the aria-expanded attribute for the button instead 2003 if ( toggler.querySelector('button') != null ) { 2004 toggler.querySelector('button').setAttribute('aria-expanded', ariaExpandedValue); 2005 } 2006 else { 2007 toggler.setAttribute('aria-expanded', ariaExpandedValue); 2008 } 2009 } 2010 2011 function toggleElement(target, toggleClass, toggler) { 2012 if (toggleClass) { 2013 var isOpenClass = toggleClass + '--is-open'; 2014 var isClosedClass = toggleClass + '--is-closed'; 2015 2016 if (target.classList.contains(isOpenClass)) { 2017 // Close this toggle 2018 target.classList.remove(isOpenClass); 2019 target.classList.add(isClosedClass); 2020 2021 // Set aria-expanded to false for the toggler 2022 setAriaExpanded(toggler, 'false'); 2023 2024 } else if (target.classList.contains(isClosedClass)) { 2025 // Open this toggle 2026 target.classList.remove(isClosedClass); 2027 target.classList.add(isOpenClass); 2028 2029 // Set aria-expanded to true for the toggler 2030 setAriaExpanded(toggler, 'true'); 2031 } else { 2032 // Open this toggle as a fallback 2033 target.classList.add(isOpenClass); 2034 2035 // Set aria-expanded to true for the toggler 2036 setAriaExpanded(toggler, 'true'); 2037 } 2038 } else { 2039 if (window.getComputedStyle(target).display !== 'none') { 2040 target.style.display = 'none'; 2041 } else { 2042 target.style.display = 'block'; 2043 } 2044 } 2045 }; 2046 2047 document.querySelectorAll('.js-diks-toggler').forEach(function(toggler) { 2048 var toggleId = toggler.getAttribute('data-diks-toggle'); 2049 var target = document.getElementById(toggleId); 2050 var eventListenerAttached = toggler.getAttribute('data-diks-event-click'); 2051 2052 if (target && !eventListenerAttached) { 2053 2054 // Set aria-controls of toggler 2055 if ( toggler.querySelector('button') != null ) { 2056 toggler.querySelector('button').setAttribute('aria-controls', toggleId); 2057 } 2058 else { 2059 toggler.setAttribute('aria-controls', toggleId); 2060 } 2061 2062 toggler.addEventListener('click', function(e) { 2063 e.preventDefault(); 2064 2065 var toggleClass = toggler.getAttribute('data-diks-toggle-class'); 2066 2067 if (webShareAPIEnabled(toggleId)) { 2068 share(); 2069 } else { 2070 toggleElement(target, toggleClass, toggler); 2071 } 2072 }); 2073 2074 toggler.setAttribute('data-diks-event-click', true); 2075 } 2076 }); 2077 2078 // Web Share and Clipboard API capabilities 2079 2080 function webShareAPIEnabled(toggleId) { 2081 const webShareAPIEnabled = true; 2082 const webShareAPIDropdownShareIds = ["jaa","jakopainikkeet"]; 2083 const isMobileDevice = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 2084 2085 return webShareAPIEnabled && webShareAPIDropdownShareIds.includes(toggleId) && isMobileDevice && navigator.share ? true : false; 2086 } 2087 2088 function share() { 2089 const metaTitleElement = document.querySelector('meta[property="og:title"]'); 2090 const metaDescriptionElement = document.querySelector('meta[name="description"]'); 2091 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2092 let title = ''; 2093 let description = ''; 2094 let url = document.location.href; 2095 2096 if (metaTitleElement && metaTitleElement.content) { 2097 title = metaTitleElement.content; 2098 } 2099 2100 if (metaDescriptionElement && metaDescriptionElement.content) { 2101 description = metaDescriptionElement.content; 2102 } 2103 2104 if (metaUrlElement && metaUrlElement.content) { 2105 url = metaUrlElement.content; 2106 } 2107 2108 navigator.share({ 2109 title: title, 2110 text: description, 2111 url: url 2112 }); 2113 } 2114 2115 document.querySelectorAll('.js-diks-share-clipboard').forEach(function(element) { 2116 element.addEventListener('click', function(e) { 2117 e.preventDefault(); 2118 2119 let url = document.location.href; 2120 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2121 2122 if (metaUrlElement && metaUrlElement.content) { 2123 url = metaUrlElement.content; 2124 } 2125 2126 // Copy URL to clipboard 2127 navigator.clipboard.writeText(url).then(function () { 2128 // Copying URL to clipboard succeeded 2129 const dropdownId = element.getAttribute('data-diks-dropdown-id'); 2130 // Find closest dropdown toggler 2131 let dropdownToggler = element.closest('.diks-dropdown').querySelector('.js-diks-toggler'); 2132 2133 if (dropdownId) { 2134 const dropdownElement = document.getElementById(dropdownId); 2135 2136 if (dropdownElement) { 2137 // Close currently open dropdown 2138 toggleElement(dropdownElement, 'diks-dropdown__content', dropdownToggler); 2139 } 2140 2141 // Show link copied notification text 2142 const notificationTextWrapperDiv = document.createElement('div'); 2143 const notificationTextDiv = document.createElement('div'); 2144 const notificationText = document.createTextNode('Linkki kopioitu leikepöydälle'); 2145 2146 notificationTextDiv.classList.add('diks-dropdown__notification-text'); 2147 notificationTextDiv.appendChild(notificationText); 2148 notificationTextWrapperDiv.classList.add('diks-dropdown__notification-text-wrapper'); 2149 notificationTextWrapperDiv.appendChild(notificationTextDiv); 2150 dropdownElement.parentNode.insertBefore(notificationTextWrapperDiv, null); 2151 2152 setTimeout(function () { 2153 notificationTextWrapperDiv.remove(); 2154 }, 5000); 2155 } 2156 }); 2157 }); 2158 }); 2159
2160 const initContentBlockToggleButtons = () => { 2161 const toggleContainers = document.querySelectorAll('[data-diks-init="toggle"]'); 2162 toggleContainers.forEach(container => { 2163 const toggleButton = container.querySelector('.diks-toggle-button'); 2164 const toggleContent = container.querySelector('.diks-toggle-content-container'); 2165 if (toggleButton && toggleContent) { 2166 toggleButton.addEventListener('click', () => { 2167 toggleElement(toggleContent, 'diks-toggle', toggleButton); 2168 }); 2169 } 2170 }); 2171 }; 2172 document.addEventListener('DOMContentLoaded', () => { 2173 initContentBlockToggleButtons(); 2174 }); 2175 2176</script>
2176 2177
2178<script> 2179 const useDragThreshold = true; 2180 2181 // Horizontally scrollable & draggable navigation 2182 class HorizontalScrollDragger { 2183 constructor(element) { 2184 this.slider = typeof element === 'string' ? document.querySelector(element) : element instanceof Element ? element : null; 2185 if (this.slider === null) return console.error('HorizontalScrollDragger: Element not found'); 2186 2187 this.isDown = false; 2188 this.preventClick = false; 2189 this.startX; 2190 this.scrollLeft; 2191 2192 this.dragThreshold = 5; 2193 this.dragSensitivity = 1; 2194 this.dragged = false; 2195 2196 this.init(); 2197 } 2198 2199 init() { 2200 this.slider.addEventListener('mousedown', (e) => this.handleMouseDown(e)); 2201 this.slider.addEventListener('mouseleave', () => this.handleMouseLeave()); 2202 this.slider.addEventListener('mouseup', () => this.handleMouseUp()); 2203 this.slider.addEventListener('mousemove', (e) => this.handleMouseMove(e)); 2204 this.slider.addEventListener('click', (e) => this.handleClick(e)); 2205 } 2206 2207 handleMouseDown(e) { 2208 this.isDown = true; 2209 this.slider.classList.add('diks-navigation--draggable-active'); 2210 this.startX = e.pageX - this.slider.offsetLeft; 2211 this.scrollLeft = this.slider.scrollLeft; 2212 this.preventClick = false; 2213 } 2214 2215 handleMouseLeave() { 2216 this.isDown = false; 2217 this.slider.classList.remove('diks-navigation--draggable-active'); 2218 } 2219 2220 handleMouseUp() { 2221 this.isDown = false; 2222 this.slider.classList.remove('diks-navigation--draggable-active'); 2223 } 2224 2225 handleMouseMove(e) { 2226 if (!this.isDown) return; 2227 2228 if ( useDragThreshold == true ) { 2229 const xWithThreshold = e.pageX - this.slider.offsetLeft; 2230 const delta = xWithThreshold - this.startX; 2231 2232 // If not yet dragging, check threshold 2233 if (!this.dragged && Math.abs(delta) > this.dragThreshold) { 2234 this.dragged = true; 2235 this.preventClick = true; 2236 2237 // Reset baseline so scrolling starts smoothly from here 2238 this.startX = xWithThreshold; 2239 this.scrollLeft = this.slider.scrollLeft; 2240 } 2241 2242 if (this.dragged) { 2243 e.preventDefault(); 2244 const walkWithThreshold = (xWithThreshold - this.startX) * this.dragSensitivity; // adjust sensitivity 2245 this.slider.scrollLeft = this.scrollLeft - walkWithThreshold; 2246 } 2247 } 2248 else { 2249 e.preventDefault(); 2250 const x = e.pageX - this.slider.offsetLeft; 2251 const walk = (x - this.startX) * this.dragSensitivity; // adjust sensitivity 2252 this.slider.scrollLeft = this.scrollLeft - walk; 2253 this.preventClick = true; 2254 } 2255 2256 } 2257 2258 handleClick(e) { 2259 if ( useDragThreshold == true && this.preventClick && this.dragged ) { 2260 e.preventDefault(); 2261 } 2262 else if ( useDragThreshold == false && this.preventClick) { 2263 e.preventDefault(); 2264 } 2265 } 2266 } 2267 2268 // Set the draggable navs (multiple) to handle their scrollbars 2269 let scrollableNavs = document.querySelectorAll('.diks-navigation--draggable'); 2270 2271 // Make draggable navigation draggable 2272 if ( scrollableNavs ) { 2273 scrollableNavs.forEach(function(element) { 2274 new HorizontalScrollDragger(element); 2275 }); 2276 } 2277 2278 2279 // Handle has-scrollbars class adding and removing 2280 function handleScrollableNavScrollbars(scrollableNavElement) { 2281 // If scrollable area is wider (scrollWidth) than what's visible (clientWidth) the element has scrollbars 2282 if ( scrollableNavElement.scrollWidth > scrollableNavElement.clientWidth ) { 2283 scrollableNavElement.classList.add('diks-navigation--draggable-has-scrollbars'); 2284 scrollableNavElement.parentElement.classList.add('diks-navigation-wrapper--has-scrollbars'); 2285 } 2286 // Remove the has-scrollbars class if it exists but shouldn't (element does not have scrollbars) 2287 else if ( scrollableNavElement.classList.contains('diks-navigation--draggable-has-scrollbars') ) { 2288 scrollableNavElement.classList.remove('diks-navigation--draggable-has-scrollbars'); 2289 scrollableNavElement.parentElement.classList.remove('diks-navigation-wrapper--has-scrollbars'); 2290 } 2291 } 2292 2293 // If scrollable nav exists add (or remove) necessary classes 2294 // "DOMContentLoaded" does not wait for styles to load and styles affect the size of the scrollable nav directly so we have to use "load" instead 2295 window.addEventListener('load', (event) => { 2296 if ( scrollableNavs ) {
2297 scrollableNavs.forEach(function(element) { 2298 handleScrollableNavScrollbars(element); 2299 }); 2300 } 2301 }); 2302 2303 // Check if scrollable nav has scrollbar 2304 window.addEventListener('resize', function(event){ 2305 if ( scrollableNavs ) { 2306 scrollableNavs.forEach(function(element) { 2307 handleScrollableNavScrollbars(element); 2308 }); 2309 } 2310 }); 2311</script>
2311 2312
2313<script> 2314 // Back button handling 2315 document.querySelectorAll('a.js-diks-back-button').forEach(function(item) { 2316 var referrerIsSameDomain = false; 2317 // Check if referrer is found as referrer isn't always available (browser, tab, window, bookmark, privacy). 2318 if (typeof(document.referrer) === 'string' && document.referrer.length > 0) { 2319 // Set referrerIsSameDomain to true if referrer is in the same domain as current location hostname and referrer is not the same page as current page (window.location.href) 2320 if ( document.referrer.includes(document.location.hostname) && document.referrer != window.location.href ) { 2321 referrerIsSameDomain = true; 2322 } 2323 } 2324 2325 // Overwrite link with history.go, as it also remembers scroll position but only if referrer is the same domain as current location hostname 2326 if (history.length > 1 && referrerIsSameDomain == true) { 2327 // Set referrer as back button href to enable visual cue & opening to a new window 2328 item.setAttribute('href', document.referrer); 2329 2330 // Set back button text 2331 item.querySelector('.diks-header__cta-text').innerHTML = "Takaisin"; 2332 2333 var stepsToGoBack = -1; 2334 2335 item.addEventListener('click', function(e) { 2336 e.preventDefault(); 2337 history.go(stepsToGoBack); 2338 }); 2339 } 2340 }); 2341</script>
2341 2342 2343 <link rel="stylesheet" href="/theme/css/includes/lightgallery/css/lightgallery-bundle.min.css"> 2344 <style>.lg-sub-html { background-color: rgba(0,0,0, .6); }</style> 2345
2345<script src="/theme/css/includes/lightgallery/lightgallery.min.js"></script>
2345 2346
2346<script src="/theme/css/includes/lightgallery/plugins/autoplay/lg-autoplay.min.js"></script>
2346 2347
2347<script src="/theme/css/includes/lightgallery/plugins/fullscreen/lg-fullscreen.min.js"></script>
2347 2348
2348<script src="/theme/css/includes/lightgallery/plugins/thumbnail/lg-thumbnail.min.js"></script>
2348 2349
2349<script src="/theme/css/includes/lightgallery/plugins/zoom/lg-zoom.min.js"></script>
2349 2350
2350<script> 2351 // lightGallery 2352 // Separate gallery for every .js-lightgallery 2353 // Gallery items come from .js-lightgallery .js-lightgallery__link 2354 // https://www.lightgalleryjs.com/docs/getting-started/ 2355 document.querySelectorAll('.js-diks-lightgallery').forEach(function(gallery) { 2356 var galleryImageLinks = gallery.getElementsByClassName('diks-gallery__link'); 2357 2358 // Thumbnails come from img inside the links, unless links specify data-thumbnail 2359 var thumbnailSource = (galleryImageLinks[0].hasAttribute('data-thumbnail')) ? ('data-thumbnail') : (false); 2360 2361 // Adjust certain settings depending on whether the gallery has one or more images 2362 var galleryHasMultipleImages = (galleryImageLinks.length > 1 ? true : false); 2363 2364 // Initialize 2365 lightGallery(gallery, { 2366 autoplay: galleryHasMultipleImages, 2367 counter: galleryHasMultipleImages, 2368 download: false, 2369 exThumbImage: thumbnailSource, 2370 hideControlOnEnd: true, 2371 licenseKey: "96BAAD7E-3BF04397-BBB55AE3-6D5A2C0B", 2372 loop: false, 2373 plugins: [lgAutoplay, lgFullscreen, lgThumbnail, lgZoom], 2374 selector: '.diks-gallery__link', 2375 mobileSettings: { 2376 controls: true, 2377 showCloseIcon: true 2378 }, 2379 strings: { 2380 closeGallery: 'Sulje galleria', 2381 toggleMaximize: 'Maksimointi', 2382 previousSlide: 'Edellinen', 2383 nextSlide: 'Seuraava', 2384 download: 'Lataa', 2385 playVideo: 'Katso video', 2386 mediaLoadingFailed: 'Sisällön lataus epäonnistui', 2387 }, 2388 autoplayPluginStrings: { 2389 toggleAutoplay: 'Automaattinen toisto' 2390 }, 2391 fullscreenPluginStrings: { 2392 toggleFullscreen: 'Kokoruututila' 2393 }, 2394 thumbnailPluginStrings: { 2395 toggleThumbnails: 'Pikkukuvat' 2396 }, 2397 zoomPluginStrings: { 2398 zoomIn: 'Suurenna', 2399 zoomOut: 'Pienennä', 2400 viewActualSize: 'Näytä täysikokoisena' 2401 } 2402 }); 2403 2404 // After closing LightGallery return focus to the image link that opened the gallery 2405 gallery.addEventListener('lgAfterClose', () => { 2406 galleryImageLinks[0].focus(); 2407 }); 2408 2409 }); 2410 2411 </script>
2411 2412
2413<script> 2414 function loadScript(url, callback) { 2415 var script = document.createElement("script"); 2416 script.type = "text/javascript"; 2417 if (script.readyState) { // IE 2418 script.onreadystatechange = function() { 2419 if (script.readyState === "loaded" || script.readyState === "complete") { 2420 script.onreadystatechange = null; 2421 callback(); 2422 } 2423 }; 2424 } else { // Others 2425 script.onload = function() { 2426 callback(); 2427 }; 2428 } 2429 script.src = url; 2430 document.getElementsByTagName("head")[0].appendChild(script); 2431 } 2432 function checkAudioElements() { 2433 // load audioplayer script only when audio elements are found 2434 if (document.querySelector(".init-audio-player")) { 2435 loadScript("https://a.karkkilalainen.fi/styles/2efe7af9/js/audioplayer/diks-audioplayer.min.js", function() { 2436 DiksAudioPlayer.init({ 2437 selector: '.init-audio-player', 2438 stopOthersOnPlay: true, 2439 enableKeystrokes: true 2440 }); 2441 }); 2442 } 2443 } 2444 window.onload = (event) => { 2445 checkAudioElements(); 2446 }; 2447</script>
2447<script> 2448 // ================================================================ 2449 // Unified Content Block Component 2450 // ================================================================ 2451 2452 const DiksContentBlock = (() => { 2453 // Private utility functions 2454 const utils = { 2455 setCookie: (name, value, days = 30) => { 2456 const expires = new Date(); 2457 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); 2458 document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; 2459 }, 2460 2461 getCookie: (name) => { 2462 const value = `; ${document.cookie}`; 2463 const parts = value.split(`; ${name}=`); 2464 if (parts.length === 2) return decodeURIComponent(parts.pop().split(';').shift()); 2465 return null; 2466 }, 2467 2468 renderArticleCard: (article) => { 2469 let mainImage = article.mainImage; 2470 2471 // For ContentPackage: if mainImage is empty, get from first story in teaserStories 2472 if (article.type === 'ContentPackage' && (!mainImage || mainImage.length === 0)) { 2473 if (article.teaserStories && article.teaserStories.length > 0) { 2474 // Find first teaser story with a mainImage 2475 for (const teaserStory of article.teaserStories) { 2476 if (teaserStory.content && 2477 teaserStory.content.mainImage && 2478 teaserStory.content.mainImage.length > 0) { 2479 mainImage = teaserStory.content.mainImage; 2480 break; 2481 } 2482 } 2483 } 2484 } 2485 2486 let imageHtml = ''; 2487 if (mainImage && mainImage.length > 0) { 2488 const imageFields = mainImage[0].content.fields; 2489 const src = imageFields.landscape_720.href_full; 2490 const srcset = ` 2491 ${imageFields.landscape_240.href_full} 240w, 2492 ${imageFields.landscape_480.href_full} 480w, 2493 ${imageFields.landscape_720.href_full} 720w, 2494 ${imageFields.landscape_960.href_full} 960w 2495 `; 2496 imageHtml = ` 2497 <div class="diks-card__image-wrapper"> 2498 <img class="diks-card__image" 2499 src="${src}" 2500 loading="lazy" 2501 sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" 2502 srcset="${srcset}" 2503 decoding="async" 2504 alt="${article.headline}" 2505 pinger-seen="true"> 2506 </div> 2507 `; 2508 } 2509 2510 const fullHeadline = article.headlinePrefix 2511 ? `<span class="diks-ui-accent">${article.headlinePrefix} | </span>${article.headline}` 2512 : article.headline; 2513 2514 const publishedDate = new Date(article.published).toLocaleString('fi-FI', { 2515 day: 'numeric', 2516 month: 'numeric', 2517 year: 'numeric', 2518 hour: 'numeric', 2519 minute: 'numeric' 2520 }); 2521 2522 return ` 2523 <article class="diks-card diks-card--size-s"> 2524 <div class="diks-card__main-wrapper"> 2525 ${imageHtml} 2526 <div class="diks-card__text-wrapper"> 2527 <div class="diks-card__text-inner-wrapper"> 2528 <h2 class="diks-card__title"> 2529 <a class="diks-card__link" href="${article.href}">${fullHeadline}</a> 2530 </h2> 2531 <div class="diks-card__meta-wrapper"> 2532 <div class="diks-meta"> 2533 <div class="diks-date"> 2534 <time class="diks-date__published" datetime="${article.published}">${publishedDate}</time> 2535 </div> 2536 </div> 2537 </div> 2538 </div> 2539 </div> 2540 </div> 2541 </article> 2542 `; 2543 }, 2544 2545 getComponentType: (containerId) => { 2546 if (containerId.startsWith('diks-content-block-search-')) return 'search'; 2547 if (containerId.startsWith('diks-content-block-aggregator-')) return 'aggregator'; 2548 return null; 2549 }, 2550 2551 getBlockId: (containerId, type) => { 2552 if (type === 'search') return containerId.replace('diks-content-block-search-', ''); 2553 if (type === 'aggregator') return containerId.replace('diks-content-block-aggregator-', ''); 2554 return containerId; 2555 }, 2556 2557 getResultsId: (blockId, type) => { 2558 if (type === 'search') return `diks-search-results-${blockId}`; 2559 if (type === 'aggregator') return `diks-results-${blockId}`; 2560 return null; 2561 } 2562 }; 2563 2564 // Build query parameters based on component type and filters 2565 const buildQueryParams = (containerId) => { 2566 const container = document.getElementById(containerId); 2567 const type = utils.getComponentType(containerId); 2568 const blockId = utils.getBlockId(containerId, type); 2569 2570 const params = new URLSearchParams({ 2571 type: container.dataset.queryType || 'story', 2572 size: container.dataset.maxResults || 20 2573 }); 2574 2575 if (type === 'search') { 2576 // Search-specific parameters 2577 const defaultSort = container.dataset.sort; 2578 const defaultPaywall = container.dataset.paywall; 2579 const defaultStoryTypes = container.dataset.storyTypes; 2580 const defaultTopics = container.dataset.topics; 2581 const defaultAdvertisers = container.dataset.advertisers; 2582 const dateRangeType = container.dataset.dateRangeType; 2583 2584 // Sort 2585 if (defaultSort && defaultSort !== '*') { 2586 params.append('sort', defaultSort); 2587 } 2588 2589 // Paywall 2590 const paywallSelect = document.getElementById(`diks-search-paywall-${blockId}`); 2591 if (paywallSelect && paywallSelect.value) { 2592 params.append('paywall', paywallSelect.value); 2593 } else if (defaultPaywall && defaultPaywall !== '*') { 2594 params.append('paywall', defaultPaywall); 2595 } 2596 2597 // Story types 2598 let storyTypesValue = defaultStoryTypes; 2599 const storyTypesSelect = document.getElementById(`diks-search-story-types-${blockId}`); 2600 if (storyTypesSelect) { 2601 const selectedOptions = Array.from(storyTypesSelect.selectedOptions).map(opt => opt.value); 2602 if (selectedOptions.length > 0) { 2603 storyTypesValue = selectedOptions.join(','); 2604 } 2605 } 2606 if (storyTypesValue) { 2607 params.append('storyTypes', storyTypesValue); 2608 } 2609 2610 // Topics 2611 if (defaultTopics) { 2612 params.append('topics', defaultTopics); 2613 const topicsOperator = container.dataset.topicsOperator || 'OR'; 2614 params.append('topicsOperator', topicsOperator); 2615 } 2616 2617 // Advertisers 2618 if (defaultAdvertisers) { 2619 params.append('advertisers', defaultAdvertisers); 2620 const advertisersOperator = container.dataset.advertisersOperator || 'OR'; 2621 params.append('advertisersOperator', advertisersOperator); 2622 } 2623 2624 // Date ranges 2625 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2626 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2627 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2628 2629 if (dateRangeType === 'byMonth' && monthInput && monthInput.value) { 2630 const [year, month] = monthInput.value.split('-').map(Number); 2631 const fromDate = new Date(year, month - 1, 1, 0, 0, 0, 0); 2632 const toDate = new Date(year, month, 0, 23, 59, 59, 999); 2633 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2634 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2635 } else { 2636 if (fromDateInput && fromDateInput.value) { 2637 const fromDate = new Date(fromDateInput.value); 2638 fromDate.setHours(0, 0, 0, 0); 2639 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2640 } 2641 if (toDateInput && toDateInput.value) { 2642 const toDate = new Date(toDateInput.value); 2643 toDate.setHours(23, 59, 59, 999); 2644 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2645 } 2646 } 2647 } else if (type === 'aggregator') { 2648 // Aggregator-specific parameters 2649 const selectedTopic = container.dataset.selectedTopic; 2650 if (selectedTopic) { 2651 params.append('topics', selectedTopic); 2652 } 2653 } 2654 2655 return params; 2656 }; 2657 2658 // Main fetch content function 2659 const fetchContent = async (containerId) => { 2660 const container = document.getElementById(containerId); 2661 const type = utils.getComponentType(containerId); 2662 const blockId = utils.getBlockId(containerId, type); 2663 const resultsId = utils.getResultsId(blockId, type); 2664 const resultsDiv = document.getElementById(resultsId); 2665 2666 if (!container || !resultsDiv) { 2667 console.error(`Content block container or results div not found: ${containerId}`); 2668 return; 2669 } 2670 2671 try { 2672 // Show loading state 2673 const loadingMessage = type === 'search' 2674 ? '<p class="diks-content-block-search--loading">Ladataan...</p>' 2675 : '<p class="diks-content-block-aggregator--loading">Ladataan...</p>'; 2676 resultsDiv.innerHTML = loadingMessage; 2677 2678 // Build query parameters 2679 const params = buildQueryParams(containerId); 2680 const apiUrl = container.dataset.apiUrl || '/.content/items'; 2681 2682 // Fetch data 2683 const response = await fetch(`${apiUrl}?${params.toString()}`, { 2684 method: 'GET' 2685 }); 2686 2687 if (!response.ok) { 2688 throw new Error('Verkkovirhe.'); 2689 } 2690 2691 const data = await response.json(); 2692 2693 // Render results 2694 let html = ''; 2695 if (data.items && data.items.length > 0) {
2696 data.items.forEach(article => { 2697 html += utils.renderArticleCard(article); 2698 }); 2699 } else { 2700 const noResultsMessage = type === 'search' 2701 ? '<p class="diks-content-block-search--no-results">Ei hakutuloksia.</p>' 2702 : '<p>Ei sisältöä.</p>'; 2703 html = noResultsMessage; 2704 } 2705 2706 resultsDiv.innerHTML = html; 2707 } catch (error) { 2708 const errorMessage = type === 'search' 2709 ? `<p class="diks-content-block-search--error">Virhe: ${error.message}</p>` 2710 : `<p class="error">Error: ${error.message}</p>`; 2711 resultsDiv.innerHTML = errorMessage; 2712 } 2713 }; 2714 2715 // Initialize search component 2716 const initializeSearch = (containerId) => { 2717 const container = document.getElementById(containerId); 2718 const blockId = utils.getBlockId(containerId, 'search'); 2719 const dateRangeType = container.dataset.dateRangeType; 2720 2721 // Get UI elements 2722 const searchButton = document.getElementById(`diks-search-button-${blockId}`); 2723 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2724 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2725 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2726 2727 // Set current month as default for byMonth type 2728 if (dateRangeType === 'byMonth' && monthInput) { 2729 const now = new Date(); 2730 const year = now.getFullYear();
2731 const month = String(now.getMonth() + 1).padStart(2, '0'); 2732 monthInput.value = `${year}-${month}`; 2733 2734 // Auto-trigger search on month change 2735 monthInput.addEventListener('change', () => fetchContent(containerId)); 2736 } 2737 2738 // Search button click handler 2739 if (searchButton) { 2740 searchButton.addEventListener('click', () => fetchContent(containerId)); 2741 } 2742 2743 // Enter key support 2744 [fromDateInput, toDateInput, monthInput].forEach(input => { 2745 if (input) { 2746 input.addEventListener('keypress', (e) => { 2747 if (e.key === 'Enter') fetchContent(containerId); 2748 }); 2749 } 2750 }); 2751 2752 // Initial search 2753 fetchContent(containerId); 2754 }; 2755 2756 // Initialize aggregator component 2757 const initializeAggregator = (containerId) => { 2758 const container = document.getElementById(containerId); 2759 const blockId = utils.getBlockId(containerId, 'aggregator'); 2760 const topicLabels = JSON.parse(container.dataset.topicLabels || '{}'); 2761 const cookieName = `selectedTopic_${blockId}`; 2762 2763 const listId = `diks-topic-list-${blockId}`; 2764 const labelId = `diks-selected-topic-label-${blockId}`; 2765 const toggleId = `diks-toggle-button-${blockId}`; 2766 const listContainerId = `diks-toggle-area-${blockId}`; 2767 2768 const topicItems = document.querySelectorAll(`#${listId} .diks-topic-list__item`); 2769 const labelElement = document.getElementById(labelId); 2770 2771 // Update topic label display 2772 const updateTopicLabel = (topic) => { 2773 if (labelElement && topicLabels[topic]) { 2774 labelElement.textContent = topicLabels[topic]; 2775 } else if (labelElement) { 2776 labelElement.textContent = ''; 2777 } 2778 2779 // Update active state 2780 topicItems.forEach(item => { 2781 item.classList.toggle('diks-is-active', item.dataset.topic === topic); 2782 }); 2783 }; 2784 2785 // Handle single topic case 2786 if (Object.keys(topicLabels).length === 1) { 2787 const initialTopic = Object.keys(topicLabels)[0]; 2788 container.dataset.selectedTopic = initialTopic; 2789 updateTopicLabel(initialTopic); 2790 fetchContent(containerId); 2791 return; 2792 } 2793 2794 // Handle multiple topics case 2795 if (topicItems.length > 0) { 2796 // Determine initial topic (cookie or first) 2797 const cookieTopic = utils.getCookie(cookieName); 2798 let initialTopic = topicItems[0].dataset.topic; 2799 2800 if (cookieTopic) { 2801 const validTopic = Array.from(topicItems).some(item => item.dataset.topic === cookieTopic); 2802 if (validTopic) { 2803 initialTopic = cookieTopic; 2804 } 2805 } 2806 2807 // Set up topic click handlers 2808 topicItems.forEach(item => { 2809 item.addEventListener('click', () => { 2810 const selectedTopic = item.dataset.topic; 2811 container.dataset.selectedTopic = selectedTopic; 2812 utils.setCookie(cookieName, selectedTopic); 2813 updateTopicLabel(selectedTopic); 2814 fetchContent(containerId); 2815 2816 // Close toggle if open 2817 const toggleButton = document.getElementById(toggleId); 2818 const listContainer = document.getElementById(listContainerId); 2819 if (toggleButton && listContainer) { 2820 toggleButton.setAttribute('aria-expanded', 'false'); 2821 listContainer.classList.remove('diks-toggle--is-open'); 2822 listContainer.classList.add('diks-toggle--is-closed'); 2823 container.dataset.diksToggleState = 'closed'; 2824 } 2825 }); 2826 }); 2827 2828 // Initial fetch 2829 container.dataset.selectedTopic = initialTopic; 2830 updateTopicLabel(initialTopic); 2831 fetchContent(containerId); 2832 } 2833 }; 2834 2835 // Public API 2836 return { 2837 fetchContent, 2838 initialize: (containerId) => { 2839 const type = utils.getComponentType(containerId); 2840 if (type === 'search') { 2841 initializeSearch(containerId); 2842 } else if (type === 'aggregator') { 2843 initializeAggregator(containerId); 2844 } 2845 } 2846 }; 2847 })(); 2848 2849 2850 // ================================================================ 2851 // Auto-initialize all content block components 2852 // ================================================================ 2853 2854 document.addEventListener('DOMContentLoaded', () => { 2855 // Initialize all content block components (search + aggregator) 2856 const allContainers = document.querySelectorAll('[id^="diks-content-block-search-"], [id^="diks-content-block-aggregator-"]');
2857 allContainers.forEach(container => { 2858 DiksContentBlock.initialize(container.id); 2859 }); 2860 }); 2861</script>
vendor: 1 bytes, line 2861
2861
2862<script> 2863 // Service Worker 2864 if ('serviceWorker' in navigator) { 2865 window.addEventListener('load', function() { 2866 navigator.serviceWorker.register('/sw.js').then( 2867 function(registration) { 2868 console.log('PWA: Service worker registered to scope: ', registration.scope); 2869 }, 2870 function(err) { 2871 console.error('PWA: Service worker failed to register with error: ', err); 2872 } 2873 ); 2874 }); 2875 } 2876 2877 // Show installation option, hide generic fallback instructions 2878 function pwaShowInstallationOption() { 2879 document.querySelectorAll('.js-diks-apps-pwa-installation').forEach(function(element) { 2880 element.style.display = 'block'; 2881 }); 2882 document.querySelectorAll('.js-diks-apps-pwa-instructions').forEach(function(element) { 2883 element.style.display = 'none'; 2884 }); 2885 } 2886 2887 let deferredPrompt; 2888 var dataLayer = window.dataLayer || []; 2889 2890 // Basic installation process 2891 window.addEventListener('beforeinstallprompt', (e) => { 2892 // Stash the event so it can be triggered later 2893 deferredPrompt = e; 2894 2895 const enablePrompt = 1; 2896 2897 if(!enablePrompt) { 2898 e.preventDefault(); 2899 } 2900 2901 // Update the UI to notify the user they can install PWA 2902 pwaShowInstallationOption(); 2903 2904 // Handle installation 2905 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 2906 button.addEventListener('click', (e) => { 2907 // Show the prompt 2908 deferredPrompt.prompt(); 2909 2910 // Wait for user to respond 2911 deferredPrompt.userChoice.then((choiceResult) => { 2912 if (choiceResult.outcome === 'accepted') { 2913 console.log('PWA: Installed (prompt)'); 2914 dataLayer.push({ 2915 'event': 'PWA.installation', 2916 'eventData': 'success' 2917 }); 2918 } else { 2919 console.log('PWA: User dismissed installation prompt'); 2920 dataLayer.push({ 2921 'event': 'PWA.installation', 2922 'eventData': 'canceled' 2923 }); 2924 } 2925 deferredPrompt = null; 2926 }); 2927 }); 2928 }); 2929 }); 2930 2931 // iOS installation process (show instructions modal) 2932 if (!navigator.standalone) { 2933 var userAgent = navigator.userAgent.toLowerCase(); 2934 var iPhoneUser = (/iphone/.test(userAgent)); 2935 var iPadUser = (/ipad/.test(userAgent) || (/macintosh/.test(userAgent) && navigator.maxTouchPoints > 1)); 2936 var safariUser = (/^(?!.*(brave|chrome|crios|duckduckgo|edgeios|firefox|fxios|opios|ucbrowser|yabrowser)).*safari.*$/.test(userAgent)); 2937 2938 if (safariUser && (iPhoneUser || iPadUser)) { 2939 // Update the UI to notify the user they can install PWA 2940 pwaShowInstallationOption(); 2941 2942 // Instructions 2943 var modals = document.querySelectorAll('.js-diks-apps-pwa-ios-instructions').forEach(function(element) { 2944 // Position on screen based on device 2945 if (iPhoneUser) { 2946 element.classList.add('diks-apps__pwa-ios-modal--bottom'); 2947 } else if (iPadUser) { 2948 element.classList.add('diks-apps__pwa-ios-modal--top'); 2949 } 2950 }); 2951 2952 // Handle modal instructions from installation button 2953 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 2954 button.addEventListener('click', (e) => { 2955 // Show first modal 2956 document.querySelector('.js-diks-apps-pwa-ios-instructions').classList.toggle('diks-apps__pwa-ios-modal--is-visible'); 2957 dataLayer.push({ 2958 'event': 'PWA.instructions.shown', 2959 'eventData': 'iOS' 2960 }); 2961 }); 2962 }); 2963 } 2964 } 2965</script>
2965 2966
2966<script class="coral-script" src="//coral.prod.diks.fi/assets/js/count.js?v=9.3.1.3" defer></script>
2966 2967 2968 </body> 2969</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.